Поддерживаемые кодеки Видео кодеки См. таблицу статуса кодеков для полного, ежедневно генерируемого списка. Несколько кодеков доступны для скачивания на нашей странице. Получите их со страницы кодеков. Наиболее важные кодеки: MPEG1 (VCD) и MPEG2 (DVD) видео "родные" декодеры для DivX ;-), OpenDivX (DivX4), DivX (Pro), 3ivX, M$ MPEG4 v1, v2 и других вариантов MPEG4. "родной" декодер для Windows Media Video 7/8 (WMV1/WMV2), и Win32 DLL декодер для Windows Media Video 9 (WMV3), оба используются в .wmv файлах "родной" Sorenson 1 (SVQ1) декодер "родной" Sorenson 3 (SVQ3) декодер 3ivx v1, v2 декодер Cinepak и Intel Indeo кодеки (3.1,3.2,4.1,5.0) MJPEG, AVID, VCR2, ASV2 и другие аппаратные форматы VIVO 1.0, 2.0, I263 и другие h263(+) варианты FLI/FLC RealVideo 1.0 & 2.0 из libavcodec, и RealVideo 3.0 & 4.0 кодеки, используя библиотеки RealPlayer "родной" декодер для HuffYUV Различные старые, похожие на RLE форматы Если у Вас есть не упомянутый здесь Win32 кодек, который ещё не поддерживается, пожалуйста, прочтите Как добавить кодек [codec importing HOWTO] и помогите нам добавить для него поддержку. DivX4/DivX5 Эта секция содержит информацию о DivX4 b DivX5 кодеках от Project Mayo. Их первыми доступными альфа версиями были OpenDivX alpha 47 и 48. В прошлом поддержка для них была включена в MPlayer и собиралась по умолчанию. Также мы использовали их код постобработки для факультативного улучшения качества изображения в MPEG1/2 фильмах. Сейчас мы используем наш собственный фильтр для файлов всех типов. Новое поколение этого кодека называется DivX4 и даже может декодировать фильмы, сделанные пресловутым DivX кодеком! В дополнение к этому, он значительно быстрее, чем Win32 DivX DLL'и, но медленнее, чем libavcodec. Поэтому, использовать его в качестве декодера НЕ РЕКОМЕНДУЕТСЯ. Хотя, он полезен для кодирования. Единственным недостатком этого кодека является то, что он не доступен по лицензии с Открытым исходным кодом[Open Source license] DivX4 работает в двух режимах: Использовать кодек в манере OpenDivX. В этом случае, он выдаёт YV12 изображения в своём собственном буфере, и MPlayer сам изменяет пространство цветов через libvo. (Быстро, рекомендуется!) Используется изменение пространства цветов в кодеке. В этом режиме Вы также можете использовать YUY2/UYVY. (МЕДЛЕННО) Метод обычно быстрее, поскольку при этом изображение передаётся в YV12 формате (линейный YUV 4:2:0), и поэтому требуется много меньшая пропускная способность шины. Для упакованных YUV режимов (YUY2, UYVY) используйте метод . В RGB режимах скорость - такая же, различаясь в лучшем случае из-за текущей глубины цвета. Если Ваш драйвер поддерживает прямой вывод, то может быть более быстрым, или даже наибыстрейшим решением. Двоичная библиотека DivX4/5 кодека может быть скачена с сайтов avifile или divx.com Распакуйте его, запустите как администратор ./install.sh, и не забудьте добавить /usr/local/lib в Ваш /etc/ld.so.conf и запустить ldconfig. Так можно получить CVS версию СТАРОЙ библиотеки OpenDivX core: cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot login cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot co divxcore Основная библиотека разделена на decore[декодер] и encore[кодер] библиотеки, которые должны компилироваться по-отдельности. Для библиотеки decore, просто наберите cd divxcore/decore/build/linux make cp libdivxdecore.so /usr/local/lib ln -s libdivxdecore.so /usr/local/lib/libdivxdecore.so.0 cp ../../src/decore.h /usr/local/include К сожалению, для библиотеки encore Linux'ового Makefile нет, и MMX оптимизированный код работает только под Windows. Вы всё же можете скомпилировать её, используя этот Makefile. cd ../../../encore/build mkdir linux cd linux cp path/Makefile . make cp libdivxencore.so /usr/local/lib ln -s libdivxencore.so /usr/local/lib/libdivxencore.so.0 cp ../../src/encore.h /usr/local/include MPlayer автоматически находит DivX4/DivX5 если они были правильно установлен, просто компилируйте как обычно. Если он не находит этот кодек, то Вы неправильно установили или сконфигурировали DivX4/DivX5. FFmpeg/libavcodec FFmpeg содержит пакет кодеков с открытым исходным кодом, который способен декодировать потоки, закодированные различными видео и аудио кодеками. Кроме того, этот пакет предоставляет потрясающие кодирующие возможности, причём производительность выше, чем у Win32 кодеков или DivX.com DivX4/5 библиотеки! Он содержит множество хороших кодеков, из которых наиболее важными являются варианты MPEG4: DivX3, DivX4, DivX5, Windows Media Video 7/8 (WMV1/WMV2). Также весьма интересен декодер WMA. Наконец, последний кодеком, заслуживающий внимания — это Sorenson 3(SVQ3) кодек. Это первая реализация этого кодека с полностью открытым исходным кодом. Она даже быстрее оригинала. Используйте её, вместо двоичного кодека! Полный список доступных кодеков доступен на странице FFmpeg. Поддерживаемые видео и аудио кодеки. Если вы используете релиз MPlayer'а, то у Вас в пакете уже есть libavcodec, просто компилируйте как обычно. Если Вы используете MPlayer из CVS, Вы должны извлечь libavcodec из CVS дерева FFmpeg, поскольку релизы FFmpeg очень редки. Как правило, CVS достаточно стабилен и предоставляет больше возможностей. Чтобы это сделать: cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg login cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co ffmpeg Переместите каталог libavcodec из исходного кода FFmpeg в корень MPlayer'овского CVS дерева. Это должно выглядеть так: main/libavcodec Символической ссылки не достаточно, Вы должны скопировать/переместить его! Если Вы хотите, чтобы libavcodec обновлялась каждый раз, когда Вы обновляете MPlayer'овский CVS, добавьте такую строчку: main/CVS/Entries в файл D/libavcodec//// Скомпилируйте. configure должен определить проблемы до компиляции. MPlayer из CVS содержит подкаталог libavcodec, но он не содержит исходный код для libavcodec! Вы должны следовать указаниям, приведённым выше, чтобы получить исходный код этой библиотеки. С FFmpeg и моей Matrox G400, я даже могу смотреть DivX фильмы с высочайшим разрешением без пропускаемых кадров на моем K6-2 500. XAnim'овские кодеки Обратите внимание, что XAnim'овские бинарные кодеки распространяются с небольшим текстом, утверждающим, что это лицензия и помимо прочих запретов, запрещающим использование этих кодеков с любой программой кроме XAnim'а. Тем не менее, автор XAnim'а ещё должен ещё произвести юридические действия по относящимся к кодекам вопросам. УСТАНОВКА И ИСПОЛЬЗОВАНИЕ MPlayer способе использовать XAnim'овские кодеки для декодирования. Чтобы включить их, следуйте инструкциям: Скачайте кодеки, которые Вы хотите использовать, с сайта XAnim site. 3ivx кодека там нет, но его можно найти на сайте 3ivx. ИЛИ скачайте пакет кодеков с нашей страницы кодеков Используйте опцию , чтобы сообщить configure, где находятся XAnim'овские кодеки. По умолчанию, он их ищет в /usr/local/lib/codecs, /usr/local/lib/xanim/mods, /usr/lib/xanim/modsи /usr/lib/xanim. Вместо этого, Вы можете установить значением переменной среды окружения XANIM_MOD_DIR каталог с XAnim'овскими кодеками. Переименуйте/создайте символические ссылки, убрав части, относящиеся к архитектуре так, чтобы файлы назывались так: vid_cvid.xa, vid_h263.xa, vid_iv50.xa XAnim - это семейство видео кодеков xanim, поэтому Вы можете использовать опцию , чтобы заставить MPlayer использовать их, если возможно. Тестированные кодеки это: Indeo 3.2, 4.1, 5.0, CVID, 3ivX, h263. VIVO видео MPlayer может проигрывать Vivo (1.0 and 2.0) фильмы. Наиболее подходящий кодек для 1.0 файлов - это FFmpeg'овский H263 декодер, Вы можете включить его использование опцией . Для 2.0 файлов используйте Win32 DLL (опция ). Если Вы не укажете опцию в командной строке, MPlayer автоматически выберет лучший доступный кодек. MPEG 1/2 видео MPEG1 и MPEG2 декодируются многоплатформенной "родной" библиотекой libmpeg2, исходный код которой включён в MPlayer. Мы обрабатываем плохое MPEG 1/2 видео, перехватывая Сигнал 11 (segmentation fault[ошибка сегментации]), и быстро реинициализируя кодек, продолжая точно с места ошибки. Такая технология восстановления не имеет значимых временных задержек. MS Video1, Cinepak CVID, и другие старые кодеки MPlayer может воспроизводить большую часть старых кодеков, использовавшихся в AVI и MOV файлах. Прежде они декодировались бинарными Win32 кодеками, а теперь, используя libavcodec, для большинства из них у нас есть родные кодеки. RealVideo MPlayer поддерживает декодирование всех версий RealVideo: RealVideo 1.0, 2.0 (fourcc RV10, RV20) - (де)кодирование поддерживается, используя libavcodec RealVideo 3.0, 4.0 (fourcc RV30, RV40) - декодирование поддерживается, используя библиотеки RealPlayer'а Cкачайте Real кодеки на http://www.mplayerhq.hu/MPlayer/releases/codecs/ и распакуйте их в каталог /usr/local/lib/codecs. Если Вы хотите хранить их в другом месте, укажите configure опцию . На Mac OS X Вы должны убедиться, что pncrt.Shlb (включая его resource fork!) находится в том же каталоге, что и Real кодеки. Скопируйте их, например, так: ditto -rsrcFork "RealOne Player.app/Contents/MacOS/pncrt.Shlb" "RealOne Player.app/Contents/MacOS/Library/Codecs" Если Вы этого не сделаете, или забудете скопировать resource fork, Вы будете получать такие ошибки: GetDiskFragment() failed with error -2804: <<Unknown disk fragment>><<Unknown disk fragment>><pncrt.Shlb><> RealPlayer'овские библиотеки в настоящий момент работают только под Linux, FreeBSD, NetBSD и Cygwin на x86, Alpha и PowerPC (тестировались Linux/Alpha и Linux/PowerPC) платформах и с Mac OS X. XviD XviD - это разработка, отпочковавшаяся от OpenDivX кодека. Это произошло, когда ProjectMayo сделал исходный код OpenDivX закрытым (DivX4, теперь DivX5), и разработчики OpenDivX не из ProjectMayo разозлились, и взялись за XviD. Поэтому у обоих проектов общие корни. ПРЕИМУЩЕСТВА открытый исходный код API совместимы с DivX4, поэтому просто добавить для него поддержку поддержка кодирования в 2 прохода хорошее качество кодирования, более высокая скорость, по сравнению с DivX4 (вы можете его оптимизировать под Вашу машину во время компиляции) НЕДОСТАТКИ в настоящий момент не все DivX/DivX4 файлы декодируются (не проблема, поскольку их может воспроизвести libavcodec) разработка продолжается и в настоящий момент УСТАНОВКА XVID CVS В настоящий момент он доступен только по CVS. Вот как его скачать и поставить (Вам потребуется autoconf не старее 2.50, automake и libtool): cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore cd xvidcore/build/generic ./bootstrap.sh ./configure Вам может потребоваться добавить некоторые опции (посмотрите вывод ./configure --help). make && make install Если Вы указали , скопируйте ../../src/divx4.h в /usr/local/include/. Перекомпилируйте MPlayer с Sorenson Sorenson - это видео кодек, разработанный в Sorenson Media и лицензированный Apple, которые распространяют его с QuickTime Player. В настоящий момент мы способны декодировать все версии Sorenson видео файлов следующими декодерами: Sorenson 1 (fourcc SVQ1) - декодирование поддерживается родным кодеком (libavcodec) Sorenson 3 (fourcc SVQ3) - декодирование поддерживается, используя "родной" кодек (libavcodec) КОМПИЛЯЦИЯ MPLAYER'А С ПОДДЕРЖКОЙ БИБЛИОТЕК QUICKTIME в настоящий момент поддерживаются только 32битные Intel'евские платформы. скачайте MPlayer'овский CVS скачайте пакет QuickTime DLL с распакуйте пакет QuickTime DLL в Ваш каталог Win32 кодеков (по умолчанию: /usr/local/lib/codecs) скомпилируйте MPlayer x264 What is x264? x264 is a library for creating H.264 video streams. It is not 100% complete, but currently it has at least some kind of support for most of the H.264 features which impact quality. There are also many advanced features in the H.264 specification which have nothing to do with video quality per se; many of these are not yet implemented in x264. Encoder features CAVLC/CABAC Multi-references Intra: all macroblock types (16x16 and 4x4 with all predictions) Inter P: all partitions (from 16x16 down to 4x4) Inter B: partitions from 16x16 down to 8x8 (including SKIP/DIRECT) Ratecontrol: constant quantizer, constant bitrate, or multipass ABR Scene cut detection Adaptive B-frame placement B-frames as references / arbitrary frame order Encoder limitations No real RD What is H.264? H.264 is one name for a new digital video codec jointly developed by the ITU and MPEG. It can also be correctly referred to by the cumbersome names of "ISO/IEC 14496-10" or "MPEG-4 Part 10". More frequently, it is referred to as "MPEG-4 AVC" or just "AVC". Whatever you call it, H.264 may be worth trying because it can typically match the quality of MPEG-4 ASP with 5%-30% less bitrate. Actual results will depend on both the source material and the encoder. The gains from using H.264 do not come for free: decoding H.264 streams seems to have steep CPU and memory requirements. For instance, on a 1733 MHz Athlon, a 1500kbps H.264 video uses around 50% CPU to decode. By comparison, decoding a 1500kbps MPEG4-ASP stream requires around 10% CPU. This means that decoding high-definition streams is almost out of the question for most users. It also means that even a decent DVD rip may sometimes stutter on processors slower than 2.0 GHz or so. At least with x264, encoding requirements are not much worse than what you are used to with MPEG4-ASP. For instance, on a 1733 MHz Athlon a typical DVD encode would run at 5-15fps. This document is not intended to explain the details of H.264, but if you are interested in a brief overview, you may want to read The H.264/AVC Advanced Video Coding Standard: Overview and Introduction to the Fidelity Range Extensions. How can I play H.264 videos with <application>MPlayer</application>? MPlayer uses libavcodec's H.264 decoder. libavcodec has had at least minimally usable H.264 decoding since around July 2004, however major changes and improvements have been implemented since that time, both in terms of more functionalities supported and in terms of improved CPU usage. Just to be certain, it is always a good idea to use a recent CVS checkout. If you want a quick and easy way to know whether there have been recent changes to libavcodec's H.264 decoding, you might keep an eye on FFmpeg CVS repository's web interface. How can I encode videos using <application>MEncoder</application> and <systemitem class="library">x264</systemitem>? If you have the subversion client installed, the latest x264 sources can be gotten with this command: svn co svn://svn.videolan.org/x264/trunk x264 MPlayer sources are updated whenever an x264 API change occurs, so it is always suggested to use CVS MPlayer as well. Perhaps this situation will change when and if an x264 "release" occurs. Meanwhile, x264 should be considered very unstable, in the sense that its programming interface is subject to change. x264 is built and installed in the standard way: ./configure && make && sudo make install This installs libx264.a in /usr/local/lib and x264.h is placed in /usr/local/include. With the x264 library and header placed in the standard locations, building MPlayer with x264 support is easy. Just run the standard: ./configure && make && sudo make install The configure script will autodetect that you have satisfied the requirements for x264. Аудио кодеки Наиболее важными аудио кодеками среди всех являются: MPEG layer 1/2/3 (MP1/2/3) аудио ("родной" код, с MMX/SSE/3DNow! оптимизацией) Windows Media Audio 7 и 8 (aka WMAv1 и WMAv2) ("родной" код, с libavcodec) Windows Media Audio 9 (WMAv3) (используя DMO DLL) AC3 Dolby аудио ("родной" код, с MMX/SSE/3DNow! оптимизацией) AC3 проходящий через звуковое оборудование AAC Ogg Vorbis аудио кодек (родная библиотека) RealAudio: DNET (AC3 с низким битпотоком), Cook, Sipro и ATRAC3 QuickTime: Qualcomm и QDesign аудио кодеки VIVO аудио (g723, Vivo Siren) Voxware аудио (используя DirectShow DLL) alaw и ulaw, различные gsm, adpcm и pcm форматы и другие простые старые аудио кодеки Программное декодирование AC3 Это декодер, используемый, по умолчанию, для файлов с AC3 аудио Декодер AC3 может создавать аудио вывод микшированный для 2, 4 или 6 колонок. Будучи сконфигурированным для 6 колонок, этот декодер предоставляет раздельный вывод всех AC3 каналов звуковому драйверу, позволяя получить "звук вокруг" без внешнего AC3 декодера, необходимого для использования hwac3 кодека. Используйте опцию , чтобы выбрать количество каналов при выводе. Используйте для микширования до стерео. Для микширования до 4 каналов (выводы Left Front[Левый Передний], Right Front [Правый передний], Left Surround[Левый Задний] и Right Surround[Правый Задний]), используйте . В этом случае все центральные каналы будут смикшированы до уровня передних каналов. будет выводить все AC3 каналы так, как они закодированы - по порядку: Left[Левый], Right[Правый], Left Surround[Левый Задний], Right Surround[Правый Задний], Center[Центральный] и LFE. Количество каналов по умолчанию - 2. Чтобы использовать более 2 каналов, Вам нужно использовать OSS, и обладать карточкой, поддерживающей необходимое количество каналов через ioctl SNDCTL_DSP_CHANNELS. Примером подходящего драйвера является emu10k1 (используется для Soundblaster Live! карточек) августа 2001'ого или новее (ALSA CVS тоже должен работать). Аппаратное декодирование AC3 Вам нужна AC3-совместимая карта с цифровым (S/PDIF) выводом. Драйвер карты должен должным образом поддерживать AFMT_AC3 формат (например C-Media). Подсоедините AC3 декодер к S/PDIF выводу и используйте опцию . Это экспериментальная возможность, но известно, что это работает с C-Media картами и Soundblaster Live! + ALSA (но не OSS) драйверами и картами MPEG декодирования DXR3/Hollywood+. Поддержка libmad libmad - это многоплатформенная, целочисленная (внутренне 24'битный PCM) библиотека декодирования MPEG аудио. Она не очень хорошо обрабатывает битые файлы и иногда у неё бывают проблемы с перемещением по файлу. Чтобы включить её поддержку, компилируйте с опцией configure . VIVO аудио Аудио кодек, используемый в VIVI файлах зависит от того, это VIVI/1.0 или VIVI/2.0 файл. В VIVO/1.0 файлах g.723 аудио, а в VIVO/2.0 файлах - Vivo Siren аудио. Оба типа поддерживаются. RealAudio MPlayer поддерживает декодирование почти всех версий RealAudio: RealAudio DNET - декодирование поддерживается в liba52 RealAudio Cook/Sipro/ATRAC3 - декодирование поддерживается использованием библиотек из RealPlayer'а Инструкции по установке RealPlayer'овские библиотек находятся в секции RealVideo. QDesign кодеки Аудио потоки QDesign (fourcc:QDMC, QDM2) обнаруживаются в MOV/QT файлах. Обе версии этого кодека могут декодироваться библиотеками QuickTime. Инструкции по установке см. в секции Sorenson video codec. Qualcomm кодеки Аудио потоки Qualcomm (fourcc:Qclp) обнаруживаются в MOV/QT файлах. Они могут декодироваться библиотеками QuickTime. Инструкций по установке см. в секции Sorenson video codec. AAC кодек AAC (Advanced Audio Coding) - это кодек, иногда обнаруживаемый в MOV и MP4 файлах. Декодер с открытым исходным кодом, называемый FAAD, доступен с . MPlayer включает в себя libfaad 2.0RC1, поэтому Вам ничего не нужно дополнительно скачивать. Если Вы используете gcc 3.2, который не может скомпилировать встроенный FAAD, или просто хотите использовать внешнюю библиотеку, скачаете её с страницы скачивания и укажите configure . Вам не нужен весь faad2, чтобы декодировать AAC файлы, достаточно libfaad. Вот как Вы можете её собрать: cd faad2/ chmod +x bootstrap ./bootstrap ./configure cd libfaad make make install Бинарии отсутствуют на audiocoding.com, но вы можете скачать (apt-get) Debian пакеты с домашней страницы Christian Marillat, Mandrake RPM'ники с P.L.F и RedHat RPM'ники с Grey Sector[Серый Сектор]. КАК извлечь кодек из Win32 VFW кодеки VFW (Video for Windows[Видео для Windows]) - это старые Видео API для Windows. У этих кодеков расширения .DLL или (реже) .DRV . Если MPlayer не может проигрывать Ваш AVI с такого рода сообщением: UNKNOWN video codec: HFYU (0x55594648) Это значит, что Ваш AVI закодирован кодеком с fourcc[кодом из 4 символов] HFYU (HFYU = HuffYUV кодек, DIV3 = DivX Low Motion, и т. п.). Теперь, когда Вы это знаете, Вы должны найти DLL, которую Windows загружает для проигрывания этого файла. В нашем случае, в файле system.ini есть эта информация, в этой строке: VIDC.HFYU=huffyuv.dll Значит, Вам нужен файл huffyuv.dll. Заметьте, что аудио кодеки используют префикс MSACM: msacm.l3acm=L3codeca.acm Это MP3 кодек. Теперь у Вас есть вся необходимая информация (fourcc, файл с кодеком, пример AVI), представьте на рассмотрение запрос о поддержке Вашего кодека по почте и загрузите эти файлы на FTP сайт: ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/ Под Windows NT/2000/XP ищите эту информацию в реестре, например, ищите "VIDC.HFYU". Чтобы узнать, как это делать, см. ниже старый DirectShow метод. DirectShow кодеки DirectShow - это более новый Video API, которые даже хуже, чем его предшественник. Все сложнее с DirectShow, поскольку system.ini не содержит необходимую информацию, вместо этого она хранится в реестре и нам нужен GUID этого кодека. Новый Метод: Используя Microsoft GraphEdit (быстро) Получите GraphEdit или из DirectX SDK или doom9 Запустите graphedit.exe. В меню выберите Graph -> Insert Filters. Щёлкните DirectShow Filters Выберите нужное имя кодека и щёлкните по нему. В поле DisplayName обратите внимание на текст в фигурных скобках после обратного слэша и выпишете их (пять разделённых дефисами блоков, GUID). Бинарный файл кодека - это файл, указанный в поле Filename. Если там нет Filename и DisplayName содержит что-то в духе device:dmo, то это - DMO-Кодек. Старый метод: Сделайте глубокий вдох и начните искать в регистре... Запустите regedit. Нажмите Ctrl+F, отключите первые две галочки и включите третью. Наберите fourcc Вашего кодека (например, TM20). Вы должны увидеть поле, содержащее путь и имя файла (например, C:\WINDOWS\SYSTEM\TM20DEC.AX). Теперь, когда у Вас есть файл, нам нужен GUID. Попробуйте поискать снова, но теперь ищите имя кодека, а не fourcc. Это имя может быть получено, когда Media Player проигрывает файл, проверив File -> Properties -> Advanced. Если нет, Вам не повезло. Попробуйте угадать (например, ищите TrueMotion). Если GUID найден, Вы должны видеть поля FriendlyName и CLSID. Выпишите 16-ти байтовый CLSID, это GUID, который нам нужен. Если поиск не удаётся, попробуйте включить все галочки. Вы можете получить ложные значения, но Вам может повести... Теперь у Вас есть вся необходимая информация (fourcc, GUID, файл с кодеком, пример AVI), представьте на рассмотрение запрос о поддержке Вашего кодека по почте и загрузите эти файлы на FTP сайт: ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/