konowebcodecs/tests/ffmpeg.test.js

56 lines
2.0 KiB
JavaScript

const { createWorker } = FFmpeg;
const worker = createWorker(OPTIONS);
before(async function cb() {
this.timeout(0);
await worker.load();
});
describe('transcode()', () => {
describe('should transcode different format', () => {
['flame.avi'].forEach((name) => (
it(`transcode ${name}`, async () => {
await worker.write(name, `${BASE_URL}/${name}`);
await worker.transcode(name, 'output.mp4');
const { data } = await worker.read('output.mp4');
expect(data.length).to.be(FLAME_MP4_LENGTH);
}).timeout(TIMEOUT)
));
});
});
describe('run()', () => {
describe('should run a command with quoted parameters at start no spaces', () => {
['flame.avi'].forEach((name) => (
it(`run ${name}`, async () => {
await worker.write(name, `${BASE_URL}/${name}`);
await worker.run(`-y -i ${name} -metadata 'title="test"' output.mp4`);
const { data } = await worker.read('output.mp4');
expect(data.length).to.be(META_FLAME_MP4_LENGTH_NO_SPACE);
}).timeout(TIMEOUT)
));
});
describe('should run a command with quoted parameters at start and a space in between', () => {
['flame.avi'].forEach((name) => (
it(`run ${name}`, async () => {
await worker.write(name, `${BASE_URL}/${name}`);
await worker.run(`-y -i ${name} -metadata 'title="my title"' output.mp4`);
const { data } = await worker.read('output.mp4');
expect(data.length).to.be(META_FLAME_MP4_LENGTH);
}).timeout(TIMEOUT)
));
});
describe('should run a command with name quoted parameters and a space in between', () => {
['flame.avi'].forEach((name) => (
it(`run ${name}`, async () => {
await worker.write(name, `${BASE_URL}/${name}`);
await worker.run(`-y -i ${name} -metadata title="my title" output.mp4`);
const { data } = await worker.read('output.mp4');
expect(data.length).to.be(META_FLAME_MP4_LENGTH);
}).timeout(TIMEOUT)
));
});
});