# Bitrate Control and Auto Video Packing

Configure encoder, bitrate, FEC, bandwidth control, and visible-video auto packing.

Last validated: 2026-05-05

Use the Streamer `Output` settings to choose what Oden encodes and how it adapts to the network. These settings affect the outgoing video stream received by the Player `Remote Streamer` entity.

## Open The Output Settings

1.  Start Oden Streamer and open the Streamer project.
    
2.  Open the sidebar tab `Output`.
    
3.  If the stream is running and you need to change encoder-only settings such as `Resolution`, `Frame Rate`, or `Codec`, press `Stop` first.
    
4.  Change the settings, then press `Start`.
    
5.  Confirm that the `Output` header shows the expected resolution, frame rate, and bitrate while streaming.
    

## Set Resolution

Use `Resolution` to set the encoded output size. Oden renders the current Streamer output or output-alignment result into this resolution before encoding. Higher resolutions preserve more detail but increase encoder load, decoder load, and required bitrate.

1.  In `Output`, choose `Resolution`.
    
2.  Start with a conservative value when validating a new vehicle, for example `1280x720` or `1920x1080`.
    
3.  Increase resolution only after the Player receives stable video and the network stats are clean.
    
4.  Enable `Custom Resolution` only when the preset list does not contain the required output size.
    
5.  If different scenes need different output sizes, enable `Scene Specific Resolution` and set `Resolution` per scene.
    

> **NOTE**
> H.264 output is limited to 4096x4096 in the encoder GUI. HEVC output is adjusted to a valid decoder width when `force_valid_nvdec_hevc_resolution` is active in the project settings.

## Set Frame Rate

Use `Frame Rate` to control how often Oden sends encoded frames when `Sync to Video` is disabled. Match the main camera frame rate when possible.

1.  Make sure `Sync to Video` is disabled.
    
2.  Open the `Frame Rate` section.
    
3.  Choose one of the listed rates: `23.976`, `29.97`, `59.94`, `119.88`, `15`, `24`, `25`, `30`, `50`, `60`, `100`, or `120`.
    
4.  Enable `Custom Frame Rate` only when the required rate is not in the list, then enter the value in fps.
    

Use lower frame rates when the link cannot sustain the required bitrate or when operator latency is less important than image quality. Use higher frame rates only when the camera, encoder, network, and Player decoder can all sustain them.

## Choose Codec

The `Codec` setting is inside `Encoder Settings`.

1.  Stop output if it is running.
    
2.  Open `Encoder Settings`.
    
3.  Choose `HEVC (H.265)` for the normal low-latency Streamer path.
    
4.  Choose `H.264` only when the receiving system or hardware path requires it.
    
5.  Choose `AV1` only on builds and hardware where the option is available.
    
6.  Press `Start` and verify that the `Output` panel reports the selected codec.
    

On Jetson systems, Oden warns when `H.264` is selected because `HEVC (H.265)` is the preferred low-latency codec.

## Send Grayscale Video

Enable `Grayscale` when the deployment only needs luminance information and color is not useful to the operator or integration. Validate the full Player layout after changing it, especially if the project uses chroma keying, color correction, or computer-vision plugins that expect color input.

## Set Bitrate

Use `Target Bitrate` for a fixed target. When `Bandwidth Control` is enabled, `Target Bitrate` acts as the maximum bitrate Oden tries to use.

1.  Set `Resolution` and `Frame Rate` first.
    
2.  Set `Target Bitrate` high enough for the selected resolution, but below the reliable bandwidth of the link.
    
3.  If the Player shows packet loss or unstable video, lower `Target Bitrate`.
    
4.  If the image is stable but compression artifacts are visible, increase `Target Bitrate` gradually.
    

When Auto Video Packer is used, prefer `Per Megapixel Bitrate` instead of a fixed `Target Bitrate`. It scales the active target with the current packed output resolution. `Per MP Bitrate Cap` limits the resulting bitrate.

> **TIP**
> `Per Megapixel Bitrate` is normalized to 30 fps. At higher frame rates, the effective bitrate is higher; at lower frame rates, it is lower.

## Use Bandwidth Control

Enable `Bandwidth Control` when the network bandwidth varies or when the Streamer should react to Player feedback. It requires feedback from a Player-side `Remote Streamer` entity.

1.  Open the `Bandwidth Control` section.
    
2.  Enable `Enable`.
    
3.  Leave `Target Usage` near the default `50%` unless measured testing shows that the link can safely run closer to saturation. It is deliberately below 100% so there is room for feedback, retransmission, FEC, audio, control data, and short network changes.
    
4.  Keep `Auto Mode Switch` disabled for normal tuning.
    
5.  Enable `Auto Mode Switch` only when the link can become very constrained and Oden should switch between regulator modes.
    
6.  Watch the `Current Mode`, `Channel Usage`, `Bytes In Flight`, `Round Trip Time`, and `Wanted Bitrate` graphs while testing.
    

With `Auto Mode Switch` enabled, the regulator modes can change `Resolution Scale`, `Frames to skip`, and `Max Packet Size`. The default modes are `High(Default)`, `Medium`, and `Low`. Use the default `Regulator Preset` unless a project-specific network test shows that a different preset is needed.

Use `Save Coded Data To File` only for encoder debugging or support captures. It writes the encoded bitstream to the selected path and can consume disk space quickly.

## Use FEC

Enable `Use FEC` when the link has packet loss but still has enough bandwidth for redundant packets. FEC can stabilize video, but it increases bandwidth usage and may push total traffic above `Target Bitrate`.

1.  Enable `Use FEC`.
    
2.  Set `FEC Amount` to the extra packet percentage to send.
    
3.  Set `Min extra packets` to the minimum number of FEC packets Oden should send.
    
4.  Leave `DFEC Bad Link Fade` unchanged unless you are tuning dynamic FEC behavior from measured link data.
    
5.  Test from the Player and check whether packet loss artifacts decrease.
    

Oden sends the larger result of `FEC Amount` and `Min extra packets`. If FEC makes congestion worse, lower `Target Bitrate`, lower `FEC Amount`, or disable FEC and fix the network link first.

## Sync To Video

Enable `Sync to Video` when low latency to a primary camera is more important than a fixed output frame cadence. Oden synchronizes output to the selected video source and uses that source as the timing reference.

1.  Enable `Sync to Video`.
    
2.  Open `Sync`.
    
3.  Select the primary camera in `Source`.
    
4.  Set `Max Fps` to cap the synchronized output rate.
    
5.  Set `Min Fps` to the lowest allowed synchronized output rate.
    
6.  Leave `Delay` at `0 us` unless you need a measured post-sync delay.
    

Choose the main driving camera as `Source` when one camera dominates the operator task. For projects that switch between forward and reverse driving cameras, change the sync source together with the active camera layout through the SDK or project logic.

> **NOTE**
> When `Sync to Video` is enabled, the manual `Frame Rate` section is hidden. Use `Max Fps` and `Min Fps` to bound the synchronized rate instead.

## Low-latency display settings

Output settings are only part of end-to-end latency. For the lowest operator display latency, also check the Player and operating-system display setup.

-   Run the monitor at its maximum refresh rate.
    
-   Use native `Fullscreen` on the Player when possible. Windowed and composited modes can add display latency.
    
-   Disable VSync unless a project-specific display setup requires it.
    
-   Use NVIDIA Surround when several monitors must behave as one large display surface.
    
-   On Linux vehicle computers, run Streamer with `--headless` when the GUI is not needed.
    
-   Enable `Sync to Video` and select the primary camera when camera-to-display latency matters more than a fixed frame cadence.
    

For deployed Player display settings, see [Player display setup](../operate/deployment.md#player-display-setup).

## Validate Changes

1.  Start output.
    
2.  On the Player, connect to the vehicle and select the `Remote Streamer` entity.
    
3.  Check that `Bandwidth`, `Round Trip Time`, and `Packet Loss` match the expected network behavior.
    
4.  In the Streamer `Output` panel, check the current resolution, codec, bitrate, and frame-rate graphs.
    
5.  Save the project when the settings are stable.
    

See also [First Vehicle Stream](../start/first-vehicle-stream.md) and [Connect Player and Streamer](../start/connect-player-and-streamer.md).
