docs(media): document automatic proxying for hostile codecs (#2596)

* docs(media): document automatic proxying for hostile codecs

Describes the shipped behavior: which input codecs render, that live preview
auto-proxies what the browser cannot decode, where the cache lives, and how to
turn it off. Carries the skills notes and the hardening design documents.

* docs(media): align proxy guidance with runtime
This commit is contained in:
Miguel Ángel
2026-07-17 03:01:56 -04:00
committed by GitHub
parent 35eff5038b
commit 8c1b6c5154
8 changed files with 149 additions and 20 deletions
+4 -4
View File
@@ -145,12 +145,12 @@ export async function lintHevcPreviewCodec(
message:
`Video file(s) use the HEVC/H.265 codec: ${unique.join(", ")}. ` +
"The render pipeline pre-decodes video with FFmpeg and never uses the browser's video decoder, so these render correctly. " +
"Live preview/player playback requires a browser with HEVC support. " +
"If preview playback fails, generate an H.264 proxy (e.g. via the media-use skill) and reference that instead.",
"Live preview/player playback automatically uses a cached H.264 proxy when the browser cannot decode HEVC. " +
"If playback still fails, verify ffmpeg/ffprobe are installed and auto-proxying is enabled.",
fixHint:
unique.length === 1
? `Generate an H.264 proxy for "${unique[0]}" (e.g. via the media-use skill) if it fails to play in preview.`
: "Generate H.264 proxies for these files (e.g. via the media-use skill) if they fail to play in preview.",
? `If "${unique[0]}" fails to play in preview, run hyperframes doctor and confirm media.autoProxy is not false.`
: "If these files fail to play in preview, run hyperframes doctor and confirm media.autoProxy is not false.",
},
];
}
+1 -1
View File
@@ -323,7 +323,7 @@ describe("hevc_preview_codec", () => {
expect(findings[0]?.severity).toBe("info");
expect(findings[0]?.code).toBe("hevc_preview_codec");
expect(findings[0]?.message).toContain("clip.mp4");
expect(findings[0]?.message).toContain("requires a browser with HEVC support");
expect(findings[0]?.message).toContain("automatically uses a cached H.264 proxy");
expect(result.totalErrors).toBe(0);
expect(result.results[0]?.result.ok).toBe(true);
});