5

在我的 iOS 应用程序中,我需要将图像保存为短视频片段。我使用 AVAssetWriter 和 AVAssetWriterPixelBufferAdaptor 进行了这项工作,这要感谢这个网站上的一些很棒的帖子,但是我不得不捏造开始和结束会话时间以及演示时间,因为我不太了解它们。

以下片段创建了一个 2 秒的视频,但我通过反复试验设置了不同的时间。老实说,我不确定它为什么不制作 3 秒视频。

// start session
videoWriter.movieFragmentInterval = CMTimeMake(1,600);
[videoWriter startWriting];
CMTime startTime = CMTimeMake(0, 600);
[videoWriter startSessionAtSourceTime:startTime];

while (1) {
    if (![writerInput isReadyForMoreMediaData]) {
        NSLog(@"Not ready for data");
    } else {
        [avAdaptor appendPixelBuffer:pixelBuffer 
                withPresentationTime:CMTimeMake(1200,600)];
        break;
    }
}

//Finish the session:
[writerInput markAsFinished];
CMTime endTime = CMTimeMake(1800, 600);
[videoWriter endSessionAtSourceTime:endTime];
[videoWriter finishWriting];

任何人都可以解释这个片段中的各种时间设置,或者指向一个有帮助的文档吗?我已经阅读了苹果文档,直到我睁一只眼闭一只眼,但我猜他们假设的知识比我目前拥有的要多。

TIA:约翰

4

0 回答 0