Jeg har ingen kunnskap om videokoding, jeg har et program skrevet i OpenGL og jeg Jeg lagrer bildene det genererte i png bilder. Bildene fra appen min er på 7 FPS, og jeg prøver å lage en video fra disse.

Til det formålet bruker jeg ffmpeg som dette

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

som ble tatt fra dette nettstedet , men jeg lurte på om det er mulig å ha en video som viser animasjonen ved 30 FPS?

Kommentarer

Svar

Jeg bruker koden nedenfor for å gjøre det samme.

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

Bryte ned kommandoen:

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 

Dette leser inngangen ved 30 fps (-framerate 30 alternativ) og koder den ved hjelp av libx264 kodeken med konstant hastighetsfaktor på 23 (-crf 23 alternativ).

Svar

Det er to bildefrekvenser å ta i betraktning: inngang og utgang.

Som standard er inngangsfrekvens 25 , og utgangen vil bruke samme bildefrekvens som inngangen, med mindre du sier noe annet.

Samme bildefrekvens for inngang og utgang

Hvis du vil legge inn og -utgang for å ha samme bildefrekvens, så er det bare å gi inngangsfrekvens. Dette eksemplet vil sette en bildefrekvens på 30000/1001 (NTSC-video):

ffmpeg -framerate 30000/1001 -i input output.mp4 
  • Alternativt, i dette eksemplet, kan du bruke ntsc i stedet for 30000/1001, men ikke bruk 29.97 fordi det ikke er nøyaktig eller korrekt. Se andre aliaser for bildefrekvens .

  • Fordi standard innrammefrekvens er 25, og hvis du bare angi en utgangshastighetsfrekvens, så vil rammer bli droppet eller duplisert for å kompensere. Det er derfor inngangsrammehastigheten er satt i denne situasjonen.

Ulike bildefrekvens for inngang og utdata

Noen ganger kan det hende du vil at bildefrekvens for inngang og utgangsfrekvens skal være forskjellig. For eksempel kan det være lurt å legge inn bildene med en bestemt hastighet, og deretter duplisere eller slippe bilder, slik at utgangen har en annen bildefrekvens. Det kan være lurt å gjøre dette på grunn av kompatibilitetsproblemer med utdataformatbeholderen, spilleren og / eller enheten din:

  • I dette eksemplet dupliseres rammer for å gå fra 10 til 25. Konsollutgangen vil fortelle deg om rammer blir droppet eller duplisert.

  • demuxer for bildefiler bruker -framerate, mens utgangshastigheten er angitt ved hjelp av -r.

  • Det kan hende du må legge til alternativet -pix_fmt yuv420p i noen omstendigheter hvis du sender ut H.264-video (ffmpeg konsollutgangen vil advare deg hvis du trenger det). Dette vil bruke en chroma-undersamplingsordning som er kompatibel med alle spillere.

Kommentarer

  • ffmpeg versjon 3.2.2 forteller meg: Option framerate not found. 🙁
  • Ja, du har rett. Men allikevel eksisterer ikke alternativet -framerate Jeg vil slette kommentaren min, da den egentlig ikke har noe å gjøre med å konvertere en serie bilder til en video med en viss framerate.
  • @erik -framerate eksisterer. Den ' brukes av bildet og rawvideo-demuxere og noen inngangsenheter som x11grab og v4l2.
  • Hvor er alternativet -framerate dokumentert? Jeg ' har lest man ffmpeg siden, men jeg kunne ikke ' t finner den. Enhver peker, kanskje?
  • OK, fant den … FFMPEG-DEVICES(1).

Svar

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

vil være tilstrekkelig i slutten t versjon av ffmpeg.

Kommentarer

Svar

Du snakker om videointerpolering. Det er ingen måte for 7 bilder per sekund å bli 30 bilder per sekund uten videointerpolasjon … I utgangspunktet vil du få 30 bilder per sekund fra begynnelsen, i ferd med å lage videoer … Da videointerpolering vil ta mange ressurser og tid, og det kan fylles med gjenstander.Jeg hørte at du kan lage et enkeltbilde til korte filmer, med Adobe, men mye manuelt arbeid der …

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *