FFMPEG Mga Larawan Upang Video Tutorial

Ffmpeg Images Video Tutorial



Kaya't interesado ka sa pagbuo ng isang video batay sa mga imahe? Ang Linux softwares ay maaaring makatulong sa iyo sa gawaing iyon din, at lalo na ang isa: ffmpeg.

Kung hindi mo pa nalalaman, ang FFmpeg ay isang software na gumagawa ng video at audio conversion at pag-edit gamit ang mga filter. Ito ang sumusuporta sa pinakamaraming bilang ng iba't ibang mga codec. Kung nagamit mo na ang VLC, pagkatapos ay may alam kang kaunting ffmpeg: Gumagamit ang VLC ng ffmpeg upang ma-decode ang maraming mga video hangga't maaari.







Ngunit bago gumawa ng mga video, kailangan kong sabihin sa iyo ang ilang mga konsepto upang hindi ka mawala sa paraan.



Hindi talaga mahirap pagsamahin ang mga imahe sa isang video. At mayroong isang dahilan: ang mga video ay batay sa isang serye ng mga imahe. Hayaan mo akong magpaliwanag.



Ang isang video (kahit na isang video sa YouTube) ay isang suite ng mga larawan pa rin na mabilis na nagbabago. Sa sinehan at sinehan, sa pagitan ng bawat imahe ay mayroong isang itim na larawan dahil ang mekanismo ay kailangang lumipat ng frame at masyadong mabagal. Ngunit hindi ito kapansin-pansin ng mata ng tao dahil ang mekanismo ay sapat na mabilis at dahil sa isang ilusyon na optikal.





Ngunit ang computer ay walang ganitong problema. Patuloy lamang na ipinapakita ng mga LCD screen ang huling imahe. Gayunpaman, maaari mo ring makuha ang isang malayang imahe mula sa bawat imahe ng isang video. Kapag nagmula ang isang imahe mula sa isang video, tinatawag itong a frame . Iyon mismo ang nakikita mo kapag nag-pause ka ng isang video - at kapag ginawa mo ito ang mga mukha sa pangkalahatan ay hindi maganda ang hitsura!

Pangkalahatan, naglalaman ang mga video mula sa Estados Unidos a 30 mga frame bawat segundo - medyo mapagtanto. Ito ay 1,800 mga frame bawat minuto, 54,000 mga frame bawat kalahating oras ng video, o 108,000 mga frame bawat oras . Marami iyan at kung paano ka nagtataka kung minsan kung paano maaaring timbangin ng isang solong imahe ang 1 MiB ngunit ang isang minuto ng video na 1080p ay maaaring timbangin lamang ng 15 MiB.



Ang bilang ng mga larawan bawat segundo ay tinawag na frame rate . Sa 30 mga frame bawat segundo, binabago mo ang imahe bawat isa 33 milliseconds . Kaya't kongkreto, kung nais mong gumawa ng isang minuto ng video batay lamang sa iyong mga imahe, kakailanganin mong magkaroon ng 1,800 na mga file ng JPG o PNG bawat minuto.

Kapaki-pakinabang iyan kung nais mong gumawa ng advanced na pag-edit ng video nang hindi gumagamit ng mga tool sa video: kailangan mo lang bumuo ng mga larawan para sa bawat frame gamit ang iyong mga epekto at pagkatapos ay mai-bundle mo ito sa isang video. Ngunit kung minsan gusto mo ng isang imahe na tahimik na magtatagal dahil, mabuti, nais mo ng isang imahe ng imahe sa video.

Okay, ngayon, oras upang mag-install ng ffmpeg.

I-install ang ffmpeg sa Linux

Depende sa iyong pamamahagi, ang pag-install ng ffmpeg ay maaaring madali o kaunti nakakalito . Ito ay isang libreng software na may magagamit na source code sa publiko, ngunit dahil maaari nitong ma-decode o ma-encode ang mga naka-patentong format tulad ng MP4, ang ilang mga pamamahagi ay ibinubukod ito mula sa kanilang mga repository. Halimbawa, sa Red Hat Enterprise Linux, CentOS at Fedora, kailangan mo ng RPMFusion dahil sa mga patent. Bukod dito, ang lahat ng mga bersyon ng Debian at Ubuntu bago ang 16.04 ay namamahagi ng maling bersyon ng ffmpeg batay sa isang iligal na tinidor.

Ngunit bago magmadali sa pag-install nito, marahil ang tamang bersyon ay naka-install na? Subukan natin:

$ffmpeg -pagbagong loob
ffmpegbersyon X.XXXXXXXX Copyright(c) 2000-2018ang mga tagabuo ng FFmpeg

Kung pagkatapos ng copyright na nakikita mo ang mga developer ng FFmpeg, mayroon kang orihinal na bersyon ng FFMpeg, kailangan mong gumawa ng wala. Gayunpaman, kung nakikita mo:

$ffmpeg -pagbagong loob
ffmpegbersyon X.XXXXXXXX Copyright(c) 2000-2018ang mga developer ng Libav

Pagkatapos nangangahulugan ito na gumagamit ka ng a tinidor ng ffmpeg na tinatawag na Libav. Debian at mas lumang mga bersyon ng Ubuntu tahimik kapalit ang FFMpeg ng Libav. Kung sasabihin nito sa iyo na ito ay hindi na ginagamit, mangyaring huwag itong pansinin, nakaliligaw iyon. Kung mayroon kang naka-install na tinidor oras na upang alisin ang iyong bersyon ng maling ffmpeg at pagkatapos ay sundin ang gabay sa ibaba upang mai-install ang tamang bersyon. Marahil ay ganito:

$sudo apt-get alisin ffmpeg

Kaya ngayon maaaring hindi mo pa ito nai-install o mayroon kang maling bersyon, oras upang mai-install ito!

Sa Fedora, Red Hat Enterprise Linux (RHEL) at CentOS, pumunta sa https://rpmfusion.org/Configuration at paganahin ang libreng RPMFusion repository sa iyong computer. Kung gayon, kung nasa Fedora ka, gawin:

$sudodnfi-install ffmpeg

At para sa CentOS & Red Hat Enterprise Linux, gawin ang:

$sudo yum install ffmpeg

Iyon lang para sa mga sistemang batay sa Fedora at Red Hat, naka-install ito.

Sa lahat ng mga bersyon ng Debian (at lahat ng mga derivatives) at Ubuntu bago ang 16.04, kailangan mong makakuha ng FFMpeg static build mula sa opisyal na website. Pumunta sa https://ffmpeg.org/download.html#build-linux at sa baba Bumubuo ang Linux Static , mag-click sa 32-bit at 64-bit para sa kernel 2.6.32 at mas mataas . Pagkatapos, sa ibaba bitawan: X.X.X , i-download ang naaangkop na archive, i-extract ito at maaari mong ilunsad ang mga executable na matatagpuan sa nakuha na folder sa pamamagitan ng CLI.

Para sa mga gumagamit ng Ubuntu 16.04 at mas mataas, mas madali ito, gawin lamang:

$sudo apt-get install ffmpeg

Phew! Sa wakas dapat ay mabuti tayong pumunta! Bago magpatuloy, subukan ang huling oras sa:

$ffmpeg -pagbagong loob

bersyon ng ffmpeg X.XXXXXXXX Copyright (c) 2000-2018 ang mga developer ng FFmpeg

Lumikha ng mga video mula sa maraming mga imahe

Kaya, para sa aming unang halimbawa, lilikha kami ng isang video mula sa Mga Larawan kung saan ang bawat imahe ay kumakatawan sa isang frame na ipapakita sa loob ng 33 milliseconds. Hayaan mong ipakita ko muna sa iyo ang utos.

** Ang MP4 at H.264 ay mga naka-patent na codec, mangyaring suriin kung mayroon kang karapatang mag-encode dito. **

$ffmpeg-r: v30 -ako 'Penguins -% 05d.png'-codec: v libx264-presetsobrang bagal
-pix_fmt yuv420p-crf 28 -an 'Penguins.mp4'

OK kaya paano ito gumagana? Upang gumana ang utos na ito, kailangan mong magkaroon ng maraming mga frame kung saan ang bawat frame ay isang file tulad ng Penguins - 00043.png. Pagkatapos ay pagsamahin ng utos na ito ang lahat ng mga frame sa pagkakasunud-sunod sa rate na 30 FPS. Kaya, ang mga Penguin - 00043.png ay bago ang Penguins - 00044.png sa video at igagalang iyon ng ffmpeg. Kaya't kung mayroon kang 120 mga frame, ang iyong video ay magkakaroon ng 4 na segundo na tagal.

Mayroong ilang mga kinakailangan tungkol sa format, lapad at taas para gumana ang mga frame. Kung hindi mo susundin ang mga panuntunang ito, maaaring balewalain ng ffmpeg ang ilang mga imahe o kanselahin ang proseso ng paglikha ng video. Kaya:

  • Dapat ibahagi ang lahat ng mga frame sa parehong video:
    • Lapad at taas
    • Lalim ng kulay
  • Ang mga frame ay dapat nasa isang karaniwang sukat ng video tulad ng:
    • 640 ✕ 360 (360p)
    • 853 ✕ 480 (480p)
    • 1280 ✕ 720 (720p)
    • 1920 ✕ 1080 (1080p)
    • 4096 ✕ 2306 (4K)
  • Mas gusto ang mga frame sa PNG kaysa sa JPG
  • Iwasan ang transparency o alpha sa format na PNG

Ang utos ay magtatagal ng ilang oras upang i-convert ang video, i-optimize ang pagganap nito at gawin kang isang MP4 file na pinangalanang Penguins.mp4.

Ngayon, baka gusto mong magkaroon, mabuti, isang imahe pa rin na natitira sa higit sa 33 milliseconds. Sa kasong ito, ang iyong video ay higit na isang slideshow at hindi ito pareho ng relasyon. Upang magawa ito, maaari mo munang bigyan ang isang mas mabagal na framerate para sa pag-input at pagkatapos ay sabihin sa ffmpeg na duplicate ang mga frame sa output. Hindi, hindi talaga pahahalagahan ng YouTube at Vimeo ang isang 0.5 FPS na video kahit na binago mo ang iyong imahe tuwing 2 segundo.

Gawin natin iyon:

$ffmpeg-r: v1/5 -ako 'Penguins -% 05d.png'-r: v30-codec: v libx264-presetsobrang bagal
-pix_fmt yuv420p-crf 28 -an 'Penguins.mp4'

Ayan na! Ipapakita ng ffmpeg ang bawat isa sa iyong mga imahe nang 5 segundo ngunit sa isang 30 FPS na video. Huwag magalala tungkol sa babala ng mga duplicate na frame: ito ang gusto mo.

Konklusyon

Ngayon, ikaw - ang bagong Spielberg - nagawang lumikha ng iyong sariling mga video. Maaari kang gumawa ng isang simpleng slideshow o maghanda ng isang frame ng video sa pamamagitan ng frame gamit ang isang editor ng imahe tulad ng GIMP, ngunit maaari ka ring makinabang mula sa malaking hanay ng mga epekto at mga codec na maaari mong makita sa ffmpeg.

Maglaan ng oras upang mag-eksperimento nang mag-isa - artista ka naman eh - at lumikha ng isang video na gagawa ng milyun-milyong mga panonood sa YouTube!