Sto registrando video con FFmpeg e mi piacerebbe che il frame rate con cui è scritto sia almeno nel campo di destra. In questo momento prendo il frame rate che il mio input pretende di avere e lo uso per impostare il frame rate (time_base) per il mio flusso video di output. Tuttavia questo a volte è molto diverso dal frame rate effettivo che sto ricevendo (ho visto uno stream che dichiarava 50 fps ma che pubblicava a 9 fps).Registrazione di video con framerate sconosciuto con FFmpeg
Quello che mi piacerebbe fare è usare un timer trascorso e contare i fotogrammi che registro per calcolare il frame rate effettivo che ho registrato quando ho finito di registrare. Sembrerebbe però che la frequenza dei fotogrammi impostata nel mio AVStream sia utilizzata in avcodec_open2 prima di scrivere qualsiasi frame. Se lo imposto in un secondo momento (ad esempio mentre scrivo frame) mentre ffplay può riprodurlo (lamentandosi che i bit di incremento del tempo sono 6 e non 4) gli altri lettori video non possono. C'è un modo per impostare il frame rate per l'intero file dopo scrivendo i frame? Se no, c'è un modo per dire ai frame stessi una sorta di timestamp o frame rate mentre sto registrando che risulterà in un file registrato valido?
ciao, guarderò di più, ma volevo solo chiedere di avconv. trovato dopo una rapida ricerca su google, sembra che possa cambiare la frequenza dei fotogrammi di un file. forse potresti scrivere il file a un frame rate arbitrario e poi dopo aver rilevato il tasso reale, finire di scrivere ed eseguire avconv con la nuova velocità? solo un pensiero, non una vera risposta;) continuerà comunque a cercare. fammi sapere. – nephi12
avconv è il nome binario del progetto libav. (http://superuser.com/questions/507386/why-would-i-choose-libav-over-ffmpeg-or-is-there-even-a-difference) ha un riepilogo abbastanza decente di tutti i nomi che avevano mi sono confuso per un bel po 'di tempo. Tutto ciò che avconv dovrebbe essere possibile con le librerie che usa. – Chris