Windows上用FFmpeg采集摄像头推流 → MediaMTX服务器转发流 → WSL2上拉流播放

1. Windows上 FFmpeg 推流(摄像头采集)

  • 设备名称可用 ffmpeg -list_devices true -f dshow -i dummy 查询,假设为Integrated Camera

  • 采集推流示例(推RTMP到MediaMTX):

ffmpeg -rtbufsize 100M -f dshow -video_size 1280x720 -framerate 30 -i video="Integrated Camera" -c:v libx264 -preset veryfast -f flv rtmp://<服务器IP或localhost>/live/stream

这里推到MediaMTX默认监听的RTMP端口1935,路径/live/stream,可根据MediaMTX配置调整


2. MediaMTX服务器转发配置

  • 确保 mediamtx.yml 配置文件中开启了RTMP服务,监听1935端口

  • 典型配置片段:

protocols: [rtmp, rtsp, hls] rtmp: listen: ":1935"

  • MediaMTX启动后会监听RTMP端口,接收并转发流

3. WSL2上拉流播放

  • WSL2本质是Linux环境,可以用ffplay或vlc拉流

  • 拉取RTMP流示例:

ffplay rtmp://<Windows主机IP或localhost>:1935/live/stream

  • 如果WSL2和Windows在同一台机器上,localhost通常可通;如果网络隔离,用Windows实际IP

  • 同理,OpenCV读取也用相同URL:

cv::VideoCapture cap("rtmp://<WindowsIP>:1935/live/stream");


注意点

  • 防火墙:确认Windows防火墙允许1935端口入站,MediaMTX监听生效

  • 网络地址 :WSL2访问Windows时,localhost有时不通,可能需要用<Windows主机IP>或者host.docker.internal等特殊地址

  • 推流参数:

    • -rtbufsize 100M防止采集缓冲区溢出

    • -preset veryfast或更快编码速度降低CPU负载

  • 流地址一致性:推流地址和拉流地址的路径要对应


流程示意图

Windows(FFmpeg dshow推流) --> MediaMTX(rtmp://:1935/live/stream) --> WSL2(ffplay拉流)

相关推荐
a5986526 分钟前
无公网IP,ARM服务器搭建云手机远程访问方案
服务器·arm开发·tcp/ip·云手机
张文君1 小时前
vmware克隆后ubuntu26.04 ip怎么更改
linux·运维·服务器
Brilliantwxx2 小时前
【Linux】基础IO(下):输出重定向、dup2 与 minishell 重定向实战
linux·运维·服务器·github·bash
小HANN2 小时前
(架构 + InnoDB 事务 MVCC):《MySQL 底层探秘①:拆解 InnoDB,读懂事务、MVCC 与日志的底层逻辑》
linux·运维·服务器·经验分享
kyle~2 小时前
Linux --- 虚拟内存 1.fork、2.COW、3.mmap、4.page fault、5.TLB、6.页表
linux·运维·服务器
服务器硬件项目经理2 小时前
第3章GPU vs CPU:为什么AI训练要用GPU
服务器·人工智能·嵌入式硬件·gru·硬件工程·硬件
似水流年QC3 小时前
LangChain 入门与实战
服务器·数据库·langchain
小HANN3 小时前
Ceph分布式存储深度解析-下篇
linux·运维·服务器·经验分享
凯基迪科技3 小时前
硬件做授权保护,有哪些常见方案
运维·服务器
Jtti3 小时前
香港服务器CPU不高但用户请求排队的原因有哪些?
运维·服务器·网络