【发布时间】:2016-02-19 06:33:43
【问题描述】:
我在 wowza 论坛上发布了这个,但总共得到了 0 条回复,所以我也想在这里发帖。我还没有做很多媒体流媒体工作,我正在尝试关闭一个 VOD 项目的一些细节,该项目基本上将视频流式传输到网站,并且遇到了使正确的流传输到正确的消费者的问题(例如:android 浏览器、chrome 桌面浏览器、iOS 等)。我已经浏览了一堆教程、论坛等,但找不到正确的解决方法,包括这里的一些问题...
这是我设置的: 在Wowza: 我有一个 VOD 应用程序设置
- 内容目录:
${com.wowza.wms.context.VHostConfigHome}/content/Weekends - 播放类型:MPEG-DASH、Apple HLS、Adobe RTMP、Adobe HDS、RTSP/RTP 全部
启用 - SMIL 文件:sopweekendsmil.smil(内容如下)
SMIL 文件(在底部发布的测试 url 中,由于隐私原因,我目前使用的与此 SMIL 中描述的不同 - 以下是实际项目的 SMIL 文件):
<?xml version="1.0" encoding="UTF-8"?>
<smil title="">
<body>
<switch>
<video height="240" src="SOP_priorities_240p.mp4" width="320">
<param name="videoBitrate" value="1000000" valuetype="data"></param>
<param name="audioBitrate" value="48000" valuetype="data"></param>
</video>
<video height="360" src="SOP_priorities_360p.mp4" width="640">
<param name="videoBitrate" value="2000000" valuetype="data"></param>
<param name="audioBitrate" value="48000" valuetype="data"></param>
</video>
<video height="480" src="SOP_priorities_480p.mp4" width="720">
<param name="videoBitrate" value="2000000" valuetype="data"></param>
<param name="audioBitrate" value="48000" valuetype="data"></param>
</video>
<video height="540" src="SOP_priorities_540p.mp4" width="960">
<param name="videoBitrate" value="2500000" valuetype="data"></param>
<param name="audioBitrate" value="48000" valuetype="data"></param>
</video>
<video height="720" src="SOP_priorities_720p.mp4" width="1280">
<param name="videoBitrate" value="5000000" valuetype="data"></param>
<param name="audioBitrate" value="48000" valuetype="data"></param>
</video>
</switch>
</body>
</smil>
我在 wowza 服务器的相应文件夹中有上述视频。
在应用程序网页中: 我正在使用 JW Player,并使用以下代码嵌入 JW Player(6.9 版):
<script type="text/javascript">
jwplayer("myElement").setup({
fallback: true,
width: 640,
height: 480,
sources: [{
file: "http://[serverurl]:[port]/Weekends/smil:sopweekendsmil.smil/jwplayer.smil"
},{
file: "http://[serverurl]:[port]/Weekends/smil:sopweekendsmil.smil/playlist.m3u8"
},{
file: "http://[serverurl]:[port]/Weekends/smil:sopweekendsmil.smil/manifest.f4m"
},{
file: "http://[serverurl]:[port]/Weekends/smil:sopweekendsmil.smil/manifest.mpd"
}],
rtmp: {
bufferlength: '10'
},
plugins: {
'qualitymonitor-2':{}
}
});
</script>
(我真的不知道 qualitymonitor 插件是做什么的,也不知道它是否有效。如果我把它拿出来似乎没有任何影响......)。 我用 JW Player 语法尝试了一堆变体,但这适用于桌面浏览器(Chrome/Firefox)。但是,唯一可以正常工作的文件/url 似乎是 jwplayer.smil。其他的都不能在桌面浏览器上运行——如果我取出 jwplayer.smil url 来测试其他的,我会收到“找不到可播放的源”消息。此外,无论我尝试什么,这在任何移动浏览器上都不起作用。我只尝试了一个文件(例如:.m3u8 smil url)并得到了同样的错误。
当我在 Wowza 服务器界面中尝试测试播放器功能时,MPEG DASH 测试正常工作,Adobe HDS 正常工作(在 chrome 浏览器中),但我似乎无法让那些在测试播放器之外工作。
我感觉我遗漏了一些概念性的部分——我是否需要为不同的消费者创建更多的实际文件?或者可能是我如何设置 JW Player?或者有什么东西被屏蔽了?
任何帮助将不胜感激。
更新:我得到了部分工作 - 我将嵌入代码更新为 以下:
jwplayer("myElement").setup({ fallback: true, width: 640, height: 480, androidhls: true, sources: [{ file: "<?php echo $jwUrl; ?>", type: "rtmp" },{ file: "<?php echo $hlsUrl; ?>", type: "hls", "default": "true" },{ file: "<?php echo $dashUrl; ?>", type: "dash" }], rtmp: { bufferlength: '10' } });我尝试完全关闭 RTMP,据我了解这应该是 能够在没有 RTMP 的情况下工作,但在 chrome 或 适用于 OSX 的 firefox,所以当我将其添加回来并制作 HLS 时 默认情况下,我能够让流在移动设备和桌面设备上播放 浏览器正确。如果我有一个不同的默认设置,手机 浏览器不播放流...仍在尝试解决为什么什么都没有 如果我不从 Wowza 流式传输 RTMP,桌面浏览器就可以工作......
【问题讨论】:
-
一个想法:您有哪些 JW Player 许可证?免费版支持的功能不如完整版多。 Flash 模式下的 HLS 播放受到限制。
-
好点 - 我目前正在使用 7.x 的免费版本进行测试。我的理解是它应该按顺序尝试每个流,直到一个工作,这似乎在移动设备上,它应该尝试 rtmp,认识到它不起作用,然后尝试下一个(假设我取出“默认” )...但它似乎没有这样做...
-
我不确定它是否可以在不支持 Flash 的移动设备上播放 RTMP,这种情况非常罕见
标签: video-streaming mp4 jwplayer wowza jwplayer6