FFmpeg je opensource, výkonný audio a video konvertor. Pomocí FFmpeg můžeme kódovat, dekódovat, transkódovat, muxovat, demuxovat, nahrávat, měnit velikost, streamovat, filtrovat a přehrávat téměř všechny typy mediálních souborů. Nejen to, můžeme také zachytit živý audio/video stream. FFmpeg se dodává se spoustou filtrů pro provádění různých úkolů. Jedním z méně známých, ale užitečných filtrů je zoompan . Pomocí filtru zoompan můžeme snadno přibližovat a oddalovat videa v Linuxu. Dovolte mi ukázat vám, jak to udělat pomocí příkladu příkazu.
Ujistěte se, že jste na svůj Linux nainstalovali FFmpeg. Kroky k instalaci FFmpeg na populární operační systémy Linux jsme zdokumentovali v následujícím odkazu.
- Jak nainstalovat FFmpeg v Linuxu
Jakmile je FFmpeg nainstalován, přejděte do umístění, kam jste video uložili, a spusťte následující příkaz pro přiblížení a oddálení každých X sekund:
$ ffmpeg -i input.mp4 -vf "zoompan=z='if(lte(mod(time,10),3),2,1)':d=1:x=iw/2-(iw/zoom/2):y=ih/2-(ih/zoom/2):fps=30" output.mp4
Výše uvedený příkaz přiblíží střed videa na 2x přiblížení na první 3 sekundy každých 10 sekund bloku času. Nahraďte input.mp4
s vaším názvem souboru. Upravte také hodnoty podle svých požadavků a nastavte FPS pro filtr tak, aby odpovídala vstupu. Výchozí hodnota je 25.
Podrobnosti o FPS můžete najít mezi dalšími podrobnostmi daného videa pomocí následujícího příkazu:
$ ffmpeg -i input.mp4

Zde je aktuální vstupní video před konverzí:
A zde je převedené (přiblížení a oddálení) video:
Všimli jste si rozdílu? Video se během prvních 3 sekund přiblíží 2X a poté se vrátí do normálu (oddálení). Přesně v 10. sekundě se video znovu přiblíží na první 3 sekundy a cyklus pokračuje, dokud video neskončí.
Můžete také vyzkoušet následující nastavení zoompanu uvedená v nápovědě k filtru zoompan FFmpeg.
Přibližte až 1,5x a současně posuňte na nějaké místo blízko středu obrázku:
zoompan=z='min(zoom+0.0015,1.5)':d=700:x='if(gte(zoom,1.5),x,x+1/a)':y='if(gte(zoom,1.5),y,y+1)':s=640x360
Přiblížení až 1,5x a posouvání vždy ve středu obrázku:
zoompan=z='min(zoom+0.0015,1.5)':d=700:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
Stejné jako výše, ale bez pauzy:
zoompan=z='min(max(zoom,pzoom)+0.0015,1.5)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
Přiblížení 2x do středu obrazu pouze na první sekundu vstupního videa:
zoompan=z='if(between(in_time,0,1),2,1)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
Další příklady příkazů FFmpeg naleznete v následující příručce:
- 20+ FFmpeg příkazů pro začátečníky
Doufám, že to pomůže.