ABR supported in LLHLS #1067
Replies: 20 comments
-
Hey @getroot! This is working excellent in Chrome on Mac (using OvenPlayer, TheoPlayer Demo, and my own HLS.js-based player), but I'm running into some issues in Native Safari. I've set up a simple page to test
Trying on iOS or on a Mac is showing the same results (this one is iOS): What information can I provide to help test? |
Beta Was this translation helpful? Give feedback.
-
Please give me as much information as possible so I can clone your environment to reproduce the problem. Your Server.xml (specifically Origin's OutputProfile), and log files, chunklist_x_video.llhls.m3u8 files, and the encoder information and codec settings you use. Also check that the OME you are using is the latest version of the master branch. Thank you! |
Beta Was this translation helpful? Give feedback.
-
It would be helpful if you also share the contents of the llhls.m3u8 file. |
Beta Was this translation helpful? Give feedback.
-
Alternatively, it is a good way to share the results obtained by running the mediastreamvalidator(https://developer.apple.com/documentation/http_live_streaming/using_apple_s_http_live_streaming_hls_tools) provided by Apple. |
Beta Was this translation helpful? Give feedback.
-
Here's the Apple report: Here's the configs: Here's a HAR containing the initial HTTP/2 Conversation: In case you are unfamiliar with HAR, there is a viewer here: http://www.softwareishard.com/har/viewer/ In case you do not want to bother with the HAR, here is the
Hope this helps! |
Beta Was this translation helpful? Give feedback.
-
I am pulling the most recent docker image before all of my tests, as well! This test was run against
|
Beta Was this translation helpful? Give feedback.
-
@cwpenhale Thank you! This is the best report! I'll reproduce the problem and kill that! |
Beta Was this translation helpful? Give feedback.
-
I couldn't reproduce your problem, but the information you provided helped me to pinpoint the problem. I have patched the code that may be causing this problem. Could you please check if the latest master branch solves your problem? And as a tip, your Relay Server and Edge Server can omit |
Beta Was this translation helpful? Give feedback.
-
@getroot you did it! Working in Mac Safari and iOS. Let me know if there's any output I can provide that will help with continued development. |
Beta Was this translation helpful? Give feedback.
-
Did anyone already do tests with this over long distance / high delay / medium packet loss links, to see if things like bitrate choice flapping or similar does occur? |
Beta Was this translation helpful? Give feedback.
-
You can use NetworkLinkConditioner (Mac) or Clumsy-0.2.exe (Win) or NetLimiter (30 day free trial) to induce packet loss or speed throttling to test this feature. |
Beta Was this translation helpful? Give feedback.
-
Hello Thank you. |
Beta Was this translation helpful? Give feedback.
-
Current not - the label is generates here: Maybe you should create an issue there (OvenPlayer) to create an custome label generator function there. |
Beta Was this translation helpful? Give feedback.
-
Thank you. |
Beta Was this translation helpful? Give feedback.
-
While theoplayer is able to jump from 360p to 540, and then 720p and 1080p, ovenplayer stuck at 360p for me and it falls down to 360p easily if I choose auto. My internet is pretty decent (Theoplayer is a proof of that)
|
Beta Was this translation helpful? Give feedback.
-
@mpisat This is the difference in the algorithm for measuring network performance on the player side. In my opinion THEOPlayer is better than hls.js for this algorithm. I'm looking for ways to improve this in hls.js. |
Beta Was this translation helpful? Give feedback.
-
Also, since hls.js does not yet use LLHLS's PRELOAD-HINT, it is a good choice to use THEO for commercial services. |
Beta Was this translation helpful? Give feedback.
-
Thanks for the details @getroot |
Beta Was this translation helpful? Give feedback.
-
The settings for ABR have been changed and committed to the master branch today. Existing Here is an example configuration:
In LLHLS, you can play a playlist with One restriction is that playlist and chunklist keywords MUST NOT be included in Please refer to the manual below. |
Beta Was this translation helpful? Give feedback.
-
New/current config contains invalid example: OvenMediaEngine/misc/conf_examples/Server.xml Lines 283 to 287 in 86e9bbf
|
Beta Was this translation helpful? Give feedback.
-
Added ABR feature for LLHLS in latest master branch.
You can use ABR by adding
<Renditions>
to your OutputProfile like this:Add
<Name>
to the<Encodes>
element you want to link to the<Rendition>
If there is no
<Renditions>
, the first supported video track and audio track among Encodes will be used as before.I will start working on adding
<Renditions>
to WebRTC soon. But it will take a long time because this is a very big job. I hope to roll out the WebRTC ABR feature soon.Many thanks for the feedback.
Beta Was this translation helpful? Give feedback.
All reactions