Хороший способ обнаружения альфа-канала в видео с помощью ffmpeg/ffprobe

В моем Django-приложении загруженные видеофайлы перекодируются в определенный формат с помощью ffmpeg.

Теперь мне нужен способ надежно определить, есть ли в загруженном видео альфа-канал или нет. Обычно я использую ffprobe для получения метаданных видео. Не могли бы вы указать мне правильное направление?

Вы можете сделать это в два этапа, используя ffprobe.

#1

ffprobe -v 0 -select_streams v:0 -show_entries stream=pix_fmt -of compact=p=0:nk=1 "$FILE"

Это выведет пиксельный формат видеопотока. Все пиксельные форматы с альфа-компонентом имеют a в своем имени, но не все форматы с a имеют альфу. Поэтому, выполните

#2

ffprobe -v 0 -show_entries pixel_format=name:flags=alpha -of compact=p=0  | grep "$PIX_FMT|" | grep -oP "(?<=alpha=)\d"

где $PIX_FMT - показания, напечатанные на шаге 1. Результатом будет 1 или 0.

Вернуться на верх