Кодеки и как с ними бороться

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

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

Что представляет собой кодек? Это законченный модуль, обеспечивающий декодирование (или кодирование) данных. Собственно, слово "кодек" (codec) так и расшифровывается - coder-decoder (кодировщик-декодировщик). Я уже говорил, что плеер определяет нужный кодек исходя из информации в заголовке AVI-файла. Вы тоже легко можете это сделать. Для этого открываем AVI-файл любым просмотрщиком в текстовом режиме и смотрим его заголовок. Находим в тексте буквы vids и запоминаем четыре следующих символа (в данном случае DIV3). Это так называемый код FourCC, он однозначно определяет использованный для сжатия видеокодек. С этими четырьмя буквами отправляемся на сайт www.fourcc.org и смотрим, что же это за кодек и где его можно достать (в качестве альтернативы можете сходить на великое кладбище слоно... ээ, кодеков по адресу mirror01.users.i.com.ua/~video). Остается скачать найденный кодек, установить его и наслаждаться фильмом.

Впрочем, все можно сделать проще - достаточно скачать одну из многих существующих программ, предназначенных для анализа видеофайлов. В частности, могу порекомендовать следующие: AVIcodec (скачать можно с avicodec.duby.info) и Gspot (www.headbands.com/gspot). Обе эти программы обладают примерно одинаковой функциональностью и вполне подойдут для того, чтобы обнаружить возможные проблемы с воспроизведением видео (и звука). Вы указываете программе нужный фильм, после чего получаете полную информацию, включая битрейт звука и видео, идентификатор кодека и его расшифровку, чем был закодирован данный конкретный фильм и так далее, и тому подобное. В общем, информация будет исчерпывающей. Немаловажно то, что обе программы умеют находить все установленные у вас на компьютере кодеки и сравнивать их с теми, которые требуются для воспроизведения фильма. Сложив таким образом два и два, программа сообщит, могут ли у вас возникнуть проблемы при воспроизведении данного конкретного файла. У Gspot для этого есть специальная кнопка Render, при нажатии на которую вызывается родной для Windows DirectShow и проверяется, что декодирование фильма проходит успешно (а если нет, то сообщается, в чем проблема). Со странички со сводкой об использованных кодеках можно получить исчерпывающую информацию о каждом из них.

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

 

На этом можно было бы и закончить, но есть еще один момент, который необходимо упомянуть. Большинство проблем с декодированием видео возникает из-за существования нескольких реализаций кодеков MPEG4. Например, кодек DivX 4 не будет воспроизводить фильмы, закодированные DivX 5. DivX 5, в свою очередь, может неправильно воспроизводить видео в DivX 3.11 (хотя эту проблему вроде бы решили в последней версии кодека). Аналогично, DivX любой версии не сможет воспроизвести видео в формате XviD (хотя XviD это тоже вариант MPEG4). Чтобы не превращать компьютер в свалку разных кодеков (по этой же причине не стоит ставить кодек-паки вроде Nimo Codec Pack), которые к тому же могут начать конфликтовать между собой, рекомендую воспользоваться программкой под названием Ffdshow (скачать можно с sourceforge.net/projects/ffdshow или cutka.szm.sk/ffdshow). Ffdshow представляет собой декодирующий фильтр DirectShow, основанный на бесплатном кодеке libavcodec. Ffdshow позволяет только декодировать и воспроизводить видео (для того, чтобы кодировать его самому, вам все-таки понадобится скачать соответствующие кодеки). Зато эта программа умеет воспроизводить любое видео на основе MPEG4 (все версии DivX, пресловутый XviD, а также Microsoft MPEG-4 Video версий 1, 2 и 3). Причем вы можете настроить, какие именно типы видео запускать через Ffdshow, а для каких - использовать "родные" кодеки. Плюс к этому своя система постпроцессинга (то есть, сглаживания картинки) и встроенная поддержка субтитров. В общем, Ffdshow способен решить практически все проблемы, возникающие с "компьютерным кином".

Константин АФАНАСЬЕВ

Версия для печатиВерсия для печати

Номер: 

40 за 2003 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!
 

Комментарии

Аватар пользователя batmanova irina
spasibo za pomosh', vahsa statýa pomogla mne ponyat'v chem delo, davno xotela posmotret' brat i brat2, nadeus', y menya eto poluchitsya