瀏覽器播放rtsp流媒體解決方案


 老板提了一個需求,想讓網頁上播放景區監控的畫面,估計是想讓游客達到未臨其地,已知其境的狀態吧。
    說這個之前,還是先說一下什么是rtsp協議吧。
 RTSP(Real Time Streaming Protocol),實時流傳輸協議,是TCP/IP協議體系中的一個應用層協議,由哥倫比亞大學、網景和RealNetworks公司提交的IETF RFC標准。該協議定義了一對多應用程序如何有效地通過IP網絡傳送多媒體數據。RTSP在體系結構上位於RTP和RTCP之上,它使用TCP或RTP完成數據傳輸。HTTP與RTSP相比,HTTP傳送HTML,而RTP傳送的是多媒體數據。HTTP請求由客戶機發出,服務器作出響應;使用RTSP時,客戶機和服務器都可以發出請求,即RTSP可以是雙向的。(管他說的啥,反正就是攝像頭的協議,網頁不能直接播)。
 跟后台研究了幾天,決定的實現方式是:nginx搭的服務器,ffmpeg轉碼,jwplayer播放。(未知的時候像讀天書,真要了解了,感覺也沒多難)。
什么都不說了,卷起袖子玩玩吧。先搞個ffmpeg、nginx和jwplay。

圖片    

1.先把nginx開了。

圖片 

conf里我用的是這兩個端口,

圖片

1935不是http,但8080的www是呀, 先放個本地的mp4看看有沒有問題。

圖片

2再說說ffmpeg.
 FFmpeg是一套可以用來記錄、轉換數字音頻、視頻,並能將其轉化為流的開源計算機程序。在這里我只用到了它的視屏格式轉換功能,將rtsp協議的視頻流轉成rtmp(監控本身是rtsp協議,現在這個方案雖然用了jwplay,但也只是支持rtmp,因此要用ffmpeg轉碼)
舉個例子:
假如海康攝像頭的監控地址為(rtsp://admin:12345@192.168.10.215/h264/ch1/main/av_stream)(帳戶,密碼,ip,端口,.....)

這串地址每一項都要對,不然就等着報錯吧,錯了重來也是挺浪費時間的。
圖片
如圖就是地址不對導致的授權失敗。
話不多說,讓我們開了ffmpeg吧。
圖片
然后再轉一下rtmp
圖片
如果成功了會一直轉,不停歇:
圖片
至此,ffmpeg就先這樣吧
3 讓我們開了jwplayer
圖片
key值一定要有,這是我以前覺的一切都沒錯,js也引了,可還是實現不了播放的一個原因。
jwplayer雖然是國外的還是很不錯的,可以自定義直播封面,插播廣告等,可惜有的功能要花錢。
最后刷下local,
圖片
 
ok,海康的攝像頭再也不需要海康的軟件才能看直播了。
其實,實踐過程中還出過一些其它錯誤,時間拖的太長,我也記不清了。
一開始是想用websocket直接拿過來video直接播放rtsp的,由於后台說的某些原因,就改用這個方案了。
我現在還是想用websocket,有時間了再看下吧。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM