我有一个被命名为主页的截图负荷homescreen000001.png,homescreen000002.png等我试图创建一个使用ffmpeg的这些图像的时间推移视频.
当我运行以下内容时,我已经完成了它的工作:
ffmpeg -f image2 \
-i ~/Desktop/homescreen%06d.png \
-r 0.5 \
-s 1440x900 \
-b:v 1M \
-vcodec libx264 \
-pix_fmt yuv420p \
~/Desktop/timelapse.mp4
Run Code Online (Sandbox Code Playgroud)
然而,事实证明,有些图像具有透明背景,因此背景在这些图像上显示为黑色.
我想要一个白色背景,所以我一直试图使用ffmpeg设置如下:
ffmpeg -f image2 \
-loop 1 \
-i ~/Desktop/whitebg.png \
-i ~/Desktop/homescreen%06d.png \
-filter_complex overlay \
-r 0.5 \
-s 1440x900 \
-b:v 1M \
-vcodec libx264 \
-pix_fmt yuv420p \
~/Desktop/timelapse.mp4
Run Code Online (Sandbox Code Playgroud)
这whitebg.png是2px x 2px png,白色背景,就是这样.
这个ffmpeg命令产生一个非常小的(文件大小)视频,它只是一个白色背景.
任何人都可以解释我如何使用ffmpeg将图像叠加为白色背景上的延时视频?
llo*_*gan 12
使用一系列图像都可以为我工作,这些图像都包含最近版本的透明度ffmpeg,但是你没有包含完整的控制台输出,这些输出可能提供了有用的信息,这些信息可能显示了它无法按预期工作的原因.
您可以使用颜色源过滤器作为背景:
ffmpeg -f lavfi -i color=c=white:s=1440x900 -i homescreen%06d.png -filter_complex \
"[0:v][1:v]overlay=shortest=1,format=yuv420p[out]" \
-map "[out]" output.mp4
Run Code Online (Sandbox Code Playgroud)
您必须手动提供颜色源过滤器的输入大小,但您可以使用它ffprobe来获取图像帧大小,如FFprobe提示中所示.
请注意,通过使用-r 0.5帧将被删除以适应此输出帧速率,因为默认情况下,输入是-r 25.这可能是也可能不是.
通常不推荐使用比特率和一次通过.请-crf改用FFmpeg和H.264编码指南中所示.
Stack Overflow仅用于编程问题.ffmpeg应在超级用户处询问cli使用问题.