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
MSE with variable frame rate videos #176
Comments
define frame. In Firefox, frame rate (aka sampling rate) for audio track must be constant between init segments. It won't play nice otherwise. For video however, only the start time of the video frame matters. A video frame is displayed until a new one starts. The duration of a frame is as such nextFrame.startTime - currentFrame.startTime |
We have stream with PTS values as following: And sourceBuffer.buffered shows gaps every ~ 2 secs (which is duration of segments) |
For Chrome, please file a bug at https://crbug.com with media that reproduces the problem, and we'll investigate. Feel free to send email to me directly with a link to repro media, if sharing it widely is a concern. In general VFR video should not be a problem in Chrome. Does chrome://media-internals give any warnings or errors? Note especially that MSE is quite strict about when a gap (discontinuity in buffered ranges) might be detected in the appended media. Especially, if there is a jump forward more than 2*last frame duration in the sequence of DTS (not PTS), then the spec indicates discontinuity has occurred. This is the most likely source of gaps, and isn't necessarily rated to VFR. |
AFAIK, Chrome and Edge have currently a bug open in that they incorrectly use the DTS to calculate the buffered range. This is probably what you're seeing Firefox with those timestamps, shouldn't show gaps in the buffered range. |
@ #176 (comment) : You're correct about the Chrome bugs (I'm working on those now :)). However, the MSE spec describes the discontinuity detection within a sequence of appended frames to be based upon DTS. The other half of the problem is overlap-detection in the already-buffered media, which is known in Chrome to be based incorrectly on DTS at the moment as noted in those bugs. |
Did a crbug get entered on this? I'm not sure of IE behavior, but we expect that Edge would play variable frame rate with no special limitations. I'd be interested in getting content if anyone observes otherwise. |
@jdsmith3000 No bugs got entered yet, we're investigating how our PTS/DTS are populated to eliminate encoding issue. |
@NatalyMagluy Please retry with Chrome Canary or Dev (M-66) with command-line option "--enable-features=MseBufferByPts". That switch engages new logic for compliant buffering by PTS intervals (not DTS intervals) in Chrome MSE. We'll be starting experiments in preparation for launch of that logic soon, too. |
Please re-open this issue if there is still some concern around lack of variable frame rate support. The previously referenced MSE implementation issues around PTS/DTS have been fixed in Chromium for well over a year now. |
I didn't find any documentation stating if variable frame rate (VFR) is supported by HTML5 video+MSE.
I see problems in VFR stream playback in Chrome and IE.
Can anyone tell me if VFR should be supported?
Thanks,
Nataly.
The text was updated successfully, but these errors were encountered: