2010-03-04 19 views
6

Sto lavorando su ffmpeg e sto provando ad aggiungere un flusso audio al volo. Sto usando AudioQueues e ottengo il buffer audio raw. Sto codificando audio con PCM lineare e quindi l'audio che otterrò sarà di formato raw, che so che ffmpeg lo accetta. Ma non riesco a capire come. Ho esaminato AVStream, in cui dobbiamo creare un nuovo stream per questo canale audio, ma come faccio a codificarlo su un video che è già inizializzato in un'altra struttura AVStream.Aggiunta del canale audio usando ffmpeg

Nel complesso, mi piacerebbe avere un'idea dell'architettura di ffmpeg. Ho trovato difficile lavorare poiché è meno documentato. Eventuali puntatori o dettagli sono apprezzati.

Grazie e saluti, Raj Pawan G

+0

Ciao, hai qualche campione relativo a OSX, sto cercando di lavorare sullo stesso – Swati

+0

Purtroppo non ho accesso al codice sorgente! –

risposta

2

Se si desidera utilizzare Java, troverete un wrapper molto meglio documentata API per FFmpeg con Xuggler.

Detto questo, FFmpeg può supportare Raw PCM ma non tutti i contenitori possono contenerlo. usa i codec PCM (vedi avcodec.h) e trova quello che ha le giuste dimensioni e gli attributi che vuoi. Per aggiungere l'audio allo stesso contenitore, trovare un oggetto AVFormatContext che si utilizza per il flusso video esistente e utilizzare av_new_stream (...) per aggiungere un nuovo flusso. Quindi collegare il codificatore PCM e "codificarlo" e scrivere i pacchetti risultanti. Vedi output_example.c in FFmpeg per esempi di questa API in azione.

+1

Ya grazie, ho già iniziato a seguire in quella direzione. In pratica sto seguendo output_example.c e ti risponderò se verrò colpito ovunque. Sto usando Cocoa però, non java. Ma comunque, il linguaggio di implementazione è un'astrazione per le chiamate FFMpeg! –

Problemi correlati