海康安防摄像机推流到H5页面(node-media-server+ffmpeg+flv.js)

原创作者:温岭王骏
环境:
测试摄像机:海康威视 DS-2CD7T4EP-LS
显卡:NVIDIA 1050
流媒体服务器:node-media-server
拉流推流:ffmpeg
H5播放器:flv.js

摄像机默认开启了RTSP,端口554,可以在配置界面-》网络-》网络服务中查看。

1、node-media-server的安装及运行
node-media-server的安装及运行在《OBS推送桌面屏幕视频流到H5页面(直播方式)》 一文中有介绍。

2、确保node-media-server所在服务器和摄像机之间的网络是通的。
例如摄像机IP:192.168.1.8,服务器IP:192.168.1.2

3、ffmpeg拉流推流
假设摄像机用户名:admin,密码:hik12345
推流命令:

ffmpeg -i rtsp://admin:hik12345@192.168.1.8:554/h264/ch1/main/av_stream -c copy -f flv rtmp://127.0.0.1:1935/live/123

如果有支持CUDA的NVIDIA独立显卡,可以加上-hwaccel cuvid -c:v h264_cuvid参数,进行硬件加速,延时将大大降低。

ffmpeg -hwaccel cuvid -c:v h264_cuvid -i rtsp://admin:hik12345@192.168.1.8:554/h264/ch1/main/av_stream -c copy -f flv rtmp://127.0.0.1:1935/live/123

实测延时在1秒以内。
windows环境,格式工厂目录下面就有一个ffmpeg可以直接使用。

4、H5页面显示视频

<html>
<body>
<script src="flv.min.js"></script>
<video id="videoElement" controls autoplay width="1024" height="576"></video>
<script>
    if (flvjs.isSupported()) {
        var videoElement = document.getElementById('videoElement');
        var flvPlayer = flvjs.createPlayer({
            type: 'flv',
            url: 'http://localhost:85/live/123.flv'
        });
        flvPlayer.attachMediaElement(videoElement);
        flvPlayer.load();
        flvPlayer.play();
    }
</script>
</body>
</html>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容