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!