fix audio only filters
This commit is contained in:
parent
692490398f
commit
115c30466b
|
@ -109,9 +109,11 @@ export const previewCommand = derived([edges, nodes], ([$edges, $nodes]) => {
|
|||
finalCommand.push("0:a");
|
||||
}
|
||||
|
||||
finalCommand.push("-map");
|
||||
if (hasVid) {
|
||||
finalCommand.push("-map");
|
||||
finalCommand.push('"[vid_out]"');
|
||||
} else {
|
||||
finalCommand.push("0:v");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -253,6 +255,12 @@ export function addNode(_data, type) {
|
|||
});
|
||||
}
|
||||
|
||||
export function resetNodes() {
|
||||
nodes.set([]);
|
||||
addNode({ name: "punch.mp4" }, "input");
|
||||
addNode({ name: "out.mp4" }, "output");
|
||||
}
|
||||
|
||||
export function removeNode(id) {
|
||||
nodes.update((_nodes) => {
|
||||
const index = _nodes.findIndex((n) => n.id === id);
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { expect, test, describe } from "vitest";
|
||||
import { makeFilterArgs } from "../../src/stores.js";
|
||||
import { get } from "svelte/store";
|
||||
import { nodes, edges, addNode, resetNodes, makeFilterArgs, previewCommand } from "../../src/stores.js";
|
||||
|
||||
describe("Filter param builder", () => {
|
||||
test("No params", () => {
|
||||
|
@ -38,12 +39,34 @@ describe("Filter param builder", () => {
|
|||
name: "filter",
|
||||
params: [
|
||||
{ name: "param1", value: 1, default: 1 }, // should be ignored
|
||||
{ name: "param2", value: "", }, // should be ignored
|
||||
{ name: "param2", value: "" }, // should be ignored
|
||||
{ name: "param3", value: 1, default: 2 },
|
||||
{ name: "param4", value: 2},
|
||||
{ name: "param5", value: "p5"},
|
||||
{ name: "param4", value: 2 },
|
||||
{ name: "param5", value: "p5" },
|
||||
],
|
||||
});
|
||||
expect(results).toBe("filter=param3=1:param4=2:param5=p5");
|
||||
});
|
||||
});
|
||||
|
||||
describe("Command builder", () => {
|
||||
test("Defaults", () => {
|
||||
expect(get(previewCommand)).toBe("ffmpeg -i punch.mp4 out.mp4");
|
||||
});
|
||||
|
||||
test("Simple video filter", () => {
|
||||
resetNodes();
|
||||
addNode({ name: "filter", type: "V->V" }, "filter");
|
||||
expect(get(previewCommand)).toBe(
|
||||
`ffmpeg -i punch.mp4 -filter_complex "[0:v]filter[vid_out]" -map 0:a -map "[vid_out]" out.mp4`
|
||||
);
|
||||
});
|
||||
|
||||
test("Simple audio filter", () => {
|
||||
resetNodes();
|
||||
addNode({ name: "filter", type: "A->A" }, "filter");
|
||||
expect(get(previewCommand)).toBe(
|
||||
`ffmpeg -i punch.mp4 -filter_complex "[0:a]filter[aud_out]" -map "[aud_out]" -map 0:v out.mp4`
|
||||
);
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue