Хороший способ обнаружения альфа-канала в видео с помощью 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
.