A media streaming server (
which distributes audio/video MPEG-TS (MPEG Transport Stream)
read via pipe to HTTP streaming clients.
That is, you can produce a stream (e.g., a screencast from your Desktop)
with some other program, then feed it to streamserver-cvn which will
let other people access/see it by pointing their media player of choice
mpv, VLC, ...) at an URL such as http://YOUR_IP_HERE:8000 .
It's based on Qt, but does not use or provide any GUI functionality. (yet?) (Here it's just a way of having a full framework at one's fingertips while using C++, plus optionally having an event loop easily.)
At the time of writing (2019-05-13),
streamserver-cvn project is developed by
on the operating system (OS) Debian 9 (a GNU/Linux distribution),
with the C++ compiler GCC
and the cross-platform C++ application framework Qt 5.7.1.
Usually, the code is developed (written, auto-completed) in the Integrated Development Environment (IDE) Qt Creator (4.2.0), but especially when working on another machine, e.g. remotely via SSH (Secure Shell, remote terminal access), the terminal (console) text editor VIM (e.g., 8.0) is used instead.
When you happen to be using such an environment, too, compilation and use should be working as expected. Lower versions (especially of Qt or the C++ compiler) will likely not work.
For building in the development environment, see BUILDING: Building in development environment.
Termux App on Android
Within the Termux App on the Android (mostly: smartphone, tablet, TV)
operating system, a Debian-like environment exists (even uses APT
dpkg). Recently (as of mid-2019), the possibility of having
an X11-based graphical environment was added, which also brought along
precompiled Qt 5 (see above), thus making use of
on my smartphone a theoretical possibility.
It turns out compiling the project was quite possible (after fixing two missing includes, see commit 17e33b2eee7ba94673c39adbab0940f642045282), and the resulting binaries worked. (Initial test made 2019-05-11.)
streamserver-cvn was tested with these versions:
- Android 7
- Termux 0.68
- clang 8.0.0
- Qt 5.11.2
For building in Termux, see BUILDING: Building in Termux.
For producing compatible input for
streamserver-cvn, you may try to
mpv video player in encoding mode; e.g.:
scm/build-streamserver-cvn$ mpv --loop=inf ~/storage/.../FOO.mkv \ --o=- --of=mpegts | ./streamserver-cvn-cli/streamserver-cvn-cli \ /dev/fd/0
--o=- which enables encoding mode with output to stdout,
--of=mpegts which specifies the output format. The
is then piped into
streamserver-cvn-cli, which is instructed to
serve its HTTP stream from
/dev/fd/0, otherwise known as stdin.
When this is running (it may take a few seconds for mpv to start up),
you can, e.g., go to the VLC App and enter the stream URL
Or open an Editor, write the http://YOUR_IP_HERE:8000 out (insert your actual IP addess or, e.g., a DynDNS hostname pointing at you, or at your router and a port forwarded to your device). You can then try to play it on your TV with a Raspberry Pi attached running Kodi: Mark the URL as for copy & paste, then choose "Send" and, in the following dialog (which may take some seconds to start up), tap the option to play on Kodi, provided by the Kore Kodi remote App... (TODO: Could this be done easier via Termux:API..?)