@omnimedia/omnitool
Version:
open source video processing tools
50 lines • 1.69 kB
JavaScript
export function setupTranscodeTest(driver, source) {
const dimensions = { width: 1920, height: 1080 };
const canvas = document.createElement("canvas");
canvas.width = dimensions.width;
canvas.height = dimensions.height;
const ctx = canvas.getContext("2d");
async function run() {
const video = driver.decodeVideo({
source,
async onFrame(frame) {
const composed = await driver.composite([
{
id: 0,
kind: "image",
frame
},
{
id: 1,
kind: "text",
content: "omnitool",
style: {
fontSize: 50,
fill: "green"
}
}
]);
frame.close();
ctx?.drawImage(composed, 0, 0);
return composed;
}
});
const audio = driver.decodeAudio({ source });
const { readable, done } = driver.encode({
video: video.readable,
audio: audio.readable,
config: {
audio: { codec: "opus", bitrate: 128000 },
video: { codec: "vp9", bitrate: 1000000 }
}
});
const handle = await window.showSaveFilePicker();
const writable = await handle.createWritable();
await Promise.all([
readable.pipeTo(writable),
done
]);
}
return { canvas, run };
}
//# sourceMappingURL=transcode-test.js.map