3. node.js로 node-media-server를 이용한 실시간 스트리밍 방송 서버 만들기 : node.js 스트리밍 서버 프로그램 개발
모바일 & 앱 2024. 7. 1. 19:49
반응형
1. node-media-server (nms) 모듈 설치 : npm install node-media-server
2. nms 기본 포트는 1935 사용
3. 앞서 nginx에서 설정했던 7999 포트로 클라이언트 웹브라우저에서 요청시 실시간 영상 제공
4. media파일 경로는 /node/stream/media
스트림키를 부여 받고 방송을 할 경우 저 media 폴더 하위에 스트림키 폴더가 생성되고 그 안에 ts, m3u8 파일 생성됨
5. 방송 송출자와 시청자의 시간차를 줄이기 위해 hls_time을 2로 설정함. 숫자가 낮을수록 차가 줄어들지만 부하발생
const NodeMediaServer = require('node-media-server');
const config = {
rtmp: {
port: 1935,
chunk_size: 60000,
gop_cache: false,
ping: 30,
ping_timeout: 60
},
http: {
port: 7999,
allow_origin: '*',
cors: {
enable: true,
origin: '*'
},
mediaroot: '/node/stream/media',
webroot: '/node/stream/www',
},
trans: {
ffmpeg: '/usr/local/bin/ffmpeg', // 여기에 올바른 ffmpeg 경로를 설정합니다.
tasks: [
{
app: 'live',
hls: true,
hlsFlags: '[hls_time=2:hls_list_size=3:hls_flags=delete_segments]',
hlsKeep: true, // 스트림 종료 후 hls 파일 삭제 방지
dash: true,
dashFlags: '[f=dash:window_size=3:extra_window_size=5]',
dashKeep: true // 스트림 종료 후 dash 파일 삭제 방지
}
]
},
logType: 3 // Debug 레벨 설정
};
const nms = new NodeMediaServer(config);
nms.run();
반응형