FFmpeg проверить каналы звука 7.1 для тишины - PullRequest
0 голосов
/ 13 февраля 2019

Это дополнительный вопрос из моего предыдущего вопроса здесь , где мне нужно было искать тишину в определенной звуковой дорожке.Вот ffmpeg спасательное решение, где помогает получить некоторые метаданные:

ffmpeg -i file -map 0:a:1 -af astats -f null -

Но у меня есть другой тип входных файлов .mp4, где они имеют одну единственную дорожку 8 (т.е. 7.1) аудиоканалы.По-видимому, эти файлы транскодируются из оригинального файла (как-то 4-х трековые стерео врезаны в эти файлы).Теперь, как и в предыдущем случае, мне нужно знать, был ли исходный файл 2-канальным стерео или 5.1 (6) каналом.

Как узнать, является ли определенный канал звуковой дорожки (скажем, Center канал) бесшумным / немым, возможно, с использованием ffmpeg? Здесь - это образец .mp4 файла.

1 Ответ

0 голосов
/ 13 февраля 2019

Вы можете использовать фильтр channelsplit для разделения звуковых каналов и запуска silencedetect на каждом.

Пример:

ffmpeg -i test2.mp4 -filter_complex "[0:a]channelsplit=channel_layout=7.1:channels=FC[fc];[fc]silencedetect" -f null /dev/null

Подробнее об управлении аудиоканалом можно узнать здесь: https://trac.ffmpeg.org/wiki/AudioChannelManipulation

...