Feature: recorder codec presets + codec/container/audio validation guard #163

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

Problem

The recorder codec/container/audio fields can be combined into silently-broken configurations. Observed during NVENC testing:

  • PCM audio + MP4 container → master written with ipcm tag that ffmpeg reads back as Audio: none → proxy generation fails (asset stuck error). PCM only belongs in MOV/MXF.
  • HEVC + MXF → this ffmpeg's MXF muxer rejects HEVC ("Operation not permitted").
  • hevc_nvenc requires GPU but nothing stops you selecting it on a node without one.

Today these produce a broken master with no warning until the proxy worker fails downstream.

Proposal

  1. Validation layer (API recorders create/PATCH): reject or auto-correct invalid codec×container×audio combos (PCM⇒MOV/MXF; HEVC⇒not MXF on current ffmpeg; nvenc⇒node must have a GPU).
  2. Named presets in the New Recorder modal:
    • NVENC HEVC — Growing/Edit-while-record (hevc_nvenc, frag-MOV, all-intra, GPU)
    • ProRes HQ — Mezzanine (prores_hq, MOV, 4:2:2)
    • H.264 — Proxy-only / low-bitrate (h264/h264_nvenc, MP4, AAC)

Operator picks intent, not 6 interdependent dropdowns. Complements #150.

Why

Aligns with PRODUCT.md "no half-states / trust the operator" — the system should make an invalid recorder impossible to save rather than fail silently at proxy time.

## Problem The recorder codec/container/audio fields can be combined into silently-broken configurations. Observed during NVENC testing: - **PCM audio + MP4 container** → master written with `ipcm` tag that ffmpeg reads back as `Audio: none` → proxy generation fails (asset stuck error). PCM only belongs in MOV/MXF. - **HEVC + MXF** → this ffmpeg's MXF muxer rejects HEVC ("Operation not permitted"). - **`hevc_nvenc` requires GPU** but nothing stops you selecting it on a node without one. Today these produce a broken master with no warning until the proxy worker fails downstream. ## Proposal 1. **Validation layer** (API `recorders` create/PATCH): reject or auto-correct invalid codec×container×audio combos (PCM⇒MOV/MXF; HEVC⇒not MXF on current ffmpeg; nvenc⇒node must have a GPU). 2. **Named presets** in the New Recorder modal: - *NVENC HEVC — Growing/Edit-while-record* (hevc_nvenc, frag-MOV, all-intra, GPU) - *ProRes HQ — Mezzanine* (prores_hq, MOV, 4:2:2) - *H.264 — Proxy-only / low-bitrate* (h264/h264_nvenc, MP4, AAC) Operator picks intent, not 6 interdependent dropdowns. Complements #150. ## Why Aligns with PRODUCT.md "no half-states / trust the operator" — the system should make an invalid recorder impossible to save rather than fail silently at proxy time.
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#163
No description provided.