奔跑吧 iOSGPUImage

ios 视频特效

2017-02-28  本文已影响552人  BookKeeping

音视频合成代码最全的介绍:http://www.jianshu.com/p/06ed571fb3b5

http://www.jianshu.com/p/5b03ff672dfb

源码地址

https://github.com/Joker-388/JKRAVCamera

1.音视频合成

连接:http://www.jianshu.com/p/9f83af9dbbef

代码地址

GitHub:https://github.com/Lafree317/MergeVideoAndMusic

2.视频裁剪

连接:http://blog.sina.com.cn/s/blog_64ea868501018jx3.html

3.图片合成视频

连接:https://github.com/HarrisonJackson/HJImagesToVideo

裁剪视频是很久之前所做的项目中用到的,现在又看到了,整理一下。

与之相关的这些类有些抽象,所以我这里重点将它们具体化。用代码将视频合成其实与绘声绘影/vegas等软件将视频合成的过程类似,首先了解下这类软件一些相关知识:一个工程文件中有很多轨道,如音频轨道1,音频轨道2,音频轨道3,视频轨道1,视频轨道2等等,每个轨道里有许多素材,对于每个视频素材,它可以进行缩放、旋转等操作,素材库中的视频拖到轨道中会分为视频轨和音频轨两个轨道。这里用这些软件里的一些术语类来比这些类:

AVAsset:素材库里的素材;

AVAssetTrack:素材的轨道;

AVMutableComposition :一个用来合成视频的工程文件;

AVMutableCompositionTrack :工程文件中的轨道,有音频轨、视频轨等,里面可以插入各种对应的素材;

AVMutableVideoCompositionLayerInstruction:视频轨道中的一个视频,可以缩放、旋转等;

AVMutableVideoCompositionInstruction:一个视频轨道,包含了这个轨道上的所有视频素材;

AVMutableVideoComposition:管理所有视频轨道,可以决定最终视频的尺寸,裁剪需要在这里进行;

AVAssetExportSession:配置渲染参数并渲染。

上一篇下一篇

猜你喜欢

热点阅读