2010-03-04 14 views
6

Estoy trabajando en ffmpeg y tratando de agregar una transmisión de audio sobre la marcha. Estoy usando AudioQueues y obtengo un buffer de audio en bruto. Estoy codificando audio con PCM lineal y, por lo tanto, el audio que recibo será en formato raw, y sé que ffmpeg lo acepta. Pero no puedo entender cómo. He investigado AVStream, donde tenemos que crear una nueva transmisión para este canal de audio, pero ¿cómo codificarlo en un video que ya se ha inicializado en otra estructura AVStream?Agregar canal de audio usando ffmpeg

En general, me gustaría tener una idea de la arquitectura de ffmpeg. Me resultó difícil trabajar porque está menos documentado. Cualquier puntero o detalles son apreciados.

Gracias y Saludos, Raj Pawan G

+0

Hola, ¿tienes alguna muestra relacionada con OSX, estoy tratando de trabajar en el mismo – Swati

+0

desafortunadamente no tengo acceso al código fuente! –

Respuesta

2

Si desea utilizar Java, encontrará una más y mejor documentados envoltorio de API para FFmpeg con Xuggler.

Dicho esto, FFmpeg puede admitir PCM sin procesar pero no todos los contenedores pueden contenerlo. utilice los códecs PCM (consulte avcodec.h) y encuentre el que tenga el tamaño y los atributos correctos que desee. Para agregar el audio al mismo contenedor, busque un objeto AVFormatContext que use para la transmisión de video existente y use av_new_stream (...) para agregar una nueva transmisión. A continuación, conecte su codificador PCM y 'codifique' a eso y escriba los paquetes resultantes. Vea output_example.c en FFmpeg para ejemplos de esta API en acción.

+1

Ya gracias, ya empecé a seguir en esa dirección. Básicamente estoy siguiendo output_example.c y te llamaré si me golpean en algún lado. Estoy usando Cocoa, no java. ¡Pero de todos modos, el lenguaje de implementación es una abstracción para las llamadas FFMpeg! –

Cuestiones relacionadas