# First Vehicle Stream

Add a first video input, start Oden Streamer output, and verify the stream.

Last validated: 2026-05-04

This page walks through a minimal Streamer setup: open or create the Streamer project, add one camera or video input, start the Streamer output, and verify that OdenVR receives the outgoing stream.

## Prerequisites

-   Oden Streamer is installed on the vehicle computer.
    
-   OdenVR is installed on the operator computer.
    
-   The vehicle and operator computers can reach each other over the configured network.
    
-   You know which video input to use, for example `GStreamer Pipeline`, `RTSP`, or `V4L2`.
    

> **TIP**
> If you do not have the real camera available yet, use `Test Source` as the first input. It verifies the project, encoder, and network path before camera-specific settings are added.

## Open The Streamer Project

The Streamer project stores the vehicle-side scene, video inputs, network settings, and output settings.

1.  Start Oden Streamer on the vehicle computer.
    
2.  Open an existing project with **File**  **Open…​**.
    
    The default vehicle project is commonly stored at `/opt/oden-streamer/oden-vehicle-config.vproj`.
    
3.  For a new first-stream project, configure the initially opened project and save it with **File**  **Save As…​**.
    
4.  Save later changes with **File**  **Save** or Ctrl+S.
    

If Oden Streamer normally runs as a service, stop the service before editing the project locally:

```console
sudo systemctl stop oden-streamer.service
sudo oden-streamer /opt/oden-streamer/oden-vehicle-config.vproj
```

After saving and closing Oden Streamer, start the service again:

```console
sudo systemctl start oden-streamer.service
```

For remote project editing through OdenVR, add a `Streamer Configurator` entity in a Player project that already contains a `Remote Streamer` entity, then connect to the Streamer GUI from that entity. See [Projects and Scenes](../configure/projects-and-scenes.md) for project editing and configurator mode.

## Add A Camera Or Video Input

1.  In Oden Streamer, select the `Root Entity` in the scene graph.
    
2.  Add a video entity with **Edit**  **Add Child Entity**  **2D Video**.
    
3.  Select the new `2D Video` entity.
    
4.  In the entity settings, open the `Input` section.
    
5.  Choose the input type that matches the camera or source:
    
    -   `GStreamer Pipeline`: Use this for a custom GStreamer source, including shared GPU-memory pipelines on Jetson. Paste the pipeline in the `GStreamer Pipeline` settings and press `Start`.
        
    -   `RTSP`: Use this for an IP camera or RTSP server. Set `Url`, choose the incoming `Codec`, enable `Video`, add credentials if required, and press `Start`.
        
    -   `V4L2`: Use this for supported Linux camera devices. Select `Device`, `Pixel Format`, `Resolution`, and `Frame Rate`.
        
    -   `Test Source`: Use this as a known-good placeholder while validating the first stream path.
        
    
6.  Confirm that the `Texture` preview in the input settings updates.
    

See [Camera Inputs](../configure/camera-inputs.md) for input-specific settings and [Player Layout](../configure/player-layout.md) for 2D video layout behavior.

## Set The Stream Output

1.  Open the Streamer sidebar tab `Output`.
    
2.  If the output is stopped, configure the basic encoder settings:
    
    -   `Resolution`: Set the encoded output size. Start with a conservative value such as 1280 x 720 while validating the first stream.
        
    -   `Frame Rate`: Set the outgoing frame rate. Match the camera frame rate when possible.
        
    -   `Target Bitrate`: Set the encoder bitrate target, or the maximum bitrate when `Bandwidth Control` is enabled.
        
    -   `Codec`: Use `HEVC (H.265)` unless the receiving system requires another codec.
        
    -   `Sync to Video`: Enable this and select the primary camera source when low latency matters.
        
    -   `Use FEC`: Enable Forward Error Correction on links with packet loss.
        
    
3.  Press `Start` in the `Output` tab.
    
4.  While streaming, confirm that the `Output` tab shows the current resolution, codec, bitrate, and frame-rate graphs.
    
5.  Save the project with **File**  **Save**.
    

See [Bitrate Control and Auto Video Packing](../configure/stream-settings.md) for output settings.

## Verify The Outgoing Stream

1.  Start OdenVR on the operator computer.
    
2.  Open the connect menu and select the vehicle.
    
3.  Confirm that the Player project contains a `Remote Streamer` entity.
    
4.  Select the `Remote Streamer` entity and check the received video.
    
5.  In the `Remote Streamer` stats, verify:
    
    -   `Bandwidth` is above zero while the Streamer output is running.
        
    -   `Round Trip Time` is updating.
        
    -   `Packet Loss` stays at zero or an acceptable value for the network.
        
    -   The video image changes when the camera view changes.
        
    
6.  If no video appears, check the Streamer first: the input preview must update and the `Output` tab must be running before troubleshooting OdenVR.
    

See [Connect Player and Streamer](connect-player-and-streamer.md) and [Network](../configure/network.md).

## First-Stream Troubleshooting

No input preview

The issue is before streaming. Check the selected input type, camera URL or device, codec, credentials, and whether the input has been started.

Output will not start

Check that the encoder supports the selected `Resolution`, `Frame Rate`, and `Codec`. Try a lower resolution and bitrate.

OdenVR connects but receives no video

Confirm that the Streamer `Output` tab is running and that the Player has a `Remote Streamer` entity connected to the same vehicle.

High packet loss or unstable video

Lower `Target Bitrate`, enable `Use FEC`, and check the network link settings on both Streamer and Player.
