New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 771706 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 2
Type: Bug


Show other hotlists

Hotlists containing this issue:
Modern-Media-Controls


Sign in to add a comment

Default media controls inadequate for live streams played via MSE

Reported by will....@gmail.com, Oct 4 2017

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:55.0) Gecko/20100101 Firefox/55.0

Steps to reproduce the problem:
1. Play a live stream such as http://vm2.dashif.org/livesim/testpic_2s/Manifest.mpd using any MSE implementaiton. Can use a framework such as Shaka PLayer or dash.js to make this easier. Can also play a live HLS stream as this issue is not presentation format specific. I have set up a public example here: http://mediapm.edgesuite.net/will/temp/live-stream-control-example.html. This is a live stream with a 5min DVR window. 
2. Use the default controls for the video element. 

What is the expected behavior?
1. The default media controls should show an interface appropriate for a live stream (no fixed duration, constantly increasing playhead position, DVR window trailing the live edge)
2. The scrubber should allow you to seek within the allowable DVR window. 

What went wrong?
See the attached image which shows the output, compared to the control UI from 3 other players.

1. The control bar does not indicate that the stream is live
2. The duration is shown as 0
3. The current playhead position is a very large number which does not change (due to being truncated)
4. Moving the scrub bar in an attempt to seek results in an invalid action.
5. There is no notion of the DVR window or the allowable seek range within the live stream.

The player UIs in the image solve each of these problems. 

The request is for the native video element to be able to offer a similar interface. It may be required that the video element be told that the data being appended constitutes a live stream. There may also need to be an API for the player the convey the duration of the trailing DVR window. 

Did this work before? No 

Does this work in other browsers? N/A

Chrome version: 61.0.3163.100   Channel: stable
OS Version: OS X 10.12
Flash Version: Shockwave Flash 27.0 r0

Spoke with Dale Curtis at FOMS 2017
 
control-set-examples-for-live-streams.png
71.9 KB View Download
Labels: Needs-Triage-M61
Cc: susanjuniab@chromium.org
Labels: M-63 OS-Linux OS-Windows
Status: Untriaged (was: Unconfirmed)
will.law@ Thanks for the issue.

Able to reproduce this issue on Mac OS 10.12.6, Windows 7 and Ubuntu 14.04 using the latest Canary 63.0.3236.0 and Stable 61.0.3163.100.
Please find the attached screen shot for reference.

The same behavior is seen from M-50 chrome builds. Hence this is a Non-Regression issue.
Marking this as 'Untriaged' for further updates from Dev.

Thanks..
771706.png
47.8 KB View Download
Cc: dah...@chromium.org fbeaufort@chromium.org
Components: -Blink>Media Blink>Media>Controls
Labels: -M-63
Status: Available (was: Untriaged)
I think point #2 should be fixed. Apart from that, I agree that our story for live streams is fairly poor. +dahlke@ and +fbeaufort@.
Cc: wolenetz@chromium.org
Components: Internals>Media>Source
In M62, we shipped the MSE feature API for {set,clear}LiveSeekableRange() -- https://www.chromestatus.com/features/5671401352593408

In the example stream (http://mediapm.edgesuite.net/will/temp/live-stream-control-example.html), possibly because of lack of prior {set,clear}LiveSeekableRange() support (and hence, lack of allowing seeking beyond end of current buffered media in MSE if duration were set to +Infinity without that feature being used), the app doesn't set the duration for this live stream to +Infinity. If it did, and if it used {set,clear}LiveSeekableRange() to specify the DVR window, then at least HTMLMediaElement.seekable would indicate that DVR window.

Regardless, further work is necessary:
a) fix Chromium's default controls (as indicated in c#3), and
b) the app will need to indicate to the element that it wants such a specific DVR window for a live stream by setting duration to +Infinity and customizing seekable using MSE's {set,clear}LiveSeekableRange().
Cc: dalecur...@chromium.org
+Dale per comment in OP.
Note that https://vm2.dashif.org/livesim/testpic_2s/Manifest.mpd played with https://shaka-player-demo.appspot.com/demo/#asset=https://vm2.dashif.org/livesim/testpic_2s/Manifest.mpd;lang=en-US (using custom controls, apparently) seems to allow scrubbing/seeking in a DVR window of "live-head minus about 5 minutes" up to "live head".
Owner: steimel@chromium.org
Status: Assigned (was: Available)

Sign in to add a comment