Skip to content

FFmpeg Outputs: HLS, Thumbnails & Storage #59

Open

Description

@Harxhit

Goal

Pipe the RTP from Day 1 into FFmpeg and produce MP4 (archive), HLS/LL-HLS segments
(VOD playback), and periodic thumbnails.

Why this matters

§9: FFmpeg muxes to MP4, segments to HLS (.m3u8 + .ts), and extracts thumbnails.
HLS output is also the basis for the large-scale HLS hybrid (§15).

Tasks

  • Spawn FFmpeg with the Day 1 SDP as input (RTP ingest)
  • Output MP4 mux for archive/download
  • Output HLS / LL-HLS (.m3u8 + .ts segments) for VOD playback
  • Extract thumbnails (-vf fps=1/10 → every 10s + a poster frame)
  • Write outputs to scratch (instance store / EFS); bound disk usage
  • Handle FFmpeg lifecycle: start with recording, stop cleanly on stream end, capture errors

Acceptance criteria

  • A short test stream yields a valid playable MP4 and an HLS playlist + segments
  • Thumbnails are generated at the configured interval
  • FFmpeg exits cleanly on stop; failures are logged (not silent)

Notes

Segment as you go — don't wait for stream end (sets up streaming upload on Day 3).
Work on the video quality resolution.

Activity

  1. Harxhit commented on Aug 15, 2026

    @Harxhit
    OwnerAuthor

    HLS/LL-HLS is not required for the current recording use case. Recordings are saved as completed MP4 files for later playback/download, and we currently have no VOD or segmented playback requirement. This does not provide value for the current product, so we are skipping it for now and can revisit it for future use cases.

  2. Harxhit commented on Aug 15, 2026

    @Harxhit
    OwnerAuthor

    Future: Add a VOD/recording showcase where completed stream recordings can be played back later via HLS. Deferred until persistent recording/VOD becomes a product requirement.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    futurePlanned for future

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions