Non ho alcuna conoscenza della codifica video, ho unapplicazione scritta in OpenGL e io Sto salvando i frame che ha generato nelle immagini png. I frame della mia app sono a 7 FPS e sto cercando di creare un video da quelli.

A tale scopo utilizzo ffmpeg in questo modo

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

che è stato preso da questo sito , tuttavia mi chiedevo se sia possibile avere un video che mostri lanimazione a 30 FPS?

Commenti

Risposta

Sto usando il codice seguente per fare la stessa cosa.

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

Suddivisione del comando:

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 

Questo legge linput a 30 fps (il -framerate 30 opzione) e lo codifica utilizzando il libx264 codec con fattore di velocità costante di 23 (il -crf 23 opzione).

Risposta

Ci sono due frame rate da considerare: linput e loutput.

Per impostazione predefinita, il frame rate in input è 25 e loutput utilizzerà la stessa frequenza di fotogrammi dellinput a meno che tu non dica diversamente.

Stessa frequenza di fotogrammi per input e output

Se desideri inserire e output per avere lo stesso frame rate, quindi fornire solo il frame rate di input. Questo esempio imposterà una frequenza fotogrammi di 30000/1001 (video NTSC):

ffmpeg -framerate 30000/1001 -i input output.mp4 
  • In alternativa, in questo esempio, potresti usare ntsc invece di 30000/1001, ma non utilizzare 29.97 perché non è preciso o corretto. Vedi altri alias frequenza fotogrammi .

  • Poiché la frequenza fotogrammi di input predefinita è 25 e se imposta solo una frequenza fotogrammi di output, quindi i fotogrammi verranno eliminati o duplicati per compensare. Ecco perché la frequenza fotogrammi di input è impostata in questa situazione.

Frequenza fotogrammi diversa per linput e output

A volte potresti volere che la frequenza dei fotogrammi in ingresso e in uscita siano diverse. Ad esempio, potresti voler inserire i fotogrammi a una certa velocità, quindi duplicare o eliminare i fotogrammi in modo che loutput abbia un frame rate diverso. Puoi farlo a causa di problemi di compatibilità con il contenitore del formato di output, il tuo lettore e / o il tuo dispositivo:

  • In questo esempio i frame verranno duplicati per passare da 10 a 25. Loutput della console indicherà se i frame vengono eliminati o duplicati.

  • Il file immagine demuxer utilizza -framerate, mentre la frequenza fotogrammi di output viene impostato utilizzando -r.

  • Potrebbe essere necessario aggiungere lopzione -pix_fmt yuv420p in alcune circostanze se “stai riproducendo video H.264 (loutput della console ffmpeg ti avviserà se necessario). Questo utilizzerà uno schema di sottocampionamento della crominanza compatibile con tutti i lettori.

Commenti

  • ffmpeg versione 3.2.2 mi dice: Option framerate not found. 🙁
  • Sì, hai ragione. Tuttavia lopzione -framerate non esiste Eliminerò il mio commento, poiché in realtà non ha nulla a che fare con la conversione di una serie di immagini in un video con un certo framerate.
  • @erik -framerate esiste. ' è utilizzato dai demuxer di immagini e rawvideo e da alcuni dispositivi di input come x11grab e v4l2.
  • Dovè lopzione -framerate documentato? ' ho letto la pagina man ffmpeg, ma non ho potuto ' Non trovarlo. Forse un puntatore?
  • OK, lho trovato … FFMPEG-DEVICES(1).

Risposta

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

sarà sufficiente negli ultimi tempi t di ffmpeg.

Commenti

Risposta

Stai parlando di interpolazione video. Non cè modo che 7 fps diventino 30 fps senza interpolazione video … Fondamentalmente vuoi ottenere 30 fps dallinizio, nel processo di creazione dei video … Poiché linterpolazione video richiederà molte risorse e tempo, e potrebbe essere pieno di artefatti.Ho sentito che puoi trasformare una singola immagine in un cortometraggio, con Adobe, ma molto lavoro manuale lì …

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *