Jak extrahovat obrázky z videa pomocí ffmpeg

ffmpegUž 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ě.

Štítky , , , , , .Záložka pro permanentní odkaz.

4 reakce na Jak extrahovat obrázky z videa pomocí ffmpeg

  1. Allconius říká:

    ještě instalace přes repo:

    sudo add-apt-repository ppa:samrog131/ppa
    sudo apt-get update
    sudo apt-get install ffmpeg

  2. Cigydd říká:

    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é?

    • Cigydd říká:

      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.

    • Cigydd říká:

      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