为了测试目的,我想生成一个以 10 fps 的速度每帧在纯黑色和纯白色之间变化的视频,如何使用 FFMPEG 来实现这一点?
答案1
最恰当的回答是“花 3 个小时研究 ffmpeg 过滤器的工作原理”——今天我这么做只是为了好玩,所以我把这个问题当作一个挑战。
看起来有很多方法可以获得结果,但这对我有用:
生成一幅黑色图像和一幅白色图像,并将它们命名为
img-001.png
和img-002.png
。使用我从中学到的
ffmpeg
功能-loop
这个答案仅适用于图像到视频的工作
生成图像:
ffmpeg -f lavfi -i color=black:1920x1080:d=3,format=rgb24 -frames:v 1 -y img-001.png
ffmpeg -f lavfi -i color=white:1920x1080:d=3,format=rgb24 -frames:v 1 -y img-002.png
以 10 fps 的速度循环播放这些图像 30 秒:
ffmpeg -loop 1 -i 'img-%03d.png' -r 10 -t 30 -vf format=yuv420p -y out.mp4
ffprobe
报告此元数据:
(edited for clarity)
Duration: 00:00:30.00, start: 0.000000,
Video: h264 (High) yuv420p
1920x1080 [SAR 1:1 DAR 16:9], 20 kb/s, 10 fps
这个要点有另一种方法使用filter_complex
。虽然它没有做完全相同的事情,但它可以适用于这项任务。