I am using the following command for screen recording:
ffmpeg -rtbufsize 100M -f gdigrab -framerate 5 -probesize 10M -draw_mouse 1 -show_region 0 -i desktop -y -c:v libx264 -r 5 -tune zerolatency -g 75 -crf 35 -pix_fmt yuv420p -map 0 -segment_time 60 -f segment -segment_format mp4 -vf pad=ceil(iw/2)*2:ceil(ih/2)*2 C:\Users\tairc\AppData\Roaming\ScreenAgent\recordings\fdfe10c0-9bb2-47d4-bfc1-ebee8b1f6e18\1659869590658_%03d.mp4
This is the code where I spawn the FFmpeg command:
_spawnFfmpeg() {
let commandArgs = this._generateArgs();
this.ffmpegProcess = child_process.spawn(process.env.FFMPEG_PATH, commandArgs);
console.log("after spawn"); // A
this.ffmpegProcess.stderr.setEncoding('utf8');
this.ffmpegProcess.on('error', (err => {
return this.emit('error', err);
}));
this.ffmpegProcess.stderr.once('data', () => {
console.log("first data"); // B
return this.emit('start', `ffmpeg ${commandArgs.join(' ')}`);
});
this.ffmpegProcess.stderr.on('data', data => {
return this.emit('stderr', data);
});
}
I have a startup delay of ~8 seconds (delay between A to B).
Can anyone please assist with improving the command?