BitTorrent Трекер RusTrek.ru http://5.45.70.241/ |
|
Создание видеодорожки для DVD (mpeg2) из прогрессивного HD-источника (h264) и сопутствующие моменты http://5.45.70.241/viewtopic.php?f=11&t=3653 |
Страница 1 из 1 |
Автор: | oartemka178 [ 2010-11-13 23:20 ] |
Заголовок сообщения: | Создание видеодорожки для DVD (mpeg2) из прогрессивного HD-источника (h264) и сопутствующие моменты |
Создание видеодорожки для DVD (mpeg2) из прогрессивного HD-источника (h264) и сопутствующие моменты Версия 1.1 от 13.11.2010 г. Введение В последнее время приходится всё чаше встречаться с видеоматериалом в HD-качестве (т.е. в высоком разрешении). Тем не менее, хочется сохранить себе в коллекцию данное видео именно в DVD-формате (причины могут быть разные, не будем углубляться в этот вопрос). Наиболее часто приходится иметь дело с файлом формата MKV (контейнер «матрёшка»), содержащим видео, сжатое кодеком h264. Именно для этого типового варианта и составлена данная инструкция. Инструкция разделена на три части, так как весь процесс преобразования формата видео можно разделить на три стадии: а) декодирование исходного формата; б) преобразование параметров видео (разрешение, цветовая шкала и т.п.); в) кодирование в требуемый формат. Существует два основных подхода к реализации данного процесса. Первый подход состоит в том, что каждая стадия для всего видеоряда должна полностью завершиться до начала следующей. Результаты каждой стадии сохраняются на жестком диске в виде файлов. Но при этом потребуются слишком большие объемы дискового пространства (особенно для хранения несжатого видео после первой и второй стадий). По этой причине рассматривается только второй подход – следующая стадия начинается, когда один кадр прошел предыдущую (т.е. происходит покадровая передача кадров по цепочке). В этой ситуации нет необходимости хранения огромных файлов с промежуточной информацией. Но для связи отдельных операций в единый процесс потребуется специальное средство – фрейм-сервер AVISynth. Часть 1 Декодирование HD-видео Для того, чтобы декодировать h264-видео при помощи AVISynth, необходимо воспользоваться специально предназначенным для этого плагином. Универсальным вариантом на сегодняшний день является использование бесплатного декодера FFMpegSource2. В данном примере файлы декодера скачаны с официального сайта и помещены в папку C:\Program Files\FFMpegSource2\. Сам видеоматериал (файл film.mkv) помещен в папку D:\Video\. Через пару минут в папке D:\Video\ появится служебный файл film.mkv.ffindex. Покадровое декодирование самого видео при посредничестве фрейм-сервера AVISynth начнется при открытии в видеоредакторе или кодировщике скрипта - специального текстового файла с командами, имеющего расширение *.avs (в примере он будет называться scrypt.avs). Ниже приводится текст скрипта (скрипт можно писать стандартным Блокнотом Windows), с помощью которого можно убедится в работе декодера и посмотреть на параметры видеодорожки: Цитата: LoadPlugin("C:\Program Files\FFMpegSource2\ffms2.dll") # подключение декодера Открыв полученный скрипт scrypt.avs в программе VirtualDub, просмотрим несколько эпизодов видео, обращая внимание на показатели, которые на скриншоте обведены красной рамкой.FFVideoSource("D:\Video\film.mkv") #открытие видео Coloryuv(analyze=true) #проверка, цветового диапазона Часть 2 Прежде всего, надо удалить из скрипта ненужную команду анализа видео (мы ведь не хотим любоваться значениями параметров яркости при просмотре фильма на домашнем кинотеатре в семейном кругу).Подготовка видео к кодированию Также следует обратить внимание на размер кадра. Если размер видео-кадра по вертикали не кратен 4-м, то могут возникнуть неприятные проблемы при преобразованиях. В такой ситуации (а в примере видео имеет вертикальное разрешение 546 точек) следует сразу после открытия видеофайла обеспечить такую кратность подрезкой нижней части кадра высокого разрешения на 2 пикселя. Для этого добавим в скрипт команду: Цитата: crop (0,0,0,-2) # если высота не кратна 4 Далее следует произвести конверсию цветового пространства при помощи плагина AutoYUY2. В данном примере файлы плагина скачаны с официального сайта и помещены в папку C:\Program Files\AutoYUY2\. Добавляем в скрипт строки:Цитата: LoadPlugin("C:\Program Files\AutoYUY2\AutoYUY2.dll") #подключение плагина Следующим этапом подготовки видео является корректировка матрицы цветовых коэффициентов с помощью плагина ColorMatrix. В данном примере файлы плагина скачаны с официального сайта разработчиков и помещены в папку C:\Program Files\ColorMatrix\. Добавляем в скрипт строки:AutoYUY2() # конверсия цветового пространства Цитата: LoadPlugin("C:\Program Files\ColorMatrix\ColorMatrix.dll") Как видно, две строчки с Colormatrix почти одинаковые (они используются в случае, если анализ в VirtualDub показал те или иные результаты). Решеточкой отключается ненужный вариант. Для нашего исходника останется вариант с яркостью 16-235, а второй вариант превращен просто в комментарий.ColorMatrix(mode="Rec.709->Rec.601", inputFR=false, clamp=0) # 16-235 #ColorMatrix(mode="Rec.709->Rec.601", inputFR=true, clamp=0) # 0-255 Теперь поговорим о размере и пропорциях картинки. На HD-источниках используют так называемые "квадратные" пиксели, соответсвенно, отношение количества точек по вертикали и горизонтали совпадает с пропорциями самой картинки. Высокое разрешение на подходит для DVD. Максимальным разрешением для DVD является 720х576 (для PAL) или 720х480 (для NTSC). При этом в обоих случаях используются "неквадратные" пиксели разной степени "сплющенности" - первая степень сплющенности позволяет формировать картинку с пропорциями 4:3, вторая степень - 16:9. Так как придется считать, то введем следующие обозначения: Ho - высота исходного видео в пикселях; Wo - ширина исходного видео в пикселях; AR - пропорции будущего DVD (AR=4/3 или AR=16/9); hhh - высота полезного изображения на DVD; www - ширина полезного изображения на DVD; bbb - ширина каждой из 2-х (верхней и нижней) "черных полос", дополняющих полезное изображение до полного кадра на DVD. Определение размеров для PAL: Цитата: www = 720 Определение размеров для NTSC:hhh = 576 * AR * Ho / Wo (округляем до ближайшего числа, кратного 8) bbb = (576 - hhh) / 2 Цитата: www = 720 В примере исходник, имеющий после подрезки размеры Wo=1280, Ho=544, кодируется в PAL DVD, у которого AR=16/9. C учетом округлений до кратности 8 получаем: www=720, hhh = 432 пикселей, bbb = 72.hhh = 480 * AR * Ho / Wo (округляем до ближайшего числа, кратного 8) bbb = (480 - hhh) / 2 С учетом этого добавляем в скрипт scrypt.avs команды изменения размеров кадра: Цитата: BicubicResize(720, 432, 0, 0.5) #ресайз методом Catmull-Rom spline Кроме того, следует учесть, что частота кадров фильма в системе PAL составляет 25 кадров в секунду (в NTSC – 23,976 кадров в секунду). Зададим нужную частоту кадров добавлением в скрипт команды:AddBorders (0,72,0,72) # добавление черных полос Цитата: AssumeFPS(25) #изменение частоты кадров под стандарт PAL 25 кадров/сек Если бы на выходе требовалось подготовить материал в NTSC, то надо было бы вставить команду:Цитата: AssumeFPS ("ntsc_film") #изменение частоты кадров под стандарт NTSC В итоге полный текст скрипта scrypt.avs будет выглядеть так:Цитата: LoadPlugin("C:\Program Files\FFMpegSource2\ffms2.dll") # подключение декодера Этот скрипт будет использоваться для подачи подготовленного видео в кодировщик MPEG2.FFVideoSource("D:\Video\film.mkv") #открытие видео crop (0,0,0,-2) # если высота не кратна 4 LoadPlugin("C:\Program Files\AutoYUY2\AutoYUY2.dll") #подключение плагина AutoYUY2() # конверсия цветового пространства LoadPlugin("C:\Program Files\ColorMatrix\ColorMatrix.dll") #подключение плагина ColorMatrix(mode="Rec.709->Rec.601", inputFR=false, clamp=0) # 16-235 #ColorMatrix(mode="Rec.709->Rec.601", inputFR=true, clamp=0) # 0-255 BicubicResize(720, 432, 0, 0.5) #ресайз методом Catmull-Rom spline AddBorders (0,72,0,72) # добавление черных полос AssumeFPS(25) #изменение частоты кадров под стандарт PAL 25 кадров/сек Часть 3 Кодируем видеодорожку Запускаем предварительно инсталлированный кодировщик CCE SP3. В пустом поле слева (рис. 3) щелкаем правой кнопкой мышки и выбираем Add Source...Вариант 1 - кодировщик Cinema Craft Encoder SP3 При создании видеодорожки для диска в стандарте NTSC надо выбрать вариант «NTSC DVD Film (pulldown)». В позиции 8 следует указать желаемый размер видеодорожки в тех или иных единицах измерения, исходя из доступного места на DVD-болванке с учетом размеров звуковых дорожек, бонусов и меню. Этот размер будет определять значение среднего битрейта (первое число в позиции 9), по этой причине надо следить, чтобы он не превысил максимально допустимого. Максимально допустимй битрейт видео (третье число в позиции 9) не может быть более 9800 кбит/сек. Также максимальный битрейт ограничивается условием нахождения суммарного битрейта фильма (видео со всеми звуковыми дорожками и субтитрами) в пределах 10 Мбит/сек. Минимальный битрейт (второе число в позиции 9) не рекомендуется ставить менее 2000 кбит/сек. После установки этих настроек кнопкой 1 можно обратно свернуть Video settigs и приступить к настройке MPEG Settings, окно которых разворачивается соответствующей кнопкой в правой части главного окна программы. Для более тонкой настройки параметров кодирования следует переме-ститься в главное меню программы в пункт «Window». В этом меню выберем пункт «Picture» (рис. 8). - пресеты группы Natural адаптированы под стандартное игровое или документальное кино; - пресеты группы Animation заточены под рисованные мультфильмы с четкими контрастными границами объектов; - пресеты группы CG подходят для более мягкой компьютерной графики; - цифра в обозначении пресета говорит о степени подавления мелких деталей в изображении, чем больший номер имеет пресет в пределах группы, тем сильнее «замыливается» картинка (данная трактовка отличается от разъяснений разработчиков CCE, но более наглядно описывает результат применения пресета). Только после выбора пресета следует в нижней части окна указать про-грессивный характер источника видео (красная стрелка на рис. 9). Далее следует закрыть это окно и настроить параметры матрицы квантизации через меню Window – Segment (рис. 10). После выбора матрицы можно закрыть данное окно и приступать к кодированию. Для этого в левой части главного окна программы надо щелкнуть правой кнопкой мышки на имени скрипта и выбрать вариант «Encode» (рис. 12). Когда кодирование закончится (это очень долгий процесс), программу можно закрыть. В папке D:\Video\ появится файл видеодорожки scrypt.m2v. Вариант 2 - кодировщик Rhozet Carbon Coder Процедура работы в Carbon Coder значительно проще. После запуска программы открываем скрипт (Source – Add).1 – укажем папку назначения; 2 – зададим пропорции изображения; 3 – включим двухпроходное кодирование; 4 – укажем средний, минимальный и максимальный битрейт (соображения по поводу битрейта аналогичны вышерассмотренным для варианта с CCE SP3; 5 – отключим работу с аудио. Конец Версия 1.1 от 21.10.2010 г. Архивная инструкция в формате справи *.chm, предоставленная germanm2000 Версия 1.0 1) AVISynth http://www.avisynth.org/ 2) FFMpegSource2 http://ffmpegsource.googlecode.com 3) AutoYUY2 http://www.neuron2.net/autoyuy2/autoyuy2.html 4) ColorMatrix http://bengal.missouri.edu/~kes25c/ |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |