GNU/Linux >> Znalost Linux >  >> Linux

20+ FFmpeg příkazů pro začátečníky

V této příručce vysvětlím, jak používat multimediální rámec FFmpeg k provádění různých operací překódování zvuku, videa a převodu s příklady. Zkompiloval jsem nejběžněji a často používaných 20+ FFmpeg příkazů pro začátečníky.

Tuto příručku budu průběžně aktualizovat přidáváním dalších příkladů čas od času. Uložte si tohoto průvodce do záložek a vraťte se za chvíli a zkontrolujte aktualizace. Pojďme začít, ano?

Nainstalujte FFmpeg v Linuxu

Pokud jste do svého systému Linux ještě nenainstalovali FFmpeg, postupujte podle následujícího průvodce.

  • Nainstalujte FFmpeg v systému Linux

Příkazy FFmpeg s příklady

Typická syntaxe příkazu FFmpeg je:

ffmpeg [global_options] {[input_file_options] -i input_url} ...
 {[output_file_options] output_url} ...

Nyní se podíváme na některé důležité a užitečné příkazy FFmpeg.

1. Získání informací o audio/video souboru

Chcete-li zobrazit podrobnosti o mediálním souboru, spusťte:

$ ffmpeg -i video.mp4

Ukázkový výstup:

ffmpeg version n4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 8.2.1 (GCC) 20181127
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.20.100
Duration: 00:00:28.79, start: 0.000000, bitrate: 454 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, smpte170m/bt470bg/smpte170m), 1920x1080 [SAR 1:1 DAR 16:9], 318 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Metadata:
handler_name : ISO Media file produced by Google Inc. Created on: 04/08/2019.
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
handler_name : ISO Media file produced by Google Inc. Created on: 04/08/2019.
At least one output file must be specified

Jak vidíte ve výše uvedeném výstupu, FFmpeg zobrazuje informace o mediálním souboru spolu s podrobnostmi FFmpeg, jako je verze, podrobnosti o konfiguraci, upozornění na autorská práva, možnosti sestavení a knihovny atd.

Pokud nechcete vidět banner FFmpeg a další podrobnosti, ale pouze informace o mediálním souboru, použijte -hide_banner příznak jako níže.

$ ffmpeg -i video.mp4 -hide_banner

Ukázkový výstup:

Vidět? Nyní zobrazuje pouze podrobnosti o mediálním souboru.

Doporučené čtení:

  • Zobrazení informací o mediálních souborech v systému Linux pomocí MediaInfo

2. Převod video souborů do různých formátů

Protože FFmpeg je funkčně bohatý a výkonný audio a video konvertor, je možné převádět mediální soubory mezi různými formáty. Řekněme například, chcete-li převést mp4 soubor do avi soubor , spustit:

$ ffmpeg -i video.mp4 video.avi

Podobně můžete převádět mediální soubory do libovolného formátu dle vašeho výběru.

Chcete-li například převést YouTube flv naformátujte videa na mpeg formát, spusťte:

$ ffmpeg -i video.flv video.mpeg

Pokud chcete zachovat kvalitu zdrojového video souboru, použijte '-qscale 0' parametr:

$ ffmpeg -i input.webm -qscale 0 output.mp4

Chcete-li zkontrolovat seznam podporovaných formátů pomocí FFmpeg, spusťte:

$ ffmpeg -formats

3. Převod video souborů na zvukové soubory

Chcete-li převést video soubor na zvukový soubor, stačí zadat výstupní formát jako .mp3 , nebo .ogg , nebo jakékoli jiné audio formáty.

Výše uvedený příkaz převede input.mp4 video soubor do output.mp3 zvukový soubor.

$ ffmpeg -i input.mp4 -vn output.mp3

Můžete také použít různé možnosti překódování zvuku do výstupního souboru, jak je uvedeno níže.

$ ffmpeg -i input.mp4 -vn -ar 44100 -ac 2 -ab 320 -f mp3 output.mp3

Tady,

  • -vn - Označuje, že jsme ve výstupním souboru zakázali nahrávání videa.
  • -ar - Nastavte zvukovou frekvenci výstupního souboru. Běžně používané hodnoty jsou  22050 , 44100 , 48000 Hz.
  • -ac – Nastavte počet zvukových kanálů.
  • -ab - Označuje přenosovou rychlost zvuku.
  • -f - Formát výstupního souboru. V našem případě je to mp3 formát.

Výše uvedený příkaz zobrazí varovnou zprávu jako níže.

[libmp3lame @ 0x5589ed539240] Bitrate 320 is extremely low, maybe you mean 320k
The bitrate parameter is set too low. It takes bits/s as argument, not kbits/s

Je to proto, že jsme dali 320 bitů/sekundu jako datový tok, který je velmi nízký. Tím se vytvoří menší výstupní soubor. Pro nejlepší kvalitu výstupu použijte hodnotu bitrate 320k místo pouhých 320 .

4. Změňte hlasitost zvukových souborů

FFmpeg nám umožňuje změnit hlasitost zvukového souboru pomocí "volume filter" možnost.

Například následující příkaz sníží hlasitost na polovinu.

$ ffmpeg -i input.mp3 -af 'volume=0.5' output.mp3

Podobně můžeme zvýšit hlasitost, jak je uvedeno níže:

$ ffmpeg -i input.mp3 -af 'volume=1.5' output.mp3

5. Změna rozlišení souborů videa

Pokud chcete nastavit určité rozlišení pro video soubor, můžete použít následující příkaz:

$ ffmpeg -i input.mp4 -filter:v scale=1280:720 -c:a copy output.mp4

Nebo,

$ ffmpeg -i input.mp4 -s 1280x720 -c:a copy output.mp4

Výše uvedený příkaz nastaví rozlišení daného video souboru na 1280x720 .

Podobně převeďte výše uvedený soubor na 640x480 velikost, běh:

$ ffmpeg -i input.mp4 -filter:v scale=640:480 -c:a copy output.mp4

Nebo,

$ ffmpeg -i input.mp4 -s 640x480 -c:a copy output.mp4

Tento trik vám pomůže škálovat vaše video soubory na menší zobrazovací zařízení, jako jsou tablety a mobily.

6. Komprese video souborů

Vždy je dobré zmenšit velikost mediálních souborů na menší velikost, abyste ušetřili místo na disku.

Následující příkaz zkomprimuje a zmenší velikost výstupního souboru.

$ ffmpeg -i input.mp4 -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 output.mp4

Pamatujte, že pokud se pokusíte zmenšit velikost souboru videa, ztratíte kvalitu. Tento crf můžete snížit hodnotu na 23 nebo nižší, pokud 24 je příliš agresivní.

Můžete také zvuk trochu překódovat a upravit jej na stereo, aby se zmenšila velikost tím, že přidáte následující možnosti.

-ac 2 -c:a aac -strict -2 -b:a 128k

7. Komprese zvukových souborů

Stejně jako při kompresi souborů videa můžete také komprimovat zvukové soubory pomocí -ab příznak, aby se ušetřilo místo na disku.

Řekněme, že máte zvukový soubor 320 přenosová rychlost kbps. Chcete jej zkomprimovat změnou datového toku na jakoukoli nižší hodnotu, jak je uvedeno níže.

$ ffmpeg -i input.mp3 -ab 128 output.mp3

Seznam různých dostupných datových toků zvuku je:

  1. 96 kb/s
  2. 112 kb/s
  3. 128 kb/s
  4. 160 kb/s
  5. 192 kb/s
  6. 256 kb/s
  7. 320 kb/s

8. Odebrání audio streamu z video souboru

Pokud nechcete zvuk ze souboru videa, použijte -an vlajka.

$ ffmpeg -i input.mp4 -an output.mp4

Zde 'an' signalizuje, že není záznam zvuku. Jinými slovy, tato možnost ztlumí zvuk.

Výše uvedený příkaz vrátí zpět všechny příznaky související se zvukem.

9. Odebrání datového proudu videa z mediálního souboru

Podobně, pokud nechcete video stream, můžete jej snadno odstranit z mediálního souboru pomocí 'vn' vlajka. vn znamená žádné nahrávání videa. Jinými slovy, tento příkaz převede daný mediální soubor na zvukový soubor.

Následující příkaz odstraní video z daného mediálního souboru.

$ ffmpeg -i input.mp4 -vn output.mp3

Můžete také zmínit bitovou rychlost výstupního souboru pomocí '-ab' příznak, jak je znázorněno v následujícím příkladu.

$ ffmpeg -i input.mp4 -vn -ab 320 output.mp3

10. Extrahování obrázků z videa

Další užitečnou funkcí FFmpeg je, že můžeme snadno extrahovat obrázky z video souboru. To může být velmi užitečné, pokud chcete vytvořit fotoalbum z video souboru.

Chcete-li extrahovat obrázky ze souboru videa, použijte následující příkaz:

$ ffmpeg -i input.mp4 -r 1 -f image2 image-%2d.png

Tady,

  • -r - Nastavte snímkovou frekvenci. Tedy počet snímků, které mají být extrahovány do obrázků za sekundu. Výchozí hodnota je 25 .
  • -f - Označuje výstupní formát, tj. v našem případě formát obrázku.
  • image-%2d.png - Označuje, jak chceme extrahované obrázky pojmenovat. V tomto případě by názvy měly začínat jako image-01.png , image-02.png , image-03.png a tak dále. Pokud používáte %3d , pak názvy obrázků budou začínat jako image-001.png , image-002.png a tak dále.

11. Oříznutí videí

FFMpeg umožňuje oříznout daný mediální soubor v libovolném rozměru dle našeho výběru.

Syntaxe pro oříznutí souboru videa je uvedena níže:

ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4

Tady,

  • input.mp4 - zdrojový soubor videa.
  • -filter:v - Označuje filtr videa.
  • crop - Označuje filtr oříznutí.
  • w - Šířka obdélníku, který chceme oříznout ze zdrojového videa.
  • h - Výška obdélníku.
  • x - x souřadnice obdélníku, který chceme ze zdrojového videa oříznout.
  • y - souřadnice y obdélníku.

Řekněme, že chcete video o šířce 640 pixelů a výška 480 pixelů , z pozice (200,150 ) , příkaz by byl:

$ ffmpeg -i input.mp4 -filter:v "crop=640:480:200:150" output.mp4

Upozorňujeme, že oříznutí videí ovlivní kvalitu. Nedělejte to, pokud to není nutné.

12. Převeďte konkrétní část videa

Někdy můžete chtít převést pouze určitou část (trvání) video souboru do jiného formátu. Řekněme například, že následující příkaz převede první 10 sekund daného souboru video.mp4 do formátu video.avi.

$ ffmpeg -i input.mp4 -t 10 output.avi

Zde uvedeme čas v sekundách. Také je možné zadat čas v hh.mm.ss formát.

13. Nastavte poměr stran na video

Poměr stran video souboru můžete nastavit pomocí -aspect příznak jako níže.

$ ffmpeg -i input.mp4 -aspect 16:9 output.mp4

Běžně používané poměry stran jsou:

  • 16:9
  • 4:3
  • 16:10
  • 5:4
  • 2:21:1
  • 2:35:1
  • 2:39:1

14. Přidání obrázku plakátu do mediálních souborů

Obrázky plakátů můžete přidat do svých souborů, takže se obrázky zobrazí při přehrávání audio nebo video souborů. To by mohlo být užitečné pro hostování zvukových souborů na webových stránkách pro hostování nebo sdílení videa.

$ ffmpeg -loop 1 -i inputimage.jpg -i inputaudio.mp3 -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4

15. Ořízněte mediální soubor pomocí časů zahájení a ukončení

Chcete-li zkrátit video na menší klip pomocí časů začátku a konce, můžeme použít následující příkaz.

$ ffmpeg -i input.mp4 -ss 00:00:50 -codec copy -t 50 output.mp4

Tady,

  • --s - Označuje čas začátku videoklipu. V našem příkladu je čas zahájení 50. sekunda.
  • -t - Označuje celkovou dobu trvání.

To je velmi užitečné, když chcete vyjmout část z audio nebo video souboru pomocí počátečního a koncového času.

Podobně můžeme oříznout zvukový soubor, jak je uvedeno níže.

$ ffmpeg -i audio.mp3 -ss 00:01:54 -to 00:06:53 -c copy output.mp3

16. Rozdělte audio/video soubory na více částí

Některé webové stránky vám umožní nahrát pouze určitou velikost videa. Například Whatsapp povolí pouze 15 sekundová videa, která se mají nastavit jako stavová zpráva pro uživatele v Indii. V takových případech můžete velké video soubory rozdělit na několik menších částí, jak je uvedeno níže.

$ ffmpeg -i input.mp4 -t 00:00:30 -c copy part1.mp4 -ss 00:00:30 -codec copy part2.mp4

Zde -t 00:00:30 označuje část, která je vytvořena od začátku videa do 30. sekundy videa. -ss 00:00:30 zobrazuje počáteční časovou značku pro další část videa. To znamená, že 2. část začne od 30. sekundy a bude pokračovat až do konce původního video souboru.

Recommended Download - Free Guide: "How to Start Your Own Successful Podcast"

17. Spojení nebo sloučení více audio/video částí do jedné

FFmpeg také spojí více částí videa a vytvoří jeden soubor videa.

Vytvořte join.txt soubor, který obsahuje přesné cesty k souborům, ke kterým se chcete připojit. Všechny soubory by měly mít stejný formát (stejný kodek). Cesta ke všem souborům by měla být uvedena jeden po druhém, jak je uvedeno níže.

file /home/sk/myvideos/part1.mp4
file /home/sk/myvideos/part2.mp4
file /home/sk/myvideos/part3.mp4
file /home/sk/myvideos/part4.mp4

Nyní spojte všechny soubory pomocí příkazu:

$ ffmpeg -f concat -i join.txt -c copy output.mp4

Pokud se zobrazí chyba podobná níže;

[concat @ 0x555fed174cc0] Unsafe file name '/path/to/mp4'
join.txt: Operation not permitted

Přidejte "-safe 0" :

$ ffmpeg -f concat -safe 0 -i join.txt -c copy output.mp4

Výše uvedený příkaz se připojí k part1.mp4 , part2.mp4 , part3.mp4 a part4.mp4 soubory do jednoho souboru s názvem "output.mp4" .

Případně můžete použít následující jednořádkový příkaz ke spojení všech souborů v adresáři. Přejděte do adresáře, kde máte soubory, a spusťte následující příkaz pro spojení souborů s názvem audio1.mp3 , audio2,mp3 a audio3.mp3 do output.mp3 .

$ ffmpeg -i "concat:audio1.mp3|audio2.mp3|audio3.mp3" -c copy output.mp3

18. Přidání titulků k video souboru

Můžeme také přidat titulky k video souboru pomocí FFmpeg. Stáhněte si správné titulky pro své video a přidejte je do svého videa, jak je uvedeno níže.

$ fmpeg -i input.mp4 -i subtitle.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast output.mp4

19. Náhled nebo testování video nebo audio souborů

Možná budete chtít zobrazit náhled, abyste ověřili nebo otestovali, zda byl výstupní soubor správně překódován nebo ne. Chcete-li to provést, můžete jej přehrát ze svého terminálu příkazem:

$ ffplay video.mp4

Podobně můžete otestovat zvukové soubory, jak je uvedeno níže.

$ ffplay audio.mp3

20. Zvýšení/snížení rychlosti přehrávání videa

FFmpeg umožňuje upravit rychlost přehrávání videa.

Chcete-li zvýšit rychlost přehrávání videa, spusťte:

$ ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output.mp4

Příkaz zdvojnásobí rychlost videa.

Chcete-li video zpomalit, musíte použít násobitel větší než 1 . Chcete-li snížit rychlost přehrávání, spusťte:

$ ffmpeg -i input.mp4 -vf "setpts=4.0*PTS" output.mp4

21. Zvýšit/snížit rychlost přehrávání zvuku

Chcete-li zvýšit nebo snížit rychlost přehrávání zvuku, použijte "atempo" zvukový filtr. Následující příkaz zdvojnásobí rychlost zvuku.

$ ffmpeg -i input.mp4 -filter:a "atempo=2.0" -vn output.mp4

Můžete použít libovolnou hodnotu mezi 0.5 a 2.0 pro zvuk.

22. Vytvořte animovaný GIF

Obrázky GIF používáme téměř na všech sociálních a profesních sítích pro různé účely. Pomocí FFmpeg můžeme snadno a rychle vytvářet animované video soubory.

Následující průvodce vysvětluje, jak vytvořit animovaný soubor GIF pomocí FFmpeg a ImageMagick v systémech Linux a Unix.

  • Jak vytvořit animovaný GIF v systému Linux

Doporučené čtení:

  • Gifski – multiplatformní vysoce kvalitní kodér GIF

23. Vytvářejte videa ze souborů PDF

Během let jsem shromáždil mnoho souborů PDF, většinou linuxových výukových programů, a uložil je do svého počítače Tablet PC. Někdy si připadám líný je číst z tabletu.

Rozhodl jsem se tedy vytvořit video ze souborů PDF a sledovat ho na velké obrazovce, jako je televize nebo počítač. Pokud jste někdy přemýšleli, jak vytvořit filmový soubor ze sbírky souborů PDF, pomůže vám následující průvodce.

  • Jak vytvořit video ze souborů PDF v systému Linux

24. Otočit videa

Pokud máte videosoubory s jinou orientací (na výšku nebo na šířku), můžete je otočit, jak je popsáno v následující příručce.

  • Jak otočit videa pomocí FFMpeg z příkazového řádku

25. Převést videa do formátu videa WhatsApp

WhatsApp některá videa nepodporuje. Nemůžete je sdílet se svými kontakty ani je nastavit do stavu WhatsApp. Bez obav! Můžeme snadno převést videa ve formátu videa podporovaného WhatsApp pomocí FFmpeg, jak je popsáno v následujícím odkazu.

  • Převeďte videa do formátu videa WhatsApp pomocí FFmpeg

26. Přibližujte a oddalujte videa

FFmpeg má spoustu užitečných filtrů pro provedení konkrétního úkolu. Jedním z nich je zoompan. Pomocí zoompan filtru můžeme snadno přibližovat a oddalovat každých X sekund periodicky. Další podrobnosti naleznete na následujícím odkazu:

  • Jak přiblížit a oddálit videa pomocí FFmpeg

27. Získání nápovědy

V této příručce jsem pokryl nejběžněji používané příkazy FFmpeg. Má mnohem více různých možností k provádění různých pokročilých funkcí. Chcete-li se o něm dozvědět více, přejděte na manuálovou stránku.

$ man ffmpeg

Související čtení:

  • Výukový program YouTube-dl s příklady pro začátečníky

A to je vše. Doufám, že vám tato příručka poskytla dostatek příkladů příkazů FFmpeg, abyste mohli začít s FFmpeg.


Linux
  1. 8 Linuxových příkazů pro efektivní řízení procesů

  2. 10 Linuxových příkazů pro diagnostiku sítě

  3. YAML pro začátečníky

  1. 20 základních Linuxových příkazů pro začátečníky vysvětlených s příklady

  2. Linux pro začátečníky:10 příkazů, které vám pomohou začít na terminálu

  3. Linux pro začátečníky:10 dalších příkazů pro manipulaci se soubory

  1. Cheat sheet pro běžné linuxové příkazy

  2. Příklady příkazů DNF pro začátečníky

  3. Jak nainstalovat FFmpeg na Ubuntu 22.04