Bootstrap

基于dlib/face recognition人脸识别推拉流实现

目录

一.环境搭建

二.推拉流代码

三.人脸检测推拉流


 

一.环境搭建

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 进程

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;