一、准備:
1.海康IPC
2.交換機
3.筆記本充當服務器
4.ffmpeg
5.已安裝過nginx-rtmp-module功能的nginx
6.ckplayer
7.java或.net或php或dw等web開發工具(用於測試實現效果)
8.vlc
可播放rtsp和rtmp流的播放器 用來測試
二、rtsp流
海康IPC支持通過rtsp協議進行流傳輸,因此獲取流非常方便,取流地址為:rtsp://admin:12345@192.168.1.102:554/h264/ch1/main/av_stream
其中,admin和12345是登錄IPC的用戶名和密碼,@后面跟IPC的IP地址,端口號默認為554,如果修改過,這里填修改后的端口號。只要是支持rtsp協議的IPC都可以通過類似方式取流,各廠商的格式可能略有不同,請查閱各廠商的相關說明
連接好IPC、電腦、交換機后,打開vlc播放器,選擇媒體-->打開網絡串流-->填入rtsp協議-->播放,如果連接和參數正確,此時vlc應該可以播放監控畫面
三、安裝ffmpeg
通過第一步我們確認了rtsp流可以正確獲取后,第二步我們安裝ffmpeg,用於rtsp流轉rtmp流
ffmpeg是一個功能非常強大的視頻處理工具,居家旅行學習開發必備,注意,ffmpeg需要區分32位和64位,請根據自己操作系統進行選擇
下載解壓后得到如下文件夾結構
配置環境變量:將x:/ffmpeg/bin添加到Path中,具體添加方法大家可查看java配置jdk的方法,網上很多
測試ffmpeg:打開cmd(使用管理員身份打開),輸入:ffmpeg 獲取到如下圖所示界面,說明ffmpeg安裝成功
四、nginx搭建
nginx我的理解有點類似iis的功能,是個信息管理器(如果不對,請大神斧正),原版的nginx是不帶有rtmp發布功能的,需要安裝nginx-rtmp-module插件,網上的方法很多,但是由於我看得一臉懵逼,所以花了好久找到已安裝好插件的nginx,鏈接已奉上,這個我們就可以直接用了
將壓縮包解壓到任意位置,進入conf文件夾,打開nginx.conf文件,找到http{server{listen,將端口號改成10001(只要沒有被占用的端口都可以,我習慣1w+),順便看看有個rtmp{server{listen1935,這個就是發布rtmp流的端口,后面會用到
保存nginx.conf,雙擊nginx.exe,
至此,nginx成功搭建
五、rtsp轉rtmp
搭建好nginx,說明通過ffmpeg轉換的rtmp流有地方接收了,這一步我們就來轉流
打開cmd輸入以下指令:
ffmpeg -i "rtsp://admin:12345@192.168.1.102:554/h264/ch1/main/av_stream" -f flv -r 1 -s 1920x1080 -an "rtmp://192.168.1.100:1935/live/stream"
rtsp://是IPC取流的協議地址,rtmp則是剛才搭建nginx的地址,這個1935端口就是剛才配置nginx時看到的rtmp端口,輸入后首先會看到關於ffmpeg的一些信息,出現如下界面則說明ffmpeg已成功將rtmp流推送到了nginx
我們再打開vlc播放器,測試下是否可以成功播放rtmp流,方法依然是打開vlc,填入:rtmp://192.168.1.100:1935/live/stream 播放,如果可以看到監控畫面說明成功
六、網站播放
前面我們已經拿到rtmp流,最后我們將流通過ckplayer在網頁上進行播放,使用ckplayer請移步到:http://www.ckplayer.com/tool/help/100.htm