Ts3 video 0.4

cananon1

Member
May 19, 2015
99
47
60
Version 4 of the team speak video is now out

Test server

Video Only
Enter under Server Address
85.214.204.236:13370


windows-logo-88x88.png
Windows

Prerequisites: Visual C++ Redistributable Packages (32-bit / 64-bit)


Version 0.4
Mirrors
Client Plugin 32 & 64 bit Mirror 1
Server 32 bit Mirror 1
Server 64 bit Mirror 1
linux-logo-32x37.png
Linux

The Linux packages are completely isolated and don’t require any other dependencies (build on Ubuntu 14.04 LTS).


Version 0.4
Mirrors
Server 32 bit Mirror 1
Server 64 bit Mirror 1
You can get previous releases from the archive.

Mac OSX
none yet someone will have to make a mac version via reading source files and make it work ;)


================================================================

erver
Installation
The server package is usually a ZIP/TAR archive, which can be extracted everywhere.

Windows (ZIP archive)

Download and extract to e.g.: C:\ts3video

Linux (TAR archive)

mkdir /opt/ts3video
cd /opt/ts3video
wget DOWNLOAD_URL_HERE
tar -xf ts3video-server.tar

Configuration
The server can be configured in multiple ways. Currently it’s possible to use command line parameters or a simple configuration file.

Command line parameters

Parameter
Description Example value
--config Absolute path to configuration file. /opt/ts3video/default.ini
--service This parameter is required when started as a Windows Service.
TODO: Document all possible parameters.

Config file (Recommended)
Saving the configuration in a file might be the better way to backup the configuration. See the comments inside the config file for further details.

Beta note: It’s not possible to run more than one virtual video server. Support for multiple virtual servers will be implemented in the next releases.

# Default values for each server configuration.
#
# Special IP address values:
# Any IPv4 = 0.0.0.0
# Any IPv6 = ::
# Any IPv4&6 = any
#
[default]

# The IP address on which to listen for new connections.
# @version 0.1
address=any

# The port for new connections and media data (TCP & UDP).
# @version 0.1
port=13370

# The IP address on which to listen for new web-socket (status) connections.
# It's recommended to allow only local access. You may allow restricted access via ProxyPass (Apache).
# @version 0.1
wsstatus-address=any

# The port for new web-socket (status) connections.
# @version 0.1
wsstatus-port=13375

# Maximum number of parallel client connections (slots).
# @version 0.1
connectionlimit=2147483647

# Maximum READ transfer rate the server is allowed to use (bytes/second).
# @version 0.1
bandwidthreadlimit=18446744073709551615

# Maximum WRITE transfer rate the server is allowed to use (bytes/second).
# @version 0.1
bandwidthwritelimit=18446744073709551615

# Comma separated list of valid channel-IDs, which are allowed to be used.
# This property maintains a list of raw channel IDs - not TS3 channel IDs.
# Leave empty to allow all.
# @todo Add "macro" to create raw-ids from TS3-Channel-ID.
# @version 0.1
validchannelids=

# Password to server.
# Leave empty to allow access to everyone.
# @version 0.1
password=

# Virtual server's administrator password.
# @version 0.3
adminpassword=admin

# Bridge to TeamSpeak via it's Query-Console.
#
# The bridge requires a user with the following permissions:
# - b_serverquery_login
# - b_virtualserver_select
# - b_virtualserver_client_list
# - i_channel_subscribe_power
# - i_channel_needed_subscribe_power
#
# @version 0.4
[teamspeak3-bridge]
# Enables the bridge to TeamSpeak.
# @version 0.4
enabled=0

# Address of the TeamSpeak server.
# It usually runs on the same host (127.0.0.1)
# @version 0.4
address=127.0.0.1

# The port of the TeamSpeak server query-console.
# @version 0.4
port=10011

# Login information for the query-console.
# @version 0.4
loginname=serveradmin
loginpassword=TiHxQDHt

# The connection will change the visible nickname of the query-console user.
# NOTE: Do not use yet! Leave it empty for now! Or at least not more than 10 characters!
# @version 0.4
nickname=OCS

# Port of the virtual server used for authorization.
# @version 0.4
virtualserverport=9987

# Comma separated list of server group IDs (sgid),
# which are allowed to use the video server.
# Leave empty to allow all groups.
# @version 0.4
allowedservergroups=

The own configuration file can be passed with the --config parameter.

./start.sh --config "/opt/ts3video/myconfig.ini"

Start the server
It’s not recommended to use this way in production. Production systems should always use the Windows-Service/Linux-Daemon way.

Windows

"C:\ts3video\videoserver.exe" --config "C:\ts3video\default.ini"

Linux: On linux you need to use the start.sh script, which prepares the system environment.

/opt/ts3video/start.sh start --config "/opt/ts3video/default.ini"

Run as Windows Service
Installing the server process as a service can be done with the built-in Windows tool sc.

All upcoming commands need to run as a privileged Administrator!

Install as service
sc create "TS3VIDEO" binPath= "C:\ts3video\videoserver.exe --service --config \"C:\ts3video\myconfig.ini\"" start= auto

Even though it might look weird, the space after binPath=, start= and other parameters you might append is important!

Uninstall service
sc delete "TS3VIDEO"

Troubleshooting
Problem: The service doesn’t start or exits immediately. - Make sure that the user who runs the service has permissions to run the process.

Run as Linux Daemon (Debian - SysV)
The server comes with a start-initd.sh script which makes it possible to control the server process in background.

Note: You have to be logged in as root.

1. Create system user and set permissions
useradd --home-dir /opt/ts3video --system --shell /bin/sh --user-group ts3video
chown -R ts3video:ts3video /opt/ts3video

2. Prepare the start-up script
Open the file start-initd.sh for editing and update the variables on top to fit your system.

USER="ts3video"
WORKDIR="/opt/ts3video"
CONFIG="${WORKDIR}/default.ini"

3. Install the script as start-up script
You can either copy or link the script into /etc/init.d/ before updating your run levels with it.

cp /opt/ts3video/start-initd.sh /etc/init.d/ts3video
update-rc.d ts3video defaults

4. Test it
That’s it! You can now test it with the following commands.

/etc/init.d/ts3video start
/etc/init.d/ts3video stop

You should also reboot and test whether the VideoServer has been started automatically.

The running process name may be different than expected. You shouldn’t see a videoserver process. The running process name will be ld-2.19.so.

Why is that? The server is shipped with its own set of common libraries and a dynamic library loader because of portability issues. This might change in future releases. On some systems it’s possible to run the videoserver binary directly (e.g. Ubuntu 14.04).
 
Last edited:

Derp

Retired Staff
Contributor
Apr 30, 2015
933
1,014
217
Is XP Supported?

If not, then, that's too bad.
 

Derp

Retired Staff
Contributor
Apr 30, 2015
933
1,014
217
Tested on Windows XP

The plugin is NOT Compatible with Windows XP
 

cananon1

Member
May 19, 2015
99
47
60
Part 2 if a admin/mod can merge with my first post that will be awesome


Available since: 0.2

The server comes with a web-app to monitor basic status information about the running server. It is located in the server-status directory of the downloaded server package.

This documentation asumes that your server is installed in the /opt/ts3video directory. Windows can use the same instructions in a slightly modified way.

Configure the status web-app
The web-app uses a WebSocket connection to retrieve real-time information from the VideoServer. Basic options can be changed in the web-app’s config.json file. Here is a list of the available options and what they include:

server.statussocket.address > The host address to which the web-app’s WebSocket will connect. > Set to null to let the application use the host from the address bar > in your browser (recommended).

server.statussocket.port > The port to which the web-app’s WebSocket will connect.

server.statussocket.path > The web-app’s WebSocket will use this path in it’s HTTP request. > It can be used to proxy-forward the WebSocket with your web-server > (e.g.: Apache’s ProxyPass, ProxyPassReverse).

ui.updateinterval > The polling interval which is used to update visible information.

Setup the quick and dirty way
Copy or link the server-status folder into the public reachable web-server’s www folder.

cp -rf /opt/ts3video/server-status /var/www/videoserver-status

Before the web-app can fetch any data from the VideoServer you need to update the VideoServer’s configuration file /opt/ts3data/default.ini and set the following values:

[default]
wsstatus-address=any
wsstatus-port=13375

The VideoServer will now accept WebSocket connections from anywhere. In case that you only want to access the web-app from localhost, you can keep the VideoServer’s default configuration values (wsstatus-address=127.0.0.1).

Finally you need to restart the VideoServer

/etc/init.d/ts3video stop
/etc/init.d/ts3video start

and open the web-app in your browser, e.g.: http://localhost/videoserver-status

Some firewalls and proxy servers may block connections to port 13375, they usually only allow port 80 and 443.
Setup Apache2 VirtualHost and password protection
Requirements: Apache >=2.4.5 with mod_proxy and mod_proxy_wstunnel enabled.

I encountered a few problems using ProxyPass with WebSockets. It either took very long to establish the WebSocket connection or didn't work at all. You might fall back to the Quick & Dirty way with localhost acccess only, if you encounter any problems.
First you need to create a new VirtualHost configuration.

cd /etc/apache2/sites-available
vi videoserver-status

Your configuration should look like this:

<VirtualHost *:80>
ServerName videoserver-status.yourhost.com
DocumentRoot /opt/ts3video/server-status

# Password protection (optional)
<Location />
AuthType Basic
AuthName "Video Server Status"
AuthUserFile /opt/users.passwd
require valid-user
</Location>

# Forward incoming WebSocket connections to the running VideoServer on port 13375.
# Note: ProxyPass for WebSockets is available since Apache 2.4.5
# You need to have the Apache modules proxy_http and proxy_wstunnel enabled.
<Location /ws>
ProxyPass ws://127.0.0.1:13375
ProxyPassReverse ws://127.0.0.1:13375
</Location>

</VirtualHost>

Users can be managed with Apache’s htpasswd tool.

Now you need to update the web-app’s configuration file to match your VirtualHost: \ /opt/ts3video/server-status/config.json

{
"server.statussocket.address": null,
"server.statussocket.port": 80,
"server.statussocket.path": "/ws",
"ui.updateinterval": 5000
}

After a restart of the Apache web-server you can access the web-app: http://videoserver-status.yourhost.com
 

Derp

Retired Staff
Contributor
Apr 30, 2015
933
1,014
217
Yes,

We all know Windows XP is outdated (and not supported), but according to THESE stats, people still use it.

I personally HATE the fact that project developers don't think about Users running on XP, Yeah, I could just switch to Windows 7, but WHY would I do that?, Windows XP has everything I need.
 

cananon1

Member
May 19, 2015
99
47
60
Yes,

We all know Windows XP is outdated (and not supported), but according to THESE stats, people still use it.

I personally HATE the fact that project developers don't think about Users running on XP, Yeah, I could just switch to Windows 7, but WHY would I do that?, Windows XP has everything I need.
take a look at the source and compile it your self

https://github.com/mfreiholz/ocs
 

cananon1

Member
May 19, 2015
99
47
60
I've already thought about that, The problem is that I have a lot of things to do these days and that prevents me from working on it (It will probably need some little editing in order to work on xp)
well if it get it working let me know i will post a link to it :)
 

KUL

Active Member
May 2, 2016
5
0
78
i get this error
[2017-07-18 20:44:17][error][pid=8487][tid=8487] Can not bind to TCP port (port=13370)
 

Kleberstoff

Knowledge Seeker
VIP
Dec 29, 2015
308
214
158
i get this error
[2017-07-18 20:44:17][error][pid=8487][tid=8487] Can not bind to TCP port (port=13370)

COULD NOT BIND TCP PORT, means that the Server can't be started because the port 13370 is in use.
There are 2 ways of fixing this issue,

first way:
change the port of the tsvideo server, see the docs for that.
tip: its simply changing the port in the config

second way:
change the port of whatever is using port 13370.
 
  • Like
Reactions: KUL
Top