Skip to content

rsky-video: remux MOV to MP4 before PDS upload#185

Open
rudyfraser wants to merge 1 commit intomainfrom
fix/rsky-video-mov-to-mp4
Open

rsky-video: remux MOV to MP4 before PDS upload#185
rudyfraser wants to merge 1 commit intomainfrom
fix/rsky-video-mov-to-mp4

Conversation

@rudyfraser
Copy link
Copy Markdown
Member

Fixes iPhone screen-recording uploads (video/quicktime) being rejected by the bsky lexicon (video/mp4 only). Detects qt brand and remuxes via ffmpeg -c copy (stream copy, no re-encode) before the PDS upload.

Deployed and verified on video.blacksky.community.

…ecordings)

The bsky lexicon's app.bsky.embed.video#main rejects mimeType other than
video/mp4. iPhone screen recordings ship as H.264/AAC inside a `qt  `
QuickTime container; the PDS sniffs the bytes via file-type and tags the
blob video/quicktime, so the subsequent applyWrites fails record validation.

Detect the QuickTime brand (ftyp + qt  ) on upload and remux to MP4 with
ffmpeg `-c copy -movflags +faststart` -- stream copy, no re-encode. iPhone
recordings pass straight through; the cost is the time to copy bytes once
(typically <1s for 100MB). Falls through cleanly with TranscodeFailed for
oddball MOVs (e.g. ProRes) that MP4 can't carry.

This also wires the previously-orphan transcode module into the build:
- mod transcode in main.rs
- TranscodeFailed in Error enum
- ffmpeg_path on AppConfig (FFMPEG_PATH env, default "ffmpeg")
- tempfile promoted to runtime dep
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant