Клуб пользователей HD видео плеера WD TV



FAQ: Уменьшаем Reframes в H.264 (Mainconcept Reference)

Ниже предлагается один из вариантов решения вопроса "слишкой много Reframes в H.264/AVC видео потоке". Как известно, для WD TV является проблемой количество Reframes больше 5 для фильмов в Full HD разрешении (1920x1080). Эта проблема - сочетание двух факторов - технических ограничений коробки и кривые руки риперов, т.к. по всем стандартам больше 4 рефреймов быть не должно! НО нас интересует другое - как исправить ситуацию, если такой фильм всё же попался!

Решение по сути лишь одно - заново перекодировать видео дорожку с нормальным профилем High@L4.1 и Reframes = 4. Ясно, что перекодировать желательно с минимальными потерями качества! Предлагаю использовать софтовый видео кодироващик Mainconcept Reference. Как все остальные мощные и дружелюбные кодеры, этот софт платный, так что найти его - ваша задача (копаем в сторону торрентов). Софт реально удобный и очень функциональный, поддерживает кучу кодеков, в том числе и HD (высокого разрешения). Итак, будем считать, что вы раздобыли экземпляр Reference и установили его на свой компьютер.

Внимание! Перекодирование HD видео - процесс небыстрый, поэтому сразу определитель, насколько серьёзно ваше желание это сделать (дабы банально не потерять время). На моём компьютере (правда не сильно мощном - старый Pentium 4 с гигом оперативки) он занимает порядка 15-18 часов. При этом можно что-то делать, но жрёт ресурсов он прилично!

Внимание! По отзывам пользователей, могут быть проблемы с директориями и именами файлов, написанных кириллицей! Были случаи, что программа зависала/вылетала. Лучше, если русских букв там не будет!

Шаг 1.
Запускаем Mainconcept Reference, открываем свой .mkv файл. Официально контейнер Matroska не поддерживается, но если при открытии выберете тип "все файлы", то сможете его открыть - и Reference отлично импортирует по одной видео/аудио дорожке. Нам этого достаточно. Дальше - убираем галку с аудио дорожки (она не нужна, нас интересует только видео) и выбираем во вкладке снизу (Output: Stream) пресет H.264 Custom и поток Elementary (это значит он выдаст чистый видео поток, не запакованый ни в какой контейнер). Скриншот ниже:


Дальше переходим на вкладку Video (одновременно открываем MediaInfo для исходного фильма, чтобы взять оттуда нужную нам инфу) и настраиваем следующие параметры:
  • Video codec: H.264/AVC Pro
  • Profile: H.264 High
  • Mode: NTSC (ну это как правило, может и PAL попадётся)
  • Width: как в исходном файле
  • Height: как в исходном файле
  • Aspect: самое верхнее значение из выпадающего списка - оно получается из деления Width/Height (именно для нашего файла)
  • 2 pass (галка): да
  • Framerate: как в исходном файле (23.976 и 29.970 это NTSC, 25.000 - это PAL)

Для пущей наглядности смотрим скриншот:


Дальше жмём кнопку с гаечным ключом (помечена стрелкой на скриншоте который чуть выше). Это Advanced (продвинутые) настройки видео. Там нас интересует первая вкладка Basic, в остальных двух - можно оставить всё по умолчанию, там всё ок! Итак, указываем там такие параметры:
  • Aspect ratio: Custom
  • Frame/Field encoding: Frame Coding
    (вот это реально ВАЖНО - если пропустить, видео по умолчанию будет Interlaced, а не Progressive - нам это не нужно)
  • Bitrate mode: Variable bitrate
  • Average Bitrate: я ставлю битрейт в исходнике + 1000 kbit/s
    (это экпериментально - он в итоге делает битрейт чуть меньше, чем указано, поэтому +1000 как раз компенсирует разницу)
  • Maximum bitrate: +3000-4000 тысячи
    (насколько я понимаю, это максимальный битрейт для динимичных сцен, я с ним игрался, но особой разницы не вижу, так что ставлю просто на всякий случай на 3-4 тысячи повыше)

И снова скриншот:


В-общем это всё! Выбираем из меню Transcode -> Start Transcoding... И ждём! Когда Reference закончит работу - у нас будет новая видео дорожка с расширением .264 в той же папке, где лежит наш исходный файл .mkv


Шаг 2. 
Теперь подцепляем нашу новую видео дорогу в програмке MKVmerge (mmg.exe из набора MKVtoolnix) и отключаем старую дорогу (она не нужна больше). Параметры новой дороги задаём точно как в старой - Frame rate и разрешение (и то, и другое можно посмотреть в MediaInfo)...

Кто пользовался MKVmerge понял что делать. Но если кому-то нужна развёрнутая инструкция, то она ниже. Делаем по пунктам (особое внимание обратить на установку Frame rate, иначе этот параметр будет установлен в 25fps, что скорее всего не верно). Вот скрин, а ниже - описание:


Пункты (1) и (2): жмём кнопку Аdd и добавляем наш основной файл .mkv (исходный, который "рассыпался"). Ниже появится список всех треков внутри с галочками. Снова жмём Add и добавляем нашу новую, перекодированную дорогу
(тут выскочит предупреждение, отвечаем OK на него).

(3) Выбираем старую видео дорожку (она всегда самая верхняя) и убираем галку с неё . Это значит что в результирующем .mkv контейнере её не будет!

(4) и (5) Выбираем новую видео дорогу (ту которая перекодированная, с расширением .264) и двигаем её в самый верх списка кнопкой Up. Потом выбираем вкладку "Format specific options" и там заполняем вручную две вещи. Инфу эту мы берём не с потолка, а указываем такой же, как в MediaInfo - т.е. тут строго - не ошибаться:
  • Display width/height (например 1920/1040)
  • FPS (тут скажем 23.976)

Переходим на вкладку "General track options" и там указываем одну вещь для новой видео дороги:
Default track flag: Yes

(6) Указываем имя файла результирующего (.mkv) и диск/папку куда его писать. Потом (7) жмём Start и ждём 5-10 минут, пока всё соберётся в кучу... Порядок - можно смотреть!












Или нажмите Ctrl-D на клавиатуре.