Android音视频编辑器架构图与分析
目前市面上音視頻交互框架基本上分兩種,一個是類似抖音快手那樣的從相機交互界面出發(fā)的,往相機幀加美顏,貼紙等各種特效的交互,另一個是類似剪映,必剪等更專業(yè)一點的視頻編輯軟件,它增加了多軌道,轉(zhuǎn)場等一些更復(fù)雜的效果。
??
?
不過萬變不離其宗,都是解出視頻幀,然后對視頻幀做特效,然后合成視頻這一流程。接下來我們就來講講整個流程中每個階段我們會用到什么技術(shù)
1.? 解碼出視頻幀與音頻幀:這里有兩個技術(shù)方案,用FFmpeg軟解和用MediaCodec硬解。用FFmepg軟解的話基本都是在FFmpeg的API上進(jìn)行操作,不過需要自己去編譯FFmpeg的so庫,且得考慮包大小問題。用MediaCodec的話首先是用Android的多媒體框架里的MediaExtractor,MediaCodec等類來進(jìn)行音頻文件的視頻跟音頻軌道分離,以及解碼出視頻幀跟音頻幀。
2. 現(xiàn)在成熟的APP,獲得視頻幀后基本上都會做一層視頻幀的理解,比如做美顏的軟件,需要提前去分析該幀來獲得眼睛,臉輪廓等的位置,以便后邊進(jìn)行大眼,瘦臉等效果,這一步需要借助深度學(xué)習(xí)模型,后邊我也會補上這一專題(移動端這么進(jìn)入深度學(xué)習(xí))
3. 第三步是去做具體的特效,將視頻幀做為紋理輸入,將第二步獲得的信息作為參數(shù)輸入,利用Opengl去做特效,這一步基本就是搭建好一個gl的框架和一些shader特效的編寫,比如美白,大眼,貼紙等等,每一個都是專題,后邊我也會寫文章來具體分析
?
4. 最后就是將渲染出來的最終幀合成視頻,這一步跟第一步差不多,要么用FFmpeg,要么用MediaCodec大家族
當(dāng)然這只是簡單帶大家領(lǐng)略一下一個視頻編輯框架是怎樣的,具體里邊會有各種多線程處理,音視頻數(shù)據(jù)的解析,各種特效的實現(xiàn)都是非常值得大家學(xué)習(xí)的
最后也歡迎大家添加我的微信號,第一時間會在這里更新哦,有什么問題也歡迎私信與我交流
?
總結(jié)
以上是生活随笔為你收集整理的Android音视频编辑器架构图与分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言中- gt he,C语言中deta
- 下一篇: android sina oauth2.