StanfordSNR / puffer

Puffer is a free live TV streaming website and a research study at Stanford using machine learning to improve video streaming
https://puffer.stanford.edu
835 stars 131 forks source link

Reporting the transmission time #37

Closed jaber-the-great closed 2 days ago

jaber-the-great commented 1 month ago

Hi, Curious why we calculated the transmission time here: https://github.com/StanfordSNR/puffer/blob/master/src/scripts/ttp.py#L361 But it is not in reported in the log files as part of the dataset. The 'trans_time' is used in many parts of the code but not logged (although it would be easy to join video_acked and video_send data and calculate that)

Also, is there any reason that you used tcpi_delivery_rate for probing the throughput? Why not using 'trans_time'/ chunk_size?

Best wishes

francisyyan commented 2 days ago

Sorry for the late reply!

Puffer is designed to be a common ground for testing different video streaming algorithms. Each algorithm developer may choose to design their algorithm differently -- using our log data (or not) -- and have the opportunity to send us a pull request to deploy their algorithm on real users.

Back to your question: "ttp.py" is part of Fugu, an adaptive bitrate algorithm we designed. ttp.py opts to utilize transmission times and tcpi_delivery_rate due to our own design (detailed in the research paper). The other algorithms don't necessarily need transmission times (and transmission times can be easily calculated as you mentioned), or leverage TCP info the way we do. Although Fugu doesn't predict throughput, trans_time / chunk_size (or something similar) is indeed commonly used in other throughput-based adaptive bitrate algorithms.

Best, Francis