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

Issue 695903 link

Starred by 3 users

Issue metadata

Status: WontFix
Owner: ----
Closed: Apr 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug-Regression



Sign in to add a comment

<video> freezes when buffer gets too low

Reported by sgunder...@bigfoot.com, Feb 24 2017

Issue description

UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36

Steps to reproduce the problem:
Hi,

I've been streaming live video with <video> to a streamable MP4 file (ie., no HLS or MPEG-DASH or any funny business requiring JavaScript). Recently during an event, lots of Chrome/Chromium people started complaining that the video would freeze for no apparent reason. This didn't happen for everybody, but perhaps 80% of the Chrome users surveyed had problems, across both Windows, Linux and macOS. Android was not affected. Firefox was not affected.

From a tcpdump, it looks like Chrome simply loses interest in the stream after a while; suddenly, the advertised TCP buffer starts going down, before the client just advertises a zero buffer and doesn't want more data. There's nothing on the console nor in Developer Tools.

I've been able to reproduce this (after significant amounts of work!) by doing a tcpdump capture and rate-limiting using pv. Of course, it is expected that if there's a buffer underrun, the browser could stutter, but it shouldn't just _stop_ with no error message or anything.

To reproduce:

1. pv -L 500k < fyrrom.raw |  nc -l -p 9094 
2. Open a <video> stream against http://127.0.0.1:9094/ (example HTML file included)
3. Observe that it stops around timestamp 74:13 (ie., eight seconds). The data continues to download, though.

If you drop the -L 500k (to stop rate-limiting), the video works perfectly and runs to the end (timestamp 74:43).

Last time I know this worked for sure was last July, but I believe this is somewhat more recent.

What is the expected behavior?
The video should play to the end (possibly with stuttering), not stop abruptly.

What went wrong?
The video stopped.

Did this work before? Yes 

Does this work in other browsers? Yes

Chrome version: 55.0.2883.87  Channel: stable
OS Version: Debian GNU/Linux unstable
Flash Version: N/A

 
Seemingly the wizard didn't manage to include the files. Doing so.
fyrrom.raw
21.4 MB Download
video.html
135 bytes View Download
Labels: Needs-Triage-M56

Comment 3 by guidou@chromium.org, Feb 27 2017

Components: -Blink>MediaStream Blink>Media>Video

Comment 4 by mcasas@chromium.org, Feb 27 2017

Cc: mlamouri@chromium.org
+mlamouri@ for triaging
Cc: rbasuvula@chromium.org
Labels: -Needs-Triage-M56 TE-NeedsTriageHelp
This looks like out of scope for TE(Remote Access), hence adding the respective label for it to  triage further.
Cc: dalecur...@chromium.org
+dalecurtis for triaging
Cc: hubbe@chromium.org
Hmm, interesting. What does dev tools say about the network connection? Can you paste the contents of chrome://media-internals after this failure?
Devtools doesn't really indicate there's anything wrong with the network connection; it just keeps downloading the stream AFAICS.

Attaching media-internals. Something seems to send a pause signal and then never resume it again.
media-internals (1).txt
5.4 KB View Download
Hmm, that's really strange. That pause signal should only come from Blink or MediaSession, but there's no media session on desktop.

I'm not sure why we'd be getting a Pause event here. If there was a network buffering issues there should be more logs in there.

If you hit play on the controls does the video resume?

Comment 10 by hubbe@chromium.org, Mar 13 2017

This seems to be already fixed, although I don't know when.
When I tried this on a stable build, I can reproduce the bug.
But when I try it on ToT build, it continues playing until the end.

Yes, it's really strange :-)

The controls don't actually show a play icon; it still shows a pause icon, so it appears to be in some sort of in-between state. If I hit the pause icon, it changes to a play icon (nothing else happens); if I hit the play icon after that, it disconnects from the stream and tries to reconnect. (In the test with pv, of course that doesn't work; in a real stream, it would essentially be the same as reloading the page.)
@hubbe: If it continues playing to the end smoothly, that's something wrong (you probably started pv too early, so it gets to buffer up too much); it should at the very least skip, since 500k isn't enough to keep up the stream.

Comment 13 by hubbe@chromium.org, Mar 13 2017

With ToT it stops to buffer serveral times during playthrough, but each time it continues after a second or two.

Nice. Are there ToT builds available somewhere so I can try to verify the fix? Or should I perhaps try to see if the beta channel helps?
I tried unstable (58.0.3029.14). It doesn't show video (not even for YouTube), but judging from the audio, it does indeed stutter and then recover.

Comment 16 by hubbe@chromium.org, Mar 13 2017

Canary is closest to ToT (tip-of-tree). Beta is in between canary and stable.
Since I don't know when it was fixed, I don't know if it will work on canary or beta yet. If you do try it, please let us know what you find.

Beta (57.0.2987.98) behaves exactly like stable does; plays the video, stops/pauses on first underrun.
Components: -Blink>Media>Video Internals>Media>Network
Labels: Needs-Feedback
Any news on this?
Issue is still there with 57.0.2987.110. Should I wait until 58 hits stable and then retest?
Project Member

Comment 20 by sheriffbot@chromium.org, Mar 29 2017

Labels: -Needs-Feedback
Thank you for providing more feedback. Adding requester "mlamouri@chromium.org" to the cc list and removing "Needs-Feedback" label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
58.0.3029.41 works fine; video plays, when buffering gets too low it skips but continues when buffer has picked up again.
Status: WontFix (was: Unconfirmed)
as per c#21, this issue not repro anymore.

Sign in to add a comment