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 may get stuck in audio-only mode #175

Open
ghost opened this issue Aug 1, 2018 · 8 comments
Open

Player may get stuck in audio-only mode #175

ghost opened this issue Aug 1, 2018 · 8 comments
Labels

Comments

@ghost
Copy link

ghost commented Aug 1, 2018

Kjeld commented on Dec 18, 2017, 4:23 PM UTC:

Description

The issue is that our 4K UHD stream doesn't play video. It only reads (and plays back) the audio .ts chucks. We think it is related to a undefined width and height issue.

Sources

https://content.streamone.io/embed/item=TpZBf-QKi4e2/bbbuhd60p.html
https://media.streamone.io/hls/account=MpBJPKUJ4Y6i/item=TpZBf-QKi4e2/TpZBf-QKi4e2.m3u8

Steps to reproduce

  1. In Chrome (Version 63.0.3239.84 High Sierra) https://content.streamone.io/embed/item=TpZBf-QKi4e2/bbbuhd60p.html
  2. https://videojs.github.io/videojs-contrib-hls/ source https://media.streamone.io/hls/account=MpBJPKUJ4Y6i/item=TpZBf-QKi4e2/TpZBf-QKi4e2.m3u8
  3. Check the Chrome developer Tools

Results

Expected

Playback of 60fps UHD video.

videojs-contrib-hls version

It can be reproduced on you latest release
https://videojs.github.io/videojs-contrib-hls/

Browsers

Chrome
Firefox

Platforms

High Sierra
Debian 8

PS: The item is currently transcoding on a test account for you to publicly access, it will be there in 60 minutes from now. 12:23 UTC+1 == NOW()

This issue was moved by forbesjo from videojs/videojs-contrib-hls#1309.

@ghost
Copy link
Author

ghost commented Aug 1, 2018

forbesjo commented on Jul 2, 2018, 4:59 PM UTC:

This is related to #1435, closing this in favor of the other issue

@ghost
Copy link
Author

ghost commented Aug 1, 2018

squarebracket commented on Jul 12, 2018, 11:32 PM UTC:

Reopening as it's unrelated to #1435 (segment size isn't what's causing the describing problem per se).

Kjeld your playlist confuses me. You have an EXT-X-MEDIA for the audio with no URI, but then have an audio-only EXT-X-STREAM-INF later. Is there a reason you're not just using it as the URI attribute of the EXT-X-MEDIA?

In any case, what's happening here is that the initial bandwidth is low enough and the video playlist's BANDWIDTH is high enough that the initial playlist selector is choosing the audio-only playlist by default. Once that happens, it's locked into audio-only; the source buffers are made only once, and since the first playlist it selects only has audio, it only creates an audio source buffer.

If you feed in a pre-programmed bandwidth to use during initial playlist selection, à-la

videojs('videojs-contrib-hls-player', {html5: {hls: {bandwidth: 30000000}}})

it will select the audio+video playlist and everything will work out.

Perhaps we should add something to the initial playlist selection that disregards any audio-only variants if there are any audio+video variants.

That being said, unless you need it, you should consider dropping the only audio-only variant playlist. Note that Apple no longer recommends using an audio-only playlist in its HLS authoring guidelines; it now recommends a playlist with low-bitrate audio and video. Alternatively, simply encode more variants that have lower-bandwidth streams.

@ghost
Copy link
Author

ghost commented Aug 1, 2018

forbesjo commented on Aug 1, 2018, 8:09 PM UTC:

Moving this to VHS and we can fix this initial playlist selection logic there

/move to http-streaming

@forbesjo
Copy link
Contributor

forbesjo commented Aug 1, 2018

Renaming this issue to clarify what the bug is

@forbesjo forbesjo changed the title 4K UHD 60p playback issue in Chrome and Firefox Player may get stuck in audio-only mode Aug 1, 2018
@forbesjo
Copy link
Contributor

forbesjo commented Aug 1, 2018

We can fix this by making sure not to select the audio-only playlist if we know that there are video+audio playlists available. The player may still get in this state if the manifest does not specify codec information.

@malandles
Copy link

malandles commented Oct 7, 2020

Bug is still ocurring on my end, but setting html5.hls.enableLowInitialPlaylist to true, makes it work.

Here is the .m3u8 used (generated by Azure Media Service):

#EXTM3U
#EXT-X-VERSION:4
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="audio",DEFAULT=YES,URI="QualityLevels(196000)/Manifest(audio,format=m3u8-aapl)"
#EXT-X-STREAM-INF:BANDWIDTH=4474284,RESOLUTION=1920x1080,CODECS="avc1.4d402a,mp4a.40.2",AUDIO="audio"
QualityLevels(4166000)/Manifest(video,format=m3u8-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=4474284,RESOLUTION=1920x1080,CODECS="avc1.4d402a",URI="QualityLevels(4166000)/Manifest(video,format=m3u8-aapl,type=keyframes)"
#EXT-X-STREAM-INF:BANDWIDTH=208472,CODECS="mp4a.40.2",AUDIO="audio"
QualityLevels(196000)/Manifest(audio,format=m3u8-aapl)

Disabling the audio-only track also fixes the problem like mentionned in this issue. For anyone using Azure Media Service, you can disable it by adding audio-only=false to your dynamic manifest link:

https://{your-endpoint}.streaming.media.azure.net/{generated-id}/{generated-ism-id}.ism/manifest(format=m3u8-aapl,audio-only=false)

@SebghatYusuf
Copy link

@malandles
Sometimes it's working but sometimes still the player plays audio only.
as I can't see any progress on this issue here.
need fix.

@ChR-iSz
Copy link

ChR-iSz commented Jun 10, 2023

Same here with videos 8 and Wowza Streaming Server. Only audio and black video...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants