objective-c ios4 video-capture avfoundation avassetwriter

objective c - ¿Alguien tiene un ejemplo de cómo escribir audio y video simultáneamente usando AVAssetWriter?



objective-c ios4 (4)

He estado tratando de resolver esto con éxito cero.

Puedo escribir la salida de video sin problema ... pero una vez que trato de presentar un segundo AVAssetWriterInput para incluir audio, la película final de quicktime está sobresaltada, los cuadros se pierden a la izquierda y a la derecha y el audio entra y sale constantemente.

Gracias - wg


¿Está utilizando requestMediaDataWhenReadyOnQueue: usingBlock: para escribir datos? Si no es así, debe configurar expectsMediaDataInRealTime en YES.



Si incluye una fuente, podríamos ayudarlo más, pero este es un método con el que he tenido éxito al escribir muchas pistas de audio y video en una película de tiempo rápido: uso una única composición de AVMutable con AVMutableVideoComposition y AVAudioMix. Entonces lo escribo así:

AVAssetExportSession *session = [[[AVAssetExportSession alloc] initWithAsset:[project.composition copy] presetName:presetName] retain]; session.outputFileType = [session.supportedFileTypes objectAtIndex:0]; session.outputURL = [NSURL fileURLWithPath:[VeporterAppDelegate createMoviePath]]; session.videoComposition = project.videoComposition; session.audioMix = project.audioMix; session.metadata = project.metadata; [session exportAsynchronouslyWithCompletionHandler:^{}];


Tengo el mismo problema. Mi solución:

1) Cree dos objetos AVAssetWriter para escribir audio y video en dos archivos.

2) Use AVMutableComposition y AVAssetExportSession para componerlos en un archivo como se sugirió anteriormente.

Tal vez sea feo. Pero en mi proyecto debería haber compuesto varios archivos de video, así que componer audio y video agrega poca sobrecarga.