我正在创建一个视频:
到目前为止,我有这个,它(几乎)正常工作:
Object
唯一的问题是淡出似乎不会变黑,即使这是150帧视频,我相信我正确地关注ffmpeg documentation。
结果视频在这里:
http://video.blivenyc.com/vid-from-image/turtle11.mp4
有什么想法吗?
答案 0 :(得分:0)
嗯,我不确定为什么但是这个有效,即使它看起来是等价的:
ffmpeg -f lavfi -i "aevalsrc=0|0" -loop 1 -i turtle-2.jpg -c:v libx264 -t 5 -r 30 -s 1920x1080 -aspect 16:9 -pix_fmt yuv420p -filter:v drawtext="fontsize=130:fontfile=comic.ttf:text='hello world':x=(w-text_w)*.25:y=(h-text_h)*.75",fade=t=in:st=0:d=1,fade=t=out:st=4:d=1 -acodec aac turtle12.mp4
基本上是基于帧的语法:
fade = in:0:60,fade = out:90:60
取代基于时间:
褪色= T =在:ST = 0:d = 1,褪色= T =出来:ST = 4:d = 1
不知何故,它有效。不知道为什么会这样。
答案 1 :(得分:0)
淡入淡出滤镜操作的视频流不是150帧长。输入和输出帧速率在这里是不同的。所有过滤完成后,使用-r
设置输出速率。在那个阶段,ffmpeg将丢弃或复制帧以获得输出速率。
除非另有明确说明,否则图像或图像序列的输入速率为25。在你的命令中,由于没有覆盖,它是25.因此从帧90开始淡出60帧,将在帧125(5秒x 25)结束。 ffmpeg将复制每个输入秒的5帧以使其达到30。
要获得所需结果,请使用
ffmpeg -f lavfi -i "aevalsrc=0|0" -loop 1 -framerate 30 -i turtle-2.jpg -c:v libx264 -t 5 -s 1920x1080 -aspect 16:9 -pix_fmt yuv420p -filter:v drawtext="fontsize=130:fontfile=comic.ttf:text='hello world':x=(w-text_w)*.25:y=(h-text_h)*.75",fade=in:0:60,fade=out:90:60 -acodec aac turtle11.mp4