Как временно объединить и отобразить звуки для измерения громкости из 5.1 WAV-файлов с помощью FFMPEG?

Как объединить стебли в 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 звуковую дорожку без необходимости создания промежуточного файла. Этот подход поможет вам проводить точные измерения громкости и упрощать рабочий процесс. Надеемся, что эта информация была полезна, и вы сможете применять ее в своих проектах!

Источник

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *