Преобразование M2TS или MPG файла с объемным звучанием 5.1 в WebM с минимальной потерей качества звука

Вопрос или проблема

Мне нужно преобразовать демо Dolby 5.1 surround в M2TS (H264-AC3) в WebM (VP9-Opus).

Я нашел двухэтапный процесс для этого здесь:
https://gist.github.com/vielhuber/cf918eed2b5cc9eaa63f

Первая команда выполняется успешно с громким и правильным панорамированием для 5.1 surround:

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 или MPG с многоканальным звуком 5.1 в формат WebM с минимальной потерей качества аудио — это задача, которая требует внимательного подхода к обработке и настройке аудиотреков. Рассмотрим пошагово, как можно оптимизировать процесс с использованием FFmpeg, и избежать проблем с панорамированием звука.

Задача и Проблемы

Вы хотите конвертировать файл с кодеками H.264 и AC3 в новый файл с кодеками VP9 и Opus, при этом сохранив правильное распределение звука по каналам для 5.1 аудиосистемы. Возникает проблема, связанная с искажением переднего и заднего панорамирования звука после второго этапа конверсии.

Процесс Конвертации

Чтобы произвести эффективную конвертацию, следуйте следующим шагам:

  1. Исходное преобразование видеофайла:

    ffmpeg -i dolbyTest-Win10-Final.m2ts -map 0:v -vcodec libvpx-vp9 -crf 30 -b:v 0 -pix_fmt yuv420p -vf "yadif" video.webm

    Здесь мы использовали кодек libvpx-vp9 для видео, что обеспечит совместимость с WebM. Параметры crf и b:v регулируют качество и битрейт.

  2. Извлечение и преобразование аудио с точной настройкой каналов:

    ffmpeg -i dolbyTest-Win10-Final.m2ts -map 0:a -acodec libopus -ac 6 -b:a 320k -af "channelmap=6.0,pan=5.1:FL=0.7*FL+0.3*SL:FR=0.7*FR+0.3*SR:FC=FC:LFE=LFE:SL=0.3*FL+0.7*SL:SR=0.3*FR+0.7*SR" audio.webm

    В данном случае, используем кодек libopus и панорамную настройку channelmap для преобразования аудио в формат 5.1. Эта настройка помогает избежать потери при панорамировании.

  3. Объединение видео и аудио в один файл:

    ffmpeg -i video.webm -i audio.webm -c copy final_output.webm

Рекомендации

  • Тестирование результатов: Каждый из этапов требует тестирования для обеспечения, что аудио сохраняет правильное позиционирование для каждого канала. Используйте инструменты анализа аудио, чтобы проверить распределение звука.
  • Настройки кодеков: Обязательно учитывайте параметры кодеков crf и b:a, которые влияют на качество и размеры итогового файла.
  • Адаптация под оборудование: Протестируйте финальный файл на оборудовании, которое будет использоваться для воспроизведения, чтобы убедиться в корректности звучания.

Заключение

Следуя вышеописанным рекомендациям и настройкам, вы сможете успешно конвертировать файл в формат WebM с минимальной потерей качества звука. Если возникнут трудности, рекомендуется обратиться к документации FFmpeg или специализированным форумам для получения дополнительной поддержки.

Оцените материал
Добавить комментарий

Капча загружается...