-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
HLS Manifest with multi audio is not supported by player #5302
Comments
Hi @syedThowfeeqAhmed
|
hi @mtoczko , Apple devices have been clearly developed to follow HLS spec on letter and spirit and they seem to be very comfortable playing back this manifest and the issue is only with HLS.js player. Please see below, DEFAULT is an optional field (HLS Spec) DEFAULT |
this is not a stream issue as the Apple devices are able to play the same in multi audio |
Hi @syedThowfeeqAhmed |
Thanks for the reply @mtoczko , |
The issue is with the different group-ids. The |
The In dev (coming in v1.4.0) you can see this by printing Redundant streams are meant for error handling, not organization of groups and languages. If a user was playing this stream and some of the audio segments or playlists failed, the player would fallback to loading the next url id. In your stream, that would result in the language changing, which is not expected with error fallback. Added Missing Feature for collapsing redundant variants (and potentially groups) into renditions (this is not trivial, not spec compliant, and not the on the roadmap, but something akin to this has been observed in native playback): HLS.js could not collapse variants with the same URL and/or with different languages in their groups, but as this is the first we've seen it and it doesn't follow the spec examples or Apple's authoring guidelines, we'd expect the change to come from you or others who want to use HLS this way. |
@syedThowfeeqAhmed here's the feedback from
|
Thank you @robwalch for the details analysis. |
changing all the available manifest in our Backend is not feasible as of now, will this be handled in the near future (missing feature) ? |
I recommend working around the issue using the player API (find all languages across |
Exposing tracks with features not in the active group, like multi-channel audio, is a priority for v1.5. Making sure the API also exposes all available languages and characteristics for selection can be revisited at that time. |
I have same problem. I exposed 2 tracks in manifest in different groups (1 track with voices and other without voices). AudioTrackController.tracks detects all available tracks but tracksInGroup exposes the last one loaded. I need to change manually for the player this audio track. I use the property hls.audioTrack = 1 from the audioTracks array but only have 1. How can i change audio track from different group Id?. I try to access levels (load level) to change tracks but dont change anything |
Please share more details. Changing the level to one associated with a different group should change the tracks. |
I have this manifest: Each video stream is associated with the 2 types of audio (audio, music) but i cant change the track switching the level because only load 1 track in audioTracks. How can i handle this audio tracks manually with 2 different groups? |
Hi @robwalch I am trying to add a workaround, want to move from one audioGroup to other. |
That is after changing Level urlId when the HLS asset has redundant variants. If the group is only associated with other levels then you need to change the level to one with that group. Look at each item in |
@robwalch every level has all 4 different group ids in an array, So changing the current level is not helping. Is there a way to change active group ids? Because, as per the source code, I can see that the audioTracks API gives the audio track info which matches the active group id, correct me if I'm wrong. cc: @thowfeeq178 |
The grouping is performed by the level controller on manifest parsed with the result provided in manifest loaded. |
can we have workaround to shift the audio language with the above level structure? any way we filter active group ids and apply from hls api's. please help with a workaround. |
Unfortunately it clearly is a content issue, as
Parity with native playback would be "nice to have" and not required. A fix and workaround for this content are not being prioritized because of this. |
Removing from v1.5.0 milestone. I've revisited the issue, but the sample stream is not available for testing and development. Will revisit for 1.6.0 and consider for API enhancements that allow language selection (#5532). |
Add VIDEO_RANGE and HDCP attriubute values to Redundant Stream grouping Add channels and characteristics to MediaPlaylist Resolves #5302
Add VIDEO_RANGE and HDCP attriubute values to Redundant Stream grouping Add channels and characteristics to MediaPlaylist Resolves #5302
Add VIDEO_RANGE and HDCP attriubute values to Redundant Stream grouping Add channels and characteristics to MediaPlaylist Resolves #5302
Add VIDEO_RANGE and HDCP attriubute values to Redundant Stream grouping Add channels and characteristics to MediaPlaylist Resolves #5302
What version of Hls.js are you using?
V1.2.3 (I also checked on latest v1.3.4 same issue)
What browser (including version) are you using?
Version 110.0.5481.177 (Official Build) (arm64)
What OS (including version) are you using?
MacOS 13.2.1
Test stream
https://hls-js-73965559-fca4-40e5-9cde-d90859bfc224.netlify.app/demo/?src=https%3A%2F%2Fmedia-test.zee5.com%2Fhls1%2Felemental%2Fhls%2FMOVIES%2FMULTI_AUDIO%2FIOF%2FKING_OF_SERPENT%2F5MIN%2FKING_OF_SERPENT_5MIN_HD_13032023_zh_06eb6dca91004e0e9e9696e0e702a24d%2Findex.m3u8&demoConfig=eyJlbmFibGVTdHJlYW1pbmciOnRydWUsImF1dG9SZWNvdmVyRXJyb3IiOnRydWUsInN0b3BPblN0YWxsIjpmYWxzZSwiZHVtcGZNUDQiOmZhbHNlLCJsZXZlbENhcHBpbmciOi0xLCJsaW1pdE1ldHJpY3MiOi0xfQ==
Configuration
Additional player setup steps
No response
Checklist
Steps to reproduce
Expected behaviour
Player should be able to show multiple audio tracks so that user can choose as available in manifest,
safari native player is able to show multiple audio languages and is able to switch between them. screenshot attached,
What actually happened?
I dont see multiple audio tracks, only one track is seen.
hlsPlayer.audioTracks gives only one item.
Console output
Chrome media internals output
No response
The text was updated successfully, but these errors were encountered: