취미2017. 3. 6. 03:02

간만에 포스팅 이다!! 일단 내가 안 까먹으려고 포스팅~~

(어느정도 컴퓨터의 기본지식은 있어야 포스팅을 쉽게 이해 할 수 있다)


http://link.twitch.tv/guidekr

스트리밍 프로그램 기본 설정은 이걸 참고하세요

(트위치 가이드)



본 글을 2017년 3월 기준

OBS Studio 17.0.2 64bit 

(classic 버전은 테스트 못해봄)

nginx 1.10.1 windows ver

작성 되었습니다



요즘 1인방송 및 인터넷방송을 하시는분들이 많다


저 또한 취미로 게임방송을 해보고 있다 


아시는분들 알겠지만 방송은 한사람이 하고 시청자는 여러명이기에 시청할 수 있는 플랫폼은 여러가지가 있다


이런 시청자의 플랫폼을 만족 시키기 위해서는 동시송출이라고 생각 하여 방법을 알아보았다


먼저 메이저급 방송하시는분들은 대부분 투컴으로 방송을 하고 계실거다


컴퓨터 하나는 게임을 직접 해야 하는 컴퓨터 이고 또하나 컴퓨터는 방송 송출용으로 사용을 한다


원컴으로는 방송 하는데 사양이 부족 하기 때문이다


나 역시 원컴이지만 투컴 성향(?)으로 방송을 한다



콘솔(PS4)으로 게임을 플레이 하고 컴퓨터는 송출용으로만 사용하고 있다 (컴퓨터 게임은 저사양만 가능 ㅠㅠ)




동시 송출용으로 사용되는 컴퓨터 사양은


OS : WINDOWS 10 64Bit

CPU : i5-3550 (3세대 아이비브릿지)

RAM : 12GB

VGA : Nvidia GTX 770 

Capture Board : SuperCast X6 HDMI


사양은 높을수록 좋다 하지만 내 사양은 횟수로만 5년전 맞춘 사양 (2017년 기준, 그래픽카드만 나중에 중고로 구입)



위 사양이 부족 할수 있지만 

방송 인코딩에 CPU 말고 두개(?)의 그래픽카드를

Intel QuickSync(CPU 내장) + Nvenc (Nvidia 외장) 이용하여 가능한 것이다



트위치 : 1280x720, 60fps, 비트레이트 4,000

유튜브 : 1280x720, 60fps, 비트레이트 4,000

카카오TV : 1280x720, 60fps, 비트레이트 4,000

녹화 : 1920x1080, 60fps, 비트레이트 12,000



방송은 위 스펙대로 진행 하고 있다

실제로 방송 해보면 알겠지만

본인 컴퓨터 사양에 따라 60프레임 기준

720p + 60f + 4k 스펙이면 트래픽이 약 4~500kb/s가 필요 하다

그러니 동시송출에 필요한 총 트래픽은

약 1.2~6 MB/s 정도이다

(단, 사용하는 회선이 얼마나 손실없이 트래픽을 감당해주는게 관건 라우터(공유기) 등등)



예를 들어 비트레이트 이용범위 (60 fps기준)

720p - 2,500 ~ 4,000

1080p - 6,000 ~ 8,000

(메이저급분들이 이렇게 사용하시더라...)


2017년 4월 1일 추가사항


언제부터인지 모르겠지만

트위치 공식 가이드에

추천 비트레이드 값이 수정되었다


기존 3500K -> 3000~6000K

참고


https://help.twitch.tv/customer/portal/articles/1253460-broadcast-requirements#BroadcastRequirements


https://stream.twitch.tv/




간단하게 설명 동시 송출 원리는 nginx rtmp 스트링서버를 이용하여 OBS베이스 방송

(xsplit으로는 더욱 간단한거 같지만 취미로 방송하고(유료) 오픈소스가 좋으니 나는 OBS를 이용)


출력모드: 고급

방송 실제 스트리밍은 인코더 QuickSync 이용 

(QuickSync 탭이 안나올시 BIOS 셋업에서 활성화 시켜야함 

요즘꺼는 왠만해서 다 지원)

출력 배율과, 비트레이트는 본인의 사양대로


녹화는 

NVENC (주 그래픽카드)

출력 배율 및 비트레이트는 본인의 사양대로

(유튜브 업로드용 및 소장용이라 어느정도 높게 설정)


FPS 값 : 60fps

(이값을 포기 못한다...)


Nginx 다운로드

https://github.com/illuspas/nginx-rtmp-win32

오른쪽 녹색부분

Clone or download -> Download ZIP 

클릭하여 다운로드


트위치 스트림키 확인

https://www.twitch.tv/본인아이디/dashboard/streamkey

확인 가능


유튜브 로그인후

크리에이터 스튜디오 -> 실시간 스트리밍

유튜브 스트림키 확인


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
worker_processes  1;
 
#error_log  logs/error.log debug;
 
events {
    worker_connections  1024;
}
 
rtmp {
    server {
        listen 1935;
 
        application live {
            live on;
        }
        
        application hls {
            live on;
            hls on;  
            hls_path temp/hls;  
            hls_fragment 8s;  
        }
    }
}
cs

다운받은 nginx파일을 적당한곳에 압축을 풀고

하위 conf 폴더에 nginx.conf 설정파일을 열어본다


윈도우 메모장으로도 가능 하지만 

가급적 에디터 프로그램을 사용한다

Notepad++: http://notepad-plus-plus.org/

AcroEditor: http://www.acrosoft.pe.kr/board/download

대표적인 무료 에디터 프로그램


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
worker_processes  1;
 
#error_log  logs/error.log debug;
 
events {
    worker_connections  1024;
}
 
rtmp {
    server {
        listen 1935;
 
        application live {
            live on;
            record off;
 
                #본인의 트위치 스트리밍키 교체
                push rtmp://live-sel.twitch.tv/app/live_12345_abcdefg1234;
                #본인의 유튜브 스트리밍키 교체
                push rtmp://a.rtmp.youtube.com/live2/abcdefg1234;
 
 
        }
        
        application hls {
            live on;
            hls on;  
            hls_path temp/hls;  
            hls_fragment 8s;  
        }
    }
}
cs

live on; 밑에 트위치와 유튜브 스트리밍키를 추가 시킨다

abcdefg1234

live_12345_abcdefg1234

해당부분에 본인 스트리밍키 추가



        record off;

push rtmp://a.rtmp.youtube.com/live2/본인스트리밍키;

                push rtmp://live-sel.twitch.tv/app/본인스트리밍키;


nginx_shakii_conf.7z

요청하시는분들이 있어서 올려봅니다

압축 푸셔서 파일명 수정 하시고

nginx_shakii.conf -> nginx.conf

설정파일에 스트리밍키만 바꿔서 적용하세요


가장 위 두번째줄처럼

글 앞에 ' # ' (샾?)

이와 같이 주석처리를 안해주면 에러 로그가 엄청 나게 쌓인다

뭔가 문제가 발생할때 앞에 "#"을 제거 하여 에러를 확인 할때 이용하자

#error_log  logs/error.log debug;



nginx파일을 그냥 실행 시켜도 되지만

보다 안전하고 쉽게 하기 위해 

메모장을 이용하여 서버 시작파일과 정지파일의  만든다


파일명은 원하는대로 확장자는 cmd or bat으로 하면 된다


위와 같이 경로(본인의 설치경로)를 다 안넣고

start nginx

nginx -s quit

만 넣어도 된다

잘 모르겠으면 그냥 탐색기에서 실행 하기!


만든 스크립트를 실행 하면 위와 같이 나온다


혹시 모르니 작업관리자를 열어 프로그램이 제대로 실행 되었는지 확인도 해본다

nginx.exe(32비트) 프로세스가 2개 떠 있으면 된다


보통 실행 했는데 에러 나는경우가

conf/nginx.conf 파일을 잘못된 수정이거나

실행하고 방송후에 끄고 nginx는 정지를 안해주고 

나중에 nginx를 다시 실행 하려고 할때 에러가 난다

logs 폴더에 nginx.pid 가 남아 있으면 에러가 난다고 보면 된다

nginx가 실행되면 pid파일을 생성하는데

정상적으로 nginx를 정지했다면 pid파일은 없어진다

그냥 다시 실행 하면 pid 파일 갱신 해준다

(pid파일은 리눅스 개념 프로세스인데 여기서 중요한게 아니니 패슈~)


(WIN+R) cmd창을 열어 ipconfig 명령어로 본인 컴퓨터를 ip를 알아본다



obs를 실행 하여 방송 탭

방송 형식 : 사용자 임의 방송서버 

URL : rtmp://192.168.xxx.xxx/live (각자 컴퓨터마다 ip는 다를것이다)

스트림 키 testtv 

(스트림키는 본인이 하고 싶은대로)

적용후에 OBS를 먼저 방송시작을 한다



그리고 팟플레이어를 실행후 

ctrl + U (주소 열기) 를 누른후 방송 주소를 넣어준다

rtmp://192.168.xxx.xxx/live/testtv (본인 ip)


단,

본인 ip, 자신의 ip

localhost or 127.0.0.1

도 본인ip가 맞다

하지만 실제 본인 ip를 직접 넣어줘야 제대로 돌아 가더라... 왜 이런지는...


팟플레이어 인코더 역시 QuickSync 인코더를 이용 하였다


적용이 잘 되었다면 팟플레이어 미리보기 하여도 영상이 나올것이다

이후 팟플레이어에서 방송시작을 하면된다

OBS와 팟플레이어의 소리가 겹칠것이다 팟플레이어 에서 간단하게 음소거!


모든 설정이 제대로 작동 한다면 위와 같이 동시송출이 될것이다


방송 통합 자막은

http://www.js-almighty.com

위 사이트에 사용법이 자세히 나와 있으니 참고 하시길..









위에도 말했다 시피 

나는 방송을 콘솔(PS4)로만 하고

컴퓨터는 송출용으로만 사용하기에

위 사양으로도 동시송출이 가능한것이다


실제 동시송출 했을때 모니터링 해본것이다


   

CPU 사용율은 약 40~50%

네트워크는 1.3~1.7 MB/s (약12Mbps)

일반적으로 사용하는 100메가 100Mbps (초당 12.5 MB/s)


방송 스트리밍을 담당하는 인코더

CPU(내장그래픽) QuickSync GPU Load 약 60~65%


녹화를 담당하는 인코더

외장 주그래픽카드 Nvenc (Nvidia)

녹화전에는 GPU Load 50% 이상 이였다가 

녹화를 진행 하면 15% 내려간다 

대신 Video Engine Load가 80%대 높게 올라간다 

(이건 나만 그런건지 모르겠다)


인코더는 두개를 서로 바꺼서 해보아도 된다

나는 스트림 방송보다

녹화가 좀더 중요하고 사양을 원하기에 (높은 해상도 및 고화질) 

주 그래픽카드로 사용하였고

이렇게 사용하니 방송 및 녹화도 끊김없이 사용 가능하기에 이용하였다.



PS : 

동시송출을 알아보다가 이것저것 테스트 해보았지만 

OBS 설정, 컴퓨터의 사양마다 다르기 때문에 여러 증상이 나타날수도 있다

또한 경험상 트위치랑 카카오tv(다음팟[그립다..])은 모르겠지만 

유튜브는 nginx를 이용하여 동시송출시 버퍼링(?) 좀더 발생하는거 같았다





참고

https://obsproject.com/forum/resources/how-to-set-up-your-own-private-rtmp-server-using-nginx.50/

http://pd-retro-tv.tistory.com/117

http://potsu.net/index.php?document_srl=8116532&mid=irukan

http://itcm.co.kr/g_board/2175942


Posted by 샤키