Видеозапись без видеомагнитофона
 
24.06.2003
Филипп (Finar) Казаков


 
<< стр. 3
стр. 4
стр. 5 >>

Инфо. Тут настраивать нечего. Сюда iuVCR вернет вас после нажатия кнопки «Начать запись». Самую важную информацию несет строчка «Пропущено кадров». Пропущенные кадры — это кадры, которые по тем или иным причинам оцифровать не удалось. Они могут появиться из-за внезапно возросшей нагрузки на ЦП (его производительности не хватит на кодирование очередного кадра), из-за фрагментированности или опять же загруженности HDD. К сожалению, iuVCR не заполняет пропущенные кадры пустышками, а просто выкидывает их. А частота кадров при этом не меняется, поэтому в итоге изображение один раз дергается, а звук в этот момент безвозвратно уходит вперед. Происходит рассинхронизация аудио- и видеопотоков. Если пропущено 6 кадров, звук обгонит видео на 6/25 секунды, то есть примерно на 250 мс. Это нижний предел, который еще не замечает неискушенный зритель. 333 мс подсознательно уже заметны всем, 500–1000 мс сильно раздражают. Вы же быстро научитесь слышать 125 мс. Но самое неприятное, что бороться с такой рассинхронизацией очень трудно (см. врезку).

Борьба с рассинхронизацией (универсальный способ)

При неправильной настройке программы захвата (из-за устаревших драйверов или других причин, коих великое множество) захваченные аудио- и видеопотоки могут оказаться рассинхронизованными. Рассинхронизация бывает трех типов.
В первом, самом простом случае аудиопоток смещен относительно видеопотока на некоторый временной интервал, то есть звук по всему фильму опережает или отстает от видео. Бороться с такой проблемой сравнительно легко. Для этого на шаге склейки в VirtualDub видео- и аудиопотоков идем в Audio Х Interleaving. В поле Audio skew correction вводим «на ухо» величину сдвига аудиопотока в миллисекундах (следует соблюдать точность в пределах 100 мс). После введения значения результат можно прослушать сразу, причем для оценки очень удобно найти какой-нибудь характерный момент с резким звуком (выстрел, например, или хлопающую дверь). Немного поэкспериментировав, вы без труда добьетесь синхронизации.
Во втором, более сложном случае звук постепенно убегает от видео. Иначе говоря, в начале фильма все в полном порядке, а к концу разрыв плавно увеличивается до неприемлемого уровня. Эту проблему простым сдвигом не решить — если в одном конце фильма звук и видео синхронизованы, то в другом они обязательно разбегутся. Как вы понимаете, для полной синхронизации нам понадобится «растянуть» или «сжать» аудиопоток. В некоторых случаях (к сожалению, не слишком часто) эту задачу можно решить встроенными средствами VirtualDub. Отправляемся в Video Х Frame Rate и выбираем Change so video and audio duration match. Если указанная здесь в скобках величина не равна исходной частоте кадров, то есть шанс на победу малой кровью. Если же она равна этой частоте, значит, не все так просто, и аудио и видеопотоки имеют одинаковую длительность, но действительная длина у них разная. Теперь можно попробовать подстроить частоту кадров вручную (строчкой выше в окне Frame Rate), изменяя значения с шагом около 0,001, но этот вариант, на мой взгляд, не слишком удобный, и лучше пользоваться более надежным алгоритмом.
Начнем с определения величины максимального сдвига аудиопотока. Для этого добейтесь синхронизации звука и видео в конце фильма методом сдвига аудиопотока относительно видеопотока, как было рассказано выше. Затем запомните величину, введенную в поле Audio skew correction, удалите ее и сохраните аудиопоток в отдельный wav-файл. Далее, используя какую-нибудь более или менее серьезную программу для обработки звука (например, Sound Forge 4.5), измените длительность полученного wav’a с учетом той величины, которую вы вводили в поле Audio skew correction (в Sound Forge 4.5 для этого надо отправиться в Process Х TimeCompress/Expand). Сохранив исправленный файл, используйте его в VirtualDub’e вместо исходного аудиопотока.
В третьем случае (самом тяжелом) рассинхронизация появляется за счет пропуска кадров во время захвата. Пропуск кадров может быть вызван многими причинами, но не все они ведут к рассинхронизации. Наиболее частая из них — нехватка ресурсов компьютера. В какой-то момент компьютер не успевает оцифровывать поток видеоинформации и пропускает несколько кадров. Аудиопоток же, записываясь как ни в чем не бывало, в этот трагический момент отрывается от видео на величину (пропущено кадров)*1/(частота кадров). Беда не в том, что видео дернулось — это не испортит впечатления от картины. Беда в том, что, даже запомнив место сбоя, синхронизацию звука и видео можно восстановить только вручную, используя мощную программу видеомонтажа (Adobe Premiere, например). Это задача уже совершенно другого уровня, здесь мы ее рассматривать не будем.

Расписание. Здесь можно задать включение и выключение записи по таймеру.
Фильтры. Тут можно добавить DirectShow-видеофильтры, которые наложатся прямо во время захвата. Этого делать не надо, поскольку в любом случае на первом этапе видео захватывается почти без потери качества, и, стало быть, сразу фильтры класть или потом — разницы никакой. А жертвовать дорогими процессорными ресурсами и надежностью лишний раз не стоит.

Теперь все готово для долгожданного запуска. Нажимаем красную кнопочку справа и… Светодиод жесткого диска горит, не мерцая, — процесс записи пошел. Кстати, просмотр записываемого материала, скорее всего, будет недоступен.

По окончании записи сразу же проверьте синхронизацию звука и изображения. Если таковой не наблюдается, обратитесь к врезке.

Посмотрим, что получилось в результате первичной оцифровки. Получен один файл с расширением avi (в некоторых случаях файлов может быть больше), содержащий аудио- и видеопотоки. Видеопоток с большим разрешением сжат в mjpeg. Аудиопоток — несжатый mono. Примерно 30% времени захвата ушло на рекламу. Качество записанного практически соответствует оригиналу. Общий объем захваченного колеблется в районе 20 Гбайт. Теперь наша задача — не слишком потерять качество, но размер файла уменьшить.

Финальное кодирование

Во время финального кодирования звук и видео снова разделяются и кодируются отдельно, соединение происходит в самый последний момент. Но прежде чем что-либо обрабатывать, надо добавить нужное и отбросить лишнее.

Сначала вырезают рекламу и лишние кадры в начале и конце фильма, а затем сохраняют звук в отдельный файл. Сам файл с видео при этом не модифицируется. Вся информация о том, что откуда было вырезано и какие фильтры и с какими настройками были наложены, сохраняется в файле проекта. Вот как это делается: открываем VirtualDub (www.virtualdub.org/index), в нем — полученный в результате захвата файл. Используя ползунок в нижней части экрана и кнопки «Home», «End» и «Del» — соответственно для начала, завершения и удаления выделения, хладнокровно и неторопливо вырезаем все кадры, не имеющие отношения к будущему фильму. Сохраняем файл проекта (File Х Save Processing Settings) с информацией обо всех внесенных изменениях. На текущий момент нам просто требуется запомнить, какие кусочки видео мы вырезали. Теперь можно смело сохранить звук в отдельный файл (File Х Save WAV) и на время о нем забыть, а освободившиеся ресурсы головного мозга направить на обработку видео. Будьте внимательны: отделив звук, изменять длительность видеопотока больше нельзя.

Если по каким-то причинам вы работаете с несколькими файлами, то их можно попробовать объединить. Сами файлы, разумеется, останутся отдельными, но в проекте VirtualDub’a они сольются, будут обрабатываться как единое целое, и окончательный файл тоже получится один. В VirtualDub откройте первый файл, затем кликните File Х Append AVI segment, добавьте второй и т. д.

К сожалению, соединение возможно лишь в том случае, если характеристики первого и добавляемого файла совпадают. А так как iuVCR каждый раз захватывает с чуть-чуть разной частотой кадров, вероятность совпадения небольшая. Поэтому скорее всего вам придется обрабатывать каждый файл отдельно, что не слишком удобно. Это одна из причин, почему использовать Windows 9x/ME для захвата не рекомендуется.



 
<< стр. 3
стр. 4
стр. 5 >>

<<Стратегия — это тактика, глобализация — это локализация
Все материалы номера
События >>