GNU/Linux >> Znalost Linux >  >> Linux

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

Dnes jsem se rozhodl připojit k videím pořízeným z mého smartphonu a vytvořit jeden soubor podobný filmu se zvukem. Jde ale o to, že některá videa jsou natočena na výšku a některá na šířku. Před spojením souborů jsem si myslel, že by bylo lepší zarovnat všechny video soubory ve stejné orientaci (tj. režim). Samozřejmě existuje mnoho nástrojů založených na grafickém uživatelském rozhraní a přehrávače médií, jako je Smplayer, VLC, mají vestavěnou funkci pro otáčení videí. Ale dávám přednost nástroji příkazového řádku. Vím, jak používat FFMpeg k provádění různých operací, jako je převod souborů do jiného formátu, ořezávání, rozdělování a spojování souborů a mnoho dalších. Již jsem zkompiloval nejběžněji používané příkazy FFMpeg pro začátečníky a zveřejnil je v této příručce . Otáčet videa pomocí FFMpeg však dodnes nevím. Pokud jste někdy chtěli otáčet videa pomocí FFMpeg, postupujte podle níže uvedených kroků.

Ujistěte se, že máte v systému nainstalovanou nejnovější verzi FFMpeg. FFMpeg je k dispozici ve výchozích repozitářích mnoha oblíbených operačních systémů Linux, takže instalace nebude velký problém. Pokud jste do svého Linuxového boxu nenainstalovali FFMpeg, postupujte podle následujícího průvodce.

  • Jak nainstalovat FFMpeg v systému Linux

Otáčení videí pomocí FFMpeg z příkazového řádku

FFMpeg má funkci nazvanou "Transpose" který se používá k otáčení videí. Pomocí této funkce můžeme snadno otáčet videa ve směru a proti směru hodinových ručiček a také je převrátit svisle a vodorovně.

Například následující příkaz otočí dané video o 90 stupňů ve směru hodinových ručiček:

$ ffmpeg -i input.mp4 -vf "transpose=1" output.mp4

Nebo použijte tento příkaz:

$ ffmpeg -i input.mp4 -vf "transpose=clock" output.mp4

Zde transpose=1 parametr dává pokyn FFMpeg k transpozici daného videa o 90 stupňů ve směru hodinových ručiček. Zde je seznam dostupných parametrů pro funkci transpozice.

  • 0 - Otočte o 90 stupňů proti směru hodinových ručiček a překlopte svisle. Toto je výchozí .
  • 1 - Otočit o 90 stupňů ve směru hodinových ručiček.
  • 2 - Otočit o 90 stupňů proti směru hodinových ručiček.
  • 3 – Otočte o 90 stupňů ve směru hodinových ručiček a překlopte svisle.

Chcete-li otočit videa o 180 stupňů ve směru hodinových ručiček, musíte dvakrát zmínit parametr transpozice, jak je uvedeno níže.

$ ffmpeg -i input.mp4 -vf "transpose=2,transpose=2" output.mp4

Výše uvedené příkazy znovu zakódují audio a video části daného video souboru. Pokud nechcete video znovu kódovat a měnit otočení pouze v metadatech, použijte místo toho tento příkaz:

$ ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=90 output.mp4

Ještě lepší je, že můžete zkopírovat všechna globální metadata (jako je datum, detaily kamery) vstupního souboru do výstupního souboru, jak je uvedeno níže.

$ ffmpeg -i input.mp4 -map_metadata 0 -metadata:s:v rotate="90" -codec copy output.mp4

Vezměte prosím na vědomí, že to nefunguje v některých přehrávačích, které nezvládají rotaci metadat. Změnil jsem orientaci videa pouze v metadatech a přehrál jsem je ve Smplayeru. Ale stále přehrávalo video v předchozí orientaci. Ale fungovalo to v přehrávači médií Gnome! nevím proč. Pokud tedy orientace videa nefungovala, možná jej budete muset znovu zakódovat, jak je znázorněno v prvním příkazu.

Doporučené čtení:

  • Jak zobrazit metadata obrázků v systému Linux

Linux
  1. Jak extrahovat dobu trvání z výstupu ffmpeg?

  2. Jak převést videa m4v a wmv do formátu mp4 pomocí ffmpeg?

  3. Jak zastavit nginx v používání portu 80

  1. Jak ovládat přehrávače médií z příkazového řádku v Linuxu

  2. Jak sestavit balíčky ze zdroje pomocí CheckInstall

  3. Jak upgradovat Fedoru 34 z Fedory 33 pomocí DNF

  1. Jak upgradovat na Fedoru 23 z Fedory 22 pomocí DNF

  2. Jak znovu zkompilovat Apache pomocí EasyApache z WHM?

  3. Jak programově vytvářet videa?