Чтобы автоматизировать сценарии для работы с видеофайлами, я хотел бы получить список поддерживаемых аудиокодеков - в идеале с их именами кодировщиков - на основе видеокодека и формата контейнера (также может быть известен как muxer или demuxer), как это поддерживается ffmpeg
.
Узнайте видео кодек, используя:
ffprobe -v error -select_streams v:0 -show_entries stream=codec_name \
-of default=noprint_wrappers=1:nokey=1 video.mp4
который возвращает h264
. Узнайте формат контейнера, используя:
ffprobe -v error -select_streams v:0 -show_format_entry format_name \
-of default=noprint_wrappers=1:nokey=1 video.mp4
Который возвращает mov,mp4,m4a,3gp,3g2,mj2
.
Мы предполагаем, что входной видеофайл не имеет аудиопотока, поэтому мы не можем просто использовать:
ffprobe -v error -select_streams a:0 -show_entries \
stream=codec_name -of default=noprint_wrappers=1:nokey=1 video.mp4
который в противном случае вернул бы aac
.
Команды в https://stackoverflow.com/a/20587693/188159 могут иметь решение, но я не смог выяснить, как их фильтровать.