了解/控制 MLT 融化幻灯片?

2023-12-10

考虑以下bash脚本(在 Ubuntu 18.04,melt 6.6.0 上),它使用melt制作幻灯片并在窗口中本地播放(SDL 使用者),大部分复制自https://mltframework.org/blog/making_nice_slideshows/(编辑:我知道可以单独指定文件,如https://superuser.com/questions/833232/create-video-with-5-images-with-fadein-out-effect-in-ffmpeg/834035#834035- 但这种方法似乎在过渡期间缩放图像,并且在 SDL 窗口中播放之前需要相当长的时间才能“渲染”,而这个方法几乎可以即时播放):

echo "
description=DV PAL
frame_rate_num=25
frame_rate_den=1
width=720
height=576
progressive=0
sample_aspect_num=59
sample_aspect_den=54
display_aspect_num=4
display_aspect_den=3
colorspace=601
" > my-melt.profile

mkdir tmppics
convert -background lightblue -fill blue -size 3840x2160  -pointsize 200  -gravity center label:"Test A" tmppics/pic_01.jpg
convert -background lightblue -fill blue -size 3840x2160  -pointsize 200  -gravity center label:"Test B" tmppics/pic_02.jpg

melt -verbose -profile ./my-melt.profile \
./tmppics/.all.jpg ttl=6 \
-attach crop center=1 \
-filter luma cycle=6 duration=4 \
-consumer sdl
  • 当我运行上述命令时,视频显示两个图像循环,但帧计数器继续运行,无限期地增加。如何让它在循环长的确切帧数之后停止?
  • 据我所知,输出视频的大小是由配置文件控制的;也就是说,即使我没有指定-profile,假设为默认值;那是对的吗?
  • 原始图像如下所示:

pic01_eog

...视频如下所示:

pic01_melt

...这意味着长宽比错误;此外,我可以看到锯齿状边缘,这意味着视频中的缩放图像没有抗锯齿。

如何使用抗锯齿/平滑功能使图像适合视频尺寸、具有正确的宽高比? (我想这与-attach crop center=1,但我找不到这方面的文档)。

  • 当在 SDL 中查看内容并单步浏览帧时,帧编号是从 0 开始,还是从 1 开始,并且在第 0 帧处仅显示与 1 相同的帧?

  • 如果我使用ttl=6 and -filter luma cycle=6 duration=4,我明白了:

melt01-opt.gif

...也就是说,可见过渡从第 7 帧开始(第 6 帧是完整图像 A),持续第 7 帧和第 8 帧,并在第 9 帧结束(这是完整图像 B);然后再次在第 13 帧和第 14 帧(第 15 帧是完整图像 A)

但是,如果我使用ttl=6 and -filter luma cycle=6 duration=2,然后我得到这个:

melt02-opt.gif

...也就是说,没有过渡,图像在第 7 帧立即发生变化,然后在第 13 帧再次发生变化,依此类推。

因此,我将第一种情况称为 2 帧的过渡持续时间,将第二种情况称为 0 帧的持续时间 - 但选项是duration=4 and duration=2, 分别。谁能解释为什么?那两帧差异哪里去了?

  • 我可以 - 如果可以的话,如何 - 进行相同类型的幻灯片放映,除了淡入黑色之外?我想定义每个图像 6 帧的“生存时间”(ttl),以及 4 帧的过渡,这样:

    • 首先,显示图像A的4帧;
    • 然后一帧图像 A 褪色,接着是一帧黑色(图像 A 相当于 6 帧 TTL,最后 2 个过渡);
    • 然后两帧图像 B 褪色(相当于 4 帧与之前的 2 帧过渡),接着是另外两帧图像 B 已满(因此这里有 4 帧图像 B);
    • 然后一帧图像 B 褪色,然后一帧变黑(相当于图像 B 的 6 帧 TTL);

... etc.

  • 是否可以说服melt使用 globbing 来选择用于幻灯片放映的图像,而不是使用.all.jpg?据我所知MLT(媒体喜爱工具包)照片幻灯片视频不 - 但也许还有另一种方法......

好的,所以,我花了一些时间研究命令melt事实证明,实际上有一种非常有效的方法可以更改一堆图像(如果参数数量太长或者终端需要处理的字符太多)。

你想做的是使用-serialise <name of file>.melt它将存储您的命令(您也可以手动创建此文件)。然后要执行该文件,请使用melt <name of file>.melt以及您的视频文件的任何其他选项。

格式示例:

melt <images and what to do to them> -serialise <name of file>.melt


Example


创建 Melt 文件(使用 Melt CLI)

melt image1.png out=50 image2.png out=75 -mix 25 -mixer luma image3.png out=75 -mix 25 -mixer luma image3.png out=75 -mix 25 -mixer luma image4.png out=75 -mix 25 -mixer luma <...> -serialise test.melt


.melt 文件格式

测试.融化

image1.png out=50 image2.png out=75 -mix 25 -mixer luma image3.png out=75 -mix 25 -mixer luma image3.png out=75 -mix 25 -mixer luma image4.png out=75 -mix 25 -mixer luma <...>


Run

melt test.melt -profile atsc_1080p_60 -consumer avformat:output.mp4 vcodec=libx264 an=1


补充笔记

熔化文件的末尾应该有一个额外的返回字符。如果没有的话,Exceeded maximum line length (2048) while reading a melt file.将被输出

请注意-serialise <name of file>.melt不会在.melt file

在编码过程开始之前,Melt 实际上需要一些时间来加载 Melt 文件

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

了解/控制 MLT 融化幻灯片? 的相关文章

随机推荐

  • 使用 OpenCV 平移和旋转 3D 图像

    给定 3 x 3 旋转矩阵 R 和 3 x 1 平移矩阵 T 我想知道如何将 T 和 R 矩阵乘以图像 假设 Iplimage img 为 640 x 480 我想做的是R T img 我正在考虑使用 cvGemm 但这不起作用 您正在搜索
  • Bootstrap 5 --bs-gutter-x 添加了 1.5rem,这使得规则和其他元素悬而未决

    我标记了代码 但大图是这种风格 bs gutter x 1 5rem 从 grid scss 6 添加 添加样式来覆盖 bs gutter x 0rem 不修复它 我见过其他人也遇到过这个问题 但还没有看到解决这个问题的解决方案 这是错误报
  • 如何从 pygtk 的条目中删除突出显示?

    我创建了一个小型 GUI 当它启动时 我创建的 第一个 gtk Entry 始终突出显示 在一系列条目中 本质上 我是这样创建它的 my entry gtk Entry 1 my entry set width chars 1 my ent
  • psql 返回值/错误杀死调用它的 shell 脚本?

    我正在运行几个psqlbash shell 脚本中的命令 其中一个命令将 csv 文件导入到表中 问题是 CSV 文件偶尔会损坏 末尾有无效字符 并且导入失败 当这种情况发生时 我就有了ON ERROR STOP on如果设置了标志 我的整
  • Google 任务更新错误

    我正在尝试使用以下代码更新任务 function updtsk task id var url https www googleapis com tasks v1 lists default tasks id var req method
  • 如何强制AWS ECS将容器迁移到另一个ASG?

    我使用 user data 对 ECS 中使用的主机进行初始配置以运行容器 我希望能够在更新 user data 后告诉 AWS ECS 将容器迁移到新创建的主机 我怎样才能做到这一点 我正在使用 Terraform 进行 AWS 基础设施
  • 在 Coq 中使用我自己的 == 运算符重写策略

    我试图直接从字段的公理证明简单的字段属性 经过对 Coq 原生现场支持的一些实验 像这个 我决定最好简单地写下 10 条公理并使其自成一体 我在需要使用的时候遇到了困难rewrite与我自己的 运算符自然不起作用 我意识到我必须添加一些我的
  • 如何深入LDAP树查找可以在Spring LDAP Security中进行身份验证的用户

    我想使用 Spring Security LDAP 身份验证 不过我想递归地遍历 ldap 树 不幸的是 我只能找到一个级别或深度的用户 例如 我的用户树如下所示 ouUsers 有用户 user1 user2 等 和子树 ouGenel
  • 带时区的 Java 日期验证器

    当日期中包含 EDT EST 时 我们是否有任何 API 来验证日期是否有效 我尝试过 Joda Java SimpleDateFormat 但我无法解析日期 以下是我收到的示例格式 2017 09 25 16 18 15 099 0400
  • 检查 json 响应是数组、整数还是字符串作为键?

    我收到 json 响应 其中 products 键有时具有 int 值 有时它具有数组 如何检查它是否有数组或Int products 25 or products 77 80 81 86 我正在用这个 self productsCount
  • Django/Python:在模板中显示 pdf

    我在 python 2 7 中使用 django 1 8 我想在模板中显示 pdf 才知道 感谢MKM 的回答我将其呈现在整页中 你知道如何渲染吗 这是我的代码 def userManual request with open C User
  • 使用正则表达式删除CSS注释

    如何使用 CSS 删除注释Regex Replace 注意 我无法使用 C 中提到的正则表达式 正则表达式删除CSS注释 这通常就足够了 假设cssLines是一个包含 CSS 文件所有行的字符串 Regex Replace cssLine
  • 将二维数组传递给常量参数的函数

    我从中学到了C 底漆 如果你想保护数组不被函数意外修改 你应该添加const函数定义头中指针声明之前的修饰符 遵循这个明智的建议 在下面的最小示例中 我尝试传递一个非常量二维数组array到函数Sum2D 其中一个参数是pointer to
  • 如何在 JTable 中创建翻转效果?

    在我的应用程序中 我想使用 JTable 的行创建翻转效果 例如 当鼠标进入该行时 该行的背景颜色会发生变化 反之 当鼠标退出该行时 该行的颜色将恢复正常 我怎样才能做到这一点 使用下面的代码 它将让您了解如何对 JTable 的行应用翻转
  • TabWidget 之间的分隔线

    TabWidget下的android divider属性是否有效 我尝试了 android 的选项卡布局教程只是为了测试 http developer android com resources tutorials views hello
  • JavaScript 中按字符串属性值对对象数组进行分组?

    我讨厌这个对象数组 每个对象都有一个日期 我希望能够将这些对象分组为月份 有没有办法转换这个 var data date 2016 08 13 date 2016 07 23 date 2016 08 11 date 2016 08 10
  • 指定的演员阵容无效#3

    我遇到这个问题 我收到 指定的转换无效 Visual Studio 内的错误列表中没有错误 这个错误可能来自我的 Access 数据库吗 private void Submit Click object sender EventArgs e
  • Ruby on Rails 4、Devise 和配置文件页面

    我是编码新手 所以这可能是一个简单的问题 我大约一个月前开始使用 RoR 不幸的是 我遇到了坎坷 似乎无法克服 我尝试过查看其他 SO 问题来寻求帮助 但我仍然是新手 所以编码建议对我来说仍然有点陌生 我希望有人能用更适合新手的术语来表述
  • Android:从重定向到另一个 url 的 url 连接 (graph.facebook.com) 获取位图

    我已经做了一切来获取一个 url 在那里我可以获取 Facebook 用户的个人资料图片 现在剩下的唯一问题是将该图像放入位图对象中 Since http graph facebook com现在首先将连接重定向 正如我们在网址中看到的 h
  • 了解/控制 MLT 融化幻灯片?

    考虑以下bash脚本 在 Ubuntu 18 04 melt 6 6 0 上 它使用melt制作幻灯片并在窗口中本地播放 SDL 使用者 大部分复制自https mltframework org blog making nice slide