海康的攝像頭預設通過rstp 協定輸出,但頁面內建需要hls 協定。通過摸索,結合網絡資料,總結如下:
原理:
通過ffmepg 工具持續将rstp協定的視訊流推送到帶有RTMP 子產品上的Nginx , 再由Nginx 對外提供rtmp 和hls 協定輸出
- nginx_rtmp 安裝
最簡單的安裝方法就是使用容器
docker pull alfg/nginx-rtmp
- -- 開放1935 端口是為了下一步把資料推到rtmp , 80 端口是為了hls 協定讀取
docker run --restart=always --name nginx-rtmp -d -p 80:80 -p 1935:1935 alfg/nginx-rtmp
- 使用ffmpeg 推視訊流
假如攝像頭的視訊流位址為:rtsp://admin:[email protected]:554/MPEG-4/ch1/main/ava_stream
ffmpeg -re -rtsp_transport tcp -i rtsp://admin:[email protected]:554/MPEG-4/ch1/main/ava_stream -f flv -acodec aac -ar 44100 -strict -2 -ac 1 -s 1280x720 -q 10 rtmp://192.168.204.181:1935/stream/camera
可以通過 rtmp://192.168.204.181:1935/stream/camera
和 http://192.168.204.181/hls/camera.m3u8
來調用。
PS: 以上隻是不對容器做任何配置修改的情況下操作。