YBIGTA / 24th-de-highlighter

24대 DE팀 프로젝트 - 하이라이터: 실시간 영상 하이라이팅

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Highlighter: Real-time Video Highlighting

24대 DE팀 프로젝트 - 하이라이터: 실시간 영상 하이라이팅

1. 프로젝트 소개

1.1 프로젝트 명

하이라이터: 실시간 영상 하이라이팅

1.2 프로젝트 개요

하이라이터는 사용자가 원하는 영상을 입력하면, 실시간 채팅 트래픽을 계산하여 영상의 유의미한 장면들을 (하이라이트 영상들) 생성해주는 서비스입니다. 해당 서비스는 하이라이트 영상을 생성할 때 트래픽이 폭발한 채팅 목록 중 유의미한 키워드를 추출하고 어울리는 제목을 생성합니다. 또한, 트래픽에 기반한 영상 길이를 알맞게 조절하며, 최종적으로 유튜브에 자동으로 게시까지 해줍니다.

1.3 프로젝트 배경

온라인 스트리밍 서비스의 중요성이 커지고 있습니다. 이에 따라, 온라인 스트리밍 서비스의 콘텐츠 제작자들은 시청자들의 요구에 맞는 콘텐츠를 제작해야 합니다. 하이라이터는 이러한 콘텐츠 제작자들이 콘텐츠를 보다 쉽게 제작할 수 있도록 도와주는 서비스입니다.

1.4 프로젝트 목표

하이라이터는 다음과 같은 목표를 가지고 있습니다.

  • 사용자가 원하는 영상을 입력하면, 실시간 채팅 트래픽을 계산하여 영상의 유의미한 장면들을 생성해주는 서비스를 제공합니다.
  • 하이라이트 영상을 생성할 때 트래픽이 폭발한 채팅 목록 중 유의미한 키워드를 추출하고 어울리는 제목을 생성합니다.
  • 트래픽에 기반한 영상 길이를 알맞게 조절하며, 최종적으로 유튜브에 자동으로 게시합니다.

2. 프로젝트 구성

2.1 프로젝트 구조

Project Architecture

하이라이터는 다음과 같은 구조로 이루어져 있습니다.

  • Kafka Streams: 실시간 채팅 트래픽을 계산하여 트래픽이 폭증할 시 이벤트를 발생시킵니다.
  • MongoDB: 하이라이트 영상에 대한 채팅 내용 데이터를 저장합니다. 제목 생성에 쓰이는 키워드는 해당 DB에서 추출합니다.
  • Video Downloader/Processor: 사용자가 입력한 영상을 다운로드하고, 하이라이트 영상을 생성합니다.

3. 깃허브 컴포넌트 소개

3.1 highlighter-sliding-window

Kafka Streams를 이용하여 실시간 채팅 트래픽을 계산하는 컴포넌트입니다. 자바 프로젝트로 구성되어 있으며, Kafka Producer, Kafka Consumer, Kafka Streams Application으로 구성되어 있습니다.

3.2 video-stream

사용자가 입력한 영상을 다운로드하고, 하이라이트 영상을 생성하는 컴포넌트입니다. 파이썬 프로젝트로 구성되어 있으며, AWS SQS를 이용하여 영상을 bytestream으로 다운로드하고, FFmpeg를 이용하여 영상을 처리합니다.

3.3 videoUpload

하이라이트 영상을 유튜브에 자동으로 업로드하는 컴포넌트입니다. 파이썬으로 프로젝트로 구성되어 있으며, Youtube Token을 이용하여 유튜브에 영상을 업로드합니다.

3.4 youtube-live

유튜브 API를 이용하여 실시간 채팅을 가져오는 컴포넌트입니다. 또한, 해당 타임스템프들을 각각 json파일으로 변환하여 몽고DB로 전송하며, 카프카 프로듀서 API를 활용하여 실질적인 프로듀서 역할을 수행합니다.

3. 팀원 소개

이름 역할
성현준 팀장, KStreams, AWS
이우흥 Title Generation
서건하 KStreams
유지민 Video Downloader/Processor
오재현 MongoDB
류지현 Title Generation, Upload automation
임채림 Chatlog Retrieval (Docker), Kafka Producer
조윤영 Chatlog Retrieval (Youtube API)

About

24대 DE팀 프로젝트 - 하이라이터: 실시간 영상 하이라이팅


Languages

Language:Python 39.4%Language:Java 36.6%Language:Jupyter Notebook 23.5%Language:Dockerfile 0.5%