Наверняка вы сталкивались с одной из следующих ситуаций: записали фильм на диск, а он не проигрывается в бытовом DVD-плейере; скопировали видео с фотоаппарата на компьютер, а его видит” ваш любимый видеоплейер; скачали последнюю новинку мирового кинопроката, а посмотреть не удается: черный экран, слышен только звук. В 99% процентах причина кроется в отсутствии либо неправильной работе кодеков и контейнеров. Их так много, и там так все запутано, что не каждый разберется. Но мы попробуем. Узнаем, что такое формат файла, контейнер, кодек и расширение файла. Попутно дадим несколько полезных советов. В принципе, в Интернете на эту тему полно информации. Но подается она зачастую чересчур сложно. Мы поступим проще, изложив на двух страницах самое главное. >>>
Контейнер — это формат файла или потоковый формат (наличие файла необязательно, например, потоковое видео), который определяет способ хранения данных. Контейнер — это метаформат, так как может хранить в одном файле видеоданные, аудиоданные (звуковые дорожки), текстовые данные (субтитры) и другие данные.
Кодек (кодировщик/декодировщик) — это программа, которая определяет алгоритм преобразования данных (кодирования и декодирования). Запомните разницу. В первом случае — способ хранения, во втором — алгоритм преобразования. По сути, в контейнере хранятся метаданные и закодированные данные. Но сам контейнер не содержит декодер. Поэтому даже если ваш проигрыватель понимает формат файла, он не сможет прочитать данные, запакованные неизвестным ему кодером (далее и “декодер” будем называть одним словом “кодек”). И, что равнозначно, при наличии “правильного” кодека, ваш плейер не сможет воспроизвести неизвестный ему контейнер.
Есть и еще одно важное замечание, касающееся расширения файла. Так вот, расширение на самом деле практически ничего не значит. Попробуйте переименовать какой-нибудь файл из .avi в .txt и перетащите методом drag&drop в программу-проигрыватель. Работает, не правда ли? Теперь переименуйте текстовый документ .txt в .avi и попробуйте запустить плейер. Программа сообщит об ошибке. Таким образом, по большему счету в современных операционных системах расширение файла используется для нашего удобства. Проигрыватель все равно будет считывать внутренние данные и по ним определить, может ли он обработать эту информацию. Впрочем, с помощью расширений удобно задавать ассоциации для проигрывателей (т. е. “объяснять” программам, какие форматы открывать по умолчанию).
Мы не будем разбирать подробно каждый контейнер — их десятки. Остановимся на трех из них. Внутри контейнера AVI могут находиться данные, сжатые с использованием различных кодеков. К примеру: видео DivX + аудио MP3, видео 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, используемый такими кодеками как x264, 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). К примеру, MediaInfo (http://mediainfo.sourceforge.net/ru) MediaInfo позволяет получать техническую информацию из видео- или аудио- файлов. Рассмотрим следующие данные: Video: Xvid 704x400 23.98fps [Stream 00] Audio: Dolby AC3 48000Hz 6ch 384Kbps [Stream 01]. Это значит, что первый поток — видеоданные, сжатые алгоритмом Xvid, разрешение “картинки” 704x400 пикселей, количество кадров в секунду — 23,98. Второй поток — аудиоданные, сжатые по технологии Dolby AC3, частота дискретизации 48 КГц, шесть каналов, битрейт 384 Кбит/с.
Также в комплект K-Lite Codec Pack входит проигрыватель Media Player Classic Home Cinema. Пользуюсь третий год. Подкупают невысокие системные требования и простота в у правлении. Из минусов можно отметить невыразительный дизайн. Плейер поддерживает несколько десятков видео- и аудиоформатов (WAV, WMA, MP3, OGG, MIDI, MPEG, MPG, MP2, VOB, AC3, AVI, MP4, SWF, MOV, QT и другие). Кроме того, понимает Flash, некоторые форматы растровой графики (JPEG, JPG, GIF, PNG, BMP). Утилита прекрасно работает на ОС Windows NT и выше, вплоть до 64-битных версий Vista и Windows 7. Основные возможност: воспроизведение DVD, поддержка субтитров, декодирование H.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, DivX 4/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.
H.264, MPEG-4 Part 10 или AVC — стандарт сжатия видео, предназначенный для достижения высокой степени сжатия видеопотока при сохранении высокого качества. Используется в цифровом телевидении высокого разрешения (HDTV). Разумеется, это далеко не полный список: со временем появляются более мощные алгоритмы, а старые уходят в историю. Нельзя не отметить растущую популярность несжатых медиаданных и сжатых без потерь.
(Опубликовано в газете "Мой друг компьютер", № 9, май 2010 года. Здесь дана авторская редакция.)
28744 просмотров
Ваш комментарий будет первым | | |