使用媒体播放器库在Chromecast上播放广告

时间:2014-07-18 21:16:12

标签: html5 http-live-streaming chromecast google-cast

亲爱的Stack Overflow,

我目前正在为现有的视频流服务开发Chromecast应用,并希望在我们的chromecast端口上播放广告。

我们的视频内容为HLS,因此我们使用媒体播放器库(0.7.0)进行视频播放,而我们的广告内容目前是MP4内容。就其本身而言,所有广告和视频内容都可以在设备上独立播放。没有编码或CORS问题;)

我希望能够播放midroll广告内容,而无需卸载当前的HLS内容(尤其是主M3U8)

最明显的解决方案是停止媒体播放器,播放广告内容,并在广告插播时恢复HLS内容。这会导致缓冲的内容被清除,当视频恢复时,我们将从低比特率重新开始,重新加载缓冲区,并提高质量。

有没有办法让媒体播放器库提示恢复比特率,或者在播放广告时没有完全卸载缓冲区,以便视频恢复得更快?

如果不可能,我们还有另一个问题。

我们的内容受到保护,并且在主M3U8的请求的查询字符串中需要身份验证令牌。 (例如。http://example.com/video.m3u8?token=abc)在该响应中,设置了一个授权cookie,该cookie必须包含在M3U8和TS文件的后续请求中,并且在很长一段时间内有效。

身份验证令牌仅在约5分钟内有效。在我们的广告midroll播放解决方案中,当我们开始广告播放时,我们会丢失主m3u8,并且必须重新请求它。如果视频恢复,且时间超过5分钟,则身份验证令牌已过期,我们需要续订令牌。

有没有办法让媒体播放器库在播放之间缓存Master M3U8?是否有其他解决方案,我们不必在每次广告中断后检索新令牌?

提前谢谢。

1 个答案:

答案 0 :(得分:1)

实现这一目标的最佳方法是将广告拼接到HLS播放列表中,并使用#EXT-X-DISCONTINUITY来表示广告的开始和结束时间。