【发布时间】:2019-06-12 20:02:02
【问题描述】:
考虑以下 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,也会假定一个默认值;对吗? - 原始图像如下所示:
...视频如下所示:
...表示纵横比错误;另外我可以看到锯齿状的边缘,这意味着视频中的缩放图像没有抗锯齿。
如何通过抗锯齿/平滑处理以正确的纵横比使图像适合视频大小? (我想这与-attach crop center=1 有关,但我找不到相关文档)。
-
在 SDL 中查看内容并逐步浏览帧时,帧编号是从 0 开始,还是从 1 开始,并且在第 0 帧处显示的只是与 1 相同的帧?
李> 如果我使用
ttl=6和-filter luma cycle=6 duration=4,我会得到:
... 即可见过渡从第 7 帧开始(第 6 帧为全图 A),持续第 7 帧和第 8 帧,到第 9 帧结束(即全图 B);然后在第 13 帧和第 14 帧(第 15 帧是完整图像 A)
但是,如果我使用 ttl=6 和 -filter luma cycle=6 duration=2,那么我会得到:
...也就是说,没有过渡,图像在第 7 帧立即变化,然后在第 13 帧再次变化,依此类推。
因此,我将第一种情况称为 2 帧的过渡持续时间,将第二种情况称为 0 帧的持续时间 - 但选项分别为 duration=4 和 duration=2。谁能解释为什么?那两帧的差异去哪儿了?
-
我可以 - 如果可以,如何 - 做同样类型的幻灯片,除了淡入黑色?我想定义每张图像 6 帧的“生存时间”(ttl)和 4 帧的过渡,例如:
- 首先,显示图像 A 的 4 帧;
- 然后一帧图像 A 褪色,接着是一帧黑色(图像 A 总共 6 帧 TTL,最后 2 次过渡);
- 然后两帧图像 B 褪色(总共 4 帧与前 2 帧过渡),然后是另外两帧图像 B 完整(所以这里是 4 帧图像 B);
- 然后一帧图像 B 褪色,接着是一帧黑色(图像 B 相当于 6 帧 TTL);
...等等
- 是否可以说服
melt使用通配符来选择幻灯片的图像,而不是使用.all.jpg?据我在MLT (Media Lovin' Toolkit) Photo Slide Video 上看到的没有 - 但也许还有另一种方法......
【问题讨论】:
标签: video-editing mlt