Strih s FFmpeg

FFmpeg je kolekcia slobodného software, ktorý slúži na editovanie, streamovanie a konverziu multimediálneho obsahu. FFmpeg je multiplatformový a je ho možné skompilovať aj pre MS Windows. My sme ale od linuxu, preto sa zameriame na linuxovú časť.

Inštalácia FFmpeg

sudo add-apt-repository ppa:jonathonf/ffmpeg-4
sudo apt-get update
sudo apt-get install ffmpeg
ffmpeg -version
ffmpeg version 4.1.3-0york1~14.04 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.4)

K inštalácii to je tak asi všetko. Posledný príkaz nám vytlačí nainštalovanú verziu FFmpeg. V našom prípade je to ver. 4.1.3-0york1~14.04

Prečo FFmpeg?

Čo ma viedlo k inštalácii FFmpeg? V smartfóne, alebo z IP kamery mám nejaké krátke video záznamy, ktoré si chcem trocha upraviť. Nechcel som inštalovať nejaké Full editačné nástroje, chcel som proste niečo malé a tak som siahol po FFmpeg. Možno budu niektorí prekvapený, ale FFmpeg je konzolový nástroj, čiže práca prebieha v konzole prostredníctvom príkazov.

Strih videa

Ja som konkrétne potreboval z videa vystrihnúť určitú sekvenciu bez enkódovania. Vstupné video malo dĺžku 62 sekúnd a ja som potreboval vystrihnúť sekvenciu od 17-tej sekundy až po 50-tu sekundu.

ffmpeg -i input_file.mov -ss 00:00:17 -t 00:00:33 -c copy output_file.mov
  • -i – input > vstupný súbor
  • -ss – čas začiatku strihu
  • -t – čas trvania výsledného súboru
  • -c – použitý kodek (copy (video sa kopíruje))
  • – na konci je výstupný súbor

Spojenie videa

Spojenie videa je trocha odlišné. Teoreticky by mal fungovať podobny príkaz tomu, ale nefunguje a výstupný súbor obsahuje vždy len prvý vstupný súbor

ffmpeg -i 'concat:out_01.mov|out_02.mov|out_03.mov|out_04.mov' -vcodec copy -acodec copy output.mov

Preto som hľadal iné riešenie, ktoré by fungovalo a nakoniec som ho našiel 🙂 Majme napr. video súbory v domovskom adresári /home/meno/

  • out_01.mov
  • out_02.mov
  • out_03.mov
  • out_04.mov

Vytvoríme si obyčajný textový súbor a všetky súbory tam zapíšeme vrátane cesty.

nano /home/meno/join.txt
file /home/meno/out_01.mov
file /home/meno/out_02.mov
file /home/meno/out_03.mov
file /home/meno/out_04.mov

v terminály zadáme príkaz

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

Teraz sa všetky súbory spojili a vznikol výsledný súbor output.mov. Súbory do texťaku vkladáme podľa poradia ako ich chceme mať spojené.

Záver

Toto bol len stručný návod ako je možné multimediálne súbory postrihať a následne spojiť do jedného celku. S FFmpeg sa dá robiť toho oveľa viac, ale chce to čítať dokumentáciu a googliť rôzne exaples.

Leave a Reply

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *