End Credits
|
|
endcredits.vdf |
Практически каждый человек, который хотя бы раз конвертировал фильм в формат DivX, сталкивался с проблемой, которая называется "Финальные титры". Дело в том, что ползущие снизу вверх финальные титры очень плохо ужимаются и, если не принять никаких мер, могут "съесть" значительный кусок места на диске. Места, которое лучше было бы использовать для улучшения качества изображения или звука. Места, которого, как известно, всегда не хватает - особенно, если речь идёт о создании однодискового фильма.
И каждый, наверняка, выработал для себя линию поведения в данном случае: кто-то отрезает титры совсем, кто-то обрабатывает титры отдельным куском, занижая их битрейт, кто-то понижает яркость титров, кто-то пользуется программой NanDub, которая позволяет несколько уменьшить объём титров и т.д.
Но все эти способы не лишены недостатков. Если отрезать титры, то вместе с ними отрежется и музыка, которая иной раз бывает весьма неплохой. Кроме того при таком способе теряется дальнейшая возможность посмотреть, кто играет ту или иную роль. Так что этот способ простейший - но не очень красивый.
Если понизить яркость титров, то ухудшается их читабельность. Кроме того, этот способ не очень эффективен - при уменьшении яркости вдвое, место, занимаемое финальными титрами, уменьшается всего на 30-35%.
Если понизить битрейт титров, то во-первых, это ухудшит их вид, вследствие чего ухудшится читабельность, а во-вторых, что ещё хуже, может начаться выпадение кадров, так как кодек, при невозможности сохранить установленный битрейт, начинает выбрасывать кадры, что приводит к неприятным спотыканиям изображения. Кроме того, этот способ также не обеспечивает сильного уменьшения "массы" титров.
Программа NanDub также не способна значительно уменьшить место, занимаемое финальными титрами - уменьшение, как правило, составляет менее 40%.
Проанализировав сложившуюся ситуацию, мы придумали способ, который позволил бы сократить объём титров не на сколько-то процентов, а в разы и даже в десятки раз.
При этом читабельность титров абсолютно не страдала. Этот способ - остановка титров и вывод их на экран страницами, подобно тому, как это делалось в старых советских фильмах. Чтобы реализовать этот способ на практике, нами был написан фильтр для программы VirtualDub - фильтр End Credits.
Уменьшение занимаемого на диске места связано в данном случае с тем, что многие кадры становятся абсолютно одинаковыми, что приводит к уменьшению размера дельта-кадров почти до нуля. Поэтому этот фильтр нужно применять только при сжатии фильма кодеком, делающим дельта-кадры. Если кодек сжимает изображение без использования дельта-кадров (как, например, это делает кодек Huffyuv), то применение этого фильтра теряет всякий смысл.
Этот фильтр был использован при обработке нескольких фильмов - результат всегда был отличным - место, занимаемое финальными титрами, сводилось к минимуму, а читабельность титров даже возрастала, потому что читать неподвижный текст всегда проще, чем едущий по экрану.
Предупреждение
В работе модуля конфигурации фильтра использованы недокументированные возможности программы VirtualDub 1.4d. Это было сделано по той причине, что VirtualDub не позволяет получить из окна препросмотра никакую информацию о текущем номере кадра и пришлось получать эту информацию обходными путями. Поэтому мы не гарантируем нормальную работу фильтра в других версиях VirtualDub'а. Этот фильтр был проверен с VirtualDub-ом версий 1.4d и 1.4.5. А так как NanDub был сделан на основе версии 1.4d, то, скорее всего, этот фильтр будет без проблем работать и в нём.
Использование фильтра
Фильтр включается в цепь обработки изображения абсолютно стандартно - также, как и все остальные фильтры: Video->Filters->Add->End credits. Сразу после нажатия на кнопку "OK" откроется конфигурационное окно фильтра вместе с окном препросмотра. Здесь и далее будут показаны скриншоты с сильно обрезанным со всех сторон кадром в окне препросмотра - для уменьшения габаритов скриншотов.
В окне конфигурации имеются следующие элементы:
-
Список кадров, на которых изображение будет останавливаться/стартовать.
-
Кнопка "Add Stop Frame", позволяющая добавить в список кадров номер текущего кадра - того, который в данный момент находится в окне препросмотра. При этом сразу после номера кадра в списке будет поставлен восклицательный знак, означающий, что на этом кадре изображение остановится.
-
Кнопка "Add Start Frame", делающая то-же самое, что и кнопка "Add Stop Frame" с той лишь разницей, что в списке сразу после номера кадра будет поставлен знак ">", означающий, что если до этого кадра изображение было остановлено, то начиная с этого кадра продолжится воспроизведение.
-
Кнопка "Remove Frame", позволяющая удалить из списка номер кадра, на котором установлен курсор.
-
Кнопка "Remove All", позволяющая очистить весь список кадров.
ВНИМАНИЕ! Кнопки удаления работают сразу - без запроса на разрешение удаления.
-
Кнопки "-100", "-10", "+10" и "+100" предназначены для облегчения навигации по фильму в окне препросмотра, так как в нём для навигации можно пользоваться только полосой прокрутки (что слишком грубо) или только пошаговыми клавишами (что слишком медленно).
-
Кнопка "Hide preview/Show preview", предназначенная для того, чтобы можно было, не выходя из конфигурации, открыть окно препросмотра, если Вы случайно его закрыли.
-
Кнопка "Cancel", закрывающая окно конфигурации и отменяющая все только что сделанные конфигурационные изменения.
-
Кнопка "OK", закрывающая окно конфигурации и сохраняющая все изменения в памяти.
Если в списке кадров выделить какой-нибудь номер кадра, то кадр с этим номером сразу же появится в окне препросмотра. При этом, если есть необходимость сменить флаг старт/стоп у этого кадра, то достаточно нажать на кнопку "Add Start Frame" или "Add Stop Frame" - без предварительного удаления номера кадра из списка.
В фильтре реализована возможность сохранения списка кадров - весь список сохранится при сохранении рабочих установок (File->Save Processing Settings) в VCF-файле. Соответственно, при выполнении загрузки рабочих установок (File->Load Processing Setting), список кадров будет загружен из VCF-файла.
Пример использования фильтра В качестве примера приведём небольшое описание обработки финальных титров фильма "The Fifth Element" ("Пятый элемент").
Сначала делаем всё как всегда - открываем фильм в VirtualDub'е, устанавливаем все параметры обработки в нужные нам значения, включаем фильтр Resize, делаем кроппинг и изменение размера и т.д. Когда всё это сделано добавляем в список фильтров фильтр "End credits".
Теперь необходимо потратить некоторое время на создание списка стоп/старт кадров. Для начала, пользуясь движком прокрутки найдём начало финальных титров:
Затем, пользуясь клавишами навигации в окнах конфигурации и препросмотра, подгоняем изображение так, чтобы страница была полностью заполнена текстом и стараемся сделать так, чтобы ни сверху ни снизу не было подрезанных строк. После чего нажимаем на кнопку "Add Stop Frame". При этом номер текущего кадра появляется в списке кадров и рядом с ним появляется знак "!" - это означает, что воспроизведение фильма остановится на этом кадре:
Далее, пользуясь клавишами навигации, двигаем эту страницу так, чтобы она полностью скрылась сверху, а её место заняла новая. Также стараемся сделать так, чтобы ни сверху ни снизу не было подрезанных строк. Опять нажимаем на кнопку "Add Stop Frame":
Продолжаем делать так до конца финальных титров.
Зачастую в самом конце финальных титров появляется логотип кинокомпании, который стоит некоторое время неподвижно, а потом медленно гаснет. Угасание логотипа, в принципе, можно и оставить - нужно найти кадр, где оно начинается и нажать на кнопку "Add Start Frame":
Затем нажимаем кнопку "OK", закрывая тем самым окно конфигурации, сохраняем все настройки в VCF-файле и стартуем обработку фильма.
Ниже приведён сильно сокращённый результат работы фильтра - в левом окне показано исходное изображение, в правом - получившееся в результате работы фильтра. Это анимированный GIF-рисунок, поэтому, если в Вашем браузере выключена анимация - включите её. Рисунок имеет размер 89 килобайт, поэтому подождите, пока он загрузится.
Заключение В заключение хотелось бы привести несколько цифр. При обработке финальных титров отдельно от остального фильма, без применения фильтра и с ним получились файлы следующих размеров (размер кадра 704x2, ключевой кадр - раз в 3 секунды):
кодек LM6000 - | 110 Mb | 4.9 Mb | в 22.4 раза |
кодек FM6000 - | 50.2 Mb | 3.0 Mb | в.7 раза |
кодек LM1800 - | 44.2 Mb | 4.8 Mb | в 9.2 раза |
кодек FM1800 - | 41.8 Mb | 3.0 Mb | в 13.9 раза |