Android RTSP 攝像頭推流

前言

Android的攝像頭的功能擴展越來越豐富, 近段時間因爲涉及到RTSP推送的需求, 稍微瞭解記錄踩過的坑.

服務端

純JAVA開發的服務端項目, 幾年前用過, 時至今日, 依然好用.

客戶端

客戶端, PC上建議用VLC, 在調試很方便, 功能也強大.
手機端, 這個重點說說, 畢竟, 在幾年前, 踩過較深的坑就是它:

然後, 嘗試後的結果是:

延遲

這是個老生常談的問題

  • 手機端的VideoView/MeidaPlayer控件, 在播放後, 經常會發現有5秒的延遲
  • 在PC上使用VLC測試, 默認設置的情況下, 會在2秒左右

最開始, 懷疑是服務端的問題, 折騰了不少時間, 只能說, 還是太年輕了

  • VLC中連接的設置:
    在這裏插入圖片描述
    緩存適當降低, 如, 把1000ms 改爲200ms
  • 手機端, 就要找到好用的播放控件或工具
    RTSPPlayer: 這個項目, 曾經效果還不錯, 只是最近測試發現, 經常連不上或連上後沒圖像或花屏, 接口中, 延時可以支持100ms左右.
    vlc-android: 怎麼說呢, 強大, 但要很能折騰, 曾經下載並編譯過, 最終出來的效果卻不盡如人意(跟官方發佈的APK表現不同)

擴展

圖像格式轉換

Android YUV圖像轉換算法和檢測工具
YUV420P、YUV420SP、NV12、NV21和RGB互相轉換並存儲爲JPEG以及PNG圖片

GIT clone失敗

$ git clone https://github.com/tsingsee/EasyPlayer-RTSP-Android.git
正克隆到 'EasyPlayer-RTSP-Android'...
remote: Enumerating objects: 50, done.
remote: Counting objects: 100% (50/50), done.
remote: Compressing objects: 100% (29/29), done.
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: 過早的文件結束符(EOF)
fatal: index-pack failed

git clone時RPC failed; curl 18 transfer closed with outstanding read data remaining

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章