This is a work-in-progress Janus plugin to support the FTL "Faster-Than-Light" protocol developed for the Mixer live streaming service.
This protocol lets streamers deliver media to browser viewers with very low, often sub-second latency.
See my notes on the FTL protocol here.
First, compile and install Janus.
Get Meson for building.
By default during build we look for Janus in /opt/janus
(the default install path), but this can be configured with the JANUS_PATH
env var.
mkdir build/
meson build/
cd build
ninja
(from build/
directory)
sudo ninja install
Just fire up Janus (/opt/janus/bin/janus
), and the FTL plugin should automatically load - you should see this output:
FTL: Plugin initialized!
[...]
FTL: Ingest server is listening on port 8084
Now you ought to be able to point an FTL client at the ingest server and start streaming.
The default stream key is 123456789-aBcDeFgHiJkLmNoPqRsTuVwXyZ123456
.
123456789
can be whatever "Channel ID" you'd like.
See DummyCredStore.cpp
for the default stream key retrieval mechanism.
For watching your stream from a browser, see janus-ftl-player.
If you use VS code with the C++ extension, these include paths should make intellisense happy.
"includePath": [
"${workspaceFolder}/**",
"/opt/janus/include/janus",
"/usr/include/glib-2.0",
"/usr/lib/x86_64-linux-gnu/glib-2.0/include"
]