天天看點

spydroid_ipcamera源碼分析-圖解,android ip攝像頭

接上一篇《舊手機利用(Android),當wifi,當mic,當ipcamera》

鑒于上一篇手機當做ipCamera使用的EsayIpcamera app隻能選擇640x480的分辨率,這裡看到另一個app, spydroid, 可以支援修改設定編碼參數,還支援audio,重要的一點,它是開源的,在github上:fyhertz/spydroid-ipcamera

不過這個app有些老舊,使用的Android sdk的MediaCodec進行編碼,然後在啟用一個RTSP服務發送流,找了幾個版本的app都沒能成功運作,是以着手自己通過源碼來編譯了。

使用新搭建的android-studio 3.5.3

compileSdkVersion 28

buildToolVesion “29.0.2”

從可以使用的helloworld一點點添加spydroid源工程的類,xml, res改過來。

spydroid_ipcamera源碼分析-圖解,android ip攝像頭

碰到很多AS編譯建構的問題,閃退的問題,menu菜單不顯示的問題等等。

這裡分析下源碼,順便鞏固學習app的開發,從源碼中可以提取出一個完整的java版本的RTSP服務端程式,和http服務程式(http服務使用的是其他的jar包)

進入正題------------ 源碼圖解:

界面:

spydroid_ipcamera源碼分析-圖解,android ip攝像頭

RtspServer 類,rtsp服務程式:

兩個亮綠色的是循環體,線程,一個服務監聽,一個處理已經連接配接的用戶端的請求。

spydroid_ipcamera源碼分析-圖解,android ip攝像頭

有關于rtsp 服務的請求處理:

spydroid_ipcamera源碼分析-圖解,android ip攝像頭

h264視訊流的打包,發送:

spydroid_ipcamera源碼分析-圖解,android ip攝像頭

記錄!待續