關於海康威視預覽圖像報錯誤404的解決方案

關於海康威視預覽圖像報錯誤404的解決方案


       在用QT對海康威視進行二次開發時,遇到一個問題:我在第一臺電腦使用NET_DVR_RealPlay_V40函數時可以正常預覽,但是在第二臺電腦上運行時出現錯誤代碼404。此外,我在第一臺電腦上Debug模式運行時正常,Release模式運行時也會出現錯誤404的情況。幫助文檔上顯示錯誤的原因是:The assigned URL does not exist: when the server returns 404, SDK turns into this error code. E.g. the channel is not available, or the channel does not support sub stream。
       剛開始我以爲是SDK版本沒有對應,在反覆驗證了之後發現不是這個問題。後來以爲是編程不規範導致的,又反覆檢查了變量的聲明和定義。最後通過和技術支持溝通,檢查了端口554也沒有問題。最終在參數設置中增加了編解碼類型和錄音回傳參數的設置,問題得到解決。

NET_DVR_PREVIEWINFO struPlayInfo_1;
HWND hWnd1 = reinterpret_cast<HWND>(ui->widget_5->winId());
struPlayInfo_1.hPlayWnd=hWnd1;
struPlayInfo_1.lChannel = 1;
struPlayInfo_1.dwStreamType = 0;//碼流類型:0-主碼流,1-子碼流,2-碼流3,3-碼流4,以此類推
struPlayInfo_1.dwLinkMode = 0;//連接方式:0- TCP方式,1- UDP方式,2- 多播方式,3- RTP方式,4-RTP/RTSP,5-RSTP/HTTP
struPlayInfo_1.bBlocked = 1; //0- 非阻塞取流,1- 阻塞取流
struPlayInfo_1.dwDisplayBufNum = 1; //播放庫播放緩衝區最大緩衝幀數
struPlayInfo_1.byProtoType = 0;
struPlayInfo_1.byPreviewMode =  0;
struPlayInfo_1.byVideoCodingType=0;
struPlayInfo_1.bPassbackRecord=0;
IRealPlayHandle_1 = NET_DVR_RealPlay_V40(userID,&struPlayInfo_1,nullptr,nullptr);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章