項(xiàng)目是仿照抖音的特效相機(jī),基本功能是使用相機(jī)拍攝短視頻,然后在視頻的基礎(chǔ)上添加一些視頻特效,項(xiàng)目源碼已上傳github:AwemeLike。
已實(shí)現(xiàn)功能
- 磨皮、美白
- 瘦臉大眼、唇彩、腮紅等臉部處理
- 2D動(dòng)態(tài)貼紙
- 分屏
- 轉(zhuǎn)場(chǎng)
- 常用濾鏡,比如抖動(dòng)、搖擺、毛刺等
待完成
- 多段視頻合并
- 變速播放和倒放
- 3D貼紙
存在的問題
由于項(xiàng)目播放器的解碼部分是由AVAssetReader
完成的,而AVAssetReader
并不適合用來(lái)做這種可以重置播放進(jìn)度的實(shí)時(shí)視頻播放,因?yàn)閷?duì)于AVAssetReader
來(lái)說,重置播放進(jìn)度都是一個(gè)非常耗時(shí)的操作,而且視頻文件越大耗時(shí)越多,當(dāng)耗時(shí)多了就會(huì)導(dǎo)致聲音出現(xiàn)噪音。
所以編輯的視頻最好是在1分鐘以內(nèi),這樣播放時(shí)可能偶爾才會(huì)有噪音出現(xiàn),不仔細(xì)聽其實(shí)是很難發(fā)現(xiàn)的。
這個(gè)問題好像是很難避免的,一種更好的方式是,使用FFmpeg解封裝,然后使用VideoToolBox解碼視頻幀,后面有時(shí)間會(huì)切換到這種方式。
關(guān)于face++的授權(quán)
使用前需要替換Face++的key和secret,就是下面的兩個(gè)宏,在項(xiàng)目中,它的文件路徑是Face++/MGNetAccount.h
// 訪問 https://www.faceplusplus.com.cn, 登錄后在控制臺(tái)生成對(duì)應(yīng)的 key 和 secret 填寫到下面的字符串中
#define MG_LICENSE_KEY @"" // api_key
#define MG_LICENSE_SECRET @"" // api_secret
#endif /* MGNetAccount_example_h */
然后調(diào)用授權(quán)方法,授權(quán)成功之后才能使用face++的人臉檢測(cè)
[[FaceDetector shareInstance] auth];
效果展示
美顏
設(shè)置特效
生成的視頻文件