检测彩条 ffmpeg

检测彩条 ffmpeg

有没有办法使用 ffmpeg(甚至是 linux 命令)来检测正在处理的视频是否有实际内容还是仅有彩条?

这是我的情况:我有一个使用 BMD 执行 RTMP 流式传输的系统。效果很好,唯一的问题是 BMD 需要配置特定模式才能捕获输入,否则它只会输出带有彩条的视频,而不是实际的输入。

答案1

您可以做的是将 BMD 彩条的一帧捕获到图像中,然后与流进行差异模式混合,然后将其传递到黑帧检测器。

当输入流和彩条图像匹配时,ffmpeg 将显示如下读数:

[Parsed_blackframe_1 @ 00000000034c67e0] frame:816 pblack:99 pts:417792 t:27.200000 type:P last_keyframe:640

步骤1生成彩条图像

ffmpeg -i rtmp://example.com -vframes 1 colorbars.jpg

第2步分析输入流

ffmpeg -i rtmp://example.com -loop 1 -i colorbars.jpg -filter_complex \
      "[0:v][1:v]blend=difference:shortest=1,blackframe" \
      -f null -

相关内容