Rtsp视频流转化成m3u8格式(海康威视视频监控web解决方案)
Rtsp转为M3u8格式的视频流架构如下:
一 .部署Nginx 本文采用 windows (1.17.9)
修改nginx.conf (主要解决跨域问题)
新增
location /hls {
types{
applictaion/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root html;
add_header Cache-Control no-cache;
add_header Access-Control-Allow-Origin *;
}
二 .下载ffmpeg 本文采用windows bit64(20200309) 【主要核心】
传送门:https://ffmpeg.zeranoe.com/builds/
将 ffmpeg目录配置到系统环境变量 如 D:\ffmpeg\ffmpeg-20200309-608b8a8-win64-static\bin
验证是否成功 cmd运行 ffmpeg -version
运行rtsp转m3u8流命令 (避免丢包问题建议使用TCP UDP亲测有丢包问题)
ffmpeg -rtsp_transport tcp -i rtsp://admin:password@192.168.200.151/hiktest/h264/ch36/main -codec:v libx264 -map 0 -f hls -hls_list_size 6 -hls_wrap 10 -hls_time 10 D:\ffmpeg\nginx-1.17.9\html\hls\test.m3u8
三. web调用
到此步骤,我们已经成功把海康监控的rtsp转换成hls(m3u8) 并通过nginx发布出来。此时前端调用就非常简单了。网上有大量例子,这里不再做过多讲解,推介一个前端vue的demo。
github: https://github.com/savokiss/vue-videojs-demo
在线测试demo: http://savokiss.me/vue-videojs-demo