Repository navigation
fix(studio-server): MPEG-2 and DNxHD videos get a playable preview copy - #7348
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Approve at 66d82ed5.
The change adds two lines to the table, matching the existing mpeg4/mjpeg/prores pattern: no representative mime, and pre-warm on. That's right for codecs that no browser decodes.
Verified at this head:
npx vitest run src/helpers/mediaCodecMap.test.ts: 45 passed.fails without the fix:holds. With main'smediaCodecMap.ts, the 4 new cases fail (mime and pre-warm, formpeg2videoanddnxhd).- The keys match ffprobe's names. Clips generated with
-c:v mpeg2video(mp4) and-c:v dnxhd(mov) probe asmpeg2videoanddnxhd. - This table is the only codec list. Its consumers (
checkBrowser,publishProxyBake, the preview route,staticProjectServer) all go throughhostileCodecEntry/decideMediaProxyEligibility, socheckcopies and publish bakes pick both codecs up consistently.
Non-blocking: MPEG-2 from broadcast or older cameras is often interlaced. The proxy transcode doesn't deinterlace, so such a copy may show combing on motion. Worth a follow-up if anyone reports it.
Contributor
Edit accuracy: accurate 267 (base branch 267), smooth 90 of thoseThe gate passes. Quarantined, measured but not gated (8)
Unstable (1)
|
SanHsien
added a commit
to SanHsien/hyperframes
that referenced
this pull request
Nov 7, 2026
…-com#7336-heygen-com#7358 Adopt heygen-com#7304 (without CLI renderDiagnostic, needs heygen-com#6725), heygen-com#7331, heygen-com#7332, heygen-com#7334, heygen-com#7337, heygen-com#7336, heygen-com#7339, heygen-com#7289, heygen-com#5594, heygen-com#6900, heygen-com#7322, heygen-com#7342, heygen-com#7343, heygen-com#7350 (onProgress only), heygen-com#7352, heygen-com#7348, heygen-com#7344, heygen-com#7353, heygen-com#7356 and heygen-com#7355. Defer heygen-com#5708 (needs heygen-com#6911) and heygen-com#7345 (READ_VERSION 4 vs 7); heygen-com#7307 not applicable. Re-read 14 moved pins, pin 6 new PRs (monitored 126). Make checkReportFile module-private and suppress the cross-package closeTestChrome duplicate for fallow. Co-authored-by: Miguel Ángel <miguel.sierra@heygen.com> Co-authored-by: SophiaHuangCc <129631224+SophiaHuangCc@users.noreply.github.com> Co-authored-by: Dante <duanjl.china@gmail.com> Co-authored-by: Muzzy5150 <muzzy5150yt@gmail.com> Co-authored-by: ump45nose <52391318+ump45nose@users.noreply.github.com> Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
BROWSER_HOSTILE_CODECSgainsmpeg2video(MPEG-2, as in an mp4 from an older camera or encoder) anddnxhd(Avid DNxHD in a mov), both with no representative mime and pre-warm on, asproresandmpeg4are. A project video in either codec now gets a browser-playable copy instead of "no copy" (browser_safe_codec).Why
Chrome in Electron refuses both: a card for an
ffmpeg -c:v mpeg2videomp4 and a-c:v dnxhdmov ended with<video>error code 4 and no picture, while the same studio server table lists neither, so the copy request was answered 404. In the same run H.264 (4:2:0, 4:4:4 and 4:2:2 10-bit), HEVC, VP9 and AV1 played, and MPEG-4 and ProRes played through their copy.What I measured
mpeg2videoanddnxhdmime and pre-warm cases), 45 pass with them (bun, vitest, format check on a Linux box).What I did NOT exercise
Size
About 4 changed lines in 2 files: a lone table change with its test; nothing open on this table to carry it.