Iphone 使用AVAssetReader和AVAssetWriter将*.mp3与*.mov文件合并
我能够使用AVAssetWriter创建一个*.mov文件。我使用了使用AVCaptureSession获得的屏幕截图图像和音频CMSampleBuffer,并将其传递给AVAssetWriter的输入,结果成功了 现在,我想将*.mov文件与ipod/iphone音乐库中的音乐(很可能是*.mp3)合并。所以我最初的想法是使用AVAssetReader从*.mp3和*.mov文件中获取样本,并将样本传递给AVAssetWriter。这样行吗?仅仅通过阅读文档,我认为这是可能的 我对这个想法想了一会儿,但没能实现 我的第一次尝试是使用2个Avassetrader,每个文件一个。我使用AVAssetReaderAudioMixOutput作为第一个读卡器的输出,然后使用AVAssetReaderAudioMixOutput作为第二个读卡器的输出。问题在于,使用AvassetradeServiceDeCompositionOutput需要向其传递一个AVVideoComposition。我在创建AVVideoComposition/AVMutableVideoComposition时遇到问题,所以我放弃了这个解决方案。我不明白为什么我需要通过AV视频合成,我只想得到电影的样本 因此,我的第二次尝试与之类似,但我没有使用AvassetraderDeCompositionOutput作为第二个读卡器的输出,而是使用了2个AvassetraderTrackOutput。现在我有2个阅读器,总共有3个输出,我尝试使用输出中的示例并将其传递给AVAssetWriter以创建一个*.mov文件。我能够运行它,没有错误/崩溃。但我无法播放生成的*.mov文件。它的播放持续时间是0。所以再一次,Avassetrader+AVAssetWriter的想法没有运气 所以我的问题是:你能用AVAssetReader和AVAssetWriter合并两个文件吗?有没有人试过这样做,并使它发挥作用?我应该改用AVMutableVideoComposition吗Iphone 使用AVAssetReader和AVAssetWriter将*.mp3与*.mov文件合并,iphone,ios,video,audio,avfoundation,Iphone,Ios,Video,Audio,Avfoundation,我能够使用AVAssetWriter创建一个*.mov文件。我使用了使用AVCaptureSession获得的屏幕截图图像和音频CMSampleBuffer,并将其传递给AVAssetWriter的输入,结果成功了 现在,我想将*.mov文件与ipod/iphone音乐库中的音乐(很可能是*.mp3)合并。所以我最初的想法是使用AVAssetReader从*.mp3和*.mov文件中获取样本,并将样本传递给AVAssetWriter。这样行吗?仅仅通过阅读文档,我认为这是可能的 我对这个想法想了
如果有必要,我会发布我的代码。您可以使用Avassetrader和AVAssetWriter来合并这两个文件,但这可能比您需要的控制/功率曲线更远 AVAssetExportSession可能更适合,因为您可以在几行代码中合并音频和视频曲目:
谢谢你的回复。我只是想说清楚。通过将mp3与电影合并,我的意思是使mp3成为电影的背景声音。使用AVAsset+AVAssetWriter是否可以做到这一点?我假设它可以用AVComposition来完成。两种方法都可以,但AVAssetWriter更难。