Jeg har intet kendskab til videokodning, jeg har en applikation skrevet i OpenGL og jeg gemmer de rammer, den genererede i png billeder. Rammerne fra min app er på 7 FPS, og jeg prøver at oprette en video ud fra dem.

Til dette formål bruger jeg ffmpeg som denne

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

som blev taget fra dette site , men jeg spekulerede på, om det er muligt at have en video, der viser animationen ved 30 FPS?

Kommentarer

Svar

Jeg bruger nedenstående kode til at gøre det samme.

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

Opdeling af 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 læser input ved 30 fps (-framerate 30 option) og koder det ved hjælp af libx264 codec med konstant hastighedsfaktor på 23 (-crf 23 option).

Svar

Der er to billedhastigheder, der skal overvejes: input og output.

Som standard er input frame rate 25 , og output bruger den samme billedhastighed som input, medmindre du fortæller det andet.

Samme billedhastighed for input og output

Hvis du vil indtaste og -output for at have den samme billedhastighed, og angiv derefter input-billedhastigheden. Dette eksempel indstiller en billedhastighed på 30000/1001 (NTSC-video):

ffmpeg -framerate 30000/1001 -i input output.mp4 
  • Alternativt kan du i dette eksempel bruge ntsc i stedet for 30000/1001, men brug ikke 29.97 fordi det ikke er nøjagtigt eller korrekt. Se andre aliaser for billedhastighed .

  • Fordi standardindgangsrammehastigheden er 25, og hvis du indstil kun en output-billedhastighed, så vil frames blive droppet eller duplikeret for at kompensere. Derfor er input-frame rate indstillet i denne situation.

Forskellig frame rate for input og output

Nogle gange vil du måske have, at input-billedhastighed og output-billedhastighed skal være forskellige. F.eks. vil du måske indtaste rammerne med en bestemt hastighed og derefter duplikere eller slippe rammer, så output har en anden billedhastighed. Det kan være en god ide på grund af kompatibilitetsproblemer med din outputformatbeholder, din afspiller og / eller din enhed:

  • I dette eksempel duplikeres rammer for at gå fra 10 til 25. Konsoludgangen fortæller dig, om rammer falder eller duplikeres.

  • demuxer til billedfil bruger -framerate, mens output-billedhastigheden indstilles ved hjælp af -r.

  • Du skal muligvis tilføje -pix_fmt yuv420p i nogle omstændigheder, hvis du “udsender H.264-video (ffmpeg konsoloutput advarer dig, hvis du har brug for det). Dette bruger en chroma-undersamplingsplan, der er kompatibel med alle afspillere.

Kommentarer

  • ffmpeg version 3.2.2 fortæller mig: Option framerate not found. 🙁
  • Ja, du har ret. Men alligevel findes indstillingen -framerate ikke Jeg vil slette min kommentar, da det virkelig ikke har noget at gøre med at konvertere en række billeder til en video med et bestemt billedhøjde.
  • @erik -framerate eksisterer. Det ' bruges af billedet og rawvideo-demuxere og nogle inputenheder såsom x11grab og v4l2.
  • Hvor er indstillingen -framerate dokumenteret? Jeg ' har læst man ffmpeg siden, men jeg kunne ikke ' finder det ikke. Enhver markør, måske?
  • OK, fandt den … FFMPEG-DEVICES(1).

Svar

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

vil være tilstrækkelig i slutningen t version af ffmpeg.

Kommentarer

Svar

Du taler om videointerpolering. Der er ingen måde for 7 fps at blive 30 fps uden videointerpolation … Dybest set vil du få 30fps fra starten, i færd med at lave videoer … Da videointerpolation vil tage masser af ressourcer og tid, og fyldes med artefakter.Jeg hørte, at du kan lave et enkelt skudt billede til korte film med adobe, men masser af manuelt arbejde der …

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *