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

WiFi摄像头连手机推流Red5Pro:移动数据与画面冲突的无Speedify方案

问题:同时连接WiFi摄像头与蜂窝网络实现推流至Red5Pro的方案

我的需求是将WiFi摄像头连接至手机,再推流至Red5Pro平台。目前遇到以下矛盾:

  • 使用下方绑定蜂窝网络的代码时,手机能正常访问互联网,但无法接收WiFi摄像头的画面;
  • 不使用该代码时,能正常接收摄像头画面,但无法联网推流至Red5Pro;
  • 使用Speedify可以同时满足联网和接收摄像头画面的需求,但现在需要找到无需Speedify的实现方法。

原绑定蜂窝网络代码:

val connectivityManager = mContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val builder = NetworkRequest.Builder()
builder.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)

val networkRequest = builder.build()
connectivityManager.requestNetwork(networkRequest, ConnectivityManager.NetworkCallback())
connectivityManager.registerNetworkCallback(
        networkRequest,
        object : ConnectivityManager.NetworkCallback() {
            override fun onAvailable(network: Network) {
                connectivityManager.bindProcessToNetwork(network)
            }
        }
)

解决方案

1. 不要全局绑定进程到蜂窝网络

原代码中connectivityManager.bindProcessToNetwork(network)会强制整个应用进程的所有网络请求都走蜂窝网络,这直接切断了手机通过WiFi访问本地摄像头的路径——因为摄像头在WiFi局域网内,进程网络被绑到蜂窝后无法访问WiFi网段的设备。

正确的做法是仅让推流到Red5Pro的请求走蜂窝网络,其他请求(比如接收WiFi摄像头画面)依然使用WiFi:

connectivityManager.registerNetworkCallback(
        networkRequest,
        object : ConnectivityManager.NetworkCallback() {
            override fun onAvailable(network: Network) {
                // 不对整个进程绑定,而是针对推流请求单独使用蜂窝网络
                val pushUrl = URL("你的Red5Pro推流地址")
                // 用蜂窝网络的实例打开推流连接
                val pushConnection = network.openConnection(pushUrl) as HttpURLConnection
                // 此处执行推流相关的逻辑,比如写入摄像头画面数据
                // ...
            }
        }
)

2. 区分本地WiFi请求与公网推流请求

  • 接收WiFi摄像头画面的请求:保持默认网络路由(自动走WiFi,因为摄像头在同一局域网);
  • 推流到Red5Pro的请求:显式使用蜂窝网络的Network对象创建连接,确保该请求走公网。

3. 验证网络路由配置

可以通过以下方式确认请求路由:

  • 检查WiFi摄像头的IP是否为局域网地址(如192.168.x.x);
  • 推流请求的目标地址是公网地址,用network.openConnection()确保其走蜂窝;
  • 避免对局域网请求强制走蜂窝,否则会无法访问摄像头。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 03:40:13