-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
If It use multiple audio groups in fmp4 format, startPTS will be incorrectly recognized. #5802
Comments
@robwalch please, check. |
Hi @wise-kim-vr, I am unable to reproduce the issue. When switching variants with different audio groups containing bit-identical audio tracks of the same language, the switch is seamless. The live stream I am testing with has program-date-time so the audio playlists were aligned using the date values across playlists: hls.js/src/controller/audio-stream-controller.ts Lines 519 to 529 in d73801b
If not present, the player will align on discontinuity sequence, and failing that media sequence number. All that is to determine which fragment to load from the new playlist. Regardless of which fragment is loaded, media timestamps will be used to align media after an audio fragment is loaded and parsed. Please provide a sample stream that can be used to reproduce the issue and clarify these items in your bug report:
This is expected.
Back in time how? The latest segment of what index?
So it sounds like the playlist are not aligned somehow. But it is not clear from your report how or why. Please provide a sample so that I can see if it is an issue with your HLS asset or an HLS.js player issue. |
Hi. @robwalch Our Origin and Edge Server is located in South Korea. As a result, maybe communication may not be smooth.
In order to access this service system and playback live stream, you need to insert a cookie in the header or query params with a url. let url = "https://kdnl-skb-cbt-orisa-edge.play.kakao.com/sl9u19ntjldgf37rf3odvntuc/adaptive.m3u8?orisa-token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0aWQiOiIxMjM0IiwiZXhwIjoxNjk3MDg1ODE0LCJpYXQiOjE2OTQ0OTM4MTR9.KsnWkLNW7hVQkKiWrZu0MI8r6P-RiXSvY_V94Z48z4c&orisa-edge-token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtYXhicHMiOjgwMDAsImV4cCI6MTY5NzA4NTgxNH0.DSqHWob5ZgWLHleUhT8CUmenkpjFhOp1J7PFzCaqLqA&bps=8000"
let params = url.split("?")[1] || '';
function appendParam(url: string, params ? : string): string {
if (!params || url.indexOf(params) > -1) {
return url;
}
let parsed_url = url.split('?');
let url_path = parsed_url.shift();
let url_param = parsed_url.join('?');
return url_path + '?' + params +
(url_param ? '&' + url_param : '');
};
const config = {
xhrSetup: function (xhr: any, url: string) {
url = appendParam(url, params);
xhr.open('GET', url, true);
},
};
const videoEl = document.getElementById('video') as HTMLVideoElement;
const player = new Hls(config);
player.loadSource(url);
player.attachMedia(videoEl); If you need access beyond one month, please make a request to me. |
Tried but can't connect to the remote host:
Times out from the browser as well. |
Hi. @robwalch.
|
…nce track group changes replace track list Resolves #5802
Let me know how the fix in #5818 performs https://bugfix-align-on-switched-pla.hls-js-4zn.pages.dev/demo/ |
Hi @robwalch |
What version of Hls.js are you using?
1.4.12
What browser (including version) are you using?
116.0.5845.140 (official build) (x86_64)
What OS (including version) are you using?
mac os 13.4.1
Test stream
No response
Configuration
Additional player setup steps
We're testing a new ABR algorithm.
But, this behavior is not related to the new ABR algorithm.
Checklist
Steps to reproduce
Prepare by adding a new setting to the Network Condition provided by chrome's developer tools. Set the speed to 750kbps or 1Mbps and the delay to 100ms.
It induces a buffer stall phenomenon. For example, you're playing to stream for some time on a good network, and suddenly you limit the network to 750kbps option.
If there are no symptoms, unrestrict again and repeat step 3.
Expected behaviour
Restricting the network will cause the VIDEO LEVEL to switch.
The AUDIO GROUP specified by VIDEO LEVEL is also switched.
If all went well, it should have played normally.
What actually happened?
Audio level switches with video level. And causing Audio's startPTS to go back in time.
The PTS has gone back in time, but it still downloads the latest segment of the Index. until the PTS of the video and the PTS of the audio are similar. and it plays. But the synchronization of AUDIO and VIDEO is already broken.
This test is an extension of a past issue 5756.
Console output
Chrome media internals output
No response
The text was updated successfully, but these errors were encountered: