Jag har ingen kunskap om videokodning, jag har en applikation skriven i OpenGL och jag Jag sparar ramarna som genererades i png bilder. Ramarna från min app är vid 7 FPS och jag försöker skapa en video från dessa.

För det ändamålet använder jag ffmpeg så här

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

som togs från den här webbplatsen , men jag undrade om det är möjligt att ha en video som visar animationen vid 30 FPS?

Kommentarer

Svar

Jag använder koden nedan för att göra samma sak.

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

Bryta ner kommandot:

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 

Detta läser inmatningen vid 30 fps (-framerate 30 option) och kodar den med libx264 codec med konstant hastighetsfaktor på 23 (-crf 23 alternativ).

Svar

Det finns två bildhastigheter att beakta: ingången och utgången.

Som standard är ingångshastigheten 25 , och utgången använder samma bildhastighet som ingången såvida du inte säger något annat.

Samma bildhastighet för in- och utdata

Om du vill mata in och för att ha samma bildhastighet, ange sedan bara ingångsramhastigheten. Detta exempel ställer in en bildfrekvens på 30000/1001 (NTSC-video):

ffmpeg -framerate 30000/1001 -i input output.mp4 
  • Alternativt kan du i det här exemplet använda ntsc istället för 30000/1001, men använd inte 29.97 eftersom det inte är korrekt eller korrekt. Se andra bildfrekvensalias .

  • Eftersom standardinmatningsramfrekvensen är 25, och om du bara ställa in en utmatningsfrekvens, då kommer ramar att tappas eller dupliceras för att kompensera. Det är därför som inmatningsramhastigheten ställs in i denna situation.

Olika bildfrekvenser för inmatning och utdata

Ibland kanske du vill att inmatningsramhastigheten och utmatningsramhastigheten skiljer sig åt. Du kan till exempel ange ramarna med en viss hastighet och sedan duplicera eller släppa ramar så att utmatningen har en olika bildhastigheter. Du kanske vill göra detta på grund av kompatibilitetsproblem med behållaren för utdataformat, din spelare och / eller din enhet:

  • I det här exemplet dupliceras ramar för att gå från 10 till 25. Konsolutgången berättar om ramar tappas eller dupliceras.

  • demuxer för bildfiler använder -framerate medan bildutmatningshastigheten ställs in med -r.

  • Du kan behöva lägga till alternativet -pix_fmt yuv420p i vissa omständigheter om du ”matar ut H.264-video (ffmpeg konsolutgången varnar dig om du behöver). Detta använder ett schema för delprovtagning som är kompatibelt med alla spelare.

Kommentarer

  • ffmpeg version 3.2.2 säger till mig: Option framerate not found. 🙁
  • Ja, du har rätt. Men ändå finns alternativet -framerate inte Jag kommer att ta bort min kommentar, eftersom det egentligen inte har något att göra med att konvertera en serie bilder till en video med en viss bildruta.
  • @erik -framerate finns. Den ' används av bilden och rawvideo-demuxers och vissa inmatningsenheter som x11grab och v4l2.
  • Var är alternativet -framerate dokumenterad? Jag ' har läst man ffmpeg sidan, men jag kunde inte ' hittar inte det. Någon pekare, kanske?
  • OK, hittade den … FFMPEG-DEVICES(1).

Svar

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

räcker i slutet t version av ffmpeg.

Kommentarer

Svar

Du pratar om videointerpolering. Det finns inget sätt för 7 bilder per sekund att bli 30 bilder per sekund utan videointerpolation … I grund och botten vill du få 30 bilder per sekund från början, i färd med att skapa videor … Eftersom videointerpolering tar mycket resurser och tid, och det kan fylls med artefakter.Jag hörde att du kan göra en enstaka bild till kortfilmer, med adobe, men mycket manuellt arbete där …

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *