Как демультиплексировать аудио и знать, какой он тип?

Как демультиплексировать аудио и знать, какой он тип?

При мультиплексировании аудио в видео, ffmpeg, mencoder и т. Д. Требуется знать, что такое кодировка звука. Кодер обычно использует расширение имени файла как «параметр». например. .aac

Однако, когда звук, который будет мультиплексирован, будет демонтирован из другого видео, как я могу определить тип кодировки в сценарии?
Самое близкое, что я нашел, чтобы найти эту волшебную часть информации, – это получить строку 4CC кодекса (четыре символьных кода), но это не подходит. * (ОБНОВЛЕНИЕ: Кажется, что это не код 4CC, и на самом деле это обозначение mplayer «семейства кодеков» .. перечислено через: mplayer -afm help

 /usr/share/mplayer/midentify.sh $audio |sed -nr 's/^ID_AUDIO_CODEC=(.*)/\1/p')" 

В моем выходном видео используется контейнер MP4, поэтому мне нужно знать, в каком формате входной аудиосигнал, и перекодировать, если нужно … и в любом случае он запрашивает тип аудиокодера, а не код, выводимый приведенной выше командой.

Даже демультиплексирование, похоже, требует предузнания или типа кодека!

Я пробовал общий дамп, используя mplayer -dumpaudio $audio , но вывод не воспроизводится, даже если я вручную добавлю соответствующий суффикс.

One Solution collect form web for “Как демультиплексировать аудио и знать, какой он тип?”

Лучший инструмент идентификации типа медиа-интерфейса, о котором я знаю, – это MediaInfo . Его страница проекта показывает ее как программу Windows GUI, но есть версии командной строки для всех трех основных платформ. Выход командной строки доступен для чтения, но довольно легко разбираться с таким языком, как Perl.

Второй лучший инструмент, о котором я знаю, – ffprobe , часть пакета ffmpeg . Его выход труднее читать, чем в MediaInfo, без более простого анализа. (Оба требуют контекстно-зависимого анализатора, например, потому что они выполняют такие вещи, как печать нескольких строк «кодека», по одному для разных потоков в мультиплексировании). MediaInfo, похоже, также предоставляет более подробную информацию о потоках.

Вы, возможно, предпочтете ffprobe если вы уже используете ffmpeg , поскольку вы получаете его бесплатно при установке ffmpeg . Кроме того, поскольку они основаны на одном и том же коде, вы можете быть уверены, что если ffprobe может рассказать вам полезную информацию о файле, ffmpeg сможет обработать его.

Linux и Unix - лучшая ОС в мире.