Смотрим любимые фильмы с помощью MPlayer Версия для печати   


Автор - Alexei Dmitriev aka Dr.Spectre (dalex@box.vsi.ru)
Версия - 0.4 (последнее обновление 13.11.2002)

Mplayer - очень хороший видео проигрыватель для Linux.
На момент написания статьи вышла версия v0.90pre10.
Позволяет проигрывать MPEG, VOB, AVI, VIVO, ASF/WMV, QT/MOV, FLI, NuppelVideo, yuv4mpeg, FILM, RoQ, OGG и некоторые файлы RealMedia files, поддерживает XAnim и кодеки Win32. Вы можете просматривать VideoCD, SVCD, DVD, 3ivx, FLI, и даже DivX записи (и вам даже не нужна библиотека avifile).
Следующая большая опция mplayer - это многообразие драйверво видеовыхода - X11, Xv, DGA, OpenGL, SVGAlib, fbdev, AAlib, вы также можете использовать SDL, VESA (на VESA совместимых картах, даже без X- сервера!), и некоторых специфических lowlevel драйверов карт (Matrox, 3Dfx и Radeon).
MPlayer поддерживает работу с некоторыми аппаратными MPEG декодерами, такими как DVB и DXR3/Hollywood+ . Поддерживает субтитры (9 типов!!!) с национальными шрифтами.
Поддерживаемые форматы входа
" (S)VCD (Video CD) напрямую с CD-ROM или с файла имиджа CDRwin
" DVD, напрямую с DVD, используя libmpdvdkit (включен) или libdvdread/libdvdcss (опционально)
" MPEG 1/2 System Stream (PS/PES/VOB) и Elementary Stream (ES) форматы файлов
" RIFF AVI формат файлов
" ASF/WMV/WMA v1.0 файлы
" QT/MOV/MP4 формат
" VIVO v1,v2 формат
" FLI формат
" RealMedia формат
" NuppelVideo формат
" yuv4mpeg формат
" FILM (.cpk) формат
" RoQ формат
" OGG/OGM формат
" поддерживает чтение с файла, fifo/stdin, (S)VCD/DVD или сетевое через HTTP/MMS/MMST/RTP
Поддерживаемые видео и аудио кодеки
Наиболее важные видео кодеки:
" MPEG1 (VCD) и MPEG2 (SVCD/DVD) видео
" DivX, OpenDivX (DivX4), DivX 5.02, XviD и другие варианты MPEG4
" Windows Media Video 7 (WMV1) и 8 (WMV2) файлы
" Intel Indeo кодеки (3.x,4.1,5.0)
" MJPEG, ASV2 и другие аппаратные форматы
" VIVO v1, v2
" RealVideo 1.0, 2.0 (G2), 3.0 (v8.0)
" FLI, RoQ, и другие старые форматы
Наиболее важные аудио кодеки:
" MPEG layer 1, 2 и 3 (MP3) аудио
" AC3/A52 (dolby digital) аудио (программный или SP/DIF)
" Ogg Vorbis аудио кодек
" WMA (DivX Audio), Voxware аудио (используя x86 DLL)
" alaw/ulaw, msgsm, pcm, *adpcm и другие старые аудио форматы
" VIVO audio (g723, Vivo Siren) используя x86 DLL
" RealAudio: COOK, DNET (low bitrate AC3)
Чтобы просмотреть полный список, проверьте еженедельно обновляемую Codecs Status Page ()!
Поддерживаемые устройства видео выхода
Основныеl:
" x11:X11 с расширениями SHM
" xv:X11 using overlays with the Xvideo extension (hardware YUV & scaling)
" gl:OpenGL renderer
" gl2:Alternative OpenGL renderer (with multiple textures)
" dga:X11 DGA extension (both v1.0 and v2.0)
" fbdev:Output to general framebuffers
" svga:Output to SVGAlib
" sdl:SDL >= v1.1.7 driver (supports software scaling, and versions >=1.1.8 even support Xvideo, thus hardware rendering)
" ggi:similar to SDL
" aalib:Textmode rendering
" vesa:display through the VESA BIOS (also needed for Radeon TV-out)
" directfb:DirectFB support
Специфичные для некоторых видео карт:
" vidix:VIDeo Interface for *niX
" xvidix:VIDIX in X window
" mga:Matrox G200/G400 hardware YUV overlay via the mga_vid device
" xmga:Matrox G200/G400 overlay (mga_vid) in X11 window (Xv emulation on X 3.3.x !)
" syncfb:Matrox G400 YUV support on framebuffer (not tested, maybe broken)
" 3dfx:Voodoo 3/Banshee hardware YUV support (/dev/3dfx) (not yet tested, maybe broken)
" tdfxfb:Voodoo 3/Banshee hardware YUV support on tdfx framebuffer (works!)
Специальныеl:
" png:PNG files output (use -z switch to set compression)
" jpeg:JPEG files output
" gif89a:Animated GIF files output
" yuv4mpeg:yuv4mpeg output for mjpegtools
" pgm:PGM files output (for testing purposes)
" md5:MD5sum output (for mpeg conformance tests)
" null:Null output (for speed tests/benchmarking)
Примечание: проверьте секцию videocards документации () !
Поддерживаемые устройства аудио выхода
" OSS driver
" ALSA 0.5 driver
" ALSA 0.9 driver
" SDL driver (helps in a LOT of circumstances!)
" ESD (through SDL)
" ARTS
" NAS (Network Audio System) driver
" SUN audio driver for BSD and Solaris8 users
Примечание: проверьте секцию sound документации () !
Производительность:
Наиболее критичные части оптимизированы под MMX/MMXext/SSE/3DNow!/3DNowEx/VIS (VIS на SPARC).
Вы можете улучшить производительность, изменяя регистры MTRR (FBdev и XFree86 4.x.x делают это автоматически), смотрите секцию MTRR () документации для вашей видеокарты.
Графический интерфейс доступен но не создается по умолчанию.
Взять сие чудо можно здесь:
Скачивать нужно MPlayer vXXXXX source или Latest CVS snapshot (для любителей свежего) а также Win32 codecs. По желанию можете скачать себе различные шрифты, скины и остальные приблуды.

После успешной закачки вы должны скопировать файлы куда-нибудь (например в /usr/src/), а затем распаковать их.

bzip2 -dc MPlayer vXXXXX.tar.bz2 | tar xf -
bzip2 -dc win32codec.tar.bz2 | tar xf -

Для успешной компиляции и установки необходимо, чтобы в системе присутствовали:
- binutils - версии 2.11.x или выше. Для rpm-based дистрибутивов проверить модно так: rpm -q binutils
- gcc - версии: 2.95.3, 2.95.4 и 3.1 или выше. Можно использовать и 2.96, хотя это разработчики не рекомендуют (для этого добавьте встроку configure опцию --disable-gcc-checking). У меня все собралось нормально :. Проверить версию можно командой: gcc -v
- XFree86 - лучше всего взять самую новую версию Нормально работает с версии XFree86 4.0.2.
- make - по крайней мере 3.79.x. Проверить можно командой: make -v
- SDL - это необязательно, но может помочь в некоторых случаях (плохой звук, видеокарта, которая запаздывает с xv драйвером). Используйте самую новую версию (работает начиная с версии 1.2.x).
- libjpeg - опциональный декодер JPEG, используется для -mf и некоторых файлов QT MOV.
- libpng - рекомендуемый декодер (M)PNG. Рекомендуется для GUI.
- lame - рекомендуемый, необходимый для раскодирования MP3 с MEncoder, поддерживается версия 3.90 или выше.
- libogg - дополнительный, нужен для проигрывания файлов OGG.
- libvorbis - дополнительный, необходимый для проигрывания OGG Vorbis.
- LIVE.COM Streaming Media () - дополнительный, необходим для проигрывания RTSP/RTP streams.
Итак, далее рассмотрим процесс компиляции и установки mplayer.
Прежде всего, все файлы из архива win32codec нужно положить в директорию /usr/lib/win32 (не директорию с файлами, которая находится внутри архива а именно файлы).
На этом процесс установки кодеков завершен.
Переходим у процессу конфигурации mplayer.
Набрав в директории mplayer команду: ./configure --help, вы сможете увидеть все доступные опции команды configure. Вы можете перенаправить их в файл командой: ./configure --help >file.txt и просмотреть файл.
Ниже приведен вывод команды ./configure --help:
Думаю переводить его полностью нет необходимости, так как даже не знающему английского должно быть все интуитивно понятно :.

-h, --help просмотр окна с опциями
--prefix=DIR куда ставить mplayer [по умолчанию /usr/local]
--datadir=DIR куда ставить архитектурно независимые файлы (fonts, skins) [по умолчанию PREFIX/share/mplayer]
--confdir=DIR куда ставить файлы конфигурации [по умолчанию datadir]
--libdir=DIR куда ставить объектные библиотеки [PREFIX/lib]

Optional features:
--disable-mencoder disable mencoder [autodetect]
--enable-largefiles enable support for files >2^32 bytes long [disable]
--enable-linux-devfs set default devices to devfs ones [disable]
--enable-termcap use termcap database for key codes [autodetect]
--enable-lirc enable LIRC (remote control) support [autodetect]
--enable-gui enable GUI [disable]
--enable-png enable png support [autodetect]
--enable-jpeg enable jpeg support [autodetect]
--enable-gif enable gif89a support [autodetect]
--disable-tv disable TV Interface (tv/dvb grabbers) [enable]
--disable-tv-v4l disable Video 4 Linux TV Interface support [autodetect]
--disable-tv-bsdbt848 disable BSD BT848 Interface support [autodetect]
--disable-win32 disable Win32 DLL support [autodetect]
--disable-dshow disable DirectShow support [autodetect]
--disable-xanim disable XAnim DLL support [autodetect]
--disable-xvid disable XviD codec [autodetect]
--disable-divx4linux disable DivX4linux codec [autodetect]
--enable-opendivx enable _old_ OpenDivx codec [disable]
--disable-libavcodec disable libavcodec [autodetect]
--enable-libfame enable libfame realtime-encoder [autodetect]
--enable-vorbis build with OggVorbis support [autodetect]
--enable-faad build with FAAD (AAC) support [autodetect]
--disable-iconv do not use iconv(3) function [autodetect]
--disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
--enable-mp1e enable libmp1e support [disable]
--disable-libdv disable libdv 0.9.5 support [autodetect]
--disable-streaming disable network streaming support
(support for: http/mms/rtp) [enable]
--disable-vidix disable VIDIX stuff [enable on x86 *nix]
--disable-new-input disable new input system [enable]
--enable-joystick enable joystick support in new input [disable]
--enable-i18n GNU internationalisation [disable]
--enable-runtime-cpudetection Enable runtime CPU detection [disable]
--disable-dvdnav Disable dvdnav support [autodetect]
--disable-dvdread Disable libdvdread support [autodetect]
--disable-mpdvdkit Disable mpdvdkit support [autodetect]

Video:
--enable-gl build with OpenGL render support [autodetect]
--enable-dga[=n] build with DGA [n in {1, 2} ] support [autodetect]
--enable-vesa build with VESA support [autodetect]
--enable-svga build with SVGAlib support [autodetect]
--enable-sdl build with SDL render support [autodetect]
--enable-aa build with AAlib render support [autodetect]
--enable-ggi build with GGI render support [autodetect]
--enable-dxr2 build with DXR2 render support [autodetect]
--enable-dxr3 build with DXR3/H+ render support [autodetect]
--enable-dvb build with support for output via DVB-Card [autodetect]
--enable-mga build with mga_vid support
(check for /dev/mga_vid) [autodetect]
--enable-xmga build with mga_vid X Window support
(check for X & /dev/mga_vid) [autodetect]
--enable-xv build with Xv render support for X 4.x [autodetect]
--enable-vm build with XF86VidMode support for X11 [autodetect]
--enable-xinerama build with Xinerama support for X11 [autodetect]
--enable-x11 build with X11 render support [autodetect]
--enable-fbdev build with FBDev render support [autodetect]
--enable-fbdev=nocopy yuv12 converts directly into framebuffer
--enable-mlib build with MLIB support (Solaris only) [autodetect]
--enable-3dfx build with 3dfx support [disable]
--enable-tdfxfb build with tdfxfb support [disable]
--enable-directfb build with DirectFB support [autodetect]
--enable-zr build with ZR36067/ZR36060 support [disable]

Audio:
--disable-ossaudio disable OSS sound support [autodetect]
--disable-arts disable aRts sound support [autodetect]
--disable-alsa disable alsa sound support [autodetect]
--disable-sunaudio disable Sun sound support [autodetect]
--disable-mad disable mad audio support [autodetect]
--disable-select disable using select() on audio device [enable]

Miscellaneous options:
--cc=COMPILER use this C compiler to build MPlayer [gcc]
--target=PLATFORM target platform (i386-linux, arm-linux, etc)
--enable-static build a statically linked binary. If more linking
options needed : --enable-static="-lslang -lncurses"
--language=xx select a language [en]
(Available: cz de dk en es fr gr hu it ko nl no pl ro ru sk pt_BR)

Advanced options:
--enable-mmx build with mmx support [autodetect]
--enable-mmx2 build with mmx2 support (PIII, Athlon) [autodetect]
--enable-3dnow build with 3dnow! support [autodetect]
--enable-3dnowex build with 3dnow-dsp! support (K7) [autodetect]
--enable-sse build with sse support [autodetect]
--enable-sse2 build with sse2 support [autodetect]
--disable-fastmemcpy disable 3dnow/sse/mmx optimized memcpy() [enable]
--enable-debug[=1-3] compile debugging information into mplayer [disable]
--enable-profile compile profiling information into mplayer [disable]
--disable-sighandler disable sighandler for crashes [enable]

Hazardous options a.k.a. "DO NOT BUGREPORT ANYTHING !"
--disable-gcc-checking disable gcc version checking [enable]

Use these options if autodetection fails:
--with-extraincdir=DIR extra headers (png, dvb, mad, sdl, css, ...) in DIR
--with-extralibdir=DIR extra library files (png, SDL, ...) in DIR
--with-x11incdir=DIR X headers in DIR
--with-x11libdir=DIR X library files in DIR
--with-dxr2incdir=DIR DXR2 headers in DIR
--with-csslibdir=DIR libcss in DIR
--with-madlibdir=DIR libmad (libmad shared lib.) in DIR
--with-mlibdir=DIR libmlib (MLIB support) in DIR (Solaris only)
--with-libdvdnav=DIR libdvdnav in DIR
--with-win32libdir=DIR W*ndows DLL files in DIR
--with-xanimlibdir=DIR XAnim DLL files in DIR
--with-xvidcore=PATH path to XviD libcore.a (e.g: /opt/lib/libcore.a)
--with-sdl-config=PATH path to sdl*-config (e.g.: /opt/bin/sdl-config)
--with-gtk-config=PATH path to gtk*-config (e.g.: /opt/bin/gtk-config)
--with-glib-config=PATH path to glib*-config (e.g.: /opt/bin/glib-config)
Сразу скажу, что опции обозначенные autodetect довольно хорошо работают, так что их можно не затрагивать? А список доступных опций конфигурации в дргих версиях может отличаться от данного.

Вот как выглядела строка configure, когда я собирал mplayer на своей машине:
./configure --enable-largefiles --enable-gui --enable-i18n --enable-svga --enable-aa --enable-x11 --enable-fbdev --enable-xv --language=ru --disable-gcc-checking
На самом деле при установленных библиотеках (svgalib-devel и aalib-devel например) достаточно сделать так:
./configure --enable-largefiles --enable-gui --enable-i18n --language=ru --disable-gcc-checking (а если gcc версии не 2.96 то последнюю опцию тоже можно убрать).
После того, как configure успешно завершилось, подаете команду make а затем make install.
В диретории mplayer есть директория etc где лежат конфиги которые необходимо перенести в директорию /etc.
На этом все можно приступать к просмотру фильмов.
Если вы в Иксах, то достаточно запустить mplayer с графической оболочкой - например /usr/local/mplayer/gmplayer.
Если вы в консоли, то перед просмотром посмотрите доступные форматы видео и аудио командой: mplayer -vo help
Должно появиться что-то типа такого:
Using GNU internationalization
Original domain: messages
Original dirname: /usr/share/locale
Current domain: mplayer
Current dirname: /usr/local/share/locale
xv X11/Xv
x11 X11 ( XImage/Shm )
gl X11 (OpenGL)
gl2 X11 (OpenGL) - multiple textures version
dga DGA ( Direct Graphic Access V2.0 )
sdl SDL YUV/RGB/BGR renderer (SDL v1.1.7+ only!)
fbdev Framebuffer Device
svga SVGAlib
aa AAlib
dxr3 DXR3/H+ video out
png PNG file
jpeg JPEG file
gif89a GIF89a (out.gif)
null Null video output
pgm PGM file
md5 MD5 sum
mpegpes Mpeg-PES file
yuv4mpeg yuv4mpeg output for mjpegtools (to "stream.yuv")
vesa VESA VBE 2.0 video output
xvidix X11 (VIDIX)
Использовать в консоли что либо из иксовых устройств не получится, поэтому пробуйте остальные форматы - vesa, svga, aa, fbdev и т.п.
Просмотр запускается такой командой:
mlayer -vo формат имя_файла_фильма.
Также можно посмотреть/изменить формат вывода звука командами:
mplayer -ao help, mplayer -ao формат.
Вот пока и все, но статья будет расширена, будут добавлены команды управления mplayer в консоли, а также будут внесены добавки, которые покажутсяч вам/нам необходимыми.
А вообще самый хороший вариант это знание английского или венгерского или немецкого или французского или польского или итальянского ну и на худой конец китайского и вперед на страницу официальной документации

Опубликовал: Alexey Dmitriev
Дата: 23.07.2003
постоянный адрес статьи: http://linuxportal.ru/entry.php/P22_0_3_0/