이 글은 게임 스트리밍에 처음 도전하시는 분들이나 방송 설정에 어려움이 있으신 분들을 대상으로 작성합니다.
트게더에 작성하기 전 미리 정리해둔 글은 아래 링크에 있습니다.
https://luvery93.github.io/articles/2018-01/broadcast-setting-summary
================================================================================
방송에 사용되는 시스템 사양은 아래와 같습니다.
- CPU: [email protected] o.c
- RAM : 16G@3000 o.c
- 메인보드 : asus z170 progaming
- 그래픽카드 : geforce gtx 970
- 캡쳐보드 : elgato hd60 pro (new)
- 오디오인터페이스 : behringer umc202hd
- 마이크 : shure sm58
- 캠 : logitech c920
사용하게 될 프로그램 등은 다음과 같으니 키워드를 보시고 참고하시면 되겠습니다.
- OBS studio
- OBS VirtualCam
- nginx rtmp server windows
- nginxtool
- restream.io
- vociemeeter banana
- virtual audio cable
- nohboard
- potplayer
================================================================================
1. OBS ( https://obsproject.com/ko )
- OBS 사용법은 통합가이드를 보시면 보다 자세하게 사용법을 숙지하실 수 있습니다.
- 게임 구동 시 그래픽 카드 사용율이 높다면 캡쳐보드를 이용하시는 것이 바람직합니다.
- 다중 송출을 전제로 두고 설정하기 때문에 아래 사진은 nginx-rtmp 설정을 예시로 들고 있습니다.
- OBS VirtualCam은 OBS 장면을 가상 캡쳐 장치로 인식하도록 하는 플러그인으로 카카오tv-팟플레이어 방송 시 사용되빈다.
1) 장면 구성은 방송 송출시 화면을 미리 구성해두는 것으로 OBS 미리보기 화면을 보고 구성하시면 어렵지 않습니다.
2) 소스 목록에 추가되는 대표적인 요소는 BrowseSource, 윈도우 캡쳐, 비디오 캡쳐 장치 등이 있습니다.
3) 브라우저 소스로 추가된 알림창과 채팅창은 twip(http://twip.kr), afreehp(http://afreehp.kr) 에서 제공하는 서비스입니다.
4) 인코딩 설정, 오디오 및 비디오 설정도 아래와 같습니다.
5) OBS VirtualCam ( https://obsproject.com/forum/resources/obs-virtualcam.539/ ) 은 OBS 플러그인으로 타 프로그램에서 OBS 화면을 입력받을 수 있도록 합니다.
2. nginx-rtmp-win32 ( https://github.com/illuspas/nginx-rtmp-win32 ) & nginxtool ( https://luvery93.github.io/download/2018-01-23-broadcast-setting-summary/nginxtool.zip )
- nginx는 무설치 웹 서버 데몬 프로그램으로 여기서는 1935포트를 사용하는 rtmp 서버로 활용되었습니다.
- nginxtool은 nginx-rtmp-win32의 작동을 gui로 관리하는 툴입니다.
1) nginx-rtmp-win32와 nginxtool은 다운로드 한 뒤 nginxtool을 압축해제하여 nginx-rtmp-win32 폴더 아래 넣습니다.
worker_process1;
#error_loglogs/error.log debug;
events {
worker_connections 1024;
}
rtmp {
server {
listen 1935;
application live {
live on;
record off;
push rtmp://{rtmp server ip 주소}/stream명/stream key;
# push rtmp://a.rtmp.youtube.com/live2/{유튜브 스트림 키};
# push rtmp://live-sel.twitch.tv/app/{트위치 스트림 키};
}
application hls {
live on;
hls on;
hls_path temp/hls;
hls_fragments 8s;
}
}
}
2) nginxtool을 실행하여 nginx-rtmp 서버가 작동하는지 확인할 수 있습니다.
3. Voicemeeter Banana( https://www.vb-audio.com/Voicemeeter/banana.htm ) & Virtual Audio Cable( https://www.vb-audio.com/Cable/index.htm )
- Voicemeeter Banana와 Virtual Audio Cable은 각각 가상 오디오 믹서와 가상 오디오 녹음 장치입니다.
- 보통 오디오 인터페이스가 없는 시스템에서 사운드 믹싱과 분리를 구성할 때 사용하게 됩니다.
- 보다 자세한 설명은 https://luvery93.github.io/articles/2017-08/voicemeeter-banana-and-virtual-audio-cable-setting/ 을 참고해주세요.
1) Voicemeeter Banana와 Virtual Audio Cable을 설치한 뒤 기본 장치로 설정합니다.
2) Voicemeeter Banana를 현재 시스템에 맞게 설정합니다.
3) 음성 채팅을 사용하는 프로그램에서 출력 장치를 Virtual Audio Cable로 설정하면 메인 시스템사운드와 따로 관리합니다.
4. Restream.io ( https://restream.io/ )
- 방송 플랫폼에 따라 인코딩을 여러번 하는 문제는 nginx-rtmp 서버를 통해 해결할 수 있지만 송출 시 업로드 속도의 제한이나 nginx-rtmp 서버로 유튜브 송출 시 발생하는 버퍼링등을 해결하기 위해 다중 송출 대행 서비스를 이용합니다.
- restream 서버를 거치기 때문에 딜레이가 최대 수초 증가할 수 있으나 restream 서버로의 송출이 안전하다면 다중 송출이 안전하다고 생각할 수 있어서 편리합니다.
- restream 서버에 장애가 생길 경우 nginx-rtmp로 전환할 수 있어야 다중 송출에 문제가 발생하지 않습니다.
1) restream은 가이드에 따라 쉽게 송출 플랫폼을 추가할 수 있습니다.
5. potplayer( https://tv.kakao.com/guide/potplayer )
- 카카오TV에 송출하기 위해서는 카카오TV에서 rtmp를 공개하지 않는 이상 팟플레이어를 거쳐야합니다.
- OBS를 통해 인코딩 된 화면을 받아와 송출하거나 nginx-rtmp 를 통해 받아와 송출하거나 OBS VirtualCam으로 OBS화면을 송출하는 방법이 있습니다.
1) 팟플레이어 구동 시 CPU 점유율을 낮추는 설정을 합니다.
2) 송출할 소스를 받아옵니다. 제가 알기로는 PC화면을 받아오는데 총 3개의 방법이 있습니다.
3) 인코딩 설정 후 방송을 송출을 진행합니다.
이외에도 설정해야 되는 여러 부분이 많지만 이 정도 가이드 라인이면 다중 송출을 진행하는데 어려움은 없을 것으로 생각 됩니다.
긴 글 읽어주셔서 감사합니다.
댓글 3개 ▼