hongzimao / pensieve

Neural Adaptive Video Streaming with Pensieve (SIGCOMM '17)
http://web.mit.edu/pensieve/
MIT License
517 stars 280 forks source link

Some questions about run_exp #100

Closed howfars closed 4 years ago

howfars commented 4 years ago

Hi,Hongzi I tried to run experiment code in the directory run_exp/,here are some questions.

  1. I run the script run_traces.py by command like python -u run_traces.py ../cooked_traces/ FIXED 2 <My_IP_Addr>,the result log file can be written successfully in run_exp/results ,but I found that in each result file,there are only 13 or 14 lines of data.This is one result file's picture. image However,when I tried to do the next step,run the /run_exp/plot_results.py,I found that the code constrains the line number of the result log file,it cannot less then VIDEO_LEN which is 64.So I can't plot the result.I tried to modify that if statement like the picture below,then I can get the result figure. image So I'm confused about this,why does my result log file don't have enough lines of data?Does this means the video chunks are not entirely played? And why should we make a constraint 64 in the plot_result.py code?In the test/plot_results folder,I found this number is 48 which is the number of video chunks.So what does 64 means? image

  2. When running the script run_traces.py,system will open a abr server process whose code is in rl_server folder.But I found that each of those server process listening to port 8333.So if we use run_all_traces.py to run all of the schemes at the same time,will those abr server processes have conflict on 8333 port?

  3. When I try to open the url of video_server like http://<my_ip_addr>/myindex_BB.html in browser,I found that the video will play for only 3 seconds,and then stalled.I guess it is because the modified dash.js player must get the bitrate decision from abr server process which is in rl_server/ to play the next video chunk.But now we have not open those server processes,so the player can only play the first video chunk and then stalled.Is my guess correct?

Thank you for help.

hongzimao commented 4 years ago

Thanks for your questions.

  1. By default, each video is played for a maximum of 5 minutes (if I remember correctly). So if a network trace has very low bandwidth, the video might not have downloaded all the chunks. That may explain why you only observe 13 - 14 lines of log. We cap the log to VIDEO_LEN because we only want to evaluate one full video per play (Note that the video will restart if all chunks are downloaded, so 5 minutes might download multiple rounds of the same video).

  2. It's a good question. They shouldn't have conflict because we emulate the network with Mahimahi and the video server live within each mahimahi shell (so the communication of ABR decision won't interfere the network trace).

  3. Your guess is correct :)

howfars commented 4 years ago

Thank you for your answer! I still want know why is the VIDEO_LEN 64 in /run_exp/plot_results.py ? The number of video chunks are 49 so why don't set VIDEO_LEN to 49? https://github.com/hongzimao/pensieve/blob/1120bb173958dc9bc9f2ebff1a8fe688b6f4e93c/run_exp/plot_results.py#L11

hongzimao commented 4 years ago

We were evaluating longer videos at some point. After that we might have forgotten to change back this parameter.

howfars commented 4 years ago

thanks!