Статьи 

Paper

Нарезка, или как сделать правильный AVI из MKV/MP4

Четверг, 27 Ноябрь 2008

Вступление

Процесс создания любого клипа включает в себя конвертирование исходного материала в формат, пригодный для использования в редакторе, или попросту "нарезку". Несколько лет назад, в эпоху avi и divx, все было предельно просто, т.к. Virtual Dub без особых проблем мог открыть практически любой файл, но с появлением mkv и mp4 этот процесс оброс дополнительными ньюансами, о которых я и собираюсь здесь рассказать. Моя цель- описать универсальный и простой в использовании способ нарезки современных исходников. DVD-исходники (*.VOB) в рамках данной статьи рассматриваться не будут - читайте статьи по DVD-rip'у.


Инструментарий

Нам понадобится 4 инструмента: Virtual Dub, AviSynth, Haali Media Splitter (известный также как Matroska Splitter) и MediaInfo. Инсталляция всех перечисленных приложений делается с настройками по умолчанию, т.е. по схеме "Next->Next->Next". После установки находим файлик "avss.dll" (он устанавливается с Haali Media Splitter и по умолчанию находится в "C:/Program Files/HaaliMatroskaSplitter/avss.dll") и копируем его в папку плагинов ависинта (по умолчанию "C:/Program Files/AviSynth 2.5/plugins").

Скрипт

Допустим, у нас есть исходный файл в матрешке с именем Ishodnik.mkv. Создайте текстовый файл и впишите туда следующие строки, подкорректировав путь при необходимости:

DSS2("D://Ishodnik.mkv")
ConvertToRGB24

Комментарий для продвинутых пользователей. Почему не DirectShowSource? А потому, что DirectShowSource не является frame accurate, т.е. после загрузки скрипта в даб и разметки границ желаемого фрагмента эти самые границы вполне могут съехать на несколько (иногда десятков) фреймов, бывают и более серьезные глюки вроде изменения последовательности кадров при сикинге. DSS2 лишен всех этих недостатков.

Сохраните файл с расширением *.avs. Запустите Virtual Dub, зайдите в меню Video и выберите режим Direct Stream Copy. Теперь откройте в дабе созданный *.avs-файл. Если все сделано правильно, то вы увидите там свой исходник. Но не спешите приступать к нарезке- самое интересное только начинается.

Черные полосы.

Бывает, в исходном файле с какой-то или сразу с нескольких сторон изображения присутствуют черные полоски шириной в несколько пикселей. Черные полосы в клипе значительно расходуют драгоценный битрейт и смотрятся неэстетично, к тому же на них вылезают эффекты, поэтому мы будем от них избавляться. Посмотрите на картинку в Virtual Dub'е, выбрав светлую сцену. Если видите полоски, то редактируйте свой *.avs-файлик, добавив в конец скрипта такую строку:

Crop(a,b,-c,-d)

где a - количество обрезаемых пикселей слева, b - сверху, c - справа и d - снизу. После этих манипуляций скрипт, срезающий, например, 1 пиксель черных полос слева и 2 справа, должен выглядеть так:

DSS2("D://Ishodnik.mkv")
ConvertToRGB24
Crop(1,0,-2,-0)

Разрешение.

Перед нарезкой вам необходимо определиться с разрешением своего будущего клипа и, соответственно, с разрешением нарезки. Лучше всего выбирать, исходя из разрешения и качества исходника, объема свободного места на жестком диске, производительности вашего компьютера (особенно дисковой подсистемы), кратности сторон и здравого смысла.

Чтобы посмотреть разрешение исходника, воспользуйтесь утилитой MediaInfo (рис. 1). Главное правило - никогда не делайте ваш клип с бОльшим разрешением, чем разрешение исходника (исключение - анаморф, об этом ниже). Это же касается миксов. При наличии исходников разного разрешения за разрешение клипа принимайте наименьшее из разрешений исходников.
Зато если качество исходника оставляет желать лучшего, либо у вас сильно ограничено свободное место, либо размер клипа должен вписаться в жесткие рамки, либо вы обрезали черные полосы- во всех этих случаях разрешение можно и нужно уменьшать. Следует помнить, что изменять разрешение нужно пропорционально, а лучше выбирать из таких стандартных вариантов (для исходника с соотношением сторон 16х9): 640х360; 704х400; 768х432; 848х480; 1024х576; 1280х720. Если же ваш исходник имеет соотношение сторон 4х3, то вряд ли вы найдете что-то более подходящее, чем 640х480. Соотношение сторон смотрим рядом с разрешением в MediaInfo (рис. 1)
Для изменения разрешения добавьте в ваш скрипт строчку:

Spline36Resize(x,y)

где х - новое разрешение по горизонтали, а y- по вертикали. Использование алгоритма сплайнов при уменьшении разрешения позволит скрыть мелкие артефакты исходника, но сохранит четкость картинки. Например, вы остановились на разрешении 768х432. Тогда ваш скрипт должен выглядеть так:

DSS2("D://Ishodnik.mkv")
ConvertToRGB24
Crop(1,0,-2,-0)
Spline36Resize(768,432)


Анаморф

Если вы- счастливый обладатель DVD-rip'а, то ему наверняка присуща анаморфность. Анаморф- видео с неправильным аспектом и метаданными, позволяющими плееру восстанавливать правильный аспект при проигрывании. Откройте исходник в MediaInfo, в настройках поставьте Output format - HTML. В окне информации о видео (рис. 1) можно увидеть исходное разрешение и cоотношение сторон при показе. Если вы просто откроете в дабе наш скрипт без операций ресайза, то он будет как раз в исходном разрешении и у видео будут неправильные пропорции. Поэтому при анаморфе обязательно приведите соотношение сторон нарезки к указанному (используйте стандартные разрешения, указанные выше). На рисунке разрешение 704х480, а соотношение 16/9. Высчитываем горизонталь с нужным соотношением, взяв за основу разрешение по вертикали:

480*16/9=853.(3)

и берем ближайшее из стандартных разрешений (848х480) или меньшее. В нашем примере мы уже изменили разрешение на 768х432, вернув таким образом потенциально анаморфному исходнику правильный аспект, поэтому скрипт модифицировать не надо.

Частота кадров

Бывают случаи, когда разные серии одного релизера выходят с разным fps (frames per second), к тому же не совсем стандартным. Не стоит забывать и про VFR (variable frame rate или переменный fps). Задача клипмейкера- привести все исходники к выбранному фрейм рейту, избежав при этом дерганий, смазываний и существенных изменений скорости нарезки по сравнению с оригиналом.

Фреймрейт смотрим в MediaInfo (рис. 2). Если вы видите там одну строку с числом кадров в секунду, то все просто и эту частоту кадров можно брать для клипа. В любом другом случае лучше всего будет модифицировать функцию DSS2 специальным параметром, возвращающим фрейм рейт к нужному занчению.

Если имеем что-то похожее на рис 3, рис. 4 или рис. 5, то у нас переменный fps и наша задача определить, какой же именно фреймрейт 23.976 или 29.97 у интересующего нас куска. Для этого создадим отдельный скриптик с единственной строкой:

DSS2("D://Ishodnik.mkv", fps=29.97)

Откроем его в отдельном Дабе и пролистаем покадрово десяток фреймов на какой-нибудь динамичной сцене или сцене панорамирования (движения камеры). Если движение есть четко в каждом кадре значит, фреймрейт 29.97. Если каждые несколько кадров имеем один без движения значит, 23.976.

Допустим, в нашем примере движение было не в каждом кадре, поэтому скрипт должен выглядеть так:

DSS2("D://Ishodnik.mkv",fps=23.976)
ConvertToRGB24
Crop(1,0,-2,-0)
Spline36Resize(768,432)

Теперь последний штрих, улучшающий совместимость нарезки с редакторами. 23.976 по стандарту NTSC - бесконечная дробь (24000/1001), которую редакторы понимают далеко не всегда. То же относится к 29.97. Поэтому приведем наш фреймрейт к округленному значению. Делается это добавлением в скрипт строки

AssumeFPS("ntsc_round_film")

для 23.976 или строки

AssumeFPS("ntsc_round_video")

для 29.97.

В нашем примере скрипт будет выглядеть так:

DSS2("D://Ishodnik.mkv",fps=23.976)
ConvertToRGB24
Crop(1,0,-2,-0)
Spline36Resize(768,432)
AssumeFPS("ntsc_round_film")

Фильтры

Дополнительным преимуществом использования ависинта в нарезке является возможность подключать качественные фильтры для визуального повышения качества видео. Однако использование фильтров на исходнках-релизах хороших групп может даже слегка ухудшить качество нарезки, т.к. эти же фильтры уже были использованы самими релизерами. Самые полезные для клипмейкера фильтры - это шумодавы, убирающие зерно/шумы и повышающие сжимаемость клипа (например, FFT3Dfilter, для которого так же есть GPU-версия), шарперы, делающие изображение более четким (например, warpsharp) и градиентные выравниватели, убирающие видимые переходы полутонов градиента (например, gradfun2db). Тонкости использования фильтров тянут на отдельную статью, поэтому здесь их рассматривать не будем. При желании можно легко найти всю информацию в интернете, к тому же никакие фильтры не заменят качественный исходник.

Кодирование нарезки

Сохраните изменения, внесенные в скрипт. Перечитайте скрипт в Virtual Dub'е, нажав F2 или открыв его заново. Можно приступать к нарезке, получая на выходе несжатый RGB24 - самый безглючный формат видео с точки зрения редакторов. Но у него есть существенный недостаток - он требует очень много свободного места на вашем диске.

Объем дискового пространства на секунду нарезки рассчитывается по формуле:

Vol(MB/sec)=(ResX * ResY * 24 * fps /(1024*1024*8))

где
Vol(MB/sec) - вес одной секунды нарезки в мегабайтах,
ResX - разрешение по горизонтали,
ResY - разрешение по вертикали,
fps - фреймрейт (кадров в секунду).
Т.е. если вы делаете нарезку в разрешении 768х432@23.976fps, то одна секунда будет весить 768*432*24*23.976/(1024*1024*8) = примерно 23 мегабайта. Не трудно посчитать, что 30 минут нарезки будут весить около 40 гигабайт. Много? Тогда будем кодировать нашу нарезку без потери качества, чтобы она занимала примерно в 10 раз меньше места.

Нам понадобится установленный Lagarith. Теперь модифицируйте скрипт нарезки, удалив оттуда строку

ConvertToRGB24

и исправив значения в строке Crop на ближайшие кратные двум. Скрипт должен выглядеть так:

DSS2("D://Ishodnik.mkv",fps=23.976)
Crop(2,0,-2,-0)
Spline36Resize(768,432)
AssumeFPS("ntsc_round_film")

В дабе зайдите в меню Video и выберите режим Fast Recompress, чтобы избежать преобразований цветового пространства. Потом зайдите в меню Video, пункт Compression, выберите в списке кодеков Lagarith lossless codec, нажмите Configure, установите mode в YV12 и отметьте чекбоксы Enable Null Frames и Use Multithreading. Перечитайте ваш скрипт, нажав F2. Теперь можно делать нарезку, не так сильно беспокоясь за свободное место. Успехов в творчестве!

Автор: Aggressor


Прочитана: 277515 раз
Распечатать

Комментарии (309)
Вы не авторизованы! Комментарии могут оставлять только зарегистрированные и авторизованные пользователи!


KioHiME   User profile
  08.06.2011 22:52
Спасибо за статью.=)
Делал все по инструкции, но у видео отсутствует звук. Так и должно быть?
Kalfer   User profile
  08.06.2011 22:17
Спасибо за статью , вначале ничего не получалось , но все ответы нашел в комментариях .
Neko Baka   User profile
  07.06.2011 20:54
блиин как все замудренно день убил на расшифрофку,а убирать черные поля не легче в самом редакторе?
Perfect-Blue   User profile
  21.05.2011 14:28
OMFG! Thanks a lot, man! Great tut! You helped me deal with all mine (stupid f*uckin) anamorphic video! Thanks again!
Aggressor   User profile  Video channel
  08.05.2011 12:01
patchiller написал(а):
она использует какие то свои кодеки, или что то в этом роде, как это лечить?

Об этом я рассказал в статье «Сад камней».

GeForse написал(а):
но вот вопрос: как?, и что за программы такое творят?

Путаем подготовку материала к загрузке в редактор и собственно редактирование видео? На форуме должен быть видеоурок на тему первого клипа, поищи.
GeForse   User profile
  07.05.2011 18:49
Благодарствую, Aggressor.

Еще вопросы есть:
после нарезки, можно ли накладывать какие либо эффекты, к примеру - сепия, черно-белый экран, кадр в кадре, помехи, отдельная вырезка какого-либо объекта, персонажа и многое другое. Видел такое много раз, но вот вопрос: как?, и что за программы такое творят?

Спасибо за помощь :3
zmaster   User profile
  07.05.2011 07:39
Default Avatar
patchiller написал(а):
на XP пользовался, все было норм, а вот на 7-ке не хочет(

patchiller написал(а):
как это лечить?

Вы получаете сообщение "Я не хочу!"? С деталями на форум! :)
patchiller написал(а):
соотношение сторон 2.35:1. Возможно ли открыть с таким же соотношением премьер?

Обычный литтербокс. На первый взгляд, просто выставить соответствующее разрешение в настройках проекта. (На форуме есть специальная тема, касающаяся "Премьер'а". И под сообщениями можно найти смешные подписи :))
patchiller   User profile
  06.05.2011 21:51
на XP пользовался, все было норм, а вот на 7-ке не хочет( она использует какие то свои кодеки, или что то в этом роде, как это лечить?
И еще, у мну на исходнике соотношение сторон 2.35:1. Возможно ли открыть с таким же соотношением премьер? Если нет, то как с этим бороться?
Rainbow splash   User profile
  04.05.2011 12:47
Ну никак это Даб не перестаёт капризничать!
http://s2.ipicture.ru/uploads/20110504/wHfYRKC4.png
MangaLub   User profile  Video channel
  02.05.2011 15:36
Не обязательно работать пожарником, что бы делать добро и быть героем. Кланяюсь в ноги!
Turbo   User profile  Video channel
  02.05.2011 05:49
Default Avatar
Rainbow splash, проверь наличие avss.dll в папке с плагинами AVISynth.
Rainbow splash   User profile
  01.05.2011 19:12
Ребята подскажите в чём ошибка? Я в Дабе не могу видео загрузить. До этого одна анимешка прочиталась через скрипт дабом, а эта никак не хочет. У меня Виндовс 7. Делал всё по инструкции и всё равно глюк. Гляньте скрин:
http://s1.ipicture.ru/uploads/20110501/93RAKADU.png
Надеюсь на вашу помощь!
welivetoday   User profile
  27.04.2011 17:12
ПКМ=>Создать=>AviSynth Script, открываешь его с помощью блокнота.
Kolonelo   User profile
  25.04.2011 14:04
Ребят подскажите что такое скрипт и как его создать. пожалуйста просто я новичок)
Aggressor   User profile  Video channel
  17.04.2011 19:17
Привет.
Размер файла, для среднего разрешения порядка 768х432, адекватный. Контрастность наверняка глючит (гасится) при простом воспроизведении, а при нарезке выравнивается в ту, которая должна быть, так что настраивай плеер. ХайМедиаСплитер называется Хаали медиа сплиттер, и он не перекодирует, а перепаковывает, что погоды, соответственно, не делает. Вот такие пироги.
Shinigami Rizell   User profile
  14.04.2011 11:53
День добрый всем

при сохранении видео глючит контрастность
(темные кадры делаются почти черными а светлые кадры очень яркими)

использую ffVideoSource т.к. при использовании DSS2 90% всех кадров становятся какойто серой невнятной мазней.

исходник взят в mp4 также пробовала перекодировать засчет ХайМедиаСплитера в mkv результат тот же

зы
файл 25 минут весом в 3 гига это же нормально при Lagarith codec?
lev99   User profile
  13.03.2011 19:37
Кстати насчёт Lagarith lossless codec качаем его здесь:
http://lags.leetcode.net/codec.html

Lagarith Installer (v1.3.23) An installer for 32 and 64 bit versions of windows. Thanks to Zarxrax for creating and testing the installer script.

Lagarith Codec (v1.3.23) A manual installation version.

Haali Media Splitter или MatroskaSplitter нет Lagarith lossless codec
Yoi Akuma   User profile
  09.02.2011 18:25
(Smi) написал(а):
я не смог найти этого кодека "Lagarith lossless codec"


у меня тоже не было этого кодека. тут уж гугл в помощь. вот здесь, например, скачай: http://www.all-codecs.ru/codec.php?id=65&name=Lagarith-Lossless-Video-Codec
как установить, там написано
(Smi)   User profile
  07.02.2011 13:37
Default Avatar
я не смог найти этого кодека "Lagarith lossless codec" , попробовалд поумочанию все оставить первые 5 мин нарезал все нормально но когда болше пети редактор не воспрениает формат(((
t_key   User profile
  29.01.2011 13:36
У меня почему то все кадры стали ключевыми... Странно
t_key   User profile
  28.01.2011 20:50
Ах, глаза все красные! Но, собственно, за статью - большая человекоблагодарность!
welivetoday   User profile
  04.01.2011 15:44
Sutanisurafu написал(а):
у меня минута видео весит 600 мб


Что то маловато О_о...
Sutanisurafu   User profile
  22.12.2010 22:31
хм
я все делаю строго по инструкции но все равно у меня минута видео весит 600 мб , что то странно
---------
ну ладно , я просто не стал жадничать с разрешением ))
Wuki   User profile
  01.12.2010 18:28
Default Avatar
Извените что не в тему. Дайте ссылку там где объесняется нарезка DVD (.VOB) в баде
Ling7   User profile
  27.11.2010 17:30
Default Avatar
Если стоит версия на х64, попробуй поставить х86 - мне помогло.
Спасибо за статью!
Rezus   User profile
  08.11.2010 21:11
и что с ним делать ? устоновить клацая далее далее ?) или что-то выбирать надо?
Aggressor   User profile  Video channel
  08.11.2010 18:57
Да всё в статье написано. Разве что можешь попробовать ещё Win7DSFilterTweaker.
Rezus   User profile
  08.11.2010 08:32
Нет:) спасибо, теперь понял:)
Но все ровно не могу установить нормально эту программу:( у меня семерка х64 . Что вообще нужно что бы эта программа работала? Кодеки к - лайт мега пак? + ff..., и что в каком порядке ставить? В этих программах еще свои настройки.. Они ведь тоже влияют?
Aggressor   User profile  Video channel
  07.11.2010 22:16
Rezus, ты в Премьер можешь положить mkv?
Clark, вопросы по VD иди задавай на форуме VD.
Clark   User profile
  07.11.2010 00:04
Ребят подскажите пожалуйста что не так....

открываю Job Control а там нету задач , сохраняю, делаю load открываю ту папку в которую сохранил и он их не видит почему то....

объясните кто знает в чем проблема , пожалуйста...


 Интересное на CreaSpace