我正在尝试使用rtmpgw在本地端口上设置流,以便使用 videoview 或其他视频播放器访问。我已经设置了本机可执行文件并且它正在工作,但是当我使用命令对其进行测试时
rtmpgw --sport 8080
它返回以下错误:
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!
这发生在我尝试过的任何端口上。如果没有--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();