Streaming User Guide#
By Hanna Timander and Nisse Bergman, June 2022
hanna.timander.exjobb@gmail.com
This SHOULD be all the steps that are needed to get things running but feel free to update, clarify, de-clutter these instructions if needed.
Host#
Follow these steps to host a OpenSpace session with GStreamer:
Make sure that you are using the
thesis/2022/streaming
branch of OpenSpace-WebGuiFrontend (Node.js needs to be installed).Make sure that you are using the
thesis/2022/streaming
branch of OpenSpace. (Clone with--recurse-submodules
)Make sure that you are using the
gstreamer-functionality
branch of the sgct repo as your submodule placed in in apps/ext/OpenSpace/sgct. If this is not yet a branch of the sgct repo, it can be found here https://github.com/nissebergman/sgct (Clone with--recurse-submodules
) Just copy over and replace sgct/CMakeLists.txt and ext/gstreamer folder from the fork to the normal sgct.Configure and generate the OpenSpace project in CMake with the
SGCT_GSTREAMER_SUPPORT
checkbox enabledIn OpenSpace
In openspace.cfg
Add the viewer(s) IP-address(es) to ModuleConfigurations > Server > AllowAddresses
Make sure that ModuleConfiguration > Server > Interfaces > Type = “WebSocket” > DefaultAccess is set to Allow
Enable developer mode for the front-end GUI
Go to data/assets/customization/gui.asset and change the webguiDevelopmentMode flag to true.
(Optional) Go to data/assets/util/webgui.asset to see how the ports and routes are setup.
In OpenSpace-WebGuiFrontend.
For Environment.js make sure the
wsAddress
is the same as the host IP (notlocalhost
).For WebRTCStreaming.jsx make sure the
signalingServer
is the same as the host IP.
(Optional) Check the GStreamer pipeline (pipelineDescription) in gstreamerWebRTC.h looks good for your use case
Start the developer frontend GUI
Open a terminal, go to OpenSpace-WebGuiFrontend
Run
npm install
when running first time.Run
npm start
to start frontend GUI.
Start the signaling server
Open a terminal, go to OpenSpace-WebGuiFrontend/signalingserver
Run
npm install
when running first time.Run
node signaling
to start server.
Build and run OpenSpace. (Preferably using RelWithDebInfo configuration)
In the OpenSpace Window Options popup menu, pick the remote_gstreamer_output.json configuration file
Leave the rest to the viewer!
Viewer#
Follow these steps to join a OpenSpace session from the GUI:
Make sure you’re using a Chromium based browser (e.g. Google Chrome, Opera, Microsoft Edge)
Goto chrome://flags (or other browser equivalent section) and add the host’s IP-address and port under the “Insecure origins treated as secure”-section. An address entered here should look something like
192.168.1.39:4690
. This is probably because chrome finds IP-addresses sneaky to receive media from.Go to the address and port that the host has specified. If on same local network, should be similar to
192.168.x.xx:4690
format.Add /frontend/#/streaming to the address to load the correct GUI. (Something like
192.168.x.xx:4690/frontend/#/streaming
)If this page is visited before OpenSpace has loaded on the host machine, you’ll most likely get an error message. If so, wait until the host confirms the application has loaded, refresh the web page, and try again.
Open the streaming menu (icon of a computer with an arrow on it) and pick “Join session”. After a few seconds, the video feed should appear in the GUI.
Explore OpenSpace as you’d like!