Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Some question with the code #3

Closed
lixiaoming0017 opened this issue Sep 14, 2017 · 14 comments
Closed

Some question with the code #3

lixiaoming0017 opened this issue Sep 14, 2017 · 14 comments

Comments

@lixiaoming0017
Copy link

Dear sir:
I am a student from Communication University of China , i have read your paper about pensieve。 Your research is very charming, i have some question about the code :
1.traditional method about ABR based on client,just pick the video bitrate within dash.all.min.js,it should not to connect to a local server to calculate the quality of next chunk.In your approach, even the traditional client-based ABR algorithm(BB,BOLA) also enabled the local server, but in fact the calculation process or in dash.all.min.js inside, why do so?

2.You provide the code inside video_server / dash.all.min.js is what generated, I directly use grunt to re-generate your dash.js and you provide the code is not the same.Why is this?

3.mahimahi is used to limit the speed of the local network tool, is it? But only in the use of non-root role, right? When running run_exp / run_all_traces.py, run to child process mm-delay 40 mm-link 12mbps trace python simple_server.py, google chrome prompt link localhost: 8333 refused, if the direct operation python simple_server.py, there is no error The Why is this?

@hongzimao
Copy link
Owner

  1. Notice that the bitrate decision is made on the video client for traditional ABR algorithms. Specifically, BB and BOLA has native support in DASH, the simple_server only collect the log of those schemes for analysis, not involving in making the actual bitrate decisions.

  2. dash.min.js is compiled from the source in dash.js folder. I think dash.min.js is more light-weighted than is supposed to be different with dash.js?

  3. The communication between inside and outside mahimahi shell is emulated. So you need to run the web server and chrome/selenium across shell.

@pablogil16
Copy link

Hi all,

I'm facing the problem 2 as well. As far as I know, the Gruntfile doesn't have any rule to compile the dash.all.min.js file that is later used by myindex_*.html. Instead, it is generating separately a dash.min.js and dash.all.js files. Might you have a more updated version of the Gruntfile? If so it would be great if you could upload it. :-)

Thanks!

@pablogil16
Copy link

Hi all again,

My bad, I was using the wrong HTML file. Using the 'myindex.hmtl' file in 'video_server' it perfectly works with the compiled dash.all.js file. :-D

@hongzimao
Copy link
Owner

hongzimao commented Oct 2, 2017

Sounds good, @pablogil16. Would be nice if you post more details about your solution to the problem, so that others can learn from it. I will then close this issue. Thanks!

@pablogil16
Copy link

The thing is, although the setup.py script does deploy a client for each ABR algorithm (naming each of the myindex_*.html files and the dash.all.min.js), it might be a bit misleading when trying to compile and run the dash_client from source.

After compiling the dash_client, one should place the newly generated dash.all.js file, together with the myindex.html file in /video_server, into the /var/ww/html directory. The one can run this client on Chrome in http://localhost/myindex.html and it works! :-)

I must say I just tried this solution with Pensieve, the default in myindex.html. However, the other ABRs can be configured in myindex.html as well.

I hope this is helpful!

@hongzimao
Copy link
Owner

@pablogil16, thanks for the explanation. You are right that one should move the corresponding flies to /var/www/html. I think https://github.com/hongzimao/pensieve/blob/master/setup.py#L44-L47 has this setup too.

@xchanper
Copy link

xchanper commented Mar 3, 2021

@lixiaoming0017 I have the same problem 3. When I run run_all_traces.py,It hints WebDriverException('unknown error: net::ERR_CONNECTION_REFUSED.
But when I delete mm-delay and mm-link, it succeed.
Could you tell me how you fix problem 3 ? Thanks!

@hongzimao
Copy link
Owner

Can you check doing a regular network connection test (e.g., ping some host, curl a webpage) inside mm-delay and mm-link? This is to check if mahimahi is configured correctly. You mentioned the web driver runs fine outside mahimahi shell indicates the other part of the experiments are probably working correctly. Thanks!

@xchanper
Copy link

xchanper commented Mar 7, 2021

@hongzimao Thanks for you reply. I followed you suggestion and I find some error with respect to proxy setting. Ping/Curl works fine under mahimahi now.
And now when python run_video.py, it works fine. But under mahimahi environment, it outputs nothing and log file is empty . I don't know what's the reason.

@hongzimao
Copy link
Owner

@chanpero could you note down what's the error and your fix about the proxy setting? This may help others a lot. Thanks!

About running experiments under mahimahi, could you check if it works without mahimahi? Also, load the url in a regular browser and see if the video loads.

@xchanper
Copy link

xchanper commented Mar 10, 2021

@hongzimao Thanks! About proxy setting, I'm using clash for some reason and setup system proxy. When I disabled system proxy and restart the terminal, mahimahi works fine.

About running experiments, when without mahimahi, everything works fine. And in a regular browser, the video loads successfully and terminal outputs next chunk info too.
But once I enabled mahimahi like mm-delay 40, it will generate log_file but contains nothing and browser can't load the video. Chrome hints like this:
image
I guess maybe something wrong with dash.js. I'll check it later.

@user432
Copy link

user432 commented Apr 8, 2021

Hey @chanpero, were you able to solve this problem, if so can you share the solution here. Once I remove mm-delay 40 mm-link 12mbps everything works fine, but once I add them, it generates empty log files. I have disabled my proxy too, but nothing seems to work.

@xchanper
Copy link

xchanper commented Apr 9, 2021

@user432 Sorry, I haven't checked it for some reason. But I think it's due to the mismatch between mahimahi and dash.js. If you find the solution please tell me. Thanks.

@yourexpress
Copy link

I got the same issue. I didn't use any proxy. When I run the code like python run_video.py <my_ip> BB 320 0 test_norway_tram.ljabru-jernbanetorget-report.2010-12-09_1244CET.log_720 7, I could find the result is recorded. But when I run the python run_traces.py ../cooked_traces/ BB 0 <my_ip>, I would get the Error of Message: unknown error: net::ERR_CONNECTION_REFUSED.

By the way, here is the result I got when I ran the python run_video.py <my_ip> BB 320 0 test_norway_tram.ljabru-jernbanetorget-report.2010-12-09_1244CET.log_720 7 .
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants