无法连接到 VLC RTSP 服务器
Cannot connect to VLC RTSP server
我正在使用基于 AWS EC2 CentOS 的系统。我还有一个网站 运行,域名为 mydomain.com
我已经为我的服务器成功安装了 VLC。我可以通过 SSH 和远程连接到我的服务器(我可以使用带有 gnome 的 GUI 应用程序)
我使用以下命令启动 vlc 服务器:
vlc --ttl 34 -vvv --color -I telnet --telnet-password vlc --rtsp-host 0.0.0.0 --rtsp-port=554
并通过以下方式在其上设置流:
root@whm [~]# telnet localhost 4212
Trying ::1...
Connected to localhost.
Escape character is '^]'.
VLC media player 2.0.8 Twoflower
Password:
Welcome, Master
> new sample01 vod enabled
new
> setup sample01 input file:///home/myuser/public_html/mywebsite/folder/video.mp4
setup
日志的输出是好的。
[0x7f24a002c5b8] stream_out_rtp vod server debug: RTSP stream at /sample01
[0x7f24a002c5b8] main vod server debug: net: listening to 0.0.0.0 port 554
[0x7f24a002c5b8] stream_out_rtp vod server debug: RTSP: adding /sample01/trackID=0
[0x7f24a002c5b8] stream_out_rtp vod server debug: RTSP: adding /sample01/trackID=1
[0x7fce4802d8c8] [Media: vod] main input debug: `file:///home/myuser/public_html/video.mp4' successfully opened
如果我自己留在服务器上,使用 GUI,我可以使用 VLC 播放器打开网络流 URL:
rtsp://localhost:554/sample01 (it works)
如果我使用来自另一个网络的 vlc 播放器通过以下方式连接到流 URL
rtsp://mydomain.com:554/sample01
(这是我网站的域名)
rtsp://my-server-public-ip.com:554/sample01
(也不行)
我猜端口有问题,然后我去了 AWS 控制台,将更多端口 554 和 4212 添加到我实例的安全组的入站列表中(就像我对其他端口所做的一样),但这并没有帮助。
vlc客户端的错误是:
[000000010050e4c8] core libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
[000000010022a7e8] [http] lua interface: Lua HTTP interface
[0000000104a00978] live555 demux error: Failed to connect with rtsp://mydomain.com:554/sample01
[00000001002b2dc8] core access error: connection failed: Connection refused
[00000001002b2dc8] access_realrtsp access error: cannot connect to mydomain.com:554
[0000000100618e58] core input error: open of `rtsp://mydomain.com:554/sample01' failed
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
请帮我解决这个问题。
我的问题解决了。我已经做了以下事情来解决它,但我不确定哪一个是正确的。如果有人遇到同样的问题,您可以尝试其中之一
- 我启用亚马逊的弹性负载平衡服务并为端口 554(RTSP 默认端口)添加端口转发
- 流媒体服务器 运行 在服务器本身的本地主机上运行良好,但无法从外部访问,我想这与防火墙和端口有关。
我扫描mydomain.com看端口有没有打开
nmap -v -Pn -sT mydomain.com
暂时禁用 AWS EC2 实例上的防火墙或在 iptables 中添加一行以打开端口 554。
通过
打开和编辑文件
vi /etc/sysconfig/iptables
添加下面一行
-A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dpport 554 -j ACCEPT
或绝对关闭防火墙
sudo service iptables save
sudo service iptables stop
sudo chkconfig iptables off
可选,如果您使用的是Cpanel的防火墙,您必须检查该防火墙允许的端口。
我正在使用基于 AWS EC2 CentOS 的系统。我还有一个网站 运行,域名为 mydomain.com
我已经为我的服务器成功安装了 VLC。我可以通过 SSH 和远程连接到我的服务器(我可以使用带有 gnome 的 GUI 应用程序)
我使用以下命令启动 vlc 服务器:
vlc --ttl 34 -vvv --color -I telnet --telnet-password vlc --rtsp-host 0.0.0.0 --rtsp-port=554
并通过以下方式在其上设置流:
root@whm [~]# telnet localhost 4212
Trying ::1...
Connected to localhost.
Escape character is '^]'.
VLC media player 2.0.8 Twoflower
Password:
Welcome, Master
> new sample01 vod enabled
new
> setup sample01 input file:///home/myuser/public_html/mywebsite/folder/video.mp4
setup
日志的输出是好的。
[0x7f24a002c5b8] stream_out_rtp vod server debug: RTSP stream at /sample01
[0x7f24a002c5b8] main vod server debug: net: listening to 0.0.0.0 port 554
[0x7f24a002c5b8] stream_out_rtp vod server debug: RTSP: adding /sample01/trackID=0
[0x7f24a002c5b8] stream_out_rtp vod server debug: RTSP: adding /sample01/trackID=1
[0x7fce4802d8c8] [Media: vod] main input debug: `file:///home/myuser/public_html/video.mp4' successfully opened
如果我自己留在服务器上,使用 GUI,我可以使用 VLC 播放器打开网络流 URL:
rtsp://localhost:554/sample01 (it works)
如果我使用来自另一个网络的 vlc 播放器通过以下方式连接到流 URL
rtsp://mydomain.com:554/sample01
(这是我网站的域名)
rtsp://my-server-public-ip.com:554/sample01
(也不行)
我猜端口有问题,然后我去了 AWS 控制台,将更多端口 554 和 4212 添加到我实例的安全组的入站列表中(就像我对其他端口所做的一样),但这并没有帮助。
vlc客户端的错误是:
[000000010050e4c8] core libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
[000000010022a7e8] [http] lua interface: Lua HTTP interface
[0000000104a00978] live555 demux error: Failed to connect with rtsp://mydomain.com:554/sample01
[00000001002b2dc8] core access error: connection failed: Connection refused
[00000001002b2dc8] access_realrtsp access error: cannot connect to mydomain.com:554
[0000000100618e58] core input error: open of `rtsp://mydomain.com:554/sample01' failed
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
请帮我解决这个问题。
我的问题解决了。我已经做了以下事情来解决它,但我不确定哪一个是正确的。如果有人遇到同样的问题,您可以尝试其中之一
- 我启用亚马逊的弹性负载平衡服务并为端口 554(RTSP 默认端口)添加端口转发
- 流媒体服务器 运行 在服务器本身的本地主机上运行良好,但无法从外部访问,我想这与防火墙和端口有关。
我扫描mydomain.com看端口有没有打开
nmap -v -Pn -sT mydomain.com
暂时禁用 AWS EC2 实例上的防火墙或在 iptables 中添加一行以打开端口 554。 通过
打开和编辑文件vi /etc/sysconfig/iptables
添加下面一行
-A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dpport 554 -j ACCEPT
或绝对关闭防火墙
sudo service iptables save
sudo service iptables stop
sudo chkconfig iptables off
可选,如果您使用的是Cpanel的防火墙,您必须检查该防火墙允许的端口。