Telegram視頻壓縮模塊簡單拆分

       新入職一家公司有一段時間了,本身負責的是基於Telegram的二次開發,應該也有童鞋用過這個軟件,俄羅斯大佬們開發的一款即時通信類軟件,主打安全、高效、快速……在國外用的比較多。這個項目是開源的從c到java所有開源……有興趣的童鞋能夠去看看。
這個項目很大涉及到的東西不少,看看jni目錄就知道了,不少底層模塊,須要會NDK交叉編譯,底層不少實現都是用jni實現的。項目沒有不少第三方庫,什麼大禮包啊啥的 ,除了特殊必要的第三方服務依賴。控件所有手寫,xml一個不用,而後打包apk體積就比較小……emm ……因此看這個項目的源碼也是很痛苦的,痛並快樂着! Telegram源碼
      進入正題,趁着這兩天沒事把Telegram的視頻壓縮模塊分離出來了,方便之後其餘項目使用 ,它的視頻壓縮是用opengles,項目還集成了ffmpeg,可是它在視頻壓縮並無用ffmpeg(可能有其餘用途 ) 核心類:

控制器類MediaController:java


通知管理類NotificationCenter:git


Build.VERSION.SDK_INT小於18還須要用到libyuv這個庫,我是直接從Telegram拿下來的。github

直接上demo代碼Github地址
安全

運行效果:
網絡


在視頻壓縮他作了壓縮隊列處理,每點一下就把任務加入了這個隊列,一個一個的執行。ide


視頻壓縮參數能夠在這個類裏面配:ui


       注意在使用demo須要把須要壓縮的視頻放置在根目錄命名test,我是懶得寫跳轉相冊業務邏輯了,方便演示用。實際開發本身指的路徑就好了。spa

       實際是怎麼處理視頻壓縮業務邏輯能夠去demo裏面看或者官方的Telegram源碼去看,我這裏只是簡單拆分出來,在Telegram裏面還有不少模塊、控件能夠拆出來單獨使用,後面打算仔細看看這個核心的Tgnet網絡模塊,看能不能單獨拆出來~~~~~3d

相關文章
相關標籤/搜索