ФАКТЫ
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
Если у ваших исходников разное разрешение, существует два принципиально разных способа свести их в одном клипе:
-
Оставить разное разрешение кусков без изменений, а проект создать с разрешением, равным разрешению наименьшего из исходников. Это позволит креативно использовать более высокое разрешение некоторых кусков — например, работая камерой без потери качества, которое неизбежно происходит при масштабировании выше 100%.
-
Привести все исходники к одному разрешению.
Если с п.1 всё ясно, то по п.2 возникает вопрос: к какому разрешению приводить исходники? Если на 10 минут SD приходится 1 минута HD, то логично будет привести к SD. А если наоборот? Тогда лучше делать апскейл SD до HD. А чтобы свести потери качества к минимуму, мы хитро воспользуемся побочным эффектом деинтерлейсера EEDI2, который по эффективности оставляет позади самые лучшие ависинтовские ресайзеры. Для этого скачиваем архив, распаковываем библиотеку в папку плагинов ависинта и вместо обычного ресайзера добавляем в скрипт строчку
Код: |
EEDI2.TurnLeft.EEDI2.TurnRight |
Теперь наша картинка очень качественно увеличена ровно в 2 раза. Если это слишком много, то осталось только воспользоваться стандартным сплайновым ресайзером для уменьшения её до разрешения клипа. Если уменьшение не планируется, то рекомендую применить прошарпиватель LimitedSharpenFaster для борьбы с неизбежным замыливанием. Кстати, качество требует ресурсов, поэтому запасайтесь терпением. Можете также воспользоваться многопотоковой версией фильтра.
60 fps
Сначала фабула. 60 fps можно использовать только при выполнении всех следующих условий:
- Высокое разрешение исходника (HD и FullHD).
- Ускорение футажа.
- Интерполяция футажа.
- Высокая динамика клипа.
- Собственные изменяющиеся в каждом кадре элементы (3D, original animation, динамические эффекты)
- Работа камерой.
Теперь пояснения. Когда наугад перебираешь каналы телевизора, то за секунду можешь определить, что показывают: фильм или сериал. Если присмотреться, то «сериальный эффект» по сути отличается от «фильмового эффекта» повышенной частотой кадров. Плавные, почти неестественно плавные движения в кадре при минимуме моушн блюра и почти статичной камере. Отдаёт дешёвкой? А ведь самые современные блокбастеры до сих пор снимают на трещётки в 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-клип, в котором грамотно применяется комбо из ускорения футажа, его качественной интерполяции, собственных графических элементов и работы камерой, вполне оправдывает применение высокой частоты кадров, создавая перед зрителем цельную, гармоничную картинку. В то же время безосновательное, необдуманное использование этого приёма без выполнения всех предпосылок по сути является тем же применением эффектов для галочки и приводит к результатам сомнительного качества.
|
Так я и предупреждал в начале, что статья не для нубов. Для понимания нужен опыт и некоторое количество серого вещества.
Это было эпично, все мои проблемы в одно мгновение перестали существовать.
Давай, втыкайся!
http://fan-creat.ru/showthread.php?t=284
http://fan-creat.ru/showthread.php?t=288
http://forum.doom9.org/showthread.php?t=147695
Пример использования:
nnedi3_rpow2(rfactor=2,cshift="spline64resize",fwidth=1280,fheight=720)
Удваивание разрешения, а затем уменьшение до 720p.
А по поводу максимального качества воспроизведения - madVR.
Он оставляет позади все остальные рендереры ;) Но и требует адекватной производительности GPU.
По статье: очень сложно было прочитать, а понять еще сложней. Много вопросов осталось)))) видно далеко я полез)) спасибо за статью. При попытке увеличить фпс до 60 то точно ее перечитаю
Ссылки Eedi2mt.zip и EEDI2v092.zip не живы. нашел гуглом здесь:
http://www.mediafire.com/?w3wm3dkdvij - Eedi2mt.zip
http://www.64k.it/andres/data/avisynth/EEDI2v092.zip
Заранее спасибо!