“LIVE555 HLS Proxy”是一个应用程序-从“LIVE555 流媒体”软件构建-允许web浏览器查看“后端”(单播或多播)RTSP/RTP流(例如,从网络摄像机)。任意数量的web浏览器客户端都可以查看流,但后端RTSP流只能访问一次。
--> [HTTP (web browser) client1]
[back-end RTSP/RTP stream] --> [LIVE555 HLS Proxy] [Web Server] --> [HTTP (web browser) client2]
...
--> [HTTP (web browser) clientN]
基本操作
具体地说,“live555hls代理”将实时RTSP流(例如,来自网络摄像机)转换成一组HLS(“HTTP实时流”)片段,这些片段可以在HLS兼容浏览器(例如Macs或iphone上的“Safari”)中查看。
(请注意“live555hls代理”和“live555proxy服务器”之间的区别,其中对流的所有访问都是通过RTSP进行的。相反,“live555hls代理”允许客户端使用web浏览器访问流。)
要使用“live555hls代理”,必须在同一台计算机上运行web服务器(例如Apache)。
“live555 HLS Proxy”是一个命令行(即“控制台”)应用程序。要运行它:
“cd”到web服务器可访问的目录(例如,/usr/local/www/apache24/data)
运行:
<path-to-live555-software>/live/hlsProxy/live555HLSProxy<rtsp://-url-of-your-RTSP-stream><HLS-前缀>
其中<HLS-prefix>是给流指定的名称(如web浏览器用户所见)。
如果您的RTSP流受密码保护,则可以添加”-u<username><password>”选项(要指定空密码,请将””用于<password>
或者,您可以尝试在”rtsp://“URL,例如:”rtsp://<username>:<password>@<hostname>:<etc.>”(但是,不建议这样做,因为在这种情况下,密码将通过互联网以明文形式发送。另外,并非所有的RTSP服务器都接受这种类型的URL。)
如果希望通过TCP(RTSP控制连接)接收RTP/RTCP数据,可以通过添加”-t”选项来实现(与往常一样,只有在您和RTSP服务器之间有防火墙阻止UDP数据包时,才应该使用此选项。)
请注意,您可以使用不同的<HLS prefix>es同时运行”live555HLSProxy”应用程序—对于不同的输入RTSP流。
一旦应用程序读取了它的第一段数据(大约值6秒),它就会发出“哔哔”的一声,让您知道流现在可供web浏览器查看。
HLS兼容的web浏览器将能够通过HTTP(或HTTPS)URL查看流:
<web服务器的URL>/<HLS prefix>.m3u8
注意,RTSP流必须包含H.264或H.265视频,可选地包含AAC音频曲目。目前,不支持其他编解码器。
代理公布的RTSP流
此服务器应用程序还可以为使用”REGISTER” RTSP命令播发的后端RTSP流设置代理(此播发(指定后端流的”rtsp://“URL)可以由后端服务器本身或某些第三方应用程序发送。)若要为服务器应用程序提供此功能,请使用”-R”或”-R<port number>”命令行选项启动它,而不是使用”rtsp://“URL。
<port number>指定代理将在其上接收RTSP”REGISTER”命令的端口号。如果省略此项,则代理将选择自己的端口号。
作为一项特殊功能—如果在”REGISTER”命令的”Transport:”头中设置了”reuse_connection”参数—HLS代理可以重用接收到”REGISTER”命令的TCP连接。如果RTSP服务器位于防火墙或NAT后面,但HLS代理在公共Internet上运行,那么这将非常有用(在这种情况下,您可能还希望使用-t选项,请求后端RTSP服务器也在同一TCP连接上发送其RTP/RTCP数据包。)
“REGISTER”是一个定制的RTSP命令,由Live Networks,Inc.开发。它目前是非标准的,但在IETF互联网草案中有描述。
如果使用”-R”选项,则还应使用”-U<username><password>”选项,该选项指定用于验证传入的”REGISTER”命令的用户名和密码(请注意”-u”命令之间的区别,前者指定用于访问后端RTSP流的用户名和密码,后者指定用于验证传入的“REGISTER”命令的用户名和密码。)
“testProgs”目录中包含的应用程序”registerRTSPStream”可用于向HLS代理”注册”后端RTSP流。