Už jste někdy chtěli extrahovat nějaký obrázek ze svého video souboru? I v Linux Mintu to jde a tento dnešní tutoriál vám ukáže, jak na to pomocí programu ffmpeg.
Co je ffmpeg?
ffmpeg je velmi užitečný program pro příkazový řádek, který můžete použít i pro překódování mediálních souborů. Je součástí multimediálního rozhraní FFmpeg, které má mnoho funkcí, např. schopnost dekódovat, kódovat, transkódovat, muxovat, demuxovat, streemovat, filtrovat a přehrát téměř cokoliv, co kdy lidé či počítače vytvořili.
Celé rozhraní obsahuje mnoho různých nástrojů a každý má svou specifickou roli. Například ffserver se používá pro přenos multimediálních dat pro živé vysílání, ffprobe k analýze multimediálních streemů, ffplay může být použit jako jednoduchý přehrávač médií a ffmpeg umí převádět různé formáty multimediálních souborů.
Vývojářské knihovny, obsažené v rozhraní FFmpeg:
- libavutil je knihovna obsahující funkce pro zjednodušení programování, včetně generátoru náhodných čísel, datových struktur, matematické rutiny, základních multimediálních pomůcek a mnoho dalších.
- libavcodec je knihovna, obsahující dekodéry a kodéry pro audio/video kodeky.
- libavformat je knihovna, obsahující demuxery a muxery pro kontejnerové zpracování multimediálních formátů.
- libavdevice je knihovna, obsahující vstupní a výstupní zařízení pro grabování a renderování mnoha běžných multimediálních vstupně – výstupních softwarových rozhraní, včetně Video4linux, Video4Linux2, VfW a ALSA.
- libavfilter je knihovna, obsahující mediální filtry.
- libswscale je knihovna, provádějící vysoce optimalizované převzorkování barevného rozlišení formátů.
- libswresample je knihovna, provádějící vysoce optimalizované převzorkování zvuku, rematrixing a vzorkování formátů.
Poznámka : FFmpeg a ffmpeg není totéž, FFmpeg je rozhraní a ffmpeg je jedním z jeho nástrojů.
Jak na to
Abyste mohli pracovat podle tohoto tutoriálu, budete si muset nainstalovat nástroj příkazového řádku ffmpeg do vašeho systému Linux Mint. je to velmi snadné, stačí zadat a spustit následující příkaz v terminálu:
Příkaz terminálu: |
---|
sudo apt-get install ffmpeg |
Druhou možností je jeho zkompilování ze zdroje. Před kompilací a instalací ze zdrojového kódu si musíte stáhnout potřebný archiv z oficiálních internetových stránek pomocí následujícího příkazu:
Příkaz terminálu: |
---|
wget http://www.ffmpeg.org/releases/ffmpeg-2.2.3.tar.bz2 |
Po stažení rozbalte archiv pomocí následujícího příkazu:
Příkaz terminálu: |
---|
tar -xvjf ffmpeg-2.2.3.tar.bz2 |
Jakmile je archiv rozbalen, zadejte následující příkazy:
Příkazy terminálu: |
---|
./configure |
make |
Po dokončení kompilace zadejte následující příkaz pro instalaci ffmpeg:
Příkaz terminálu: |
---|
su -c ‚make install‘ |
Nyní se již můžete pustit do samotného získání obrázku. Operace spočívá v zadání několika příkazů v terminálu, díky nimž budete moci extrahovat obrázky z libovolného formátu video souboru.
Než tedy budete pokračovat, ujistěte se, že jste ve stejném adresáři s video souborem, ze kterého chcete obrázky extrahovat. Do správného adresáře se dostanete pomocí příkazu cd. Většinou se pro tyto účely používá adresář Videa, kam se dostanete pomocí následujícího příkazu:
Příkaz terminálu: |
---|
cd /home/satapouch/Videa |
Pak použijte následující příkaz pro extrahování obrázku z daného video souboru:
Příkaz terminálu: |
---|
ffmpeg -i „P1010233.MOV“ -r 1 -q:v 2 -f image2 image-3%d.jpeg |
Volba -i slouží k získání vstupu, který je v daném případě video soubor s názvem P1010233.MOV.
Volba -r určuje počet snímků, které mají být extrahovány jako obrázky každou vteřinu. Dobrá volba je extrahování jednoho snímku za sekundu.
Další velmi důležitou volbou, která by měla být zadána, je -q:, která se používá k nastavení kvality extrahovaných obrázků. Je nejlepší zadávat vysoce kvalitní obraz při extrahování z videa pomocí hodnoty 2.
ffmpeg je další ukázkou síly a možností příkazového řádku. Není nezbytně nutný pro každého, ale tu a tam se videoamatérovi může hodit, chce-li si z natočeného videa „vydolovat“ nějaký důležitý moment.
Vím, že tento článek opět vyvolá u některých z vás nevoli, ale v jednom jsem neoblomný: Znalost alespoň základních příkazů je zkrátka v Linuxu nutná a jednou se k tomuto závěru dostane každý, kdo to s Linuxem myslí opravdu vážně.
ještě instalace přes repo:
sudo add-apt-repository ppa:samrog131/ppa
sudo apt-get update
sudo apt-get install ffmpeg
1. Omlouvám se, jestli je to trochu mimo, ale chci se zeptat, jestli ffmpeg v repositáři sambrog131 obsashuje kodér MP3 a XviD.
Byl jsem na ně dost zvyklý. Pak jsem reinstalloval systém a ffmpeg už v distribučním buildu nepodporuje kódování do MP3 a XviD.
Tak jsem si řekl, že přejdu na OGG, OGV, popřípadě MPEG2. Copak o to, v počítači to není problém, ale většina „normálních“ přehrávačů CD/DVD+USB, co máme doma, tyto formáty nepodporuje.
Je pro mě jediným řešením uživatelská kompilace nebo tento repositář obsahuje podporu nesvobodných kodeků?
2. ffmpeg říká, že je zastaralý (deprecated) a že bychom místo něj měli používat avconv. Jak vážně to máme brát? Připsal jsem si už nové skriptíky pro avconv, nebylo to zbytečné?
Pardon, MPEG2 je formát, který ty přehrávače podporují, ale zase zabírá na mediích moc místa. Ale to je video, jde taky o audio.
Odpovím si sám na otázku č. 2. Došlo k forku (odštěpení) projektu Libav od projektu FFmpeg. Ubuntu se přiklonilo k větvi Libav a v době, kdy Libav přejmenovával svou versi programmu ffmpeg na avconv, do ffmpegu umístil hlášku, že „tento program již je nežádoucí“. Hodně lidí to zmátlo, včetně mě.
K otázce č. 1: Právě kompiluji FFmpeg podle tohoto návodu:
http://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu