Есть ли способ использовать ffmpeg (или даже команду linux), чтобы определить, имеет ли обрабатываемое видео фактический контент или только цветные полосы?

Это мой сценарий: у меня есть система, которая использует BMD для выполнения потоковой передачи RTMP. Это хорошо работает, единственная проблема заключается в том, что BMD нужен особый режим, сконфигурированный для захвата ввода, в противном случае он будет плевать только видео с цветными полосами вместо реального ввода.

1 ответ1

2

Что вы можете сделать, это зафиксировать кадр цветных полос BMD на изображении, а затем создать смешанный режим с потоком, который затем пропускается через детектор черной рамки.

Если входной поток и изображение цветных полос совпадают, ffmpeg будет отображать показания следующим образом:

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

Шаг 1 Создайте изображение цветных полос

ffmpeg -i rtmp://url -vframes 1 colorbars.jpg

Шаг 2 Анализ входного потока

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .