日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

接口调用简单、多平台支持的RTSP-Server组件EasyRTSPServer如何修正多网卡多IP情况下解码器不能解码显示问题

發布時間:2023/12/31 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 接口调用简单、多平台支持的RTSP-Server组件EasyRTSPServer如何修正多网卡多IP情况下解码器不能解码显示问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

EasyRTSPServer修正多網卡多IP情況下解碼器不能解碼顯示問題

提出問題:

海康NVR接入正常,但接入海康解碼器出不來圖像。

分析問題:

海康解碼器是以rtp over udp的方式進行取流,如果運行streamingServer的PC,網絡設置為以下兩種情況,則都可以正常上墻顯示 :

  • 本機僅設置一個IP,且和解碼器在同一網段;
  • 本機有兩個IP, 如192.168.xx.xx 和 190.168.xx.xx,解碼器網段為190.168.xx.xx;
  • 當同一網卡設置了以下不同網段的IP,則會出現解碼器不能解碼上墻的問題,如:

    192.168.100.8
    192.168.5.8
    190.168.100.1
    190.168.12.8

    經過分析,在setupDatagramSocket函數中,bind時填寫的地址為0.0.0.0,而本機中有多個ip,猜想是因為在發送udp數據時,系統隨機選用一個ip與解碼器通信,導致解碼器沒有收到數據。

    解決問題:

    注: 必須將sps、pps、關鍵幀數據分開發送,否則海康解碼器只能接收但不解碼顯示;

    在setupDatagramSocket函數中增加參數 int clientSock, 用于獲取當前解碼器和streamingserver通信的ip, 將其綁定, 如下:

    int setupDatagramSocket(UsageEnvironment& env, Port port, int clientSock, LIVE_IP_VER_ENUM ipVer) {...MAKE_SOCKADDR_IN(name, addr.sin_addr.s_addr, port.num());if (clientSock > 0){int nSize = sizeof(struct sockaddr_in);struct sockaddr_in clientAddr;memset(&clientAddr, 0x00, sizeof(clientAddr));getsockname(clientSock, (struct sockaddr*)&clientAddr, &nSize);memcpy(&name.sin_addr, &clientAddr.sin_addr, sizeof(name.sin_addr));}if (bind(newSocket, (struct sockaddr*)&name, sizeof name) != 0) {char tmpBuffer[100];sprintf(tmpBuffer, "bind() error (port number: %d): ",ntohs(port.num()));socketErr(env, tmpBuffer);closeSocket(newSocket);return -1;}... }

    在調用setupDatagramSocket的地方全都加上int clientSock, 并在入口處將其傳入;

    注意事項:
    在sdp信息中,可將sprop-parameter-sets為空,如下:

    m=video 0 RTP/AVP 96 c=IN IP4 0.0.0.0 b=AS:1048576 a=rtpmap:96 H264/90000 a=fmtp:96 packetization-mode=1;sprop-parameter-sets= a=control:track1

    當sprop-parameter-sets為空時,只要在后面的rtp包中發送了sps,pps信息,解碼器即可正常解碼顯示;

    總結

    以上是生活随笔為你收集整理的接口调用简单、多平台支持的RTSP-Server组件EasyRTSPServer如何修正多网卡多IP情况下解码器不能解码显示问题的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。