Архивы: по дате | по разделам | по авторам

Видеозапись без видеомагнитофона

Архив
автор : Филипп (Finar) Казаков   29.07.2003

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

Шел я недавно по Савеловскому рынку и услышал краем уха недовольный голос покупателя, который сердито доказывал продавцу, что купленный накануне TV-tuner (далее просто тюнер), конечно, каналы показывает, но другие свои заявленные функции не выполняет. Клипы, мол, такие записывает, что даже на Palm’e смотреть противно. Продавец же резонно возражал, что раз «запись заявлена — запись работает», какие еще могут быть вопросы…

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

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

Плюсы и минусы

Для начала необходимо четко понять, что мы получим и что потеряем, используя для записи любимых фильмов и передач именно компьютер с тюнером, а не бытовой видеомагнитофон. Главное отличие этих двух инструментов в том, что видеомагнитофон — узкопрофильное устройство, специально созданное для записи и просмотра видео. Универсальность компьютера, с одной стороны, позволяет использовать его в любых целях, с другой — удобства тут будет куда меньше, чем при использовании специализированных устройств. Наконец, компьютерный рынок гораздо более динамичен, нежели рынок бытовой техники, поэтому сегодня даже на самых простых устройствах видеозахвата можно получить более высокое качество изображения, нежели на традиционном VHS. В нашем случае мы жертвуем комфортом захвата и своим временем во имя качества изображения и звука, надежности хранения, удобства последующего использования, дешевизны носителей, простоты копирования, возможности самостоятельной корректировки материала.

Оцифровка видео на PC

Прежде чем приступать к описанию премудростей оцифровки видео на PC, имеет смысл ввести читателя в курс дела и рассказать об основных этапах захвата. Сначала телевизионный сигнал по стандартному кабелю поступает в тюнер. Здесь он делится на два потока — аудио и видео. К сожалению, тюнеры нижнего ценового диапазона не умеют оцифровывать звук самостоятельно, что создает пользователям множество проблем. Разделившись в тюнере в трогательной надежде снова встретиться друг с другом, звук и видео разлетаются в совершенно разные стороны. Звук отправляется на звуковую карту по стандартному внешнему кабелю Jack-to-Jack и с этого момента находится целиком под ее властью; видео же начинает оцифровываться, то есть записываться последовательностью чисел на жесткий диск. Звук тем временем интерпретируется звуковой картой и разбивается на сэмплы, которые тоже оцифровываются и записываются на HDD. При записи на жесткий диск оцифрованное видео и звук снова сливаются в одно целое, теперь уже в файл. Тут, казалось бы, и все: вот он, файлик, в нем фильм — смотри себе, на болванки записывай… Но не все так просто. Если бы при записи видео не использовались никакие способы компрессии изображения, то стандартный 90-минутный фильм занимал бы больше 100 Гбайт дискового пространства, а справиться с таким потоком информации нелегко даже новейшему и сверхнавороченному PC-монстру. Поэтому уже во время записи видео компрессируется ресурсами центрального процессора, то есть размер файла уменьшается за счет всяких разных хитростей. Пара хитростей — это уловка, пара уловок — это способ, пара способов — это уже алгоритм, а алгоритм, используемый для компрессии видео, называется видеокодеком. Процесс компрессирования — почти то же самое, что архивирование, видеокодек — почти то же самое, что архиватор (rar, zip, ace) Итак, на первом этапе видео с тюнера, прежде чем записаться на диск, проходит через ЦП и сжимается. Хотелось бы сразу сжать так, чтобы потом просто записать на CD и все. Ан нет, не выйдет, просто потому, что одновременно выполнить три сложнейшие задачи — сжать сильно, не слишком потерять в качестве и уложиться в далеко не безграничные ресурсы ЦП — современной науке и технике не под силу. Две — пожалуйста, в любых комбинациях, но все три — никак. Поэтому первичная компрессия производится компромиссным способом — используются специализированные быстрые кодеки, которые не слишком загружают процессор и сжимают видео примерно раз в десять. Качество при этом, конечно, снижается, но почти незаметно на глаз. Этот процесс будем называть первичной оцифровкой.

Предоставив нам симпатичный и не слишком большой файл с только что захваченным видео, тюнер выходит из игры — больше от него ничего не требуется. Дальнейшая судьба материала зависит только от вас. После беглого просмотра захваченного видео вы быстро убедитесь, что некачественный прием сигнала, наводки внутри компьютера, старый кабель и другие неурядицы не замедлили отразиться на картинке — помехи будут. Кроме того, наверняка будет реклама, высокочастотный писк в аудиопотоке, эффект «расчески», испорченные границы кадра, логотип телеканала в углу и всякие другие технические огрехи. Не опускайте руки — все получится. На то она и первичная оцифровка, чтобы после нее производить финальное кодирование, во время которого все эти неприятности будут более или менее успешно преодолены и мы получим внешне стандартный, но, по сути, глубоко личный и родной видео-CD в формате DivX.

Требования к системе

Для наших целей подходит любой внутренний (PCI) тюнер на чипсете bt878 или 848. Традиционно особым спросом в России пользуется продукция фирмы AverMedia. Это неплохие тюнеры с уверенным приемом сигнала. В Интернете имеется много самых разных драйверов для них, так что можно сделать выбор в пользу AverMedia. Еще одну весьма достойную линейку тюнеров (PCTV) представляет известный производитель плат видеомонтажа Pinnacle Systems. Они отличаются высочайшим качеством приема и программного обеспечения. Однако принципиальных различий в тюнерах на bt878 нет — на цену в большей степени влияет количество и качество всяких примочек, идущих в комплекте (пульт ДУ, web-камера, микрофон, FM-тюнер). Для наших целей они несущественны, так что исходите из своих личных потребностей и желаний.
Итак, тюнер выбрали — теперь его надо куда-нибудь вставить.

Как вы уже поняли, для сегодняшнего компьютера среднего уровня оцифровка телевизионного сигнала не представляет большого труда. Если современные игры у вас бегают нормально, то при должной настройке вы сможете и видео «хватать».

Наибольшее влияние на качество захвата оказывают скорость процессора и объем жесткого диска. С процессором все просто. Pentium III 700 МГц (или аналогичного по производительности от AMD) вполне достаточен для полноценного захвата. Чем выше скорость процессора, тем быстрее пройдет окончательная обработка материала. Так что Pentium 4 3,06 ГГц лишним не будет, хотя он вовсе не обязателен.

От жесткого диска требуется, в первую очередь, объем. Здесь — чем больше, тем лучше. Для получения наилучшего качества следует ориентироваться на 20–25 Гбайт свободного пространства для двухчасового фильма (с рекламой). Тем, кто собирается заняться собственными исследованиями в области захвата или записывать много фильмов подряд, советую помнить известное правило: жесткого диска много не бывает. Как нетрудно догадаться, жесткий диск такого объема a priori обладает неплохой производительностью. При должной настройке ее вполне хватит для захвата: ведь скорость сохраняемого информационного потока составляет около 3 Мбайт/c — сравните с 30 Мбайт/c средней скорости чтения и записи современного жесткого диска. Но все же оптимальное решение в плане надежности и комфорта захвата — использование двух физических HDD, расположенных на разных каналах IDE-контроллера.

Остальные компоненты компьютера на захват принципиально не влияют. От видеокарты требуется поддержка драйверами режима Оverlay (все карты последних лет на это способны), от звуковой карты — малый уровень шума. Как уже говорилось, все тюнеры на чипсетах bt878 и bt848 не могут самостоятельно захватывать звук, поэтому воспроизведением и записью звука занимается исключительно звуковая карта. Если при движении мышки из колонок доносится потрескивание, возможно, пора задуматься о замене звуковой карты — иначе не исключено, что звук во всех ваших фильмах будет испорчен.

Объем оперативной памяти должен обеспечивать работоспособность системы без использования файла подкачки.
Если ваш компьютер не удовлетворяет указанным требованиям, не отчаивайтесь. С некоторыми оговорками, можно захватывать видео и на менее мощных машинах (см. врезку).

Подробнее о требованиях к системе. Непропорциональный захват

Что делать, если вашему компьютеру не хватает ресурсов? Не пугаться. Ваш покорный слуга большую часть своих захватов производил на компьютере с процессором Pentium III 500 МГц и, в общем, не жаловался. Как уже было сказано, наибольшее влияние на качество захвата оказывают производительность центрального процессора и объем HDD.
Качество захвата (обратно пропорциональное системным требованиям компьютера) определяется двумя параметрами — степенью компрессии PicVideo mjpeg и разрешением видеопотока.
Степень компрессии кодека связывает только качество картинки и объем результирующего файла. Чем меньше цифровых искажений, тем больше места займет файл. Компрессию PicVideo следует увеличивать (не слишком сильно — на шесть пунктов максимум) только в случае нехватки дискового пространства. На загрузку процессора эти изменения сильно не повлияют.
Разрешение — основополагающая характеристика видеопотока. Оно определяет объем информации, который предстоит ежесекундно перерабатывать вашему компьютеру, и тем самым влияет на загрузку всех компонентов компьютера. Но и на качество захвата его влияние очень велико. При невозможности использования максимального разрешения (768х576) меньшее устанавливается по определенным правилам.
Вопреки здравому смыслу при использовании меньшего разрешения следует нарушить соотношение сторон кадра. Причина довольно-таки неочевидная. Из-за того что в телевизионном сигнале используется чересстрочная развертка, разрешение по вертикали всегда должно быть кратно 288. То есть варианта всего два — либо 288, либо 576. При использовании первого варианта горизонтальное разрешение составит 384 пиксела. Соответствующее разрешение (384х288) — минимальное, с каким имеет смысл захватывать видео. Зато с таким потоком информации справится даже Сeleron 300A. Второму варианту соответствует результирующее разрешение 768х576, что предъявляет к компьютеру значительно более высокие требования (не хуже Pentium III 600–700 МГц). Переход к максимальному вертикальному разрешению дает принципиальное улучшение качества, поэтому, если компьютер не справляется с полным разрешением, горизонтальным разрешением жертвуют в пользу вертикального. Для обеспечения максимальной совместимости с кодеками имеет смысл уменьшать горизонтальное разрешение с шагом 128 пикселов. Таким образом, если ваш компьютер теряет кадры при 768х576, вам придется провести исследование и найти наибольшее разрешение из указанных, при котором производительности еще хватает: 640х576, 512х576, 384х576 и 384х288. При наложении в VirtualDub последнего фильтра Resize не забудьте восстановить правильное соотношение сторон кадра.

Настройка Windows

Будем считать, что «железную» часть компьютера мы для захвата подготовили. Теперь займемся настройкой нашего богатства.

Оцифровка потокового видео требует от компьютера ежесекундно перерабатывать около 50 Мбайт данных да еще и успевать их упаковывать и сохранять на жесткий диск, и все это безостановочно в течение полутора, а то и более часов. Чтобы на протяжении этого времени компьютер не совершил ни одной критической для всего процесса ошибки, требуются специальные приготовления:

- Добейтесь 100-процентной стабильности работы компьютера.
- Захват рекомендуется производить в среде Windows 2000 или Windows XP. Во-первых, эти ОС поддерживают файловую систему NTFS (которая не имеет ограничения на размер файла в 4 Гбайт), а во-вторых, имеют значительно улучшенную систему распределения приоритетов между приложениями. В Windows 9x процесс захвата проходит почти так же, как в 2000/XP (о специфике захвата в 9х читайте во врезке на стр. 48), однако для серьезной работы эти ОС не подходят. Если вы собираетесь заниматься захватом более или менее постоянно, придется все же перейти на 2000/XP.

- Если Windows стоит на том же физическом жестком диске, на который производится захват, придется постоянно следить за его состоянием. Он не должен быть компрессирован, обращения к нему со стороны фоновых программ во время захвата должны быть сведены к минимуму. И самое главное, диск должен быть дефрагментирован. Если в середине фильма вы внезапно услышите шуршание головок диска, ищущих свободное место на пластине, возможна потеря кадров и появление множества проблем, с этим связанных. Если же вы захватываете на отдельный HDD, да еще и при процессоре Pentium 4, то во время захвата вы можете заниматься своими делами (смотреть фильмы, писать болванки или статью в «Компьютерру») — только бы ни одно из этих дел не слишком тревожило жесткий диск, на который производится запись.

- Шагайте в ногу со временем — поставьте DirectX хотя бы 8-й версии.
- От драйверов тюнера зависит очень многое. Если что-нибудь не работает, читайте врезку.

Борьба с тюнером

Тюнеры — «железо» довольно капризное. В каждом тюнере заключено немало функций, поэтому очень важно правильно установить его. Самое главное, чтобы он находился подальше от «помехогенерирующих» устройств компьютера, таких как видеокарта и жесткий диск.
Многие производители выпускают хорошие тюнеры, многие комплектуют платы множеством приятных мелочей, но лишь немногие пишут хороший софт для своих изделий. Обусловлено это тем, что для просмотра телепередач, худо-бедно, хватит простенькой программы, но почти никто из производителей не предполагает, что на их несерьезном развлекательном оборудовании можно успешно заниматься сравнительно качественной оцифровкой. Поэтому существует немало драйверов сторонних разработчиков, во многом более совершенных, чем официальные версии.
Например, на сайте www. iulab.com лежат «твикнутые» драйверы от автора iuVCR Ивана Ускова. Если iuVCR не заработает с родным драйвером вашего тюнера, попробуйте поставить эти драйверы. Кроме того, многие родные драйверы тюнеров не поддерживают ACPI, то есть после обращения к тюнеру вы не сможете перевести компьютер в «ждущий» режим до полной перезагрузки системы. Так что при наличии свободного времени и спортивного интереса в любом случае полезно опробовать драйверы от Ивана Ускова. Если трудности все же возникают, сходите на www.borgtech.org, где вы получите не только богатую информацию об использовании тюнеров, но и собственные драйверы еще одного энтузиаста, Eduardo Jose Tagle. В общем, найти подходящие драйверы — уже полдела.

Первичная оцифровка

Для первичного кодирования видеопотока нам понадобится нересурсоемкий и качественный кодек. Вполне подойдет PicVideo mjpeg (www.jpg.com/capture. htm). После того как вы установили драйвер для тюнера и кодек PicVideo, вы быстро поймете, что захватывать видео с помощью фирменной программы либо совершенно невозможно, либо очень неудобно. Если вы этого не поймете, все же дочитайте эту статью до конца — весьма вероятно, что ваше мнение изменится. Итак, прошу любить и жаловать — iuVCR (www.iulab.com), программа для захвата видео с тюнеров. Скачали, запускаем.

Утилита довольно проста в использовании, но при этом очень мощна. Прежде чем приступить к долгожданному процессу, пройдемся по закладкам.

Файл. Здесь вы можете выбрать путь к папке и файлу, в который будет захватываться видеопоток, и альтернативные пути к файлам захвата. Если на основном диске вдруг закончится место, iuVCR автоматически создаст новый файл на одном из дополнительных томов. Учтите, что впоследствии вряд ли удастся склеить два кусочка фильма в один файл стандартными средствами. Если вы используете Win 9x/ME, крайне полезной функцией для вас окажется разбиение видеопотока на несколько файлов. Для ее включения установите максимальный размер файла на 4000 Мбайт. Захваченное видео будет записываться на диск в виде последовательности файлов, каждый объемом менее 4 Гбайт. Это позволит захватить фильм любой длины, не беспокоясь об ограничении файловой системы FAT32 на размер файла. Остальные параметры, настраиваемые в первой закладке, позволю себе не описывать — их смысл понятен из названия.

Видео. Это одна из самых важных закладок. В «Параметрах» выбирается устройство захвата. В нашем случае ничего выбирать не надо — драйвер тюнера будет выбран автоматически. За кнопочкой «Настройка» скрывается окно, управляющее аппаратными настройками приема и декодирования сигнала тюнером. В России используется видеостандарт SECAM, его и надо выбрать. Кроме того, обычно в этом же окне можно настроить яркость, контрастность и другие параметры воспроизведения изображения. Позже с ними можно поэкспериментировать в свое удовольствие, однако для первого раза лучше оставить эти параметры по умолчанию, тем более что их можно подкорректировать уже после захвата. Кнопка «Формат записи» открывает окошко, в котором настраивается разрешение захватываемого кадра, частота кадров и формат цвета. Разрешение ставим максимальное, частоту кадров — 25, формат цвета — YUV2. «Формат просмотра» настройте как вам угодно — во время записи просмотр вряд ли будет доступен. Кнопка «Коммутатор» позволяет выбрать источник, с которого вы собираетесь производить запись. Это может быть композитный вход (тюльпан), S-video-вход и непосредственно Tuner. Выбираем тюнер, в качестве источника audio — Line-in. Оставшиеся две кнопки, если они доступны, открывают окна управления другими настройками тюнера, специфическими для каждого производителя. В меню «Компрессия» выбираем установленный ранее PICVideo mjpeg codec. Если у вашего компьютера процессор слабее, чем PIII 700, или если не хватает места на диске — вам не повезло. Тогда придется не только прочесть врезку (стр. 45), но и провести маленькое исследование, о котором там как раз и написано. Если же ваш компьютер удовлетворяет минимальным требованиям, смело ставьте в настройке компрессии качество 1.

Аудио. В параметрах выбираем ту звуковую карту, в которую вставлен кабель от тюнера. Вход микшера выбираем Line-in, громкость на максимум. Вообще-то все, кроме формата записываемого звука, можно настроить из стандартной панели регулировки громкости звука Windows. В качестве формата выбираем PCM 44.1kHz, 16 bit, mono. Почему? Moнo — потому что все российские телеканалы вещают в моно-режиме. 16 бит — потому что 8 мало. 44,1 кГц — справедливо для любых звуковых карт, кроме семейства SB Live! Если у вас такая карта, настоятельно рекомендую использовать 48 кГц. И, наконец, формат PCM (без компрессии) рекомендуется потому, что принципиально компрессия звука не уменьшит размер файла захвата, зато может создать проблемы с синхронизацией видео и звука. Кроме того, сжатый звуковой поток уже нельзя обработать без повторной потери качества.

Тюнер. Позволит вам управлять настройкой каналов из iuVCR. После нажатия кнопки «Сканер» iuVCR просканирует весь доступный диапазон частот и найдет максимальное количество каналов. Кстати, зачастую оно превышает обнаруженное «родным» софтом. Но вообще-то этой закладкой можно не пользоваться, а настроить тюнер на нужный канал из «родной» программы и лишь затем запустить iuVCR.

Опции. Тут довольно много настроек, однако все они подробно описаны в help’e к программе, поэтому позволю себе остановиться лишь на двух из них. Во-первых, сразу же включите опцию «Выкл. скринсейвер», иначе потом вы наверняка забудете это сделать. Во-вторых, активируйте «Смещение аудио» со стандартной настройкой 150 мс. Это ликвидирует отставание видеопотока, которое возникает каждый раз в начале захвата и составляет около 150 мс. К остальным настройкам следует обращаться только в случае серьезных проблем.

Профили. Здесь можно сохранить все текущие настройки под отдельным именем.

Инфо. Тут настраивать нечего. Сюда 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 для захвата не рекомендуется.

Главная задача финальной кодировки — получение из уже имеющегося видеофайла файла меньшего объема. Этот процесс схож с кодированием DVD в DivX (см. «КТ» #463), однако если качество DVD-видео практически идеальное, то захваченный нами файл обязательно будет содержать помехи. Даже если они не видны, это не значит, что их нет. Алгоритмы всех кодеков, дающих сильное сжатие с маленькими потерями качества, во многом основываются на наследовании видеоряда. Поэтому на визуально еле заметные точечные колебания цвета и яркости кодек реагирует очень болезненно, старательно пытаясь их закодировать и сохранить, за счет чего большая часть битрейта тратится на ненужную информацию. Очистка видео — процесс нетривиальный и многогранный (см. врезку ). Но если очистка и не требуется, то прежде чем приступить к сжатию файла в mpeg4, на него надо наложить цепочку фильтров, которая максимально подготовит материал к сжатию.

Очистка видео с помощью VirtualDub

Помехи — случайные кратковременные колебания цвета и яркости точечного характера. При оцифровке телевизионного сигнала они появляются всегда. Для борьбы с ними энтузиастами, безработными видеомонтажерами и просто хорошими людьми написано немало разных фильтров. Каждый из них (фильтров, не людей) имеет свои плюсы и минусы. Оптимальной цепочки чистящих фильтров на все случаи жизни не существует. При очистке видео необходимо придерживаться лишь одного правила, изложенного ниже, а в остальном результат зависит исключительно от вашего терпения и чутья. Чем больше времени вы уделите экспериментам, тем лучше будет результат и тем больше опыта вы накопите.
Эффект интерлейсинга заключается в том, что каждый кадр оцифрованного видео состоит из двух совмещенных полукадров источника. Но во время транслирования полукадры шли друг за другом: 1/50 секунды — первый полукадр, 1/50 — второй. Теперь же эти полукадры совмещены, и каждая нечетная строчка захваченного кадра была получена на 1/50 секунды раньше, чем четная. Поэтому помехи в четных строчках одни, а в нечетных — немного другие. Так как во время очистки фильтры используют информацию с соседних строк, то для более успешной очистки видео (после обрезания ненужных краев) кадр трансформируют, разбивая на два условных поля. Левое состоит из четных строк, правое — из нечетных. Ширина кадра при этом, естественно, увеличивается в два раза. Затем накладывается цепочка чистящих фильтров, и очищенные кадры трансформируются обратно.
Сформулированное правило, наверное, звучит довольно устрашающе. Но не волнуйтесь, разработчики VirtualDub уже обо всем позаботились и все предусмотрели. Для первого трансформирования кадра от вас требуется всего лишь добавить встроенный фильтр Deinterlace с опцией Unfold fields side-by-side, для второго — его же с опцией Fold fields side-by-side. Теперь вопрос только в том, что поставить между двумя деинтерлейсингами.
Рассмотрим наиболее достойные фильтры, выбор же лучшего вам придется сделать самостоятельно, исходя из личных предпочтений и особенностей приема сигнала вашим тюнером.
Chroma Noise Reduction, Dynamic Noise Reduction (freevcr.ifrance.com/freevcr/virtualdub/cnr11.zip, www.shdon.com/dnr2. zip) — классические фильтры, традиционно используемые одновременно, причем CNR накладывается обязательно перед DNR. Настройки CNR обычно оставляют по умолчанию, Noise threshold в DNR рекомендуется оставлять в районе 9 пунктов. Работают фильтры довольно быстро, но нередко эффект от очистки не слишком велик.
Video DeNoise (www.risingresearch.com/ files/denoise.zip). По мнению автора сайта vrv. nm.ru, — лучший фильтр для очистки видео. В действительности этот фильтр можно назвать почти универсальным. В любом случае, начинать эксперименты с очисткой надо именно с него, и только если нужного эффекта добиться не удается — переходить к другим вариантам.
FlaXen VHS (shelob.mordor.net/dgraft/ flaxen/fxvhs.zip) — фильтр, созданный для комплексной обработки изображений, полученных с VHS-источников. Noise Reduction в нем работает медленнее, чем во всех рассмотренных фильтрах. Но если полученный вами промежуточный материал напоминает пленку VHS, то очистка этим фильтром даст наилучший результат.
Random Noise Remover (playland.ru/observatory/rnr104.zip) — самый свежий фильтр, появившийся совсем недавно. Его характерная особенность в том, что, по возможности удаляя шум, он лучше других фильтров сохраняет четкость изображения.

Основной этап обработки видео производится в VirtualDub. Как вы уже, наверное, заметили, в нем видео проигрывается сразу в двух окнах. В левом — исходное видео, в правом — обработанное. Для наложения фильтра кликните Video Х Filters. Появится окно со списком (пока пустым), в который фильтры будут заноситься в порядке их применения. Для добавления фильтра знаток английского языка немедленно нажмет кнопку «Add…».

Первое, что мы добавим, — «ленивый» фильтр, который ничего не делает. Он так и называется — Null Transform. Зато наличие хотя бы одного фильтра сделает доступной кнопку Cropping, которой тут же и воспользуемся. Cropping — это обрезание кадра. Чуть-чуть резать нужно в любом случае, так как края всегда испорчены и кодировать их незачем, тем более что без них картинка воспринимается лучше. Если же края испорчены сильно или имеются черные полосы в верху и в низу экрана, то резать надо много, — пока в кадре не останется только нужное качественное видео. Много — но аккуратно и по правилам. Отрезанное по вертикали и по горизонтали число пикселей должно делиться на 8 или хотя бы на 4. Такая вот неслучайная особенность.

Следующее, что нужно сделать, — это избавиться от эффекта «расчески» на краях объектов. Этот эффект и его причины были подробно рассмотрены в «КТ» #463, поэтому не будем вдаваться в теоретические подробности. В VirtualDub’e эта проблема решается внесением внешнего фильтра Smart Deinterlace (tuner.ixbt.com/capture/files/smart27b2.zip).
Окончание следует

Захват под Windows 9х

Если в ближайшее время вы не планируете переходить на Windows 2000/XP, попробуйте поиграть с захватом под Windows 9x/ME. Имеется два принципиальных отличия при захвате в этих системах. Первое и самое главное: невозможно захватить видео в файл объемом более 4 Гбайт. Обусловлено это вовсе не ограничением файловой системы FAT32 (существуют драйверы NTFS для Windows 9x/ME), а принципиальными ограничениями операционных систем этого типа. Так что, даже установив поддержку NTFS, вы не сможете избавиться от ограничения на размер файла.
Второе отличие заключается в том, что в Windows 9x/ME гораздо хуже реализована многозадачность и масштабируемость приоритетов выполнения процессов. Поэтому понадобится чуть более мощный компьютер, и, скорее всего, во время захвата его не удастся использовать в других целях.
Принципиальной разницы в методах захвата под разными семействами Windows нет. Различия важны только при первичной оцифровке. Можно использовать iuVCR (последние версии этой замечательной утилиты корректно работают в среде Windows 9x/ME), и в этом случае в первой вкладке нужно указать разбиение на файлы размером в 4000 Мбайт. Потом, конечно, придется мучаться со склейкой этих файлов. Или с ее невозможностью.
Если по каким-либо причинам iuVCR вас не устроит, в Windows 9x/ME его вполне может заменить VirtualDub. Если вы заметили, в меню File есть опция Capture, позволяющая делать захват. VirtualDub предоставляет почти такие же базовые возможности, что и iuVCR, хотя удобство его настройки оставляет желать лучшего. Но, с другой стороны, надежность его работы в Windows 9x/ME гораздо выше. Не буду вдаваться в тонкости настройки этого инструмента — если уж вы твердо решили заниматься захватом под Windows 9x/ME, разобраться с ними не составит труда. Для выбора канала вам придется перед запуском VirtualDub настроить тюнер на эту частоту из его «родной» программы.
Пользователь Windows семейства NT! Будь внимателен, не используй VirtualDub — он работает только через VFW-драйверы, что не позволит использовать разрешение выше 384х288!

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.