使用rtsp帶starttime和endtime進行歷史回放報453 Not Enough Bandwidth(帶寬不足)

使用rtsp帶starttime和endtime進行歷史回放報453 Not Enough Bandwidth(帶寬不足)

系列文章:
瀏覽器不支持flash插件之後,h5播放rtmp直播流的解決方案
使用JavaCV實現海康rtsp轉rtmp實現無插件web端直播(無需轉碼,低資源消耗)
海康sdk捕獲碼流數據通過JavaCV推成rtmp流的實現思路(PS流轉封裝RTMP)
海康sdk項目(java)部署Linux環境相關問題總結

系列專欄:
流媒體技術
FFmpeg
JavaCV
海康sdk二次開發

rtsp進行歷史回放是的格式:

ffmpeg -rtsp_transport tcp -i rtsp://admin:[email protected]:554/Streaming/tracks/101?starttime=20200113t100000z’&'endtime=20200113t100030z -vcodec copy -acodec copy -f flv rtmp://localhost:1935/history/stream

問題解析

在進行監控安防設備通過web瀏覽器進行直播和點播的時候,很多人會採用rtsp-rtmp-nginx-flash這種方案來進行開發。針對海康的設備,可以通過使用JavaCV拉rtsp視頻流,轉封裝推成rtmp的流,通過video.js
來進行播放。使用JavaCV實現海康rtsp轉rtmp實現無插件web端直播(無需轉碼,低資源消耗)

在實現的時候發現,對於直播來說,rtsp轉rtmp可以很好的滿足需求。但是對於按需點播,歷史回放的時候,嘗試使用:

rtsp://admin:abcxxxxx@192.168.x.xxx:554/Streaming/tracks/101starttime=20200113t100000z'&'endtime=20200113t100030z

這樣rtsp指令,通過拼接’starttime’和’endtime’指定開始時間和結束時間來進行點播或者歷史回放時發現經常會遇到兩個問題:
1.程序阻塞,卡着不動
2.ffmpeg報錯,rtsp返回錯誤碼及錯誤信息:453 Not Enough Bandwidth(帶寬不足)

原因是因爲海康nvr有帶寬限制,通常出現這種情況後,需要等待很久才能再次訪問。並且通過rtsp來進行歷史回放本身就是一種’非主流‘的操作。這個問題基本無解,只能通過其他思路來實現需求。

解決方案

雖然rtsp帶時間參數來進行點播無法滿足需求,並且無法解決。但是海康web3.0可以進行歷史回放,所以可以考慮對海康的sdk進行二次開發,自己手動捕獲到直播和回放的碼流數據,處理過後推成rtmp的流。

可以參考:海康sdk捕獲碼流數據通過JavaCV推成rtmp流的實現思路(PS流轉封裝RTMP)

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