{"action":"created","issue":{"url":"https://api.github.com/repos/dailymotion/hls.js/issues/334","repository_url":"https://api.github.com/repos/dailymotion/hls.js","labels_url":"https://api.github.com/repos/dailymotion/hls.js/issues/334/labels{/name}","comments_url":"https://api.github.com/repos/dailymotion/hls.js/issues/334/comments","events_url":"https://api.github.com/repos/dailymotion/hls.js/issues/334/events","html_url":"https://github.com/dailymotion/hls.js/issues/334","id":143702618,"number":334,"title":"How is BANDWIDTH evaluated into level.bitrate?","user":{"login":"blacktrash","id":168338,"avatar_url":"https://avatars.githubusercontent.com/u/168338?v=3","gravatar_id":"","url":"https://api.github.com/users/blacktrash","html_url":"https://github.com/blacktrash","followers_url":"https://api.github.com/users/blacktrash/followers","following_url":"https://api.github.com/users/blacktrash/following{/other_user}","gists_url":"https://api.github.com/users/blacktrash/gists{/gist_id}","starred_url":"https://api.github.com/users/blacktrash/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blacktrash/subscriptions","organizations_url":"https://api.github.com/users/blacktrash/orgs","repos_url":"https://api.github.com/users/blacktrash/repos","events_url":"https://api.github.com/users/blacktrash/events{/privacy}","received_events_url":"https://api.github.com/users/blacktrash/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2016-03-26T13:03:47Z","updated_at":"2016-04-04T16:52:55Z","closed_at":"2016-04-04T16:52:55Z","body":"Yes, I know, 'read the source, Luke', but as I'm lazy, I should probably say: how is this done conceptually?\r\n\r\nThe reason why I'm asking is: I know that a lot of manifests set a BANDWIDTH not according to spec. It should be the actual _peak_ bitrate of the stream (https://developer.apple.com/library/ios/technotes/tn2224/_index.html#//apple_ref/doc/uid/DTS40009745-CH1-BITRATERECOMMENDATIONS), but many (if not the majority) just extrapolate (or not even that) a value from the average bit rate.\r\nThe other reason is that I sometimes get the impression that streams with correctly set BANDWIDTH are 'punished' with switch downs, where, if I select a constant level, the level plays through just fine under the same circumstances, without stutter or dropped frames."},"comment":{"url":"https://api.github.com/repos/dailymotion/hls.js/issues/comments/205390180","html_url":"https://github.com/dailymotion/hls.js/issues/334#issuecomment-205390180","issue_url":"https://api.github.com/repos/dailymotion/hls.js/issues/334","id":205390180,"user":{"login":"blacktrash","id":168338,"avatar_url":"https://avatars.githubusercontent.com/u/168338?v=3","gravatar_id":"","url":"https://api.github.com/users/blacktrash","html_url":"https://github.com/blacktrash","followers_url":"https://api.github.com/users/blacktrash/followers","following_url":"https://api.github.com/users/blacktrash/following{/other_user}","gists_url":"https://api.github.com/users/blacktrash/gists{/gist_id}","starred_url":"https://api.github.com/users/blacktrash/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blacktrash/subscriptions","organizations_url":"https://api.github.com/users/blacktrash/orgs","repos_url":"https://api.github.com/users/blacktrash/repos","events_url":"https://api.github.com/users/blacktrash/events{/privacy}","received_events_url":"https://api.github.com/users/blacktrash/received_events","type":"User","site_admin":false},"created_at":"2016-04-04T16:52:55Z","updated_at":"2016-04-04T16:52:55Z","body":"A basic approach preferring `AVERAGE-BANDWIDTH` if present is now the v0.5.x branch.\r\nClosing, as a more fundamental discussion of the ABR algo would deserve a dedicated issue."}}