无法连接到 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.

请帮我解决这个问题。

我的问题解决了。我已经做了以下事情来解决它,但我不确定哪一个是正确的。如果有人遇到同样的问题,您可以尝试其中之一

  1. 我启用亚马逊的弹性负载平衡服务并为端口 554(RTSP 默认端口)添加端口转发
  2. 流媒体服务器 运行 在服务器本身的本地主机上运行良好,但无法从外部访问,我想这与防火墙和端口有关。

我扫描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的防火墙,您必须检查该防火墙允许的端口。