Журнал LinuxFormat - перейти на главную

LXF144:codecs

Материал из Linuxformat
Перейти к: навигация, поиск
Linux как ме­диа-стан­ция Cоздаем мощ­ную универсальную сре­ду – пусть все­заиграет

Содержание

Ме­диа-стан­ция Linux: Для всего!

Что де­лать, ес­ли по­сле «ус­та­нов­ки ко­де­ков» все рав­но создает­ся впечатление, что «че­го-то не хва­та­ет»? Алек­сандр Тол­стой рас­ска­жет и по­ка­жет.

Linux как плат­фор­ма для ра­бо­ты с муль­ти­ме­диа уже дав­но вы­гля­дит бо­лее чем достой­но, но так сло­жи­лось, что на фо­ру­мах до сих пор с за­вид­ной ре­гу­ляр­но­стью всплы­ва­ют во­про­сы, ко­то­рые, ка­за­лось бы, уже бы­ли ре­ше­ны. Суть про­бле­мы обыч­но сво­дит­ся к то­му, что файл в оп­ре­де­лен­ном фор­ма­те невоз­мож­но воcпроизвести, ли­бо нуж­но кон­вер­ти­ро­вать его в дру­гой фор­мат. При этом имею­щие­ся со­ве­ты ре­ша­ют «то­чеч­ные», единич­ные во­про­сы, в то вре­мя как гло­баль­но про­бле­ма оста­ет­ся.

В этой ста­тье я по­ста­ра­юсь рас­ска­зать, как сде­лать из Linux-ма­ши­ны мощ­ную универ­саль­ную сре­ду для про­иг­ры­вания все­го и вся, не пре­вра­щая ее в до­машний ме­диа-сер­вер. На­ша цель – не за­ду­мы­вать­ся о том, бу­дет ли пра­виль­но иг­рать ви­део­ро­лик, да­же ес­ли он за­ко­ди­ро­ван в ред­ком про­прие­тар­ном фор­ма­те. До­полнитель­но мы за­тронем во­про­сы кон­вер­та­ции фай­лов в дру­гие фор­ма­ты и вы­бора про­иг­ры­ва­те­ля, а также неко­то­рые во­про­сы на­строй­ки сис­те­мы.


Как все уст­рое­но

Пре­ж­де чем мы пе­рей­дем к спо­со­бам воспро­из­ве­дения на­ших фай­лов, нуж­но убе­дить­ся, что они в прин­ци­пе под­дер­жи­ва­ют­ся в сис­те­ме. В Linux по умол­чанию обыч­но по­став­ля­ют­ся сво­бод­ные ко­де­ки для ау­дио и ви­део, та­кие как Vorbis и Theora для кон­тейнера Ogg. В ре­аль­ной жизни это соз­да­ет ряд неудобств, так как за­ко­ди­ро­ван­но­го та­ким об­ра­зом кон­тен­та ма­ло, а боль­шин­ст­во филь­мов и му­зы­ки рас­про­стра­ня­ют­ся в про­прие­тар­ных фор­ма­тах. Ка­ких имен­но? Вот несколь­ко по­пу­ляр­ных фор­ма­тов:

  • MPEG4 (стан­дарт сжа­тия циф­ро­во­го ау­дио и ви­део).
  • Windows Media (*.wmv для ви­део и *.wma для зву­ка, про­дви­га­ет­ся Microsoft).
  • Quicktime (фор­мат, про­дви­гае­мый Apple).
  • H264 (вы­со­ко­ка­че­­ст­вен­ный про­прие­тар­ный фор­мат, ис­поль­зую­щий силь­ное сжа­тие).

Тут ло­гич­но спро­сить: как со­от­но­сит­ся рас­ши­рение фай­ла с фор­ма­том ко­ди­ро­вания? Что­бы раз­ло­жить раз­рознен­ные до­гад­ки по по­лоч­кам, необ­хо­ди­мо по­нять разницу ме­ж­ду ко­де­ком и кон­тейнером. Это в основ­ном от­но­сит­ся к ви­део­дан­ным. Итак, кон­тейнер – это стан­дарт рас­про­странения ме­диа-фай­лов, имею­щий из­вест­ные спе­ци­фи­ка­ции и до­пускаю­щий ис­поль­зо­вание раз­лич­ных ко­де­ков для сжа­тия ви­део- и ау­дио­дан­ных. Ко­дек – это сам ал­го­ритм сжа­тия. По­сколь­ку в ви­део­фай­лах ау­дио и ви­део пред­став­ле­ны дву­мя от­дель­ны­ми по­то­ка­ми, ка­ж­дый из ко­то­рых мо­жет быть за­ко­ди­ро­ван про­из­воль­ным ко­де­ком, то ком­би­на­ций из этих ко­де­ков мо­жет быть очень мно­го. За­бе­гая впе­ред, от­ме­тим, что по этой при­чине неред­ки слу­чаи, когда фильм иг­ра­ет без зву­ка (ли­бо, на­обо­рот, звук есть, а кар­тин­ки нет). В ря­де слу­ча­ев рас­ши­рение фай­лов ука­зы­ва­ет на кон­тейнер (ча­ще для филь­мов), но иногда и на сам ко­дек, на­пря­мую (ча­ще для му­зы­ки). Со­от­вет­ст­вен­но, по­лез­но знать основ­ные кон­тейнеры:

  • AVI
  • Advanced Systems Format (*.asf, *.wmv, *.wma)
  • Matroska (*.mkv, *.mka)
  • Flash Video (*.flv)
  • Кон­тей­не­ры, пред­став­лен­ные ор­га­ни­за­ци­ей MPEG (*.mp4, *.vob, *.mpeg и дру­гие)
  • Quicktime (*.mov)

Од­на­ко в Linux по боль­шо­му сче­ту все рав­но, ка­кой кон­тейнер ис­поль­зу­ет­ся, так как сис­те­ма «зрит в ко­рень» и ин­те­ре­су­ет­ся имен­но ко­де­ка­ми, ко­то­рые ис­поль­зу­ют­ся в са­мом кон­тейнере. Ко­де­ков мно­го, и пе­ре­чис­лять все нет осо­бо­го смыс­ла, тем бо­лее что в ок­ру­жаю­щей дей­ст­ви­тель­но­сти ис­поль­зу­ют­ся лишь неко­то­рые из них – приведем наиболее популярные.

Ви­део:

  • DivX (ос­но­ван на стан­дар­те MPEG-4)
  • x264 (реа­ли­за­ция стан­дар­та H.264)
  • Ко­де­ки про­ек­та FFMpeg (MPEG-1, MPEG-2, MPEG-4, MJPEG, WMV2, H.264 и др.)

Ау­дио:

  • MP3 (тре­тий слой ко­ди­ро­ва­ния в MPEG)
  • AAC (ISO/IEC 13818-7)
  • WAV (не­сжа­тый звук)

Под­держ­ка ко­де­ков в Linux

Как уже бы­ло ска­за­но, в стан­дарт­ную по­став­ку Linux по ли­цен­зи­он­ным со­об­ра­жениям вхо­дят лишь от­кры­тые ко­де­ки, та­кие как Ogg Vorbis. Од­на­ко в на­шей стране (и не толь­ко) мож­но со­вер­шен­но ле­галь­но доуста­но­вить про­прие­тар­ные ко­де­ки для лич­но­го ис­поль­зо­вания. Ис­то­ри­че­­ски в Linux име­ет­ся несколь­ко про­ек­тов, обес­пе­чи­ваю­щих воспро­из­ве­дение тех или иных муль­ти­ме­диа-фор­ма­тов. Их на­зы­ва­ют «движ­ка­ми», ли­бо бэ­кен­да­ми [back-end], ли­бо про­сто биб­лио­те­ка­ми. Дан­ные движ­ки всегда со­про­во­ж­да­ют­ся плей­е­ром-фрон­тен­дом [front-end], но в це­лом сис­те­ма взаи­мо­дей­ст­вия очень про­зрач­ная: раз­лич­ные про­грам­мы-плей­е­ры мо­гут ис­поль­зо­вать раз­ные движ­ки, а те, в свою оче­редь, мо­гут дуб­ли­ро­вать функ­ции друг дру­га. Что­бы на­вес­ти по­ря­док в этом «зоо­пар­ке», вы­де­лим основ­ных иг­ро­ков:

XINE

Это про­ект ме­диа-плей­е­ра, соз­дан­но­го во­круг биб­лио­те­ки xine-lib. Xine ис­поль­зу­ет биб­лио­те­ки из дру­гих про­ек­тов (liba52, libmpeg2, FFmpeg, libmad, FAAD2 для фай­лов и libdvdcss для DVD).

Фор­ма­ты-кон­тей­не­ры 3gp, AVI, ASF, FLV, Matroska, MOV (QuickTime), MP4, NUT, Ogg, OGM, RealMedia

Ви­део-фор­ма­ты и ко­де­ки 3ivx, Cinepak, DivX, DV, H.263, H.264, HuffYUV, Indeo, MJPEG, MPEG-1, MPEG-2, MPEG-4, RealVideo, Sorenson, Theora, WMV, XviD

Ау­дио-фор­ма­ты и ко­де­ки AAC, AC3, ALAC, AMR, FLAC, MP3, RealAudio, Shorten, Speex, Vorbis, WMA

Сре­ди плей­е­ров, под­дер­жи­ваю­щих этот дви­жок, име­ют­ся по­пу­ляр­ные Amarok, Kaffeine и gXine.

GSTREAMER

Это не толь­ко биб­лио­те­ка, но и кар­кас для пе­ре­на­прав­ления муль­ти­ме­диа. К осно­ве GStreamer при­кре­п­ля­ют­ся ко­де­ки, ко­то­рые и обес­пе­чи­ва­ют ре­аль­ную под­держ­ку фор­ма­тов. Су­ще­ст­ву­ют сле­дую­щие груп­пы ко­де­ков для GStreamer:

gstreamer-ffmpeg По­зво­ля­ет про­иг­ры­вать кон­тей­не­ры и фор­ма­ты MPEG-1, MPEG-2, MPEG-4, H.261, H.263, H.264, RealVideo, MP3, WMV, FLV.

gstreamer-plugins-good Ба­зо­вые опе­ра­ции с ви­део и зву­ком, под­держ­ка ASCII-пре­об­ра­зо­вания, цве­то­кор­рек­ции, де­ин­тер­лей­син­га, раз­де­ления кон­тейнера AVI; пар­синг фор­ма­та AAC/AC3, дан­ных с DV-уст­ройств и про­чее.

gstreamer-plugins-ugly Ко­де­ки, имею­щие юри­ди­че­­ские ог­ра­ничения на рас­про­странение, та­кие как Microsoft ASF (вклю­чая WMA и WMV), MP3 (де­ко­ди­ро­вание с по­мо­щью биб­лио­те­ки libmad, ко­ди­ро­вание – че­рез lame), фор­мат Audio CD, ви­део MPEG-2, ау­дио всех 3 сло­ев MPEG-1, RealMedia, x264 и дру­гие.


gstreamer-plugins-bad Ко­де­ки, реа­ли­за­ция ко­то­рых не от­ли­ча­ет­ся вы­со­ким ка­че­­ст­вом, пол­но­той под­держ­ки фор­ма­та и удовлетворением про­чи­м «про­фес­сио­наль­ны­м» тре­бо­вания­м. К та­ким ко­де­ка­м от­но­сят­ся: AIFF, AMR, xVID (сво­бод­ная реа­ли­за­ция DivX), ви­део в фор­ма­те IEEE1394, вы­вод ви­део в DirectFB, суб­тит­ры спутнико­во­го ТВ (DVB), де­ко­ди­ро­вание AAC, все модули расширения LADSPA и дру­гое.

Кар­кас и модули расширения GStreamer ис­поль­зу­ют­ся в та­ких плей­е­рах, как Rhythmbox, Banshee и Totem, ко­то­рые по­пу­ляр­ны в ра­бо­чей сре­де Gnome. В KDE 4 име­ет­ся под­держ­ка GStreamer как движ­ка зву­ко­вой под­сис­те­мы Phonon, и, та­ким об­ра­зом, все при­ло­жения, ко­то­рые ис­поль­зу­ют для про­иг­ры­вания Phonon (Amarok, Kaffeine…), так­же за­дей­ст­ву­ют GStreamer.

VLC

По су­ти де­ла, VLC – это универ­саль­ный ме­диа-про­иг­ры­ва­тель, во­круг ко­то­ро­го вы­росла це­лая эко­си­сте­ма ко­де­ков и да­же са­мо­стоя­тель­ный кар­кас под­держ­ки муль­ти­ме­диа. При­чи­ной то­му мож­но на­звать цель про­ек­та VideoLAN, в рам­ках ко­то­ро­го раз­ра­ба­ты­вал­ся пол­но­стью са­мо­доста­точ­ный про­иг­ры­ва­тель. Вме­сте с плей­е­ром VLC по­став­ля­ет­ся от­дель­ный на­бор ко­де­ков, и этот на­бор по боль­шей час­ти не пе­ре­се­ка­ет­ся с сис­тем­ны­ми ко­де­ка­ми дру­гих кар­ка­сов в Linux. По этой при­чине ука­жем пол­ный пе­ре­чень под­дер­жи­вае­мых фор­ма­тов.

Кон­тей­не­ры 3GP, ASF, AVI, FLV, Matroska, MIDI, QuickTime, MP4, Ogg, OGM, WAV, MPEG-2 (ES, PS, TS, PVA, MP3), AIFF, Raw audio, Raw DV, MXF, VOB.

Ви­део-фор­ма­ты и ко­де­ки Cinepak, Dirac, DV, H.263, H.264/MPEG-4 AVC, HuffYUV, Indeo 3, MJPEG, MPEG-1, MPEG-2, MPEG-4 Part 2, RealVideo 3 и 4 Sorenson (со­вмес­ти­мость с не­ко­то­ры­ми ро­ли­ка­ми из Youtube), Theora, VC-1, VP5, VP6, VP8, WMV (час­тич­но).

Ау­дио-фор­ма­ты и ко­де­ки AAC, AC3, ALAC, AMR, DTS, DV Audio, XM, FLAC, MACE, Mod, MP3, PLS, QDM2/QDMC, RealAudio, Speex, Screamtracker 3/S3M, TTA, Vorbis, WavPack, WMA (час­тич­но).

До недавнего вре­мени VLC был доста­точ­но же­ст­кой связ­кой плей­ер-кар­кас, но с по­яв­лением движ­ка vlc-phonon при­ло­жения KDE 4 (см. вы­ше) те­перь тоже мо­гут ис­поль­зо­вать ко­де­ки из со­ста­ва VLC.

Mplayer

Это один из ста­рей­ших ме­диа-про­иг­ры­ва­те­лей для Linux, обес­пе­чи­ваю­щий очень хо­ро­шую под­держ­ку са­мых раз­но­об­раз­ных фор­ма­тов. В осно­ве про­грам­мы ле­жит биб­лио­те­ка libavcodec из про­ек­та FFMpeg. Уже это­го од­но­го доста­точ­но для под­держ­ки боль­шин­ст­ва филь­мов в фор­ма­те DivX, од­на­ко Mplayer не ог­ раничи­ва­ет­ся этим и под­дер­жи­ва­ет как об­ще­сис­тем­ные ко­де­ки (на­при­мер FAAC, OGG), так и дво­ич­ные DLL-биб­лио­те­ки из Windows (32‑бит­ной). По­следнее яв­ля­ет­ся уникаль­ным свой­ст­вом Mplayer сре­ди осталь­ных плей­е­ров для Linux. Вы мо­же­те ско­пи­ро­вать ко­де­ки для Windows в пап­ку / usr/lib/win32 и на­сла­ж­дать­ся их под­держ­кой в Linux.

Так как Mplayer тес­но свя­зан с про­ек­том FFMpeg, то спи­сок под­дер­жи­вае­мых фор­ма­тов у него по­хож на та­ко­вой у Xine (по­это­му вто­рой раз его при­во­дить не нуж­но). До­полнитель­но, Mplayer осо­бен­но хо­ро­шо под­дер­жи­ва­ет суб­тит­ры и уме­ет про­иг­ры­вать непол­ные фай­лы.

Как все это ус­та­но­вить?

В раз­ных ди­ст­ри­бу­ти­вах про­цес­сы ус­та­нов­ки муль­ди­ме­диа-ко­де­ков и нуж­но­го ин­ст­ру­мен­та­рия раз­ли­ча­ют­ся, по­это­му ос­та­но­вим­ся на не­сколь­ких по­пу­ляр­ных ди­ст­ри­бу­ти­вах:

В по­след­нее вре­мя в Ubuntu нет ну­ж­ды под­клю­чать до­пол­ни­тель­ные ре­по­зи­то­рии Medibuntu или Multiverse, так как все па­ке­ты име­ют­ся в стан­дарт­ных ре­по­зи­то­ри­ях. Дос­та­точ­но вве­сти коман­ду

sudo apt-get install non-free-codecs vlc libxine1-ffmpeg gxine mencoder mpg321 mpg123 ffmpeg \
libmp4v2-0 totem-mozilla lame nautilus-script-audio-convert libquicktime1 flac faac faad \
liba52-dev mplayer gstreamer0.10-ffmpeg gstreamer0.10-fluendo-mp3 gstreamer0.10-plugins-bad-multiverse \
gstreamer0.10-plugins-ugly-multiverse totem-gstreamer

Поль­зо­ва­те­лям Fedora, пре­ж­де чем ус­та­нав­ли­вать па­кет, не­об­хо­ди­мо под­клю­чить ре­по­зи­то­рий RPMFusion, дос­туп­ный по ад­ре­су http://rpmfusion.org. За­тем ус­та­но­вим нуж­ные па­ке­ты че­рез Yum:

sudo yum install mplayer mplayer-gui gecko-mediaplayer mencoder xine xine-lib-extras \
xine-lib-extras-freeworld gstreamer-plugins-ugly gstreamer-plugins-bad gstreamer-ffmpeg

Для OpenSUSE си­туа­ция по­хо­жа, но от­ли­ча­ет­ся не­боль­ши­ми де­та­ля­ми. Сна­ча­ла под­клю­ча­ем ре­по­зи­то­рий Packman (http://packman.links2linux.org), за­тем да­ем ко­ман­ду от ли­ца ад­ми­ни­ст­ра­то­ра сис­те­мы:

zypper in -y -l ffmpeg gst-fluendo-mp3 libxine1-codecs phonon-backend-xine w32codec-all \
gstreamer-0_10-ffmpeg gstreamer-0_10-fluendo-mp3 gstreamer-0_10-plugins-good gstreamer-0_10-plugins-good-extra \
gstreamer-0_10-plugins-ugly vlc smplayer

Бо­рем­ся с уз­ки­ми мес­та­ми

Ес­ли с по­пу­ляр­ны­ми и рас­про­странен­ны­ми ко­де­ка­ми все бо­лее-менее яс­но, то да­вай­те те­перь об­су­дим менее оче­вид­ные, но ак­ту­аль­ные те­мы под­держ­ки ме­диа-фор­ма­тов в Linux. Для удоб­ст­ва офор­мим эти слу­чаи в фор­ме «про­бле­мы-ре­шения»:

  • Про­бле­ма Филь­мы в фор­ма­те Quicktime вос­про­из­во­дят­ся ло­каль­но, но на web-стра­ни­цах – нет.

Решение Ус­та­но­ви­те па­кет mozilla-plugin-vlc для Firefox или mplayerplugin (он же mozilla-mplayer) для дру­гих брау­зе­ров. В на­строй­ках всех по­пу­ляр­ных брау­зе­ров (вклю­чая Opera и Chrome) предусмотрен раз­дел, где мож­но ука­зать путь для сто­ронних модулей расширения. Обыч­но модули ин­те­гра­ции с брау­зе­ра­ми от VLC, Mplayer и Totem ав­то­ма­ти­че­­ски «под­хва­ты­ва­ют­ся» и не тре­бу­ют на­строй­ки.

  • Про­бле­ма Не­ко­то­рые web-транс­ля­ции (на­при­мер, Ев­ро­ви­дение) все рав­но не воспро­из­во­дят­ся в брау­зе­ре.

Решение В дан­ном слу­чае доста­точ­но уста­но­вить про­прие­тар­ный, но бес­плат­но рас­про­стра­няе­мый модуль расширения Octoshape (http://www.eurovision.tv/js/lib/octoshape/).

  • Про­бле­ма Часть фай­лов в фор­ма­те AAC/M4A не воспро­из­во­дят­ся, несмот­ря на под­держ­ку AAC в сис­те­ме.

Решение В слу­чае, ес­ли эти фай­лы не со­дер­жат за­щи­ты от ко­пи­ро­вания (та­кое бы­ва­ет в iTunes), то ско­рее все­го их уда­ст­ся воспро­из­ве­сти. Помните, что для это­го есть несколь­ко спо­со­бов: с по­мо­щью FFMpeg/libavcodec, че­рез VLC, че­рез ау­дио-плей­ер с са­мо­стоя­тель­ной сис­те­мой модулей расширения (на­при­мер, Audacious) и, на­конец, че­рез за­пуск Windows-про­грам­мы в Wine.

  • Про­бле­ма Ско­пи­ро­ван­ный ко­макт-диск в фор­ма­те APE+CUE воспро­из­во­дит­ся одним боль­шим куском, без раз­бив­ки на тре­ки.

Решение Эта про­бле­ма ре­ша­ет­ся пра­виль­ным вы­бо­ром плей­е­ра. Ме­та­дан­ные из фай­лов CUE под­дер­жи­ва­ют­ся в Amarok, а так­же в лег­ко­вес­ном XMMS, за счет модуля расширения xmms-cue.

Кон­вер­та­ция

В ря­де слу­ча­ев те­ку­щий фор­мат песни или филь­ма вас бу­дет не уст­раи­вать, и поя­вит­ся же­лание скон­вер­ти­ро­вать файл в дру­гой фор­мат. Для этой за­да­чи есть несколь­ко ре­шений, в том чис­ле и та­ких, ко­то­рые бу­дут наи­бо­лее удоб­ны­ми для но­вич­ков. Опять же, в за­ви­си­мо­сти от тре­буе­мо­го дей­ст­вия, пе­ре­чис­лим наи­бо­лее ти­пич­ные сце­на­рии.

1 Кон­вер­та­ция му­зыкаль­но­го фай­ла че­рез кон­тек­ст­ное ме­ню фай­ло­во­го менед­же­ра

Про­стое ре­шение су­ще­ст­ву­ет как для поль­зо­ва­те­лей сре­ды KDE, так и Gnome. Для KDE (3 и 4 вер­сий) су­ще­ст­ву­ет Perl Audio Converter (PACPL) – спе­ци­аль­ный скрипт, ко­то­рый ин­тег­ри­ру­ет­ся в кон­тек­ст­ное ме­ню Konqueror или Dolphin. Пра­вый щел­чок мы­ши по ме­диа-фай­лу со­дер­жит стан­дарт­ное ме­ню дей­ст­вий, в ко­то­ром бу­дет пункт PACPL и ог­ром­ный вы­бор це­ле­вых фор­ма­тов.

Ана­ло­гич­ный спо­соб для Gnome пред­став­ля­ет со­бой рас­ши­рение к фай­ло­во­му менед­же­ру Nautilus под на­званием nautilus-sound-converter и вхо­дит в со­став по­пу­ляр­ных ди­ст­ри­бу­ти­вов (хо­тя по умол­чанию обыч­но не уста­нов­лен).

2 Кон­вер­та­ция му­зыкаль­ных фай­лов че­рез спе­ци­аль­ное при­ло­жение с гра­фи­че­­ским ин­тер­фей­сом

Обыч­но тут речь идет о ка­ком-ли­бо интерфейсе для мас­со­во­го пре­об­ра­зо­вания фай­ло­вых фор­ма­тов – для тех, кто не хо­чет или не уме­ет поль­зо­вать­ся кон­соль­ны­ми ко­ман­да­ми. Для ра­бо­чих сто­лов KDE и Gnome су­ще­ст­ву­ют два схо­жих при­ло­жения с поч­ти оди­на­ко­вы­ми на­звания­ми: SoundKonverter и SoundConverter. Пер­вый ис­поль­зу­ет все пре­иму­ще­ст­ва ин­ст­ру­мен­та­рия FFMpeg, а вто­рой опи­ра­ет­ся на стан­дарт­ный для Gnome каркаc GStreamer. Ти­пич­ный ва­ри­ант ис­поль­зо­вания та­ких при­ло­жений – это пе­ре­вод мно­же­ст­ва фай­лов (от аль­бо­ма до всей фо­но­те­ки) в аль­тер­на­тив­ный фор­мат. На­при­мер, из MP3 в OGG из идео­ло­ги­че­­ских со­об­ра­жений, или из WMV или AAC в MP3 для боль­шей со­вмес­ти­мо­сти.

Тем, кто пред­по­чи­та­ет иметь од­но универ­саль­ное при­ло­жение в сти­ле «швей­цар­ско­го но­жа», луч­ше по­дой­дет уже упо­мя­ну­тый плей­ер VLC. В его ме­ню есть пункт Ме­диа > Кон­вер­ти­ро­вать/Со­хранить, ко­то­рый по­зво­ля­ет пе­ре­ко­ди­ро­вать лю­бой под­дер­жи­вае­мый ау­дио- или ви­део­файл. В VLC ис­поль­зу­ет­ся сис­те­ма про­фи­лей с за­ранее за­дан­ны­ми пре­дуста­нов­ка­ми, но лю­бую из них мож­но из­менить и вруч­ную уста­но­вить бит­рейт, кон­тейнер, ко­де­ки и суб­тит­ры. Все опе­ра­ции под­дер­жи­ва­ют­ся и для па­пок, т. е. воз­мож­на мас­со­вая кон­вер­та­ция.

3 Кон­вер­та­ция лю­бо­го ме­диа-фай­ла сред­ст­ва­ми команд­ной стро­ки

Дан­ный спо­соб хо­рош тем, что пред­ла­га­ет наи­бо­лее бо­га­тый вы­бор ин­ст­ру­мен­тов и поч­ти без­гранич­ный спектр на­страи­вае­мых па­ра­мет­ров. Пре­ж­де все­го нуж­но понимать, что один и тот же ре­зуль­тат мож­но по­лу­чить с по­мо­щью раз­ных ин­ст­ру­мен­тов, на­при­мер:

  • ffmpeg (из од­но­имен­но­го ин­ст­ру­мен­та­рия)
  • mencoder (раз­ра­ба­ты­ва­ет вме­сте с Mplayer)
  • transcode (са­мо­стоя­тель­ный про­ект)
  • vlc (кон­соль­ная вер­сия)

Для при­ме­ра ука­жем, как мож­но пе­ре­ко­ди­ро­вать ви­део­файл в кон­тей­не­ре AVI в уни­вер­саль­ный и вез­де под­дер­жи­вае­мый MPEG-1:

  • VLC
vlc ис­ход­ный_файл.avi --sout='#transcode{vcodec=mp1v,acodec=mpga}:std{access=file, mux=mpeg1,url=це­ле­вой_файл.mpg}'
  • FFMPEG
ffmpeg -i ис­ход­ный_файл.avi -y -f vcd -vcodec mpeg1video -acodec mp2 -ab 224 -ar 44100 -ac 2 це­ле­вой_файл.mpg
  • MENCODER
mencoder ис­ход­ный_файл.avi -of mpeg -mpegopts format=mpeg1:tsaf:muxrate=2000 -o це­ле­вой_файл.mpg \
-oac lavc -lavcopts acodec=mp2:abitrate=224 -ovc lavc -lavcopts vcodec=mpeg1video
  • TRANSCODE
transcode -i ис­ход­ный_файл.avi -I 1 -C 1 -k -b 224 -z -e 44100 --export_asr 2 --export_prof vcd-pal \
-J normalize -o це­ле­вой_файл.mpg -y mpeg -F v

4 За­хват транс­ля­ции в ви­де ло­каль­но­го фай­ла

У это­го ва­ри­ан­та ис­поль­зо­вания есть ню­анс: в ря­де слу­ча­ев есть воз­мож­ность про­сто ска­чать по­ток в ви­де от­дель­но­го фай­ла. Так, в ча­ст­но­сти, и по­сту­па­ют с ро­ли­ка­ми Youtube (для ска­чи­вания есть про­стей­шие и очень удоб­ные рас­ши­рения для Opera и Firefox). Мы же рас­смот­рим си­туа­цию, когда за­хват нуж­но вес­ти в ре­аль­ном вре­мени. На­при­мер, на пла­ту ви­део­зах­ва­та транс­ли­ру­ет­ся фут­боль­ный матч ли­бо идет оциф­ров­ка ви­део с плен­ки. Мы мо­жем сра­зу же пе­ре­на­прав­лять ви­део- и ау­дио­по­ток в файл и «на ле­ту» ко­ди­ро­вать дан­ные в нуж­ный фор­мат. Рас­смат­ри­вать клас­си­че­­ское циф­ро­вое ве­щание ка­ко­го-ли­бо по­то­ка не так ин­те­рес­но, так как все рав­но поч­ти всегда мож­но «вы­тя­нуть» ис­ход­ный файл. На­при­мер, по­ток ASF мож­но ба­наль­но со­хранить в ви­де локаль­ной ко­пии:

mplayer -dumpstream http://адрес_сайта/файл_по­то­ка.asf

Го­раз­до ин­те­рес­нее ко­ди­ро­вать дан­ные на ле­ту. Пред­по­ло­жим, что тре­бу­ет­ся за­пи­сать дан­ные с web-ка­ме­ры:

mencoder tv:// -tv driver=v4l:device=/dev/video0:width=640:height=480:forceaudio -ovc lavc -oac lavc -lavcopts \
vcodec=mpeg4:acodec=mp3 -ffourcc divx -o файл.avi

Пред­по­ла­га­ет­ся, что web-ка­ме­ра оп­ре­де­ля­ет­ся сис­те­мой как /dev/video0, а оп­ция forceaudio за­пи­шет звук – в том слу­чае, ес­ли он есть...

Пра­виль­ные звук и ви­део

Бы­ва­ют си­туа­ции, когда в сис­те­ме не иг­ра­ет звук (во­об­ще), или кар­тин­ка дер­га­ет­ся и за­ми­ра­ет. На этом эта­пе мно­гие со­вер­ша­ют ошиб­ку и ле­зут в кон­фи­гу­ра­ци­он­ные фай­лы, что на са­мом де­ле со­вер­шен­но из­лишне.

При возник­но­вении труд­но­стей со зву­ком важнее все­го гра­мот­но про­вес­ти ди­аг­но­сти­ку непо­лад­ки.

В пер­вую оче­редь, убе­ди­тесь, что ис­поль­зу­ет­ся нуж­ное уст­рой­ст­во вы­во­да. В KDE это мож­но по­смот­реть в System settings > Муль­ти­ме­диа > Уст­рой­ст­ва воспро­из­ве­дения, в Gnome – в gstreamer-properties > Вы­вод. Не сто­ит сра­зу клясть под­сис­те­му Pulseaudio, став­шую стан­дарт­ной в со­вре­мен­ном Linux: она уже дав­но ра­бо­та­ет ста­биль­но, и как раз ее от­клю­чение мо­жет при­вес­ти к про­бле­мам.

Сле­дую­щий шаг: пе­ре­хо­дим в на­строй­ки плей­е­ра и про­ве­ря­ем, ку­да вы­во­дит­ся звук. VLC, Mplayer (и про­из­вод­ные), Kaffeine и дру­гие про­грам­мы по­зво­ля­ют вы­во­дить звук на Pulseaudio, ли­бо сра­зу на ALSA или OSS.

Ес­ли ниче­го не по­лу­ча­ет­ся, про­верь­те, яв­ля­ет­ся ли про­бле­ма сис­тем­ной или поль­зо­ва­тель­ской. Для это­го соз­дай­те в сис­те­ме но­во­го поль­зо­ва­те­ля и про­иг­рай­те файл под ним. Очень час­то про­бле­мы с воспро­из­ве­дением вы­ле­за­ют на­ру­жу имен­но на этом эта­пе. Ес­ли у вас этот слу­чай, то уда­ли­те в сво­ей до­машней ди­рек­то­рии все скры­тые фай­лы и пап­ки, имею­щие от­но­шение к зву­ку (.pulseaudio и по­доб­ное) и по­про­буй­те сно­ва.

Про­бле­мы с воспро­из­ве­дением ви­део, когда кар­тин­ка дер­га­ет­ся и тор­мо­зит, обыч­но свя­за­ны с пло­хой про­из­во­ди­тель­но­стью при от­ри­сов­ке ви­део X-сер­ве­ром. Про­верь­те, что ваш драй­вер под­дер­жи­ва­ет DRI:

glxinfo | grep render

Ес­ли от­вет – «No», то драй­вер ви­део­кар­ты луч­ше пе­реуста­но­вить.

В случае ви­део вы­со­кой чет­ко­сти под­тор­ма­жи­вание ука­зы­ва­ет на от­сут­ст­вие ап­па­рат­но­го де­ко­ди­ро­вания ви­део. Со­вре­мен­ные ви­део­кар­ты умеют де­ко­ди­ро­вать некоторые фор­ма­ты (на­при­мер, H.264) пря­мо сред­ст­ва­ми GPU, для че­го нужны фир­мен­ный драй­вер и кли­ент­ская биб­лио­те­ка. Для ви­део­карт NVIDIA по­тре­бу­ет­ся биб­лио­те­ка VDPAU, для чи­пов Intel и Ati/Amd – VAAPI. Когда все уста­нов­ле­но, в на­строй­ках ви­део­плей­е­ра нуж­но вы­брать уст­рой­ст­во вы­во­да VDPAU или VAAPI со­от­вет­ст­вен­но.

Персональные инструменты
купить
подписаться
Яндекс.Метрика