音視頻合成代碼最全的介紹:http://m.itdecent.cn/p/06ed571fb3b5
http://m.itdecent.cn/p/5b03ff672dfb
源碼地址
https://github.com/Joker-388/JKRAVCamera
1.音視頻合成
連接:http://m.itdecent.cn/p/9f83af9dbbef
代碼地址
GitHub:https://github.com/Lafree317/MergeVideoAndMusic
2.視頻裁剪
連接:http://blog.sina.com.cn/s/blog_64ea868501018jx3.html
3.圖片合成視頻
連接:https://github.com/HarrisonJackson/HJImagesToVideo
裁剪視頻是很久之前所做的項(xiàng)目中用到的,現(xiàn)在又看到了,整理一下。
與之相關(guān)的這些類有些抽象,所以我這里重點(diǎn)將它們具體化。用代碼將視頻合成其實(shí)與繪聲繪影/vegas等軟件將視頻合成的過程類似,首先了解下這類軟件一些相關(guān)知識:一個工程文件中有很多軌道,如音頻軌道1,音頻軌道2,音頻軌道3,視頻軌道1,視頻軌道2等等,每個軌道里有許多素材,對于每個視頻素材,它可以進(jìn)行縮放、旋轉(zhuǎn)等操作,素材庫中的視頻拖到軌道中會分為視頻軌和音頻軌兩個軌道。這里用這些軟件里的一些術(shù)語類來比這些類:
AVAsset:素材庫里的素材;
AVAssetTrack:素材的軌道;
AVMutableComposition :一個用來合成視頻的工程文件;
AVMutableCompositionTrack :工程文件中的軌道,有音頻軌、視頻軌等,里面可以插入各種對應(yīng)的素材;
AVMutableVideoCompositionLayerInstruction:視頻軌道中的一個視頻,可以縮放、旋轉(zhuǎn)等;
AVMutableVideoCompositionInstruction:一個視頻軌道,包含了這個軌道上的所有視頻素材;
AVMutableVideoComposition:管理所有視頻軌道,可以決定最終視頻的尺寸,裁剪需要在這里進(jìn)行;
AVAssetExportSession:配置渲染參數(shù)并渲染。