目录
一.环境搭建
二.推拉流代码
三.人脸检测推拉流
一.环境搭建
1.下载RTSP服务器MediaMTX与FFmpeg
FFmpeg是一款功能强大的开源多媒体处理工具,而MediaMTX则是一个轻量级的流媒体服务器。两者结合,可以实现将本地视频或者实时摄像头画面推送到RTSP流,从而实现视频直播、监控等功能。
- FFmpeg: 负责将本地视频或实时摄像头画面编码成RTSP流所需要的格式,并发送给MediaMTX服务器。
- MediaMTX: 作为RTSP服务器,接收FFmpeg推送的流,并提供RTSP服务,使得其他设备可以通过RTSP协议访问该流。
应用场景
- 视频监控: 将摄像头画面实时推送到RTSP服务器,实现远程监控。
- 视频直播: 将本地视频文件或摄像头画面推送到直播平台。
- 音视频会议: 将本地音频和视频数据推送到会议服务器。
- 智能家居: 将智能设备的视频画面推送到手机APP。
可参考FFMEPG推流视频及VLC拉流视频教程_ffmpeg推流-CSDN博客
二.推拉流代码
1.将本地视频文件通过 FFmpeg 推流到 RTSP 服务器
在运行此脚本之前,需要先启动 RTSP 服务器(如 mediamtx.exe
)。mediamtx.exe
是一个轻量级的 RTSP 服务器,用于接收和转发 RTSP 流。推流结果可打开VLC播放器进行查看。
确保 mediamtx.exe
已正确配置,并且正在监听指定的端口(如 8554
)。
#❗推流成功 先启动mediamtx.exe,然后运行此脚本
import subprocess
def stream_video_to_rtsp(video_path, rtsp_url):
"""
使用 FFmpeg 将本地视频文件循环推流到 RTSP 服务器。
参数:
video_path (str): 本地视频文件的路径。
rtsp_url (str): RTSP 推流地址。
"""
# 构建 FFmpeg 命令
ffmpeg_path = r"D:\推拉流\ffmpeg\ffmpeg.exe"
command = [
ffmpeg_path,
"-re", # 以文件的实际帧率读取文件
"-stream_loop", "-1", # 循环播放视频
"-i", video_path, # 输入视频文件
"-c", "copy", # 使用原始编码
"-f", "rtsp", # 输出格式为 RTSP
rtsp_url # RTSP 推流地址
]
# 启动 FFmpeg 进程