序言
這裏根據JTT1078-2016的文檔進行個梳理.相當於排個優先級.很人多做事情沒有優先級,總想一口吃個大胖子
先梳理業務分個優先級,再把問題列出來就成功一大半了是不是這麼個意思.(我是這麼做事情的哈,[email protected]).然後要多總結,回頭看的話收穫不小.
從業務功能上
業務是根本,很多半瓶不滿,來回晃盪的就知道聊架構.應該從業務上出發,分各優先級在去弄實現方案.
-
首先映入眼簾的是關於終端的通信協議分爲TCP和UDP.這個優先級最高
-
最基本的業務需求: 實時視頻,回放視頻,優先級最高
-
關於視頻控制的需求:這個是調整視頻質量和速度的關鍵點.這個的優先級是次高的
-
其它相關的需求::視頻文件上傳,雲臺控制,視頻文件檢索, 視頻字幕疊加設置,視頻報警(信號丟失,疲勞駕駛,打電話,抽菸,視頻遮擋)
-
政府平臺與企業平臺之間的通信,這個優先級最低.
另外關於視頻控制的這個需求包含的內容很多,也多涉及到一些視頻的基本支持.這個要有點功底才能瞭解.主要的有如下幾個:
- 實時流編碼模式:固定碼率CBR,可變碼率VBR,平均碼率ABR
- 分辨率:QCIF,CIF,WCIF,D1,WD1,720P,1080P,
- 關鍵幀的間隔,實時流目標幀率,實時流目標碼率,字幕疊加,是否啓用音頻
- 實時視頻傳輸狀態可以知道 丟包率
- 視頻編碼:H264 H265 AVS SVAC
- 音頻編碼:G721 G722 G721 G723 G728 G729
- 聲道數 2.0 2.1 5.0
從具體實施上
終端層
- 廠家終端協議的不統一,需要針對每個廠家的推流協議進行兼容.且相同版本的協議但是內容格式與含義不統一
- 廠家終端協議的不統一會影響到視頻的卡頓,與音頻的同步.
- 廠家終端的一次升級也會帶來終端協議的推流的某些改變(暫未證實,但很有可能)
- 老設備與新設備的兼容的問題解決會很複雜
網絡接收層
此網絡接收層是集羣部署,同時存在併發處理,熱備問題待解決
1078協議要求的是同時支持TCP與UDP的數據推送.目前包括主流的的流服務都是支持TCP的.網絡接收層目前僅做協議解析工作.後期還有安全,推流,轉流,播放,等控制功能.
流媒體服務器
目前流媒體服務器是使用開源的流服務,此流服務肯定會有缺陷需要調整.例如視頻卡頓,播放控制,轉流存儲,事件監控等流媒體服務器佔用帶寬,集羣部署,熱備功能等問題解決.這個我推薦2個Nginx-rtmp和SRS.(如果有其它的可以推薦給我[email protected])
視頻,音頻問題
視頻,音頻問題主要是實現 實時播放視頻,減少卡頓或延遲.音頻主要是要與視頻進行同步播放.但是此問題的觸發可能在多個地方,比如終端協議的不同或者錯誤造成了延遲,卡段音視頻不同步. 或者是流媒體服務器的配置影響.又或者網絡接收層的程序效率不能實時播放或者同步(關於網絡層與帶寬暫時不考慮).
前端插件
前端插件的播放器可以做成簡單的視頻播放,但是如果需要提供截圖,下載,暫定,緩存等功能.還需要對開源的videojs進行二次封裝.
企業平臺或者政府平臺
如果要接入新的流媒體服務.則企業平臺,政府平臺需要梳理改動地方,並針對新的流服務方式進行新的控制於管理.如此 各平臺與流媒體服務之間肯定有業務數據上的交互.相互間的接口調用必不可少.