Глава 4-я (машина думает, человек отдыхает).
Кодируем промежуточный AVI файл


Обычно рекомендуется кодировать видео в 2 прохода (см. п. 6.5), то есть, по идее, весь процесс, включая декодирование VOB-файлов и применение фильтров, нужно проделать дважды. Но поскольку фильтры для очистки шумов работают довольно медленно, то целесообразно провести фильтрование лишь один раз, сохранить результат, а потом уже выполнять кодирование в 2 прохода.
Чтобы избежать потерь качества, результат мы будем сохранять с помощью кодека HuffYUV, который сжимает без потерь (как, например, алгоритм в PNG-файлах, сжимающий без потерь, по сравнению с алгоритмом в JPG-файлах, который всегда немного теряет в качестве).
Этот временный AVI-файл получится очень большим (примерно 15 Гб на час фильма), поэтому мы будем использовать возможность VirtualDub'а разрезать AVI-файл на части (так называемый segmented AVI). К сожалению, VirtualDubMod иногда зацикливается при переходе от одного сегмента к другому. Поэтому мы будем использовать именно VirtualDub.


4.1 В VirtualDub'е открываем наш AVS-файл.

4.2 Ставим в меню Video -> Fast recompress.

4.3 Нажимаем кнопку Ctrl-P (Или выбираем меню Video -> Compression):

Рис. 16.
Выбираем (1) Huffyuv v2.1.1 и нажимаем кнопку (2) Configure.
Выставляем опции как на картинке:

Рис. 17.
и нажимаем OK,
и ещё раз OK.

4.4 Выбираем в меню File -> Save segmented AVI.
Проверяем, что опция Don't run this job now выключена.

Указываем имя нового файла (если у вас два хард-диска, то лучше сохранять не на тот, где лежат VOB-файлы) и сохраняем.
Процесс занимает примерно 8 часов на 1 час фильма (зависит от быстродействия вашего компьютера). Ожидаемый размер файла (1) и оценку времени кодирования (2) можно увидеть в окне:

Рис. 18.
Если вы не видите такого окна, то его можно включить в основном окне VirtualDub'а, в меню Options -> Show status window.
Если обработка видео слишком тормозит ваш компьютер, то можно понизить приоритет VirtualDub'а (3) с Normal на Lower или на Even Lower. Это, кстати, очень слабо сказывается на быстродействии самого VirtualDub'а.

4.5 Если у вас случился форс-мажор (кончилось место на диске, отключили свет, газ и горячую воду) - в общем, если многочасовой процесс фильтрования не удалось довести до конца - не расстраивайтесь: процесс можно продолжить! yes.gif
Разумеется, не надо выкидывать файлы, которые уже просчитаны (это может быть 20 Гб, а то и больше). Наши действия в подобной ситуации:
a) Запускаем VirtualDub и открываем первый AVI файл, который был получен в п. 4.4. В окне, где вы выбираете файл, обращаем внимание, чтобы была включена опция Automatically load linked segments. Таким образом, весь набор AVI-сегментов будет загружен. Если VirtualDub пишет что-то про испорченный AVI file index и про key-frame flags, то тогда нужно VirtualDub закрыть, стереть последний файл из набора (он дописался не полностью) и после этого открыть первый файл заново в VirtualDub'е. Если при этом VirtualDub требует последний AVI-сегмент (обратите внимание на заголовок окна при выборе файла), то просто нажмите "Cancel".
b) Идём в конец файла (кнопкой Ctrl-Right) и записываем номер кадра, который показан в статусной строке (можно кнопками Ctrl-G, Ctrl-C, Esc).
c) Потом открываем свой AVS-файл (см. п. 4.1), переходим на тот самый кадр (кнопками Ctrl-G, Ctrl-V, Enter). Потом нажимаем кнопки Home, Ctrl-Right, End. Таким образом мы отметили нужный кусок файла (кадры, которые остались не просчитанными).
d) Дальше делаем всё как раньше, начиная с п. 4.2, только новый набор файлов нужно назвать по-другому.


--------------------
Есть сервер: 150Гб, трафик неограничен. 3.5$ в месяц на один год.





Далее: Глава 5.   Займёмся музыкой.