我正在尝试使用 raspivid 和 HTML 5 在 RaspberryPi 上托管一个本地网站。到目前为止,我已成功获取 RTSP 链接,并在各种设备上的 VLC 播放器上查看此直播。该链接如下所示:
RTSP://1XX.1XX.X.1XX:PORT/
现在尝试将此流嵌入到服务器站点中,我已经尝试了视频标签;
<video src="rtsp://1XX.1XX.X.1XX:PORT">
Your browser does not support the VIDEO tag and/or RTP streams.
</video>
返回错误:
Failed to load resource: net::ERR_UNKNOWN_URL_SCHEME
我也尝试过直接嵌入VLC播放器;
<OBJECT classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921"
codebase="http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab"
width="640" height="480" id="vlc" events="True">
<param name="Src" value="rtsp://1XX.1XX.X.1XX:PORT" />
<param name="ShowDisplay" value="True" />
<param name="AutoLoop" value="False" />
<param name="AutoPlay" value="True" />
<embed id="vlcEmb" type="application/x-google-vlc-plugin" version="VideoLAN.VLCPlugin.2" autoplay="yes" loop="no" width="640" height="480"
target="rtsp://1XX.1XX.X.1XX:PORT" ></embed>
</OBJECT>
此方法在chrome上显示“不支持插件”,而在safari上根本不显示。我最好找到一种嵌入此流的方法,而不需要特定的浏览器插件,因为服务器将被网络上的各种设备和浏览器访问。
如果有人对如何启动和运行有任何建议或想法,或者如果这是可能的,我将非常感激,因为我现在已经花了几天时间在这上面,并且似乎无法在任何地方找到任何相关/最新的指导。
如果可能,我想避免任何端口转发。如果有必要,我很乐意实现简单的 API,但是我想让项目保持相当“简单”,而不是让事情变得过于复杂。该网站是静态的,我希望不需要任何后端/PHP 类型的东西。
目前我还不知道有任何浏览器本身支持 RTSP。
正如您所见,过去有基于插件的解决方案和解决方法,但我认为都不可靠。这个答案有一个很好的总结:如何在网页中显示 RTSP 视频流?
最常见的方法是将 RTSP 流转换为浏览器可以显示的内容 - 通常是 HLS 或 DASH,或 WebRTC。库可提供此功能 - 例如:
您还可以使用 ffmpeg 自己进行转换 - 如果您搜索,您会发现多个关于此的博客、指南等(例如:https://superuser.com/a/1208297)。