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
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 de30000/1001
, dar nu utilizați29.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 consoleiffmpeg
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 paginaman 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
- Nu uitați de
-pix_fmt yuv420p
sau puteți ajunge la fișiere că multe instrumente software nu au ' ca: trac.ffmpeg.org/ticket/8856
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 …
-framerate
pentru a obține rezultatele dorite.