前端如何播放海康威视的实时视频流

7,240 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第8天,点击查看活动详情

方法一:自己通过ffmpeg插件把rtsp流转换成m3u8由nginx代理访问实现前端播放海康威视的实时视频

1. 获取摄像头的rtsp流链接:

格式:rtsp://{账号}:{密码}@{ip地址}/ISAPI/Streaming/channels/1

例子:rtsp://admin:123qweasd@192.168.10.97/ISAPI/Streaming/channels/1

rtsp这种协议目前前端还是不能很好的做视频播放,需要我们给这个rtsp流转换成m3u8格式。

2. 通过ffmpeg把rtsp转成m3u8

格式:ffmpeg -i {rtsp流地址}  -c copy -f   hls  -hls_time 1.0 -hls_list_size 2 -hls_flags 2  {生成的m3u8文件存储路径} 

例子:ffmpeg -i rtsp://admin:123qweasd@192.168.10.97/ISAPI/Streaming/channels/1  -c copy -f  hls  -hls_time 1.0 -hls_list_size 2 -hls_flags 2   D:/phpstudy_pro/WWW/video/97/test.m3u8

  • -i filename:指定输入的文件名,可以为流地址。
  • -c codec:指定解码器,需要使用能力集列表中的名称(编码器设定为'copy'表示不进行编解码)
  • -f fmt:强制设定文件格式,需使用能力集列表中的名称

3. 通过nginx服务器直接访问m3u8格式文件就可实时查看视频。

4. 如果需要nginx代理m3u8流,配置如下:

location ~* \.(m3u8|ts|aac)$ {

    proxy_cache off;                    # 禁用代理缓存

    expires -1;                         # 禁用页面缓存

    proxy_pass http://2210425cm3.51mypc.cn:8500;      # 反代目标 URL

    sub_filter 'http://2210425cm3.51mypc.cn:8500/' 'http://$host/';   # 替换 m3u8 文件里的资源链接

    sub_filter_last_modified off;       # 删除原始响应里的浏览器缓存值

    sub_filter_once off;                # 替换所有匹配内容

    sub_filter_types *;                 # 匹配任何 MIME 类型

}

方法二:通过萤石云平台把海康威视的视频流转换成m3u8给前端播放

1. 通过摄像头的ip地址登录海康威视摄像头的控制后台。

  1. 在配置->网络->高级配置->平台接入,配置萤石云平台信息。

  2. 然后把摄像头绑定到你的萤石云账号,就可以获取到m3u8的直播地址了。

谢谢观看!streetlamp敬上!