我有一台提供实时RTSP视频流的IP摄像头。我可以通过提供URL来使用VLC媒体播放器查看该视频源:
rtsp://cameraipaddress
但我需要在网页上显示这个视频。摄像头供应商提供了一个ActiveX控件,我已经让它工作,但它非常容易出错并导致浏览器经常挂起。
有人知道我可以使用哪些支持RTSP的替代视频插件吗?
该摄像头可配置为以H264或MPEG4格式进行流媒体传输。
我有一台提供实时RTSP视频流的IP摄像头。我可以通过提供URL来使用VLC媒体播放器查看该视频源:
rtsp://cameraipaddress
但我需要在网页上显示这个视频。摄像头供应商提供了一个ActiveX控件,我已经让它工作,但它非常容易出错并导致浏览器经常挂起。
有人知道我可以使用哪些支持RTSP的替代视频插件吗?
该摄像头可配置为以H264或MPEG4格式进行流媒体传输。
VLC还带有一个ActiveX插件,可以在网页中显示视频提供的源:
http://wiki.videolan.org/ActiveX/HTML
<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://cameraipaddress" />
<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://cameraipaddress" ></embed>
</OBJECT>
大致上,您可以有三种选择在网页中显示RTSP视频流:
您可以通过谷歌搜索找到嵌入ActiveX的代码。
据我所知,每个播放器都有一些限制。
在网页上显示来自IP摄像机的实时视频流并不容易,因为您需要宽带互联网和与主要浏览器兼容的出色视频播放器。
但幸运的是,有一些基于云的服务可以帮助我们完成这项工作。其中最好的之一是IPCamLive。该服务可以接收来自IP摄像机的RTSP/H264视频流,并向观众进行广播。 IPCamLive具有Flash/HTML5视频播放器组件,在PC、MAC、平板电脑或移动设备上显示视频。最棒的是,该网站会生成所需的HTML片段,以嵌入实时视频,就像这样:
<iframe src="http://ipcamlive.com/player/player.php?alias=szekesfehervar" width="800px" height="600px"/>
所以我们只需要将其复制粘贴到我们的HTML文件中,不进行任何修改。
您也可以尝试使用开源的WebRTC媒体服务器Kurento
Kurento 可以播放 RTSP 视频流并将其发送至 WebRTC 或转码为 RTMP 或保存在服务器上。
我们在生产环境中使用它处理以下情况:
我在VLC官方文档中找到了一个简单有效的解决方案,适用于Web插件。
https://wiki.videolan.org/Documentation:WebPlugin/
稍微修改了一下代码,现在它可以正常工作。以下是我的代码-
<embed type="application/x-vlc-plugin" pluginspage="http://www.videolan.org" autoplay="yes" loop="no" width="300" height="200" target="rtsp://10.20.50.15:554/0/888888:888888/main" />
<object classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921" codebase="http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab" style="display:none;"></object>
注意:上面的代码片段使用的是rtsp
url格式,该格式适用于我的IP摄像头。因此您需要根据您的摄像头获取相同的信息。您可以通过咨询摄像头供应商支持来获得此信息。另外请注意,我在Chrome上进行了测试(使用Chrome的ActiveX插件),其他浏览器(包括手机浏览器)可能不被支持。
x-vlc-plugin
,忽略专有内容并推送一个VLC应用程序意图。此外,关于您提到的跨平台替代方案:目前唯一的解决方案是在Web服务器中使用ffmpeg/avconv等重新打包RTSP流以便于HTTP/WebSocket/WebRTC。然后只需添加一个 <video>
标签即可完成。 - nonchiphttp://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab
404未找到。 - Vara PrasadWeb Call Server(Flashphoner)
将RTSP重新流媒体到WebRTC(原生浏览器功能,适用于Chrome和FF,无论是在Android还是桌面上)
将RTSP重新流媒体到Websockets(iOS Safari和Chrome / FF桌面版)
请查看此文章。
尝试使用QuickTime播放器!这是我的JavaScript代码,用于在网页上生成嵌入对象并播放流:
//SET THE RTSP STREAM ADDRESS HERE
var address = "rtsp://192.168.0.101/mpeg4/1/media.3gp";
var output = '<object width="640" height="480" id="qt" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab">';
output += '<param name="src" value="'+address+'">';
output += '<param name="autoplay" value="true">';
output += '<param name="controller" value="false">';
output += '<embed id="plejer" name="plejer" src="/poster.mov" bgcolor="000000" width="640" height="480" scale="ASPECT" qtsrc="'+address+'" kioskmode="true" showlogo=false" autoplay="true" controller="false" pluginspage="http://www.apple.com/quicktime/download/">';
output += '</embed></object>';
//SET THE DIV'S ID HERE
document.getElementById("the_div_that_will_hold_the_player_object").innerHTML = output;
<video:>
元素:https://dev59.com/_XI-5IYBdhLWcg3wqqXh - Ciro Santilli OurBigBook.com<img>
标签的src
属性。它可以工作,但速度非常慢,看起来不像实时流视频。你已经尝试过你的想法吗?它运行得快吗? - O Connor