Showing posts with label 트위치. Show all posts
Showing posts with label 트위치. Show all posts

2015/07/19

[Korean] Sound Voltex Booth 녹화/방송방법

 이 포스팅은 협력자의 도움에 힘입어 작성된 내용이며, 그 분들의 도움/노고에 감사를 표합니다.

 이 포스팅에서는 Konami Digital Entertainment사의 Sound Voltex Booth의 녹화/방송에 관해 알아보겠습니다. 2015년 7월 19일 작성시점인 현재 최신작은 Gravity Wars이며, 1280x720 60Hz 해상도를 옆으로 세로로 화면을 표시하고 있습니다.도중에 기판이 바뀐 것 같긴 한데, 기판에 대한 정보를 접한 적이 없어서 부정확한 면이 있지만, 대체로 통용될 방법을 기술하도록 하겠습니다.

화면 신호자체가 RGB신호이므로 RGB 컬러 입력만을 언급하며, 컴포넌트로 변환된 신호의 캡쳐는 언급하지 않습니다.

1. 국내 SDVX 기계의 사양
- 제가 확인했을 II시절 당시, 기판의 화면출력은 D-SUB 1개만 있으며, 반드시 분배기를 쓸 수 밖에 없는 구성입니다. 최근 기판이 신형으로 바뀌었는지는 모르겠지만, 어찌되었든 분배기 사용 방향으로 설명합니다.
- 경우에 따라 출력이 DVI-I 일 경우도 있으며, 이 경우 디지털 신호로 출력되기에 디지털 분배기를 권장합니다.

 - 해상도 : 1280x720 60Hz
 - D-SUB 또는 DVI-I : 기계 모니터용
 - 3.5파이 스테레오 음성 : Y잭으로 분배 또는 앰프에 물리는 RCA케이블을 분배기를 통해 분배

 그림1. SDVX의 기판사진 (2014년 6월 18일 시점, 사진제공 tomoru)



2. 필요한 장비
 - 캡쳐장치 : Full HD DSUB/DVI/HDMI 중 어느 하나를 지원하는 모든 장비 사용가능
 - DVI-HDMI케이블 또는 DVI-to-HDMI젠더+HDMI케이블, 또는 DSUB케이블+DSUB-DVI젠더
 - 3.5-3.5 스테레오 케이블 또는 3.5-RCA 좌우음성 케이블
- D-SUB 분배기 또는 DVI/HDMI 분배기

3. 준비물

a. 캡쳐보드 : 1280x720 해상도를 지원하는 밑의 리스트에서 한 개 골라서 씁니다.
 - Avermedia Game Broadcaster HD C127 (아날로그, 디지털)
 - Micomsoft SC-500N1/DVI (아날로그, 디지털)
 - Micomsoft SC-512N1-L/DVI (아날로그, 디지털)
 - Skydigital SKYHD CaptureX HDMI (디지털 only)
 - Skydigital SKYHD Supercast X6 (디지털 only)
 - Avermedia Live Gamer Portable HD C875 (디지털 only, 휴대용)

 기본적으로 IIDX의 경우와 동일하지만, 반드시 분배기를 사용되는 점만 다릅니다. 분배기는 저렴한 HDMI분배기를 사용하거나 DVI-I 분배기 ATEN VS162를 값싸게 구해서 사용하는 방법도 좋습니다. 필자가 직접 캡쳐했을 당시에는 기판출력이 DSUB였기 때문에 C127을 사용하여 DSUB입력으로 성공하였습니다. 디지털일 경우, HDMI로 잡으면 되지만 검은색 여백이 발생하는 경우가 있는 것 같습니다. 아날로그로 잡으면 이런 문제는 나타나지 않지만, 디지털로 캡쳐하고자 한다면 여백으로 인한 강제 스케일링이 발생할 경우 감안하거나, 중간에 EDID/DDC 에뮬레이터를 도입하는 것도 한 방법입니다.



b. 필요한 장비/케이블
 - 디지털 : HDMI-HDMI 또는 DVI-DVI 케이블과 DVI-HDMI젠더
 - 아날로그 : DSUB-DSUB 케이블
 - 3.5파이 스테레오 음성 Y잭
 - 3.5-RCA 스테레오 음성케이블
 - EDID/DDC 정보가 내장 또는 신호를 패스쓰루 가능한  1:2 분배기

c. PC로 캡쳐할 경우 PC의 권장사양
 - CPU : i3-2100 또는 그에 준하는 AMD CPU
 - RAM : 2GB x 2
 - HDD : 용량무관 SATA HDD 1개, 가능하면 운영체제와 녹화공간을 물리적 별도 2개 HDD 권장
 - GPU : 필요없음

 HDD를 파티션이 아닌 별도 2개로 권장하는 이유는 OS에 의한 HDD에 작업이 걸릴 때, 녹화를 하게되면 간혹 녹화가 끊기는 현상이 발생할 수 있기 때문에 안정적으로 녹화하기 위해서는 녹화전용의 별도 HDD를 장착할 것을 권합니다.

d. 거치형 단독장비로 캡쳐할 경우
 최근 Skydigital사에서 장비 하나만으로 PC없이 방송할 수 있는 새 제품을 출시하였습니다. 이런 방식은 예전부터 존재하였지만, 프로용 장비에서만 가능하던 기능으로 17만원 정도의 투자로 간단한 사용방법과 관리이점의 장점이 있습니다. 자세한 스펙은 관련 포스팅에서 확인할 수 있으며, PC없이 아프리카, twitch, ustream, youtube로 사전에 설정된 세팅으로 버튼 하나만 눌러 방송시작 및 종료가 가능합니다.
 - 관리상 PC없이 간단한 버튼 하나만으로 쓰기에 굉장히 편리합니다.
 - 현재 다음측이 RTMP 수신주소를 공개해주지 않아 다음팟 방송은 불가능합니다. 아프리카는 최근 서비스를 일반에 공개하여 T3 제품 하나만으로도 PC없이 방송 가능합니다.
 - 환경상, 프로용 고급장비가 아닌 경우, 화면을 90도 회전 불가능합니다. 단순 녹화일 경우 나중에 편집하면 되지만 실시간 방송일 경우 시청측이 알아서 회전시켜야 합니다.

4. 케이블 연결 및 순서
 - DSUB 또는 DVI 출력을 분배기에 연결, 분배기에서 각각 모니터/캡쳐보드에 연결
 - 음성을 Y잭을 통해 분배하여 캡쳐보드 또는 PC 사운드입력에 연결
 - 캡쳐PC 또는 장비 전원 ON
 - SDVX 전원 ON
 - 녹화/방송


5. 캡쳐옵션

- 인터넷 회선을 적어도 VDSL이상급으로 준비, FTTH 적극권장

인코더 :  H.264 (Intel Quick Sync)로 권장
해상도 : 1280x720
크기조절방법 : Lanczos
Bitrate : 회선에 따라 2000~4000kbps
프레임수 : 60fps 또는 원본
화면 90도 회전 필수

그림 2. 데모화면 캡쳐 (Avermedia Game Broadcaster HD, DSUB 아날로그 입력)

 그림 3. [그림 2]를 90도 회전
6. 결과 및 문제점
 - 디지털 캡쳐일 경우, 바깥쪽에 검은색 여백이 생기는 경우가 있음.
 - DSUB 아날로그로 받을 시 문제없음
 - EDID 에뮬레이터 사용시 디지털 입력에도 강제 스케일링을 피할 수 있음
 - 캡쳐보드 입력신호 차이 : 아날로그 vs 디지털
큰 차이는 없지만 디지털은 무손실(엄밀히는 RGB888->YUV422로 색상 손실있음) 퍼펙트하게 1:1 pixel 대응 노이즈없이 캡쳐가능, 아날로그는 케이블거리 및 주변 전자파노이즈에 따른 손실 및 영상 가장자리 1~2픽셀 위치가 어긋나 잘리는 부분 있음.
 - 자세한 내용은 IIDX 관련 포스팅 참조


7. Special Thanks
 - (구) 까치산 오신 게임장 : 장소제공
 - KIEN : 작업협조
 - tomoru : 기판 사진제공

2015/07/04

[Korean] 스카이디지탈 슈퍼캐스트 T3 2.0 리뷰

 스카이디지탈에서 2015년 5월 새 하드웨어 인코딩 캡쳐장비를 출시하였습니다. 개인적으로 이 회사의 제품은 과거 많은 문제를 일으킨 적이 있어 좋아보이는 제품출시를 해도 거들떠도 안봤었지만 지인이 최근 이 제품을 구입하여 정보를 제공하여 주시는 수고를 해주셨고, 개인적으로도 이 제품에 흥미가 있어서 이번에 리뷰를 하고자 합니다. 직접 제품을 손에 쥐고 있지 않아서 무책임하지만 리뷰에 한계가 있음을 미리 양해드립니다. 귀찮은 부탁에도 마다않고 정보를 제공해주신 멀바귀님과 관련기술정보를 조언해주신 PRETTY MAZE님께 감사의 말씀을 드립니다.

2015.9 추가 : 구매를 하여 시간날 때 장시간 녹화/방송시 영상과 음성간의 싱크틀어짐정도, 프레임드랍여부, 프레임 앞뒤 뒤집힘 등의 좀 하드한 내구테스트를 진행하여 결과를 보고할 예정입니다.

 모양 및 구성품 등은 이 글에서 다루지 않고 오로지 스펙과 결과 데이터만 제시합니다.
이 제품의 특징으로는...

Input Resolution : 240p, 480i, 480p, 720p60, 1080i60, 1080p60
Recording Resolution : 480p30(소스가 240p/480i일 경우), 480p60, 720p60, 1080p30(1080p60소스일 경우)
Streaming Resolution : 480p30, 720p30, 720p60
Bitrate : Maximum 20Mbps
Container : TS, MP4
Hardware encoder : Sigma Design PL330
Codec : H.264 High Profile 4.0, AAC-LC 128~160kbps ABR
Color : BT.601 YUV 420, 16-235 level
Mode : PC-live streaming/recording  mode, Standalone recording mode, Standalone live streaming mode
Directshow capable : No (HW encording제품이므로 호환안됩니다)
Bypass output : HDMI, HDMI-HDMI bypass or automatically transcording component to HDMI

스펙시트에서 제공된 정보와 직접 확인된 정보를 토대로 작성하였습니다. 가장 큰 특징은 컴퓨터에 연결 없이 LAN 케이블만 꽂은 채로 사전에 미리 작성된 프로파일로 실시간 RTMP 방송이 가능하다는 점입니다. 이게 얼마나 중요한 것이냐면, 이 스펙에 수십만원 이상의 프로장비에서나 제공되는 수준의 기능을 20만원 미만에 제공한다는 사실입니다. 당장 이 기능을 찾으려면 60만원 상당의 Cerevo사의 Liveshell Pro나 160만원 상당의 Epiphan사의 VGADVI broadcaster, 100만원상당의 Matrox Monarch 제품을 찾아야 합니다. 언급한 3개 제품은 프로 업무용으로 사용되는 제품이며 1080p30 해상도까지 녹화/방송이 동시에 가능하지만, 스카이디지탈의 Ssupercast T3는 720p60으로 실시간 방송을 할 수 있습니다. 1080p 스트리밍이 지원하지 않아 개인적인 견해로는 조금 아쉽기는 하지만 이 가격에 이정도 기능이면 충분하다고 생각합니다.
 정작 스카이디지탈로서는 이 제품의 가장 큰 특징이라 생각되는 단독 방송기능을 크게 언급하고 있지 않다는 점이 개인적으로 의아합니다. 국내 개인 방송환경으로는 아프리카와 다음팟플레이어가 쥐고있기에 RTMP방송을 할 수 있을만한 곳이 없어서 그럴 것이라 추측이 되긴 하지만, 그 외 해외 서비스 ustream, twitch, youtube 또는 커스텀 streaming 서버측으로 송신이 가능한 점은 해외 사용자들에게는 폭발적인 반응을 얻을 수도 있는 기능입니다. 사실 아프리카나 다음팟도 방식은 RTMP를 사용합니다만, 개인에게는 스트림키를 공개하지 않아 전용 프로그램으로만 가능하기에 directshow호환 제품이 아니라면 프리뷰를 스크린캡쳐해서 할 수 밖에 없습니다만, 해외 서비스는 기본적으로 개인에게도 스트림키를 공개하기에 이 키값과 설정만 해두면 어느 상황에서건 방송이 가능하도록 되어있습니다. 일본이라면 이론적으로 PC 없이 niconico 생방송이 가능합니다. 물론 niconico 생방송의 특성상 해상도 제한이 아주 열악하기에 실질적으로 좋은 화질/음질로 하기는 힘들 것으로 보입니다. 반면 twitch나 ustream, youtube로 방송하기에는 천국이나 다름없습니다. 이 제품은 이 기능 하나만으로도 제값을 충분히 해냅니다.



Spec. Table
Supercast T3 : Skydigital Supercast T3
Capture U2.0 : Skydigital Capture U2.0
Live Gamer Portable : Avermedia Live Gamer Portable C985

Supercast T3Capture U2.0Live Gamer Portable
TypeStandalone
USB 2.0
Standalone
USB 2.0
Standalone
USB 2.0
Chroma Sampling YUV422 YUV422 YUV422
x64 Compatibility ○ ○ ○
Minimum Resolution
Chrominance
Component 240p 480i 480i
Maximum Resolution
Chrominance
Component 1080i 1080p60 1080p60
Minimum Resolution
RGB
HDMI 480p 480p 480p
Maximum Resolution
RGB
HDMI 1080p60 1080p60 1080p60
Maximum Resolution
Record
1080p30 1080p60 1080i
Composite ×
(component Y input)
× ×
S-video × × ×
Component ○ ○ ○
DSUB × × ×
DVI (HDMI) (HDMI) (HDMI)
HDMI ○ ○ ○
HDCP Strip × × ×
Audio channel support 2ch 2ch 2ch
RCA input ○ ○ ○
SPDIF input × × ×
HDMI audio input ○ ○ ○
Compression type HW HW SW/HW
Pass Through HDMI ○
Component □
○ ○
Transcording Component to HDMI × ×
Standalone RTMP
Live Streaming
480p30
720p30
× ×
Simultanious
Record/Streaming
Standalone ○
PC-mode ○
- -



Input resolution (NOT meaning RECORD)
Note that this result is not meaning acceptable entirely both RGB and Chroma color.

Supercast T3 Capture U2.0 Live Gamer Portable
240p/288p Transcoded as 480p30 Unknown
480i/576i Transcoded as 480p30

480p/576p


720p


1080i@60f/50f


1080p@24f Unknown Unknown Unknown
1080p@30f


1080p@60f/50f Recorded 1080p30
Recorded 1080p30
640x400@56Hz

640x480@60Hz Recognized as 480p60 Unknown
720x480@60Hz


800x600@60Hz Unknown
1024x768@60Hz Unknown
1280x720@60Hz


1280x768@60Hz Unknown
1280x1024@60Hz Unknown
1360x768@60Hz Recognized as 1080p30 Unknown
1440x900@60Hz Unknown
1680x1050@60Hz Unknown Unknown
1920x1080@60Hz Recorded 1080p30 Recorded 1080p30 


- 현재 레트로게임기 해상도에 해당하는 240p 입력가능 여부를 조사중입니다.
ex : FC, SFC, MD, PS1, SS 등
조사결과 : PS1 게임을 PS2상에서 구동하며 컴포넌트 또는 D단자를 쓰면 240p60출력으로 나오며(일부 게임 제외) Raystorm으로 테스트결과 캡쳐보드에서 잡아줘서 강제로 480p30 업스케일링 되어 모니터상에서 플레이하며 캡쳐 가능하였습니다. 내부적으로 480i와 동일하게 인식되었는지 업스케일링이 되었지만 30프레임으로 프레임이 반토막났습니다.

- 480i 부분을 노란색으로 표시해둔 것은 자동적으로 deinterlaced되어 480p30으로 바뀌게 되기 때문입니다. 예를들어 Playstation 2 480i component신호를 입력하면 자동 transcoding 되어 HDMI 출력이 되는데, 이 transcoding된 출력이 deinterlaced 처리가 되어 480p30으로 나옵니다. 녹화물도 물론 480p30이며, 방송결과물도 480p30으로 나옵니다. 480i를 자체적으로 bob 2x처리하여 60프레임으로 만들고자 하는 분들은 이 점을 참고하셔야 합니다.

- Component Y단자(휘도신호)를 통해 Composite신호를 받을 수는 있지만, 흑백으로 나옵니다.

- 컴퓨터 해상도 640x480 60Hz :  720x480 60Hz로 인식하여 녹화되었습니다.(예제 6) 양옆에 여백이 90px씩 생기고, 실해상도 540x480으로 약간 양옆으로 찌그러집니다. 반면 720p으로 녹화할 경우 양옆 여백 160px씩 생기며, 실해상도 960x540으로 4:3 비율이 맞게 나오기에 720p 녹화/방송을 권장합니다. 상당수의 아케이드 게임이 640x480을  사용합니다.
해당게임 : EZ2DJ/EZ2AC, PIU SD, 31kHz 게임류, KOF98UM, KOF2002UM

- 1360x768 60Hz : 강제로 1080p로 인식하여 녹화됩니다. 이 때문에 30프레임으로 녹화되며, 어찌됐든 인식이 가능하며,  Pop'n music, Jubeat, DBAC 해상도가 여기에 해당하므로 30프레임이지만 녹화/방송이 가능할 것으로 예상됩니다. 실제 가능여부는 직접 물려봐야 알 수 있습니다.

- Composite 입력이 가능하긴 하지만, 흑백신호로서만 캡쳐할 수 있습니다. 입력방법은 예제7처럼 composite를 장비의 component 입력의 Y단자(녹색)에 입력하면 됩니다.

- Playstation 2 Keyboardmania 3rd mix를 component 480i 입력시켰을 때, HDMI 출력으로 지켜봤을 때는 간혹 판정폰트가 사라지는 것을 볼 수 있었습니다. 이는 홀수 짝수 프레임 중 보통 홀수프레임을 잡다가 홀수프레임을 놓치고 짝수프레임을 잡게되어 생긴 현상인 것으로 보이며, 현 단계에서는 Playstation 2의 출력특성 때문인지 또는 T3의 특성인지는 판단하기 어렵습니다.

- 어지간한 프로장비에서도 불가능한 720p60 스트리밍이 가능 한 것이 확인되었습니다.
720p30이 한계였습니다. 잘못된 정보였습니다.
- 모자란 부분은 알아내는대로 업데이트할 예정입니다.


 현재 안정성 테스트, 바이패스의 입력지연 측정, 기타요소들을 측정할 기회가 없어서 자세히는 다루지 못하지만, 간략하게 얻은 정보로는 정말로 스카이디지탈의 캡쳐보드 제품이 맞나 의아할 정도로 상당히 괜찮게 나왔습니다.



Supercast T3는 OEM product??
 이 제품은 캡쳐보드계에서는 흔한, 같은제품이 여러 회사에서 모델명과 케이스만 다르게 출시된 제품인 것 같습니다. OEM형식으로 회사로고만 바꿔둔 채 각 회사가 번들소프트나 구성물 등을 차별화 등을 꾀한 것 같습니다. 그 예로 2015년 5월 동시기에 일본에서 출시된 REX-HDGCBOX2, 미국 Startech USB2HDCAPS 등의 제품이 있습니다. 기능 및 스펙이 완전히 똑같으며, 번들소프트 정도만 다른 것으로 추정되고 있습니다. 원 제조사를 추적해본 바, 중국본토 K-world라는 회사인 것으로 추정되며, 중국 업체에서 제조를 하면 고객사에서 상표만 붙여 판매하는 경우가 꽤 있어서 스카이디지탈사도 OEM식으로 물량을 받아다가 판매하는 식이 아닌가 생각됩니다. 펌웨어 호환여부는 확실치 않지만, 하드웨어 인코딩 장비에도 불구하고 소프트웨어가 서로 호환되는 점을 확인하였을 때, 완전히 같은 제품인 것으로 생각됩니다.




종합 평가
 개인적으로 정말 스카이디지탈 제품 맞나 싶습니다. 잘 나왔습니다. 이 가격에 720p30 단독방송이 가능한 건 지금까지 프로용 장비를 살 수 밖에 없었던 사실을 염두했을 때 혁명이나 다름없습니다. 국내에서는 빛을 발하지 못할지언정 해외서비스로는 굉장한 메리트가 있습니다. 현재 국내가 17만원선에 판매되고 있습니다. 1080p30 방송과 PC에 연결했을 시 PC해상도 녹화가능, 마이크단자만 추가되어 있었다면 컨슈머용으로는 이거만큼 좋은 제품은 없을 것이라 예상되지만 조금 아쉬워도 가격이 용서해줍니다.

 장비소유주의 코멘트로는 다 좋은데 녹화 버튼이 내구성이 낮은 것 같아 조심히 다뤄야한다고 코멘트가 있었습니다. 이 말대로 험하게 다루면 금방 고장날 것 같은 모습이라 살짝살짝 누르길 권합니다.


Example 1 : Splatoon by Nintendo WiiU

Source output : 1080p60 HDMI
Recognized resolution : 1080p30 (Maximum resolution/frame rate grabberable of this device)
Record setting : 1080p 18Mbps
Record mode : PC mode (connected to PC via USB 2.0)
Storage : PC HDD
Monitor : Bypassed HDMI
Connection : Wii U --- Supercast T3 --- Monitor (bypassed 1080p60)
                                                           --- PC USB (Transferred compressed-stream to HDD)
Color depth : BT.601 YUV 422 to 420 (converted during H.264 encoding)
Color Level : 16-235


Recorded file information

General
ID                             : 0 (0x0)
Complete name                  : Sample_Splatoon.m2ts
Format                         : MPEG-TS
File size                      : 437 MiB
Duration                       : 3mn 22s
Overall bit rate mode          : Variable
Overall bit rate               : 18.1 Mbps
Video
ID                             : 85 (0x55)
Menu ID                        : 1 (0x1)
Format                         : AVC
Format/Info                    : Advanced Video Codec
Format profile                 : High@L4.0
Format settings, CABAC         : No
Format settings, ReFrames      : 2 frames
Codec ID                       : 27
Duration                       : 3mn 22s
Width                          : 1 920 pixels
Height                         : 1 080 pixels
Display aspect ratio           : 16:9
Frame rate                     : 30.000 fps
Standard                       : NTSC
Color space                    : YUV
Chroma subsampling             : 4:2:0
Bit depth                      : 8 bits
Scan type                      : Progressive
Color primaries                : BT.601 NTSC
Transfer characteristics       : BT.601
Matrix coefficients            : BT.601
Audio
ID                             : 97 (0x61)
Menu ID                        : 1 (0x1)
Format                         : AAC
Format/Info                    : Advanced Audio Codec
Format version                 : Version 2
Format profile                 : LC
Muxing mode                    : ADTS
Codec ID                       : 15
Duration                       : 3mn 22s
Bit rate mode                  : Variable
Channel(s)                     : 2 channels
Channel positions              : Front: L R
Sampling rate                  : 48.0 KHz
Compression mode               : Lossy
Delay relative to video        : 14ms



Example 2  : MarioKart 8 by Nintendo WiiU

Source output : 1080p60 HDMI
Recognized resolution : 1080p30 (Maximum resolution/frame rate grabberable of this device)
Record setting : 1080p 18Mbps
Record mode : PC mode (connected to PC via USB 2.0)
Storage : PC HDD
Monitor : Bypassed HDMI
Connection : Wii U --- Supercast T3 --- Monitor (bypassed 1080p60)
                                                           --- PC USB (Transferred compressed-stream to HDD)
Color depth : BT.601 YUV 422 to 420 (converted during H.264 encoding)
Color Level : 16-235





General
ID                             : 0 (0x0)
Complete name                  : Sample_MarioKart8.m2ts
Format                         : MPEG-TS
File size                      : 1.94 GiB
Duration                       : 15mn 21s
Overall bit rate mode          : Variable
Overall bit rate               : 18.1 Mbps

Video
ID                             : 85 (0x55)
Menu ID                        : 1 (0x1)
Format                         : AVC
Format/Info                    : Advanced Video Codec
Format profile                 : High@L4.0
Format settings, CABAC         : No
Format settings, ReFrames      : 2 frames

Codec ID                       : 27
Duration                       : 15mn 21s
Width                          : 1 920 pixels
Height                         : 1 080 pixels

Display aspect ratio           : 16:9
Frame rate                     : 30.000 fps

Standard                       : NTSC
Color space                    : YUV
Chroma subsampling             : 4:2:0

Bit depth                      : 8 bits
Scan type                      : Progressive

Color primaries                : BT.601 NTSC
Transfer characteristics       : BT.601
Matrix coefficients            : BT.601
Audio
ID                             : 97 (0x61)
Menu ID                        : 1 (0x1)
Format                         : AAC
Format/Info                    : Advanced Audio Codec
Format version                 : Version 2
Format profile                 : LC
Muxing mode                    : ADTS
Codec ID                       : 15
Duration                       : 15mn 21s
Bit rate mode                  : Variable
Channel(s)                     : 2 channels

Channel positions              : Front: L R
Sampling rate                  : 48.0 KHz

Compression mode               : Lossy
Delay relative to video        : 3ms






Example 3 : Ar tornelico by Banpresto & Gust, Playstation 2

Source output : 480i Component
Recognized resolution : 480p30 (Automatically deinterlaced)
Record setting : 480p 8Mbps
Record mode : Standalone
Storage : SD card
Monitor : Transcoded HDMI output (Automatically realtime transcoded from component to HDMI)
Connection : Playstation 2 --- Supercast T3 --- Monitor (Transcoded/deinterlaced 480p)
Color depth : BT.601 YUV 422 to 420 (converted during H.264 encoding)
Color Level : 16-235



General
ID                             : 48879 (0xBEEF)
Complete name                  : HS000036.m2ts
Format                         : MPEG-TS
File size                      : 167 MiB
Duration                       : 3mn 46s
Overall bit rate mode          : Variable
Overall bit rate               : 6 207 Kbps
Video
ID                             : 68 (0x44)
Menu ID                        : 1 (0x1)
Format                         : AVC
Format/Info                    : Advanced Video Codec
Format profile                 : High@L4.0
Format settings, CABAC         : No
Format settings, ReFrames      : 2 frames
Codec ID                       : 27
Duration                       : 3mn 46s
Width                          : 720 pixels
Height                         : 480 pixels
Display aspect ratio           : 3:2
Frame rate                     : 30.000 fps
Standard                       : NTSC
Color space                    : YUV
Chroma subsampling             : 4:2:0
Bit depth                      : 8 bits
Scan type                      : Progressive
Color primaries                : BT.601 NTSC
Transfer characteristics       : BT.601
Matrix coefficients            : BT.601
Audio
ID                             : 69 (0x45)
Menu ID                        : 1 (0x1)
Format                         : AAC
Format/Info                    : Advanced Audio Codec
Format version                 : Version 2
Format profile                 : LC
Muxing mode                    : ADTS
Codec ID                       : 15
Duration                       : 3mn 46s
Bit rate mode                  : Variable
Channel(s)                     : 2 channels
Channel positions              : Front: L R
Sampling rate                  : 48.0 KHz
Compression mode               : Lossy


Example 4 : Splatoon by Nintendo WiiU

Source output : 1080p60 HDMI
Recognized resolution : 1080p30
Record setting : 1080p 20Mbps
Record mode : Standalone mode
Storage : SD card
Monitor : Bypassed HDMI
Connection : Wii U --- Supercast T3 --- Monitor (bypassed 1080p60)
Color depth : BT.601 YUV 422 to 420 (converted during H.264 encoding)
Color Level : 16-235







Example 5 : Raystorm by Taito, Play on Playstation 2

Source output : 240p60 Component
Recognized resolution : 480p30
Record setting : 480p 8Mbps
Record mode : PC mode
Storage : HDD
Monitor : Transcoded HDMI
Connection : Playstation 2 --- Supercast T3 --- Monitor (bypassed 480p60)
Color depth : BT.601 YUV 422 to 420 (converted during H.264 encoding)
Color Level : 16-235





Example 6 : Rally Raid by Twinkle Soft

Source output : 640x480 60Hz HDMI
Recognized resolution : 480p60
Record setting : 720p60 5Mbps
Record mode : Standalone mode
Storage : SD / HDD
Monitor : Bypassed HDMI
Connection : PC --- Supercast T3 --- Monitor (bypassed 720p60)
Color depth : BT.601 YUV 422 to 420 (converted during H.264 encoding)
Color Level : 16-235
Force-resized as 1280x720 60Hz, 960x720 (exclude horizon blank 160px left/right )

 
 
Example 7 : Taiko no Tatsujin by Namco
Test for composite input
Source output : 480i Composite Wii
Capture input : Wii 480i Composite output to Supercast T3 component Y input
Recognized resolution  : 480p30
Record setting : 480p60  8Mbps
Record mode : PC mode
Storage : HDD
Monitor : Transcoded to HDMI
Connection : PC --- Supercast T3 component Y input--- Monitor (480p30)
Color depth : BT.601 YUV 422 to 420 (converted during H.264 encoding)
Color Level : 16-235
 
 
 
Example 8 : Beatmania 6th MIX + CORE REMIX by Konami
Source output : 240p60 Component
Recognized resolution : 480p30
Record setting : 480p 5Mbps
Record mode : Standalone mode
Storage : SD Card
Monitor : Transcoded HDMI (480p60)
Connection : Playstation 2 --- Supercast T3 --- Monitor (bypassed 480p60)
Color depth : BT.601 YUV 422 to 420 (converted during H.264 encoding)
Color Level : 16-235

2014/07/24

[Korean] RTMP를 사용하는 실시간 방송

 국내에서 실시간 방송이 유행하기 시작한 건 afreeca와 다음 potplayer를 통해서 많은 사람들이 사용하기 시작하면서 붐이 일었습니다. 여기서는 이 서비스들이 무슨 기술을 사용하고 있으며, 현재 전용프로그램에 의한 국내서비스 외 다른 서비스의 방송방법도 알아보겠습니다.

이런 분들에게는 추천합니다.
- 영어는 잘 안될지언정 어쨌든 좁은 한국만을 떠나 전세계로 컨텐츠를 널리 알리고 싶다.
- LoL이나 Dota 2 등 세계적으로 인기를 끄는 게임을 Twitch나 Youtube로 방송하고 싶다.

--2015년 7월 7일 추가
Afreeca TV가 2015년 5월부터 RTMP 직접 송출 서비스를 실시하였습니다. 이 때문에 OS 및 전용프로그램 이외로도 방송이 가능하게 되었습니다.


1. RTMP를 사용하는 서비스들
 위키피디아를 검색하면 자세히 설명이 나옵니다만, 간단히 줄여 실시간으로 영상/음성을 네트워크를 통해 불특정 다수에게 스트리밍 데이터를 보내는 기술의 규격입니다. 규격으로  RTMP(Real Time Messaging Protocal)가 있으며, 알려진 플랫폼과 기술들을 나열하면..

2018년 2월 25일 기준
Kakao.tv Afreeca Youtube Twitch.tv nico生
Feedback Chat Chat Comment
3rd-party
Web-chat
3rd-party
Screen-cmt
3rd-party
Protocol RTMP RTMP RTMP RTMP RTMP
Program Custom App Custom App
Web-based
Web-based
3rd-party
Web-based
3rd-party
Custom App
Web-based
3rd-party
Maximum
frame rate
(fps)
60 60 60 60 120
Maximum
resolution
1920x1080 1280x720 1920x1080 1920x1080 512x384
640x360
Maximum bandwidth
(kbps)
8000 2000
(3000*)
480p <2000
720p <4000
1080p <6000
No-limit
<5000
recommend
2h~19h 480
19h~2h 384
Video
Codec
H.264 H.264 WebM
H.264
H.264 H.264
Audio
Codec
AAC-LC AAC-LC Ogg Vorbis
MP3
HE-AAC
AAC-LC AAC-LC
HE-AAC v2**
3rdparty app
Availability
Yes
(Stream key)
Yes
(Stream key)
Yes
(Stream key)
Yes
(Stream key)
Yes
(Stream key)

* 공식툴 기준 일반 2000kbps, 베스트BJ 3000k 또는 유료쿠폰 필요
** 공식툴에서 HE-AAC 기본지원이며 외부툴로도 사용가능. (48kbps~72kbps만)

용어설명
AAC-LC : 통칭 AAC, MP3에서 단점을 보완하여 발전된 코덱. 128 ~ 512kbps 고음질 용도
HE-AAC v1 : AAC-LC + SBR (일반적으로 72kbps ~ 96kbps 용도)
HE-AAC v2 : AAC-LC + SBR + PS (일반적으로 32kbps~72kbps 용도)
HE-AAC v1/v2에서 고음질을 선택시 PS 및 SBR이 자동비활성화되어 AAC-LC와 동일

국내에서 많이 접할 수 있는 것 위주로 나열하였습니다.

다음카카오에서 서비스하는 카카오tv는 국내에 서버를 두며 1080p/60fps 방송할 수 있습니다. 현재는 RTMP 스트림키가 공개되어 외부툴도 사용 가능합니다.


아프리카는 나우콤에서 운영하는 서비스이며, 개인도 별풍선, 광고협찬 등을 통해 수익을 올릴 수 있으며, 기타 자잘한 컨텐츠제작자를 위한 환경이 팟플레이어보다 뛰어납니다. 하지만, 화질에 관해서는 일본의 niconico 生을 제외하면 최악의 환경이며, 고화질의 경우 베스트BJ가 되지 않는 한 매우 비싼 값의 쿠폰을 구입하여야 사용할 수 있습니다.
 2015년 5월부터 RTMP 직접 송출 서비스를 시작하여 타 OS, 타 소프트웨어로도 방송이 가능하게 되었습니다.

구글의 Youtube는 동영상 서비스로 전세계적으로 유명하며, 유료 채널구독,  최근에는 기업 및 유명 컨텐츠 제작자가 아닌 일반유저에게도 생방송서비스를 개방하였습니다. 초기부터 컨텐츠제작자의 채널에 광고수입을 올릴 수 있는 시스템을 구축하여, 전세계 수많은 시청자들에게 광고수입과 더불어 고화질의 동영상과 생방송 서비스를 가능케 해줍니다. 위의 두 국내서비스와는 다르게 생방송 중 채팅서비스가 내장되어 있지 않기에 동영상에 남기는 코멘트 외에는 twitter, IRC 등 외부 툴을 활용하는 방법밖에 없어 시청자와 피드백을 하기에는 약간 불편한 것이 사실입니다. 채팅 옵션이 기본적으로 활성화 되어있으며, 비활성화도 가능합니다. (참고링크) 해상도제한은 화질별로 다르며 (4K도 가능) 전세계의 시청자들은 국내처럼 거의 모든 인터넷환경이 100Mbps급으로 좋은 것은 아니므로 비트레이트를 2~3Mbps 수준으로 조절할 필요가 있습니다. 국내에서는 KT기준 최대 5000k 약간 넘게 송출이 가능함을 확인했었습니다. 2014년 후반 최근에는 60fps 업로드 및 실시간 스트리밍이 가능해졌습니다.

Twitch.tv는 youtube와 마찬가지로 전세계적으로 유명한 실시간 방송서비스 중 하나이며, 각종 기업들이 자사 홍보, 이벤트 등에 적극 활용하는 서비스입니다. 커다란 게임이벤트의 경우 Twitch.tv에서 거의 볼 수 있을만큼 Twitch의 경우 게임 컨텐츠에 특화된 서비스입니다. 두 서비스 다 비슷비슷하며, 생방송면으로는 youtube와 거의 동일한 반면 웹기반 채널에서 채팅기능이 포함되어 있어 youtube에 비해 시청자들의 상호작용/반응 등을 보다 쉽게 확인이 가능합니다. 해상도제한은 없는 것 같아 보이지만 확인된 바로는 대역폭이 허용하는 한 1080p60도 가능하며, youtube와 마찬가지로 실제로는 720p 30f/60f 수준에 대역폭을 2~3Mbps 수준으로 조절하는 것이 좋습니다. 국내에서는 youtube와 마찬가지로 KT기준 최대 5000k 약간 넘게 송출이 가능함을 확인했었습니다.

niconico 생방송(ニコニコ生配信)은 일본에서 서비스하는 동영상 서비스 회사의 생방송 서비스이며, 유료회원만 가능합니다. 일본 특유의 문화에 맞게 시청자들의 피드백에 가장 특화된 것이 특징이며, 유저들이 작성한 수많은 각종 편리한 최적화/외부툴 등이 있습니다. 그 중에는 시청자의 코멘트를 생방송중인 사람에게  자동음성으로 읽어주는 플러그인은 다른 서비스 등에서는 여태까지 찾아볼 수 없는 기능이어서 눈에 띕니다. 단점으로는, 여타 서비스에 비해 매우 열악/최악의 해상도만 사용가능합니다. 국내에서 이런 해상도로 유료 서비스를 하려고 하면, 얼마가지 않아 유저들이 다 떠나서 망할 것이 예상됩니다만, 풍부한 휴대폰 인프라환경 및 일본 특유의 환경과 정서에 맞물려 유료임에도 불구하고 이런 환경을 조금의(?) 불만이 있어도 어쩔 수  없이 사용하는 것이 개인적으로는 흥미롭습니다. 수익원으로는 일본내 기업들의 수많은 컨텐츠와 상호제휴를 통한 무궁무진한 수익창출성,  유료회원 등을 통해 유지하는 듯 합니다.


몇 가지를 알아봤습니다만, 국내 2개 서비스를 제외한 나머지 4개의 서비스에 대해 방송하는
방법을 알아보도록 하겠습니다.


2. 전용 웹페이지기반으로 방송하기

기존 PC에 아무것도 설치할 필요없이, 사용하던 웹캠이나 캡쳐장치 또는 화면을 보는 스크린을 쉽게 캡쳐하여 바로 방송할 수 있게끔 각 서비스사별로 채널당 스튜디오 웹페이지를 제공하고 있습니다. 실제로 이 방법을 통해 주변 지인이 손쉽게 스크린캡쳐/DirectX 캡쳐기능을 사용하여 간단한 게임방송을 진행하는 모습을 볼 수 있었습니다.

시작하는 방법은 처음에 어딨는지 찾기 힘들어서 그렇지, 방법 자체는 밑의 스크린샷을 보는대로 따라가기만 하면 됩니다.

1. 우측상단의 로그인 아이콘을 클릭하면 "제작자 스튜디오" 화면으로 들어갈 수 있는 아이콘클릭
2. 좌측메뉴에서 동영상 관리자의  실시간 이벤트 -- 새 라이브 이벤트 클릭
3. 기본정보 입력과  고급설정 입력 (해상도 설정, 대역폭 설정 등)
4. 일정 만들기 후 카메라 입력 설정(directx, 스크린캡쳐, 웹캠, 캡쳐장치 등)
5. 라이브 이벤트 시작 및 링크주소 배포






3. 범용 전문프로그램으로 방송하기

수 많은 범용 툴이 있는데, 하나하나 나열하자면 끝이 없기에, 유명한 몇 개만 이 자리에서 소개하고자 합니다.

오픈소스툴인 Open Broadcaster Sosftware, Adobe사에서 제공하는 무료툴 Flash Media Live Encoder, 유료툴에서 유명하고 캡쳐보드로 유명한 Avermedia사와 제휴를 맺어 C985제품의 하드웨어 인코딩을 지원하는 XSplit, Dwango사의 niconico생방송만을 위해 XSplit기반에서 커스텀화된 무료툴 Niconico Live Encoder, 전 세계적으로 거의 모든 동영상 제공기기들은 이걸 사용하고 있다고 과언이 아닐 정도로 쓰이는 FFmpeg, 하나같이 강력하며 편하게(FFmpeg제외) 쓸 수 있는 툴입니다. 각 특징들을 밑의 표로 정리하였으니 참조바랍니다.


A. 상용/무료 범용 전문툴 종류
OBS FMLE XSplit NLE FFmpeg
Language Multi-L Multi-L Multi-L 日本語 English
Interface GUI  GUI GUI GUI Command
Price Free Free Non-free Free Free
Maximum
frame rate
60 60 60 No-limit No-limit
Maximum bandwidth No-limit No-limit No-limit No-limit No-limit
Well-known
Video Codec
H.264 MPEG4
H.264
WebM
H.264
H.264 H.264
Well-known
Audio Codec
MP3
AAC-LC
MP3
AAC-LC
HE-AAC
AAC-LC
HE-AAC
AAC-LC AAC-LC
HE-AAC
Audio-only
Streaming
◯ ◯ X X ◯
Image
Display
◯ × ◯ ◯ ◯
Text
Display
◯ × ◯ ◯ ◯
Media File
Streaming
× × ◯ ◯ ◯
Preset ◯ ◯ ◯ ◯ ◯

**OBS만으로 niconico live는 방송이 불가능하며, 다른 툴과 조합해서 사용해야 합니다.
그리고 OBS의 AAC코덱(libfaac)의 버그로 96kbps이하는 사용이 불가능하며, 이는 극히 제한적인 비트레이트만 사용가능한 nico生에서는 부적합합니다.


B. Open Broadcaster Software를 사용한 RTMP기반 생방송

무료툴중에 사용하기 비교적 편하고 범용적으로 사용가능한 OBS로 방송하는 법을 알아보겠습니다. 우선 방송하는 모습을 보자면 밑의 사진과 같은 느낌으로 여러 소스를 활용해서 한 화면에 동시에 표시시키거나 크로마키 또는 이미지 등을 활용한 벽지디자인 기법까지 사용하여 송출도 가능합니다.

밑의 스크린샷의 직사각형의 검은 화면 전체에 포함된 3개 소스가 한 장면으로서 송출됩니다.



설정에서 각 서비스별로 서버설정, 스트림키, 인토딩설정, 장면설정 등을 프로파일로 미리 저장을 하면 각기 다른 서비스를 쓰더라도 언제든지 편리하게 스위칭하여 시작하는 것이 가능합니다.


참고기사로 보면 많이 도움됩니다. (일본어)
http://gae.cavelis.net/howto/#!encoder_obs
http://pecardy.vanu.jp/?%C0%DF%C4%EA%2FFLV%C7%DB%BF%AE#d78586ac
http://looooooooop.blog35.fc2.com/


순서도

 한번만 설정해두면, 나중에는 시작/종료만으로 간단히 할 수 있습니다. youtube, ustream, twitch 중에서 후자 2가지가 시작/종료만으로, youtube는 일정을 사전에 만들고 OBS측에서 스트림데이터를 보내고서야 방송이 시작됩니다.


1. OBS에서 설정탭의 설정.

2. 설정창에서 일반탭 화면에서 필요시 언어를 한국어로 변경, 사용할 프로파일 이름을 지어주고 저장(예: youtube)

3. 인코딩 탭
비디오 : x264 또는 quick sync, i5이상일 경우 x264 권장. NVENC는 화질/효율상 비권장.
품질기준은 계산하기 어려우므로 비트레이트 2500~4000k 및 버퍼는 비트레이트의 x2
권장 set : Default. Ultra/Super/Very fast는 시간상 거의 차이가 없어 default를 권장합니다.

오디오 : AAC stereo, 소스에 따라 44.1kHz/48kHz 선택, 품질 96k~128k 권장.

각 코덱별 비트레이트 권장
MP3 96kbps이상
AAC-LC 80kbps이상
HE-AAC 48kbps ~ 128kbps
HE-AAC v2 32kbps ~ 48kbps 이하 (음성을 22kHz로 낮추면 24kbps ~ 32kbps)

참고) 압축률대비 음질비교 : 44.1kHz MP3 128kbps = AAC-LC 64kbps = HE-AAC v2 48kbps
HE-AAC v2 는 AAC-LC + SBR + PS 3개 기능이 합쳐져 이루는 코덱입니다. AAC-LC가 우리가 일반적으로 부르는 "AAC"이며, 여기에 SBR기능이 추가되면 HE-AAC v1이라 부르며 압축효율이 향상됨에 따라 스테레오 64kbps에서도 기존 일반 MP3 코덱의 128kbps 스테레오에 준하는 음질을 보여줍니다. 여기에 극히 낮은 비트레이트까지 들을만한 음질로 압축을 하기위한 기술로  PS 기능까지 추가되면 비로소 v2라 불리며 32kbps 스테레오에서도 MP3 128kbps에 준하는 압축률/음질을 들을 수 있습니다. 그렇다면 "무조건 HE-AAC v2 192kbps수준으로 압축하면 좋지 않느냐?" 라고 생각할 수 있지만, 꼭 그렇지만도 않습니다. 같은 HE-AAC v2에서 각 코덱의 세부스펙별로 다를 수 있지만 libfdk_aac의 경우 64kbps 이상부터는 PS기능이 비활성화되고 128kbps부터는 SBR기능이 비활성화되어 AAC-LC와 동일하게 압축됩니다. 이는 높은 비트레이트에서의 인코딩/디코딩 효율을 고려한 설계로 자세한 사항은 fraunhofer사 홈페이지의 FDK-AAC코덱 기술문서에 나와 있습니다.

HE-AAC 코덱은 라이센스문제로 OBS에 기본적으로 포함이 안되어있지만, FFmpeg 커맨드라인툴을 직접 빌드하거나 기타 상용소프트에는 포함되어 있을 수 있습니다.

**OBS의 AAC코덱(libfaac)이 96k미만으로 설정해도 96k수준으로 인코딩되는 버그가 있었으니, 가급적 최신버전으로 받아서 사용하시길 권장합니다.


4. 방송설정
모드 : 실황으로 방송
방송 서비스 : 2번에서 지정한 프로파일로 지정

서버 : Primary Youtube Ingest Server
백업서버까지 쓰려면(스트림키는 동일) OBS를 두 개를 기동해서 쓰거나, FFmpeg.exe 커맨드라인에서 파이프를 사용하여 2개 서버로 동시에 송출해야 합니다. 보통 그렇게까지 할 필요는 없습니다.

재생경로/스트림 키 : 각 서비스에 로그인하여 스트림키를 받아와 복사해줍니다.
스트림키는 RTMP 서비스에서 굉장히 중요한 정보입니다. ID/PW 입력없이 이 키값만 알면 해당 서비스서버로 언제 어디서든 누구든지 스트림데이터를 보내서 멋대로 방송을 개시할 수 있으므로, 타인에게 절대 알려줘서는 안되는 값이므로 주의해 주십시요. 이 키 값은 각 서비스사의 설정 화면 등에서 확인할 수 있습니다.

자동 재접속 시도 체크
자동 재접속 시간 초과와 지연(초단위)는 기본상태로 두셔도 됩니다
네트워크 지연시 화질을 낮춤 : 필요시 체크
파일로 저장 : 3번 인코딩설정에서 지정된 수준으로 압축되는 실시간 영상을 저장
(이하 항목 생략)


----------------------------------------------------------------------------------------------------------------------------------------
- youtube 에서 스트림키 받아오는 방법

youtube의 경우, 먼저 실시간이벤트를 만들면서, "정보 및 설정" 탭에서 유형을 맞춤설정으로 일정을 만들경우
다음 화면에 뜨는 인코더 설정에서 밑의 예시와 같은 전송률 프로파일을 만들면 키값을 볼 수 있습니다.



- Ustream.tv 에서 스트림키 받아오는 방법

로그인-우측상단 아이콘 클릭 후 채널설정 - 좌측메뉴 채널설정의 자신의 ID클릭  - 원격



- Twitch.tv 에서 스트림키 받아오는 방법

로그인 - 우측상단 ID클릭 - 계기판(대시보드) - Stream Key - 암호보기


----------------------------------------------------------------------------------------------------------------------------------------




5. 비디오
사용자정의 - 해상도 설정
(해상도를 축소할 경우) 필터Lanczos 설정

초당 프레임수 : 페이지의 "RTMP를 사용하는 서비스들" 테이블 참조하여 설정


6. 오디오
데스크탑 오디오장치 : 기본 장치
마이크/보조 오디오 장치 : 필요시 설정
기타 설정은 기본으로 두는 것이 좋습니다.

7. 고급

다중쓰레드 최적화사용 반드시 체크
x264 CPU 설정 : very fast 권장
인코딩 프로파일 : high 권장, main은 구형 스마트폰까지 시청 지원가능성 있음.
키프레임 간격 : 2frame
CFR 사용 체크

x264 인코더 사용자 정의 : 필요시 ffmpeg의 각종 커맨드라인 옵션설정기능.
VBR 최고점과 버퍼량 설정 등 압축시 세세한 옵션을 직접 지정가능합니다. 자세한 사항은 ffmpeg x264관련
설정을 참조하거나 이 페이지(영어)를 참조하여 사용하실 수 있습니다. 보통은 안해도 됩니다.



8. 마이크 노이즈 게이트 : 마이크를 쓸 때 설정하면 됩니다



9. 확인/적용하여 프로파일 저장



10. OBS메인화면

장면목록 : 장면 추가, 적당한 장면이름을 만들어줍니다 (여기서는 Scene 1)

소스목록 : Scene 1에서 쓸 소스목록을 추가해줍니다. 여러가지 소스를 사용할 수 있습니다.
각 소스는 만들고 난 후 해당 소스를 더블클릭하면 소스의 세부설정이 가능합니다.

윈도우 캡쳐 :  스크린캡쳐모드입니다. 창모드 상태의 윈도우를 하나 지정하여 캡쳐합니다.
모니터 캡쳐 : 모니터를 하나를 지정하여 통째로 캡쳐합니다.
이미지 파일 : 고정된 이미지 파일을 하나 불러들여 띄워둡니다
이미지 슬라이드 쇼 : 여러 이미지파일을 시간에 따라 자동으로 돌려서 씁니다.
자막 삽입 : 자막으로 각종 정보/안내사항 등을 작성할 수 있습니다.
비디오 캡쳐장치 : 캡쳐장치/카메라 입력 설정을 합니다.
게임 캡쳐 : DirectX 어플리케이션 화면을 직접 캡쳐합니다. 화면이 제대로 캡쳐가 안되는 어플은 윈도우캡쳐로 하시면 됩니다. 윈도우 캡쳐와 마찬가지로 창모드만 지원합니다.

 이 소스들은 각 생성한 장면에 종속되므로 한 장면에 한꺼번에 여러 소스를 띄워 표시하다가 다른 장면을 표시할 때 유용합니다. 실제 TV방송 등에서 방송국과 현장중계 전환이 이런 장면 전환 기능을 쓰는 것입니다.

(추후 추가항목)
- 다중 장치 연결 (복수의 카메라를 활용한 Lineout 화면 + 손배치 등)
a. 복수의 캡쳐보드
b. 복수신호입력이 가능한 캡쳐보드 DVR 시스템캡쳐보드 소개




11. 미리보기로 각 장면과 소스 테스트 후 방송시작.

12. (youtube만 해당) 방송시작 전에 일정을 만들고, 스트리밍 시작으로 활성화

13. 해당 서비스의 채널을 띄워 방송이 잘 되고있는지 확인





C. FFmpeg 커맨드라인 생방송 (고난이도)

(내용이 방대하여 시간나는대로 추가하겠습니다)

- AVISynth 필터 적용법

- 12비트 YUV420이 아닌 16비트 YUV422 색상사용의 고화질 방송방법 (통상 YUV420사용)

- 여러 CDN(Content distribution Network)서비스에 동시에 송출하기

 "D:\tool\ffmpeg\bin\ffmpeg.exe" -rtbufsize 100MB -f dshow -i video="SA7160 PCI, Analog 01 Capture":audio="SA7160 PCI, Analog 01 WaveIn" -threads 0 -vstats -report -r 30 -s 1280x720 -sws_flags lanczos -pix_fmt yuv422p -b:v 3000k -vcodec libx264 -preset veryfast -profile:v high422 -x264opts "deblock=0,0:partitions=i8x8,i4x4,p8x8,b8x8:me=hex:subme=2:merange=16:scenecut=40:qcomp=0.6:qpmin=10:qpstep=4:bframes=2:ref=1:direct=spatial:trellis=0:b-pyramid=normal:mixed-refs=0:weightb=1:8x8dct=1:no-mbtree=1:ratetol=10:weightp=0:ipratio=1.41:pbratio=1.25:keyint=350:min-keyint=90" -async 100 -acodec libvo_aacenc -ar 44100 -ab 128k -ac 2 -f flv pipe: | ffmpeg -re -r 30 -i - -codec copy -f flv "rtmp://live-sel.twitch.tv/app/live_12345678_streamkeyoffair" -codec copy -f flv "rtmp://1.1234567.fme.ustream.tv/ustreamVideo/1234567/streamkeyoffair flashver=FME/3.0\20(compatible;\20FMSc/1.0)" -codec copy "D:\Streaming\ffmpegoutput20151022003741.mp4"  

코드의 예시
영상해상도 : 1280x720p30
영상 코덱/비트레이트  : x264 YUV422 ABR 3000kbps, buffer 6000kbps
음성 코덱/비트레이트 : AAC-LC 44100Hz 128kbps Stereo
directshow 입력 : SC-512N1-L/DVI 캡쳐보드 영상/음성
스트리밍 발신 : Ustream, Twitch 동시발신, (아프리카tv경우도 현재 추가가능)
스트리밍 저장 : D:\Streaming\날짜.mp4
Resize 방법 : Lanzcos
Deblock 필터 활성화

이 방법은 어지간해서는 사용할 일이 없을 것인데, 소개를 하고자 합니다. 예를들어 한 소스를
가지고 youtube에 방송하면서 동시에 ustream에도 방송하는 것을 말하는 것인데, 보통 youtube 에 따로, ustream에 따로 프로그램 또는 웹페이지를 띄워 송출한다고들 생각하실 겁니다. 간단히 봤을 때 누구나 그렇게 생각할 수 있고, 보통 이런 방법을 씁니다. 그런데, 이 방법은 매우 비효율적이며, H.264로 인코딩하는 것만으로도 컴퓨터의 자원을 상당히 소모하는데, 고해상도로 가면 한 곳으로만 방송을 해도 CPU가 7~80%에 육박할 정도로 힘들어 합니다.  한 곳으로만 송출도 이런데 두 번 인코딩해서 송출할 경우, 100%을 찍고 화면이 끊기게 될 것입니다.

그럼 소스는 하나인데, 인코딩 된 결과를 반복해서 인코딩하지 말고 복제해서 두 군데로
송출하면 되지않느냐..?

 맞습니다. 실시간으로 인코딩되는 1개 소스를 예를들어 3곳의 서버로 송출할 때, 1번만
인코딩 후, 메모리상에서 데이터를 3곳의 서버로 복제만 하여 나가기 때문에, CPU의 부담이
절약됩니다. 그림으로 표현하자면...


OBS 프로그램을 일일이 3개 띄워서 인코딩하는 첫번째 방법과...



FFmpeg 커맨드라인으로 한번만 인코딩 후에 3곳의 서버로 동시에 송출하는 방법입니다

---------------------------------------------------------------------------------------------------------------------
상황 : PS4 게임의 1080p30f 영상을 캡쳐보드로 받아다가 youtube, ustream, twitch로 동시에
방송를 원한다.

준비된 PC사양 :
CPU : Intel Core i3-4130 3.4GHz
RAM : DDR3 4GB
GPU : none
HDD : 2개 HDD
- DISK1 : 160GB, OS용. 데이터용 디스크는 파티션분리가 아닌 별도디스크 사용
- DISK2 : 500GB, 녹화데이터 저장용. OS용 디스크는 파티션분리가 아닌 별도디스크 사용

H.264 preset : very fast
** H.264 preset을 medium 이상 slow쪽으로 갈 수록 복잡하고 느리게 인코딩하며, CPU사용률이 크게 증가합니다. 그 외 preset이 아닌 각 세부옵션 조절로 인코딩 복잡도를 올리면 마찬가지로 CPU사용률이 밑의 결과와 상이할 수 있음을 염두해두십시요

테스트 : 임의의 프로그램을 사용하여 1개 송출시 CPU사용률을 실제 방송 전에 체크. 위의
사양으로 QSV가속 없을 시 사용률은 비트레이트(움직임)에 따라 약 40~80% 사용률.
QSV 가속 사용시 10~20% 사용률을 보였음

송출방법1 : OBS 프로그램을 3개 띄워 각각 송출
송출방법2 : FFmpeg launcher (일본어)나 FFmpeg 커맨드라인으로 동시에 송출

CPU 사용률 ( 방송품질이 원활할 경우 O, 도저히 불가능할 경우 X)
송출방법1 :
- QSV가속 없이 3개 인코딩 후 송출시 CPU 100%. 실질적인 원활한 방송불가 (X)
- QSV가속사용, 2개 CPU담당, 1개 GPU 담당 인코딩 후 송출시 CPU 100%, GPU 100% (X)
- QSV가속사용, 1개 CPU담당, 2개 GPU 담당 인코딩 후 송출시 CPU 70~90%, GPU 100% (X)
- QSV가속사용, 0개 CPU담당, 3개 GPU 담당 인코딩 후 송출시 CPU 10~20%, GPU 100% (X)

송출방법2 :
- QSV 가속없이 1회 인코딩 후 스트림복제송출시 CPU 40~80% 유지. 원활한 방송가능 (O)
- QSV 가속사용 1회 인코딩 후 스트림복제송출시 CPU 10~20% 유지. 원활한 방송가능 (O)


결론 : 송출방법1은 사실상 원활한 방송 불가능. 방법2를 통해 성공적으로 방송가능.

--------------------------------------------------------------------------------------------------------------------------

보다 사양이 높은 CPU를 사용한다면, 못할 법도 없지않아 있습니다. i7급일 경우 1080p 미만 이라면 2회 동시 인코딩까지는 커버할 수도 있을 수 있지만, 그 이하의 사양을 사용할 경우 보다 효율적인 방법을 사용하는 것이 좋습니다.

나는 예산이 넉넉하고 복잡하게 생각하기 싫다라는 분이 있다면 소켓 1150의 Core i7 따위의 중저가형이 아닌 소켓 2011의 Xeon E5-1680 V2 또는 하이퍼쓰레딩 없는 Xeon E5-24xx, 하이퍼쓰레딩이 있는 Xeon E5-26xx 시리즈를 2개 꽂을 수 있는 보드와 함께 2개 CPU를 구매 하시면 아무 생각할 필요없이 원하는 모든 상황이 커버가능하며, 심지어 4K 영상도 원활하게 커버가 될 것입니다. 대신 싸게 구매해도 경차 새 것 한 대 값은 나가겠지요..





D. PC없이 RTMP client를 지원하는 Professional 장비를 사용하여 방송하는 방법

 사실 프로의 세계에서는 PC를 써서 위와 같이 복잡한 작업은 일일이 하지 않고, 전문 장비를 통해 쉬운 인터페이스를 사용합니다. 현장에서 이런 복잡한 설정할 여유도 없을 뿐더러 돌발사태가 났을 때를 대비한 백업장비 등을 활용하는 게 보통이지요. 여기서는 PC없이 standalone형태의 장비로 미리 조정된 세팅값을 기반으로 방송/녹화/중단 등을 할 수 있는 회사를 소개하자면, Viewcast, AJA, Blackmagic, Matrox, 그 외 필자도 잘 모르는 전문회사들이 많습니다. 대부분 프로 업무용인 관계로 가격도 취미용으로는 넘보기 힘든 경우가 대부분이며, 이베이 중고시장 등에서 한 두 세대 이전의 구형을 값싸게 구해서 써볼 수나 있는 경우가 태반입니다. 이 분야에 발 담그고 하는 사람들을 대상으로 하는 기사는 아니므로, 비교적(?) 싼 장비를 소개하자면, 2가지 정도가 있습니다. 각각 100만원, 70만원가량하며, 출시된 지 1년 약간 지난 제품들이라 중고로 싸게 구입하기는 현시점에서 사실상 힘들고, 신품을 구입하는 것이 좋습니다.

a. Matrox Monarch HD
b. CEREVO liveshell PRO

이 기기들은 소스를 입력하고 인터넷 케이블을 연결 또는 무선연결 후 간단한 설정을 통해 미리 세팅만 끝내면, 시작명령 하나만으로 방송시작/녹화/중단이 가능합니다. 크기도 작고 휴대형이라 굉장히 편리한 점이 특징이지요. 단지, 이 기사를 보러오는 분들 대부분은 게임 등을 방송하기 위해서임을 감안하면 이 제품들은 표준해상도 480i, 720p, 1080i, 1080p 이외의 해상도는 지원을 안하기에 부적합할 수도 있습니다. 그러한 점을 감안하여도 한번 설정 후 연결만 해다가 시작/정지만 컨트롤만 하는 편리성을 보입니다. 중고로 싸게 매물이 나온다면, 제가 꼭 구입하고 싶은 물품들 중 하나이지요.


2015년 7월 13일 추가
2015년 5월 스카이디지탈사에서 출시한 Supercast T3 HDMI USB 2.0 제품으로 저렴한 가격에 RTMP 다이렉트 방송이 가능해졌습니다. 이로서 프로 업무용 장비를 구매하지 않고도 단돈 17만원 이하에 720p60 720p30 (죄송합니다 30프레임이었습니다)까지 방송이 가능해졌습니다. 관련 리뷰는 따로 포스팅하였습니다.


4. 결론

이렇듯 국내서비스 말고도 해외의 여러 방송서비스를 사용하는 방법을 알아보았습니다. 여러분들이 컨텐츠를 가지고 있다면, 국내만이 아닌 세계를 대상으로 실시간 방송하는 것도 어떠신지요.

잘못된 점, 의문나는 점이 있으면 밑의 코멘트에 의견 등 적극 환영합니다.