ios - 使用 AVMutableComposition 合并视频的问题
<p><p>我正在使用 iOS 设备录制短视频片段,然后尝试将多个片段合并为一个较大的视频。一切正常,除了在最终视频中,在每个剪辑片段之间它会闪烁第一个剪辑的第一帧。</p>
<p>比如我要合并clip1、clip2、clip3。结果是(clip1)->(clip1的第一帧)->(clip2)->(clip1的第一帧)->(clip3)</p>
<p>这是我用来合并它们的代码。</p>
<pre><code>AVMutableComposition* mainComposition = [ init];
AVMutableCompositionTrack* compositionVideoTrack = ;
AVMutableCompositionTrack* compositionAudioTrack = ;
CMTime insertTime = kCMTimeZero;
for (NSURL* clip in self.sessionClips)
{
AVURLAsset* asset = ;
AVAssetTrack* videoAssetTrack = [ objectAtIndex:0];
AVAssetTrack* audioAssetTrack = [ objectAtIndex:0];
;
;
insertTime = CMTimeAdd(insertTime, videoAssetTrack.timeRange.duration);
}
/* Export the video */
NSURL* exportURL = ];
AVAssetExportSession* exporter = [ initWithAsset:mainComposition presetName:AVAssetExportPresetPassthrough];
;
;
[exporter exportAsynchronouslyWithCompletionHandler:^(void){
/* Finished exporting, save to photo album */
[[ init] writeVideoAtPathToSavedPhotosAlbum:exportURL completionBlock:^(NSURL* assetURL, NSError *error) {
if (error)
NSLog(@"%@", error);
}];
}];
</code></pre>
<p>所有的视频片段都是通过 AVAssetWriter 使用 fileType:AVFileTypeQuickTimeMovie 录制的。</p>
<p>编辑:还想添加,如果我下载视频片段并将它们与我的 Mac 上的 MP4Box 之类的东西合并,则生成的视频很好。</p>
<p>谢谢!</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>我能够解决这个问题。</p>
<p>我的问题是我将较小的剪辑录制为 AVFileTypeQuickTimeMovie,但随后尝试将视频导出为 AVFileTypeMPEG4。将较小的剪辑录制为 AVFileTypeMPEG4 解决了该问题。</p></p>
<p style="font-size: 20px;">关于ios - 使用 AVMutableComposition 合并视频的问题,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/25654566/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/25654566/
</a>
</p>
页:
[1]