FFMPEG slike za video vodič

Ffmpeg Images Video Tutorial



Dakle, zainteresirani ste za izradu videozapisa temeljenog na slikama? Linux softver može vam pomoći i u tom zadatku, a posebno jedan: ffmpeg.

Ako to već ne znate, ffmpeg je softver koji vrši pretvorbu i uređivanje videa i zvuka pomoću filtera. To je onaj koji podržava najveći broj različitih kodeka. Ako ste već koristili VLC, onda znate malo ffmpeg: VLC koristi ffmpeg za dekodiranje što je moguće više videozapisa.







No prije snimanja videa moram vam reći neke koncepte kako se ne biste izgubili na putu.



Nije teško integrirati slike u video zapis. I postoji razlog: videozapisi se temelje na nizu slika. Dopustite mi da objasnim.



Videozapis (čak i YouTube videozapis) je skup fotografija koje se brzo mijenjaju. U kinima i kinima između svake slike postoji crna slika jer mehanizam mora mijenjati okvir i bio je prespor. Ali to se ljudskim okom ne primjećuje jer je mehanizam dovoljno brz i zbog optičke iluzije.





No, računala nemaju ovaj problem. LCD zasloni samo prikazuju posljednju sliku. U svakom slučaju, zapravo možete izvući neovisnu sliku iz svake slike videozapisa. Kad slika dolazi iz videozapisa, naziva se a okvir . To je upravo ono što vidite kada pauzirate videozapis - a kad to učinite lica općenito ne izgledaju dobro!

Općenito, videozapisi iz Sjedinjenih Država a sadrže 30 sličica u sekundi - shvati malo. To je 1.800 sličica u minuti, 54.000 sličica u pola sata videa, ili 108.000 sličica na sat . To je mnogo i zato se ponekad zapitate kako jedna slika može težiti 1 MiB, ali jedna minuta 1080p videa može težiti samo 15 MiB.



Broj slika u sekundi naziva se okvirna stopa . Pri 30 sličica u sekundi mijenjate sliku svaki put 33 milisekunde . Dakle, konkretno, ako želite snimati jednu minutu videozapisa samo na temelju svojih slika, morali biste imati 1800 JPG ili PNG datoteka u minuti.

To je korisno ako želite raditi napredno uređivanje videozapisa bez upotrebe video alata: samo morate izgraditi slike za svaki okvir sa svojim efektima, a zatim ih možete grupirati u videozapis. Ali ponekad želite da mirna slika potraje jer, dobro, želite statičnu sliku u videu.

U redu, vrijeme je za instalaciju ffmpeg.

Instalirajte ffmpeg na Linux

Ovisno o vašoj distribuciji, instaliranje ffmpeg može biti jednostavno ili malo lukav . To je besplatni softver s javno dostupnim izvornim kodom, ali budući da može dekodirati ili kodirati patentirane formate poput MP4, neke ga distribucije isključuju iz svojih spremišta. Na primjer, u Red Hat Enterprise Linuxu, CentOS -u i Fedori trebate RPMFusion zbog patenata. Štoviše, sve verzije Debiana i Ubuntu prije 16.04 distribuiraju lažnu verziju ffmpega na temelju nelegitimne forke.

No, prije nego što požurite s instaliranjem, možda je već instalirana prava verzija? Testirajmo:

$ffmpeg -verzija
ffmpegverzija X.XXXXXXXX Autorsko pravo(c) 2000-2018. godineprogramerima FFmpega

Ako nakon autorskih prava vidite programere FFmpega, imate izvornu verziju FFMpega, ne morate ništa učiniti. Međutim, ako vidite:

$ffmpeg -verzija
ffmpegverzija X.XXXXXXXX Autorsko pravo(c) 2000-2018. godineprogrameri Libava

To znači da koristite a vilica ffmpega zvanog Libav. Debian i starije verzije Ubuntua nijemo zamijeniti FFMpeg s Libavom. Ako vam kaže da je zastario, zanemarite to, to je pogrešno. Ako imate instaliranu vilicu, vrijeme je da uklonite svoju verziju lažnog ffmpega, a zatim slijedite upute u nastavku da biste instalirali pravu verziju. Vjerojatno ovako:

$sudo apt-get ukloniti ffmpeg

Dakle, možda ga još niste instalirali ili imate pogrešnu verziju, vrijeme je za instalaciju!

U Fedori, Red Hat Enterprise Linuxu (RHEL) i CentOS -u idite na https://rpmfusion.org/Configuration i omogućiti besplatno RPMFusion spremište na vašem računalu. Zatim, ako ste u Fedori, učinite sljedeće:

$sudodnfinstalirati ffmpeg

A za CentOS i Red Hat Enterprise Linux učinite sljedeće:

$sudo yum install ffmpeg

To je sve za sustave zasnovane na Fedori i Red Hat -u, instalirano je.

U svim verzijama Debiana (i svih izvedenica) i Ubuntua prije 16.04, morate dobiti statičku verziju FFMpeg sa službene web stranice. Ići https://ffmpeg.org/download.html#build-linux i ispod Statične verzije Linuxa , kliknite na 32-bitni i 64-bitni za kernel 2.6.32 i novije verzije . Zatim, ispod izdanje: X.X.X , preuzmite odgovarajuću arhivu, raspakirajte je i možete pokrenuti izvršne datoteke smještene u izdvojenoj mapi putem CLI -ja.

Za one koji koriste Ubuntu 16.04 i novije verzije, lakše je, samo učinite:

$sudo apt-get install ffmpeg

Fuj! Konačno bismo trebali biti spremni! Prije nego nastavite, posljednji put testirajte sa:

$ffmpeg -verzija

ffmpeg verzija X.XXXXXXXX Autorska prava (c) 2000-2018 programeri FFmpeg

Stvorite videozapise od mnogih slika

Dakle, za naš prvi primjer stvorit ćemo videozapis od Slike gdje svaka slika predstavlja okvir koji će se prikazivati ​​33 milisekunde. Dopustite mi da vam prvo pokažem naredbu.

** MP4 i H.264 su patentirani kodeci, provjerite imate li pravo kodirati s njima. **

$ffmpeg-r: v30 -i 'Pingvini - %05d.png'-codec: v libx264-namještenovrlo sporo
-pix_fmt yuv420p-crf 28 -an 'Penguins.mp4'

U redu, pa kako to funkcionira? Da bi ova naredba funkcionirala, morate imati mnogo okvira u kojima je svaki okvir datoteka poput Penguins - 00043.png. Ova će naredba zatim kombinirati sve sličice po redu brzinom od 30 FPS. Dakle, Penguins - 00043.png dolazi prije Penguins - 00044.png u videu i ffmpeg će to poštivati. Dakle, ako imate 120 sličica, vaš će video trajati 4 sekunde.

Postoji nekoliko zahtjeva za format, širinu i visinu za rad okvira. Ako se ne pridržavate ovih pravila, ffmpeg može zanemariti neke slike ili otkazati postupak stvaranja videozapisa. Tako:

  • Svi okviri u istom videozapisu moraju dijeliti:
    • Širina Visina
    • Dubina boje
  • Okviri trebaju biti u standardnoj veličini videozapisa, kao što su:
    • 640 ✕ 360 (360 p)
    • 853 ✕ 480 (480p)
    • 1280 ✕ 720 (720p)
    • 1920 ✕ 1080 (1080p)
    • 4096 ✕ 2306 (4K)
  • Preferirajte okvire u PNG -u, a ne u JPG -u
  • Izbjegavajte prozirnost ili alfa u PNG formatu

Za naredbu će trebati neko vrijeme da se video konvertira, optimizira njegova izvedba i od vas napravi MP4 datoteka imena Penguins.mp4.

Sada biste mogli htjeti imati mirnu sliku koja ostaje duže od 33 milisekunde. U ovom slučaju vaš je videozapis više slideshow i to nije ista stvar. Da biste to učinili, prvo možete dati sporiji framerate za ulaz, a zatim reći ffmpeg da duplicira okvire u izlazu. Ne, YouTube i Vimeo neće baš cijeniti video od 0,5 FPS čak i ako promijenite sliku svake 2 sekunde.

Učinimo to radije:

$ffmpeg-r: v1/5 -i 'Pingvini - %05d.png'-r: v30-codec: v libx264-namještenovrlo sporo
-pix_fmt yuv420p-crf 28 -an 'Penguins.mp4'

Idemo tamo! ffmpeg će svaku vašu sliku prikazati 5 sekundi, ali u videozapisu od 30 FPS. Ne brinite zbog upozorenja o dupliciranim okvirima: to je ono što želite.

Zaključak

Sada ste - novi Spielberg - u stanju stvoriti vlastite videozapise. Možete napraviti jednostavan dijaprojekciju ili pripremiti video po kadar koristeći uređivač slika, poput GIMP -a, ali također možete imati koristi od velikog skupa efekata i kodeka koje možete pronaći u ffmpeg.

Odvojite vrijeme za eksperimentiranje sami - ipak si umjetnik - i izradite videozapis koji će imati milijune pregleda na YouTubeu!