在我的 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:约翰