У меня есть файл MPEG-H Part2/HVEC (H.265) .mkv (Planar 4:2:0 YUV 10-bit LE). Поскольку мой проектор LG PF 1500 читает не H.265, а H.264, я хотел бы преобразовать его (HVEC -> H.264). Я думаю, что ручной тормоз - удобная программа для этого.
Какие настройки следует использовать, чтобы получить файл H.264 такого же качества, как и оригинал (HVEC)?
Я думаю, что я должен выбрать H.264 10-бит в качестве видеокодера. Однако я не уверен в настройке качества (RF). Как узнать, что такое настройка качества HVEC, и как выбрать равную настройку для H.264?
Это информация, извлеченная с помощью MediaInfo:
Формат: Matroska Версия формата
: Версия 4 Размер файла: 1,48 ГиБ Продолжительность: 52 мин 46 с Общий битрейт: 4 012 кбит/с Дата кодирования
: UTC 2018-05-26 19:19:57 Приложение для записи: mkvmerge v20.0.0 ( 'I Am The Sun') 64-разрядная библиотека записи
: libebml v1.3.5 + libmatroska v1.4.8 Интерфейс записи
: StaxRip v1.7.0.6Идентификатор видео : 1 Формат
: HEVC Формат/Информация : Высокоэффективное кодирование видео Профиль формата : Основной 10@L4@Main ID кодека : V_MPEGH/ISO/HEVC Продолжительность : 52 мин 46 с Скорость передачи : 3 529 кб/с Ширина : 1
920 пикселей Высота : 1 080 пикселей Соотношение сторон дисплея : 16:9 Режим частоты кадров
: Постоянный Частота кадров : 23,976 (24000/1001) кадров в секунду Цветовое пространство : YUV Подвыборка цветности : 4:2:0 Разрядность
: 10 бит Бит/(пиксель*кадр) : 0,071 Размер потока : 1,30 ГиБ (88%) Библиотека записи : x265 2.7+346-69aafa6d70ad: [Windows][GCC 7.3.0][64 бит] 10 бит Настройки кодирования : cpuid= 1111039/frame-threads=2/numa-pools=4/wpp/no-pmode/no-pme/no-psnr/ssim/log-level=2/input-csp=1/input-res=1920x1080/interlace= 0 / total-frames = 75917 / level-idc = 0 / high-tier = 1 / uhd-bd = 0 / ref = 3 / no-allow-non-conformance / no-repeat-headers / Annexb / no-aud / no-hrd / info / hash=0 / no-temporal-layers / open-gop / min-keyint=23 / keyint=250 / gop-lookahead=0 / bframes=8 / b-adapt=2 / b-pyramid / bframe-bias = 0 / rc-lookahead = 50 / lookahead-slices = 6 / scenecut = 40 / radl = 0 / no-intra-refresh / ctu = 64 / min-cu-size = 8 / no-rect / no- amp / max-tu-size=32 / tu-inter-depth=1 / tu-intra-depth=1 / limit-tu=0 / rdoq-level=0 / dynamic-rd=0.00 / no-ssim-rd / signhide / no-tskip / nr-intra=0 / nr-inter=0 / no-constrained-intra / no-strong-intra-smoothing / max-merge=3 / limit-refs= 3 / режимы без ограничений / я = 3 / субме = 3 / merange = 57 / темпоральный-мвп / весp / без весаb / без анализа-изображения-источник / deblock = 0: 0 / sao / no-sao- без деблокировки / rd = 3 / без раннего пропуска / без rskip / без быстрого внутреннего пропуска / без tskip-быстрого / без cu-без потерь / без b-внутри / без раздельного пропуска / rdpenalty= 0 / psy-rd=2.00 / psy-rdoq=0.00 / no-rd-refine / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=crf / crf=20.0 / qcomp=0.60 / qpstep=4 / stats- запись = 0 / статистика чтения = 0 / ipratio = 1,40 / pbratio = 1,30 / aq-mode = 3 / aq-strength = 1.00 / cutree / zone-count = 0 / no-strict-cbr / qg-size = 32 / no-rc-grain / qpmax = 69 / qpmin = 0 / no-const-vbv / sar = 0 / overscan = 0 / videoformat=5 / range=0 / colorprim=2 / transfer=2 / colormatrix=2 / chromaloc=0 / display-window=0 / max-cll=0,0 / min-luma=0 / max-luma=1023 / log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / slices=1 / no-opt-qp-pps / no-opt-ref-list-length-pps / no-multi- pass-opt-rps/scenecut-bias=0.05/no-opt-cu-delta-qp/no-aq-motion/no-hdr/no-hdr-opt/no-dhdr10-opt/no-idr-recovery- sei / analysis-reuse-level = 5 / scale-factor = 0 / Refine-Intra = 0 / Refine-Inter = 0 / Refine-mv = 0 / No-Limit-Sao / Ctu-Info = 0 / No-Lowpass- dct/refine-mv-type=0/copy-pic=1/max-ausize-factor=1.0/no-dynamic-refine/no-single-sei По умолчанию0 / min-luma = 0 / max-luma = 1023 / log2-max-poc-lsb = 8 / vui-timing-info / vui-hrd-info / slices = 1 / no-opt-qp-pps / no- opt-ref-list-length-pps / no-multi-pass-opt-rps / scenecut-bias=0.05 / no-opt-cu-delta-qp / no-aq-motion / no-hdr / no-hdr- opt / no-dhdr10-opt / no-idr-recovery-sei / analysis-reuse-level = 5 / scale-factor = 0 / Refine-Intra = 0 / Refine-Inter = 0 / Refine-mv = 0 / No- limit-sao/ctu-info=0/no-lowpass-dct/refine-mv-type=0/copy-pic=1/max-ausize-factor=1.0/no-dynamic-refine/no-single-sei По умолчанию0 / min-luma = 0 / max-luma = 1023 / log2-max-poc-lsb = 8 / vui-timing-info / vui-hrd-info / slices = 1 / no-opt-qp-pps / no- opt-ref-list-length-pps / no-multi-pass-opt-rps / scenecut-bias=0.05 / no-opt-cu-delta-qp / no-aq-motion / no-hdr / no-hdr- opt / no-dhdr10-opt / no-idr-recovery-sei / analysis-reuse-level = 5 / scale-factor = 0 / Refine-Intra = 0 / Refine-Inter = 0 / Refine-mv = 0 / No- limit-sao/ctu-info=0/no-lowpass-dct/refine-mv-type=0/copy-pic=1/max-ausize-factor=1.0/no-dynamic-refine/no-single-sei По умолчанию05 / no-opt-cu-delta-qp / no-aq-motion / no-hdr / no-hdr-opt / no-dhdr10-opt / no-idr-recovery-sei / анализ-повторное использование-уровень = 5 / масштабный фактор = 0 / уточнение-внутри = 0 / уточнение-интер = 0 / уточнение-mv = 0 / без ограничения-sao / ctu-info = 0 / без lowpass-dct / уточнение-mv-тип = 0 / copy-pic=1 / max-ausize-factor=1.0 / no-dynamic-refine / no-single-sei По умолчанию05 / no-opt-cu-delta-qp / no-aq-motion / no-hdr / no-hdr-opt / no-dhdr10-opt / no-idr-recovery-sei / анализ-повторное использование-уровень = 5 / масштабный фактор = 0 / уточнение-внутри = 0 / уточнение-интер = 0 / уточнение-mv = 0 / без ограничения-sao / ctu-info = 0 / без lowpass-dct / уточнение-mv-тип = 0 / copy-pic=1 / max-ausize-factor=1.0 / no-dynamic-refine / no-single-sei По умолчанию
: Да Принудительно : Нет
Пытался найти решение в книге: Video Coding Standards and Video Formats by Rao, однако толкового подсказки не нашел.
похоже, что видео закодировано со скоростью 4000 кбит/с, а не с коэффициентом скорости (RF).
Но дело не в этом. Проблема в том, что хотя 264 и поддерживает кодирование без потерь, он не является широко совместимым! (вы бы сделали это, установив цветовой формат на hi444 и -cq 0
(спасибо Gyan за указание на это)
Если вам нужно наилучшее качество, но также и самый большой файл, вам нужен файл RF = 1
.
Если вам нужно очень хорошее качество, но все же огромные файлы, вам нужно RF <= 16
хорошее качество с большими файлами, 16 < RF <=24
посредственное качество со средним размером файла 24 < RF <= 28
до 51 становится все хуже и меньше.
Вы также можете рассмотреть возможность использования ffmpeg для перекодирования видеофайлов, которые вы не хотите редактировать, поскольку большинство видеоредакторов также теряют качество в процессе повторного рендеринга входных данных для кодировщика.
Ссылка: https://ffmpeg.zeranoe.com/builds/
Полная документация: https://ffmpeg.org/documentation.html
Если вам нужно хорошее качество, но длительное время кодирования, используйте это в CMD, который может видеть ffmpeg.exe :
ffmpeg -i my_input_file.mkv -map 0:v? -map 0:a? -map 0:s? -c:v libx264 -preset:v medium -profile:v high -rc-lookahead 900 -crf 16 -c:a copy -c:s copy my_output_file.mkv
Параметры означают следующее:
-i <file>
файл для перекодирования
-map 0:v?
использовать все видеопотоки из входа 0. Знак вопроса означает «если они существуют»
-map 0:a?
использовать все аудиопотоки
-map 0:a?
использовать все потоки субтитров
-c:v libx264
преобразовать видео с помощью libx264
кодировщика.
-preset:v medium
используйте среднюю скорость. Альтернативы: ultrafast
, superfast
, veryfast
, faster
, fast
, medium
, slow
, slower
, veryslow
, placebo
(чем быстрее, тем больше файл, более медленный профиль приводит к уменьшению результатов. placebo
занимает время, кратное veryslow
, но приводит к уменьшению размера менее чем на 0,1%,
-profile:v high
используйте высококачественное кодирование. ( другие варианты просто для обратной совместимости)
-rc-lookahead 900
просматривать до 900 кадров вперед, чтобы найти наилучшую кодировку текущего кадра. Чем больше результатов, тем лучше (как у плацебо) качество по размеру, меньше наоборот. тот же принцип, что и в -preset
применяется.
-crf 16
тарифный фактор . Чем выше число, тем меньше размер и некрасивее изображение. Примерно через каждые 6 точек половина размера файла. Большинство людей не заметят разницы с -crf 20
. Многие даже не -crf 24
-c:a copy
оставляют аудио как есть.
-c:s copy
оставьте субтитры как есть.
Если у вас есть графический процессор nVidia, вы можете использовать встроенный модуль кодирования. Вместо этого используйте эту команду:
ffmpeg -i my_input_file.mkv -map 0:v? -map 0:a? -map 0:s? -c:v h264_nvenc -preset:v medium -profile:v high -rc constqp -qp 16 -c:a copy -c:s copy my_output_file.mkv
Похожие параметры. preset
ограничен fast
, medium
, slow
, где slow
потребуется дополнительная настройка помимо этого ответа.
Основное изменение заключается в том, что кодировщик nvidia не поддерживает просмотр вперед, и поэтому это не вариант crf
. По этой причине мы используем cq
опцию (Constant Quantization). Разница между ними заключается в том, что они crf
пытаются колебаться вокруг определенного значения, основываясь на текущем и последующем изображениях, в то время как cq
остаются на этом точном значении в течение всего времени.
Вы можете попробовать использовать постоянный битрейт, но это не рекомендуется, потому что качество вашего видео будет повсюду, потому что большинство кадров не имеют такой же сложности, как их предшественники.
Надеюсь это поможет
Привет
Гьян
Пинггер Шиккокен
капкома
-vf format=yuv420
решение от @PinggerShikkoken для преобразования 10-битного H.265 в 8-битный H.264.