GNU/Linux >> Znalost Linux >  >> Linux

Kompletní průvodce pro použití ffmpeg v Linuxu

Stručně:Tento podrobný průvodce ukazuje, jak nainstalovat ffmpeg v Ubuntu a dalších distribucích Linuxu. Také ukazuje některé užitečné příkazy ffmpeg pro praktické použití.

ffmpeg je nástroj CLI (založený na příkazovém řádku) pro zpracování mediálních souborů. Jedná se o framework s množstvím funkcí a díky své open source licenci je základem pro mnoho rozšířených aplikací, jako jsou VLC, YouTube, iTunes a mnoho dalších. Řada linuxových video editorů používá ffmpeg pod GUI.

Co na ffmpeg miluji ještě víc spočívá v tom, že jej lze použít samostatně k provádění mnoha úloh zpracování velmi jednoduchým způsobem (s jedním nebo dvěma příkazy). Je to však velmi výkonný program, který lze použít složitějšími způsoby a dokonce nahradit pracovní postup úprav.

V tomto tutoriálu ffmpeg vám ukážu, jak nainstalovat ffmpeg a budu pokrývat jeho různá použití. Dokonce se dostanu k některým složitějším funkcím.

Zde jsou sekce této příručky:

  • Instalace ffmpeg
  • Základní použití ffmpeg
  • Pokročilé použití ffmpeg
  • Základy filtrování

Vše vysvětlím podrobně, abyste pochopili, co se děje, i když jste ve světě Linuxu nováčci.

Budu používat Ubuntu 18.04 , ale tyto příkazy by měly fungovat i pro jiné distribuce.

Poznámka: Přestože jsem prozkoumal ffmpeg důkladně a otestoval vše, co v tomto článku zmíním, videa (ani jiná média) neupravuji denně. Pokud máte nějaké návrhy, tipy nebo opravy, dejte mi vědět v komentářích!

Jdeme na to!

Instalace ffmpeg na Ubuntu a další Linux

Instalace ffmpeg je přímočarý proces. Je to populární aplikace a je k dispozici ve většině distribucí Linuxu prostřednictvím správce balíčků.

Nainstalujte ffmpeg v Ubuntu

V Ubuntu je ffmpeg k dispozici v úložišti Universe, takže nezapomeňte povolit úložiště vesmíru. a poté aktualizujte seznam balíčků a nainstalujte ffmpeg. To vše můžete provést pomocí níže uvedených příkazů v terminálu:

sudo add-apt-repository universe
sudo apt update
sudo apt install ffmpeg

To by mělo být ono! Instalaci můžete ověřit jednoduchým zadáním:

ffmpeg

Měl by se zobrazit text popisující váš ffmpeg konfigurace (včetně verze ).

Jak můžete vidět na snímku obrazovky výše, nainstalovaná verze je 3.4.4 . Nicméně nejnovější verze z ffmpeg v době psaní tohoto článku je 4.1 . Chcete-li nainstalovat libovolný 4.x verze, budete muset použít ffmpeg ppa . Kliknutím rozbalíte další sekci a zobrazíte podrobnosti o instalaci ffmpeg přes PPA.

Nainstalujte nejnovější ffmpeeg v distribucích založených na Ubuntu s PPA

Existuje neoficiální PPA, kterou můžete použít k instalaci nejnovější verze ffmpeg. Jednoduše použijte tyto příkazy:

sudo add-apt-repository ppa:jonathonf/ffmpeg-4
sudo apt update
sudo apt install ffmpeg -y

Nainstalujte ffmpeg v distribucích založených na Arch

Chcete-li nainstalovat ffmpeg v distribucích založených na Arch, použijte následující příkaz:

sudo pacman -S ffmpeg

Nainstalujte ffmpeg v distribucích založených na Fedoře

Chcete-li nainstalovat ffmpeg v distribucích Linuxu založených na Fedoře, můžete použít tento příkaz:

sudo dnf install ffmpeg

Jak používat ffmpeg:Základy

Pomocí ffmpeg nainstalovaný, projdu základní příkazy, abyste mohli začít používat tento výkonný nástroj.

0. Příkazy ffmpeg

Základní formulář příkaz ffmpeg je:

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

Musíte mít na paměti, že všechny možnosti souboru se vztahují pouze na soubor, který za nimi následuje (pro další soubor je budete muset zapsat znovu).

Jakýkoli soubor, kterému nepředchází -i je považován za výstupní soubor. Ffmpeg používá tolik vstupů a výstupů, kolik poskytnete. Můžete také použít stejný název pro vstupní i výstupní soubor, ale budete muset přidat -y tag před názvem výstupního souboru.

Poznámka

Neměli byste míchat vstupy a výstupy; určete nejprve vstupní soubory a poté výstupní soubory.

1. Získejte informace o mediálním souboru

První použití ffmpeg zobrazuje informace o mediálním souboru. Toho lze dosáhnout nezadáním žádných výstupních souborů. Jednoduše napište:

ffmpeg -i file_name

Toto funguje pro audio i video soubory:

ffmpeg -i video_file.mp4 
ffmpeg -i audio_file.mp3

Přestože je tento příkaz užitečný, zobrazí příliš mnoho informací, které nejsou pro váš soubor relevantní (informace o ffmpeg). Chcete-li to vynechat, přidejte -hide_banner příznak:

ffmpeg -i video_file.mp4 -hide_banner 
ffmpeg -i audio_file.mp3 -hide_banner

Jak můžete vidět, příkaz nyní vypisuje pouze podrobnosti týkající se mediálního souboru, který jste zadali (kodér, streamy atd.).

2. Převést mediální soubory

Další velmi užitečný způsob použití ffmpeg je pro bezproblémovou konverzi mezi různými formáty médií. Musíte pouze zadat vstupní a výstupní soubory, protože ffmpeg získá požadovaný formát z přípon souborů. Toto funguje pro konverzi videa na video a audio na zvuk.

Zde je několik příkladů:

ffmpeg -i video_input.mp4 video_output.avi 
ffmpeg -i video_input.webm video_output.flv
ffmpeg -i audio_input.mp3 audio_output.ogg
ffmpeg -i audio_input.wav audio_output.flac

Můžete dokonce zadat více výstupních souborů:

ffmpeg -i audio_input.wav audio_output_1.mp3 audio_output_2.ogg

Tím převedete vstupní soubory do všech specifikovaných formátů.

Chcete-li zobrazit seznam všech podporovaných formátů, použijte:

ffmpeg -formats

Opět můžete přidat -hide_banner vynechat informace o aplikaci.

Můžete zadat -qscale 0 parametr před výstupním souborem pro zachování kvality video souboru:

ffmpeg -i video_input.wav -qscale 0 video_output.mp4

Kromě toho můžete zadat kodeky které chcete použít, přidáním -c:a (pro zvuk ) a -c:v (pro video ) následovaný názvem kodeků nebo kopírovat pokud chcete použít stejné kodeky jako původní soubor:

ffmpeg -i video_input.mp4 -c:v copy -c:a libvorbis video_output.avi

Poznámka: To může způsobit, že přípona souboru bude poněkud zavádějící, takže buďte opatrní.

3. Extrahovat zvuk z videa

Chcete-li extrahovat zvuk z video souboru provedete jednoduchý převod a přidáte -vn příznak:

ffmpeg -i video.mp4 -vn audio.mp3

Upozorňujeme, že tento příkaz bude využívat bitovou rychlost původního souboru. Je dobré si to nastavit sami; můžete použít -ab (přenosová rychlost zvuku):

ffmpeg -i video.mp4 -vn -ab 128k audio.mp3

Některé běžné přenosové rychlosti jsou 96 k, 128 k, 192 k, 256 k, 320 k (nejvyšší datový tok podporovaný mp3).

Další běžné možnosti jsou -ar (frekvence zvuku :22050, 441000, 48000), -ac (počet audio kanálů ), -f (formát zvuku , i když je normálně detekován automaticky). -ab lze také nahradit -b:a . Například:

ffmpeg -i video.mov -vn -ar 44100 -ac 2 -b:a 128k -f mp3 audio.mp3

4. Ztlumit zvuk ve videu

Podobně jako u posledního úkolu přidáme jednoduchý tag:-an (místo -vn ).

ffmpeg -i video_input.mp4 -an -video_output.mp4

Poznámka: Značka -an tag způsobí, že všechny možnosti zvuku pro tento výstupní soubor budou zbytečné, protože ve výsledku operace nebude žádný zvuk.

5. Extrahujte obrázky z videa

To se může mnoha lidem hodit. Můžete mít například sérii obrázků (např. prezentaci) a chcete z ní dostat všechny obrázky. Jednoduše zadejte:

ffmpeg -i video.mp4 -r 1 -f image2 image-%3d.png

Pojďme to na chvíli rozebrat.

-r určuje snímkovou frekvenci (kolik snímků je extrahováno do obrázků za jednu sekundu, výchozí :25), -f určuje výstupní formát (image2 ve skutečnosti znamená sekvenci obrazu 2.

Poslední parametr (výstupní soubor) má poněkud zajímavé pojmenování:používá %3d na konci. To jednoduše očísluje vaše snímky 3 číslicemi (000, 001 atd.). Můžete také použít %2d (dvoumístný formát) nebo dokonce %4d (4místný formát), pokud chcete. Nebojte se experimentovat a použijte cokoliv, co vám vyhovuje!

Poznámka: Existuje také způsob, jak změnit sadu obrázků na video/prezentaci. Uvedu to v části Pokročilé použití oddíl .

6. Změňte rozlišení videa nebo poměr stran

Další jednoduchý úkol pro ffmpeg . Jediné, co musíte udělat, je změnit velikost u videa se za -s specifikuje nové rozlišení příznak:

ffmpeg -i video_input.mov -s 1024x576 video_output.mp4

Kromě toho můžete chtít zadat -c:a abyste se ujistili, že zvukové kodeky výstupního souboru jsou správné:

ffmpeg -i video_input.h264 -s 640x480 -c:a video_output.mov

Můžete také změnit poměr stran pomocí -aspect :

ffmpeg -i video_input.mp4 -aspect 4:3 video_output.mp4

Poznámka: Další o něco výkonnější metoda bude zmíněna v části Pokročilé použití sekce.

7. Přidat obrázek plakátu do zvuku

Je to skvělý způsob, jak přeměnit zvuk na video , s použitím jedné fotografie (například obalu alba) pro zvuk. Toto je velmi užitečná funkce, když chcete nahrávat zvukové soubory na stránky, které neumožňují nic jiného než video/obrázky (dva příklady takových stránek jsou YouTube a Facebook).

Zde je příklad:

ffmpeg -loop 1 -i image.jpg -i audio.wav -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4

Stačí změnit kodeky (-c:v určuje video kodeky, -c:a určuje audio kodeky) a názvy vašich souborů.

Poznámka: Nemusíte používat -strict experimental pokud používáte novější verzi (4.x ).

8. Přidat k videu titulky

Stejně užitečné a jednoduché s ffmpeg je přidat titulky na video (například film). Zadejte následující:

ffmpeg -i video.mp4 -i subtitles.srt -c:v copy -c:a copy -preset veryfast -c:s mov_text -map 0 -map 1 output.mp4

Samozřejmě můžete zadat libovolné kodeky, které chcete (a jakékoli další další možnosti týkající se zvuku/videa). Tento článek o úpravě titulků v Linuxu si můžete přečíst graficky.

9. Komprimovat mediální soubory

Komprese soubory výrazně snižuje velikost souboru, což vám ušetří spoustu místa. To může být důležité pro přenos souborů. Pomocí ffmpeg , existuje několik metod, jak zmenšit velikost souboru.

Poznámka: Přílišná komprimace souborů znatelně sníží kvalitu výsledného souboru.

Především pro audio soubory, jednoduše zmenšit bitová rychlost (pomocí -b:a nebo -ab ):

ffmpeg -i audio_input.mp3 -ab 128k audio_output.mp3
ffmpeg -i audio_input.mp3 -b:a 192k audio_output.mp3

Opět některé různé hodnoty bitové rychlosti jsou:96k, 112k, 128k, 160k, 192k, 256k, 320k. Čím vyšší je přenosová rychlost, tím vyšší je velikost souboru a kvalita.

Pro video souborů, máte více možností. Jedním ze způsobů by bylo snížení bitové rychlosti videa (pomocí -b:v ):

ffmpeg -i video_input.mp4 -b:v 1000k -bufsize 1000k video_output.mp4

Poznámka: Přenosové rychlosti videa jsou různé z přenosových rychlostí zvuku (mnohem vyšší hodnoty).

Můžete nastavit -crf příznak (Faktor konstantní rychlosti ). Nižší crf znamená vyšší přenosovou rychlost. Také pomocí libx264 jako video kodek pomáhá. Zde je velmi efektivní zmenšení velikosti s velmi malým snížením kvality:

ffmpeg -i video_input.mp4 -c:v libx264 -crf 28 video_output.mp4

crf 20 až 30 je běžné, ale klidně si pohrajte s konkrétní hodnotou.

Snížení snímkové frekvence může v některých případech fungovat (ačkoli to může velmi snadno způsobit zpomalení videa):

ffmpeg -i video_input.mp4 -r 24 video_output.mp4

-r určuje snímkovou frekvenci (v tomto případě 24 ).

Můžete také zkusit zmenšit velikost videa (již vysvětleno, jak na to). Dalším tipem jekomprimovat audio také, díky čemuž je stereo a snížení bitové rychlosti . Například:

ffmpeg -i video_input.mp4 -c:v libx264 -ac 2 -c:a aac -strict -2 -b:a 128k -crf 28 video_output.mp4

Poznámka: -strict -2 a -ac 2 postarejte se o stereo část. Část, která snižuje přenosovou rychlost, jsem již popsal .

10. Vyjmout mediální soubory (základní)

Chcete-li oříznout soubory od začátku musíte zadat trvání pomocí -t :

ffmpeg -i input_video.mp4 -t 5 output_video.mp4 
ffmpeg -i input_audio.wav -t 00:00:05 output_audio.wav

Jak vidíte, funguje to pro obě videa a zvuk soubory. Oba výše uvedené příkazy dělají totéž:uložte prvních 5 sekund vstupního souboru do výstupního souboru. Zvykl jsem si na různé způsoby zadávání trvání :jedno číslo (počet sekund) a HH:MM:SS (hodiny, minuty, sekundy). Druhá verze funguje spíše jako čas ukončení .

Zadáním času zahájení můžete jít ještě dále pomocí -ss a dokonce i čas ukončení s -to :

ffmpeg -i input_audio.mp3 -ss 00:01:14 output_audio.mp3
ffmpeg -i input_audio.wav -ss 00:00:30 -t 10 output_audio.wav
ffmpeg -i input_video.h264 -ss 00:01:30 -to 00:01:40 output_video.h264
ffmpeg -i input_audio.ogg -ss 5 output_audio.ogg

Můžete vidět čas zahájení (-ss HH:MM:SS ), trvání (-t trvání ) v sekundách, čas ukončení (-na HH:MM:SS ) a čas zahájení (-s trvání ) v sekundách (začíná po trvání). sekund).

Všechny tyto příkazy jsou platné a můžete pomocí nich pracovat s jakoukoli částí mediálního souboru.

Jak používat ffmpeg:Pokročilé použití

Nyní se budu věnovat trochu pokročilejším funkcím (jako je odlévání obrazovky, používání zařízení atd.). Pojďme rovnou k prvnímu bodu!

1. Rozdělit mediální soubory

Již jsem se zabýval ořezáváním soubory. Co musíte udělat, abyste se rozdělili soubor na více částí je zadat více oříznutí (s uvedením časů zahájení , časy ukončení nebo trvání před každým výstupním souborem).

Podívejte se na tento příklad:

ffmpeg -i video.mp4 -t 00:00:30 video_1.mp4 -ss 00:00:30 video_2.mp4

Syntaxe je celkem jednoduchá. Zadal jsem -t 00:00:30 jako trvání pro první část (první část se bude skládat z prvních 30 sekund původního videa). Dále jsem uvedl, že chci, aby zbytek byl součástí druhého videa (počínaje koncem poslední části, 00:00:30 ).

To lze provést pro tolik dílů, kolik chcete! Užijte si hraní s touto funkcí, protože je velmi výkonná. Mějte na paměti, že to funguje i se zvukem.

2. Zřetězit mediální soubory

ffmpeg může také provést opačný proces:skládat více částí dohromady.

Chcete-li tak učinit, musíte vytvořit nový textový soubor a začněte upravovat pomocí preferovaného editoru.

Protože rád používám terminál, budu používat dotykové a vim . Nezáleží na tom, jak tento soubor nazýváte. Zavolám svůj join.txt a vytvořte soubor pomocí dotyku :

touch videos_to_join.txt

Nyní jej upravím pomocí vim :

vim videos_to_join.txt

Můžete použít jakékoli nástroje, které chcete (nano, gedit atd.), to je pro mě nejjednodušší.

Zde zadejte úplné cesty ke všem souborům, ke kterým se chcete připojit (budou spojeny v pořadí, v jakém je zde napíšete), jeden na řádek. Ujistěte se, že mají stejnou příponu (např. mp4 ). Tady je můj:

/home/ubuntu/Desktop/video_1.mp4
/home/ubuntu/Desktop/video_2.mp4
/home/ubuntu/Desktop/video_3.mp4

Uložte soubor, který jste právě upravili. Tato metoda funguje pro všechny audio nebo video soubory.

Nyní zadejte následující:

ffmpeg -f concat -i join.txt output.mp4

Poznámka: Můj výstupní soubor je output.mp4 , ale je to proto, že všechny mé vstupní soubory mají mp4 rozšíření.

Toto by se mělo připojit všechny soubory, které jste si zapsali do join.txt (nebo jak jste tento soubor pojmenovali) do jednoho výstupního souboru.

3. Sloučení obrázků do videa

Takto můžete sestavit slideshow nebo něco podobného. Ukážu vám, jak přidat zvuk taky.

První věc, kterou doporučuji udělat, je ujistit se, že fotografie, které chcete dát dohromady, jsou umístěny ve stejném adresáři. Své fotky vložím do adresáře s názvem my_photos . rozšíření doporučené pro obrázky jsou .png a .jpg . Ať už zvolíte kterýkoli, ujistěte se, že všechny obrázky mají stejnou příponu (v opačném případě použijte ffmpeg může mít nezamýšlené účinky). Můžete jednoduše konvertovat soubor .png soubory do .jpg nebo naopak (viz Základní použití ).

Formát (-f ) našeho převodu by měl být image2pipe . Pro vstup budete muset zadat pomlčku ( ). Co image2pipe vám umožňuje udělat je potrubí (pomocí | v terminálu) výsledky příkazu, jako je cat do ffmpeg místo zadávání všech jmen po jednom. To je přesně to, co udělám. Aby to fungovalo, musíme také zmínit, že chceme video kodeky k zkopírování (-c:v kopie ) (pro správné použití obrázků):

cat my_photos/* | ffmpeg -f image2pipe -i - -c:v copy video.mkv

Při přehrávání tohoto souboru si možná myslíte, že do prezentace byly přidány pouze některé obrázky. Ve skutečnosti byly přidány všechny vaše obrázky, ale ffmpeg prochází jimi co nejrychleji. To znamená 1 snímek na fotografii; ffmpeg (ve výchozím nastavení) běží rychlostí přibližně 23 snímků za sekundu .

Chcete-li to změnit, budete muset zadat snímkovou frekvenci (-framerate ), které chcete:

cat my_photos/* | ffmpeg -framerate 1 -f image2pipe -i - -c:v copy video.mkv 

V mém příkladu jsem nastavil snímkovou frekvenci do 1 , to znamená, že každý snímek (to znamená také každý obrázek) se zobrazí na 1 sekundu .

Chcete-li přidat zvuk , jako je skladba na pozadí, budeme muset zadat zvukový soubor jako vstupní soubor (-i zvukový_soubor ) a zkopírujte audio kodeky (-c:kopie ). Pro kodeky , můžete kopírovat audio i video kodeky současně pomocí -c copy . Ujistěte se, že jste nastavili kodeky těsně před určením výstupního souboru. Můžete také nastavit snímkovou frekvenci aby se všechny vaše obrázky synchronizovaly s dobou trvání zvuku, který chcete použít. Chcete-li to získat, rozdělte počet obrázků podle doby trvání zvuku (v sekundách) . Pro můj příklad mám 22 sekund dlouhý zvukový soubor a 9 obrázků. 9/22 je přibližně 0,40, takže to je to, co použiji pro svou snímkovou frekvenci:

cat my_photos/* | ffmpeg -framerate 0.40 -f image2pipe -i - -i audio.wav -c copy video.mkv

4. Zaznamenejte si obrazovku

Vysílání pomocí ffmpeg není těžká práce. Formát (-f ), který musíte použít, je x11grab . Tím se zachytí váš XSERVER . Jako vstup budete muset zadat číslo zobrazení obrazovky (hlavní obrazovka by normálně měla být 0:0 ). Tím však zachytíte pouze levou horní část obrazovky. Měli byste přidat velikost obrazovky (-s ). Moje je 1920×1080 . Velikost obrazovky by měl být zmíněn před vstup :

ffmpeg -f x11grab -s 1920x1080 -i :0.0 output.mp4

Stiskněte q nebo CTRL+C kdykoli přestat screencast .

Bonusový trik: Velikost výstupního souboru můžete nastavit na celou obrazovku se zadáním tohoto pro velikost (místo 1920×1080 nebo jakéhokoli jiného nastaveného rozlišení):

-s $(xdpyinfo | grep dimensions | awk '{print $2;}')

Zde je úplný příkaz:

ffmpeg -f x11grab -s $(xdpyinfo | grep dimensions | awk '{print $2;}') -i :0.0 output.mp4

5. Nahrajte si webovou kameru

Vstup nahrávání z vaší webové kamery (nebo jiné zařízení, taková usb kamera) je ještě jednodušší. V systému Linux zařízení jsou obchody v /dev jako /dev/video0, /dev/video1 atd. :

ffmpeg -i /dev/video0 output.mkv

Opět q nebo CTRL+C pro zastavení nahrávání .

6. Nahrajte si zvuk

Linux zpracovává zvuk především prostřednictvím ALSA a pulseaudio . ffmpeg může nahrávat obojí, ale budu se zabývat pulseaudio , protože distribuce založené na Debianu jej standardně obsahují. Syntaxe těchto dvou metod je trochu odlišná.

Pro pulseaudio , musíte vynutit (-f ) alsa a zadejte výchozí jako vstup (-i výchozí ):

ffmpeg -f alsa -i default output.mp3

Poznámka: V nastavení distribuce zvuku zkontrolujte, zda je výchozí nahrávací zařízení je ten, který chcete zaznamenat.

Hraju docela hodně na kytaru a mám audio rozhraní, abych to mohl nahrávat. Byl jsem příjemně překvapen, když ffmpeg nahrál moji kytaru bez problémů.

Bonusové tipy pro nahrávání

Pro jakýkoli typ záznamu můžete také určit kodeky , samozřejmě (již pokryto). Můžete si vybrat konkrétní snímkovou frekvenci (-r ). Můžete kombinovat nahrávání zvuku také pomocí webové kamery/obrazovky!

ffmpeg -i /dev/video0 -f alsa -i default -c:v libx264 -c:a flac -r 30 output.mkv

Místo nahrávání zvuku můžete stejně snadno přidávat zvukový soubor jako vstup, který se má nahrát na obrazovku/webovou kameru:

ffmpeg -f x11grab -s $(xdpyinfo | grep dimensions | awk '{print $2;}') -i :0.0 -i audio.wav -c:a copy output.mp4

Poznámka: ffmpeg záznamy po malých kouscích, takže opravdu malá nahrávka se nemusí uložit. Doporučuji nahrávat jen o něco déle a poté to oříznout (pokud chcete jen pár sekund), abyste se ujistili, že soubor bude skutečně zapsán na váš disk.

Základní použití filtrů v ffmpeg

Filtry jsou neuvěřitelně výkonnou funkcí ffmpeg . Existuje šílené množství filtrů máte k dispozici k použití, takže ffmpeg zcela schopné zvládnout jakoukoli úpravu potřeby. Protože existuje tolik filtrů a tento článek je již obsáhlý, budu se zabývat pouze některými jednoduchými filtry.

Základní struktura pro použití filtru je:

ffmpeg -i input.mp4 -vf "filter=setting_1=value_1:setting_2=value_2,etc" output.mp4
ffmpeg -i input.wav -af "filter=setting_1=value_1:setting_2=value_2,etc" output.wav

Jak vidíte, určuji filtry videa (-vf , zkratka pro -filter:v ) a zvukové filtry (-af , zkratka pro -filtr:a ). Vlastní filtry jsou napsány uvnitř dvojitých uvozovek ( ) a lze je zřetězit tak, že je oddělíte čárkami (, ). Můžete zadat tolik filtrů, kolik chcete (napsal jsem atd abyste si všimli dalších filtrů, ve skutečnosti není součástí příkazu).

Obecný formulář filtru je:

filter=setting_2=value_2:setting_2=value_2

Různá nastavení filtru a jejich hodnoty jsou odděleny dvojtečkami .

Můžete také provádět matematické operace jako hodnoty pro různá nastavení .

Poznámka: Podrobnější pokrytí různých konstant, které mají být použity ve výrazech a různých nastaveních, lze nalézt v oficiálních Dokumentace filtru ffmpeg .

Budu se zabývat oběma videy a zvuk filtry. Podívejme se na několik příkladů!

1. Měřítko videa

Jedná se o velmi jednoduchý filtr. Jediné nastavení jsou šířka a výška :

ffmpeg -i input.mp4 -vf "scale=w=800:h=600" output.mp4

Zmínil jsem, že můžete používat matematické operace pro hodnoty taky:

ffmpeg -i input.mkv -vf "scale=w=1/2*in_w:h=1/2*in_h" output.mkv

Tento příkaz nastavuje velikost výstupu na polovinu (1/2 ) velikost vstupu (v_w , v_h ).

2. Oříznutí videa

Pokud jde o filtr měřítka , nastavení jsou šířka a výška výsledného souboru. Volitelně můžete zadat souřadnice pro levý horní roh řezu (výchozí: střed vstupního videa):

ffmpeg -i input.mp4 -vf "crop=w=1280:h=720:x=0:y=0" output.mp4 
ffmpeg -i input.mkv -vf "crop=w=400:h=400" output.mkv

Jak bylo uvedeno, druhý řez bude řez ve středu vstupního souboru (protože jsem nezadal x a y souřadnice pro levý horní roh). První příkaz vyřízne z levého horního rohu (x=0:y=0 ).

Zde je příklad, který používá matematické výrazy jako hodnoty :

ffmpeg -i input.mkv -vf "crop=w=3/4*in_w:h=3/4*in_h" output.mkv

Tento příkaz nastavuje velikost výstupu do 3/4 vstupní velikosti (v_w , v_h ).

3. Otočení videa

Můžete také otočit video ve směru hodinových ručiček podle hodnoty (v radiánech ). Pro usnadnění můžete zadat hodnotu ve stupních a převeďte jej na radiány násobením tuto hodnotu s PI/180 :

ffmpeg -i input.avi -vf "rotate=90*PI/180" 
ffmpeg -i input.mp4 -vf "rotate=PI"

První příkaz se otočí video 90 stupňů ve směru hodinových ručiček . Druhý příkaz se otočí video vzhůru nohama (PI rad =180 stupňů).

4. Přemapování zvukového kanálu

To může být užitečné, pokud nějakým způsobem získáváte pouze zvuk v pravém uchu nebo něco podobného. Můžete vytvořit zvuk slyšitelný z obou uší (v tomto konkrétním případě) takto:

ffmpeg -i input.mp3 -af "channelmap=1-0|1-1" output.mp3

Toto mapuje vpravo (1 ) audio kanál vlevo (0 ) a vpravo (1 ) audio kanál. (levé číslo představuje vstup , správné číslo představuje výstup ).

5. Násobení hlasitosti zvuku

Můžete násobit hlasitost zvuku jakýmkoli skutečným číslo (celé nebo ne). Stačí zadat násobitel :

ffmpeg -i input.wav -af "volume=1.5" output.wav 
ffmpeg -i input.ogg -af "volume=0.75" output.ogg

První příkaz zesiluje hlasitost 1,5 časy. Druhý příkaz vytvoří zvuk 1/4 (0,25) krát tišší .

Bonusový tip:Úpravy rychlosti přehrávání

Zahrnu obě video (neovlivňuje zvuk) a audio filtry pro tento úkol.

1. Video

Filtr pro video je nastavení (PTS =časové razítko prezentace). Funguje to poněkud zajímavým způsobem. Protože ve skutečnosti upravujeme PTS , větší koeficient znamená pomalejší výsledek a naopak:

ffmpeg -i input.mkv -vf "setpts=0.5*PTS" output.mkv 
ffmpeg -i input.mp4 -vf "setpts=2*PTS" output,mp4

Jak jsem právě vysvětlil, první příkaz zdvojnásobí rychlost přehrávání a druhý příkaz zpomalí video do 1/2 rychlosti .A

2. Audio

Filtrem je atempo . Je tu jedno malé upozornění:může nabývat pouze hodnot mezi 0,5 (poloviční rychlost) a 2 (dvojnásobná rychlost). Chcete-li to obejít, můžete řetězit atempo filtry:

ffmpeg -i input.wav -af "atempo=0.75" output.wav 
ffmpeg -i input.mp3 -af "atempo=2.0,atempo=2.0" ouutput.mp3

The first command slows the audio by 1/4 of the original speed. The second command speeds up the audio 4 times (2*2).

Poznámka: For changing video and audio playback speed with the same command you’ll have to look into filtergraphs .

Zabalení

In this comprehensive guide I covered the installation, basic usage, advanced usage and basics of filters.

I hope that this can be a helpful resource for anyone looking to try out ffmpeg , for someone that wants to use ffmpeg for multiple tasks or even just for someone who is willing to get more familiar with the extensive features of this amazing utility.

Let us know if you found this article useful in the comments below and tell us what are you using ffmpeg for! We look forward to any additions of any kind. Thanks for reading our blog and keep an eye out for an article covering more complex filtering . Užijte si to!



Linux
  1. Kompletní průvodce pro použití AsciiDoc v Linuxu

  2. Nainstalovat WordPress na Rocky Linux 8 pomocí zásobníku LAMP - Průvodce krok za krokem?

  3. Kompletní průvodce LVM v Linuxu pro začátečníky

  1. 7 praktických triků pro použití příkazu wget pro Linux

  2. Průvodce linuxovým terminálem pro začátečníky

  3. Instalujte Linux Mint 19 na VirtualBox:Kompletní průvodce

  1. Tipy pro použití příkazu top v Linuxu

  2. Jak nainstalovat Void Linux:Kompletní průvodce krok za krokem

  3. Jak nainstalovat FFmpeg v Linuxu