Skip to content

Support ffmpeg video export profiles (e.g., --profile sos) and passthrough options (e.g., --pix-fmt, --colorspace) #215

@Hackshaven

Description

@Hackshaven

🧩 Problem / Workflow Gap

Zyra's current video export pipeline does not allow users to:

  • Control chroma subsampling, pixel format, or color space
  • Avoid Vimeo-related color shifts due to default ffmpeg → Vimeo transcoding behavior
  • Specify consistent, reproducible quality profiles (e.g., archival, web, streaming)

This limits visual fidelity and introduces downstream surprises—particularly for workflows requiring color-accurate, high-bitrate, or broadcast-compliant outputs.


✅ Proposal

We propose two complementary solutions:

1. --profile <name> (High-Level Presets)

Add support for friendly, pre-defined ffmpeg export bundles such as:

--profile sos        # Stream-optimized settings
--profile archive    # ProRes 422, yuv422p, high bitrate
--profile broadcast  # yuv422p10le, BT.709, VBR
--profile lossless   # FFV1, yuv444p, no chroma loss

Each profile would configure a consistent set of ffmpeg flags (codec, pixel format, color space, container, etc.).

2. Low-Level Overrides (Passthrough Controls)

Expose advanced ffmpeg flags for granular control:

--pix-fmt yuv422p
--colorspace bt709
--color_range pc
--codec libx264
--bitrate 20M
--ffmpeg-flags "-g 30 -movflags +faststart"

These can override defaults or augment profiles, enabling full reproducibility and precision.


🧪 Tests

  • Validate output format and pixel structure using ffprobe
  • Confirm Vimeo or third-party delivery matches expectations
  • Provide example image sequences + round-trip encoding checks

📚 Documentation

Add a section to the CLI docs describing:

  • Available profiles and when to use them
  • Tradeoffs (quality vs. size vs. compatibility)
  • How to inspect output video with ffmpeg tools

🔗 Related

  • Upstream Vimeo support for passthrough uploads (Pro+ only)
  • User-reported color fidelity issues traced to ffmpegyuv420p → Vimeo transcoding

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestworkflow-gapMissing CLI functionality or structural gap

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions