Troubleshooting

Last validated: 2026-05-04

Use this page as the first-response checklist for a Streamer, Player, or Fleet Streamer system that does not install, activate, connect, show video, keep latency low, load plugins, or run as a service. Each section links to the detailed setup or reference page for the subsystem.

Quick triage

  1. Record the product, version, operating system, GPU, project file, connection path, and exact error text.

  2. Check that all Oden installers in the setup are from the same release version.

  3. Confirm that the Streamer and Player both have valid licenses.

  4. If the Streamer normally runs as a service, check the service before starting a second Streamer instance.

    sudo systemctl status oden-streamer.service
  5. Replace the real camera with a Test Source input. If the test source works, continue with No video or no input preview. If it does not work, continue with Connection or no remote stream or Service problems.

  6. On the Streamer, verify that the input Texture preview updates before troubleshooting the Player.

  7. On the Streamer, verify that the Output tab is running and reports the expected resolution, codec, bitrate, and frame rate.

  8. On the Player, select the Remote Streamer entity and check Bandwidth, Round Trip Time, and Packet Loss.

Installation problems

Use Install Oden for the full install flow.

Checklist:

  • Download the installer from https://releases.voysys.dev and verify the matching .sha256 file when available.

  • Use the installer for the correct product: Oden Fleet Streamer, Oden Streamer, OdenVR, or Oden Dome Player.

  • Use matching release versions on the Streamer and Player.

  • On Ubuntu, install downloaded packages with a leading ./, for example sudo apt-get install ./oden-vr_<version>_amd64.deb.

  • On Jetson, select the package whose filename matches both the Ubuntu version and JetPack version. Check Jetson L4T with cat /etc/nv_tegra_release.

  • Install current GPU drivers before diagnosing video or encoder failures.

  • If Oden fails to open a window on Linux, try the Streamer in headless mode only after confirming that the system is intended to run without a GUI.

    oden-streamer --headless /path/to/project.vproj
  • For noninteractive Fleet Streamer installs, pre-seed both the EULA and service choices before installing the .deb.

License problems

Use Activate Licenses for the full activation and revoke flow.

Checklist:

  • Activate the product that will actually run on that computer. A Streamer license does not activate the Player unless the license includes that application.

  • Make sure the computer can reach https://license.voysys.se during activation, refresh, and revoke.

  • Paste the key exactly as provided, including hyphens.

  • Restart the application after the first successful activation.

  • For a headless Fleet Streamer service, activate with sudo so the root-run service can read the license data.

    sudo oden-streamer --activate <license-key>
    sudo systemctl restart oden-streamer.service
  • If terminal activation says a key already exists, use --force only when intentionally replacing the saved key on the same computer.

  • If the key is already activated elsewhere, revoke it on the old computer before activating the new one.

  • If the license expired or was not refreshed in time, reconnect the computer to the internet and activate again.

  • Check Help  License Info for the current validity, product capabilities, and activation dates.

Common meanings:

Unable to connect to license server

Check internet access, DNS, firewall, proxy settings, and access to https://license.voysys.se.

License key has already been activated on another computer

Revoke the license on the other computer first.

License not valid for this application

Use the license for the installed product, or contact Voysys to confirm the licensed applications.

The Streamer Has No Valid License

The Streamer can start, but it will show a license error until activation succeeds.

No video or no input preview

Use Camera Inputs and First Vehicle Stream for detailed input settings.

Start by locating where video stops:

  1. If the input Texture preview does not update, troubleshoot the camera or input.

  2. If the input preview updates but the Output tab is stopped, troubleshoot Streamer output.

  3. If Streamer output is running but the Player has no image, troubleshoot connection and Remote Streamer settings.

Input checklist:

  • Press Start on input types that have a start button.

  • Use Test Source to prove the project, encoder, and network path before diagnosing the real camera.

  • Match the input codec to the camera or sender.

  • For RTSP, check the URL, username, password, and selected codec.

  • For RTP, check that the sender uses the same UDP port and codec configured in Oden.

  • For GStreamer Pipeline, confirm that the pipeline reaches odenvideosink. Oden can append ! odenvideosink processing-deadline=0 if it is omitted.

  • For SRT or unstable GStreamer sources, increase Pipeline Latency in the input’s advanced settings.

  • For V4L2, confirm that the device node, pixel format, resolution, and frame rate are supported. Try Blocking Mode or Retry Until Success when the camera is slow to start.

  • For Direct Show, rescan devices after plugging in capture hardware.

  • For industrial cameras, rescan devices or interfaces and check camera access mode, IP address, exposure, gain, and packet-loss settings.

Output and Player checklist:

  • In Streamer Output, press Start and confirm that the output stats update.

  • Use HEVC (H.265) unless the receiving system requires another codec.

  • On the Player, make sure the project contains a Remote Streamer entity.

  • Stop the Remote Streamer input before changing stopped-only settings such as Codec.

  • Match the Remote Streamer Codec to the Streamer Output codec.

  • If the Player shows No Signal, the Remote Streamer drop detector has not seen image changes before its timeout. Check whether the Streamer is still sending changing frames, whether the input is frozen, and whether packet loss is preventing complete frames.

Connection or no remote stream

Fleet-managed connection checklist:

  • Use Oden Fleet Streamer on the vehicle side.

  • Make sure oden-streamer.service is running if Fleet Streamer was installed as a service.

  • Make sure the Player-side Fleet Client plugin is enabled.

  • Confirm both machines can reach the fleet service and that both applications are activated.

  • If the vehicle appears online but no video arrives, select the Remote Streamer entity and check Bandwidth, Round Trip Time, and Packet Loss.

Direct connection checklist:

  • In the Player Remote Streamer entity, configure a receiver link and note the Receive Port.

  • In the Streamer Network tab, configure a sender link to the Player computer’s reachable IP address and the same port.

  • Do not use 127.0.0.1 unless Streamer and Player are on the same computer.

  • Open the configured UDP receive port in the Player firewall.

  • If using Bind IP, enter an address that exists on the local machine or leave it empty.

  • On Linux, use Bind Device only when traffic must go through a specific interface. A wrong bind device can bypass normal routes.

  • For initiator/responder links, the responder receive port must be reachable by the initiator.

  • When using WireGuard relay or encryption, confirm that keys and internal source/destination addresses match the relay configuration.

High latency or unstable video

Checklist:

  • Start with a conservative output resolution, frame rate, and bitrate. Increase quality only after the Player stats are stable.

  • Enable Sync to Video and select the primary camera when low latency to that camera matters.

  • Use HEVC (H.265) for the normal low-latency path.

  • Keep the Player in fullscreen mode for lowest display latency.

  • Disable VSync unless the deployment specifically requires it.

  • Run the Streamer with --headless on Linux deployments where the GUI is not needed.

  • If Packet Loss is high, lower Target Bitrate first.

  • Enable Use FEC only when the link has packet loss and enough spare bandwidth for redundant packets. If FEC increases congestion, lower bitrate or reduce FEC.

  • If Round Trip Time or Bytes In Flight climbs during streaming, the network is likely saturated. Lower bitrate, resolution, frame rate, or target usage.

  • If packet reordering is high, test Allow Reorder Delay and Max Reorder Delay on the Remote Streamer. Disable reorder delay only for applications where minimum latency is more important than resilience to reordering.

  • Use P2P when available to avoid relay latency.

Plugin problems

Use Plugins.

Checklist:

  • Program plugins belong in the project plugin path or next to the project file.

  • Global plugins must be in the same directory as the Player or Streamer executable.

  • After changing Project Plugins Path, save and reopen the project.

  • If the plugin path uses environment variables, hover the path field and confirm the expanded path.

  • Make sure each plugin entity uses a unique entity ID.

  • Keep hot reloading disabled in production.

  • On Windows, open the plugin .dll in Dependencies and resolve missing dependencies.

  • On Linux, run ldd -r -d ./<plugin>.so in the plugin directory and resolve any missing libraries.

  • Check the application log or service journal for plugin load failures, version mismatch warnings, or duplicate-load warnings.

Service problems

Fleet Streamer service facts:

  • The service is installed only when selected during the Fleet Streamer .deb install or when pre-seeded through debconf.

  • The service name is oden-streamer.service.

  • The service runs as root.

  • The service starts /usr/bin/oden-streamer --headless /opt/oden-streamer/oden-vehicle-config.vproj.

  • If /opt/oden-streamer/oden-vehicle-config.vproj does not exist, the service copies the default project before starting.

Checklist:

  • Check service state and recent logs.

    sudo systemctl status oden-streamer.service
    sudo journalctl -u oden-streamer.service -n 200 --no-pager
  • Restart the service after changing the project, license, network, or plugin files.

    sudo systemctl restart oden-streamer.service
  • Stop the service before opening the same project manually in the GUI.

    sudo systemctl stop oden-streamer.service
    sudo oden-streamer /opt/oden-streamer/oden-vehicle-config.vproj
  • If manual Streamer startup reports another Streamer instance, stop the service or intentionally start with --multiple-streamers.

  • If saving fails when editing /opt/oden-streamer/oden-vehicle-config.vproj, check file ownership and remember that the service runs as root.

  • Activate service deployments with sudo oden-streamer --activate <license-key>, then restart the service.

  • If the service restarts repeatedly, inspect the journal for license errors, plugin load failures, missing camera devices, or project parse errors.