赞
踩
Yolov5-deepsort人车流统计RTMP推流直播
整体框架分为三个部分:
(1)目标检测追踪代码(需要英伟达显卡)。
(2)ffmpeg推流(需要英伟达显卡)。
(3)Nginx服务器配置和flv.js插件。
所需的环境和yolov5-6.0一致,如缺少相关的python包自行安装。
注意python版本一定要 >=3.8
注意python版本一定要 >=3.8
注意python版本一定要 >=3.8
本机运行环境CUDA 11.1 python 3.8 pytorch 1.8
工程连接:
添加链接描述
一、 代码修改
打开工程根目录的main.py。
url为拉流地址也就是视频源的地址,0是本地摄像头,视频的输入使用opencv所以支持本地摄像头、USB摄像头、rtsp流、rtmp流,海康大华这些摄像头都可以,拉流链接自行解决。
Rtmp为推流地址,用Nginx搭建的。
FPS为拉流帧率,也是推流的帧率。这里注意下,我测试3090可以25帧没问题,但是3060效果就不行,有待优化,3060建议FPS=16,如果修改了FPS,此处也需要修改。(后期用C++和tensorrt重构一下效率更高可以支持多路拉流且推流)
rtmp_video_cv2函数,
改为 if y % 3 != 1:这里的意思为抽帧每三帧抽取2帧丢弃中间的一帧,一般IPC基本上都是25帧,那么三分之二后为16、17帧,建议填写16,设置推流16帧实际17帧,比播放帧率快一点点。
二、 FFmpeg(英伟达版)
推流用到了nvidia的硬件编码,所以需要n卡版本的ffmpeg。
代码目录有预编译好的ffmpeg5.0版本的Linux Windows都有自行选择,添加到环境变量即可。(前提是cuda什么的都安装好了)
三、 Nginx
代码目录压缩包解压运行即可。
推拉流的地址,但是这个地址不能用浏览器直接播放,可以用VLC media player这个软件验证框架是否搭建成功。
rtmp://你本机的IP:1936/live/home
这里说一下为什么用1936 本来rtmp默认是1935但是拉流也是rtmp使用1935,为避免端口堵塞,改用1936。
浏览器直接播放的插件:
https://github.com/bilibili/flv.js
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。