Domanda

sto codifica alcuni video su iPhone eseguendo i dati di immagine PNG attraverso swscale per ottenere i dati YUV420P quindi codifica che fotogramma utilizzando il codec MSMPEG4V1. Nei documenti api, avcodec_encode_video dovrebbe restituire il numero di byte utilizzati dal buffer di uscita da detta operazione di codifica. Ci sono 234.000 byte che entrano l'encoder, ma il risultato restituito da avcodec_encode_video è semplicemente "4". Il risultato è esattamente lo stesso oltre 24 fotogrammi. Qualcosa sembra di pesce qui ... una visione chiara?

Ecco un link pastebin al codice:

http://pastebin.com/ht94FWva

(scusate per il collegamento da SO, ho appena fatto non voglio avere il codice duplicato in diversi punti)

EDIT:

Inoltre, ho creato un callback log personalizzato per ffmpeg per l'uso e non ho il set di livello di log "dettagliato" (libavutil / log.h), in modo da libavcodec dovrebbe essere annotando eventuali goofs alla console, ma avcodec è tranquillo lui ATTRAVERSO intera operazione. (Nota: ho fatto test per assicurarsi che il mio registro di callback stava lavorando)

È stato utile?

Soluzione

potrebbe essere correlato codec. Sono passato dal MSMPEG4V1 codec per MPEG1VIDEO e avcodec_encode_video è valori che sono un po 'più in linea con quello che mi aspettavo di tornare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top