我正在使用FFmpeg将视频从摄像机(通过 wifi 连接,没有互联网连接)重新流式传输到另一台服务器,我想通过蜂窝数据进行重新流式处理。因为我已经连接到 wifi 并同时使用蜂窝数据 bindProcessToNetwork()
。在执行 ffmpeg 命令之前,我已经完成了以下操作
final ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkRequest.Builder req = new NetworkRequest.Builder();
req.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
req.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
cm.requestNetwork(req.build(), new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(Network network) {
//here you can use bindProcessToNetwork
//cm.getNetworkInfo(network);
if (cm.getNetworkInfo(network).getType() == ConnectivityManager.TYPE_MOBILE) {
cm.bindProcessToNetwork(network);
}
}
});
在大多数情况下它工作正常,比如 webview 通过使用蜂窝数据正常工作,同时连接到 wifi ,但是当我尝试执行任何 ffmpeg 命令时它不起作用。