Linux a multimédia - konverze formátů (FFmpeg)

20. 9. 2007 19:56 (aktualizováno) Jan Hrach

1. díl

2. díl

Základní dotaz mnoha linuxových začátečníků je: Jak převedu nějaké video do nějakého jiného formátu?

Na jejich předchozím systému si totiž stáhli/ukradli nějakou jednoúčelovou černou skříňku (tak říkám closed-source), kde si naklikali vstupní soubor, formát a výstupní soubor a klikli na OK.

Na Linuxu se k tomuto účelu používá většinou program FFmpeg (ano, je i mencoder). FFmpeg je konzolový nástroj. To má mnoho výhod – například jde použít i tam, kde není grafické prostředí… Samozřejmě k němu existuje spousta tzv. front-endů, ale každý se ovládá jinak a tak se jim nebudeme věnovat.

Konverze

Obvyklé použití FFmpegu je

 ffmpeg -i vstup -r fps -b video-bitrate -s rozlišení -vcodec video-kodek 
-acodec audio-kodek -ac počet-kanálů -ar vzorkovací-frekvence -ab audio-bitrate -y vystup

Teď si to přeložíme (v závorkách jsou výchozí hodnoty – jak to bude, když ten parametr vynecháte):

  • -i Vstupní soubor. Prostě zdroj.
  • -r Kolik snímků za sekundu bude mít výstupní video (25)
  • -b Bitrate videa v kbit/s. Určuje kvalitu a velikost souboru (200)
  • -s Rozlišení videa. Přednastavené jsou tyto hodnoty:
    • sqcif – rozlišení 128×96
    • qcif – rozlišení 176×144
    • cif – rozlišení 352×288
    • 4cif – rozlišení 704×576.
    • Můžeme ho také udat jako čísloxčíslo – např. 80×64
    • Výchozí hodnota je 160×128
  • -vcodec Video kodek. viz dále
  • -acodec Audio kodek. viz dále
  • -ac Počet kanálů (1)
  • -ar Vzorkovací frekvence v Hz. (4410)
  • -ab Bitrate audia v kbit/s. Určuje kvalitu a velikost souboru (64)
  • -y Výstupní soubor.

Kodeky

Volbám -vcodec a -acodec musíme dát formát videa. Ne všechna zařízení podporují všechny kodeky. Například některým přenosným přehrávačům neuděláte zrovna radost s ogg, musíte to převést do mp3. Někdy se ale konverze hodí i jen tak. Například když vám nějaký soubor zabírá moc místa, můžete ho převést do stejného formátu, ale na nižší vzorkovací frekvenci, můžete mu snížit počet kanálů a snížit bitrate.

Výpis podporovaných kodeků získáte příkazem ffmpeg -formats.

My si teď některé základní převody ukážeme.

Do 3gp:

Formát 3gp je používaný hlavně v mobilních zařízeních. Jako audio kodek může mít buď jednoduchý amr pro starší zařízení nebo složitější a kvalitnější mp3.

ffmpeg -i video.něco -s qcif  -vcodec h263 -acodec mp3 -ac 1 -ar 16000 -ab 32 -y něco.3gp 

případně

  ffmpeg -i video.něco -s qcif -vcodec h263 -acodec amr_nb -ac 1 -ar 8000 -ab 32 -y něco.3gp 

nebo úsporné (a nekvalitní)

 ffmpeg -i video.něco -s sqcif -b 20 -vcodec h263 -acodec amr_nb -ac 1 -ar 8000 -ab 16 -y něco.3gp 

Bez videa

FFmpeg má také volby -vn (bez videa) a -an (bez audia). Význam voleb je snad jasný…
Vytáhnutí audiostopy z videa:

 ffmpeg -i cosi.vid -vn -acodec mp3 -ac 1 -ar 16000 -ab 32 -y výstup.mp3
\--- A to je pro dnešek asi vše. Příště si ukážeme ovládání VLC.

Sdílet