一. 应用场景
- 本地摄像头实时监控/mp4视频文件
- 通过rtsp服务器转为rtsp地址
- 通过VLC将rtsp地址传入Python
- Python检测并标记好检测框(人脸识别/是否佩戴口罩)
- 通过ffmpeg推流,抛出一个新的rtsp地址
- VLC即可访问新的rtsp地址
Python接收rtsp地址
二. 系统环境
1. 系统
我使用的是Windows 10 64位
2. 查看本机设备规格和WIndows规格
此电脑 - 右键 - 属性
三. VLC下载
1. 下载
① 官网:http://www.videolan.org/](http://www.videolan.org/
② 下载后,双击exe文件
③ 按照步骤依次安装
2. VLC安装成功
四. RTSP服务器下载
1. 下载rtsp服务器
① 路径: https://github.com/aler9/rtsp-simple-server/releases
五. ffmpeg的安装配置以及在python中的使用
1. 下载ffmpeg
① 路径:https://github.com/BtbN/FFmpeg-Builds/releases
( 我下载的版本:ffmpeg-n4.4-latest-win64-gpl-4.4.zip)
② 解压到一个文件夹(我这里和rtsp放一个文件夹了)
2. 配置环境变量
① 得到 “ffmpeg.exe的路径”,复制
② 此电脑 – 属性 -高级系统设置-系统属性 – 环境变量 – 系统变量 – Path – 编辑 – 新建 – 填入 ① 中的路径
3. 测试安装的ffmpeg的结果
4. 在python中使用ffmpeg
① 用 PyCharm 打开 文件夹
② 在终端执行命令
pip install ffmpeg
六. 推流
1. 找到存放rtsp服务器的文件夹
① 双击 rtsp-simple-server.exe,打开rtsp服务器
② 路径处输入cmd,打开命令行窗口
窗口如下:
2. 通过命令行获取摄像头设备名称
ffmpeg -list_devices true -f dshow -i dummy
3. 推流
① 本地摄像头
ffmpeg -f dshow -i video="摄像头设备名称" -vcodec libx264 -r 30 -f rtsp rtsp://127.0.0.1:8554/camera_test
② 指定的mp4文件
mp4文件和ffmpeg.exe处于同级目录
ffmpeg -re -stream_loop -1 -i mp4文件的路径 -c copy -f rtsp rtsp://127.0.0.1:8554/videoFile_test
4. 使用VLC
① 打开VLC,输入rtsp地址,即上一步的末尾命令行:
若为本地摄像头:rtsp://127.0.0.1:8554/camera_test
若为指定mp4文件:rtsp://127.0.0.1:8554/videoFile_test
② 选择 “右上角媒体(M)” ,选择 “打开网络串流(N)” ,tab标签选择 “网络(N)” ,输入网络URL,一下输入的是本地摄像头
③ 点击 “播放”,即可实时监控视频
六. 结果展示
① 实时监控:未出镜
② 指定视频检测:类似
七. 附
常见命令
- 卸载ffmpeg
pip uninstall ffmpeg 或 conda uninstall ffmpeg
- 安装ffmpeg
pip install install ffmpeg 或 conda install ffmpeg