FFmpeg 如何禁用视频输出?

FFmpeg How disable video output?

对于ffmpeg 4.3.1,我想使用“blackframe”滤镜。

每次在输入视频中检测到黑帧时,此过滤器都会在控制台中输出文本结果。

ffmpeg -i Input.avi -filter_complex "blackframe" Output.mkv
> [Parsed_blackframe_1 @ 0x7ff48c607a80] frame:206 pblack:100 ...

我不需要创建 Output.mkv 视频,因为控制台结果就足够了。

不幸的是,我无法在文档中找到如何禁用输出视频并仍然 运行 过滤器。从主要选项部分 https://www.ffmpeg.org/ffmpeg.html#Main-options 和我在其他地方尝试过的示例:

但是 none 这些命令有效:

ffmpeg -i Video.avi -filter_complex "black frame" -f null
> Filter blackframe has an unconnected output

ffmpeg -i Video.avi -filter_complex "black frame" -y NUL
> [NULL @ 0x7ffbe7026200] Unable to find a suitable output format for 'NUL'
> NUL: Invalid argument

如何禁用视频输出?

它在文档中的什么地方有解释?

在 Linux:

ffmpeg -i Video.avi -filter_complex "blackframe" -pass 1 -an -f rawvideo -y /dev/null

结果:

[Parsed_blackframe_0 @ 0x6e11940] frame:1 pblack:100 pts:2 t:0.041708 type:P last_keyframe:0
[Parsed_blackframe_0 @ 0x6e11940] frame:2 pblack:100 pts:4 t:0.083417 type:P last_keyframe:0
[Parsed_blackframe_0 @ 0x6e11940] frame:3 pblack:100 pts:6 t:0.125125 type:P last_keyframe:0
[Parsed_blackframe_0 @ 0x6e11940] frame:4 pblack:100 pts:8 t:0.166833 type:P last_keyframe:0
[Parsed_blackframe_0 @ 0x6e11940] frame:5 pblack:100 pts:10 t:0.208542 type:P last_keyframe:0
[Parsed_blackframe_0 @ 0x6e11940] frame:6 pblack:100 pts:12 t:0.250250 type:P last_keyframe:0
[Parsed_blackframe_0 @ 0x6e11940] frame:7 pblack:100 pts:14 t:0.291958 type:P last_keyframe:0
[Parsed_blackframe_0 @ 0x6e11940] frame:8 pblack:100 pts:16 t:0.333667 type:P last_keyframe:0
[Parsed_blackframe_0 @ 0x6e11940] frame:9 pblack:100 pts:18 t:0.375375 type:P last_keyframe:0
[Parsed_blackframe_0 @ 0x6e11940] frame:10 pblack:100 pts:20 t:0.417083 type:P last_keyframe:0
[Parsed_blackframe_0 @ 0x6e11940] frame:11 pblack:100 pts:22 t:0.458792 type:P last_keyframe:0
[Parsed_blackframe_0 @ 0x6e11940] frame:12 pblack:100 pts:24 t:0.500500 type:I last_keyframe:12
[Parsed_blackframe_0 @ 0x6e11940] frame:13 pblack:100 pts:26 t:0.542208 type:P last_keyframe:12
[Parsed_blackframe_0 @ 0x6e11940] frame:14 pblack:100 pts:28 t:0.583917 type:P last_keyframe:12

该命令指定无音频,然后将原始视频转储到/dev/null

ffmpeg 文档: https://ffmpeg.org/ffmpeg.html#Video-Options 参见:-pass

Windows 上的命令声称是 -y NUL 而不是 -y /dev/null 但我无法测试它。

您在 null 尝试中缺少输出 url。只需添加一个 -

ffmpeg -i Video.avi -vf "blackframe" -f null -

由于您是 运行 单个流上的过滤器,-vf 就可以了。