如何暂停和恢复正在进行的视频?

时间:2013-06-05 15:03:33

标签: video video-streaming http-live-streaming m3u8

我正在寻找一种允许用户暂停视频并在不同设备上恢复播放的解决方案。 Plex Media Server可以很好地解决这个问题,它可以帮助它实现这一目标。' On Deck"特征

  

On Deck显示已启动但尚未完成的电影   他们正在进行"   http://wiki.plexapp.com/index.php/Frequently_Asked_Questions#What_are_the_On_Deck_and_Shelf_features_in_the_client.3F

在Plex中,当您选择" On Deck"的视频时,您可以选择从中断的位置继续,或从头开始。像Pause For Later这样的应用程序也可以实现这一点。

我目前正在使用HLS进行内容投放。对于HLS流,我的一个可能的解决方案是存储客户端最后请求的媒体段的URL。这意味着无论用户是暂停,关闭还是丢失连接,都可以在服务器端确定播放进度并保存。要恢复,应用程序可以生成一个m3u8播放列表,该播放列表从最后请求的段URL开始。但是,此解决方案存在许多问题:

  1. 您无法快退/回溯。
  2. 视频从一开始就恢复了 最后请求的段,而不是您中断的确切点。
  3. 特定于HLS。
  4. 那么,在Plex等应用中如何实现这一目标?虽然我无法想到任何具体的例子,但我想可以(也可能已经)在下载的视频上保存播放进度?有什么设计选项可用于暂停和恢复正在进行中的#39;视频?

1 个答案:

答案 0 :(得分:2)

您需要将书签存储在带外。当他们点击暂停时,让客户端在与其帐户绑定的单独服务上记录书签。然后,当从另一个客户端播放时,查找书签并从资产中的该偏移量开始。

这个问题实际上不是你可以在媒体传送层解决的问题,因为传送的内容不是与播放内容的1:1匹配,只有媒体播放器知道这一点。因此,媒体播放器集成将始终如此。

为了覆盖客户端失去连接的情况,客户端可以周期性地重新设置书签(例如,每10秒)。然后,如果他们稍后从另一个设备开始播放,则最后设置的书签可以用作恢复位置。