If you use this repository in your research, please cite the following paper:
Panahi, P. H. S., Jalilvand, A. H., & Diyanat, A. (2025).
An efficient network-based QoE assessment framework for multimedia networks using a machine learning approach.
IEEE Open Journal of the Communications Society
Before running the project, you must create a shared directory containing the following three mandatory files:
aparat_file.txtnetwork_performance.dbconfig.txt
These files are mounted into the Docker container and are required for proper execution.
This file contains the list of Aparat video records used during testing.
- Copy its contents exactly from the official project file:
https://github.com/F4RAN/qoe-selenium/blob/main/aparat_file.txt
Paste the records into your local aparat_file.txt.
This file defines network emulation parameters.
- On Windows, you may leave this file empty
- On Linux, use it to define traffic control (tc) rules
Each line represents a network constraint. If you do not want a specific limitation, simply remove the corresponding line.
You may also copy predefined network profiles from:
https://github.com/F4RAN/qoe-selenium/blob/main/NETWORKS.md
-incoming
delay 30ms
delay-distro 7ms
loss 0%
rate 1Mbps
-outgoing
delay 30ms
delay-distro 7ms
loss 0%
rate 500KbpsThis SQLite database is automatically populated during runtime and stores all collected network and QoE measurements.
mkdir /path/to/shared && cd /path/to/shared
touch aparat_file.txt network_performance.db config.txtmkdir C:\shared & cd C:\shared ^
& type nul > aparat_file.txt ^
& type nul > network_performance.db ^
& type nul > config.txtdocker run \
-v $(pwd)/aparat_file.txt:/usr/src/app/aparat_file.txt \
-v $(pwd)/network_performance.db:/usr/src/app/network_performance.db \
-v $(pwd)/config.txt:/usr/src/app/config.txt \
--cap-add NET_ADMIN \
--rm -it f4ran/qoe-selenium-amddocker run \
-v $(pwd)/aparat_file.txt:/usr/src/app/aparat_file.txt \
-v $(pwd)/network_performance.db:/usr/src/app/network_performance.db \
-v $(pwd)/config.txt:/usr/src/app/config.txt \
--cap-add NET_ADMIN \
--rm -it f4ran/qoe-selenium-armdocker run \
-v //c/shared/aparat_file.txt:/usr/src/app/aparat_file.txt \
-v //c/shared/network_performance.db:/usr/src/app/network_performance.db \
-v //c/shared/config.txt:/usr/src/app/config.txt \
--cap-add NET_ADMIN \
--rm -it f4ran/qoe-selenium-amdmkdir medium-3g
cd medium-3g
touch aparat_file.txt network_performance.db config.txtdocker run -d --name medium-3g \
-v $(pwd)/aparat_file.txt:/usr/src/app/aparat_file.txt \
-v $(pwd)/network_performance.db:/usr/src/app/network_performance.db \
-v $(pwd)/config.txt:/usr/src/app/config.txt \
--cap-add NET_ADMIN \
--rm -it f4ran/qoe-selenium-amd👉 https://github.com/F4RAN/qoe-selenium/blob/main/DOCUMENTATION.md