2010-09-22 24 views
16

Vous avez essayé de comprendre cela sans succès. Je peux écrire une sortie vidéo sans problème ... mais une fois que j'essaie d'introduire un second AVAssetWriterInput pour inclure l'audio, le dernier film quicktime est nerveux avec des images perdues à gauche et à droite et de l'audio en permanence.Quelqu'un at-il un exemple d'écriture simultanée d'audio et de vidéo avec AVAssetWriter?

Merci - wg

+0

Peut-être nous montrer le code qui ne fonctionne pas comme prévu, si vous le pouvez. Cela donnerait aux répondants un bon point de départ. –

Répondre

1

Si vous incluez la source, nous pourrions être en mesure de vous aider davantage, mais cela est une méthode avec laquelle j'ai eu du succès par écrit plusieurs pistes audio et vidéo à un film quicktime - J'utilise un AVMutableComposition unique avec AVMutableVideoComposition et AVAudioMix. Je puis écrire comme ceci:

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

Utilisez-vous requestMediaDataWhenReadyOnQueue: usingBlock: pour écrire des données? Si ce n'est pas le cas, vous devez définir expectsMediaDataInRealTime sur YES.

0

J'ai eu le même problème. Ma solution:

1) Créez deux objets AVAssetWriter pour écrire l'audio et la vidéo dans deux fichiers.

2) Utilisez AVMutableComposition et AVAssetExportSession pour les composer en un seul fichier comme suggéré ci-dessus.

Peut-être que c'est moche. Mais dans mon projet, j'aurais dû composer plusieurs fichiers vidéo, donc la composition audio et vidéo ajoute peu de frais généraux.

0

Pour ceux qui cherchent sur la façon de faire cela, ce apple developer example devrait être tout ce dont vous avez besoin. Bonne chance.