FFMPEG vaizdų vaizdo įrašo pamoka

Ffmpeg Images Video Tutorial



Taigi jus domina vaizdo įrašo kūrimas pagal vaizdus? „Linux“ programinė įranga taip pat gali padėti jums atlikti šią užduotį, ypač viena: ffmpeg.

Jei to dar nežinote, „ffmpeg“ yra programinė įranga, kuri konvertuoja ir redaguoja vaizdo ir garso įrašus naudodami filtrus. Tai tas, kuris palaiko daugumą skirtingų kodekų. Jei jau naudojote VLC, žinote šiek tiek ffmpeg: VLC naudoja ffmpeg, kad iššifruotų kuo daugiau vaizdo įrašų.







Tačiau prieš kurdamas vaizdo įrašus turiu jums pasakyti keletą sąvokų, kad nepasiklystumėte.



Iš tikrųjų nėra sunku integruoti vaizdus į vaizdo įrašą. Ir yra priežastis: vaizdo įrašai yra pagrįsti vaizdų serija. Leisk man paaiškinti.



Vaizdo įrašas (net „YouTube“ vaizdo įrašas) yra nejudančių vaizdų rinkinys, kuris greitai keičiasi. Kino ir kino teatruose tarp kiekvieno vaizdo yra juoda nuotrauka, nes mechanizmas turi perjungti kadrą ir buvo per lėtas. Tačiau žmogaus akimis tai nepastebima, nes mechanizmas yra pakankamai greitas ir dėl optinės apgaulės.





Tačiau kompiuteriai neturi šios problemos. LCD ekranai tiesiog rodo paskutinį vaizdą. Bet kokiu atveju iš kiekvieno vaizdo įrašo vaizdo galite išgauti nepriklausomą vaizdą. Kai vaizdas gaunamas iš vaizdo įrašo, jis vadinamas a rėmas . Būtent tai matote pristabdę vaizdo įrašą - ir kai tai darai, veidai paprastai neatrodo gerai!

Paprastai vaizdo įrašuose iš JAV yra 30 kadrų per sekundę - šiek tiek suvokti. Tai 1800 kadrų per minutę, 54 000 kadrų per pusvalandį vaizdo įrašo arba 108 000 kadrų per valandą . Tai yra daug ir taip kartais stebitės, kaip vienas vaizdas gali sverti 1 MiB, bet viena 1080p vaizdo įrašo minutė gali sverti tik 15 MiB.



Nuotraukų skaičius per sekundę vadinamas kadrų dažnis . 30 kadrų per sekundę dažnis keičiasi kiekvieną kartą 33 milisekundės . Taigi konkrečiai, jei norėtumėte padaryti vieną minutę vaizdo įrašo, pagrįstą tik savo vaizdais, per minutę turėsite turėti 1800 JPG arba PNG failų.

Tai naudinga, jei norite atlikti išplėstinį vaizdo įrašų redagavimą nenaudodami vaizdo įrašų įrankių: jums tereikia sukurti kiekvieno kadro vaizdus su savo efektais ir tada galite juos sujungti į vaizdo įrašą. Bet kartais jūs norite, kad nejudantis vaizdas išliktų, nes norite, kad vaizdo įraše būtų nejudantis vaizdas.

Gerai, dabar laikas įdiegti ffmpeg.

Įdiekite „ffmpeg“ „Linux“

Priklausomai nuo jūsų paskirstymo, „ffmpeg“ įdiegimas gali būti lengvas arba šiek tiek lengvas keblus . Tai nemokama programinė įranga, kurios šaltinio kodas yra viešai prieinamas, tačiau kadangi ji gali iššifruoti ar koduoti patentuotus formatus, tokius kaip MP4, kai kurie platinimai pašalina ją iš saugyklų. Pavyzdžiui, „Red Hat Enterprise Linux“, „CentOS“ ir „Fedora“ jums reikia „RPMFusion“ dėl patentų. Be to, visos „Debian“ versijos ir „Ubuntu“ iki 16.04 platina klaidingą ffmpeg versiją, pagrįstą neteisėta šakute.

Tačiau prieš skubant ją įdiegti, galbūt jau įdiegta tinkama versija? Išbandykime:

$ffmpeg -versija
ffmpegversija X.XXXXXXXX Autorių teisės(c) 2000 m-2018 mFFmpeg kūrėjams

Jei po autorių teisių matote FFmpeg kūrėjus, turite originalią FFMpeg versiją, nieko nereikia daryti. Tačiau, jei matote:

$ffmpeg -versija
ffmpegversija X.XXXXXXXX Autorių teisės(c) 2000 m-2018 m„Libav“ kūrėjai

Tada tai reiškia, kad naudojate a šakutė iš ffmpeg, vadinamos Libav. „Debian“ ir senesnės „Ubuntu“ versijos tyliai FFMpeg pakeiskite Libav. Jei sakoma, kad jis nebenaudojamas, nekreipkite dėmesio, tai klaidina. Jei turite įdiegtą šakutę, laikas pašalinti klaidingą ffmpeg versiją ir sekti žemiau pateiktą vadovą, kad įdiegtumėte tinkamą versiją. Tikriausiai taip:

$sudo apt-get pašalinti ffmpeg

Taigi dabar galbūt dar neįdiegėte arba turite netinkamą versiją, laikas ją įdiegti!

„Fedora“, „Red Hat Enterprise Linux“ (RHEL) ir „CentOS“ eikite į https://rpmfusion.org/Configuration ir įjunkite nemokamą RPMFusion saugyklą savo kompiuteryje. Tada, jei esate „Fedora“, atlikite šiuos veiksmus:

$sudodnfdiegti ffmpeg

„CentOS“ ir „Red Hat Enterprise Linux“:

$sudo yum įdiegti ffmpeg

Tai viskas „Fedora“ ir „Red Hat“ pagrįstoms sistemoms, ji įdiegta.

Visose „Debian“ (ir visų išvestinių) ir „Ubuntu“ versijose iki 16.04 turite gauti „FFMpeg static build“ iš oficialios svetainės. Eiti į https://ffmpeg.org/download.html#build-linux ir žemiau „Linux“ statinės konstrukcijos , spustelėkite 32 bitų ir 64 bitų 2.6.32 ir naujesnių branduolių . Tada, žemiau išleidimas: X.X.X , atsisiųskite atitinkamą archyvą, ištraukite jį ir galėsite paleisti vykdomuosius failus, esančius ištrauktame aplanke per CLI.

Tiems, kurie naudoja „Ubuntu 16.04“ ir naujesnes versijas, lengviau, tiesiog atlikite šiuos veiksmus:

$sudo apt-get install ffmpeg

Fau! Pagaliau mums turėtų būti gera eiti! Prieš tęsdami, paskutinį kartą išbandykite:

$ffmpeg -versija

ffmpeg versija X.XXXXXXXX Autorių teisės (c) 2000–2018 m. „FFmpeg“ kūrėjai

Kurkite vaizdo įrašus iš daugybės vaizdų

Taigi, pirmajame pavyzdyje mes sukursime vaizdo įrašą iš vaizdų, kur kiekvienas vaizdas yra kadras, kuris bus rodomas 33 milisekundes. Pirmiausia parodysiu komandą.

** MP4 ir H.264 yra patentuoti kodekai, patikrinkite, ar turite teisę su jais koduoti. **

$ffmpeg-r: v30 -i 'Pingvinai - %05d.png'-kodas: v libx264-iš anksto nustatytaslabai lėtas
-pix_fmt yuv420p-krf 28 -an „Pingvinai.mp4“

Gerai, kaip tai veikia? Kad ši komanda veiktų, turite turėti daug kadrų, kuriuose kiekvienas kadras yra failas, kaip „Penguins“ - 00043.png. Tada ši komanda sujungs visus kadrus 30 FPS greičiu. Taigi, „Penguins“ - 00043.png yra anksčiau nei „Penguins“ - 00044.png vaizdo įraše ir „ffmpeg“ į tai atsižvelgs. Taigi, jei turite 120 kadrų, vaizdo įrašo trukmė bus 4 sekundės.

Kad rėmai veiktų, formatui, pločiui ir aukščiui keliami keli reikalavimai. Jei nesilaikysite šių taisyklių, „ffmpeg“ gali ignoruoti kai kuriuos vaizdus arba atšaukti vaizdo įrašo kūrimo procesą. Taigi:

  • Visi to paties vaizdo įrašo kadrai turi būti bendri:
    • Plotis Aukštis
    • Spalvos gylis
  • Rėmeliai turi būti standartinio vaizdo dydžio, pavyzdžiui:
    • 640 ✕ 360 (360p)
    • 853 ✕ 480 (480p)
    • 1280–720 (720p)
    • 1920–1080 (1080p)
    • 4096 ✕ 2306 (4K)
  • Pirmenybę teikite PNG, o ne JPG kadrams
  • Venkite skaidrumo ar alfa formato PNG formatu

Tada komanda užtruks šiek tiek laiko, kol vaizdo įrašas bus konvertuotas, optimizuotas jo našumas ir padarytas MP4 failas, pavadintas „Penguins.mp4“.

Dabar galbūt norėsite, kad nejudantis vaizdas liktų ilgiau nei 33 milisekundes. Šiuo atveju jūsų vaizdo įrašas yra labiau skaidrių demonstracija ir tai nėra tas pats reikalas. Norėdami tai padaryti, pirmiausia galite nurodyti lėtesnį įvesties kadrų dažnį ir tada nurodyti ffmpeg dubliuoti išvesties kadrus. Ne, „YouTube“ ir „Vimeo“ tikrai neįvertins 0,5 FPS vaizdo įrašo, net jei keičiate vaizdą kas 2 sekundes.

Verčiau darykime tai:

$ffmpeg-r: v1/5 -i 'Pingvinai - %05d.png'-r: v30-kodas: v libx264-iš anksto nustatytaslabai lėtas
-pix_fmt yuv420p-krf 28 -an „Pingvinai.mp4“

Štai ir einam! ffmpeg leis kiekvienam jūsų vaizdui pasirodyti 5 sekundes, bet 30 FPS vaizdo įraše. Nesijaudinkite dėl įspėjimų apie pasikartojančius kadrus: tai yra tai, ko norite.

Išvada

Dabar tu - naujasis Spielbergas - galite kurti savo vaizdo įrašus. Galite padaryti paprastą skaidrių demonstraciją arba paruošti vaizdo įrašą po kadro naudodami vaizdo redaktorių, pvz., GIMP, tačiau taip pat galite pasinaudoti daugybe efektų ir kodekų, kuriuos galite rasti ffmpeg.

Skirkite laiko eksperimentuoti patys - juk esi menininkas - ir sukurkite vaizdo įrašą, kuris „YouTube“ sulauks milijonų peržiūrų!