
OpenAI와 Agora를 사용하여 실시간 중계를 하는 OSS를 발견하여 구성을 읽어보았습니다
요약
OpenAI와 Agora를 활용하여 실시간 스포츠 영상을 분석하고 중계하는 오픈소스 프로젝트를 소개합니다. 영상 프레임을 샘플링하여 멀티모달 AI로 분석한 뒤, TTS를 통해 실시간 음성 중계를 구현하는 구조를 다룹니다.
핵심 포인트
- RTMP와 Agora를 활용한 실시간 영상 스트리밍 구조
- OpenAI 멀티모달 모델을 이용한 실시간 영상-텍스트 변환
- 중계의 품질을 높이기 위한 정교한 프롬프트 제약 사항 적용
- 비용 절감을 위한 시청자 유무 기반의 AI 작동 설계
최근 경기 영상을 보면서 그 자리에서 실시간 중계를 하는 AI OSS를 발견하여 흥미로웠기에 공유합니다.
먼저 한 가지 말씀드리자면, 이 프로젝트의 제작자는 제가 아닙니다.
제작자는 zicojiao 님입니다.
이것은 '나중에 요약하는 AI'가 아니라, 라이브 영상을 보면서 그 자리에서 실시간 중계를 하는 구조입니다. 우선 데모 영상을 보는 것이 가장 빠를 것 같습니다.

프로젝트는 여기 있습니다.
- GitHub: https://github.com/zicojiao/worldcupvoice
- Reddit: https://www.reddit.com/r/OpenAI/comments/1udx8it/i_tried_making_an_ai_world_cup_commentator_it/
이 프로젝트의 흥미로운 점은 AI가 텍스트만 받는 것이 아니라, 시청자와 동일한 라이브 영상을 보면서 중계한다는 점입니다.
전체적인 흐름은 대략 다음과 같습니다.
- OBS 등으로부터 RTMP로 영상을 전송
- Agora Media Gateway를 통해 RTC 채널로 송출
- Python 백엔드가 해당 영상을 구독
- 몇 초마다 프레임을 샘플링 (sampling)
- OpenAI를 통해 '지금 보이는 플레이'를 짧은 중계 문장으로 변환
- TTS로 음성화하여 동일한 채널로 반환
README와 코드를 살펴보며 특히 흥미로웠던 점은, 단순한 이미지 설명(image captioning)이 아니라 '중계'에 가깝게 만들기 위한 제약 사항이 상당히 강하게 들어가 있다는 것이었습니다.
예를 들어, 다음과 같은 방침이 보입니다.
- 이미지 캡션이 아닌 live football commentator로서 행동할 것
- 화면에 보이지 않는 골이나 반칙을 말하지 말 것
- 번호나 유니폼을 확인할 수 있을 때만 선수 이름을 사용할 것
- 읽을 수 없는 장면에서는 억지로 말하지 않고
NO_CALL을 반환할 것
또 하나 실용적이라고 생각한 점은 레이턴시 (latency)나 비용 처리입니다.
이 프로젝트에는 Start AI / Stop AI, viewer heartbeat, session TTL이 포함되어 있어, 시청자가 있을 때만 AI가 작동하도록 설계되어 있습니다.
개인적으로는 스포츠 중계 데모로서 재미있을 뿐만 아니라, accessibility (접근성) 측면에서도 가능성을 느꼈습니다.
인간의 중계가 생략하기 쉬운 공간 정보를 이러한 구조가 보완해 줄 수 있을지도 모릅니다.
저는 제작자가 아니기에 구현 의도를 완전히 파악하고 있는 것은 아니지만, 실시간 영상, 음성, 멀티모달 (multimodal) AI를 어떻게 연결할 것인가라는 관점에서 상당히 흥미로운 OSS였습니다.
혹시 비슷한 구성을 시도해 보신 분이 있다면, 레이턴시나 중계다운 느낌을 만드는 방법을 어떻게 생각하시는지 여쭤보고 싶습니다.
다시 한번 말씀드리지만, 제작자는 zicojiao 님입니다. 흥미로운 프로젝트였기에 공유했습니다.
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기