이번 프로젝트에선 스트리밍 게임을 시범적으로나마 지원해보려고 한다.
2950달러짜리 NVIDIA GRID K2장비도 장착했으니 기계값은 뽑아야겠기에 꼭 스트리밍 기능을 넣고 싶다.
몇 일간 문서를 읽어보고 원리를 파악했다. 개발계획도 대충 세웠다.
간단한 연습 프로젝트를 만들어서 테스트해본 후 GRID SDK를 개발중인 게임 프로젝트에 적용시키는 중.
GRID API의 NVIFR인터페이스를 사용하면 D3D의 렌더타겟을 캡쳐해서 H264 스트림으로 실시간 변환할 수 있다.
리모트 연결시에도 원격 머신의 GRID장비에서 이 작업을 수행할 수 있다.
단 NVIDIA GRID장비에서만 가능.
일단 게임에서 H264스트림을 잡아서 파일로 저장하는데까진 만들었다.
RAW H264 스트림을 그대로 파일에 저장한 형태인데 ffmpeg에서 플레이할 수 있다.
GRID SDK에서 H264 RAW 스트림을 디코딩하는 샘플은 지원하지 않는다.
CUDA SDK에서 CUDA를 이용한 디코딩을 지원하지만 NVIDIA GPU가 필요하므로 범용적인 사용을 위해서 직접 만들기로 했다.