Is there a limit on number of demuxers?
Closed this issue · 1 comments
antoineMoPa commented
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
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);
});
package.json:
{
"name": "gstreamer-test",
"version": "0.0.1",
"description": "me testing gstreamer and parcel",
"main": "index.ts",
"dependencies": {
"babel": "^6.23.0",
"babel-jest": "^29.5.0",
"beamcoder": "^0.7.1",
"chokidar": "^3.5.3",
"jest": "^29.5.0",
"parcel": "^2.8.3",
"parcel-bundler": "^1.12.5"
},
"devDependencies": {},
"scripts": {
"test": "jest",
"check": "tsc --noEmit"
},
"author": "",
"license": "LGPL-3.0-or-later"
}
.babelrc
{
"presets": ["@babel/preset-env"]
}
to download a test video:
wget https://test-videos.co.uk/vids/bigbuckbunny/mp4/h264/360/Big_Buck_Bunny_360_10s_30MB.mp4
To run:
npm install;
npm run test;
Note that it hangs after creating 4 demuxers, while it should create 10!
antoineMoPa commented
🤦 🤦 🤦
Ok, my bad, I had forgotten export UV_THREADPOOL_SIZE=32
.