Статьи 

Paper

Сад камней (автор Aggressor)

Суббота, 29 Май 2010

Сад камней, или неочевидные особенности AMV-мейкинга

   Каждый клипмейкер рано или поздно сталкивается с ситуацией, которая не описана в пособиях и туториалах, будь то глюк любимого ПО, проблемы совместимости или просто недокументированная особенность. Эти явления, имя которым подводные камни, могут сильно замедлить процесс создания клипа. Конечно, камни можно обойти или даже не обращать на них внимания. А можно нажатием нескольких кнопок сделать из них удобный и надёжный мост. Большинство начинающих клипмейкеров вообще не обращают внимания на рассмотренные здесь вопросы, поэтому целевая аудитория статьи — уже достигшие определённого мастерства авторы и заслуженные профессионалы, умеющие думать, искать и делать выводы. Кстати, поэтому здесь нет картинок — если без них непонятно, то статья не для вас.
   Текст состоит из 2 частей: в первой под названием «факты» будут рассмотрены только аксиоматические решения, истинность которых абсолютна. В «домыслах» я поделюсь субъективными взглядами на некоторые вопросы AMV-мейкинга.


ФАКТЫ

Virtual Dub

  • В Options - Preferences - Main установим Output color depth в 24 бита. Теперь при проигрывании на картинке не будут появляться жуткие градиенты.
     
  • Заходим в Options - Preferences - Display и отключаем все чекбоксы, кроме двух: Use DirectX for display panes и Avoid tearing (enable vsync). Такими настройками можно избавиться от нескольких проблем интерфейса (зелёный фон на видео и артефакты при выводе меню) и получить картинку с вертикальной синхронизацией.
     
  • Зайдём в меню Video и выберем Color Depth. Установим Autoselect в Decompression format и Same as decompression format в Output format to compressor/display. Это позволит пережимать в lossless без ведущего к потере качества преобразования YV - RGB - YV.


After Effects

  • Наверняка многие сталкивались с рассинхронизацией видео и аудио при рендере из АЕ. Причина данного явления в том, что размер аудиобуфера прямо пропорционален величине запаздывания аудио относительно видео. Откройте Edit - Preferences - Audio hardware. Дальше многое зависит от версии АЕ, но общая идея должна быть понятна. Если устройство по умолчанию называется After Effects Windows Sound, нажмём кнопку Settings и в окошке, на которое указывает Sync Reference, в первой строке попробуем для начала дабл кликнуть по цифре Buffer size (samples) и задать значение побольше, чтобы убедиться, как сильно звук разъехался с видео в RAM preview. Соответственно, чтобы рассинхры не было, надо задать значение поменьше. Но тут есть проблема: меньше определённого значения буфер задать нельзя, и хотя зачастую этого и не нужно, синхроманьяки всё ещё способны заметить запаздывание в такой конфигурации. Если вы обладатель интегрированного звука или старой аудиокарточки, то придётся пойти на этот компромисс, но если ваша аудиокарта достаточно продвинута, то на помощь приходит технология ASIO — интерфейс обработки звука с минимальными задержками, стандарт любых современных аудиокарт и спасение синхроманьяков. Переключаемся на него, выбрав в Edit - Preferences - Audio hardware в поле Default Device интерфейс ASIO. Теперь доступно новое окно конфигурации буфера (та же кнопка Settings), где размер буфера (а, следовательно, и задержка) показан в милисекундах, а минимально допустимое запаздывание уменьшилось почти до нуля. Можно идеально точно синхрить даже при 60fps!
     
  • Откроем в MediaInfo трек, который положили в АЕ в качестве дорожки к своему клипу (в АЕ нужно подкладывать только *.wav, потому что *.mp3 обязательно подглючит пусть и не сразу, но в самый неподходящий момент). Смотрим на значение Sampling rate. Это частота дискретизации, которую можно сравнить с разрешением видео: менять можно, но каждый раз при изменении качество неизбежно ухудшается. Откроем свойства проекта (File - Project settings) и поставми в Audio Settings частоту Sample rate, равную нашему исходнику. Теперь настроим то же самое проделаем в Edit - Templates - Output module, выбрав используемый для рендера шаблон, нажав Edit и в Audio Output выбрав нужную частоту. Теперь звук после рендера клипа не только будет точной копией звука на входе (если бы дело было только в этом, то можно было рендерить без звука и потом подшивать звук через VD), но и при RAM preview синхронизация и звучание будет в точности соответствовать финальному результату.
     
  • OpenGL ускоряет применение некоторых эффектов ценой небольшой порчи картинки. Поэтому он отключен для финального рендера, но включен для окна превью. Если хотите в окне превью видеть точно такую же картинку, которая будет при финальном рендере, то отключите OpenGL акселерацию, сняв в Edit - Preferences - Preview флажок Enable OpenGL и установив Accelerate Effects Using - Adaptive Resolution.


Нарезка

  • Кроме DSS2, существует альтернативный frame-accurate метод, который можно использовать для нарезки mkv и mp4 — FFMS2. Скачайте текущую версию и распакуйте содержимое одной из двух входящих в архив папок (mt означает multi-threading) в папку AvisynthPlug-ins. Затем измените строчку скрипта

    Код:
    DSS2("Ishodnik.mkv")

    на

    Код:
    ffVideoSource("Ishodnik.mkv")

    При вызове функции видеофайл сначала индексируется, что занимает некоторое время, после чего индекс сохраняется рядом с видеофайлом (имя как у файла, расширение .ffindex), а последующее открытие и навигация происходят без задержек (кроме задержек на декодирование). Основное отличие этого метода от DSS2 состоит в способе обработки исходников с переменной частотой кадров (variable framerate, VFR). Если открыть исходник с переменным фреймрейтом с помощью DSS2 без fps-параметров, то функция вернёт поток с такой постоянной частотой кадров, чтобы общая продолжительность видео равнялась продолжительности исходного VFR-файла. При этом в кусках с высоким фреймрейтом «лишние» фреймы будут просто проигнорированы, выброшены из последовательности, благодаря чему скорость видео в нарезке будет такой же, как и при просмотре в плеере, но из-за выброшенных кадров пострадает плавность. Добавление AssumeFPS дела не изменит, разве что позволит получить поток со стандартной частотой. Если использовать FFVideoSource, то ни один фрейм не потеряется, но функция вернёт поток с совершенно невероятным фреймрейтом, примерно равным среднему между максимальным и минимальным по файлу. Обязательно дописываем AssumeFPS и получаем источник для нарезки без потерь фреймов. Однако теперь в местах с высоким фреймрейтом будет слоу-мо, т.к. кадров по-прежнему много (ничего не выбрасывалось), а вот частота их смены уже линейная и ниже оригинальной. На этом факты заканчиваются, о специфике применения каждой из них можно почитать в «домыслах».

  • При использовании Lagarith вместо HuffYUV ваша нарезка станет занимать примерно в 2-3 раза меньше места. В редакторе вместо видео чёрный экран? Зайдите в конфигурацию Lagarith через опции кодирования в Virtual Dub и поставьте там галочку «Always suggest RGB for output». Обратите внимание, что это опция декодирования, а не кодирования, т.е. даже если ваша нарезка делалась без этой опции, то её включение постфактум всё исправит.
     
  • Если по какой-то причине найти lossless-песню для клипа невозможно, а резать нужно, воспользуйтесь mp3DirectCut — эта утилита умеет производить несложные манипуляции с mp3-файлами без их перекодировки, сохраняя оригинальное качество. Обрезанную таким образом mp3 можно подложить Симплу для безпотерьного пришивания к клипу, в итоге звук у нас получится в первозданном качестве.


Воспроизведение

  • Пользователи Windows7 наверняка заметили, что ОС навязчиво использует собственные декодеры для современных видео- и аудиопотоков. Средств отключить встроенные декодеры через интерфейс ОС не предусмотрено, поэтому если вы хотите вернуть любимые CoreAVC и ffdshow на свои законные места декодеров по умолчанию, вам пригодится Win7DSFilterTweaker. Нужно всего несколько кликов мышью и немного терпения.
     
  • При просмотре клипов, разрешение которых ниже разрешения монитора, во весь экран, плеер растягивает видео на размер монитора. Получить при этом максимально качественное изображение, а также избежать проблем с цветопередачей (TV-PC скейлами) на этапе вывода поможет православный рендерер от Haali. Он появляется в списке доступных после установки в систему Haali Media Splitter и включается в каждом плеере по-своему (например, в MPC через Вид - Настройки - Вывод - Haali's Video Renderer). Имейте в виду, что при разрешении исходника, равном или превышающем разрешению монитора, этот рендерер автоматически уполовинит разрешение вывода при оконном режиме, чтобы границы плеера не выезжали за границы монитора. Как только вы переключитесь в полноэкранный режим, качество вернётся к оригинальному.

ДОМЫСЛЫ

DSS2 vs FFVideoSource 
Как упоминалось выше, DSS2 и FFVideoSource по-разному обрабатывают одни и те же ситуации. Сейчас уже больше половины высококачественных ТВ-рипов кодируются в переменный фреймрейт, поэтому важно понять отличия одного метода от другого и использовать нужный из них. 
Сначала матчасть. Что же такое постоянный и переменный фреймрейт человеческим языком? В обычном файле частота кадров задаётся один раз и остаётся неизменной до самого конца. Т.е. постоянный фреймрейт — это последовательность картинок и один на весь файл ключик, указывающий декодеру, как часто картинки должны сменять одна другую. 
Переменный фреймрейт — та же последовательность картинок, но ключик с таймингом прилагается уже к каждой из них, из-за этого каждая картинка может произвольное время отображаться на экране. На практике же переменный фреймрейт в ТВ-рипах сводится к тому, что стандартная частота 23.976 превращается в 59.94, как только по нижней части экрана начинает ползти надпись о защите авторских прав, и после пропадания надписи возвращается к обычной. В той или иной степени это явление характерно и для опенингов/эндингов, и для заставок, которые делят серию на 2 части. 
Что использовать? По ситуации. Для DVD-рипа в VFR (такие тоже есть, хотя и крайне мало) я бы взял DSS2 ("Ishodnik.mkv", fps=23.976), т.к. другого варианта получить равномерную скорость из исходника, где каждый фрейм имеет свой, совершенно отличный от соседних, тайминг отображения, просто нету. А вот для стандартной VFR-равки с ТВ я отдаю предпочтение FFVideoSource с последующим AssumeFPS("ntsc_round_video") хотя бы потому, что это исключает случайные рывки из-за выкинутых фреймов, так хорошо заметные при панорамировании (у DSS2 дропается в среднем один фрейм в несколько минут из-за отличий в микротаймингах). А ещё характерной для DSS2 проблемы с зависанием даба на последнем фрейме у FFVideoSource не наблюдается.

Upscale
Если у ваших исходников разное разрешение, существует два принципиально разных способа свести их в одном клипе:

  1. Оставить разное разрешение кусков без изменений, а проект создать с разрешением, равным разрешению наименьшего из исходников. Это позволит креативно использовать более высокое разрешение некоторых кусков — например, работая камерой без потери качества, которое неизбежно происходит при масштабировании выше 100%.
  2. Привести все исходники к одному разрешению.

Если с п.1 всё ясно, то по п.2 возникает вопрос: к какому разрешению приводить исходники? Если на 10 минут SD приходится 1 минута HD, то логично будет привести к SD. А если наоборот? Тогда лучше делать апскейл SD до HD. А чтобы свести потери качества к минимуму, мы хитро воспользуемся побочным эффектом деинтерлейсера EEDI2, который по эффективности оставляет позади самые лучшие ависинтовские ресайзеры. Для этого скачиваем архив, распаковываем библиотеку в папку плагинов ависинта и вместо обычного ресайзера добавляем в скрипт строчку

Код:
EEDI2.TurnLeft.EEDI2.TurnRight

Теперь наша картинка очень качественно увеличена ровно в 2 раза. Если это слишком много, то осталось только воспользоваться стандартным сплайновым ресайзером для уменьшения её до разрешения клипа. Если уменьшение не планируется, то рекомендую применить прошарпиватель LimitedSharpenFaster для борьбы с неизбежным замыливанием. Кстати, качество требует ресурсов, поэтому запасайтесь терпением. Можете также воспользоваться многопотоковой версией фильтра.

60 fps
Сначала фабула. 60 fps можно использовать только при выполнении всех следующих условий:

  1. Высокое разрешение исходника (HD и FullHD).
  2. Ускорение футажа.
  3. Интерполяция футажа.
  4. Высокая динамика клипа.
  5. Собственные изменяющиеся в каждом кадре элементы (3D, original animation, динамические эффекты)
  6. Работа камерой.

Теперь пояснения. Когда наугад перебираешь каналы телевизора, то за секунду можешь определить, что показывают: фильм или сериал. Если присмотреться, то «сериальный эффект» по сути отличается от «фильмового эффекта» повышенной частотой кадров. Плавные, почти неестественно плавные движения в кадре при минимуме моушн блюра и почти статичной камере. Отдаёт дешёвкой? А ведь самые современные блокбастеры до сих пор снимают на трещётки в 24 кадра в секунду и показывают на огромных экранах. Попробуем разобраться. 
Основной аргумент за 60fps — плавность движений. Если в 60-fps клипе движение есть в каждом кадре (а зачем иначе его делать?), то разница между ним и 23.976 fps заметна сразу. А вот разница между ним и 29.97 fps уже совсем не очевидна. 
К тому же для полноты раскрытия потенциала высокого фреймрейта нужен исходник как минимум HD, а лучше FullHD разрешения, потому что при панорамировании FullHD каждую единицу времени любая выбранная точка изображения смещается относительно своей позиции в предыдущем фрейме на гораздо бОльшую величину, чем в SD-разрешении, поэтому дёрганность становится очень заметной. Стоит упомянуть motion search алгоритмы x264, которые при низкой частоте кадров запросто "потеряют" изображение и кодек начнёт перерасходывать битрейт, кодируя каждый кадр панорамирования заново вместо того, чтобы просто задать смещение относительно предыдущего. Конечно, 60-кадровый клип никогда не станет весить меньше 24-кадрового, но разница в весе может быть гораздо меньше 2.5-кратной. 
Что касается самого футажа, то ускорение до 29.97 fps происходит зачастую безболезненно, а вот ускорить аниме до 60 fps без получения комического эффекта практически невозможно, за исключением очень динамичных сцен или сцен, которые в оригинале были slow-mo. В итоге надо либо применять интерполяцию, которая создаёт видимость плавности ценой порчи картинки, либо получать вырвиглазный контраст между сверхплавным панорамированием и внутрикадровым 24-фпсным движением. Конечно, можно допустить даже полную статичность футажа, когда видеоряд насыщен элементами собственного производства, честно изменяющимися в каждом кадре (примеры — M@D'ы Нагисы Хитоми и других авторов её уровня), но тогда они должны доминировать в клипе, а не носить эпизодический характер. 
В итоге получается, что динамичный HD-клип, в котором грамотно применяется комбо из ускорения футажа, его качественной интерполяции, собственных графических элементов и работы камерой, вполне оправдывает применение высокой частоты кадров, создавая перед зрителем цельную, гармоничную картинку. В то же время безосновательное, необдуманное использование этого приёма без выполнения всех предпосылок по сути является тем же применением эффектов для галочки и приводит к результатам сомнительного качества.


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

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

Aggressor   User profile  Video channel
  13.07.2011 18:39
vivan написал(а):
А по поводу максимального качества воспроизведения - madVR.
Он оставляет позади все остальные рендереры ;)

Разница скорее номинальная, чем реальная, а по скорости он может в разы проигрывать тому же EVR.

PirogSV написал(а):
Нечитаемый текст.

Так я и предупреждал в начале, что статья не для нубов. Для понимания нужен опыт и некоторое количество серого вещества.

zmaster написал(а):
Aggressor,
Давай, втыкайся!

Это было эпично, все мои проблемы в одно мгновение перестали существовать.
zmaster   User profile
  12.07.2011 22:48
Default Avatar
Aggressor,
Давай, втыкайся!
PirogSV   User profile
  12.07.2011 13:33
Default Avatar
Нечитаемый текст. У меня все проще описано, втыкайтесь:
http://fan-creat.ru/showthread.php?t=284
http://fan-creat.ru/showthread.php?t=288
vivan   User profile
  05.07.2011 15:21
По поводу апскейла - мне кажется, что вместо этих костылей лучше использовать nnedi3...
http://forum.doom9.org/showthread.php?t=147695
Пример использования:
nnedi3_rpow2(rfactor=2,cshift="spline64resize",fwidth=1280,fheight=720)
Удваивание разрешения, а затем уменьшение до 720p.

А по поводу максимального качества воспроизведения - madVR.
Он оставляет позади все остальные рендереры ;) Но и требует адекватной производительности GPU.
Akika-sama   User profile
  09.02.2011 22:38
Cyrus1990, думаю нигде нельзя так как оригинальная статья автора. Я имею ввиду часть с домыслами.


По статье: очень сложно было прочитать, а понять еще сложней. Много вопросов осталось)))) видно далеко я полез)) спасибо за статью. При попытке увеличить фпс до 60 то точно ее перечитаю
sokrat   User profile
  06.09.2010 12:18
Спасибо за инфу об апскейле, нужно попробывать ). Насчет непрожорливости лагарифма не знал, как же это ему удается?

Ссылки Eedi2mt.zip и EEDI2v092.zip не живы. нашел гуглом здесь:
http://www.mediafire.com/?w3wm3dkdvij - Eedi2mt.zip
http://www.64k.it/andres/data/avisynth/EEDI2v092.zip
Cyrus1990   User profile
  05.06.2010 11:44
хмм... интересно.... Где ещё можно достать почитать такого? и вообще на счёт конвертации видео, про нужный софт и всяких полезностей?

Заранее спасибо!
kemaxto   User profile
  31.05.2010 05:06
Для меня лично,пояснения в конце статьи наиболее интересны когда я первый раз перекодировал гиговый файл фильма в 60fps prores-ом он стал весит 98 гектар!!! пришлось отказаться от этой затеи....
HizeKi   User profile
  30.05.2010 14:03
Очень много полезного **
HiDeaki   User profile
  29.05.2010 23:34
Я тут был.
padre   User profile  Video channel
  29.05.2010 19:08
отдельно выложили? О_о.
NightPunisher   User profile
  29.05.2010 18:44
В начале какую нибудь картиночку бы в начало (( а то как то пусто статейка без оформляжки минимальной на главной странице смотрится (
Denislam   User profile
  29.05.2010 15:39
а мне понравилась! хорошая статейка = ) много полезного,
W_aZZa   User profile
  29.05.2010 14:53
Статья номер 42 - хороший номер для отличной статьи. :)

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