미디어 서버에 2개의 방송만 송출되어도 CPU 사용률이 급증하고,
CPU 사용률이 급증함에 따라 CPU 자원을 늦게 할당받는 인코딩 및 트랜스코딩 작업의 속도가 굉장히 느려지는 것을 확인하였음


목적: 인코딩 처리 및 CPU 사용률 확인 테스트 조건: 2개의 환경에서 30분씩 특이사항: 1개의 환경(Window)에서는 유튜브를 틀어놓을 예정
if (cluster.isPrimary) {
for (let index = 1; index < os.availableParallelism(); index++) {
cluster.fork();
}
} else {
const server = net.createServer((socket) => {
console.log('running pid is: ', process.pid);
const rtmpStream = new RTMPStream(socket);
rtmpStream.run();
});
const PORT = Number(process.env.PORT) || 1935;
server.listen(PORT, () => {
console.log(`Media server running on port ${PORT}`);
});
}
//ffmpeg.ts
const defaultOutputOptions = [
'-map 0:v',
'-map 0:a',
'-hls_time 2',
'-hls_list_size 3',
'-hls_segment_type fmp4',
'-hls_flags split_by_time+independent_segments+omit_endlist',
'-preset ultrafast',
'-threads 2', // << Threads
];

3개의 프로세스가 실행되고 서로 다른 프로세스로 할당되는 것을 확인했음