Running GUI at Docker container with VQ Analyzer 5
A month ago ViCueSoft released an update for VQ Analyzer 5 — a widely known in narrow circles product for videoanalysis. I would like to share my fresh experience of testing it.
VQ Analyzer can be downloaded here. Free trial period is also available. The official site claims to have the following features:
VQ Analyzer is a graphical coded video bitstream analysis tool supporting the following coding standards:
- VVC, SHA-1 (VTM 8.0 tag): 837b7dfef07a711914410b72d7fe4cc8722bcd4c
- AV1, SHA-1 (av1-normative branch of AOM source): acc3f97753f67e0ce7290b98b7bb71152fe5e264
- HEVC: (ISO/IEC 23008–2 MPEG-H Part 2 or ITU-T H.265) , 8/10-bit
- HEVC: RExt extension, 8/10/12-bit, 4:0:0/4:2:0/4:2:2/4:4:4
- HEVC: SCC extension, conform to HM + SCM 8.6 in reference code
- HEVC Scalable/Multiview Extension
- Google’s VP9, profiles 0,1,2,3, 4:2:0/4:2:2/4:4:0/4:4:4, 8/10/12-bit
- AVC: (H.264/AVC, ISO/IEC 14496–10, MPEG-4 Part 10), except SVC/MVC
- MPEG2 (ISO/IEC 13818–2 Part 2), 4:2:0/4:2:2, 8-bit
- MKV, MP4, MMT(ARIB STD-B60 1.0), MPEG2 TS/PS, AVI, ASF, FLV, IVF containers
Once a bitstream is loaded, the tool allows the user to inspect each major step of the decode process visually and numerically, and the structure of the coded image can be explored. This data can be used as a visual reference when learning about HEVC/VP9/AVC/MPEG2/AV1/VVC or when debugging a particular encoder or decoder.
Additional information you can find here.
Basics of Docker usage
Indeed, Docker can run GUI applications. Now, the details.
Instruction will contain several steps. I am assuming that the reader is already familiar with the Docker concept of containerization. If you already have Docker installed you can skip the first chapter. Alternatively, if you don’t have Docker installed, the following instructions will help you: https://docs.docker.com/get-docker/
Short linux installation link launches with commands:
sudo curl -fsSL https://get.docker.com|sh
sudo systemctl enable docker.service
sudo systemctl start docker.service
So, now you can run your Docker container with images from DockerHub. Some basic introductory instructions are presented below. For example, centos 7 environment will be launched with the following strings:
docker run -it — rm centos:7
- “it” — means “interactive mode”
- “rm” — removes container after exit
- centos:7 — image:tag
Full list of available images is on https://hub.docker.com
To exit running container run:
If you want to run container in the background choose “-d” instead of “-it”. In this case, to enter docker container you have to know its name. List of working containers will be shown by:
docker ps -a
To run container:
docker exec -it container_name bash
Of course you can create your own images of environment, with packages pre-installed, archives pre-downloaded, volumes mounted, etc. All these possibilities realization you can find here.
Launching GUI at your terminal, (MobaXterm, for example), you are connecting to host of DISPLAY variable of your terminal. Its name can be different from terminal to terminal, so just run “export” at your terminal and you can watch its name in your case.
Launching container you can set environment variables by “ -- env” parameter and mount some volumes by “-v” parameter. So if you run container with parameters:
you can expect correct connection to your display and so on.
In relation to the general task of testing app you should add volume with your app by full string as following:
docker run -it --rm --env=”DISPLAY” --net=host --volume=”$HOME/.Xauthority:/root/.Xauthority:rw” -v “/home/VQAnalyzer_5.0.0:/VQAnalyzer:rw” centos:7
- “rw” in case of read-write
- “ro” in case of read only
- for “-v”/“--volume” rules are following: “/path/at/computer:/path/at/container:ro”
So, after running container with the command line above, just run your bin file and you can observe the following behaviour:
Using Docker for builds and autotesting will save a lot of space and resources on your machines. Using GUI will help manual testing of your products at different platforms.
This article is written by Valery Zimichev who works for the company ViCueSoft. ViCueSoft specializes in writing software for video analysis and testing codecs. If you are looking for a way to optimize and improve the quality of video transferring or streaming services, you might want to try our product VQ Analyzer. You will not regret it.