使用 flowplayer(flash 版本),我可以使用 rtmp 协议通过 smil 文件加载多比特率视频文件。
相应的脚本如下
<script>
flowplayer("bplayer", "http://releases.flowplayer.org/swf/flowplayer-3.2.15.swf", {
clip: {
url: "bitrates3.smil.xml",
autoPlay: true,
provider: 'rtmp',
urlResolvers: [ 'smil', 'bwcheck' ]
},
plugins: {
smil: {
url: "http://releases.flowplayer.org/swf/flowplayer.smil-3.2.8.swf"
},
bwcheck: {
url: "http://releases.flowplayer.org/swf/flowplayer.bwcheck-3.2.11.swf",
serverType: 'wowza',
dynamic: true,
netConnectionUrl: 'rtmp://video.abc.com/cdn',
},
rtmp: {
url: "http://releases.flowplayer.org/swf/flowplayer.rtmp-3.2.11.swf",
netConnectionUrl: 'rtmp://video.abc.com/cdn'
},
}
}).ipad();
</script>
这是 smil 文件 - bitrates3.smil.xml(视频路径是虚拟的)
<?xml version="1.0" encoding="utf-8"?>
<smil>
<head>
<meta base="rtmp://itl.bc-s.cdn.bitgravity.com/cdn" />
</head>
<body>
<switch>
<video src="mp4:/abc/secure/A-081207-L.mp4" system-bitrate="800" width="480" />
<video src="mp4:/abc/secure/A-081207-M.mp4?" system-bitrate="1200" width="720" />
<video src="mp4:/abc/secure/A-081207-S.mp4?" system-bitrate="1600" width="1080" />
</switch>
</body>
</smil>
我还可以使用与 flowplayer 关联的 ipad 插件在 iPad 上独立播放视频。
相应的代码如下:
<html>
<head>
<title></title>
</head>
<body>
<script>
head.js(
"http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js",
"http://cdn.jquerytools.org/1.2.6/all/jquery.tools.min.js",
"http://releases.flowplayer.org/js/flowplayer-3.2.11.min.js", function(){
head.js("http://releases.flowplayer.org/js/flowplayer.ipad-3.2.12.min.js");
});
$f("player", "http://releases.flowplayer.org/swf/flowplayer-3.2.15.swf").ipad();
</script>
<!-- player container-->
<a href="http://video.abc.com/secure/A-20110128-L.mp4?e=0" class="player" style="display:block;width:425px;height:300px;margin:10px auto" id="player"> <img src="dummy-image.jpg" alt="Search engine friendly content" /> </a>
</body>
</html>
如何组合这些代码,以便多比特率切换必须适用于所有浏览器和设备?我有支持不同设备/浏览器的必要格式的视频文件。
我试图在剪辑的 ipadURL 属性中添加 http 视频链接并调用 ipad() 函数,但随后我得到一个空白的黑屏并且没有任何效果(甚至在浏览器上也没有)。