Наверняка вы сталкивались с одной из следующих ситуаций: записали фильм на диск, а он не проигрывается в бытовом DVD-плейере; скопировали видео с фотоаппарата на компьютер, а его «не видит» ваш любимый видеоплейер; скачали последнюю новинку мирового кинопроката, а посмотреть не удается: черный экран, слышен только звук. В 99% процентах причина кроется в отсутствии либо неправильной работе кодеков и контейнеров. Их так много, и там так все запутано, что не каждый разберется. Но мы попробуем. Узнаем, что такое формат файла, контейнер, кодек и расширение файла. Попутно дадим несколько полезных советов. В принципе, в Интернете на эту тему полно информации. Но подается она зачастую чересчур сложно. Мы поступим проще, изложив на двух страницах самое главное.
Контейнер - это формат файла или потоковый формат (наличие файла необязательно, например, потоковое видео), который определяет способ хранения данных. Контейнер - это метаформат, так как может хранить в одном файле видеоданные, аудиоданные (звуковые дорожки), текстовые данные (субтитры) и другие данные.

Кодек (кодировщик/декодировщик) - это программа, которая определяет алгоритм преобразования данных (кодирования и декодирования). Запомните разницу. В первом случае - способ хранения, во втором - алгоритм преобразования. По сути, в контейнере хранятся метаданные и закодированные данные. Но сам контейнер не содержит декодер. Поэтому даже если ваш проигрыватель понимает формат файла, он не сможет прочитать данные, запакованные неизвестным ему кодером (далее «кодер» и «декодер» будем называть одним словом «кодек»). И, что равнозначно, при наличии «правильного» кодека ваш плейер не сможет воспроизвести неизвестный ему контейнер.

Есть и еще одно важное замечание, касающееся расширения файла. Так вот, расширение на самом деле практически ничего не значит. Попробуйте переименовать какой-нибудь файл из .avi в .txt и перетащите методом drag&drop в программу-проигрыватель. Работает, не правда ли? Теперь переименуйте текстовый документ .txt в .avi и попробуйте запустить плейер. Программа сообщит об ошибке. Таким образом, по большему счету в современных операционных системах расширение файла используется для нашего удобства. Проигрыватель все равно будет считывать внутренние данные и по ним определять, может ли он обработать эту информацию. Впрочем, с помощью расширений удобно задавать ассоциации для проигрывателей (т.е. «объяснять» программам, какие форматы открывать по умолчанию).

Мы не будем разбирать подробно каждый контейнер - их десятки. Остановимся на трех из них. Внутри контейнера AVI могут находиться данные, сжатые с использованием различных кодеков. К примеру: видео DivX + аудио МРЗ, видео Indeo + аудио WMA и так далее. В последние годы постепенно набирает популярность открытый формат Matroska («Матроска») (видео .mkv, аудио .mka, субтитры .mks). Кроме того, наверняка вы слышали про семейства форматов MPEG-1, MPEG-2, MPEG-4. MPEG-4 появился в 1998 году и включает в себя группу стандартов сжатия аудио и видео и смежные технологии, одобренные ISO - Международной организацией по стандартизации.

MPEG-4 до сих пор находится на стадии разработки и делится на несколько частей. Ключевыми являются часть 2 (MPEG-4 part 2, включая Advanced Simple Profile, используемый такими кодеками, как DivX, Xvid, Nero Digital и 3ivx, а также Quicktime 6) и часть 10 (MPEG-4 part 10/MPEG-4 AVC/H.264 или Advanced Video Coding, используемый такими кодеками, какх264, Nero Digital AVC, Quicktime 7, а также используемый в форматах HD DVD и Blu-ray Disc).

Идем дальше. Для различных типов данных и различных целей используются различные контейнеры и кодеки. Одни оптимизированы для одних целей, другие - для иных. Любой медиаконтент можно хранить в любом из доступных контейнеров и кодировать любым возможным кодеком. Различия в сложности кодирования, размере выходного файла, получаемого качества и т.д. Большое количество различных форматов и кодеков хорошо, так как позволяет для каждого медифайла подбирать оптимальный контейнер и кодек, но неудобно из-за необходимости иметь в проигрывателе (DVD-плейер, компьютер, флеш-плейер, телефон) все кодеки. Именно поэтому бытовые видеоплейеры, несмотря на заверения продавцов «читает все форматы», никогда этого сделать не смогут. В лучшем случае они будут проигрывать только популярные форматы. И заставить понимать другие кодеки у вас вряд ли получится.

На компьютере ситуация гораздо лучше и практически всегда решаема. Нужно только скачать и установить нужный кодек. А лучше сразу ставить набор кодеков. Один из лучших и старейших - K-Lite Codec Pack (http://www.codecguide.com/download_kl.htm, версия Full - 14,8 Мб). Распространяется в шести вариантах и различается составом кодеков и дополнительных утилит для работы с аудио- и видеоданными (их можно найти в папке K-Lite Codec Pack/Tools). К примеру, Medialnfo (http://mediainfo.sourceforge.net/ru) Medialnfo позволяет получать техническую информацию из видео- или аудио-файлов. Рассмотрим следующие данные: Video: Xvid 704x400 23.98fps [Stream 00] Audio: Dolby AC3 48000Hz 6ch 384Kbps [Stream 01 ]. Это значит, что первый поток - видеоданные, сжатые алгоритмом Xvid, разрешение «картинки» 704x400 пикселей, количество кадров в секунду - 23,98. Второй поток - аудиоданные, сжатые по технологии Dolby АСЗ, частота дискретизации 48 КГц, шесть каналов, битрейт 384 Кбит/с.

Также в комплект K-Lite Codec Pack входит проигрыватель Media Player Classic Home Cinema. Пользуюсь третий год. Подкупают невысокие системные требования и простота в управлении. Из минусов можно отметить невыразительный дизайн. Плейер поддерживает несколько десятков видео- и аудиоформатов (WAV, WMA, МРЗ, OGG, MIDI, MPEG, MPG, МР2, VOB, АСЗ, AVI, MP4, SWF, MOV, QT и другие). Кроме того, понимает Flash, некоторые форматы растровой графики (JPEG, JPG, GIF, PNG, BMP). Утилита прекрасно работает на ОС Windows NT и выше, вплоть до 64-битных версий Vista и Windows 7. Основные возможности: воспроизведение DVD, поддержка субтитров, декодирование Н.264 формата на аппаратном уровне, корректная работа со вторым монитором (телевизором), работа с форматами QuickTime и RealVideo. Если хотите более навороченный и красивый проигрыватель - не проблема. В Интернете можно скачать десятки различных бесплатных медиапроигрывателей.

Что делать, если нужно записать фильм для знакомых, а у них только бытовой плейер? Или сконвертировать его для медийного устройства (телефон, плейер, приставка). Подобные проблемы помогают решить специальные программы-конвертеры. Могу порекомендовать две бесплатные утилиты.

SUPER 2010 build.37 (27,6 Мб). Ссылка - http:// www.erightsoft.net/Superdc.html (на странице ищите ссылку внизу, придется перейти через две страницы, пока начнется закачка файла).

MediaCoder 0.7.3.4605 (23,7 Мб). Ссылка - http:// www.mediacoderhq.com/dlfull.htm.

Функциональность их схожа. Легко справляются не только с конвертацией видео, но и аудио. Утилиты поддерживают десятки аудио- и видеоформатов, умеют конвертировать видео в H.264, Xvid, DivX4/5, MPEG 1/2/4, H.263, Flash Video, AVI, MPEG/VOB, Matroska, MP4, PMP. Вы добавляете файл(ы) и, если нужно, изменяете выходные параметры и запускаете конвертацию. Программы умеют обрабатывать данные в пакетном режиме (пригодится, если вы захотите конвертировать несколько фильмов - этот процесс займет несколько часов).

Для чего нужны кодеки? Обычно для сжатия сигнала. Несжатый файл занимает слишком много места. Предположим, у нас есть фильм длиной 60 минут и разрешением экрана 704x400 пикселей. Один кадр - 988 Кб (704 умножаем на 400, потом умножаем на 3 для 24-битного цветного RGB-сигнала). В секунде 24 кадра (24 fps). Получаем 23,7 Мб. Это только одна секунда. Час - 1,44 Гб. Это только видеоданные, без аудиодорожек (их может быть несколько). А разрешение Full HD равно 1920x1080 (1 секунда - 150 Мб) и несжатый HDTV-фильм будет «весить» несколько десятков Гб. Согласитесь, это много. Поэтому для уменьшения размера видео используются различные кодеки.

Алгоритмы сжатия бывают с потерями (между собой различаются по степени сжатия) или без потерь (lossless). Чаще используются алгоритмы сжатия с потерями.

DivX - кодек стандарта MPEG4. Xvid - альтернативный ему кодек стандарта MPEG-4. VC-1 - стандарт видеокодека, разработанный Microsoft, поддерживаемый стандарт для HD-DVD и Blu-Ray.

Н.264, MPEG-4 Part 10 или AVC - стандарт сжатия видео, предназначенный для достижения высокой степени сжатия видеопотока при сохранении высокого качества. Используется в цифровом телевидении высокого разрешения (HDTV). Разумеется, это далеко неполный список: со временем появляются более мощные алгоритмы, а старые уходят в историю. Нельзя не отметить растущую популярность несжатых медиаданных и сжатых без потерь.