解決方法:
1.搭建Red5流媒體服務器(其他還有CRTMPD、NGINX-RTMP、SRS)
2.FFmpeg(其他還有live555)實現監控攝像頭的RTSP協議轉RTMP協議直播
3.搭建WEB服務器播放RTMP視頻流直播(其他流:HTTP-FLV流、HLS、RTP)
搭建Red5流媒體服務器
1.下載安裝包:https://builds.apache.org/view/M-R/view/OpenMeetings/job/red5-installer/
2.安裝過程一路next,直到提示輸入IP時,輸入0.0.0.0。提示輸入Port時,輸入5080。這里實際上我輸入過127.0.0.1作為IP,由於在本機上測試沒有出現過問題。但網上提示,如果跨服務器部署,這里輸入0.0.0.0是有必要的。
3.設置環境變量
4.啟動Red5服務
如果啟動不了,請檢查前面的環境變量設置是否設置完畢並且正確,最后檢查Red5的啟動日志文件,看看是否有相應的提示信息,日志文件在Red5主目錄下的log目錄下,日志文件有多個,查看red5_service.log即可。啟動后,打開瀏覽器,敲入安裝Red5時的IP地址和端口,正常情況下,看到如下信息,說明Red5已經正確安裝了。
這個時候可以點擊Install進入下載其官方提供的demo進行研究學習,安裝后的demo文件在Red5根目錄下的webapps下,如D:\Red5\webapps。安裝操作比較簡單,這里不詳細介紹,不過要這里要提醒一下,安裝完的demo后,需要重新啟動一下Red5服務器,重啟操作參考上面的介紹。
FFmpeg實現監控攝像頭的RTSP協議轉RTMP協議直播
1.下載FFmpeg:http://ffmpeg.org/download.html
2.下載完直接解壓好,並將bin目錄加入到path環境變量下即可。
3.運行
ffmpeg -i "rtsp://admin:12345@192.168.1.77:554/cam/realmonitor?channel=1&subtype=0" -f flv -r 25 -s 640x480 -an "rtmp://localhost/oflaDemo/hello"
成功后:
4.搭建WEB服務器,利用jwplayer或者ckplayer之類的,將rtmp地址換成第三步轉的rtmp協議地址
例如用ckplayer:
<script type="text/javascript" src="ckplayer/x/ckplayer.js"></script> <div class="video" style="width: 1000px;height: 600px;"></div> <script type="text/javascript"> var videoObject = { container: '.video',//“#”代表容器的ID,“.”或“”代表容器的class variable: 'player',//該屬性必需設置,值等於下面的new chplayer()的對象 autoplay:true,//自動播放 live:true,//直播視頻形式 video:'rtmp://localhost/oflaDemo/hello'//視頻地址 }; var player=new ckplayer(videoObject); </script>
成功后頁面:
參考資料:http://blog.csdn.net/chengshangqian/article/details/8567804