小编典典

如何将 UIImage 数组导出为电影?

all

我有一个严重的问题:我有NSArray几个UIImage对象。我现在想做的是从那些UIImages. 但我不知道该怎么做。

我希望有人可以帮助我或向我发送一个代码片段,它可以做我想做的事情。

编辑: 供将来参考 - 应用解决方案后,如果视频看起来失真,请确保您正在捕获的图像/区域的宽度是 16 的倍数。经过数小时的努力后在这里找到:
为什么我的 UIImages 电影会得到扭曲?

这是完整的解决方案(只需确保宽度是 16 的倍数)
http://codethink.no-ip.org/wordpress/archives/673


阅读 70

收藏
2022-07-07

共1个答案

小编典典

看看AVAssetWriter和AVFoundation
框架
的其余部分。writer
有一个AVAssetWriterInput类型的输入,它又具有一个名为appendSampleBuffer:的方法,可让您将单个帧添加到视频流中。基本上你必须:

1)给作者接线:

NSError *error = nil;
AVAssetWriter *videoWriter = [[AVAssetWriter alloc] initWithURL:
    [NSURL fileURLWithPath:somePath] fileType:AVFileTypeQuickTimeMovie
    error:&error];
NSParameterAssert(videoWriter);

NSDictionary *videoSettings = [NSDictionary dictionaryWithObjectsAndKeys:
    AVVideoCodecH264, AVVideoCodecKey,
    [NSNumber numberWithInt:640], AVVideoWidthKey,
    [NSNumber numberWithInt:480], AVVideoHeightKey,
    nil];
AVAssetWriterInput* writerInput = [[AVAssetWriterInput
    assetWriterInputWithMediaType:AVMediaTypeVideo
    outputSettings:videoSettings] retain]; //retain should be removed if ARC

NSParameterAssert(writerInput);
NSParameterAssert([videoWriter canAddInput:writerInput]);
[videoWriter addInput:writerInput];

2)开始一个会话:

[videoWriter startWriting];
2022-07-07