Nu am cunoștințe despre codificarea video, am o aplicație scrisă în OpenGL și Salvez cadrele pe care le-a generat în imagini png. Cadrele din aplicația mea sunt la 7 FPS și încerc să creez un videoclip din acestea.

În acest scop, folosesc ffmpeg așa

ffmpeg -framerate 30 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4

care a fost preluat de pe acest site , cu toate acestea mă întrebam dacă este posibil să aveți un videoclip care să arate animația la 30 FPS?

Comentarii

  • Întrebare similară și manual .
  • Trebuie doar să modificați parametrul -framerate pentru a obține rezultatele dorite.

Răspuns

Eu „folosesc codul de mai jos pentru a face același lucru.

ffmpeg -framerate 30 -i img%03d.png -c:v libx264 -pix_fmt yuv420p -crf 23 output.mp4 

Defalcarea comenzii:

ffmpeg <- call ffmpeg -framerate 30 <- set the input framerate to 30 -i img%03d.png <- read PNG images with filename img001, img002, img003, etc.. img can be changed to another prefix %03d can be changed to %04d for 0001, %05d for 00001 formats, etc... -c:v libx264 <- Set the codec to libx264 -pix_fmt yuv420p <- Set the pixel format to planar YUV 4:2:0, 12bpp -crf 23 <- set the Constant Rate Factor to 23 (default value) -output.mp4 <- the output filename 

Aceasta citește intrarea la 30 fps (-framerate 30 opțiune) și o codifică utilizând codul libx264 cu factor de rată constantă de 23 (-crf 23 opțiune).

Răspuns

Există două rate de cadru de luat în considerare: intrarea și ieșirea.

În mod implicit, rata de cadru de intrare este 25 , iar ieșirea va utiliza aceeași frecvență de cadre ca intrarea, cu excepția cazului în care îi spuneți altfel. ba9be01291 „>

și ieșire pentru a avea aceeași rată de cadre, apoi furnizați doar rata de cadru de intrare. Acest exemplu va seta o rată de cadre de 30000/1001 (videoclip NTSC):

ffmpeg -framerate 30000/1001 -i input output.mp4 
  • Alternativ, în acest exemplu, puteți utiliza ntsc în loc de 30000/1001, dar nu utilizați 29.97 deoarece acest lucru nu este corect sau corect. Vedeți alte aliasuri de cadră de cadre .

  • Deoarece rata de cadru de intrare implicită este 25, iar dacă setați doar o rată de cadru de ieșire, apoi cadrele vor fi scăzute sau duplicate pentru a compensa. De aceea rata cadrelor de intrare este setată în această situație.

Rată de cadre diferită pentru intrare și ieșire

Uneori este posibil să doriți ca rata cadrului de intrare și rata cadrului de ieșire să difere. De exemplu, este posibil să doriți să introduceți cadrele la o anumită rată, apoi să duplicați sau să eliberați cadrele, astfel încât ieșirea să aibă un rată de cadre diferită. Poate doriți să faceți acest lucru din cauza problemelor de compatibilitate cu containerul formatului de ieșire, playerul și / sau dispozitivul dvs.:

  • În acest exemplu, cadrele vor fi duplicate pentru a merge de la 10 la 25. Ieșirea consolei vă va spune dacă cadrele sunt abandonate sau duplicate.

  • demuxerul fișierului de imagine utilizează -framerate, în timp ce rata cadrelor de ieșire este setat utilizând -r.

  • Este posibil să fie necesar să adăugați opțiunea -pix_fmt yuv420p unele circumstanțe dacă „redați un videoclip H.264 (ieșirea consolei ffmpeg vă va avertiza dacă este necesar). Aceasta va utiliza o schemă de subesantionare a cromelor, care este compatibilă cu toți jucătorii.

Comentarii

  • ffmpeg versiunea 3.2.2 îmi spune: Option framerate not found. 🙁
  • Da, ai dreptate. Dar totuși opțiunea -framerate nu există Voi șterge comentariul meu, întrucât nu are nimic de-a face cu conversia unei serii de imagini într-un videoclip cu un anumit framerate.
  • @erik -framerate există. Este ' folosit de imagini și de demuxere rawvideo și de unele dispozitive de intrare precum x11grab și v4l2.
  • Unde este opțiunea -framerate documentat? Am ' am citit pagina man ffmpeg, dar nu am putut ' Nu l-ați găsit. Poate că este vreun indicator?
  • OK, l-a găsit … FFMPEG-DEVICES(1).

Răspuns

ffmpeg -framerate 30 -i img%03d.png output.mp4 

va fi suficient în ultimele versiunea ffmpeg.

Comentarii

Răspuns

Vorbiți despre interpolare video. Nu există nicio modalitate ca 7 fps să devină 30 fps fără interpolare video … Practic doriți să obțineți 30 fps de la început, în procesul de realizare a videoclipurilor … Deoarece interpolare video va necesita o mulțime de resurse și timp, și s-ar putea să fie umplut cu artefacte.Am auzit că poți face o singură poză într-un film scurt, cu chirpici, dar o mulțime de lucrări manuale acolo …

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *