elB*_*ord 1 android tcp rtmp video-streaming android-ndk
我正在尝试使用rtmpgw在本地端口上设置流,使用videoview或其他视频播放器进行访问.我有本机可执行文件设置,它正在工作,但是当我用命令测试它
rtmpgw --sport 8080
Run Code Online (Sandbox Code Playgroud)
它返回以下错误:
HTTP-RTMP Stream Gateway v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu; license: GPL
ERROR: startStreaming, TCP bind failed for port number: 8080
ERROR: Failed to start HTTP server, exiting!
Run Code Online (Sandbox Code Playgroud)
这发生在我试过的任何端口上.如果没有--sport参数,它会尝试端口80并失败.根据我的理解,非特权/非root用户无法在unix中绑定低于1024的端口.既然这是一个虚拟机,它有什么不同?本机可执行文件/静态二进制文件不会在虚拟机外部执行吗?
码:
File rtmp = new File(getFilesDir() + "/rtmpgw");
ProcessBuilder pb = new ProcessBuilder("./" + rtmp.getName(), "--sport", "8080");
pb.directory(getFilesDir());
Process stream = pb.start();
Run Code Online (Sandbox Code Playgroud)
谢谢你的回复.事实证明,在1024端口以上并不是唯一的要求.它需要落入短暂的港口范围.为了获得短暂的端口范围,我执行了命令
root@android:/ # cat /proc/sys/net/ipv4/ip_local_port_range
cat /proc/sys/net/ipv4/ip_local_port_range
32768 61000
Run Code Online (Sandbox Code Playgroud)
我不确定所有Android设备的范围是多么一致,但是当我在短暂范围内给出一个端口时,我的原生可执行文件成功启动.
| 归档时间: |
|
| 查看次数: |
1798 次 |
| 最近记录: |