在最近的版本中,选项似乎略有变化。
要使用过滤器输入源,您必须:
- 使用以下命令将输入格式设置为 libavfilter 虚拟设备:
-f lavfi
- 使用
-i 标志(不是-vf)设置过滤器输入源
- 以完整的键值对的形式提供参数,例如:
color=color=red
这也适用于ffplay,以测试您的过滤器图:ffplay -f lavfi -i color
示例
在这些示例中,我添加了 -t 30 以指定我只想要 30 秒的输出。
颜色(红色)
ffmpeg -f lavfi -i color=color=red -t 30 red.mp4
^ ^ ^
| | |
filter key value
密钥可以缩写为它的缩写形式:-i color=c=red
SMPTE 彩条图案
ffmpeg -f lavfi -i smptebars -t 30 smpte.mp4
测试源模式
ffmpeg -f lavfi -i testsrc -t 30 -pix_fmt yuv420p testsrc.mp4
为了使其可靠播放,您可能需要设置像素格式:-pix_fmt yuv420p
默认情况下,ffmpeg 会使用 yuv444p (x264, High 4:4:4 Predictive),即some players aren't yet able to decode。
例如,它创建的视频导致 VLC 2.0.7 崩溃,在 QuickTime Player 10.2 (Mac OS X 10.8.4) 中只有 30 秒的黑屏。
更多关于测试源here的信息。
RGB 测试源
ffmpeg -f lavfi -i rgbtestsrc -pix_fmt yuv420p -t 30 rgbtestsrc.mp4
与上一个示例一样,这可能对您不起作用,除非您将像素格式设置为 yuv420p,如图所示。
为了后代,这是我正在使用的版本:
ffmpeg version 1.2.1
libavutil 52. 18.100 / 52. 18.100
libavcodec 54. 92.100 / 54. 92.100
libavformat 54. 63.104 / 54. 63.104
libavdevice 54. 3.103 / 54. 3.103
libavfilter 3. 42.103 / 3. 42.103
libswscale 2. 2.100 / 2. 2.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100