Python: обнаружение кодеков, используемых в видео-контейнере - PullRequest
6 голосов
/ 31 июля 2010

У меня есть несколько видео контейнерных файлов, которые содержат аудио и видео в различных кодеках.Теперь я хотел бы проверить контейнер из скрипта Python, чтобы узнать, какой кодек используется для аудио + видео.Это на linux box, поэтому у меня есть все доступные инструменты, если это необходимо.

Я думал, что, возможно, gstreamer мог бы помочь мне здесь, но я не смог найти API, который мог бы помочь мне здесь.

Есть идеи?Я также открыт для любых предложений, не нужно быть gstreamer, пока это бесплатное программное обеспечение :-) fs

Ответы [ 3 ]

10 голосов
/ 03 февраля 2012
ffprobe -show_format -show_streams -loglevel quiet -print_format json YOUR_FILE

Просто вызовите это с subprocess.check_output, и вы получите прекрасное описание JSON вашего медиа-файла.Если вам нужно получить данные из stdin, замените YOUR_FILE на pipe: 0.

ffprobe поставляется с ffmpeg.

3 голосов
/ 31 июля 2010

Попробуйте загрузить исходный код ffmpeg и найдите исходный код для их программ командной строки. Я взломал подобные утилиты в прошлом. Я не публикую свое решение, потому что ffmpeg любит менять их API, поэтому мой старый код вряд ли будет компилироваться с текущей версией. Вы захотите проделать достаточно работы для создания контекста кодека, который вы можете проверить, чтобы получить то, что вам нужно.

Некоторые другие альтернативы:


EDIT:

http://code.google.com/p/pyffmpeg/ может иметь то, что вы хотите (я сам этим не пользовался).

1 голос
/ 04 августа 2010

Вы можете использовать decodebin2 в Gstreamer. Посмотрите на TAE для примеров кода.

...