Overview

VXG Server is a multi-format video streaming, recording and processing server that can be deployed on Linux and Windows computers or Cloud instances. It works with any IP video sources, such as IP cameras, DVRs, mobile cameras, web cameras and network encoders. The server converts live video on-the-fly to all major formats WebRTC, RTMP, RTSP and HLS simultaneously making video viewable on any screen including all major browsers without plug-ins. The server has a full featured Network Video Recorder (NVR) functionality. It comes with HTML5 player and mobile apps. Web SDK, native Android and iOS Mobiles SDKs and REST API are available for developers.

If you are using the old version of VXG Server (1.2.* or older), please use this documentation

Main Formats and Codecs
Input formats RTSP, RTMP, HLS, MPEG2-TS
Output formats RTMP, HLS, RTSP and WebRTC
Input video codec H.264
Input audio codec AAC, AAC-LC, HE-AAC+, MP3, AC-3, E-AC-3, G.711

Recommended system requirements:

CPU: Single Dual Core 2.00 GHz or better
RAM: 4 GB
Disk: 5 GB of free space
Network: 100 Mbps or more
Supported Windows versions: Windows 10 (except Home version), Windows Server 2016 v.1709 and later
Supported Linux versions: Linux with kernel 3.10 and later (some distributions may need manual Docker engine installation)

Quick start on Linux

Step 1: Go to a directory with the VXG Server.

Step 2: Install Docker:

user@user:~/VXG-Server$ ./docker_install.sh

Step 3: Logout and login to your system again, then setup the VXG Server:

user@user:~/VXG-Server$ ./setup.sh

Step 4: Start the server:

user@user:~/VXG-Server$ ./start.sh -r -h SERVER_HOST -c CERTIFICATE_PATH

Example (run the VXG Server with recording to a local storage):

user@user:~/VXG-Server$ ./start.sh -r

-r: use local storage for recording.

-c: CERTIFICATE_PATH: use certificate for HTTPS.

-h: SERVER_HOST: (Obsolete) for compatibility with earlier versions.

Step 5: Open it in a browser: http://localhost/ (if you're running server locally) or http://SERVER_HOSTNAME/ (where SERVER_HOSTNAME - is a hostname or IP which you use to reach the host machine, in example AWS EC2 instance's public IP). The default login/password is admin/admin.

Step 6: To stop the Server:

user@user:~/VXG-Server$ ./stop.sh

Quick start on Windows

Step 1: Open a Command Prompt as an Administrator and go to a directory with the VXG Server.

Step 2: Use the following instruction to install Docker: https://docs.docker.com/docker-for-windows/install/#download-docker-for-windows

Step 3: Run a Command Prompt as an Administrator and setup the VXG Server:

C:\VXG-Server> setup.bat

Step 4: Start the server:

C:\VXG-Server> start.bat -r -h SERVER_HOST -c CERTIFICATE_PATH

Example (run the VXG Server with recording to a local storage):

C:\VXG-Server> start.bat -r

-r: use local storage for recording.

-c: CERTIFICATE_PATH: use certificate for HTTPS.

-h: SERVER_HOST: (Obsolete) for compatibility with earlier versions.

Step 5: Open it in a browser: http://localhost:8000 The default login/password is admin/admin.

Step 6: To stop the server:

C:\VXG-Server> stop.bat

First launch and the license key

Step 1: Open the Server's Web UI http://ip_address:8000 (Windows) or http://ip_address (Linux) Screenshot

Step 2: Go to the License page and copy the Instance UUID Screenshot

Step 3: Open the License & Plans page under your account in the dashboard (https://dashboard.videoexpertsgroup.com) and paste the UUID in the corresponding field. Screenshot

Step 4: Generate the license key Screenshot

Step 5: Copy the key and paste it to your Server's license page Screenshot

Setup AWS buckets for recording

Step 1: Login at AWS AWS web console.

Step 2: Open S3 service Screenshot

Step 3: VXG Server requires 2 buckets (first for records and images and the second for logs). Click on ''Create bucket'' button. Screenshot Give it some name, for example: vxg-server-logs – it will be the bucket for logs. Select a region where buckets should be created (for example 'us-east-N. Virginia'). Then click "Next" 3 times and “Create bucket”.

Step 4: Create another bucket for images and records in the same way, for example vxg-server Screenshot In the “Set Properties” menu click at “Server access logging” then click “Enable logging” and type at “target bucket” field your previous bucket, in our case it was vxg-server-logs and click “Save”. Screenshot Then click "Next" two times and “Create bucket”.

Step 5: Open IAM service Screenshot

Step 6: To create a special user for access to these buckets click at “Users” and then “Add user” buttons. Screenshot Give it some name, for example vxg-server-user, select Access type - Programmatic Access and then click “Next: Permissions” Screenshot

Step 7: Set permissions “Attach existing policies directly” -> Create Policy Screenshot In the new opened window choose "JSON" and paste text below, but with your bucket names. Screenshot In our case it will be:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::vxg-server/*",
                "arn:aws:s3:::vxg-server-logs/vxg-server/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": [
                "arn:aws:s3:::vxg-server",
                "arn:aws:s3:::vxg-server-logs"
            ]
        }
    ]
}

Click at “Review Policy” then give it some name, for example: “Policy” and click “Create Policy” button.

Step 8: Then go to the previous window, click “Refresh” then find your Policy type at search field, click “ok” in front of it and click “Next: Review” Screenshot

Step 9: Click “Create user” Screenshot

Step 10: Save in the text file the pair of access keys (aws_access_key_id / aws_secret_access_key). They will be used for access to S3 in your VXG Server settings. Screenshot

Step 11: Go to your VXG Server web-page click “Settings” menu and fill-in 5 fields of “AWS Storage” and click “Update” Screenshot

You can take the information about your Region on this page You need to select ''Region'' according to your “Region name”. For example in our case: for US East (N. Virginia) it is us-east-1
Screenshot

Use of SSL certificate

Before you get started, you will need to choose and purchase a domain name for your server and get a SSL certificate for this domain name. Then you will need to create a DNS A record for the IP address where your VXG Server is installed.

The file certificate.crt must contain full certificate chain to the root CA to be compatible with all clients. Please contact your certificate issuer to get the full chain of certificates.

For Linux:

Step 1: Copy both certificate files (certificate.crt and private.key) to any folder at your host machine with VXG Server and store the path to this folder.

For example: /home/user/certificate/ (CERTIFICATE_DIR)

Step 2: From the the root folder of the VXG Server run the following:

user@user:~/VXG-Server$ sudo ./start.sh -c CERTIFICATE_DIR

For example:

user@user:~/VXG-Server$ sudo ./start.sh -с /home/user/certificate/

Step 3: If the above step has succeeded, then you will see the following message in the console:

VXG Server version x.x.xx.xxxxxxxx on system EC2C8E0F-XXXX-XXXX-XXXX-XXXXXXXXXXXX started, please visit http://localhost:80/ or https://localhost:443/ in your browser

For Windows:

Step 1: Copy both certificate files (certificate.crt and private.key) to any folder on your host machine with VXG Server and store the path to this folder.

For example: C:\VXG\certificate (CERTIFICATE_DIR)

Step 2: From the root folder of the VXG Server run the following:

C:\VXG-Server> start.bat -c CERTIFICATE_DIR

For example:

C:\VXG-Server> start.bat -c C:\VXG\certificate

Step 3: Allow docker to access the disk where you have created a folder for certificate.crt and private.key.

Screenshot

Step 4: If the above steps have succeeded then you will see the following message:

VXG Server version x.x.xx.xxxxxxxx on system EC2C8E0F-XXXX-XXXX-XXXX-XXXXXXXXXXXX started, please visit http:// localhost:8000/ or https:// localhost:8443/ in your browser

Port usage

VXG Server uses the following TCP ports:

Port Description
80 HTTP Access port
83 Web API HTTP port
86 Web API HTTPS port
443 HTTPS Access port
1935 RTMP streaming port
1936 RTMPS streaming port
8000 HTTP Access port (for Windows only)
8080 WebRTC insecure port
8083 WebRTC secure port
8443 HTTPS Access port (for Windows only)
8888 WS camera protocol port
8883 WSS camera protocol port
12050 Account server HTTP port. (Only if you use key * -h:: SERVER_HOST: Run on compatibility mode with earlier versions of VXG Server)
12443 Account server HTTPS port. (Only if you use key * -h:: SERVER_HOST: Run on compatibility mode with earlier versions of VXG Server)

Please make sure that there are no conflicts with other services on the same machine.

You can configure ports used by VXG server in start.sh/start.bat

Backup and restore

To backup or restore VXG Server properly, you should firts run stop.bat or stop.sh. This will guarantee consistency of the server's volumes.

To backup VXG Server to an OUTPUT_FILE run the following commands:

For Windows

.\backup.bat OUTPUT_FILE

For Linux, with root permissions

sh .\backup.sh OUTPUT_FILE

To restore VXG Server from a BACKUP_FILE run the following commands:

For Windows

.\restore.bat BACKUP_FILE

For Linux, with root permissions

sh .\restore.sh BACKUP_FILE