I have been trying beamcoder, but I keep running in a limit after creating 4 demuxers.
Is there some limit of 4 demuxers that can be created during a node script execution?
Minimal project to reproduce the issue
beamcoder.test.ts
import {describe, expect, it} from '@jest/globals';
import beamcoder from 'beamcoder';
import { createReadStream } from 'fs';
describe('beamcoder', () => {
it('loads multiple times', async function () {
for (let i = 0; i < 10; i++) {
console.log(`Creating demuxer #${i + 1}`);
const inputFile = './Big_Buck_Bunny_360_10s_30MB.mp4';
const readStream = createReadStream(inputFile);
const demuxerStream = beamcoder.demuxerStream({});
readStream.pipe(demuxerStream);
const demuxer = await demuxerStream.demuxer({});
console.log(`Creating decoder #${i + 1}`);
// we don't even need to create a decoder to reproduce the issue!
//const decoder = beamcoder.decoder({
// demuxer: demuxer,
// width: demuxer.streams[0].codecpar.width,
// height: demuxer.streams[0].codecpar.height,
// stream_index: 0,
// pix_fmt: demuxer.streams[0].codecpar.format,
// thread_count: 8,
//});
console.log(`Closing demuxer #${i + 1}`);
readStream.close();
demuxer.forceClose();
}
}, 100000);
});
Hi! First, thanks for this nice project!
I have been trying beamcoder, but I keep running in a limit after creating 4 demuxers. Is there some limit of 4 demuxers that can be created during a node script execution?
Minimal project to reproduce the issue
beamcoder.test.ts
package.json:
.babelrc
to download a test video:
To run:
Note that it hangs after creating 4 demuxers, while it should create 10!