Skip to content

Package and invoke ffmpeg as a Tauri sidecar #4

Description

@dremnik

Summary

Poster generation resolves ffmpeg through the parent process's PATH. This may work in a development shell but is unreliable in a packaged macOS application, and the current bundle configuration does not include ffmpeg.

Evidence

  • src-tauri/src/media/poster.rs:20 uses std::process::Command::new("ffmpeg").
  • src-tauri/tauri.conf.json has no bundle.externalBin entry.
  • Poster generation blocks until the child exits.

Proposed change

  1. Select and document the distributable ffmpeg build and its license obligations.
  2. Package architecture-specific ffmpeg binaries through bundle.externalBin.
  3. Invoke the packaged binary as a Tauri sidecar from Rust.
  4. Run it asynchronously with timeout, cancellation, bounded stderr capture, and cleanup of partial output.
  5. Validate the video input and output paths against the active workspace.

Acceptance criteria

  • Poster generation works in a signed packaged application without a system ffmpeg installation.
  • Apple Silicon and Intel packaging behavior is defined.
  • A failed or cancelled job leaves no partial poster.
  • Error output is bounded and returned through the structured application error surface.
  • A packaged-app smoke test exercises poster generation.

Reference

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions