Make layout blur, opacity, and watermark position apply in rendered videos.

Still-image encodes ignored boxblur and 1s black fills; switch to gblur plus full-length black frames, and honor brand watermark position.
This commit is contained in:
Atakan Doğan Özban
2026-08-17 12:47:19 +02:00
parent 0f363c5620
commit 2f25435921
4 changed files with 39 additions and 13 deletions
+12 -1
View File
@@ -26,7 +26,7 @@ function testEnumsAndClamp() {
assert.equal(blurToBoxblur(0), null);
const mid = blurToBoxblur(50);
assert.ok(mid && mid.radius >= 1 && mid.power >= 1);
assert.ok(boxblurFilterSegment(60).includes("boxblur="));
assert.ok(boxblurFilterSegment(60).includes("gblur="));
assert.equal(boxblurFilterSegment(0), "");
}
@@ -197,10 +197,21 @@ function testGeometryAndFilter() {
blurOpacity: 100,
});
assert.ok(classicBlur.includes("[0:v]split=2"));
assert.ok(classicBlur.includes("gblur=") || classicBlur.includes("[blurred]"));
assert.ok(classicBlur.includes("overlay=(W-w)/2:(H-h)/2"));
assert.equal(classicBlur.includes("pad="), false);
assert.equal(classicBlur.includes("drawtext="), false);
assert.ok(classicBlur.endsWith("[laid]"));
const classicOpacity = buildClassicBlurFillFilterComplex({
width: 1280,
height: 720,
blurAmount: 40,
blurOpacity: 50,
});
assert.ok(classicOpacity.includes("d=86400"));
assert.equal(classicOpacity.includes("shortest=1"), false);
assert.ok(classicOpacity.includes("blend="));
}
testEnumsAndClamp();