可以实现直接将监控器的rtsp流地址转换成手机浏览器可以播放的格式
环境准备
- 确保服务器有docker和nginx
- 先拿到摄像头的RTSP地址
- vi 新建以下两个sh脚本
start.sh
#!/bin/sh
./kill.sh
channel[0]=rtsp://admin:4321@5678@192.168.100.100:554/h264/ch1/main/av_stream
channel[1]=rtsp://admin:4321@5678@192.168.100.101:554/h264/ch1/main/av_stream
for (( i = 0; i < ${#channel[*]}; i++ )); do
nohup docker run -v /video:/video jrottenberg/ffmpeg:latest -rtsp_transport tcp -i ${channel[$i]} -fflags flush_packets -max_delay 1 -an -flags -global_header -hls_time 2 -hls_list_size 5 -hls_wrap 10 -vcodec copy -s 216x384 -b 1024k -y /video/$i.m3u8 >/dev/null 2>&1 &
done
kill.sh
#!/bin/sh
pids="`ps -ef |grep ffmpeg |grep -v -e grep -e killkeys |awk '{print $2}'`"
if [ -z "$pids" ];then
#echo empty
exit 0
fi
echo "kill pid:"$pids
kill -9 $pids
docker rm $(docker ps -a | grep ffmpeg | awk '{print $1}')
- 直接
./start.sh
启动 会帮你杀掉之前的进程 - nginx直接把生成出来的.m3u8文件代理出来就可以了
注意啊!
start.sh
里面的docker启动命令:目录挂载你可以自己设置- 前端的播放器自己百度一大把
第一次执行docker的命令需要pull 所以会很慢