Поддерживаемые кодекиВидео кодеки
См. таблицу статуса кодеков
для полного, ежедневно генерируемого списка. Несколько кодеков доступны для
скачивания на нашей странице. Получите их со
страницы кодеков.
Наиболее важные из них:
MPEG1 (VCD) и
MPEG2 (DVD) видео
"родные" декодеры для DivX ;-), OpenDivX (DivX4),
DivX 5.01, 3ivX, M$ MPEG4 v1, v2 и других вариантов MPEG4.
"родной" декодер для Windows Media Video 7/8
(WMV1/WMV2), и Win32 DLL декодер
для Windows Media Video 9
(WMV3), оба используются в .wmv
файлах
"родной" Sorenson 1 (SVQ1) декодер
Win32/QT 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 из libavcodec, и
RealVideo 2.0, 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 основной библиотеки:
cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot logincvs -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 DivX/libavcodecFFmpeg содержит пакет кодеков
с открытым исходным кодом, который способен
декодировать потоки, закодированные H263/MJPEG/RV10/DivX3/DivX4/DivX5/MP41/MP42/WMV1/WMV2/HuffYUV
видео , или WMA (Windows Media Audio) аудио кодеками. Кроме того, с некоторыми
из них можно еще и закодировать, причем этот пакет быстрее, чем Win32 кодеки или
DivX.com DivX4/5 библиотека!
Он содержит множество хороших кодеков, из которых наиболее важными являются
варианты MPEG4: DivX3, DivX4, DivX5, Windows Media Video 7 (WMV1). Также весьма
интересен декодер WMA.
Если вы используете релиз MPlayer'а, то у Вас в пакете
уже есть libavcodec, просто компилируйте как обычно. Если Вы используете MPlayer
из CVS, Вы должны извлечь libavcodec из CVS дерева FFmpeg, поскольку релизы
FFmpeg не работают с
MPlayer'ом. Чтобы добиться этого:
cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg logincvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg co ffmpeg
Переместите каталог libavcodec из исходного кода FFmpeg
в корень MPlayer'овского CVS дерева.
Это должно выглядеть так:
main/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/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
Это очень старый и очень плохой кодек от Microsoft. В прошлом он декодировался
Win32 кодеком msvidc32.dll, а сейчас у нас наше собственное
его исполнение с открытым исходным кодом (его сделал
Mike Melanson).
Cinepak CVIDMPlayer по умолчанию использует свой собственный,
многоплатформенный Cinepack декодер с открытым исходным кодом (сделан
Dr. Tim Ferguson).
Он поддерживает YUV вывод, поэтому возможно аппаратное масштабирование, если
драйвер видео вывода это разрешает.
RealVideoMPlayer поддерживает декодирование всех версий
RealVideo:
RealVideo 1.0 (fourcc RV10) - (де)кодирование поддерживается, используя
libavcodec
RealVideo 2.0, 3.0, 4.0 (fourcc RV20, RV30, RV40) - декодирование
поддерживается, используя библиотеки RealPlayer'а
Рекомендуется скачать и установить RealPlayer8 или
RealONE, поскольку MPlayer
может использовать их библиотеки для декодирования файлов с RealVideo 2.0 - 4.0
видео. MPlayer'овский скрипт configure
должен определить RealPlayer'овские библиотеки в
стандартном местоположении полной установки. Если этого не происходит, сообщите
configure, где их искать опцией .
RealPlayer'овские библиотеки в настоящий момент
работают только под Linux, FreeBSD, NetBSD и Cygwin
на x86, Alpha и PowerPC (тестировались Linux/Alpha и Linux/PowerPC)
платформах.
XviDXviD - это отпочковавшаяся разработка
OpenDivX кодека. Это произошло, когда ProjectMayo сделал исходный код OpenDivX
закрытым (DivX4, ntgthm DivX5), и разработчики OpenDivX не из ProjectMayo
разозлились, и начали XviD. Поэтому у обоих проектов общие корни.
ПРЕИМУЩЕСТВА
открытый исходный код
API совместимы с DivX4, поэтому просто добавить для него поддержку
поддержка кодирования в 2 прохода
высокое качество кодирования, более высокая скорость, по сравнению с DivX4
(вы можете его оптимизировать под Вашу машину во время компиляции)
НЕДОСТАТКИ
в настоящий момент не все DivX/DivX4 файлы декодируются
(не проблема, поскольку libavcodec
может их проигрывать)
Вы должны выбрать между поддержкой DivX4 или
XviD во время компиляции
разработка продолжается и в настоящий момент
УСТАНОВКА XVID CVS
В настоящий момент он доступен только по CVS. Вот как его скачать и поставить
(Вам потребуется autoconf не старее 2.50, automake и libtool):
cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid logincvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcorecd 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) - декодирование поддерживается
родными кодеками. В действительности есть два
(почти одинаковых) декодера для SVQ1: один в MPlayer'е,
другой в libavcodec. Вы можете запустить их соответственно опциями
и . Некоторые файлы будут
работать с одним и не будут работать с другим, поэтому попробуйте оба декодера.
Декодер был написан (восстановлен[reverse engineered]) авторами
xine.
Sorenson 3 (fourcc SVQ3) - декодирование поддерживается,
используя библиотеки Win32 QuickTimeКОМПИЛЯЦИЯ MPLAYER'А С ПОДДЕРЖКОЙ БИБЛИОТЕК QUICKTIMEв настоящий момент поддерживаются только 32битные Intel'евские
платформы.скачайте MPlayer'овский CVSскомпилируйте MPlayer с:
$ ./configure --enable-qtx-codecsскачайте пакет QuickTime DLL с
распакуйте пакет QuickTime DLL в Ваш каталог Win32 кодеков
(по умолчанию: /usr/lib/win32)
Аудио кодекиНаиболее важными аудио кодеками среди всех являются:
MPEG layer 2 (MP2), и layer 3 (MP3) аудио ("родной"
код, с MMX/SSE/3DNow! оптимизацией)
MPEG layer 1 аудио ("родной" код, с libavcodec)
Windows Media Audio v1, v2 ("родной" код, с
libavcodec)
Windows Media Audio 9 (WMAv3) (используя DMO DLL)
AC3 Dolby аудио ("родной" код, с
MMX/SSE/3DNow! оптимизацией)
AC3 проходящий через звуковое оборудование
Ogg Vorbis аудио кодек (родная библиотека)
RealAudio: DNET (AC3 с низким битпотоком), Cook, Sipro и ATRAC3
QuickTime: Qualcomm и QDesign аудио кодеки
VIVO аудио (g723, Vivo Siren)
Voxware аудио (используя DirectShow DLL)
alaw и ulaw, различные gsm, adpcm и pcm форматы и другие простые старые аудио
кодеки
AAC
Программное декодирование AC3
Это декодер, используемый, по умолчанию, для файлов с AC3 аудио
Декодер AC3 может создавать аудио вывод микшированный для 2, 4 или 6 колонок.
Будучи сконфигурированным для 6 колонок, этот декодер предоставляет раздельный
вывод всех AC3 каналов звуковому драйверу , позволяя получить "звук вокруг"
без внешнего AC3 декодера, необходимого для использования hwac3 кодека.
hwac3 codec.
Используйте опцию , чтобы выбрать количество каналов
при выводе. Используйте для микширования до стерео.
Для микширования до 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-совместимая карта с цифровым (SP/DIF) выводом. Драйвер карты
должен должным образом поддерживать AFMT_AC3 формат (например C-Media).
Подсоедините AC3 декодер к SP/DIF выводу и используйте опцию . Это экспериментально, но известно, что это работает с
C-Media картами и Soundblaster Live! + ALSA (но не OSS) драйверами и
картами MPEG декодирования DXR3/Hollywood+.
Поддержка libmadlibmad - это многоплатформенная
библиотека декодирования MPEG аудио. Она не очень хорошо обрабатывает битые
файлы и иногда испытывает проблемы с перемещением по файлу.
Чтобы включить ее поддержку, компилируйте с опцией configure
.
VIVO аудио
Аудио кодек, используемый в VIVI файлах зависит от того, это VIVI/1.0 или
VIVI/2.0 файл. В VIVO/1.0 файлах g.723 аудио,
а в VIVO/2.0 файлах - Vivo Siren аудио. Оба
типа поддерживаются.
RealAudioMPlayer поддерживает декодирование почти всех версий
RealAudio:
RealAudio DNET - декодирование поддерживается в
liba52
RealAudio Cook/Sipro/ATRAC3 - декодирование поддерживается использованием
библиотек из RealPlayer'а
О том, как установить RealPlayer'овские библиотеки см. секцию
формат файлов RealMedia.
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 и доступен с
. Вы можете скачать кодек второго
поколения - FAAD2 на их
странице скачивания. К сожалению, FAAD2 1.1 не компилируется под Linux,
поэтому Вам придется использовать CVS версию. И вот как:
cvs -d:pserver:anonymous@cvs.audiocoding.com:/cvsroot/faac login
cvs -z3 -d:pserver:anonymous@cvs.audiocoding.com:/cvsroot/faac co faad2
cd faad2/
chmod +x bootstrap
./bootstrap
make
make install
Бинарии не доступны на audiocoding.com, но Вы получить(apt-get) Debian'овские
пакеты с домашней страницы Christian
Marillat и Mandrake'овские RPM'ы с P.L.F.
КАК извлечь кодек из Win32VFW кодеки
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]/