Feature: move HLS preview encode from libx264 to h264_nvenc #164

Open
opened 2026-05-29 14:11:07 -04:00 by zgaetano · 0 comments
Owner

Context

The capture container runs two encodes per signal: the master (now hevc_nvenc on GPU after #161) and the HLS monitor preview, which is still libx264 on CPU. Confirmed live: during an NVENC SDI capture, docker top showed -c:v hevc_nvenc (master) and -c:v libx264 (HLS).

Proposal

Switch the HLS preview output to h264_nvenc. The capture image already has h264_nvenc (verified post-#161), and the sidecar already gets the GPU when the master codec is nvenc.

Why

This is the last CPU video encoder in the capture path. Removing it is a prerequisite for the 8-signals-per-node goal (design doc §5/§9) — otherwise per-signal CPU stays meaningfully non-zero. Should gate on: only use nvenc HLS when the sidecar already has a GPU (i.e., master is nvenc), else keep libx264.

## Context The capture container runs two encodes per signal: the master (now `hevc_nvenc` on GPU after #161) and the HLS monitor preview, which is **still `libx264` on CPU**. Confirmed live: during an NVENC SDI capture, `docker top` showed `-c:v hevc_nvenc` (master) **and** `-c:v libx264` (HLS). ## Proposal Switch the HLS preview output to `h264_nvenc`. The capture image already has `h264_nvenc` (verified post-#161), and the sidecar already gets the GPU when the master codec is nvenc. ## Why This is the **last CPU video encoder** in the capture path. Removing it is a prerequisite for the 8-signals-per-node goal (design doc §5/§9) — otherwise per-signal CPU stays meaningfully non-zero. Should gate on: only use nvenc HLS when the sidecar already has a GPU (i.e., master is nvenc), else keep libx264.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: WildDragonLLC/dragonflight#164
No description provided.