2010-09-22 13 views
16

State cercando di capirlo senza successo.Qualcuno ha un esempio di come scrivere audio e video contemporaneamente usando AVAssetWriter?

Impossibile scrivere l'uscita video senza problemi ... ma una volta che provo a introdurre un secondo AVAssetWriterInput per includere l'audio, il film di quicktime finale è nervoso con frame in perdita a destra e a sinistra e audio che entra ed esce costantemente.

Grazie - wg

+0

Forse mostraci il codice che non funziona come previsto, se puoi. Darebbe ai rispondenti un buon punto di partenza su cui lavorare. –

risposta

1

Se si include fonte potremmo essere in grado di aiutarvi di più, ma questo è un metodo con il quale ho avuto successo per iscritto molte tracce audio e video a un filmato QuickTime - io uso un singolo AVMutableComposition con AVMutableVideoComposition e AVAudioMix. Ho poi scrivere in questo modo:

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:^{}]; 
1

Si sta utilizzando requestMediaDataWhenReadyOnQueue: usingBlock: per scrivere i dati? In caso contrario, è necessario impostare expediaMediaDataInRealTime su YES.

0

Ho avuto lo stesso problema. La mia soluzione:

1) Creare due oggetti AVAssetWriter per scrivere audio e video in due file.

2) Utilizzare AVMutableComposition e AVAssetExportSession per comporli in un unico file come suggerito sopra.

Forse è brutto. Ma nel mio progetto avrei dovuto comporre diversi file video, quindi la composizione di audio e video aggiunge un sovraccarico.

0

Per chi cerca su come fare questo, questo apple developer example dovrebbe essere tutto ciò che serve. In bocca al lupo.

Problemi correlati