2014/11/11

아케이드게임 제작자들, 특히 국내게임 개발자들에게 당부하고 싶은 말

 오늘은 지난날을 돌이켜보며, 아케이드 게임의 보안에 대한 얘기를 해볼까 합니다.

보안이란 건 게임 내부를 들여다보지 못하도록 암호화, 팩킹말고도 네트워크 게임 등에서는 통신수단도 서비스제공자와 소비자가 아닌 제 3자가 내용을 탈취하지 못하게끔 보호할 필요가 있습니다. "뭔 게임갖고 그렇게 호들갑 떨고 그러냐" 이럴수도 있습니다. 현실적으로도 모사의 온라인 게임처럼 '아이템이 곧 현금'으로 이어지는 컨텐츠도 없다시피 할 뿐더러, 그런식으로 제작의도를 가진 제작사들은 별로 없습니다. 물론 성인용 사행성게임은 여기서 제쳐두고 얘기합니다. 그 쪽은 뭐가 어떻게 돌아가건 관심없습니다. 다른 동종업계에 비해 아케이드 바닥은 상대적으로 너무나 좁다보니 국내에서는 두 손으로 두 번 정도 손에 꼽을 정도의 개발사만 있는데, 게임내용에 대한 보안은 다들 각자 나름 신경쓰는데 불구하고, 게임이 네트워크 서비스를 지원하는 경우일 때, 통신에 대한 보안은 대부분 별 신경을 쓰지않고 발매를 합니다.  순전히 제 기억에 의존하고 제가 찾을 수 있는 자료만으로 한정되는 얘기이기에 객관적으로 바라볼만한 내용은 아닐 가능성이 큽니다만, 무슨 게임이 있었는지 몇 가지 예를 들어봅시다.

1. 안다미로사 [Archshade] 2003년

 국내 아케이드 게임으로서는 최초라고 생각되며, 타사 동종 장르의 건슈팅게임에서도 시도하지 않았던 온라인 매칭을 선보였던 획기적인 시도였습니다. 실제 몇 업소에 설치되고  얼마되지 않아 철거되었던 비운의 게임입니다. 게임내용은 둘째치고, 통신은 일반회선으로 직접 인터넷에 연결되어 있었습니다. 구체적인 통신방식은 알아보기도 전에 없어져서 자료를 찾을 수가 없었습니다.


2. 네오위즈사 퍼블리싱/펜타비젼사 개발 [DJMAX TECHNIKA] 시리즈 2008년

 음악게임 등으로 유명했던 펜타비젼사에서 제작된 터치형 음악게임입니다. 국내 아케이드 음악게임으로는 제대로 돌아갔던 것 중에서 아마 처음이었던 듯 생각되며, 통신은 일반회선으로 직접 인터넷에 연결되어, 주기적으로 패치, 이벤트 등을 개최하였습니다. 업데이트 통신은 게임실행 전, FTP 클라이언트가 실행되어 업데이트 서버에서 패치유무를 확인한 후, 게임이 실행되었습니다. FTP의 계정은 사전에 지정해둔 ID와 패스워드로 모든 기계에서 동일한 계정으로 로그인하여 다운로드를 받아왔으며, 접속방식은 기억이 정확하다면 정규 21번 포트가 아닌 비정규포트로 비암호화 전송을 하였으며, 업데이트 체크 완료 후 게임서버 접속도 마찬가지로 평문통신으로 이루어졌습니다.


3. 누리조이사 [Beatcraft Cyclon]

 DJMAX TECHNIKA 기계를 그대로 사용하여 업그레이드 키트로 게임을 교체하여 사용하거나 새 기계를 도입하여 출시하였습니다.  마찬가지로 일반 인터넷회선으로 서비스중이며, VPN망은 사용되지 않았습니다. 내부 통신은 자세히 조사된 바가 없어 알 수 없지만, 지금까지의 행보로 봤을 때 업데이트서버/게임서버와 통신도 평문으로 하고있을 가능성이 높다고 생각됩니다.


국내 게임은 세 가지 이외에도 있을 법한데, 보기에는 이 두 개밖에 보이지 않았습니다. 그럼 타국...이라고 해봤자 아케이드 게임은 일본산이 대부분이니 몇 가지 알아봅시다. 워낙 종류가 방대하다보니 각 회사별 네트워크 구성에 대해서만 간단히 기술합니다.



1. 세가/남코 All.Net 이용 게임 (이니셜D 시리즈, Virtual Fighter, 철권, 태고의 달인 시리즈 등)

 개인적으로 접하기로는 아케이드계에서 처음이었지 않았나 싶습니다. Virtual Fighter 4부터 시작으로 VF.net이란 이름으로 카드시스템 채용 및 네트워크 업데이트, 단위시스템 등으로 사회현상까지 일으키는 등 당시로서는 획기적이었습니다. 후에 남코가 철권5를 시작으로 세가의 네트워크 시스템을 도입하여, 철권넷 서비스를 시작하였습니다. 구성은 전용 VPN 보안단말을 각 업장에 하나 비치하며, 그 안에 서비스중인 게임이 다 연결되어 일반 인터넷회선을 사용하여 자체 보안망에 연결되는 형식입니다. 프로젝트 디바 아케이드의 경우 게임내부 데이터를 변경하거나 포멧해버려도 전원넣고 네트워크 연결되면 게임보드 내부의 TPM모듈 및 네트워크 부팅을 통해 자동적으로 서버로부터 모든 게임데이터를 다운로드하여 정상가동할 수 있습니다. 게임데이터 관리도 강력한 보안이 걸려있으며, 네트워크 보안수준도 상당수준의 보안성을 유지하고 있습니다.
 남코가 철권넷을 세가로부터 들여온 뒤로 태고의 달인에도 적용되었으며, 기본적으로는 All.net과 같은 카드로 사용 가능합니다.

2. 코나미사 E-amusement 네트워크

 위의 두 회사의 상황과 비슷하며 수많은 종류의 게임을 오랫동안 서비스하여 많은 노하우를 담아 노련하게 운영하는 서비스입니다. 전용 VPN단말을 마찬가지로 업장에 비치한 후, 일반 인터넷회선을 사용하여 자체보안망에 연결됩니다.


3. 타이토사 Nesica X Live

 각종 체감게임이 아닌 스틱게임, 과거작들을 모두 한대 모아 네트워크 대응서비스를 최근 시작한 타이토의 네시카 크로스 라이브입니다. 게임컨텐츠가 담긴 서버를 업장에 비치하며, 미리 다운로드 받아둔 게임을 업장의 서버에서 불러들이는 형식으로 소비자는 게임을 선택하여 플레이가 가능합니다. 네트워크 망은 정보수집이 부족하여 알 수 없었지만, 위의 3사처럼 VPN망을 통해 서비스하고 있을 것으로 예상됩니다.

 4개 회사 공통적으로 일반회선을 사용하되 VPN장비를 도입하여 자체 보안망에 연결하여 서비스를 하고 있습니다. 오프라인 해킹에 대한 보호는 각 사별 방식과 그 정도가 상이하지만 기본적으로 거는 수준이며, 오프라인 해킹에 상대적으로 약한 편이 코나미와 타이토사의 게임입니다. 단, 네트워크는 상용VPN장비를 통해 128비트 또는 256비트의 고수준암호화 통신이 오가기에 함부로 통신을 가로채도 내용을 보기가 쉽지 않습니다.

 다시 국내 회사 게임으로 돌아와서 봅시다. 그렇다면 위에 먼저 기술했던 세 국내 게임 중 아크쉐이드는 이미 없어진 게임이니 넘어갑시다. 그외 안다미로사의 다른 게임으로 캐쥬얼게임을 제외하고는 Pump it up 시리즈가 있는데, 최신작이 경쟁사의 풀 네트워크 대응에도 불구하고 아직까지 네트워크 서비스 대응을 안하는 건 여러가지 이유가 있을 것으로 추측됩니다. 도입비용, 관리비용, 내부에 관련인력인프라 부족, 해킹우려, 기타 등등 현재까지는 각 소비자의 USB메모리에 패치데이터를 담아 넣는 식으로 업데이트를 제공하고 있습니다. 스코어 데이터 등은USB데이터에 담긴 내용이 PC에 연결되어 공식 서버에 접속했을 때 전송됩니다. 비록 해킹의 위험이 있지만, 그것을 감수하고 관리비용도 들지않고 적절한 타협이라 볼 수 있습니다.



 펜타비젼의 DJMAX TECHNIKA에 대해서는 정말 할 말이 많습니다. 사실 이 글을 쓰는 이유도 펜타비젼사를 욕하기 위함이며, 누리조이사에 대한 경고성 충고목적이 주목적입니다.

 위에서 언급한 통신방식 채택으로 로그인시 ID/PW가 패킷을 캡쳐하여 보면 업데이트 서버주소와 함께 계정정보가 그냥 보였습니다. 사견아닌 사견으로 어떻게 얻어내는지까지 자세하게 쓰면 현재, 그리고 앞으로도 나올 게임에 모방하는 경우가 100%라 감히 말할 수 있어서, 자세한 사항은 생략합니다. 이 문제에 대해 담당자는 아니지만 당시 관련지인들에게 몇 차례 넌지시 얘기하며 경고를 했는데, 담당자에게 전해지지 않았는지 아니면 내부에 전해지고도 담당자가 없다거나, 관련내용에 대한 회사내 인력/자금사정 등의 역량부족으로 못했다거나, 담당자가 모종의 이유로 알고도 무시했다거나 여러가지 이유가 있음에도 그냥 그대로 가더군요. 업데이트 서버는 시리즈 마지막까지 변하지 않았습니다. 이런 상태를 보며 이대로 두면 '마음만 먹으면 전국 기계를 먹통으로 만들어 버릴 수도 있는데' 라는 생각이 문득 들기도 했었습니다.

 업데이트 서버에만 문제가 있던 건 아니었습니다. 게임이 시작되면 게임서버에 접속되는데, 이 때 통신내용을 옆에서 뽑아다 지켜보면 무슨 카드로 어떤 곡을 플레이하고 경험치는 얼마나 먹는지 점수 등이 그냥 평문으로 매 스테이지 끝날 때마다 날아가며 통신을 했었습니다. 각 정보가 저장된 게임DB서버는 어차피 외부에서 접근이 불가능하게 내부NAT안에 들어있으니 해킹이 매우 힘든 게 사실인데, 상당히 고난이도긴 해도 이런 평문통신을 가로채다가 송신자를 속여 DB서버로 내용을 위조해서 보내면 계정내용을 조작하는 것도 가능합니다. 이 통신은 타사 게임도 모두 동일하게 하는 통신인데, 평문전송이라서 문제가 됩니다. 암호화하여 보내면 적어도 통신내용을 훔쳐다 보거나 조작해서 도로 보내는 게 불가능해지거나 평문통신보다는 몇 배는 힘들어지겠죠. 이 뜻을 알고 비판하는 내부인원도 있었는데도 불구하고 윗선에서 바꿔줄 생각을 안하니 어쩌겠나요.

 VPN, 도입하면 비용많이드는 것 압니다. 관리비용, 회선비용이 정말 만만치 않습니다. 여건 안되면 암호화 통신이라도 해야할 것 아닌지요. 관련 인원이 개런티가 비싸서 안뽑는 건지, 저 회사는 하드데이터 내용물에만 관심을 가져 참 안타깝습니다. 그나마 내부데이터 암호화에 바를 돈도 없었는지 관심이 아예 없었는지는 몰라도, 해킹 그룹에 의하면 Cyclon은 그 까다롭다던 T3에 비해서는 단 하루만에 크랙이 되어 서양쪽에서는 굴리고 있는 것으로 보입니다. 참으로 칭찬받아야 마땅합니다. 학습능력이 A+인 것으로 판단됩니다. 계속 그렇게 굴리길 빌며 이 글이 그냥 한 기술에 대한 잘난 척 하는 찌질이의 글이 되길 손톱만큼만 빌어봅니다.


  또한 앞으로도 제작/관리에 들어갈 제작사에게 말할 경고의 메시지이기도 합니다. 너바나 스튜디오의 CIRCLINK, 스퀘어픽셀즈의 EZ2AC, 안다미로의 PIU, 그리고 차후 계획이 있는 모든 제작사 담당자님들께, 네트워크 대응을 할 지 안할지는 차선의 선택이지만, 만약 서비스 하게된다면 데이터내용만 막을 생각 하지말고, 제발 네트워크 보안도 신경쓰길 간곡히 건의합니다.

저기 펜타비젼 산하 및 그 후속회사는 애초에 기대도 안하고 포기했고요.



세줄 요약
1. 국내 네트워크서비스하는 게임들 네트워크 보안 신경안씀. 펜타비젼 凸
2. 일본은 기본이 VPN대응, 보안강도가 강약이건 초보자가 함부로 건드리기 힘든 수준은 유지
3. 차후 제작하는 회사들은 제발 보안에 더 신경쓰자


 긴 글 읽지않고 스킵해주셔서 감사하며 잘하셨습니다.

2014/08/27

[Korean] 업장에서 쓰는 녹화/방송용 컴퓨터의 사용제한

 사설없이 본론으로 들어갑니다.

컴퓨터에 캡쳐보드를 달아 쓸 때, 가장 좋은 관리 방법은 카운터에 두어 원천적으로 관리자 이외에는 만지지 못하게 한다.

부득이하게 컴퓨터를 사용하며, 컴퓨터가 카운터 밖에 있는 경우, 설정변경을 못하도록 윈도우의 설정에 제한을 건다.


  1. 제어판 금지 : 아래의 코드를 복사하여 메모장에 붙여넣어 모든 파일(*.*)확장자 [제어판금지.reg] 파일을 생성한 후 실행한다. 주의할 점은 바탕화면, 해상도, 각종 윈도우 설정 등을 완료한 후에 하기 바란다. 실행한 후 재부팅한다.
 Windows Registry Editor Version 5.00  
   
 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]  
 "NoControlPanel"=dword:00000001  
   
 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]  
 "NoControlPanel"=dword:00000001  


  1-1. 제어판 금지 복구 :  아래의 코드를 복사하여 메모장에 붙여넣어 모든 파일(*.*)확장자 [제어판금지해제.reg] 파일을 생성한 후 실행한다. 설정변경/프로그램 업데이트 등이 필요할 때 실행하여 해제한 후 업데이트가 끝나면 다시 설정에 락을 건다.
 Windows Registry Editor Version 5.00  
   
 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]  
 "NoControlPanel"=-  
   
 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]  
 "NoControlPanel"=-  

위의 설정으로 저장된 파일 다운로드

http://coolpunch.tistory.com/297
레지스트리 변경없이 그룹정책 에디터 (gpedit.msc)로도 변경할 수 있는 방법

  2. 바탕화면/해상도를 각 업장에 맞게 설정하며, 드라이버, 프로그램 업데이트 등을 사전에 완료한다.

  3. 바탕화면을 고정시킨다.
http://support.microsoft.com/kb/2539800/ko 또는 http://blog.daum.net/luckyman717/2257

  4. 모든 설정이 완료된 후, 설치 시 생성된 관리자계정이 아닌 일반권한 유저를 생성하여 로그인하고, 자동로그인 설정을 걸어둔다. 이는 전원이 들어오면 자동으로 로그인되게끔 하기 위해서이다. 4설정 후,  5번 설정까지 완료되면 재부팅한다.
 시작-실행, 또는 cmd.exe에서
control userpasswords2  





  5. 윈도우 시스템을 통째로 백업한다. 시만텍-노턴사의 ghost, Acronis사의 trueimage와 동일한 수준이므로 기본 기능으로도 충분하다.
윈도우 7의 경우 http://snoopybox.co.kr/1139
윈도우 8.1의 경우 http://narie.tistory.com/12#gotop 또는 http://archwin.net/158


  ** 고급사용자 only : 윈도우 8.1 pro를 VHDX파일에 설치하고, 모든 세팅을 완료한 상태를 저장하여 파일속성을 읽기전용으로 바꾼다. 그 후 부모-자식간의 파일연결을 활성화시키고 자식파일을 생성하고, 생성된 자식 vhdx파일을 부팅메뉴에 등록/부팅하여, 5분만에 언제든지 복구할 수 있도록 환경을 갖춘다.

2014/08/04

[Korean] 일반용도에서의 RAID 사용

일반적인 용도에서 목적에 부합되는 RAID 저장소 설계는 작업의 시간대비 효율을 중시해야할 상황일 때 중요합니다. 사용하는 목적은 여러 케이스가 있는데, 대표적으로 3가지 케이스가 있습니다. 먼저 단일 디스크만으로는 낼 수 없는 성능을 뽑아내어 작업속도를 증가시키는 경우와, 작업중 돌발상황에 의한 HDD의 돌연사 등으로 데이터를 유실할 위기를 방지차원에서 사용하는 경우, 두 마리 토끼를 다 잡기위한 성능/신뢰성을 동시에 확보하는 케이스가 있습니다. 3가지 케이스는 추구하는 목적에 따라 그 목적에 부합되게 설계된 RAID 레벨 시스템을 사용하면 되는데, 각각 장단점이 분명히 존재하므로, 무작정 생각없이 사용하다 장애가 발생했을 시, 사용하지 않은 경우보다 못한 최악의 상황이 발생할 수도 있으니 신중히 택해야 하겠습니다.

 인터넷에 찾아보면 널리고 널린 것이 RAID에 대한 설명이므로, RAID 레벨은 간단히 설명만으로 넘어가며, 일반적인 목적에 따른 저장소 설계에 대해서 알아보겠습니다.

RAID 레벨의 이야기를 하기전에 기본적인 지식부터 짚고 넘어가겠습니다.

- RAID는 성능/안정성을 확보해주는 것은 분명하지만 만능이 아니므로 환상을 버려야 한다.
- 다수의 HDD를 많이 연결한다고 성능이 무한히 선형적으로 증가하지 않는다.
- RAID에 사용할 HDD는 모델명, HDD의 펌웨어는 모두 동일한 것을 사용하길 강력히 권장한다.
- 절전모드는 RAID시스템에 안좋은 영향을 끼칠 가능성이 크다.
- RAID가 깨졌을 때, 가능하면 랜선뽑고 다른 작업 없이 얌전히 리빌딩 다 되기를 기다리는 것이 좋다.
- RAID 컨트롤러의 펌웨어는 가능하면 최신으로 업데이트해서 사용한다.
- RAID 컨트롤러의 펌웨어 업데이트를 할 때는 반드시 백업을 먼저 한 후에 업데이트 한다.
- 메인보드 내장의 RAID 5는 기본적으로 크게 신뢰하지 않는 것이 건강상 이롭다.
- RAID 0 또는 1은 어설프게 싼 컨트롤러 카드보다 메인보드 내장형이 성능은 더 좋은 경우가 있다.
- 용량은 적고 성능만을 위한 HDD-RAID보다는 SSD 1개+백업 HDD 1개 조합이 좋다.
- RAID는 RAID컨트롤러가 아닌 OS상에서도 지원한다. 윈도우 동적볼륨, 리눅스 LVM 등.
- Hardware형 컨트롤러 : I/O processor와, 캐시메모리 내장, 정전 등 데이터유실 방지용 배터리장착 등
- Software형 컨트롤러 : IOP가 없어 CPU가 패리티 연산 등을 담당, 캐시메모리는 시스템메모리로 사용
- HP/DELL/IBM 벤더들은 각자 회사 벤더용 컴퓨터가 아닐 경우 인식이 안될 수도 있다.
- VMware ESXi는 HP/DELL/IBM/Intel 등의 서버벤더용과 Adaptec/LSI 정도만 지원하니 주의
- Microsoft Hyper-V Server(무료버전), Citrix Xen, Openstack 등 각 하이퍼바이져가 컨트롤러의 드라이버를 지원하는지 확인한 후 도입한다.
- SSD RAID는 보드내장 또는 캐시메모리가 없는 HBA 컨트롤러를 사용한다. SSD 확산 이전에 나온 IOP/캐시 컨트롤러들은 제 성능이 나오지 않는다.
- 정말 RAID를 사용해야 하는가, 다시 한 번 검토한 후에 도입할 지 결정한다.



기본적인 것을 알아보았습니다. 다른 것은 다 재쳐두고 마지막 항목, 정말로 도입해야하는 지 재차 검토후에 사용여부를 결정하길 바랍니다. RAID가 깨져도 리빌딩을 할 수 있는 지 여부와 걸리는 시간이 크게 좌지우지 하기 때문입니다.

1. RAID 0 stripe
신뢰성 0점, 성능 3점, 장애복구시간 0점

HDD에 한 데이터를 나눠서 작성되며, 연결한 만큼 속도가 읽기/쓰기의 전송속도가 증가하지만. access 타임은 크게 증가하지 않습니다. 디스크 한 개라도 결함이 발생하거나 기타 상황에 따른 타이밍이 어긋날 경우 RAID는 깨지며 데이터가 유실됩니다. 다음은 목적에 따른 RAID 0의 선택 케이스입니다.

- 거대한 크기의 이미지 작업 : photoshop, iilustrator, GIMP 등 이미지 작업에서도 간혹 고사양 및 RAID 시스템을 요구하는 경우가 있습니다. 포스터작업 등 수만x수만 픽셀의 이미지파일 등을 작업할 때 작업PC에 상당한 부하가 걸리는데, 이 때는 RAID보다는 우선 소프트웨어가 4GB이상의 메모리를 지원하는 지 여부를 알아본 후 메모리 증설을 먼저 하는 것이 좋습니다. 일단 파일을 읽어들이면 메모리상에서 작업이 돌아가므로 디스크에 로드가 걸리는 부분은 파일을 불러들일 때와 저장할 때 뿐이므로, 램과 관련된 부분을 보강해주는 것이 효율상 좋습니다.

- 장시간 HD 동영상 작업 : 최근에는 무압축 영상을 편집하는 경우는 거의 없어 일반적인 경우 RAID를 쓸 일은 거의 없다고 봐도 됩니다. 압축영상의 경우, HDD 1개의 속도에도 충분히 커버할 수 있기 때문이지요. 하지만 커다란 용량의 파일이 수시로 읽고 쓰여지는 특성상 성능과 용량이 동시에 필요할 경우에는 RAID 0이 필요할 수도 있습니다. 이 경우, 작업 후 중간/최종결과물은 반드시 백업습관을 들여야 하는 것은 잊지 말아야하며, 속도만 중시하며 큰 용량을 사용하지 않을 때는 복수의 HDD RAID보다는 SSD 1개를 사용하는 방법도 고려할 수 있겠습니다.


2. RAID 1 mirror
신뢰성 3점, 성능 1점, 장애복구시간 3점

HDD에 동일한 데이터가 똑같이 복제되듯 작성되며, RAID가 깨져도 데이터는 유실되지 않습니다. 장애시 가장 빠르게 복구가 가능하며, 이 때문에 신뢰성은 모든 RAID레벨 중 가장 좋습니다. 이 때문에 일반 용도가 아닌 업무에서도 많이 사용되는 방식이며, 성능확보를 위해 간혹 RAID 0+1(Stripe 후에 Mirror) 또는 1+0(Mirror 후에 Stripe)으로 조합되어 사용되기도 합니다.
RAID 컨트롤러에 따라 spare디스크(평소에는 미사용/미작동, 일부HDD 장애발생시, 자동적으로 사용)를 사용할 수도 있습니다.


- 거대한 크기의 이미지 작업 : 이 작업에 RAID 1 사용은 자료가 성능확보없이 중요하다 판단할 때 사용하는 것이 적절하다고 생각됩니다.

- 장시간 HD 동영상 작업 : 이 작업에서 RAID 1은 HDD의 낭비라 생각됩니다.

- NAS : 소규모 NAS, 개인용도 NAS 등 최근 많은 제품들이 출시되어 있어 사람들의 관심이 많은 분야입니다. 백업 및 순차적 읽기속도가 향상되므로, 동시에 여러 사용자가 몰렸을 때 안정적인 성능을 뽑을 수 있습니다. RAID가 깨져 자료가 유실될 확률도 적어 적합한 방식입니다.



3. RAID 5
신뢰성2점,  성능 2점, 장애복구시간 2점

업무에 많이 사용되는 방식입니다. 최소 3개 디스크가 필요하며, 1개가 불량이 나도 즉각 디스크 교체로 데이터 유실은 방지할 수 있습니다. RAID 컨트롤러에 따라 spare디스크(평소에는 미사용/미작동, 일부HDD 장애발생시, 자동적으로 사용)를 사용할 수도 있습니다. 이 레벨은 패리티연산이 들어가므로 SW RAID 컨트롤러의 경우 CPU가 패리티연산을, HW RAID 컨트롤러는 IOP가 이 작업을 대신 처리하여, CPU에 부담을 줄일 수 있습니다. 

- 거대한 크기의 이미지 작업 : 용량/성능/안정성이 동시에 확보되어 분명히 좋긴 하지만, 굳이 이렇게까지 해서 써야할 상황은 정말 극히 한정된 상황을 제외하고 없을 것이라 생각됩니다.


- 장시간 HD 동영상 작업 : 용량, 용량/성능/안정성이 동시에 확보되어 적합합니다. 쓰기 작업이 빈번히 일어나는 작업이므로 HW컨트롤러를 권장합니다. 또는 백업이 적절히 되는 환경이라면 RAID 5 보다는 성능중시의 0과 별도 단일 디스크 백업을 사용하여, CPU에 부담을 줄이는 것도 좋은 방법입니다.


- NAS : 용량과 성능을 둘 다 확보할 수 있으므로 적합하지만, 한 번 RAID가 깨지면 2TB기준 일주일정도 리빌딩이 걸립니다. 상용 NAS 제품에서는 잘 깨질 일이 없겠지만, 간혹 깨지면 불량난 디스크 교체 후 일주일 정도는 잊고 지내는 편이 좋습니다. 리빌딩 중에는 사용이 가능하긴 하지만, 굉장한 성능저하가 발생하고, 운이 안좋으면 리빌딩실패로 자료가 유실될 수 있으니 건드리지 않기를 권장합니다. NAS의 경우 저장소 역할만을 하므로 SW레이드 컨트롤러로도 커버 가능합니다.



4. RAID 6
신뢰성 3점, 성능 2.5점, 장애복구시간 1점

RAID5에서 불량허용 HDD가 1개 추가된 2개 HDD가 불량이 발생해도 복구할 수 있으며, 성능도 약간 증가합니다. 하지만 리빌딩시에 RAID 5 이상으로 굉장한 시간이 걸리므로 추천하지 않습니다. 이 레벨도 RAID 5와 마찬가지로 패리티연산이 들어가는데, RAID 5 이상으로 연산이 걸리므로, 만약 사용할 경우 HW RAID 컨트롤러 사용을 권장합니다. 애초에 메인보드 내장 컨트롤러는 이 레벨을 지원 안하는 경우가 많습니다.



5. Nested RAID
앞서 잠시 언급했지만, 각각 레벨의 특징을 조합하여 사용하는 경우입니다. 한 예로 0+1과 1+0은 0의 성능과 1의 신뢰성을 확보한 케이스입니다. 용량과 속도가 같은데, 신뢰성에서 차이점이 있습니다. 이 외의 50, 60, 잘 사용하지 않는 1+5 등이 있습니다.

- 0+1 : 먼저 0으로 묶고 묶인 조를 다시 1로 묶는 방식입니다. 4개 HDD 중 A조 2개와 B조 2개가 있다 정의한다면, 어느 한 조에서 1개가 불량이 날 경우 복구가 가능하지만, A조와 B조 각각 1개씩 동시에 불량이 날 경우, 복구할 수 없습니다. 한 조에서 동시에 불량이 날 경우도 당연히 복구 불가능합니다.
RAID 1 [Raid 0 A (1,2,3,4,5) + Raid 0 B ( 6,7,8,9,10)]

4번 HDD 불량 => A조 RAID 0 fail발생, B조는 살아있으므로 불량HDD 교체 후 복구가능
8번 HDD 불량 => B조 RAID 0 fail발생, A조는 살아있으므로 불량HDD 교체 후 복구가능
3번, 9번 HDD 불량 => A조, B조 동시에 RAID 0 fail, 복구불가


- 1+0 : 먼저 1로 묶고 묶인 조를 다시 0으로 묶는 방식입니다. 0+1과의 차이점은 A조와 B조 각각 1개씩 동시에 불량이 날 경우에도 복구가 가능합니다. 이는 각 조 별로 1로 묶여있기 때문에 복구가 가능하며, 한 조 전체가 동시에 불량이 날 경우도 복구할 수 있습니다.
RAID 0 [R1A(1,2) + R1B(3,4) + R1C(5,6) + R1D(7,8) + R1E(9,10)]

4번 HDD 불량 => B조 RAID 1 fail발생, B조 복구 후 전체 사용가능
8번 HDD 불량 => D조 RAID 1 fail발생, B조 복구 후 전체 사용가능
2번,3번, 6번,8번,9번 HDD 불량 => 각 조 RAID 1 fail발생, 각조 복구 후 전체 사용가능
3번,4번 HDD 불량 => C조 전체 fail발생, RAID 0 fail로 복구 불가능.



6. JBOD (Just Bunch of Disk)
이건 사실 RAID가 아니라, 그냥 여러개의 디스크를 죽 나열하여 용량만 확장한 케이스이며, 성능/안정성에 대한 이점은 없습니다. 1개의 디스크에 데이터가 우선적으로 쌓이며, 꽉 차면 다음디스크에 쌓이는 형식이며, 중간에 디스크가 불량이 나서 깨져도 다른 살아있는 디스크의 데이터는 살릴 수 있습니다. 보통 자료 내용이 크게 중요하지 않고 디스크 용량만을 확보하고 싶을 때 사용합니다.


7. HBA
이것도 RAID가 아니라, 메인보드에 디스크 포트가 모자랄 때 추가 확장을 위해 쓰는 모드입니다. 단순히 디스크가 더 추가되는 것이므로 RAID가 아니며, 일반적으로 사용하는 느낌과 완전히 동일하게 사용합니다. 위의 1번부터 6번까지의 레벨은 RAID 컨트롤러에서 디스크를 직접 관리하므로 OS 및 BIOS/UEFI에서는 HDD가 묶인 상태의 어레이만 보이는데 반해, HBA는 직접적으로 개개별 HDD가 노출되어 관리할 수 있습니다. IOP가 없는 순수 확장 카드가 이런 방식이며, SW 및 HW RAID컨트롤러의 경우에도 펌웨어 세팅에서 HBA모드로 변경이 가능한 경우, 또는 펌웨어 자체를 HBA모드용으로 갈아 엎어야하는 경우가 있습니다.
 SSD RAID의 경우,  RAID 컨트롤러 자체 캐시메모리가 없는 HBA카드 또는 메인보드 내장의 RAID를 사용하는 편이 성능상 이롭습니다. Trim 및 컨트롤러의 캐시를 거쳐가는 것 때문에 각 벤더들의 SSD지원 최신형 컨트롤러가 아닌 이상 성능이 더 떨어집니다. RAID컨트롤러는 보수적으로 신제품이 나오는 걸 염두하셔야 합니다.



결론
위의 여러 레벨 중 요구되는 성능/신뢰/장애복구율 등을 검토하여 목적에 맞는 레벨을 선택하는 것이 작업능률을 끌어올릴 수 있습니다. 하지만 다시 한 번 명심할 점은 RAID는 만능이 아닙니다.  백업이 용이하다고 평이 난 mirror라도 쉴 세 없이 동시에 돌아가는 RAID특성상 단일디스크보다 안정성이 있다고는 말할 수 없습니다. 오히려 각각 단일 디스크를 사용하며, 수시로 백업하는 경우가 더 이상적일 수도 있음을 인지하길 바라며, 이만 글을 줄입니다.

2014/07/24

[Korean] DaumPot 이외의 RTMP를 사용하는 실시간 방송 (작성중)

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

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

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


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

2014년 7월 24일 기준
Potplayer Afreeca Youtube Twitch.tv Ustream nico生
Feedback Chat Chat Comment
3rd-party
Web-chat
3rd-party
Web-chat
3rd-party
Screen-cmt
3rd-party
Protocol RTMP 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
Custom App
Web-based
3rd-party
Maximum
frame rate
(fps)
60 40 60 60 60 120
Maximum
resolution
1280x1024 1024x768 1920x1080 1920x1080 1920x1080 512x384
640x360
Maximum bandwidth
(kbps)
4000 1000*
2000*
3000*
480p <2000
720p <4000
1080p <6000
No-limit
<5000
recommend
No-limit
<5000
recommend
2h~19h 480
19h~2h 384
Video
Codec
MPEG4
H.264
MPEG4
H.264
WebM
H.264
H.264 WebM
H.264
H.264
Audio
Codec
MP3 AAC Ogg Vorbis
MP3
HE-AAC
AAC-LC AAC-LC
HE-AAC v2
AAC-LC
HE-AAC v2**
3rdparty app
Availability
No(※) Yes
(Stream key)
Yes
(Stream key)
Yes
(Stream key)
Yes
(Stream key)
Yes
(Stream key)
※ 사전 계약된 기업고객만 가능한 것 같습니다.(정식계약 채널 등)
* 공식툴 기준 일반 1000kbps, 베스트BJ 2000k, 유료쿠폰 9만원/1주일 3000kbps
** 공식툴에서 HE-AAC 기본지원이며 외부툴로도 사용가능. (48kbps~72kbps만)

용어설명
AAC-LC : MP3에서 단점을 보완하여 발전된 코덱. 128kbps ~ 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와 동일

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

다음에서 서비스하는 팟플레이어 방송은 720p/60fps 등으로 방송할 수 있는 화질은 국내 최고의 환경이지만, 전용프로그램만 사용가능합니다. 기업계약고객의 경우 범용 전문툴도 사용이 가능하지만, 저자인 저도 사용한 적이 없고, 오픈된 정보가 없어 여기서는 다루지 않습니다. 아마 밑에 기술된 방법에 비해 크게 다르지 않을 것으로 예상됩니다.  기업고객들은 다음팟을 이용하여 스포츠중계(축구/야구 등), 뉴스(YTN24 등), 각종 행사 등에 활용되고 있습니다.

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

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

UstreamTwitch.tvyoutube와 마찬가지로 전세계적으로 유명한 실시간 방송서비스 중 하나이며, 각종 기업들이 자사 홍보, 이벤트 등에 적극 활용하는 서비스입니다. 커다란 게임이벤트의 경우 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. 결론

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

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

2014/06/07

[Korean] Pop'n Music 21 Sunny Park 녹화 및 방송방법

  이 포스팅에서는 코나미사의 Pop'n Music 21 Sunny Park의 녹화/방송에 관해 알아보겠습니다. 이 게임은 19 Tune Street 부터 1360x768 60Hz의 HD모드를 지원하기 시작했으며, SD모드로는 기존 직수입 기계들이 있습니다. 여기서는 SD와 HD 양쪽을 다룹니다.

 RGB 입력만을 언급하며, 색차신호의 캡쳐는 언급하지 않습니다.

1. 국내 Pop'n Music 기계의 사양
- 국내 정식발매 기준,  HD버전만 존재합니다.
- 구 기계의 경우 DSUB 분배기를 사용해야 하며, 480i모드로 동작하며, 15 Adventure 부터 발매된 기계의 모니터는 딥스위치 4번을 ON하여 480p모드가 동작가능합니다.
- 기판이 게임 1출력에만 최적화된 사양이므로 DVI-I 2번출력을 사용할 경우 게임/캡쳐 양측에 간헐적 끊김현상이 반드시 발생합니다.

 - 해상도 : 1360x768 60Hz
 - DVI-I 출력 1 : 기계 모니터용 또는 분배기사용으로 기계/캡쳐 양측 사용
 - DVI-I 출력 2 : 캡쳐장치에 연결. 알려진 바로 아날로그 신호로만 캡쳐가능 (젠더필요)
 - DVI-D 출력 3 : 출력이 나오지 않아 사용불가능
 - 3.5파이 스테레오 음성 : Y잭으로 분배

2. 필요한 장비
   a. 캡쳐장치 : 1360x768 해상도를 지원하는 검증된 장비 중 하나를 씁니다.
       Avermedia Game Broadcaster HD C127 --> DSUB로 신호입력
       Micomsoft SC-500N1/DVI ---> 젠더를 거쳐 DVI-I포트로 신호입력
       Micomsoft SC-512N1-L/DVI ---> 젠더를 거쳐 DVI-I포트로 신호입력
주) Skydigital CaptureX 는 1360x768해상도를 2014년 9월 기준 지원하지 않아서, 캡쳐 불가능합니다.

   b. 필요한 장비/케이블
      - DSUB케이블과 DVI-DSUB젠더
      - 3.5파이 스테레오 음성 Y잭
      - 3.5-RCA 스테레오 음성케이블
      - 1:2 DSUB 또는 1:2 디지털/아날로그 양측신호 분배 DVI-I (분배기 사용시)


   c. 캡쳐PC 권장사양
      - CPU : (HD) i3-3230 또는 그에 준하는 AMD CPU / (SD) Core2Duo E6xxx 2.xGHz
      - RAM : 2GB 이상
      - HDD : 용량무관 SATA HDD 1개, 운영체제와 녹화공간을 물리적 별도 2개 HDD 권장
      - GPU : Core i시리즈의 경우 필요 없습니다.

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

4. 케이블 연결 및 순서
=== 분배기를 사용하지 않을 때 ===
 - DVI-I 출력2를 DSUB젠더를 사용하여 캡쳐보드에 연결합니다
 - 음성을 Y잭을 통해 분배하여 캡쳐보드 또는 PC 사운드입력에 연결
 - 캡쳐PC 전원 ON
 - Pop'n Music 전원 ON
 - 녹화/방송

 전원 기동 순서가 반드시 캡쳐PC가 먼저 켜져 있어야 합니다. 반대가 되면 안됩니다.


=== 분배기를 사용할 때 ===
 - DVI-I 출력1을 분배기에 연결, 분배기에서 각각 모니터/캡쳐보드에 연결
 - 음성을 Y잭을 통해 분배하여 캡쳐보드 또는 PC 사운드입력에 연결
 - 캡쳐PC 전원 ON
 - IIDX 전원 ON
 - 녹화/방송




5. 캡쳐방법

   a. HD mode (캡쳐해상도 1360x768 60fps로 설정)
 HD모드는 IIDX의 경우와 거의 방법이 같고, 내용도 거의 같습니다.  분배기 사용하여 기판 1출력만 쓸 경우, 간헐적 끊김현상이 일어날 확률을 줄일 수 있고, 2출력을 쓸 경우 경험상 반드시 간헐적 끊김현상이 뒤따릅니다. 이것을 감안하고 작업을 진행해야 합니다. 디지털 신호로서 캡쳐할 경우, 윈도우 기동까지는 신호가 잡히나, 게임이 기동하고 나서부터 원인미상의 이유로 신호가 차단되어 캡쳐가 불가능합니다. EDID에뮬레이터, EDID기능 내장 분배기, HDCP 무력화, DVI-I 2번출력만 사용 등으로 시도했지만 모두 실패하고, 현재까지는 아날로그 신호로만 캡쳐를 성공하였습니다. 아무래도 디지털의 경우 게임기동시에 캡쳐를 불가능하게끔 신호를 차단하고 있는 것으로 보입니다. 반면 2번 출력을 일반 PC의 모니터에 연결하여 별도 모니터링 할 경우 문제없이 출력되며, 해당 모니터의 해상도에 맞게 1360x768이 아닌 다른 해상도로 자동스케일링 되어 표시됩니다. 아날로그로 캡쳐할 경우, 캡쳐보드의 사양에 따른 약간의 캡쳐되는 화면의 픽셀위치 어긋남은 감수하야 하며, 녹화에 큰 영향을 끼치지는 않습니다. 그 중 Micomsoft SC-5XX 및 Startech PEXHDCAP의 경우, 이에 대한 보정기능이 있어 거의 퍼펙트하게 캡쳐가능합니다.


  b. SD mode (캡쳐해상도 720x480 Interlaced 또는 기판 DIP-4 설정시 Progressive로 설정)
 SD모드는 일반적으로 480i로 출력되므로, Avermedia C127로는 신호를 원천적으로 480p이상으로 변환시켜 입력시키지 않는 이상, 캡쳐 불가능합니다. 480i 다이렉트 캡쳐는 오직 Micomsoft SC-5XX 및 Startech PEXHDCAP만 되며**, 15 Adventure부터 발매된 기계 (기계의 색깔로 구분가능)는 기판의 딥스위치 4번을 내려(ON) 480p모드로 동작시킬 경우에 한해서만 C127로도 캡쳐가 가능합니다. 480p를 지원하지 않는 모니터에서 이 방법을 실행하면 기계측 화면이 표시되지 않습니다.

 - 480p : 캡쳐해상도를 640x480 60f로 맞추고 잡으면 됩니다.
 - 480i : SC-500N1/DVI, PEXHDCAP 캡쳐기준
     ~ 실제 해상도는 640x480이지만 캡쳐해상도를 720x480 29.97f으로 맞추고 잘라냅니다.
     ~ 상/하 필드가 뒤집혀있으니 수정해야합니다. 자세한 내용은 밑의 첨부사진과 DDR SuperNOVA2 포스팅(영문)을 참조



Pop'n Music 18 せんこく列伝 480i, Micomsoft SC-500N1/DVI, 필드가 뒤집힌 잘못된 화면

 
Pop'n Music 18 せんこく列伝 480i, Micomsoft SC-500N1/DVI 필드뒤집힘을 수정한 화면

**주 : 15kHz RGB입력을 받는 장비는 이외에도 더 있지만, 산업용 전문 장비용으로 가격이 매우 비쌉니다.


6. 다음팟 방송옵션

- 인터넷 회선을 적어도 VDSL이상급으로 준비, FTTH 적극권장
- 인코딩 : CPU가 퍼포먼스가 부족하면 intel quick sync로 바꾸고 그 이외에는 H.264

세부 설정은 아래 사진대로 옵션설정 권장.
인코더 :  H.264 (Intel Quick Sync)로 권장
CPU가 충분히 좋으면 "H.264"로 선택

해상도 : 1280x720
팟플레이어가 1360x768 방송을 지원하지 않습니다

크기조절방법 : Lanczos

디인터레이스 : 밑의 원본FPS 체크시 설정무시

품질 : 회선에 따라 2000~4000kbps

초당 프레임수 : 원본 FPS 체크시 설정무시

가능하면 원본 FPS 사용 체크

네트워크 지연시 화질 낮춤 : 회선에 따라 선택

압축시 별도의 쓰레드 체크



7. 방송 중 동시에 녹화까지 할 경우
과거포스팅 중 6번항목 "방송 중 동시에 녹화까지 할 경우" 참조


8. 실제 캡쳐영상

Pop'n Music 21 Sunny Park HD mode 1360x768 60fps Analog, Avermedia C127
Pop'n Music 20 Fantasia SD mode 480i, SC-500N1/DVI
Pop'n Music 18 せんこく列伝 SD mode 480p, SC-500N1/DVI



Pop'n Music 21 Sunny Park HD mode 1360x768 60fps Analog, Game Broadcaster HD C127

2014/03/09

[Review] Review of capture cards

List of capture cards  I had experienced

Avermedia Game Broadcaster HD (C127)
iEi HDC-302E (302E)
Micomsoft SC-500N1/DVI (SC500)
Micomsoft SC-512N1-L/DVI (SC512)
Skydigital HD6 express X (HD6EX)
Skydigital SKYHD Capture X (CX)
Skydigital SKYTV HD RED (RED)
Timeleak HD72B (HD72B)

Test PC spec.
CPU : Intel Xeon E3-1230 V2 / Core i3 3230
MB : Asrock Z77 Pro4
RAM : Samsung PC3-12800U 8GB x2
GPU : Asus Geforce GTX 650 Ti
PSU : Antec VP650P 650W
SSD : Samsung 840 Pro 128GB for Operaing System
HDD : Seagate ST2000DM001-1CH164 for H.264 compressed realtime video capture
RAID : LSI 9650SE-16MIL SATA 16ch for uncompressed realtime video capture
---- RAID level 0 : WD5000AAKS x4, R/W Seq. from 495MB/sec to 240MB/sec at 80%

OS : Each cards were tested under below operating systems.
Windows XP Professional x86 for HD6EX, RED,SC500
Windows XP Professional x64 for HD6EX, HDC-302E,SC500
Windows 7 Professional x64  for SC5XX, C127, HD72B, CaptureX, HDC-302E
Windows 8/8.1 Pro x64 for SC500,SC512, C127, HD72B
Ubuntu 12.04 LTS for HDC-302E
Software : Virtualdub, Open Broadcaster Software, Amarec TV, Daum Potplayer


CPU consumption data
In cases of realtime H.264 software compressed encoding capture... (preset : very fast)
240p/480p, Intel Core2duo E6xxx Series, 40~80% depended on frame rate, motions.
720p : Intel i5 2500 (non-activated intel QSV), 10~30% used.
         Intel i3 550 (no-supported QSV), 20~50% used.
1080p60 : Intel i5 2500 (no-used intel QSV), 50~90% used.
               Intel i5 2500 (used intel QSV), 10~30% used.
               intel i3 3230 (no-used intel QSV), 100% used, it cannot be record smoothly.
               intel i3 3230 (used intel QSV), 10~30% used.
               Intel Xeon E3-1230V2 (no-supported intel QSV) 30~70% used.
               Intel i7 series above 3.3GHz, maybe same as Xeon E3-1230 V2
               Intel i3 4130 (no-used intel QSV), 40-60% used.
               Intel i3 4130 (used intel QSV), 10-20% used.

In cases of realtime uncompressed capture ... (YUV422 16bit)

- 240p/480p, bandwidth < 30MB/sec
Intel Core2duo E6xxx Series, less than 5%.

- 720p, bandwidth = 105.5MB/sec, Recommend 2 HDD of RAID0 system.
Intel i5 2500, less than 5%.
Intel i3 550, less than 10%.

1080p60, bandwidth = 238MB/sec
It MUST needed 3+ HDD of RAID0 or 2nd gen. or later of 1 SSD system.
intel i3 3230  less than 10% used.

In case of iEi HDC-302E for hardware realtime H.264 encoding
No needed for high spec. It can be recorded under core 2 duo E6700 system as 1080p60 dual stream simultaneously. However, the bundle software has no-support for hardware-decorded playing. If you want to playing recorded video, use the high spec. CPU or GPU-assisted environment.


Spec. Table

C127 HDC302E SC500 SC512 HD6EX CaptureX RED HD72B
PCI express
Interface
PCIe1 x1 PCIe1 x1 PCIe1 x1 PCIe2 x1 PCIe1 x1 PCIe1 x1 PCIe1 x1 PCIe1 x1
Chroma YUV422 YUV420 YUV422
Pseudo-RGB24
YUV422
Pseudo-RGB24
YUV422 YUV422 YUV422 YUV422
x64
Min. Res.
Chrominance
480i 480i 240p 240p 480i 480i 480i 480i
Max. Res.
Chrominance
1080p60 1080p60 1080i 1080p60 1080i 1080i
1080p24
480i 1080i
1080p24
Min. Res.
RGB
480p 480i 240p 240p - 480p - 480p
Max. Res.
RGB
1080p60 1080p60 1080i
1080p24
1080p60 - 1080i - 1080i
Max. Res.
Record
1080p30 1080p60 1080p60 1080i 1080p60 1080i 1080i
1080p24
480i 1080i
1080p24
Composite × × × ×
S-video × × × ×
Component × × ×
DSUB × (DVI-I) (DVI-I) × × × ×
DVI (HDMI) (HDMI)
x2
× (HDMI) × (HDMI)
HDMI ○ (x2) (DVI-I) × ×
HDCP × × × - -
Audio ch. 2ch 2ch (x2) 2ch 2ch 2ch 2ch 2ch 2ch
RCA input × × ×
SPDIF input × × × × × × ×
HDMI audio (DVI) - -
Compression SW HW SW SW SW SW SW SW
Pass Thru. × ○ (x2) × × × ×
Rec. Stability
(0.0~5.0)
4.0 4.5 5.0 5.0 1.0 3.0 3.0 3.5
Total
Comment
Nice! Double-
-record
Awesome Ultimate Sucks HDCP.
Not bad.
ATSC-
-HDTV
HDCP.
Cheap.



Input resolution
Note that this result is not meaning acceptable entirely both RGB and Chroma color.
For example, There are only acceptable for 480i resolution as RGB signal by SC-5xx series. Others cannot be acceptable for 480i as RGB, only for chroma color by chroma signal such as composite/S-video/component.

C127 HDC302E SC500 SC512 HD6EX CaptureX RED HD72B
240p/288p







480i/576i







480p/576p







720p







1080i@60f/50f







1080p@24f

※2




1080p@30f







1080p@60f/50f ※1






640x400@56Hz







640x480@60Hz







720x480@60Hz







800x600@60Hz







1024x768@60Hz







1280x720@60Hz







1280x768@60Hz







1280x1024@60Hz







1360x768@60Hz







1440x900@60Hz







1920x1080@60Hz ※1







※1 : Although 1080p60 preview is acceptable, actual record frame is 30fps.
※2 : Preview only. It cannot be record.

Comment

Avermedia Game Broadcaster HD (C127)
- Excellent solution for RGB capture via DSUB. However it is not possible to get the 240p/480i RGB signal screen into the DSUB.
- Perfect for HDMI capture below 1080p30/1080i, I'd recommend to use with HDCP stripper.
- Low input delay.
- Reasonable price.
- Wide-spread-used for arcade game live-broadcasting in game-center Korea


iEi HDC-302E (302E)
- Actually, this is for professional capture card.
- It can be only capable for AV standard resolution.
NTSC 480i/720p/1080i/1080p24/1080p30/1080p60
PAL 576i/720p/1080i/1080p25/1080p30/1080p50
- Output port can be usable for both real-time decode monitoring or just pass-thru.
- Output port can be usable for from 1 input to 2 output simillar as HDMI 1:2 splitter.
- It can be record 2 signal of 1080p60 simultaneously. The recording for individual resolution (i.e. input 1 720p, input 2 1080p60) are also possible.
- Directshow is not available.
- Linux SDK available.
- Automatically HDCP stripped, when the HDCP signal was into the input, the pass-through signal from output has been also stripped.


Micomsoft SC-500N1/DVI (SC500)
- Perfect solution for retro console, arcade PCB, NEC PC-9801
- Support non-standard resolution for arcade JAMMA PCB (XSYNC-1 or Syncstrike needed).
- Officially, the maximum input resolution is 1440x900p.
- According to Q/A by micomsoft, 1080p30 is only for XBOX360 via DSUB.
- HDCP stripper needed.
- Same as Startech PEXHDCAP.
- less than 1fps ~ 2fps input delay.


Micomsoft SC-512N1-L/DVI (SC512)
SHUT UP AND BUY THIS.
It support most of resolutions rather than others (from 240p to 1080p60, include non-standard of arcade JAMMA PCB).
- Completely same functional as SC-500N1/DVI, but this card is just extended for Full HD 1080p60.
- Pass-through port is available.
- Disadvantage : Expensive


Skydigital HD6 express X (HD6EX)
- Sucks.
- 2~4fps input delay.
- Good for HDTV(ATSC) capturing.
- Sometimes unstable.
- Don't buy this.


Skydigital SKYHD Capture X (CaptureX)
- Not bad.
- 2~3fps input delay.
- Ordinary for standard.
- HDCP can be stripped by trick.
- Wide support of input (composite, S-video, component, DVI/HDMI)
- SPDIF input


Skydigital SKYTV HD RED (RED)
- Good for HDTV(ATSC) capturing.
- Simply capture for retro game, VCR
- HD capturing for AUX input is not possible (480i only)
- Cheap.
- Well captured for arcade PCB "Ketsui(ケツイ) by CAVE" via composite/S-video with XAV-2s.

Timeleak HD72B (HD72B)
- Not good. Some pixels (approximately 4~6px) where the edge of the left/right screen has been force-cropped. This is only affect for preview/capture, NOT affected through pass-through output port.
- Automatically HDCP stripped, when the HDCP signal was into the input, the pass-through signal from output has been also stripped like HDC-302E mentioned above.
- When the pass-thru HDMI signal has displayed other devices (monitor, capture device), the force-cropped screen which is mentioned above has been recovered that checked by SC-512N1-L/DVI.
- Pass-through port is available.
- 2~3fps input delay.
- Cheap.
- Available resolution
NTSC 480i/480p/720p/1080i/1080p24
PAL 576i/576p/720p/1080i/1080p25


*** Example about "force-cropped" issue
 Unfortunately, I lost raw screenshot file by HD72B instead I attached resized screenshot.
Found original 1280x720 image, reuploaded.
Source : Playstation 3 dashboard, 1280x720p 60fps
Capture : Timeleak HD72B, 1280x720p 60fps with passthrough to Micomsoft SC-512N1-L/DVI that checking for cropped area.
 Figure 1. Bypassed signal has perfectly captured by SC-512N1-L/DVI, HDCP stripped by HD72B.
Figure 2. The screenshot image of Playstation 3 dashboard captured by Timeleak HD72B as HDMI signal without HDCP-stripper. The screen of left and right side has cropped approximately 4~6px from original screen, confirmed by bypass and used other card. Bypassed signal has perfectly captured by another capture card (SC-512N1-L/DVI). In addition, the screen has shifted about 2px to left from rather than perfectly-captured image. Note that image has resized from 1280x720 to 1024x576. Reupload 1280x720 original size image.


Some of peoples came from thread which is talking about capture card, thank you for visit. Many people want to use the internal capture devices, which is using PCI-E slot, that are relativily stable than external USB devices. I know about micomsoft XCAPTURE-1, blackmagic Intensity Extream, avermedia extreamcap U3. Especially both XCAPTURE-1 and extreamcap U3 are using USB 3.0 port that are unstable when it connect into USB port, which is controlled by low quality cheap. If you use these ones, you should to check your USB controller in motherboard, the capture device vendors recommended "Intel" and "Renesas" USB 3.0 controller.


One more thing, I have no experience about new 1080p60f internal capture card, skydigital supercast X6, which is using PCI-E 4x(actually 2x bandwidth) from Korea. This one unofficially support HDCP-stripping function as once skydigital did :). To striping HDCP, find 3 keys of "HDCP" keyword in registry editor then modify the value from 0 to 1. But I don't recommend of this one,  it's very unstable in certain system and has many of bugs in firmware/driver, still has many problems. (checked 2014/08/08) Some few reviewer saying "normally functional", but many people saying "have some compatibility problem in my PC". I have experience of some devices by this vendor, always feel fucking unstable.

(2015/6/12 added)
Found from other review, when the card is in 4x slot, it should be checked first motherboard has included PLX switch for pci express slot. If so then fine or unstable.

For 16x slot, it seems like fine in this state (using lastest driver).

Conclusion
Please don't buy skydigital devices. It's sucks.