持续创作,加速成长!这是我参与「掘金日新计划 · 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地址登录海康威视摄像头的控制后台。
-
在配置->网络->高级配置->平台接入,配置萤石云平台信息。
-
然后把摄像头绑定到你的萤石云账号,就可以获取到m3u8的直播地址了。
谢谢观看!streetlamp敬上!