Преобразовать файл Dolby Vision в контейнере MKV в контейнер MP4

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

У меня есть файл Dolby Vision размером 5 ГБ, закодированный в контейнере MKV. Если я воспроизводлю этот файл на своем телевизоре LG CX, на дисплее наблюдается изменение окраски. Очевидно, что медиаплеер WebOS по умолчанию, который идет с OLED-телевизором LG, не может правильно декодировать DV в контейнере MKV. Я пытаюсь конвертировать DV из контейнера MKV в DV MP4. Это первый раз, когда я использую FFMpeg для конвертации. Я запустил команду ffmpeg -i Tiny.mkv Tiny_converted.mp4 в командной строке. Она начала выполняться и выдала много сообщений “Пропуск NAL ******” (скриншот прикреплен). Я не уверен, являются ли это предупреждениями или сообщениями об ошибках. В любом случае, я оставил ее работать около 4 часов, а затем остановил. Я не был уверен, происходит ли на самом деле конвертация.

  1. Является ли это правильной командой для простой конвертации DV MKV в DV MP4 без потери DV и Dolby аудио?
  2. Являются ли эти сообщения предупреждениями или ошибками?
  3. Сколько времени обычно требуется для конвертации файла объемом 5 ГБ?

Являются ли эти сообщения об ошибках “Пропуск NAL единицы 62”?

лог

С уважением,
Anish

Этот код является частью моего рабочего процесса по конвертации mkv в mp4, чтобы он мог воспроизводиться на телевизоре LG (тестировались G2 и CX). Все это выполняется на Linux с зависимостями от ffmpeg, dovi_tool и M4Box. Он действительно транскодирует видео и аудиодорожки, но по крайней мере показывает направление, в котором вам нужно двигаться.

# извлекаем видеодорожки и аудиодорожки
mkvextract "name_here.mkv" tracks 0:"name_here_raw.hevc" 1:"name_here_raw.audio"
# извлекаем RPU
dovi_tool -m 2 extract-rpu "name_here_raw.hevc"
# транскодируем видеодорожки и аудиодорожки
ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi -i "name_here_raw.hevc" -i "name_here_raw.audio" -loglevel error -stats -vf "hwupload" -c:v hevc_vaapi -c:a aac -profile:v main10 -level:v 5.1 -tier:v high -bsf:v "hevc_mp4toannexb" -b:v 20M -maxrate 22M "name_here_transcoded.hevc" "name_here.aac"
# внедряем RPU в транскодированную видеодорожку
dovi_tool inject-rpu -i "name_here_transcoded.hevc" --rpu-in RPU.bin -o "name_here_injected.hevc"
# конвертируем в mp4 с профилем dovi 8.1
MP4Box -add "name_here_injected.hevc":dvp=8.1:xps_inband:hdr=none -brand mp42isom -no-iod -enable 1 "name_here_video.mp4" -tmp "/some_temp_dir"
# добавляем аудиодорожку
ffmpeg -i "name_here_video.mp4" -i "name_here.aac" -loglevel error -stats -map 0:v:0 -map 1:a:0 -sn -c:v copy -c:a copy -movflags +faststart -strict experimental "$name_here_final.mp4";

Непроверенный код, который вы можете попробовать, когда нет необходимости в транскодировании:

# без '-strict experimental' вы получите только HDR
ffmpeg -i "name_here_video.mkv" -c:v copy -c:a copy -movflags +faststart -strict experimental "$name_here_final.mp4";

Ответ или решение

Преобразование файла Dolby Vision из контейнера MKV в MP4

Ваша задача преобразовать файл Dolby Vision, имеющий контейнер MKV, в MP4, и возникает необходимость более подробно разобраться в этом процессе, учитывая советы, приведенные вами. Давайте подробно ответим на ваши вопросы, чтобы предоставить полное понимание и возможные решения.

1. Правильность команды для преобразования Dolby Vision MKV в Dolby Vision MP4

Вы использовали следующую команду:

ffmpeg -i Tiny.mkv Tiny_converted.mp4

Эта команда будет работать, но с ней могут возникнуть проблемы, если вы хотите сохранить информацию о Dolby Vision и звуковые дорожки. Дело в том, что просто копирование (то есть, использование -c copy) может не сработать в случае, если вы используете специфические кодеки или метаданные.

Для правильного преобразования вам потребуется учитывать следующие моменты:

  • Метаданные: Dolby Vision включает в себя метаданные, которые могут не сохраняться при простой конвертации.
  • Кодек: Убедитесь, что вы используете кодек, совместимый с MP4. Dolby Vision требует специальной обработки.

В качестве более подходящей команды можно рассмотреть использование -c:v copy для копирования видео и -c:a copy для копирования аудио (если это допустимо):

ffmpeg -i Tiny.mkv -c:v copy -c:a copy -movflags +faststart Tiny_converted.mp4

Этот подход минимизирует возможные потери качества при конвертации, однако может не корректно обработать метаданные Dolby Vision.

2. Предупреждающие или ошибочные сообщения

Сообщения вида "Skipping NAL ***" являются предупреждениями, а не ошибками. Они указывают на то, что FFmpeg пропускает определенные единицы (NAL units) во время обработки, что часто связано с не совсем корректным потоком данных в исходном файле. Это может быть нормальной ситуацией, особенно когда файл содержит не все необходимые данные для корректной работы.

3. Время конвертации 5GB файла

Время конвертации зависит от множества факторов, включая:

  • Мощность вашего компьютера или сервера (ЦП, ОЗУ).
  • Загруженность системы во время конвертации.
  • Выбранные параметры кодирования (если есть, особенно если включает в себя транскодирование).

В общем случае конвертация большого файла (5 ГБ) может занять от нескольких минут до нескольких часов. Однако если ваш текущий процесс длился 4 часа и всё еще не завершился, возможно, вы использовали параметры, которые замедляют работу.

Дополнительные рекомендации

Если вы хотите использовать более сложный подход, как показано в коде из вашего исходного текста, убедитесь, что у вас установлены все необходимые инструменты, такие как mkvextract, dovi_tool и MP4Box. Этот процесс включает в себя:

  1. Извлечение видео и аудиотреков из MKV.
  2. Обработка видео для внедрения метаданных Dolby Vision.
  3. Создание финального MP4 с учетом всех специфических требований.

Это может значительно помочь в корректной обработке видео и аудиотреков без потерь качества.

Заключение

Ваша задача по преобразованию Dolby Vision из MKV в MP4 часто требует более детального подхода, чем простое копирование. Использование правильных команд и дополнений поможет вам обеспечить корректное воспроизведение на вашем LG TV без цветовых искажений. Рекомендуется дополнительно протестировать полученные файлы и следовать инструкциям по обработке, чтобы избежать возможных проблем в будущем.

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

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