Open peterbangert opened 4 years ago
Thanks for your question. What you have proposed is along the line of buffer-based algorithms. If you like, you can change the implementation in bb.py
with the logic you described above: https://github.com/hongzimao/pensieve/blob/master/test/bb.py#L77-L84. Hope this helps.
Do I have any control over pensive in telling the network what an optimal buffer level would be?
Comparing with algorithms festive [1] and panda [2]. There is included functionality for maintaining a certain buffer level, ~30 seconds in both papers. Festive [1] section 3.1, Panda [2] section III paragraph 4.
--> pretense: Allowing the application to delay video download request to maintain a buffer level promotes better bandwidth sharing as well prevents possible waste of resources should the client decide to exit before finishing.
The pensive network just returns a bitrate selection, not a timing delay, so I understand that receiving a download delay estimation is out of scope, however if i manually add a request delay based on my desired buffer level outside of pensive, then pensive appears to observe the buffer level not growing despite there being a high throughput estimation and decreases video quality.
Are there any variables or control options to telling pensive what an optimal buffer level would be, so that it may request high bitrate chunks until the buffer decreases significantly below a certain threshold or notices a significant throughput drop ?
[1] Junchen Jiang, Vyas Sekar, and Hui Zhang. 2012. Improving fairness, efficiency, and stability in HTTP-based adaptive video streaming with FESTIVE.
[2] Z. Li et al. 2014. Probe and Adapt: Rate Adaptation for HTTP Video Streaming At Scale. IEEE Journal on Selected Areas in Communications (2014).