Вам упаковать? Проблемы при воспроизведении цифрового видео на компьютере

altИногда случается так, что, запуская видеоролик, вы видите только черный экран и сообщения о безуспешных попытках Windows Media Player найти нужный кодек. Хорошо, если на диске с фильмом лежат инструменты для его воспроизведения, но что делать, если их нет?

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

КАКОЙ КОДЕК НУЖЕН?
В заголовке AVI-файла всегда содержится информация о том, каким именно кодеком он сжат. Определить это можно, ознакомившись с системными сообщениями, выводимыми плейером, или открыв файл любым текстовым редактором и найдя строчку Vids – следующий за ней четырехсимвольный код обозначает кодек. Но гораздо проще воспользоваться программой GSpot (www.headbands.com/gspot).



Она выведет подробную информацию о видеофайле: скорость потока, разрешение, кодек, количество аудиодорожек и метод сжатия. Кроме того, вы сможете проследить, через какие фильтры проходит видео- и аудиосигнал при воспроизведении – это помогает выявлять неисправности в цепочке.
Если нажать кнопку “More info” ниже описания кодеков, GSpot перечислит, какие совместимые с данным файлом декодеры есть в системе, и подскажет, откуда скачать недостающие. Некоторые плейеры, например Light Alloy или Zoom Player, сами определяют, какой кодек нужен.

DIVX 5
(www.divx.com)
Засилье пиратских DVD с шестью фильмами отвратительного качества на одной стороне стало возможным во многом благодаря третьей версии этого кодека, позволяющей записать полуторачасовой фильм на диск в 650 Мб. На протяжении последних лет кодек непрерывно совершенствовался – и сегодня DivX поддерживается рядом аппаратных проигрывателей, как правило произведенных в странах Юго-Восточной Азии.



Сразу после установки необходимо зайти в «Пуск» > «Программы» > DivX > Decoder Configuration и настроить параметры воспроизведения. Меню состоит из трех закладок, нам интересны первые две: Post-Processing и Quality Settings.

Декодирование потока DivX – весьма ресурсоемкий процесс, и качество изображения зависит от возможностей вашего аппаратного обеспечения. При реконструкции картинки из сжатого DivX-файла существует два основных типа артефактов.

- Blocking. Так как одним из основных методов сжатия картинки DivX является алгоритм JPEG, то при низкой скорости потока возникают специфические для него искажения, особенно в динамичных сценах, когда изображение словно распадается на блоки по 8×8 пикселей.

- Ringing. Из-за неточностей восстановления информации на границах резких цветовых переходов возникает специфический муар, вызванный усреднением цветовой информации. Особенно заметен данный эффект при движении темных объектов на светлом фоне или наоборот. В сравнении с Blocking данный эффект не так заметен и меньше влияет на субъективное восприятие картинки, что нужно учитывать при распределении системных ресурсов.

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

Механизмы не отличаются особенной оригинальностью: в структуре изображения выделяются участки в зависимости от детализации, к малодетализированным объектам применяется размытие для устранения Blocking, причем чем меньше детализация, тем сильнее размытие. Особенно хорошо поддаются обработке различные однотонные и градиентные фоны (море, небо, стены) – иногда, правда, кодек ошибается, и на стене можно недосчитаться кое-каких деталей (например, окон или балконов), а на море – части волн, но ведь можно и забыть, что они там были. Четкость высокодетализированных объектов повышается с помощью эффекта, похожего на фильтр Sharpen в Adobe Photoshop, когда увеличивается контрастность цветовых переходов.

Разумеется, в реальности все происходит намного сложнее, но основные принципы именно таковы. Поэтому при воспроизведении фильмов, сжатых в DivX 3.11 с помощью декодера пятой версии, удается получить картинку более высокого качества. C помощью бегунка можно регулировать сложность обработки и, соответственно, качество картинки в зависимости от возможностей системы.
Film Effect придает картинке специфическую зернистость.

Данный эффект пытается воспроизвести изображение в кинотеатре, когда на экране заметно зерно кинопленки. Визуально возникает иллюзия большей резкости, и частично маскируются Ringing-артефакты. С помощью бегунка можно установить интенсивность зерна, но не стоит слишком усердствовать – достаточно сдвинуть его на 1-2 деления, иначе эффект будет обратным. Film Effect требует дополнительных ресурсов – при их недостатке его стоит отключить в первую очередь. Кстати, понять, что вам не хватает ресурсов, очень просто – видеофайл при этом проигрывается рывками, звуковая дорожка запаздывает за происходящим на экране или воспроизводится с искажениями.

Quality Settings (Настройки качества)

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

Smooth Playback
В составе DivX-видео существуют так называемые двунаправленные кадры (B-Frame). Сами по себе они практически не содержат данных и на 90% синтезируются на основании информации из предыдущего и последующего кадров, точно так же, как промежуточные кадры в мультипликации. Это значительно экономит место, но при воспроизведении процессору необходимо декодировать предыдущий кадр, затем следующий, и только потом синтезируется и отображается промежуточный B-Frame.

Из-за этого потребление системных ресурсов изменяется скачкообразно, что может проявляться периодическими рывками изображения. При включенном Smooth Playback создается буфер, куда заранее копируются группы кадров и на их основе синтезируется B-Frame, в то время как на экран выводятся предыдущие – это обеспечивает плавное воспроизведение видео. Побочным эффектом является невозможность декодировать первый и последний кадр видеокомпозиции. Впрочем, один кадр обычно не несет большой смысловой нагрузки.

Yuv Extended Mode
При использовании этой опции видеопоток декодируется в цветовой формат Yuv 12 – это “родной” формат видеокарты, что позволяет передавать ей информацию напрямую. Это серьезно разгружает процессор, однако как-либо преобразовать сигнал вам не удастся, и параметры яркость/контраст/цветность работать не будут. Их можно изменить на уровне настроек Overlay в проигрывателе.

Overlay Extended Mode
В стандартном режиме прорисовкой изображения занимается центральный процессор. При задействованном режиме Overlay выводом видео на экран занимается видеокарта. При этом процессору остается лишь заполнить весь экран или его участок специфическим цветом, куда при выводе на монитор видеокарта и поместит картинку. Данный механизм называется Chroma Keying и работает по тому же принципу, что и съемки фильмов на “синем экране”. Разумеется, при этом значительно снижается нагрузка на центральный процессор, особенно в сочетании с режимом Yuv Extended Mode.

С помощью данного режима можно также изменять пропорции картинки, например изменить формат фильма с 16:9 на 3:4 и наоборот. Это позволяет избавиться от черных полос по краям изображения, но польза от этой функции сомнительна, поскольку при этом искажаются пропорции объектов.
Overlay поддерживается большинством современных видеокарт, однако при использовании со старыми моделями, например серии Voodoo или Riva TNT и некоторыми другими, могут возникнуть артефакты или видео вообще не запустится.

При задействованном Overlay нельзя сохранить кадр из фильма, так как информация выводится напрямую на экран и при нажатии клавиши Print Screen вместо фильма будет просто черный квадрат. В этом случае проблема решается использованием программы VirtualDub – она всегда декодирует файл средствами CPU; кроме того, многие медиаплейеры умеют сохранять отдельные кадры, принудительно декодируя их с помощью процессора.

Double Buffering
Удваивает размер буфера в видеопамяти для DivX-потока, разгружает оперативную память системы и в сочетании со Smooth Playback гарантирует плавное воспроизведение фильма даже с высоким битрейтом и в сложных сценах. Не используйте данную опцию, если у вашей видеокарты меньше 8 Мб видеопамяти – это лишь ухудшит качество воспроизведения.

Disable Logo
Если не задействовать этот параметр, первые несколько секунд воспроизведения картины в правом нижнем углу будет вырисовываться полупрозрачный логотип DivX.

Generic MPEG4 Support
Сделает DivX основным MPEG4-кодеком в системе, при этом он будет воспроизводить не только DivX, но и XviD, и MPEG4-файлы. Если при воспроизведении некоторых файлов будут возникать артефакты, попробуйте отключить данный параметр.

XVID
Побочная ветвь эволюции видеокодека MPEG4, существующая еще со времен утечки исходных кодов. В целом DivX и XviD очень похожи и совместимы друг с другом. XviD, незначительно уступающий в качестве конкуренту, стал популярным благодаря возможности указывать фиксированный размер будущего файла при кодировании материала, а также портированию кода на различные операционные системы – Linux, MacOSX, *BSD и даже экзотические Solaris 8 и BeOS. Особенно часто XviD используется при кодировании видеоклипов, распространяемых через интернет. Вдобавок, в отличие от DivX, он совершенно бесплатен. На официальном сайте этого кодека (www.xvid.org) вы найдете лишь исходные коды для разработчиков, так что, если вы обычный пользователь Windows, лучше установить какой-либо из готовых “бинарников”, например Koepi XviD (www.koepi.org). К тому же XviD обязательно входит в состав практически всех Codec Pack.

Несмотря на несколько отличающийся дизайн меню настроек, функции практически те же, что и в DivX, только уровень качества регулируется автоматически и наличествует опция Flip Video, с помощью которой можно переворачивать картинку. Иногда это позволяет легко исправить сбой с некоторыми фильтрами, в частности Indeo и некоторыми другими, которые переворачивают изображение DivX-файлов. Four CC, аналог опции Generic MPEG4 Support, позволяет задать, является ли XviD декодером для DivX-файлов, причем можно разделять пятую и предыдущие версии, а также все остальные MPEG4.

Другие форматы
Matroska (Матрешка, www.matroska.org) и Ogg/Vobris (tobias.everwicked.com)
«Матрешка» и Ogg/Vobris – это не только и не столько форматы сжатия, сколько контейнеры, в которых удобно объединять различные цифровые объекты: видео, музыкальные композиции, субтитры, графику и инструкции по их воспроизведению. Файлы «Матрешки» имеют расширение MKV и MKA и воспроизводятся любым проигрывателем как обычные AVI при наличии кодека. То же касается и Ogg/Vobris – его файлы имеют расширения OGG и OGM. В рамках контейнера возможно разделение фильма на главы, создание анимированных меню и так далее, подобно тому, как это реализовано на DVD. Несмотря на очевидное удобство использования, широкого распространения эти стандарты пока не получили (хотя нередко встречаются в пиринговых сетях).
Quick Time Alternative
Quick Time – универсальный формат сжатия, разработанный компанией Apple. Основная сфера применения – компьютеры Macintosh, где он является таким же стандартом, как MPEG или AVI на PC. Этот формат обеспечивает приличное сжатие и качество картинки, сравнимое с MPEG2. Чаще всего пользователям PC приходится сталкиваться с MOV-файлами при просмотре трейлеров американских фильмов, распространяемых в сети. Это делается из соображений совместимости, так как компьютеры Macintosh наиболее широко распространены именно на американском рынке. QT можно встретить и в составе активного контента некоторых веб-сайтов, откуда его, впрочем, успешно вытесняет Flash. До недавних пор единственным плейером для QT-файлов был Apple Quick Time Player. Мало того, что его версия для PC громоздка и нестабильна, так она еще просит $30 за одну только возможность развернуть картинку на полный экран. К счастью, благодаря стараниям K-Lite Team появился кодек QT Alternative, позволяющий воспроизводить MOV- и QT-файлы любым медиаплейером, точно так же как и обычные AVI.

Real Media Alternative
Детище все той же K-Lite Team, история практически та же, что и в случае с QT Alternative. Формат Real Media изначально создавался для передачи видео в низкоскоростных сетях. Пожалуй, именно RM-файлы демонстрируют наилучшее соотношение объем/качество, обеспечивая приемлемую картинку на сверхнизких битрейтах. На один компакт-диск в формате Real Media может уместиться 8-10 часов видео.

Качество, конечно, будет намного ниже телевизионного, но вполне пригодным для просмотра. Неудивительно, что сегодня наибольшее распространение Real Media получил в сфере мобильных устройств, где благодаря малым размерам и разрешению экрана низкое качество картинки не так бросается в глаза. На PC RM можно встретить в виде различных preview-роликов. Кромет того, Real Media широко используется в интернет–вещании и различных системах онлайн-наблюдения.

Одной из причин ограниченного распространения этого формата является крайне неудобный проигрыватель, имеющий большие размеры и изобилующий навязчивой рекламой (более того, старые версии плейера либо вовсе не умеют проигрывать современные RM-файлы, либо делают это плохо).
RM Alternative задаст вам всего один вопрос – о скорости вашего интернет-соединения. После этого вы сможете воспроизводить RM-файлы и получать потоковое видео в Real Media с помощью обычного Windows Media Player или любого другого медиаплейера.

Скачать Quick Time Alternative и Real Media Alternative можно на официальном сайте K-Lite Team (www.codecguide.com). Кроме того, они входят в состав K-Lite Codec Pack Mega.

FFDSHOW DECODER (sourceforge.net/projects/ffdshow)
Разработчики ffdshow team собрали лучшие находки и решения различных декомпрессоров, и на сегодня это один из лучших видеодекодеров. Ffdshow поддерживает все версии DivX и XviD, а также MPEG4 и WMV. Он содержит встроенный код обработки видео от MPlayer для лучшего отображения файлов с низким битрейтом, обладает встроенной поддержкой субтитров и интегрируется с VobSub. Декодер содержит команды для MMX, SSE и 3DNow-инструкций и меньше загружает процессор по сравнению со стандартными декодерами DivX и XviD, поэтому его очень удобно использовать на слабых системах. После установки кодека зайдите в меню “Пуск” > «Программы» > ffdshow. Нас интересуют два основных раздела: Configuration и Audio Filter Configuration.

Configuration
- Codec – позволяет манипулировать установленными в системе библиотеками кодеков, в частности отключать ненужные или нестабильные.
- Trays, Dialogues& Paths – позволяет включить выведение иконки на панели задач при воспроизведении видео. Так вы получите оперативный доступ к настройкам ffdshow. Там же можно изменить основной язык программы (поддерживается несколько языков, в том числе и русский).
- Обязательно уделите внимание разделу Keys & Remote – часть настроек определенно стоит назначить на “горячие” клавиши, например изменение размеров изображения или включение/выключение субтитров.
- Crop & Zoom – позволит масштабировать размеры видео без пропорциональных искажений, а также срезать ненужные участки, например пресловутые черные полосы по краям экрана.
- Deinterlacing – пригодится при просмотре необработанных DVD-копий и других чересстрочных источников (правда, такие сейчас встречаются все реже). Если файл очень низкого качества, можно попробовать поиграть с настройками фильтра,.
- Logo away. Данный фильтр позволяет подавлять логотипы, субтитры, рекламные баннеры и другую ненужную информацию на экране – для замещения объектов используется размытие и интерполяция.

Код фильтра взят из стандартного набора программы VirtualDub, эффективность его средняя – заметны искажения картинки.

- Post-processing – обработка видеосигнала с целью подавления Ringing- и Blocking-артефактов. При достаточной мощности процессора смело ставьте максимальный уровень и отметьте automatic quality control. Если же ресурсов не хватает, интенсивность подавления артефактов будет динамично снижаться, обеспечивая плавное воспроизведение картинки. Чтобы наглядно сравнить эффективность постобработки с исходным сигналом, задействуйте параметр Process only right half – при этом обрабатываться будет только правая половина картинки.

- Picture Processing – позволяет настроить яркость, контраст, цветность и другие параметры изображения.
- Noise – эффект, аналогичный режиму Film Effect в декодере DivX 5.
- Blur & Noise Reduction – размытие картинки и подавление шумов.
- Grab – полезная функция, позволяющая сохранить кадр или группу кадров в JPEG-формате в заданную папку; удобнее всего назначить ее на горячую клавишу.
- Subtitles. Сам по себе ffdshow поддерживает только SRT-субтитры, но после установки Direct VobSub корректно с ним взаимодействует.
- Perspective Correction. Интересный режим, предназначенный для видеопроекторов. Некоторые младшие модели проекторов выводят картинку в виде трапеции – данная опция позволяет исправить возникающие при этом искажения видео.

В ffdshow есть еще много различных, но не столь полезных функций. Например, наложение на видео логотипа или выведение поверх картинки полупрозрачной визуализации аудиопотока, подобно тому, как это делает Winamp. Можно применить фильтр Watersharp (акварель) – и фильм превратится в некое подобие рисованного – и многое другое. Все настройки видео можно сохранять в Pre-set в разделе Image Setting, а затем быстро переключать в зависимости от видеоматериала.

Audio Filter Configuration
Наиболее полезные опции этого раздела настроек – графический эквалайзер, регуляция громкости по каналам, переключение аудиоканалов и подавление шумов. Настройки аудио желательно вывести в системный трей для быстрого доступа.

Если у вас слабая система
При установленном ffdshow комфортно просматривать DivX-фильмы позволит компьютер с процессором от 266-300 МГц и AGP-видеокартой с 4 Мб видеопамяти. При этом нужно отключить постобработку и все дополнительные эффекты, а в крайнем случае – уменьшить разрешение экрана до 640×480 и цветность до 16 бит.

Можно воспользоваться компактным медиадистрибутивом Linux, например GeeXboX (www.geexbox.org/en/index.html), для создания самодостаточного видеодиска – в этом случае вам даже не потребуется винчестер, так как операционная система, фильм и средства для его воспроизведения будут грузиться с компакт-диска. Создание DivX-CD-плейера из устаревшей системы – чем не вариант?
ПАКЕТЫ КОДЕКОВ
В сети существует несколько таких сборников, но один из лучших – K-Lite Codec Pack. В его состав входит более 45 кодеков, что обеспечивает воспроизведение практически любого видеоконтента, а также быстрый и удобный процесс установки кодеков на новую систему.

Если же вы устанавливаете K-Lite Codec Pack на систему, где уже есть DivX или другие пакеты, то во избежание системных конфликтов перед инсталляцией удалите их. Если у вас Windows XP, не устанавливайте Media Player 6, так как в этой ОС уже есть более новая версия. После установки основным декодером MPEG4 может стать DivX 5 Decoder. Если же вы хотите пользоваться всеми преимуществами ffdshow, переустановите его поверх K-Lite из отдельного пакета.

Если возможностей K-Lite Codec Pack вам покажется мало, воспользуйтесь ACE Mega Codec Pack (www.free-codecs.com/download/ACE_Mega_CoDecS_Pack.htm). Он содержит почти все известные в мире кодеки. Минусы такого подхода – размер дистрибутива ~50 Мб и иногда возникающие конфликты кодеков между собой. Поэтому лучше всего использовать ACE Codec Pack в качестве библиотеки редких кодеков и устанавливать только те, которых не нашлось в составе K-Lite.

Манипулируем кодеками
Если у вас возникают конфликты кодеков или какая-либо программа после себя оставила ненужное наследство, вам поможет Direct Show Filter Manager (www.softella.com) от автора Light Alloy. Эта утилита позволит вам просматривать полный список установленных кодеков и других Direct Show-фильтров и удалять или блокировать любой из них. Этим удобно пользоваться в поисках неисправности, отключая кодеки один за другим. Кроме того, программа позволяет легко экспериментировать с разными комбинациями кодеков.