原创作者:温岭王骏
环境:
测试摄像机:海康威视 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>