Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Player stops working when seeking with HTML5 controls. js html5 api seeking works (Win10/Edge) #951

Closed
cm-cm-cm-cm opened this issue Jul 27, 2017 · 8 comments
Assignees
Labels
status: archived Archived and locked; will not be updated type: bug Something isn't working correctly
Milestone

Comments

@cm-cm-cm-cm
Copy link

cm-cm-cm-cm commented Jul 27, 2017

Have you read the FAQ and checked for duplicate issues:
yes
What version of Shaka Player are you using:
2.1.5
Can you reproduce the issue with our latest release version:
yes
Can you reproduce the issue with the latest code from master:
yes
Are you using the demo app or your own custom app:
custom app
If custom app, can you reproduce the issue using our demo app:
no
What browser and OS are you using:
Works: Windows 10 Chrome, Doesnt work: Windows 10 Edge
What are the manifest and license server URIs:
Manifest: https://gist.github.com/mchanton/af95d168a53daa749bcffe32bb564a6e
No license

What did you do?
Start playing the video, click into the timeline to seek to a different spot of the video.

What did you expect to happen?
The player to seek and continue play.

What actually happened?
The player seeked to the spot, the video changes to that frame, but doesnt continue playing. Also: player is frozen now, not possible to press play again. Console output ends with "calling switch_()" and then "switch_", just like if it would work. It also fires all the "timechanged" and "seek" events, just doesnt ever play again.

Seeking does work if I seek by using the html5 api. It also works if I press the "-30s" Button of the Edge HTML5 video controls. Seeking also works perfectly in Chrome and Firefox.

I encoded the video like this:

ffmpeg -i "$source_absolute" -c:v libx264 -preset ultrafast -tune fastdecode -g 100 -crf 28 -vsync passthrough -c:a aac -strict -2 output.mp4

And then created the dash files like this:
MP4Box -dash 4000 -frag 4000 -rap -bs-switching no -segment-name segment output.mp4

Does anyone have an Idea wat the Problem is?

edit:

Also, the video and audio data is muxed into one file.

If I put seperate segments for audio and video into the mpd file, it works perfectly with the dash-if dash.js.

@cm-cm-cm-cm cm-cm-cm-cm changed the title Player stops working when seeking with HTML5 controls. (Edge) Player stops working when seeking with HTML5 controls. js html5 api seeking wors (Win10/Edge) Jul 27, 2017
@cm-cm-cm-cm cm-cm-cm-cm changed the title Player stops working when seeking with HTML5 controls. js html5 api seeking wors (Win10/Edge) Player stops working when seeking with HTML5 controls. js html5 api seeking works (Win10/Edge) Jul 27, 2017
@joeyparrish
Copy link
Member

@mchanton, we can't reproduce your issue from the MPD in your gist without also having access to the segments. Can you post them somewhere for us to try?

@joeyparrish joeyparrish added needs triage status: waiting on response Waiting on a response from the reporter(s) of the issue labels Aug 4, 2017
@cm-cm-cm-cm
Copy link
Author

Here's a 2 minute test clip with segments and mpd:
https://drive.google.com/file/d/0B5FcVrgW0GCXdHJIdmlMZXpldjg/view?usp=sharing

Created with this ffmpeg call:

ffmpeg -ss 3600 -loglevel error -i video.mp4 -t 120 -c:v libx264 -preset ultrafast -tune fastdecode -g 100 -crf 28 -vsync passthrough -c:a aac -strict -2 output.mp4

@joeyparrish joeyparrish added status: unable to reproduce Issue could not be reproduced by the team and removed needs triage status: waiting on response Waiting on a response from the reporter(s) of the issue labels Aug 7, 2017
@joeyparrish
Copy link
Member

With the content you sent via drive, I am unable to reproduce on Edge 15. Here's a demo:

https://shaka-player-demo.appspot.com/demo/#asset=//storage.googleapis.com/shaka-demo-assets/_bugs/github-951/output_dash.mpd;play

What Edge version do you have? (Check navigator.userAgent and look for Edge/XX.)

@joeyparrish joeyparrish self-assigned this Aug 7, 2017
@cm-cm-cm-cm
Copy link
Author

Thanks for checking my video!

I tested your demo page on Edge and it worked for me as well. Then I used the dom inspector of Edge and realized that that Demo page isn't using the html5 native video controls, it uses own controls inside the dom. This means the video is getting seeked with the javascript api and not the native controls. My error only happens with native controls. Seeking with the javascript api works for me too.

Is using own custom video controls (seekbar, play button etc.) the way to go?

@joeyparrish
Copy link
Member

We intend to support the native controls, as well. You shouldn't always have to implement your own (although it does give you much more UI and UX freedom to do so).

Let us try again with native controls.

@joeyparrish joeyparrish added type: bug Something isn't working correctly and removed status: unable to reproduce Issue could not be reproduced by the team labels Aug 10, 2017
@joeyparrish joeyparrish modified the milestones: v2.3.0, v2.2.0 Aug 10, 2017
@joeyparrish
Copy link
Member

I can reproduce on Edge with native controls, and I'm well on the way to a fix.

shaka-bot pushed a commit that referenced this issue Aug 10, 2017
This makes it easier to test and reproduce issues with native controls.

Issue #951

Change-Id: I77aa56e735ecfc934d4d79b35e0c1af727421406
joeyparrish added a commit that referenced this issue Aug 10, 2017
This makes it easier to test and reproduce issues with native controls.

Issue #951

Change-Id: I77aa56e735ecfc934d4d79b35e0c1af727421406
joeyparrish added a commit that referenced this issue Aug 10, 2017
When the user seeks using Edge's native controls, Edge sets
playbackRate to 0 first.  This confused Playhead and resulted in a
playbackRate stuck at 0 after the seek.

To fix it, we filter out rate changes to 0 in the code that remembers
the previous setting during a buffering event.

Closes #951

Backported to v2.1.x

Change-Id: Ia7a9a2a6d65dcf2d74ea6fb4d92594070a1ebe6a
@joeyparrish
Copy link
Member

The fix has been cherry-picked for v2.1.7.

@cm-cm-cm-cm
Copy link
Author

Thanks a lot for fixing it!

@shaka-project shaka-project locked and limited conversation to collaborators Mar 22, 2018
@shaka-bot shaka-bot added the status: archived Archived and locked; will not be updated label Apr 15, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
status: archived Archived and locked; will not be updated type: bug Something isn't working correctly
Projects
None yet
Development

No branches or pull requests

3 participants