如何使用 FFMPEG 生成具有间隔变化的单一纯色的视频?

如何使用 FFMPEG 生成具有间隔变化的单一纯色的视频?

为了测试目的,我想生成一个以 10 fps 的速度每帧在纯黑色和纯白色之间变化的视频,如何使用 FFMPEG 来实现这一点?

答案1

最恰当的回答是“花 3 个小时研究 ffmpeg 过滤器的工作原理”——今天我这么做只是为了好玩,所以我把这个问题当作一个挑战。

看起来有很多方法可以获得结果,但这对我有用:

  1. 生成一幅黑色图像和一幅白色图像,并将它们命名为img-001.pngimg-002.png

  2. 使用我从中学到的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。虽然它没有做完全相同的事情,但它可以适用于这项任务。

相关内容