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

LXF136:Видео

Материал из Linuxformat
Версия от 20:06, 21 ноября 2011; Crazy Rebel (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Кон­вер­ти­ру­ем ви­део

Содержание

Видео: Ме­ня­ем фор­мат

Не­фор­мат­ное ки­но – это, мо­жет быть, и ин­те­рес­но, но толь­ко не в том слу­чае, ес­ли вы в транс­ат­лан­ти­че­ском пе­ре­ле­те; у вас с со­бой па­ра филь­мов, а смарт­фон их не по­ка­зы­ва­ет. Но с Алек­сан­дром Бер­бе­ром та­ко­го ни­ко­гда не слу­чит­ся.

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

Для ре­шения за­дач кон­вер­та­ции ви­део в Linux су­ще­ству­ет два основ­ных ин­ст­ру­мен­та: это ffmpeg – ути­ли­та, вхо­дя­щая в со­став па­ке­та FFmpeg, и Mencoder, вхо­дя­щий в со­став муль­ти­ме­диа-плей­е­ра MPlayer, не го­во­ря уже о мно­же­стве сто­ронних биб­лио­тек, ко­то­рые мо­гут быть как от­дель­ны­ми, так и смеж­ны­ми про­ек­та­ми; на­при­мер, биб­лио­те­ка x264 для кон­вер­та­ции и воспро­из­ве­дения ви­део в фор­ма­те HD или биб­лио­те­ка libavcodec, со­дер­жа­щая боль­шое ко­ли­че­ство по­пу­ляр­ных ко­де­ков.

К со­жа­лению, и гра­фи­че­ский, и кон­соль­ный ме­то­ды име­ют свои ма­лень­кие недостат­ки. Ска­жем так, су­ще­ствую­щие гра­фи­че­ские ути­ли­ты ба­зи­ру­ют­ся все на том же FFmpeg, од­на­ко их гра­фи­че­ский ин­тер­фейс, к со­жа­лению, не в со­стоянии донести до поль­зо­ва­те­ля всю без­гранич­ную функ­цио­наль­ность этой ути­ли­ты. Кон­соль­ный ме­тод, в сущ­но­сти, идеа­лен, за исклю­чением од­но­го: поль­зо­ва­те­лю необ­хо­ди­мо быть зна­ко­мым с ба­зо­вы­ми прин­ци­па­ми сжа­тия/кон­вер­та­ции ви­део, су­ще­ствую­щи­ми ко­де­ка­ми и фор­ма­та­ми. Спра­вед­ли­вым бу­дет за­ме­тить, что для при­менения гра­фи­че­ских про­грамм эти знания то­же нуж­ны. В гра­фи­че­ских при­ло­жениях за­да­чу поль­зо­ва­те­ля мо­гут су­ще­ствен­но об­лег­чить про­фи­ли, в кон­соль­ных про­грам­мах это по­мо­гут сде­лать скрип­ты; смысл один, толь­ко за­вер­ну­то по-раз­но­му.

Од­на­ко да­вай­те не бу­дем пу­гать­ся: не все так пло­хо. На­вскид­ку, еже­днев­но поль­зо­ва­тель стал­ки­ва­ет­ся с на­бо­ром при­бли­зи­тель­но од­но­тип­ных за­дач. От­сня­ли день ро­ж­дения сво­ей до­че­ри на но­вень­кую ви­део­ка­ме­ру – пе­ред ва­ми вста­ла за­да­ча сбро­сить запи­сан­ное ви­део на ком­пь­ю­тер, при этом же­ла­тель­но было бы его с­жать: три­дца­ти­ми­нут­ный ро­лик мо­жет сме­ло за­нять ка­ких-нибудь 5–10 ГБ места на же­ст­ком диске, по­сколь­ку ка­ме­ры не дела­ют с­жатия, а запи­сы­ва­ют как есть, в так на­зы­вае­мом фор­ма­те RAW [англ. «сы­рой»] (или, на ху­дой конец, в MP2). Или, на­при­мер, за­хо­те­лось ски­нуть но­вый фильм или ви­део­клип на свой iPhone, что­бы по­смот­реть в до­ро­ге. А мо­жет, вы при­вер­женец сво­бод­ных фор­ма­тов, та­ких как OGG и OGV, и вам непре­мен­но нуж­но, что­бы ва­ши ау­дио- и ви­део­запи­си хранились имен­но в них. Или же вы пред­по­чи­тае­те смот­реть лю­би­мые филь­мы в фор­ма­те HD. Все эти за­да­чи мож­но без тру­да ре­шать в кон­со­ли.

FFmpeg и Mencoder

Те­перь да­вай­те по­про­бу­ем немно­го ра­зо­брать­ся в том, что та­кое FFmpeg и Mencoder. Не станем соз­да­вать ин­три­гу: FFmpeg – это па­кет, из­на­чаль­но раз­ра­ба­ты­вае­мый толь­ко для плат­фор­мы Linux, со­стоя­щий из це­ло­го на­бо­ра сво­бод­ных биб­лио­тек, соз­да­те­лем ко­то­ро­го яв­ля­ет­ся нек­то по имени Фаб­рис Бел­лар [Fabrice Bellard].

FFmpeg (Fast Forward MPEG) со­сто­ит из сле­дую­щих ком­по­нен­тов: ffmepg, ffserver, ffplay, libavutil, libavcodec, libavformat, libavdevice, libswscale. В рам­ках дан­ной ста­тьи нет необ­хо­ди­мо­сти опи­сы­вать воз­мож­но­сти и функ­цио­нал ка­ж­до­го ком­понен­та в от­дель­но­сти: доста­точ­но оста­но­вить­ся на ин­те­ре­сую­щей нас ути­ли­те ffmepg, с по­мо­щью ко­то­рой и про­из­во­дит­ся пре­об­ра­зо­вание ви­део- и ау­дио­фай­лов из фор­ма­та в фор­мат. Вто­рой ин­те­рес­ный нам ком­понент – биб­лио­те­ка libavcodec – со­дер­жит все­воз­мож­ные ау­дио- и ви­део­ко­де­ки; часть из них бы­ла напи­са­на коман­дой раз­ра­бот­чи­ков FFmpeg фак­ти­че­ски с ну­ля.

Как вы уже до­га­да­лись, FFmpeg по­зво­ля­ет запи­сы­вать, кон­вер­ти­ро­вать, пе­ре­да­вать и за­хва­ты­вать циф­ро­вое ви­део и ау­дио. FFmpeg ра­бо­та­ет прак­ти­че­ски со все­ми из­вест­ны­ми ныне ви­део- и ау­дио­фор­ма­та­ми. Про­смот­реть спи­сок ко­де­ков и фор­ма­тов бо­лее под­роб­но вам по­мо­жет коман­да:

# ffmpeg -formats

Для ус­та­нов­ки дан­но­го па­ке­та в Debian-ори­ен­ти­ро­ван­ных ди­ст­ри­бу­ти­вах, та­ких как Ubuntu, Debian и Linux Mint, дос­та­точ­но на­брать в Тер­ми­на­ле:

# sudo apt-get install ffmpeg

Ком­пи­ля­ция ffmpeg из ис­ход­ных ко­дов по­зво­лит вам иметь по­след­нюю, ноч­ную сбор­ку, с ис­прав­лен­ны­ми ошиб­ка­ми и по­лез­ны­ми до­полнения­ми, но в дальней­шем ли­шит вас воз­мож­но­сти ав­то­ма­ти­че­ско­го об­нов­ления. Уста­нов­ка ffmpeg из ис­ход­ных ко­дов – про­цесс кро­пот­ли­вый, но при необ­хо­ди­мо­сти вы, к при­ме­ру, мо­же­те со­брать се­бе ffmpeg с под­держ­кой биб­лио­те­ки x264, что по­зво­лит вам ко­ди­ро­вать ви­део вы­со­кой чет­ко­сти.

MEncoder (MPlayer Media Encoder) – это часть про­ек­та MPlayer. MEncoder пред­на­зна­чен для об­ра­бот­ки и кон­вер­ти­ро­вания ви­део из од­но­го фор­ма­та в дру­гой. Как и FFmpeg, он об­ла­да­ет ог­ром­ным ко­ли­че­ством оп­ций, прекрасно за­до­ку­мен­ти­ро­ван – че­го сто­ит толь­ко man в семь с по­ло­ви­ной ты­сяч кон­соль­ных страниц на русском язы­ке – и, как и FFmpeg, име­ет боль­шое ко­ли­че­ство гра­фи­че­ских обо­ло­чек.

Раз­ра­бот­чи­ки по­зи­циониру­ют MEncoder как «про­стой ко­ди­ров­щик» всех ви­део- и ау­дио­фор­ма­тов, под­дер­жи­вае­мых и про­иг­ры­вае­мых са­мим MPlayer, а это уже оз­на­ча­ет, что на­звать Mencoder «про­стым ко­ди­ров­щи­ком» мог­ли толь­ко его раз­ра­бот­чи­ки. Вот толь­ко неко­то­рые из под­дер­жи­вае­мых им раз­но­вид­но­стей ви­део: MPEG/VOB, AVI, ASF/WMA/WMV, RM, QT/MOV/MP4, Ogg/OGM/Ogv, MKV, VIVO, FLI, NuppelVideo, yuv4mpeg, FILM, RoQ, H.264. Под­держ­ка необ­хо­ди­мых ко­де­ков мо­жет обес­пе­чи­вать­ся под­клю­чением биб­лио­те­ки libavcodec.

Для уста­нов­ки MEncoder в Debian-ори­ен­ти­ро­ван­ных ди­ст­ри­бу­ти­вах, та­ких как Ubuntu, Debian и Linux Mint, ис­поль­зуй­те сле­дую­щую коман­ду:

# sudo apt-get install mplayer

Для сбор­ки из ис­ход­ных ко­дов об­ра­ти­тесь за по­мо­щью на сайт http://www.mplayerhq.hu.

Кон­вер­ти­ру­ем ви­део

Вот мы и при­бли­зи­лись к са­мой ин­те­рес­ной части на­ше­го по­ве­ство­вания. Я ото­брал наи­бо­лее по­лез­ные (на мой взгляд) и часто встре­чаю­щие­ся при­ме­ры, конеч­но, ру­ко­во­дству­ясь при этом соб­ствен­ным опы­том ра­бо­ты с ви­део и ис­хо­дя из тех за­дач, ко­то­рые при­хо­дит­ся ре­шать по­все­днев­но.

Одним из фак­то­ров успеш­ной ра­бо­ты с вы­ше­опи­сан­ны­ми ути­ли­та­ми яв­ля­ет­ся понимание то­го, что де­ла­ешь, по­это­му я оста­нов­люсь на ка­ж­дой из при­ве­ден­ных команд в от­дель­но­сти и по­ста­ра­юсь уде­лить внимание ка­ж­до­му фла­гу и ка­ж­дой оп­ции. Конеч­но, мо­жет слу­чить­ся так, что вы не най­де­те ниже при­ме­ра, ко­то­рый иска­ли, но так уж по­лу­чи­лось, что ра­бо­та с ути­ли­та­ми ffmpeg и mencoder на­по­ми­на­ет ра­бо­ту с кон­ст­рук­то­ром, где вам да­но мно­го-мно­го со­став­ляю­щих, и всё, что от вас тре­бу­ет­ся – это пра­виль­но соединить их для дости­жения же­лае­мо­го ре­зуль­та­та. Изу­чив ба­зо­вые клю­чи и фла­ги, а так­же ра­зо­брав­шись, ка­кие ко­де­ки для че­го ис­поль­зу­ют­ся, вы смо­же­те без тру­да кон­вер­ти­ро­вать лю­бой фор­мат ви­део.

Из OGV в AVI

Итак, да­вай­те при­сту­пим. Одним из наи­бо­лее востре­бо­ван­ных при­ме­ров яв­ля­ет­ся кон­вер­ти­ро­вание ви­део по­сле его за­хва­та с ра­бо­че­го сто­ла поль­зо­вате­ля в Linux. Как пра­ви­ло, для та­ких це­лей ис­поль­зу­ют по­пу­ляр­ную ути­ли­ту вро­де gtk-RecordMyDesktop, ко­то­рая да­ет на вы­хо­де файл в фор­ма­те OGV, сжа­тый ко­де­ком Theora. По­сле то­го, как вы запи­шете ви­део, вам, скорее всего, за­хочет­ся вы­гру­зить его куда-нибудь на YouTube, Vimeo или RuTube, но ни один из этих сер­ви­сов не под­дер­жи­ва­ет от­но­ситель­но ред­кий Theora. Ины­ми сло­ва­ми, по­сле за­груз­ки ви­део на хостинг вас бу­дет ожи­дать раз­оча­ро­вание: ролик не воспро­из­ве­дет­ся ни на од­ной из вы­ше­пе­ре­чис­лен­ных ви­део­пло­ща­док.

Для ре­шения этой про­бле­мы необ­хо­ди­мо восполь­зо­вать­ся ути­ли­той mencoder, ко­то­рая и при­ве­дет наш ро­лик к «доступ­но­му» для ви­део­хостин­гов ви­ду. Для со­хранения ви­део­по­то­ка луч­ше все­го ис­поль­зо­вать по­пу­ляр­ный ви­део ко­дек mpeg4, а для зву­ка – mp3lame. На­бе­ри­те в кон­со­ли

# mencoder input_file.ogv -vf scale=848:528 -o output_file.avi \
-oac mp3lame -lameopts fast:preset=standard -ovc lavc -lavcopts \
vcodec=mpeg4:vbitrate=4000

Для на­ча­ла сто­ит вы­де­лить наи­бо­лее важ­ные оп­ции. Как вы уже до­га­да­лись, input_file.ogv – это вход­ной, а output_file.avi (ар­гу­мент оп­ции -o) — вы­ход­ной файл. Оп­ция -vf scale по­мо­жет вам уста­но­вить тре­буе­мое раз­ре­шение; ес­ли вы хо­ти­те оста­вить то же раз­ре­шение, что и у вход­но­го фай­ла, про­сто про­пусти­те ее.

Сле­дую­щий, не менее важ­ный па­ра­метр – -oac (output audio codec). Он за­да­ет ау­дио­ко­дек, ко­то­рый бу­дет ис­поль­зо­вать­ся для сжа­тия зву­ко­вой до­рож­ки. Ес­ли в ви­део от­сут­ству­ет звук, то опять-та­ки мож­но про­пустить этот мо­мент. Ана­ло­гич­но, оп­ция -ovc (output video codec) предпи­сы­ва­ет ко­ди­ро­вать за­дан­ным ви­део­ко­де­ком (здесь это lavc, оз­на­чаю­щий, что ко­дек бу­дет взят из биб­лио­те­ки libavcodec). -lameopts за­да­ет спе­ци­фич­ные для ка­ж­до­го от­дель­но­го ко­де­ка оп­ции ко­ди­ро­вания. Мы ука­за­ли пе­ре­клю­чить­ся на бы­строе ко­ди­ро­вание (fast), с пре­дуста­нов­лен­ной стан­дарт­ной на­строй­кой (standard). Оп­ций для ка­ж­до­го от­дель­но­го ко­де­ка па­ра­мет­ров ве­ли­кое мно­же­ство, по­это­му мы не станем вда­вать­ся в под­роб­но­сти ка­ж­до­го из них. Оп­ция -lavcopts за­да­ет па­ра­мет­ры ко­де­ков из libavcodec: здесь мы вы­би­ра­ем mpeg4 (как вы помните, libavcodec реа­ли­зу­ет са­мые раз­ные ко­де­ки, так что это ука­зание бу­дет не лишним). По­след­няя (но не по зна­чи­мо­сти) оп­ция vbitrate ука­зы­ва­ет бит­рейт ви­део; по умол­чанию он ра­вен 800 кбит, мы ука­за­ли для сво­его ви­део 4000 кбит. Эта же коман­да мо­жет вы­гля­деть вот так:

# mencoder foo.ogv -vf scale=848:528 -o foo.avi \
-lameopts fast:preset=standard -ovc lavc -lavcopts \
vcodec=mpeg4:vbitrate=4000 acodec=mp3lame:abitrate=2000

где мы вынесли па­ра­метр acodec за ключ -lavcopts с це­лью ко­ди­ро­вания все­го по­то­ка при по­мо­щи се­мей­ства ко­де­ков libavcodec. В ито­ге вы по­лу­чи­те файл, го­то­вый к вы­груз­ке на лю­бой из доступ­ных ви­део­хостин­гов или для про­смот­ра с по­мо­щью ме­диа-про­иг­ры­ва­те­ля.

Ки­но для iPhone

В пре­ды­ду­щем при­ме­ре мы нау­чи­лись кон­вер­ти­ро­вать фор­мат OGV в фор­мат AVI и под­роб­но ра­зо­бра­ли ис­поль­зуе­мые при ко­ди­ро­вании оп­ции, мно­гие из ко­то­рых мы бу­дем ис­поль­зо­вать и в по­сле­дую­щих при­ме­рах. Те­перь да­вай­те по­про­бу­ем скон­вер­ти­ро­вать ви­део для ва­ше­го iPhone/iPod/iPad. Эти уст­рой­ства сей­час очень по­пу­ляр­ны, и мно­гим, ду­маю, хо­те­лось бы иметь спо­соб без про­блем пе­ре­кон­вер­ти­ро­вать лю­би­мый клип или фильм в фор­мат, по­нят­ный iPhone/iPod/iPad, за­гру­зить его и на­сла­ж­дать­ся.

Спер­ва да­вай­те по­смот­рим, ка­кой же фор­мат по­ня­тен уст­рой­ствам от Apple, а так­же – ка­ким ко­де­ком пе­ре­жи­мать и ка­кое раз­ре­шение ис­поль­зо­вать для ви­део. Начнем с ко­де­ка: уст­рой­ства от­лич­но чи­та­ют фай­лы, об­ра­бо­тан­ные ко­де­ка­ми MPEG4 или H.264, для зву­ка необ­хо­ди­мо ис­поль­зо­вать ал­го­ритм ко­ди­ро­вания ау­дио AAC. При этом фор­ма­ты долж­ны быть толь­ко .m4v, .mp4 или .mov.

Для уст­ройств iPhone и iPod Touch иде­аль­но под­хо­дит раз­ре­шение 320 × 480 или 240 × 320. Сто­ит за­ме­тить, что на iPhone 4 под­дер­жи­ва­ет­ся раз­ре­шение 640 × 960 при 30 кад­рах в се­кун­ду, но, конеч­но, иногда все­ми эти­ми па­ра­мет­ра­ми мож­но слег­ка пренеб­речь с це­лью эко­но­мии места в те­ле­фоне или плей­е­ре.

Коман­да для кон­вер­ти­ро­вания AVI-фай­лов в MP4 бу­дет та­кая:

# ffmpeg -i input_video.avi -acodec aac -ab 160kb -vcodec mpeg4 \
-b 1600kb -mbd 2 -cmp 2 -subcmp 2 -s 480x320 final_video.mp4

В дан­ном слу­чае мы с ва­ми при­ме­ня­ем для ко­ди­ро­вания ути­ли­ту ffmpeg, а не mencoder, но разница неве­ли­ка: в боль­шин­стве слу­ча­ев обе они поль­зу­ют­ся услу­га­ми биб­лио­те­ки ко­де­ков libavcodec. Те­перь да­вай­те рас­смот­рим наи­бо­лее важ­ные из па­ра­мет­ров и оп­ций. Ключ -i ука­зы­ва­ет на вход­ной файл. Па­ра­метр -acodec нам уже зна­ком, и, как бы­ло ска­за­но вы­ше, в ка­че­стве зву­ко­во­го ко­де­ка я уста­но­вил AAC с бит­рей­том 160 кбит. Па­ра­метр -vcodec то­же зна­ком нам с пре­ды­ду­ще­го при­ме­ра: в ка­че­стве ви­део­ко­де­ка вы­бран неза­менимый mpeg4 c бит­рей­том 1600 кбит в се­кун­ду. И, на­конец, -s – раз­ре­шение ви­део; для сво­его iPhone я взял 480 × 320.

Не мо­гу не упо­мя­нуть, что в идеа­ле в ка­че­стве ко­де­ка для ко­ди­ро­вания необ­хо­ди­мо бы­ло бы ука­зать libx264, для че­го нуж­но иметь в систе­ме FFmpeg, со­б­ран­ный с под­держ­кой x264. В ре­по­зи­то­ри­ях обыч­но на­хо­дит­ся вер­сия FFmpeg без x264, по­это­му, ес­ли вы за­хо­ти­те иметь FFmpeg с под­держ­кой биб­лио­те­ки про­грамм­ных ком­понен­тов для ко­ди­ро­вания ви­део­по­то­ков H.264 x264, вам при­дет­ся со­би­рать ее вруч­ную из SVN.

Ви­део с ка­ме­ры

При­мер, не менее по­пу­ляр­ный, чем два пре­ды­ду­щих – кон­вер­ти­ро­вание ви­део, запи­сан­но­го на фо­то/ви­део­ка­ме­ру в фор­ма­те AVI. Боль­шин­ство ка­мер со­хра­ня­ют ви­део­ро­ли­ки в фор­ма­те MOV с весь­ма сла­бым сжа­ти­ем. На­при­мер, у ме­ня 33‑се­кунд­ный ро­лик за­нял 44,1 МБ места. Ес­ли же вы лю­би­тель снимать ви­део, то по­нят­но, что ес­ли вы не бу­де­те пе­ре­жи­мать от­сня­тое, а оста­ви­те его в «сы­ром» ви­де, да­же ваш 2‑ТБ вин­че­стер очень ско­ро за­кон­чит­ся.

Для это­го мы сно­ва при­бег­нем к по­мо­щи mencoder:

# mencoder MVI_1968.MOV -vf scale=720:304 -o movie.avi -oac mp3lame -ovc lavc vbitrate=4000kb

или, в бо­лее вы­со­ком ка­че­ст­ве,

# mencoder input_file.MOV -vf scale=720:304 -o output_file.avi -oac faac -ovc x264 vbitrate=4000kb

Все ис­поль­зо­ван­ные в при­ме­ре вы­ше па­ра­мет­ры вам уже хо­ро­шо зна­ко­мы. Мо­гу толь­ко по­яснить, что в ка­че­стве зву­ко­во­го ко­де­ка я ис­поль­зо­вал AAC, а в ка­че­стве ви­део­ко­де­ка – H.264.

MEncoder мо­жет по­сту­пать с ис­ход­ны­ми до­рож­ка­ми дву­мя раз­ны­ми пу­тя­ми: пе­ре­ко­ди­ро­вать их или про­сто ко­пи­ро­вать. По­это­му, ес­ли вы хо­ти­те со­хранить ис­ход­ное ка­че­ство ви­део или ау­дио, то с па­ра­мет­ра­ми -oac и -ovc сто­ит ис­поль­зо­вать copy. Взгля­ните на ко­ро­тень­кий при­мер ниже:

# mencoder -i input_file.avi -ovc copy -oac copy -o output_file.avi

Так­же, что­бы знать, ка­кие ко­де­ки есть в рас­по­ря­же­нии mencoder (имен­но в mencoder, а не в сто­рон­ней биб­лио­те­ке libavcodec, ко­то­рую мы так час­то лю­бим ис­поль­зо­вать), нуж­но про­сто вве­сти в тер­ми­на­ле ко­ман­ду

# mencoder -ovc help

для ис­хо­дя­ще­го ви­део­ко­де­ка (output video codec), и ко­ман­ду

# mencoder -oac help

для ис­хо­дя­ще­го ау­дио­ко­де­ка (output audio codec).

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

# ffmpeg -i input_file.MOV -s 1440x900 -b 4000kb -vcodec mpeg4 -acodec libmp3lame -f avi output_file.avi

Немно­го об оп­ци­ях. -s, как вы уже, на­вер­ное, до­га­да­лись – это раз­ре­шение ви­део, -b — это ви­део­бит­рейт, -i – ис­ход­ный файл, -f — файл, ко­то­рый мы по­лу­чим по­сле то­го, как коман­да от­ра­бо­та­ет.

На мой взгляд, ffmpeg луч­ше справ­ля­ет­ся с за­да­чей кон­вер­ти­ро­вания MOV-фай­лов в «нор­маль­ный» AVI, чем mencoder, но это су­гу­бо мое мнение.

И еще од­но. Как я пи­сал вы­ше, у вас на же­ст­ком диске мо­жет быть це­лая кол­лек­ция фай­лов, от­сня­тых за про­шлый год или на вы­ход­ных – не пе­ре­жи­мать же вам ка­ж­дый файл от­дель­но, вби­вая в оп­цию -i на­звание ка­ж­до­го сле­дую­ще­го ро­ли­ка! А ес­ли у вас их па­ра со­тен? Вы бы­ст­ро устанете. В дан­ном слу­чае луч­ше все­го бу­дет ис­поль­зо­вать про­стень­кий скрипт, ко­то­рый по­мо­жет вам сэ­ко­но­мить вре­мя и из­ба­вит от нуд­ной ра­бо­ты.

 #!/bin/bash
 #MOV to AVI
 for mov in *.MOV; do
   avi=${mov//.MOV/.avi}
   [ -f$avi] || ffmpeg -i$mov-s 1440x900 -b 4000kb -vcodec mpeg4 -acodec libmp3lame -f avi “$avidone

Сде­лай­те его ис­пол­няе­мым коман­дой chmod +x convert.sh, а да­лее за­пусти­те его в ди­рек­то­рии, где на­ко­пи­лись го­ры ва­ших ви­део­фай­лов в фор­ма­те MOV:

# sh convert.sh

Ес­ли в ка­че­ст­ве ди­ст­ри­бу­ти­ва Linux вы ис­поль­зуе­те Ubuntu, то за­пус­кать скрипт сле­ду­ет не­мно­го по-дру­го­му:

#./convert.sh

Это объ­яс­ня­ет­ся тем, что Ubuntu в ка­че­стве обо­лоч­ки по умол­чанию ис­поль­зу­ет­ся dash, скрипт же напи­сан на «чистом» Bash. К со­жа­лению, эти две вер­сии со­вмести­мы не на все 100 %. Впро­чем, ./convert.sh бу­дет ра­бо­тать в лю­бой систе­ме.

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

Обо всём понем­нож­ку

Итак, мы с ва­ми рас­смот­ре­ли са­мые ин­те­рес­ные, на мой взгляд, при­ме­ры, ко­то­рые сто­ят от­дель­но­го внимания; вы­учи­ли боль­шин­ство оп­ций и нау­чи­лись ис­поль­зо­вать скрипт для кон­вер­та­ции ви­део­мас­си­вов. Но у ме­ня в за­па­се есть еще па­ра-трой­ка при­ме­ров, ко­то­рые так­же мо­гут при­го­дить­ся в ка­ж­до­днев­ном ис­поль­зо­вании.

Сей­час очень по­пу­ляр­но смот­реть ро­ли­ки со всем из­вест­но­го ви­део­хостин­га YouTube, но мно­гим хо­чет­ся не толь­ко на­сла­ж­дать­ся ими в Се­ти, но и ска­чи­вать се­бе на ком­пь­ю­тер для дальней­ше­го про­смот­ра или же для то­го, что­бы ско­пи­ро­вать ро­лик се­бе на те­ле­фон и поз­же по­хва­стать­ся друзь­ям. Из­вест­но, что боль­шин­ство про­грамм, ко­то­рые по­мо­гут вам ска­чать лю­би­мый ро­лик с YouTube, вы­да­ют ви­део­файл в фор­ма­те FLV. Это не все­гда удоб­но, и, соб­ствен­но, не все­гда чи­тае­мо неко­то­ры­ми про­иг­ры­ва­ те­ля­ми, тем бо­лее ес­ли речь идет о те­ле­фо­нах или PSP. Да­вай­те рас­смот­рим спо­соб, с по­мо­щью ко­то­ро­го мы пе­ре­кон­вер­ти­ру­ем про­тив­ное FLV в наш лю­би­мый AVI, и для пу­щей вер­но­сти пре­вра­тим толь­ко что ска­чан­ный клип в зву­ко­вую до­рож­ку MP3, что мо­жет при­го­дить­ся вла­дель­цам MP3‑плей­е­ров. Хо­чу за­ме­тить, что слу­чай весь­ма неор­ди­нар­ный, но то, что пе­рио­ди­че­ски всплы­ва­ют во­про­сы: «Как достать зву­ко­вую до­рож­ку из ви­део фай­ла?» – факт.

Я толь­ко что ска­чал файл Toby Keith — As Good As I Once Was.flv. Те­перь да­вай­те по­про­бу­ем пре­вра­тить его в AVI; с FFmepg это про­сто.

# ffmpeg -i input_file.flv -vcodec copy -acodec copy output_file.avi

Как ви­ди­те, всё очень про­сто, и так как боль­шин­ство ро­ли­ков, ска­чан­ных с YouTube, не от­ли­ча­ют­ся восхи­ти­тель­ным ка­че­ством, я ре­шил оста­вить всё как в ори­ги­на­ле, ис­поль­зо­вав оп­цию copy.

По­сле вы­полнения этой коман­ды у вас бу­дет файл AVI, ко­то­рый с лёг­ко­стью воспро­из­ве­дет­ся боль­шин­ством плей­е­ров; в том чис­ле, та­кие фай­лы лег­ко чи­та­ют­ся ме­диа-плей­е­ра­ми те­ле­фо­нов. Ес­ли по ка­ким-то при­чи­нам вам по­на­до­бить­ся пе­ре­кон­вер­ти­ро­вать AVI в MPG, то сно­ва нам по­мо­жет неза­менимый FFmpeg:

# ffmpeg -i input_file.flv -ab 56 -ar 22050 -b 500 -s 320x240 output_file.mpg

Крат­ко об ис­поль­зуе­мых оп­ци­ях: -ab ис­поль­зу­ет­ся для ука­за­ния ау­дио­бит­рей­та, стан­дарт­ный бит­рейт ра­вен 64 Кбит. -ar – этот па­ра­метр от­ве­ча­ет за час­то­ту дис­кре­ти­за­ции зву­ка; как вы ве­ро­ят­но знае­те, стан­дар­том яв­ля­ет­ся зна­че­ние 44100 Гц. Оп­ции -s и -i нам уже хо­ро­шо зна­ко­мы.

Ну и, на­ко­нец, сде­ла­ем из ви­део­фай­ла ау­дио­файл в фор­ма­те MP3:

# ffmpeg -i input.avi -vn output.mp3

Оп­ция -vn от­клю­ча­ет ви­део­за­пись при кон­вер­та­ции фай­ла про­грам­мой FFmpeg.

Взгля­нув чуть вы­ше – а имен­но, на скрипт – вы мо­же­те про­де­лать та­кую про­стую шту­ку: на­ка­чать ви­део­ро­ли­ков с YouTube, чуть-чуть пе­ре­де­лать скрипт и одним дви­жением ру­ки пе­ре­гнать их в MP3, что­бы в дальней­шем за­лить се­бе на те­ле­фон, или же пе­ре­кон­вер­ти­ро­вать «неудоб­ный» фор­мат FLV в бо­лее при­выч­ный AVI.

Ду­маю, те­перь вы со­гла­си­тесь, что кон­вер­ти­ро­вание ви­део в Linux – не та­кая уж слож­ная за­да­ча, а ес­ли немно­жеч­ко ра­зо­брать­ся, то вы­яснит­ся, что кон­вер­ти­ро­вать ви­део и ау­дио в Linux – од­но удо­воль­ствие при миниму­ме уси­лий. Как уже бы­лоска­за­но, мощь Bash по­мо­жет вам ав­то­ма­ти­зи­ро­вать лю­бую ру­тин­ную ра­бо­ту с ва­ши­ми фай­ла­ми. К то­му же FFmpeg дав­но и ак­тив­но ис­поль­зу­ют­ся для кон­вер­та­ции на плат­фор­ме Windows. Объ­яс­ня­ет­ся это про­сто: бес­плат­но­стью и доступ­но­стью про­грам­мы, при том, что ка­че­ство и ско­рость кон­вер­та­ции да­же луч­ше, чем у до­ро­гих плат­ных ана­ло­гов. В Linux так­же су­ще­ству­ют гра­фи­че­ские ути­ли­ты, пред­на­зна­чен­ные для пе­ре­ко­ди­ро­вания ви­део- и ау­дио­фай­лов. Как пра­ви­ло, это не са­мо­стоя­тель­ные про­грам­мы, а гра­фи­че­ские обо­лоч­ки для все­мо­гу­ще­го FFmpeg. Ес­ли вы за­ин­те­ре­со­ва­ны в гра­фи­че­ских про­грам­мах, то со­ве­тую об­ра­тить вни­ма­ние на та­кие при­ло­же­ния, как WinFF, De-Ve-De, HandBrake, Avidemux.

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