Как объединить стебли в 5.1 смесь с помощью FFmpeg
Если вы работаете с многоканальным звуком, особенно в формате 5.1, может возникнуть необходимость в объединении отдельных стеблей в одну групповую смесь. Использование FFmpeg — это мощный инструмент для таких задач, и в этой статье мы рассмотрим, как это сделать, чтобы получить точные измерения громкости без создания промежуточного файла.
Исходные данные: шесть стеблей Mono WAV
Для начала уточним, что у вас есть шесть стеблей в формате Mono WAV, обозначенных как L, R, C, LFE, LS и RS. Эти стебли представляют собой каналы звуковой дорожки 5.1. Ваша цель заключается в том, чтобы объединить их в одну группу для получения измерений громкости в качестве полноценного набора 5.1.
Проблемы с промежуточными файлами
Для анализа звука вы можете использовать следующий код, который работает с одной смешанной дорожкой:
ffmpeg -i Muxed6ch.wav -filter_complex ebur128=peak=true -f null
Тем не менее, на практике бывают ситуации, когда необходимо проверить набор стеблей, не создавая интуированный промежуточный файл. Попытка объединить каналы напрямую с помощью команд, подобных этой, может не дать ожидаемого результата:
ffmpeg -i Left.wav -i Right.wav -i Center.wav -i LFE.wav -I LeftSurround.wav -i RightSurround.wav -map 0 -map 1 -map -2 -map 3 -map 4 -map 5 -filter_complex ebur128=peak=true -f null
К сожалению, данный подход не срабатывает, и необходимо использовать фильтры для правильного объединения и маркировки потоков.
Правильный подход к объединению стеблей
Чтобы успешно объединить шесть стеблей в одну дорожку 5.1, вам нужно использовать фильтр join
и четко указать разметку для каждого из каналов. Вот как будет выглядеть команда:
ffmpeg -i Left.wav -i Right.wav -i Center.wav -i LFE.wav -i LeftSurround.wav -i RightSurround.wav -filter_complex "[0][1][2][3][4][5]join=inputs=6:channel_layout=5.1(side):map=0.0-FL|1.0-FR|2.0-FC|3.0-LFE|4.0-SL|5.0-SR,ebur128=peak=true" -f null -
В этом коде мы передаем все шесть входных потоков в фильтр join
, указывая, что мы собираем 5.1-канальную дорожку и назначаем каждый канал соответственно.
Выводы
Теперь вы знаете, как использовать FFmpeg для объединения отдельных стеблей в 5.1 звуковую дорожку без необходимости создания промежуточного файла. Этот подход поможет вам проводить точные измерения громкости и упрощать рабочий процесс. Надеемся, что эта информация была полезна, и вы сможете применять ее в своих проектах!