視頻轉換傳輸協議服務。將rtsp、gb28181轉爲html5可以直接播放的協議。

視頻轉換傳輸協議服務,將rtsp協議、gb28181協議轉換爲html5可以直接播放的協議。

源碼下載地址:https://download.csdn.net/download/qq_20191467/12418188

說明:

  • ipc_server: 進程間通訊和進程保護的工具
    • pm.json 配置文件,需要啓動的程序信息。

對接海康SDK

  • hik_server: 使用海康sdk播放視頻並轉爲ws-flv
  • hikctrl_server: 查看平臺設備信息、客戶端信息
    • hikctrl.lua 數據庫腳本
    • config.txt 海康平臺登陸配置
  • 配置示例在Build/projects/config_hik_XXX
  • 客戶端請求格式爲 http(ws)://IP:port/live/flv/0/[code]
  • sdk只有32位的,導致整個項目工具層都增加了32位的編譯。只驗證海康相機上拋的是標準PS流,大華相機的是其私有碼流無法識別。
  • 這個對接的實際意義不是很大,國標對接延時上來後,不太需要這種方法了。 不再更新。

對接視頻流

  • relay_server: 將視頻流轉爲ws-flv,流可以爲rtsp、rtmp、hls等(理論上可以,只使用過rtsp)
  • relayctrl_server: 查看客戶端信息
  • 配置示例在Build/projects/config_relay_XXX
  • 客戶端請求格式爲(不包含[]) http(ws)://IP:port/live?url=[rtsp地址]&hw=[960*480]&type=[flv]&probsize=[102400]&probtime=[2]&outcatch=[16384]
    • url 原始視頻地址
    • 其他參數見下

對接國標gb28181平臺

  • sip_server: sip服務器,用來與下級平臺交互
  • live_server: 將下級推送的基於PS的rtp流轉爲ws-flv
  • livectrl_server: 查看設備信息、客戶端信息、設備控制
  • 配置示例在Build/projects/config_gb28181_XXX
  • 客戶端請求格式爲(不包含[]) http(ws)://IP:port/live?code=[code]&hw=[960*480]&type=[flv]&probsize=[102400]&probtime=[2]&incatch=[16384]&outcatch=[16384]
    • code 相機的國標編碼,必填項
    • hw 可選, 用來縮放視頻大小, 默認不進行縮放. 用來縮小視頻,只有填寫的值小於視頻原始值才生效
    • type 可選, 指定媒體封裝格式,默認爲flv. 可以是mp4、h264等, 另找播放方式
    • probsize 可選, ffmpeg探測流信息的緩衝大小,不指定時使用配置文件裏的值,配置文件也未指定時默認25600. ffmpeg默認值爲5000000
    • probtime 可選, ffmpeg探測流信息的緩衝時間,不指定時使用配置文件裏的值,配置文件也未指定時默認1秒. ffmpeg默認值爲0, 不同格式時間不一,ps流是7秒
    • incatch 可選, ffmpeg讀取內存中ps流數據的緩存大小,不指定時使用配置文件裏的值,配置文件也未指定時默認1024*16.
    • outcatch 可選, ffmpeg輸出轉換後的數據的緩存大小,不指定時使用配置文件裏的值,配置文件也未指定時默認1024*16.
  • 雲臺控制 http://ip:port/device/control?code=[code]&ud=[p1]&lr=[p2]&io=[p3]
    • code 相機的國標編碼
    • p1: 0-停止 1-向上 2-向下
    • p2: 0-停止 1-向左 2-向右
    • p3: 0-停止 1-焦距減 2-焦距加

編譯方法

  • 平臺: Windows vs2012
  • 用vs打開build/RelayLive.sln,按順序編譯ThirdParty、Common、Modules、Projects下的項目。
  • 編譯前需要在屬性管理器中將Microsoft.Cpp.x64.user(或Microsoft.Cpp.Win32.user)中修改以下:(或者在每個項目屬性中都修改一次)
    • 常規-輸出目錄:$(SolutionDir)..\out\$(Platform)_$(Configuration)\
    • 常規-中間目錄:$(SolutionDir)..\out\Temp\$(Platform)_$(Configuration)\$(ProjectName)\
    • 鏈接器-常規-附加庫目錄:$(OutDir);%(AdditionalLibraryDirectories)
  • 在輸出目錄部署配置文件pm.json,config.txt和腳本文件 XXX.lua。(文件在/Build/projects下有示例)
  • 從ffmpeg官方下載4.1以後的dll到輸出目錄。
  • 最好用64位進行編譯使用,如需32位,可能需要一些修改
  • 部署數據庫,數據庫的操作在XXX.lua中。
  • 使用ipc_server啓動
  • http-flv和websocket-flv都可以,但最好使用websocket-flv,免的出現跨域問題
  • 只保留了視頻,音頻丟棄了。

nginx

  • 頁面demo靜態文件通過nginx來訪問
  • 信息查詢和設備控制等http請求通過nginx轉發到XXXctrl_server
  • 視頻播放請求通過nginx進行負載均衡,轉發到對應的視頻服務

QQ交流羣:939938890

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