Transcoding microservice: on-demand transcode for unsupported formats #14

Open
opened 2026-05-05 00:20:18 +10:00 by unkinben · 0 comments
Owner

Add a transcoding service that converts media on-the-fly when the client cannot direct-play the source format. Design: streaming service detects client capabilities from Accept header or query param (codec, container, resolution); if direct-play is possible, returns existing S3 URL as today; if not, proxies through transcoding service which uses FFmpeg/jellyfin-ffmpeg to transcode in real-time (HLS or progressive MP4). Prefer direct play always. Transcoding service should expose /transcode/{token} endpoint returning chunked video stream. Codec negotiation and client detection logic lives in the streaming service.

Add a transcoding service that converts media on-the-fly when the client cannot direct-play the source format. Design: streaming service detects client capabilities from Accept header or query param (codec, container, resolution); if direct-play is possible, returns existing S3 URL as today; if not, proxies through transcoding service which uses FFmpeg/jellyfin-ffmpeg to transcode in real-time (HLS or progressive MP4). Prefer direct play always. Transcoding service should expose /transcode/{token} endpoint returning chunked video stream. Codec negotiation and client detection logic lives in the streaming service.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: unkin/streamstack#14