mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-03 12:54:29 +00:00
fix(render): cap trimmed audio container duration
This commit is contained in:
@@ -91,6 +91,7 @@ describe("buildPadTrimAudioArgs", () => {
|
||||
expect(operation).toBe("trim");
|
||||
const filterIdx = args.indexOf("-af");
|
||||
expect(args[filterIdx + 1]).toBe("atrim=duration=15.000000,asetpts=PTS-STARTPTS");
|
||||
expect(args[args.indexOf("-t") + 1]).toBe("15.000000");
|
||||
const codecIdx = args.indexOf("-c:a");
|
||||
expect(args[codecIdx + 1]).toBe("aac");
|
||||
expect(args[args.indexOf("-b:a") + 1]).toBe("192k");
|
||||
|
||||
@@ -201,6 +201,12 @@ export function buildPadTrimAudioPlan(
|
||||
audioPath,
|
||||
"-af",
|
||||
`atrim=duration=${targetSec},asetpts=PTS-STARTPTS`,
|
||||
// `atrim` limits decoded samples but does not cap muxer timestamps
|
||||
// introduced by encoder delay/flush. The output duration contract
|
||||
// is enforced at the container boundary as well; without `-t`, a
|
||||
// long primed source can retain its original tail after re-encode.
|
||||
"-t",
|
||||
targetSec,
|
||||
"-c:a",
|
||||
"aac",
|
||||
"-b:a",
|
||||
|
||||
Reference in New Issue
Block a user