RTSP转HLS,实现流可HTTP访问

原理

通过ffmpeg将rtsp流转为hls流,然后通过nginx提供http服务

下载Release 版本ffmpeg

1
2
3
4
5
cd /home
wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz
tar -xvf ffmpeg-release-amd64-static.tar.xz
ln -s /home/ffmpeg-6.1-amd64-static/ffmpeg /usr/bin/ffmpeg
ln -s /home/ffmpeg-6.1-amd64-static/ffprobe /usr/bin/ffprobe

下载安装nginx

1
2
3
4
#以ubuntu为例
apt-get install nginx
#默认www路径为/var/www/html,默认http端口为80
#默认配置文件路径为/etc/nginx/nginx.conf,可自行修改

格式转换

1
2
3
4
5
#将rtsp流转换为hls流,输出至nginx的www目录
#以海康摄像机为例,ip为192.168.1.64
#rtsp流地址为rtsp://admin:admin123@192.168.1.64:554/Streaming/Channels/101
#hls流输出为h5nvr.m3u8
ffmpeg -f rtsp -rtsp_transport tcp -i rtsp://admin:admin123@192.168.1.64:554/Streaming/Channels/101 -codec copy -f hls -hls_list_size 10 -hls_list_size 2 -hls_flags 2 -hls_time 15 /var/www/html/h5nvr.m3u8

访问

1
http://127.0.0.1/h5nvr.m3u8