×

rtsp摄像头视频流转hls,供前端播放使用

hqy hqy 发表于2025-11-19 00:40:20 浏览20 评论0

抢沙发发表评论

发现一个可以将摄像头的rtsp视频流地址转为m3u8格式并且可以提供对外接口的工具,分享给大家。

先贴上GitHub地址。
https://github.com/LIRUILONGS/rtsp2hls-M3U8

我们拿到一个摄像头,知道账号密码,就知道了这个摄像头的rtsp视频流地址。

如海康的视频流地址:
rtsp://账号:密码@ip:554/h264/ch1/main/av_stream
这个相当于是直接设备端取流。
一般主流摄像头像海康、大华等都会有相关的rtsp地址。
但是拿到这个地址后交给前端,前端却不能播放,一般的播放插件不支持rtsp播放。那怎么办呢?
此时,我们就可以使用这个工具将rtsp地址转为前端可播放的hsl格式的视频流地址。
来看下实操步骤。
1、下载代码,安装环境
git clone https://github.com/LIRUILONGS/rtsp2hls-M3U8
cd rtsp2hls-M3U8
pip install -r requirement.txt
我这边是用conda管理python环境的,很好用,推荐大家使用。
conda包后台回复“conda”即可拿到网盘下载地址。
2、配置ffmpeg,nginx
这两个我这边偷了个懒没有配置,直接放到代码目录下面用了,修改配置文件conf.yaml的时候直接配置对应的目录即可,如图
图片
图片
3、修改配置文件
源代码有两个main文件,一个是需要配置文件的,一个是将配置写到python文件中的,这两个使用哪个都可以,我这边使用的是修改配置文件的python文件。
图片
看名字就很容易理解图片
conf.yaml上面两个修改成对应目录后,最下方需要修改摄像头账号密码,当然也可像ip一样写成动态的,若改成动态的化,需要简单修改main.py中的代码,将这两个当参数传进去。
图片
4、启动
启动后如图所示,代表启动成功。
图片
5、然后去测试一下
我这边修改了main.py的默认值,所有没有传参,正常时需要传ip、width、height这几个参数。如果你将前面的账号密码也做成动态的化,这边也需要将账号密码传过去。
图片
请求成功后展示
图片
接着就可以拿着这个m3u8地址去vlc或者前端测试了。
图片
正常播放,但是我发现延时有点高图片
6、简单研究下
来简单看一下请求过程,请求的时候创建了一个进程,使用ffmpeg开始对rtsp流进行切片转换,然后生成了一个m3u8地址的视频流。
图片
图片
图片
项目还提供了好几个接口,这边列举几个比较有用的:
1、直接不传任何参数的欢迎接口
图片
2、获取流地址接口
需要传参,ip、width、height,可修改该接口,将账号密码也动态传进来
图片
3、结束推流接口
需要传pid
图片
4、批量结束推流接口
图片
5、获取当前进程信息
图片
6、查看进程是否存活
图片
还有些接口,但是感觉不常用,就不再列举了。
这就是简单使用的整个过程,如果摄像头不多也对实时要求不太高的话可以使用。


打赏

本文链接:https://www.jingber.cn/post/3804.html 转载需授权!

分享到:

群贤毕至

访客

您的IP地址是: