Files
ttstd-infinite-canvas/web/test/canvas-video-merge-args.test.ts
ddcat666 b7416b8346 fix(canvas): 预演录制转码 - 奇数分辨率白膜录像按偶数缩放并无音轨导出 MP4
WebGL 录制没有音轨,dpr 1.5 下宽高经常是奇数,libx264 的 yuv420p 会直接失败。转码改为偶数缩放、去掉音轨,并用 ultrafast 单线程适配关闭汇编的 ffmpeg 内核。
2026-10-09 17:17:38 +08:00

16 lines
932 B
TypeScript

import { describe, expect, test } from "bun:test";
import { buildRecordingTranscodeArgs } from "../src/lib/canvas/canvas-video-merge-args";
describe("buildRecordingTranscodeArgs", () => {
test("奇数画布先裁成偶数,并且不要求音轨", () => {
const args = buildRecordingTranscodeArgs("recording.webm", "recording-transcoded.mp4");
expect(args).toContain("-an");
expect(args).toContain("scale=trunc(iw/2)*2:trunc(ih/2)*2");
expect(args).not.toContain("-c:a");
expect(args.indexOf("-vf")).toBeGreaterThan(args.indexOf("-i"));
expect(args.indexOf("-vf")).toBeLessThan(args.indexOf("recording-transcoded.mp4"));
expect(args).toEqual(["-i", "recording.webm", "-an", "-vf", "scale=trunc(iw/2)*2:trunc(ih/2)*2", "-c:v", "libx264", "-preset", "ultrafast", "-pix_fmt", "yuv420p", "-movflags", "+faststart", "-threads", "1", "recording-transcoded.mp4"]);
});
});