-
技術背景: 前段時間項目經理給我一個任務網頁接入直播.rtsp://用戶名:密碼@ip:554/cam/realmonitor?channel=1&subtype=0 rtsp格式的直播流
-
技術架構 :
- 搭建red5流媒體
- FFmpeg 實現監控攝像頭的RTSP協議轉RTMP協議直播
- 搭建web服務器利用ckplay 播放RTMP協議視頻流
-
相關文件 百度網盤鏈接 提取碼:ww9m
-
windows實現
-
基礎條件:java版本在1.8以後
-
下載對應的安裝文件
-
安裝red5-server 傻瓜式安裝.安裝成功後點擊red5.bat 驗證是否成功,在瀏覽器中輸入http://127.0.0.1:5080/ 出現如下圖片
-
安裝ffmpeng
- 下載 ffmpeg-20190312-d227ed5-win64-shared 具體鏈接在上面的百度網盤的鏈接中
- 傻瓜式安裝
-
運行 如下命令 ffmpeg -i "rtsp://用戶名:密碼@通道ip:554/cam/realmonitor?channel=2&subtype=0" -f flv -r 25 -s 640x480 -an "rtmp://127.0.0.1/oflaDemo/hello" 第一次運行時間比較長
-
出現如下圖片就說明你ffmpeg已經運行成功了
-
啓動本地服務訪問頁面
-
核心代碼 js源文件在百度雲盤中
<script type="text/javascript" src="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://127.0.0.1/oflaDemo/hello'//視頻地址
};
var player=new ckplayer(videoObject);
</script>
在網頁中輸入對應的訪問路徑即可出現直播畫面
5.Linux環境搭建
- 查看當前jdk版本是否在1.8以後 如果不是按照一個jdk1.8以後的版本,具體例子網上多的是,我就不具體描述了
- 下載對應的安裝包 在上面的百度網盤分享文件中red5-server-1.0.10.tar.gz ffmpeg-4.1.tar.bz2
- 安裝red5流媒體服務器
- 解壓安裝red5-server-1.0.10.tar.gz
- 訪問服務器ip:5080 能否出現.不能出現,查看red5服務器是否啓動.red5是java語言寫的,所以可以通過jps -lm查看是否有對應的服務,如果服務沒有啓動,則去查看對應的日誌,解決對應的問題.如果服務器啓動但是訪問不了,那就說明5080被佔用或者被禁用了,這個就對照網上的教程解決就行.出現上圖的頁面就可以進行下一個步驟
- 安裝FFmpeg 這個網上有對應的教程.
- 運行 如下命令 ffmpeg -i "rtsp://用戶名:密碼@通道ip:554/cam/realmonitor?channel=2&subtype=0" -f flv -r 25 -s 640x480 -an "rtmp://127.0.0.1/oflaDemo/hello" 第一次運行時間比較長
- 將上述window中頁面代碼中video中的值改爲服務器的地址即可
-
出現畫面即搭建成功
6總結
- red5流媒體服務器是基於jdk8的.所以安裝red5之前應該確保jdk版本在1.8之後
- 暫時沒有開源的網頁直播rtsp格式的代碼,所以採取的是ffmpeg進行轉碼.這個轉碼會導致畫質不清晰.頁面卡頓等情況出現