Вопрос или проблема
Я использую следующий синтаксис для преобразования MKV в MP4 с AAC 6ch и DTS-HD MA 8ch без проблем.
ffmpeg -i "Movie (2022).mkv" -c copy -map 0:? -strict -2 "Movie (2022).mp4"
Какой синтаксис позволит использовать AAC 6ch и TrueHD Atmos 8ch?
Вы можете использовать ffmpeg для копирования AAC из mkv, но не для потоков TrueHD в mp4. Вы можете добавить потоки TrueHD в mp4 позже, используя mp4box. Этап:
- Я рекомендую извлечь все потоки с помощью mkvcleaver из mkv.
- Смонтировать видео потоки и потоки aac/dts, используя ffmpeg или лучше dd+ (ec3,ac3,aac) с помощью mp4muxer в mp4, dolby mp4muxer с github необходим для поддержания обнаружения Dolby Vision / Dolby Atmos.
- Смонтировать добавленные файлы с помощью mp4box для без потерь субтитров, таких как truehd (без ac3 core) и некоторые внутренние субтитры SRT с помощью mp4box.
Этапы 2,3 могут быть выполнены автоматически с помощью Dovi_script (mp4box и mp4muxer включены) https://drive.google.com/drive/u/0/folders/1X4WmMsaBO6a4OIY_8iFjeBL2KFZWTqKr Выберите вариант 8-1-1
Этапы 2,3 вручную с использованием mp4muxer и mp4box https://github.com/DolbyLaboratories/dlb_mp4base/tree/master/bin
Пример для потоков без Dolby Vision и dolby atmos truehd:
mp4muxer.exe -i Dolby_Conductor_Lossless_ATMOS-thedigitaltheater_Track01.h264 -i Dolby_Conductor_Lossless_ATMOS-thedigitaltheater_Track02.ac3 -o Dolby_Conductor_Lossless_ATMOS-thedigitaltheater.mp4
MP4Box.exe -add Dolby_Conductor_Lossless_ATMOS-thedigitaltheater.mp4:rate=0 -add dolby.ac3 -add "Dolby_Conductor_Lossless_ATMOS-thedigitaltheater.mkv_ - 2 - TrueHD (Atmos), 7.1 channels, 48kHz.thd":disable -brand mp42isom -ab dby1 -no-iod Dolby_Conductor_Lossless_ATMOS-thedigitaltheater_TrueHD_AC3.mp4
Для Dolby Vision вам нужна информация о профиле потоков (проверка с помощью mediainfo)
--dv-profile <arg> = Устанавливает профиль Dolby Vision. Эта опция ОБЯЗАТЕЛЬНА для
DoVi элементарный поток: допустимы следующие значения профиля:
4 - dvhe.04, BL кодек: HEVC10; EL кодек: HEVC10; BL совместимость: SDR/HDR.
5 - dvhe.05, BL кодек: HEVC10; EL кодек: N/A; BL совместимость: Нет.
7 - dvhe.07, BL кодек: HEVC10; EL кодек: HEVC10; BL совместимость: Blue-ray HDR10.
8 - dvhe.08, BL кодек: HEVC10; EL кодек: N/A; BL совместимость: SDR/HDR.
9 - dvav.09, BL кодек: AVC; EL кодек: N/A; BL совместимость: SDR/HDR.
--dv-bl-compatible-id <arg> = Устанавливает совместимый ID базового слоя Dolby Vision, если индекс профиля равен 8, этот параметр должен быть установлен пользователем.
--dv-bl-compatible-id 0 – отсутствие кросс-совместимости
--dv-bl-compatible-id 1 – кросс-совместимость HDR10 (обычно используется этот)
--dv-bl-compatible-id 2 – кросс-совместимость SDR
--dv-bl-compatible-id 4 – кросс-совместимость HLG
--dv-bl-compatible-id 6 – кросс-совместимость Blueray
Для профиля 7
mp4muxer -i P7_FEL_GIJoe_The_Rise_of_Cobra_Track01.h265 -i P7_FEL_GIJoe_The_Rise_of_Cobra_Track02.ec3 -o P7_FEL_GIJoe_The_Rise_of_Cobra.mp4 --dv-profile 7 --mpeg4-comp-brand mp42,iso6,isom,msdh,dby1 --overwrite
Для профиля 8
mp4muxer -i P81_GlassBlowing2_3840x2160@59_94fps_15200kbps_Track01.h265 -i P81_GlassBlowing2_3840x2160@59_94fps_15200kbps_Track02.ec3 -o P81_GlassBlowing2_3840x2160@59_94fps_15200kbps.mp4 --dv-profile 8 --dv-bl-compatible-id 1 --mpeg4-comp-brand mp42,iso6,isom,msdh,dby1 --overwrite
Ответ или решение
Конвертация видеофайлов с формата MKV в MP4 с сохранением качества звука может представлять собой сложную задачу, особенно если нужно обеспечить наличие нескольких звуковых дорожек с разными характеристиками, такими как AAC и TrueHD Atmos. Рассмотрим более подробно, как можно осуществить такую конвертацию, включая в процесс несколько этапов и дополнительные инструменты.
Теория
Формат MKV (Matroska) является контейнером, который поддерживает множество видео, аудио и субтитровых потоков. Он широко используется благодаря своей гибкости и поддержке различных форматов кодеков без потери качества.
MP4 (MPEG-4 Part 14) — тоже контейнер, но с более жесткими ограничениями по части поддерживаемых аудио и видео кодеков. К примеру, главный недостаток MP4 по сравнению с MKV заключается в ограниченной поддержке аудио формата TrueHD Atmos, который часто используется в высококачественных видеоматериалах. В то время как AAC прекрасно поддерживается в MP4, TrueHD Atmos требует особого подхода для своей интеграции.
Пример
На практике, первым шагом будет конвертация или трансформация аудио- и видеопотоков из MKV в MP4. Это включает в себя использование таких инструментов, как ffmpeg
, mp4box
и mp4muxer
.
-
Извлечение потоков: Для начала рекомендуется извлечь все потоки из MKV файла. Это можно сделать, используя инструмент
mkvcleaver
, который эффективно разбивает MKV на составляющие без потерь качества. -
Конвертация и муксирование потоков:
Здесь используетсяffmpeg
для конвертации потока AAC в нужный формат. Однако для TrueHD Atmos есть определенные ограничения, поскольку MP4 формат не поддерживает его наравне с MKV.ffmpeg -i "Movie (2022).mkv" -c:a:0 aac -b:a 384k -c:v copy -map 0 "Movie_AAC.mp4"
-
Упаковка TrueHD Atmos:
TrueHD можно добавить к MP4, используяmp4box
, но нет прямой поддержки этого формата, что требует использования дополнительных программ, таких какmp4muxer
(доступный на GitHub от Dolby Laboratories). Этот инструмент поддерживает спецификации Dolby для атмосферного звучания и 3D. -
Дополнительные инструменты для автоматизации:
Dovi_script является удобной заготовкой, включающей какmp4box
, так иmp4muxer
, что позволяет автоматизировать часть процесса.
Применение
Используя инструменты, описанные выше, можно реализовать полный процесс конвертации следующим образом:
-
Извлечение потоков с помощью
mkvcleaver
: Это первый шаг, на котором вы извлекаете видеопоток, аудиопотоки AAC и TrueHD раздельно. -
Конвертация видео и установка AAC в контейнер mp4 с
ffmpeg
:ffmpeg -i "Movie (2022).mkv" -c:v copy -c:a aac -b:a 320k -map 0 "Movie_Processed.mp4"
-
TrueHD и Dolby Atmos в MP4 с использованием
mp4muxer
: Этот инструмент дополняет работуffmpeg
, обеспечивая качества Dolby в mp4.mp4muxer -i audio_truehd.thd -i Movie_Processed.mp4 -o Final_Movie.mp4
-
Добавление метаданных и финальная упаковка с использованием
mp4box
:MP4Box -add Final_Movie.mp4:rate=0 -brand mp42isom -ab dby1 -no-iod Final_Movie_TrueHD.mp4
Заключение
Процесс конвертации MKV в MP4, поддерживающий многоканальное AAC и TrueHD Atmos, требует понимания ограничений контейнера MP4 и использования нескольких инструментов, чтобы сохранить качество звука и видео. Использование таких программ как ffmpeg
, mp4box
, и mp4muxer
в сочетании обеспечивает сохранение всех необходимых характеристик аудио и приведение материала в соответствие с требованиями Dolby Atmos.
Важно учитывать, что данная операция может обрести дополнительные сложности в зависимости от конкретных характеристик исходного файла (например, наличие Dolby Vision для видео), что потребует применения дополнительных опций и настроек в используемых инструментах для достижения наилучшего результата.