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

This video freezes when switching level after 10 sec #1338

Closed
4 tasks done
lelle opened this issue Sep 11, 2017 · 3 comments
Closed
4 tasks done

This video freezes when switching level after 10 sec #1338

lelle opened this issue Sep 11, 2017 · 3 comments
Labels

Comments

@lelle
Copy link

lelle commented Sep 11, 2017

  • I've analyzed the stream (with hls-analyzer.py) and can't pinpoint any issues, keyframes looks ok.
  • We've only experienced this issue on short video clips (less than 20 seconds).
Environment
Steps to reproduce
  1. Load the media-url. Wait 10 seconds.
Expected behavior

The whole video plays to end.

Actual behavior

The video image freezes after 10 seconds. The audio continues.

Console output
[log] > loadSource:https://nordond18b-f.akamaihd.net/i/wo/open/potion/10/109ce3e12d794b249fdc8df7d257eac2/109ce3e1_,205,380,659,1394,2410,.mp4.csmil/master.m3u8
logger.js:37 [log] > trigger BUFFER_RESET
logger.js:37 [log] > set autoLevelCapping:-1
logger.js:37 [log] > attachMedia
logger.js:37 [log] > manifest loaded,5 level(s) found, first bitrate:226000
logger.js:37 [log] > startLoad(-1)
logger.js:37 [log] > switching to level 0
logger.js:37 [log] > loading playlist for level 0
logger.js:37 [log] > main stream:STOPPED->IDLE
logger.js:37 [log] > main stream:IDLE->WAITING_LEVEL
logger.js:37 [log] > audio tracks updated
logger.js:37 [log] > subtitle tracks updated
logger.js:37 [log] > level 0 loaded [1,2],duration:15.338000000000001
logger.js:37 [log] > main stream:WAITING_LEVEL->IDLE
?src=https%3A%2F%2Fnordond18b-f.akamaihd.net%2Fi%2Fwo%2Fopen%2Fpotion%2F10%2F109ce3e12d794b249fdc8df7d257eac2%2F109ce3e1_%2C205%2C380%2C659%2C1394%2C2410%2C.mp4.csmil%2Fmaster.m3u8&enableStreaming=true&autoRecoverError=true&enableWorker=true&dumpfMP4=false&levelCapping=-1&defaultAudioCodec=undefined:369 parsing level duration :1030us,count:1
logger.js:37 [log] > media source opened
logger.js:37 [log] > startLoad(-1)
logger.js:37 [log] > main stream:IDLE->STOPPED
logger.js:37 [log] > main stream:STOPPED->IDLE
logger.js:37 [log] > Loading 1 of [1 ,2],level 0, currentTime:-1.000,bufferEnd:-1.000
logger.js:37 [log] > demuxing in webworker
logger.js:37 [log] > main stream:IDLE->FRAG_LOADING
logger.js:37 [log] > audio stream:STOPPED->STARTING
logger.js:37 [log] > audio stream:STARTING->WAITING_TRACK
logger.js:37 [log] > audio stream:WAITING_TRACK->STOPPED
logger.js:37 [log] > audio stream:STOPPED->STARTING
logger.js:37 [log] > audio stream:STARTING->WAITING_TRACK
logger.js:37 [log] > Loaded  1 of [1 ,2],level 0
logger.js:37 [log] > main stream:FRAG_LOADING->PARSING
logger.js:37 [log] > Parsing 1 of [1 ,2],level 0, cc 0
logger.js:37 [log] > main:discontinuity detected
logger.js:37 [log] > main:switch detected
blob:https://video-dev.github.io/e7820813-bda7-4db7-85b3-02a0e46354a5:516 [log] > manifest codec:mp4a.40.2,ADTS data:type:2,sampleingIndex:3[48000Hz],channelConfig:1
blob:https://video-dev.github.io/e7820813-bda7-4db7-85b3-02a0e46354a5:516 [log] > parsed codec:mp4a.40.5,rate:48000,nb channel:1
blob:https://video-dev.github.io/e7820813-bda7-4db7-85b3-02a0e46354a5:516 [log] > audio sampling rate : 48000
logger.js:37 [log] > InitPTS for cc:0 found from video track:908970
logger.js:37 [log] > creating sourceBuffer(audio/mp4;codecs=mp4a.40.2)
logger.js:37 [log] > creating sourceBuffer(video/mp4;codecs=avc1.42001e)
logger.js:37 [log] > main track:audio,container:audio/mp4,codecs[level/parsed]=[mp4a.40.2/mp4a.40.5]
logger.js:37 [log] > main track:video,container:video/mp4,codecs[level/parsed]=[avc1.42001e/avc1.428015]
logger.js:37 [log] > Parsed audio,PTS:[0.000,10.005],DTS:[0.000/10.005],nb:469,dropped:0
logger.js:37 [log] > Parsed video,PTS:[0.000,10.000],DTS:[0.000/10.000],nb:250,dropped:0
logger.js:37 [log] > main stream:PARSING->PARSED
logger.js:37 [log] > main buffered : [0.000,10.000]
logger.js:37 [log] > latency/loading/parsing/append/kbps:44/12/266/5/7582
logger.js:37 [log] > main stream:PARSED->IDLE
logger.js:37 [log] > switching to level 4
logger.js:37 [log] > loading playlist for level 4
logger.js:37 [log] > main stream:IDLE->WAITING_LEVEL
logger.js:37 [log] > target start position:-1
logger.js:37 [log] > target start position not buffered, seek to buffered.start(0) 0.000333
logger.js:37 [log] > adjust currentTime from 0 to 0.000333
logger.js:37 [log] > Updating mediasource duration to 15.338
logger.js:37 [log] > media seeking to 0.000
logger.js:37 [log] > level 4 loaded [1,2],duration:15.338000000000001
logger.js:37 [log] > main stream:WAITING_LEVEL->IDLE
logger.js:37 [log] > Loading 2 of [1 ,2],level 4, currentTime:0.000,bufferEnd:10.000
logger.js:37 [log] > main stream:IDLE->FRAG_LOADING
?src=https%3A%2F%2Fnordond18b-f.akamaihd.net%2Fi%2Fwo%2Fopen%2Fpotion%2F10%2F109ce3e12d794b249fdc8df7d257eac2%2F109ce3e1_%2C205%2C380%2C659%2C1394%2C2410%2C.mp4.csmil%2Fmaster.m3u8&enableStreaming=true&autoRecoverError=true&enableWorker=true&dumpfMP4=false&levelCapping=-1&defaultAudioCodec=undefined:369 parsing level duration :633us,count:2
logger.js:37 [log] > media seeked to 0.000
logger.js:37 [log] > Loaded  2 of [1 ,2],level 4
logger.js:37 [log] > main stream:FRAG_LOADING->PARSING
logger.js:37 [log] > Parsing 2 of [1 ,2],level 4, cc 0
logger.js:37 [log] > main:switch detected
blob:https://video-dev.github.io/e7820813-bda7-4db7-85b3-02a0e46354a5:516 [log] > manifest codec:mp4a.40.2,ADTS data:type:2,sampleingIndex:3[48000Hz],channelConfig:2
blob:https://video-dev.github.io/e7820813-bda7-4db7-85b3-02a0e46354a5:516 [log] > parsed codec:mp4a.40.5,rate:48000,nb channel:2
blob:https://video-dev.github.io/e7820813-bda7-4db7-85b3-02a0e46354a5:516 [log] > 2284200/2284200:unknown NAL 10 
blob:https://video-dev.github.io/e7820813-bda7-4db7-85b3-02a0e46354a5:516 [log] > audio sampling rate : 48000
logger.js:37 [log] > main track:audio,container:audio/mp4,codecs[level/parsed]=[mp4a.40.2/mp4a.40.5]
logger.js:37 [log] > main track:video,container:video/mp4,codecs[level/parsed]=[avc1.640029/avc1.640029]
logger.js:37 [log] > Parsed audio,PTS:[10.005,15.339],DTS:[10.005/15.339],nb:250,dropped:0
logger.js:37 [log] > Parsed video,PTS:[12.040,15.320],DTS:[12.000/15.320],nb:83,dropped:50
logger.js:37 [warn] > missing video frame(s), backtracking fragment
(anonymous) @ logger.js:37
onFragParsingData @ stream-controller.js:1137
onEventGeneric @ event-handler.js:65
onEvent @ event-handler.js:53
EventEmitter.emit @ events.js:96
trigger @ hls.js:88
onWorkerMessage @ demuxer.js:139
logger.js:37 [log] > main stream:PARSING->IDLE
logger.js:37 [log] > audio sourceBuffer now EOS
logger.js:37 [log] > video sourceBuffer now EOS
logger.js:37 [log] > all media data available, signal endOfStream() to MediaSource and stop loading fragment
logger.js:37 [log] > main stream:IDLE->ENDED
logger.js:37 [log] > media source ended
logger.js:37 [log] > media ended
mangui added a commit that referenced this issue Sep 13, 2017
@mangui
Copy link
Member

mangui commented Sep 13, 2017

your last / second fragment on level 1 does not start with a KF. when switching to level 1, we need to both load first and second frag to be able to decode the second fragment.
this backtracking case was not correctly handle on the last fragment.
it should now be fixed

@lelle
Copy link
Author

lelle commented Sep 13, 2017

Wow, thanks @mangui! That's awesome 👍

@stale
Copy link

stale bot commented Jun 16, 2018

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the Wontfix label Jun 16, 2018
@stale stale bot closed this as completed Jun 23, 2018
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

2 participants