目錄
一.環境搭建
二.推拉流代碼
三.人臉檢測推拉流
一.環境搭建
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 subprocessdef 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", # 輸出格式為 RTSPrtsp_url # RTSP 推流地址]# 啟動 FFmpeg 進程