02 将几张图片合成为一个视频
来源:互联网 发布:免费足球缩水软件 编辑:程序博客网 时间:2024/06/05 16:13
将几张图片合成为一个视频,是我在网址找到的方法做成了一个Demo,分享给大家
一、代码
// 初始化压缩引擎 AVAssetWriter *videoWriter = [[AVAssetWriter alloc] initWithURL:[NSURL fileURLWithPath:self.moviePath] fileType:AVFileTypeQuickTimeMovie error:&error];
// 设置生成的视频的参数,尺寸和编码格式 NSDictionary *videoSetting = [NSDictionary dictionaryWithObjectsAndKeys:AVVideoCodecH264,AVVideoCodecKey,[NSNumber numberWithInt:movieSize.width],AVVideoWidthKey,[NSNumber numberWithInt:movieSize.height],AVVideoHeightKey, nil];
// 将多张图片合成为一个视频文件的主体代码 dispatch_queue_t queue = dispatch_queue_create("mediaInputQueue", NULL); int __block frame = 0; [writerInput requestMediaDataWhenReadyOnQueue:queue usingBlock:^{ while ([writerInput isReadyForMoreMediaData]) { if(++frame >= [self.imageArr count] * 10){ [writerInput markAsFinished]; [videoWriter finishWritingWithCompletionHandler:^{ NSLog(@"结束了"); }]; break; } CVPixelBufferRef buffer = NULL; // 和下面的CMTimeMake(frame, 5)一起控制视频的长度,和上面的 [self.imageArr count] * 10 中的10 是一个 int idx = frame / 10; NSLog(@"idx == %d",idx); buffer = [self pixelBufferFromCGImage:[[self.imageArr objectAtIndex:idx] CGImage] size:movieSize]; if(buffer){ // 将获得的视频段添加到一起 if([adaptor appendPixelBuffer:buffer withPresentationTime:CMTimeMake(frame, 5)]){ NSLog(@"写入成功"); } else{ NSLog(@"写入失败"); CFRelease(buffer); } } } }];
// 把CGImageRef格式转换为CVPixelBufferRef格式- (CVPixelBufferRef)pixelBufferFromCGImage:(CGImageRef)image size:(CGSize)size
二、工程地址
工程地址 0 0
- 02 将几张图片合成为一个视频
- python 将多个图片合成为一个视频
- 把多帧图片合成为视频
- IOS多张图片合成一个视频
- IOS多张图片合成一个视频
- IOS多张图片合成一个视频
- IOS多张图片合成一个视频
- iOS多张图片合成一个视频
- IOS多张图片合成一个视频
- iOS多张图片合成一个视频
- iOS多个视频拼接合成为一个视频
- Matlab图片合成视频
- matlab 图片合成视频
- ffmpeg图片合成视频
- FFmpeg 图片合成视频
- opencv 将图片合成为视频流(AVI格式)
- ffmpeg 将图片序列合成为一段视频
- opencv 将图片合成为视频流(AVI格式)
- Android Studio配置SVN版本控制工具及移除版本控制
- Android中Java和JavaScript交互
- YTU:C语言习题 不等长字符串排序
- 给未来程序员的15个顶级职业建议
- CountOnce(spark)
- 02 将几张图片合成为一个视频
- 蓝桥杯--2013--错误票据(模拟)
- p89~p90浮点数部分
- 模拟器没有在adb devices中显示
- 用Maven构建Hadoop项目
- 高斯混合模型的终极理解
- MSP430FR5969学习心得
- Java多态性
- 解决android studio报Error:Gradle DSL method not fount: 'compile()'