在JW Player控制栏中启用缓冲区流程进度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在JW Player控制栏中启用缓冲区流程进度相关的知识,希望对你有一定的参考价值。

我有一个rtmp on demand流(由Wowza服务器提供),我已经使用JWPlayer配置它。它运行良好,我想在JWplayer控制栏中添加吹流进度,就像YouTube视频播放器缓冲流程进度一样。

这是我的JW播放器代码:

<body>
    <div id='mediaspace'>JW test Player with buffer enabled</div>
    <script type='text/javascript' src='jwplayer.js'></script>
    <script type='text/javascript'>
        jwplayer('mediaspace').setup({
            'flashplayer': 'player.swf',
            'file': 'mp4:path1/revolution.2012.101.hdtv-lol.mp4',
            'provider': 'rtmp',
            'frontcolor': '000000',
            'lightcolor': '000000',
            'screencolor': '000000',
            'bufferlength': '20',
            'streamer': 'rtmp://198.105.211.36:1935/mediacache',
            'controlbar': 'bottom',
            'width': '700',
            'height': '400'
          });
    </script>
</body>
答案

简答

RTMP只存储足够的缓冲区供视频播放而不会暂停,这就是JWPlayer中没有看到任何缓冲区的原因。

答案很长

YouTube使用HTTP Pseudo-Streaming提供内容,以便完全缓冲视频。您目前正在使用RTMP来传输没有真正缓冲区的视频。

来自JWPlayer support forum

当播放器正在播放来自RTMP服务器的内容时​​,不会公开缓冲区。这是因为与渐进式下载或HTTP伪流式传输不同,RTMP只会下载足够的内容以显示它而不必暂停,因此播放器不会报告缓冲区百分比。

如果您希望您的观众能够寻找尚未下载的视频部分并能够缓冲视频(适用于慢速互联网连接),同时您可以切换到HTTP Pseudo-Streaming

另一答案

通常,Wowza RTMP将流作为块提供。如果我在播放器中暂停流,wowza服务器也会将块暂停到播放器。这导致我们不会从服务器获取数据/块。如此清楚我希望缓冲是不可能的。

对于HTTP Pseudo流,它不是那样的,它使用渐进式下载方法。所以缓冲是可能的。

请参阅更多:http://en.wikipedia.org/wiki/Flash_Video

以上是关于在JW Player控制栏中启用缓冲区流程进度的主要内容,如果未能解决你的问题,请参考以下文章

如何在使用 JW Player 时创建嵌入代码

JW Player参数详解

html JW Player HTTPS AdTags和Javascript API嵌入代码示例

如何使用 JW Player 播放 rtmp 流?

JW Player 嵌入代码的问题 - 带有 HTML5 后备的 Flash

JW Player 从 S3 嵌入 RTMP