You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用C# VLC.DOTNET.FORMS实现PC摄像头推流到Android无法接收问题求助

问题排查及修复方案

你代码里主要存在3个核心错误,按优先级修复即可:

  • 1. VLC推流参数语法错误
    你写的:sout =#transcode里sout和=之间多了无效空格,VLC无法正确识别推流配置,这是最核心的错误。
  • 2. HTTP输出配置重复嵌套
    你在http{}里又嵌套了一层access=http{},属于无效的冗余配置,会导致推流端口监听异常。
  • 3. 端口权限未放行
    Windows防火墙默认会拦截8080端口的入站请求,需先手动放行TCP 8080端口的入站规则,同局域网的安卓设备才能访问到推流地址。

修正后的核心代码

private void vlcServer()
{
    var options = new string[]
    {
        ":sout=#transcode{vcodec=MJPG,vb=800,fps=15,scale=1,width=800,height=600,acodec=none}:duplicate{dst=http{mux=mpjpeg,dst=:8080/,mime=multipart/x-mixed-replace;boundary=--7b3cc56e5f51db803f790dad720ed50a},dst=display}",
        ":sout-keep"
    };

    // 可先在VLC桌面端打开捕获设备复制正确的摄像头名称,避免设备名匹配失败
    string optVideo = @"dshow://:dshow-vdev=Intel(R) AVStream Camera";
    // 你已经在转码配置里禁用了音频,无需额外传入音频参数
    vlcControl1.Play(optVideo, options);
}

验证步骤

  1. 代码修复后先运行服务端,在本地PC的浏览器输入http://127.0.0.1:8080,确认可以正常显示摄像头画面,代表推流服务正常
  2. 查看PC的局域网IP(比如192.168.3.25),保证安卓设备和PC连接同一WIFI,安卓端VLC播放器输入http://[PC局域网IP]:8080即可拉取到流
  3. 如果本地访问正常、跨设备访问失败,可临时关闭Windows Defender防火墙测试,确认是防火墙拦截后添加对应端口的入站规则即可

内容的提问来源于stack exchange,提问作者Yao Chang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 23:06:03