浏览器使用quicktime插件播放rtsp实时视频流

           前阵子写了一篇在浏览器用vlc插件播放rtsp实时视频流的文章,当时测试电脑是xp,测试效果还行。但在win7下不可以使用,提示该插件未知,为了电脑的安全性,禁止被使用。这几天想了想,换用quicktime插件播放rtsp实时视频流。


核心代码如下;

<object CLASSID="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" width="320" height="256" CODEBASE="http://www.apple.com/qtactivex/qtplugin.cab">
<param name="src" value="sample.mov">
<param name="qtsrc" value="rtsp://realmedia.uic.edu/itl/ecampb5/demo_broad.mov">
<param name="autoplay" value="true">
<param name="loop" value="false">
<param name="controller" value="true">
<embed src="sample.mov" qtsrc="rtsp://realmedia.uic.edu/itl/ecampb5/demo_broad.mov" width="320" height="256" autoplay="true" loop="false" controller="true" pluginspage="http://www.apple.com/quicktime/"></embed>
</object>


简要分析下这段代码,


<object ...>... </object>   一个ActiveX控件,被嵌入IE浏览器中,需要classid,高度、宽度、src等参数 

CLASSID="..."    指定装载的文件类型,应用程序应该处理它,用于windows注册

width="...", height="..."     指定播放对象的尺寸,一般为320*240像素

CODEBASE="..."            告诉ie在什么地方能得到ActiveX控制,其实你可以把cab包下载下来放到自己的应用中,然后路径改成自己的就可以了

<param name="..." value="...">     学过java的就会明白,map键值对

src="..."  指定该url对象

qtsrc="..."        使用quicktime播放器的url地址

autoplay="true"/"false"   是否自动播放,单个视频的话建议选择true

loop="true"/"false"      是否循环播放,建议选择false

controller="true"/"false"      用户是否控制,包括暂停,播放等,建议选择true

<embed ...></embed>       用于Netscape兼容的浏览器,IE将忽略掉它

pluginspage="..."   告诉与Netscape兼容的浏览器,在什么地方得到插件安装


后记:quicktime 播放rtsp流没音频,重新找了个vlc浏览器插件fbvlc,介绍见http://code.google.com/p/fbvlc/  ,最新source见http://sourceforge.net/projects/fbvlc/ ,支持windows和mac系统

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
要在Java后台中获取RTSP视频流,可以使用JavaCV这个开源库。它提供了一个名为FFmpeg的Java接口,可以让你直接在Java中使用FFmpeg的功能。 以下是获取RTSP视频流的示例代码: ```java import org.bytedeco.javacv.*; import javax.swing.*; public class RTSPTest { public static void main(String[] args) throws Exception { String rtspUrl = "rtsp://example.com/stream.mp4"; // RTSP流地址 FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(rtspUrl); grabber.start(); CanvasFrame canvas = new CanvasFrame("RTSP Stream"); // 创建一个窗口用于显示视频流 canvas.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); while (true) { Frame frame = grabber.grab(); if (frame == null) { break; } canvas.showImage(frame); } grabber.stop(); canvas.dispose(); } } ``` 这个代码片段使用JavaCV的FFmpegFrameGrabber类从RTSP地址获取视频流,并将每一帧显示到一个Swing窗口上。 如果你想在浏览器中无插件播放RTSP视频流,可以使用WebRTC技术。WebRTC是一种基于Web的实时通信技术,它可以让你在浏览器中直接播放RTSP视频流,而不需要使用任何插件。 以下是使用WebRTC播放RTSP视频流的示例代码: ```html <!DOCTYPE html> <html> <head> <title>RTSP Stream</title> </head> <body> <video id="video" autoplay></video> <script> const video = document.getElementById('video'); const stream = new MediaStream(); // RTSP地址 const rtspUrl = 'rtsp://example.com/stream.mp4'; // 创建RTSP客户端 const client = new rtsp.RTSPClient(); client.connect(rtspUrl); client.onMedia = ({ track, type }) => { // 将RTSP流添加到MediaStream中 stream.addTrack(track); // 如果是视频流,则将其绑定到video元素 if (type === 'video') { video.srcObject = stream; } }; client.start(); </script> </body> </html> ``` 这个代码片段使用了一个名为rtsp.js的开源库来实现WebRTC播放RTSP流。它创建了一个RTSP客户端,并将获取到的视频流添加到一个MediaStream中,最终将视频流绑定到一个video元素上,从而在浏览器中无插件播放RTSP视频流
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值