2013-10-09 9 views
6

Sto creando un breve video da una sequenza di 100 immagini usando ffmpeg. Ci sono diversi articoli che mi hanno aiutato a mettere insieme un comando, ma quello che sto usando viene preso direttamente da ffmpeg images-to-video script anyone?.Problemi di riproduzione in VLC con video a bassa fps da immagini usando ffmpeg

Il seguente comando produce un file video che funziona bene in tutti i lettori video che ho (OS X).

cat input/*.jpg | ffmpeg -f image2pipe -r 10 -vcodec mjpeg -i - out.mp4 

Ma se cambio a,

cat input/*.jpg | ffmpeg -f image2pipe -r 1 -vcodec mjpeg -i - out.mp4 

Si gioca bene in tutte le ma VLC media player. VLC visualizza le immagini iniziali da 1 a 3, quindi si blocca solo sul fotogramma. Ho testato alcuni frame rate diversi, e sembra che il cutoff che interrompe la riproduzione del video in VLC si trova tra 1.125 e 1.175.

Qualsiasi consiglio su quello che sto trattando qui sarebbe molto apprezzato.

+0

Mancano le uscite della console complete. Potresti aggiungere un output '-r' con un valore che è supportato dai tuoi giocatori. ffmpeg duplicherà quindi i frame per adattarli alla frequenza dei fotogrammi in uscita richiesta. – LordNeckbeard

+0

Penso che sia un bug in vlc ....Posso riprodurre il problema – dsign

+0

Ho lo stesso problema quando faccio un video di un grafico che cambia nel tempo. Testato a 0,5 fps e 1 fps con x264, mpeg4 e gif usando avconf e moviepy (con backend ffmpeg). –

risposta

1

Si tratta di un bug noto da tempo in VLC: https://trac.videolan.org/vlc/ticket/3625

E 'stato riportato da molti utenti con varie soglie, ma da quello che ho trovato e sperimentato io stesso, la soglia è qualche parte intorno a un paio di FPS.

Attualmente guardo tristemente al primo fotogramma congelato di un video 2 FPS che non verrà riprodotto nell'attuale versione di VLC (2.2.4) Mi ricordo che funziona su qualche versione 1.1.x (anche se l'errore è stato segnalato molto prima) ma dopo l'aggiornamento a 2.x ha smesso di funzionare per me.

Io e il mio collega abbiamo effettivamente confrontato il comportamento con gli stessi file video (2 FPS) qualche tempo fa e mentre potevo riprodurli tutti senza problemi con 1.1.x (penso che fosse 1.1.1 ma io non sono sicuro al 100% più), non poteva giocare nessuno di loro con 2.x. Dopo aver eseguito il downgrade di VLC a 1.1.x, è riuscito a riprodurli.

Quindi forse il downgrade è la strada da percorrere, se sei disperato di usare VLC e non ti perderai nulla da 2.x. Altrimenti direi di risparmiare le ore dolorose di giocherellare con le impostazioni VLC e utilizzare semplicemente un lettore diverso.

1

Usa sia -framerate e -r

Ad esempio, per avere un video finale che assomiglia 1FPS:

ffmpeg -framerate 1 -pattern_type glob -i '*.png' \ 
    -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4 

Questo è menzionato sul wiki all'indirizzo: http://trac.ffmpeg.org/wiki/Slideshow#Framerates

Si imposta il output framerate a 30, che VLC è in grado di gestire e copia ciascuna immagine 30 volte, in modo che il video di output appaia a 1 FPS.

VLC è quindi in grado di riprodurre il video normalmente.

Testato su Ubuntu 16.10, VLC 2.2.4, ffmpeg 3.0.5, in una directory con 10 PNG.