1

I'm looking for a solution that allows a user to pause a video and resume playback on different device. Plex Media Server does a fairly good job of this with it's ''On Deck" feature.

On Deck displays movies that were started, but not finished, so they're "in progress" http://wiki.plexapp.com/index.php/Frequently_Asked_Questions#What_are_the_On_Deck_and_Shelf_features_in_the_client.3F

In Plex, when you select a video that is "On Deck", you have the option to continue from where you left off, or start from the beginning. Applications like Pause For Later also acheive this.

I'm currently using HLS for content delivery. For HLS streaming, one possible solution I have is to store the URL of the client's last requested media segment. This means playback progress could be determined server-side and saved regardless of whether the user paused, closed or lost connection. To resume, the application could generate a m3u8 playlist which starts from that last requested segment URL. However, there are a number of problems with this solution:

  1. You cannot rewind/backtrack.
  2. The video is resumed from the start of the last requested segment, not the exact point you left off.
  3. Specific to HLS.

So, how is this achieved in applications like Plex? Although I can't think of any concrete examples, I imagine that saving playback progress can be (and probably has been) done on downloaded videos? What design options are there for pausing and resuming an 'in-progress' video?

4

1 回答 1

2

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

这个问题在媒体传递层并不是真正可以解决的,因为传递的内容与播放的内容不是 1:1 匹配的,只有媒体播放器知道这一点。所以它总是要通过媒体播放器集成来完成。

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

于 2013-06-10T10:54:14.073 回答