Вопрос или проблема
Мне нужно преобразовать демо-запись с объемным звуком Dolby 5.1 в формате M2TS (H264-AC3) в WebM (VP9-Opus)
Я нашел процесс в два шага, чтобы сделать это здесь:
https://gist.github.com/vielhuber/cf918eed2b5cc9eaa63f
Первая команда выполняется успешно с громким и правильным панорамированием для объемного звука 5.1:
ffmpeg -i dolbyTest-Win10-Final.m2ts -vcodec libx264 -crf 20 -acodec ac3 -vf "yadif" test.mp4
К сожалению, несмотря на то, что второй шаг выполняется успешно и создает громкий аудиосигнал, он портит панорамирование фронт/тыл:
ffmpeg -i test.mp4 -af "channelmap=channel_layout=5.1" test2.webm
Я пробовал разные настройки, чтобы исправить ошибку во втором шаге, но панорамирование фронт/тыл всегда неправильное.
Есть ли более подходящие настройки/переключатели, которые я могу использовать на втором шаге, чтобы получить правильное панорамирование по динамикам?
ССЫЛКИ:
https://scribbleghost.net/2022/12/29/convert-audio-to-opus-with-ffmpeg/
https://ffmpeg.org/ffmpeg.html#Advanced-Audio-options
ПРИМЕЧАНИЕ:
Вы можете ознакомиться с моими правками, если хотите. Я просто пытаюсь сделать этот вопрос более понятным, теперь когда половина проблемы кажется решенной.
Ответ или решение
Для преобразования файла M2TS с 5.1-звуком в формат WebM с минимальными потерями качества звука, особенно при сохранении панорамирования каналов, необходимо правильно использовать FFmpeg, чтобы избежать проблем с корреспонденцией аудиоканалов.
Шаг 1: Конвертирование в промежуточный формат MP4
Вы уже успешно использовали первую команду, которая сохраняет качество звука и панорамирование:
ffmpeg -i dolbyTest-Win10-Final.m2ts -vcodec libx264 -crf 20 -acodec ac3 -vf "yadif" test.mp4
В данной команде используется libx264 для видеокодирования и ac3 для сохранения аудиоданных в том же формате, что и в исходном файле, что позволяет сохранить исходное панорамирование.
Шаг 2: Конвертация в WebM с правильной обработкой звука
Ваша текущая команда для второго шага усугубляет проблему панорамирования. Чтобы исправить это, необходимо тщательно настроить параметры аудиокодирования:
ffmpeg -i test.mp4 -c:v libvpx-vp9 -b:v 2M -c:a libopus -b:a 256k -ac 6 test.webm
Пояснение параметров:
- -c:v libvpx-vp9: Использование кодека VP9 для видеопотока для оптимизации WebM.
- -b:v 2M: Установка битрейта для видео в 2 Мбит/с. Можно подстроить под ваши нужды.
- -c:a libopus: Использование кодека Opus для аудиопотока. Этот кодек позволяет более качественно обрабатывать многоканальный звук с минимальными потерями.
- -b:a 256k: Установка битрейта для аудио. Этот параметр можно корректировать в зависимости от требований к качеству.
- -ac 6: Указание количества аудиоканалов, что соответствует 5.1. Это необходимо для корректного распределения каналов.
Рекомендации
- Тщательно проверьте результаты: После конвертаций прослушайте получившийся файл, уделяя внимание панорамированию звука. Если возможны проблемы, попробуйте подстроить битрейт или другие параметры кодека.
- Используйте актуальную версию FFmpeg: Всегда используйте последнюю версию программы, так как обновления могут содержать исправления ошибок и улучшения функционала.
Заключение
Этот процесс требует внимательного подхода к обработке аудиопотока и его кодированию для сохранения высокого качества звука. Следуя указанным шагам и используя соответствующие параметры кодека, вы сможете достичь нужного результата без потери важной акустической информации.