AWS 기술 블로그
Amazon Bedrock을 활용한 AWS Korea YouTube 채널의 숏폼 자동화 사례
소개
오늘 이 글에서는 생성형 AI 모델을 활용하여 숏폼 편집을 자동화하는 툴을 소개하고, AWS Korea 유튜브 채널에서 활용한 사례를 공유합니다.
생성형 AI는 등장 이후 산업 전반에서 활용되고 있습니다. 단순 대화를 주고 받는 챗봇부터, 고객 응대를 하는 컨택센터, 이미지 등에서의 인사이트 도출과 영상 생성 등, 이제 생성형 AI는 새로운 것이나 먼 미래의 기술이 아닌, 우리의 삶 속에 하나 둘 일상으로 자리 잡고 있습니다. 이 글에서는 생성형 AI의 여러 가지 가능한 활용 사례 중 숏폼 영상 편집 자동화 방법과 각자의 환경에서 직접 배포하여 활용해 볼 수 있는 툴을 소개합니다.
이 샘플 툴은 AWS Korea 유튜브 채널 운영에 활용되었습니다. 기존 채널에 업로드된 영상들을 툴을 활용해 별도의 편집 인력 없이 숏폼으로 재편집하여, 약 4주 동안 매일 1-2개씩 업로드했습니다. 사용자는 1시간 정도까지의 긴, 가로 형태의 영상을 1분 이내의 10개 이상의 세로 형태의 숏폼 영상으로의 편집을 자동화할 수 있습니다. 또한 사용자는 Amazon Bedrock의 원하는 모델을 선택하여 숏폼을 생성할 수 있으며, 툴은 각 숏폼에 대한 자막과 제목도 함께 생성합니다. 숏폼으로 변환 시 화면의 일부 영역만 선택해야 하는 문제를 해결하기 위해, 검수자가 원하는 구간의 화면을 직접 선택할 수 있는 기능도 지원합니다.
해당 툴의 제작에는 AWS의 생성형 AI 서비스인 Amazon Bedrock과 ASR(Automatic Speech Recognition) 서비스인 Amazon Transcribe, 동영상 편집을 위한 미디어 서비스인 Amazon Elemental MediaConvert를 활용되었습니다. 이 모든 서비스들의 워크플로우는 AWS Step Functions와 AWS Lambda로 구성된 서버리스 아키텍처로 구성되어 처리한 영상만큼만 과금되는, 매우 비용 효율적인 구조를 가지고 있습니다. 툴은 웹 애플리케이션으로 개발되어 AWS Amplify를 통해 백엔드 리소스를 배포하고, 호스팅될 수 있도록 구성되었습니다.
숏폼 영상이란?
숏폼 영상은 일반적으로 1분 이내의 길이가 짧은 형태의 영상 콘텐츠를 의미하며, 기존의 16:9와 같은 가로가 긴 영상 형태보다는 핸드폰에 맞는 9:16 등의 세로가 긴 영상 형식이 특징적입니다. 이는 2020년대 들어 여러 플랫폼에서 인기를 타며 모든 주류 SNS에서 가장 많이 소비되는 콘텐츠가 되었습니다. 실제로 오픈서베이의 2023년 2월 리포트에 따르면 소비자 10명 중 7명 (68.9%)은 숏폼 영상을 소비하고 있습니다.
이러한 흐름은 숏폼을 리테일을 넘어 모든 산업 분야에서 마케팅 도구로 활용되도록 하였습니다. 각종 SNS 플랫폼에는 숏폼을 활용해 브랜드 인지도를 상승 시키고자 제작된 여러 콘텐츠를 쉽게 접할 수 있습니다. 특히, 숏폼 영상 중에서는 롱폼 영상의 하이라이트를 재편집하여 업로드한 콘텐츠들이 큰 비중을 차지하고 있습니다. 이들은 하이라이트를 활용해 기존 영상으로 인입 시키는 대문 역할을 하거나, 그 자체로 긴 영상을 소화하기 쉽게 나누어 메시지를 간결하게 전달하는 데에 활용됩니다.
다만 재편집 작업은 해당 콘텐츠 전체를 이해하고, 어떤 부분을 추출할지 선택하고, 숏폼 영상에 맞게 양식을 수정하여 자막을 삽입 하는 등 반복적이고 소모적인 작업을 요합니다. 오늘 소개하는 툴에서는 이 편집 작업을 생성형 AI를 활용하여 자동화하되, 필요한 작업들에 대해서는 사람이 간단하게 검수하고 편집할 수 있는 유연성도 지원합니다.
AWS Korea Youtube 활용 사례
AWS Korea에서는 여러 고객 사례와 200개가 넘은 AWS 서비스들에 대한 가이드를 담은 세션 영상들을 AWS Korea 유튜브 계정에 꾸준히 업로드 하고 있습니다. 약 10년 동안 어느덧 2,000개에 달하는 영상들이 업로드 되었습니다. AWS Korea에서는 이러한 방대한 영상 콘텐츠를 AWS를 사용하고자 하는 분들이 더 쉽고 빠르게 이해할 수 있도록 숏폼으로 재편집하는 방안을 구상하였습니다. 하지만 동시에 이를 위한 추가 인력 없이, 과거와 현재 그리고 미래의 영상들까지 지속 가능하게 재편집할 수 있는 해결책이 필요했습니다. 아래 소개해 드릴 툴은 이러한 요구사항을 충족시키기 위해 개발 및 활용된 툴입니다.
AWS Korea에서는 이 툴을 활용해 4주간 기존에 업로드되었던 4개의 롱폼 영상을 재편집하여 총 약 30개의 숏폼 영상을 업로드하였습니다. 그리고 이를 위한 편집은 대부분 자동화되어, 몇몇 원하는 장면을 선택하는 시간을 합해서 1시간 이내에 전체 편집을 완료할 수 있었습니다. 현재 이렇게 편집된 영상들은 총합 1만 정도의 조회수를 기록하고 있습니다.
Gen AI Short-form Generator
해당 툴은 Gen AI Video Short-form Generator Repo 에서 확인할 수 있습니다. README 파일을 통해 자세한 배포 가이드를 확인하실 수 있으며, 각자의 AWS 계정에서 배포하여 활용할 수 있습니다.
아래 데모 영상은 툴의 전체 흐름을 보여줍니다.
사용되는 서비스 소개
Amazon Bedrock
Amazon Bedrock은 Anthropic, Cohere, Meta, Stability AI, Amazon 과 같은 여러 선도적인 AI 서비스들의 파운데이션 모델(FM)을 API를 통해서 제공하는 완전관리형, 서버리스 서비스입니다. Amazon Bedrock은 최신의 선도적인 모델을 신속하게 도입하면서도 서버리스 서비스로 운영되어, 사용량에 따라 과금되는 방식을 채택하고 있습니다. 이로 인해 높은 성능과 비용 효율성을 동시에 달성할 수 있습니다. 생성형 AI에 대한 접근 방식인 RAG 구성이나 Agent, Function Calling 등을 지원하여 보다 빠르게 생성형 AI 어플리케이션을 개발할 수 있도록 합니다.
Amazon Transcribe
비디오의 음성을 텍스트 및 자막으로 자동 변환하는 완전 관리형 ASR(Automatic Speech Recognition) 서비스입니다. 이 서비스는 자막 파일 형식 (SRT, VTT)으로 결과를 출력할 수 있어 동영상 편집 플로우에서 높은 활용도를 가집니다.
Amazon Elemental MediaConvert
비디오 파일을 처리하여 온디맨드 콘텐츠 배포 등을 도와주는 트랜스코딩 서비스입니다. 이 서비스는 영상의 포맷 변환에서부터 자막, 이미지 삽입, 간단 편집 등을 지원합니다. 출력의 비디오 분당 요금을 기준으로 사용한만큼만 과금되는 비용 효율적인 서비스입니다.
AWS Step Functions
AWS Step Functions는 개발자가 AWS 서비스를 활용해 여러 분산 어플리케이션을 구축하거나 데이터 및 기계 학습 파이프라인 등을 생성할 수 있도록 지원하는 시각적 워크플로우 서비스입니다. 아래 툴에서는 AWS Step Functions를 활용해 전체 흐름이 구성되어 있습니다.
AWS Amplify
AWS Amplify는 프론트엔드 개발자들이 클라우드 기반의 풀스택 애플리케이션을 손쉽게 개발하고 배포하는데 필요한 기능들을 제공합니다. 데이터 모델링, 인증, 서버리스 함수, 호스팅까지의 기능들을 AWS Amplify를 통해 몇 줄의 코드만으로 애플리케이션에 추가할 수 있습니다.
아키텍처 개요
활용되는 툴의 전체 아키텍처 및 흐름은 다음과 같습니다.
먼저 Frontend는 AWS Amplify를 통하여 구축 및 호스팅 되었습니다. AWS Amplify의 라이브러리를 활용하여 Amazon Cognito를 통한 인증 및 인가를 구성하였습니다.
다음으로 Frontend와 Backend간의 통신은 GraphQL 서비스인 AWS AppSync와 이벤트 기반 아키텍처에서 활용되는 Amazon EventBridge를 기반으로 이뤄집니다.
영상, 자막 파일, 전사 결과 등은 Amazon S3에 저장되어 관리되며, 사용자별 툴과 처리한 영상들에 대한 데이터와 추출한 하이라이트 구간 등은 NoSQL DB 서비스인 Amazon DynamoDB에서 저장 및 관리됩니다.
자동화에는 크게 두 개의 Step Functions Workflow가 활용되었습니다. 편집하고자 하는 영상을 업로드 후 검수 전까지의 하이라이트 추출 및 편집은 Workflow 1에서 작업되며, 검수 후 최종 숏폼 제작을 Workflow 2에서 이루어집니다.
사용자의 경험에 기반한 흐름은 아래와 같습니다.
1. 활용하고자 하는 모델 선택 및 영상 업로드
사용자는 다음과 같은 화면을 통해 자신이 편집하고자 하는 영상을 업로드합니다. 나아가 주제 및 하이라이트 구간 도출에 활용할 LLM 모델을 다음 드랍 다운을 통해 선택할 수 있습니다.
이때, 모델의 성능이 좋을수록 하이라이트 구간 추출 및 오류가 줄어들 수 있습니다. 다만 이는 영상의 길이와도 연관되어 있어, 처리하고자 하는 영상의 길이와 모델의 성능 등을 비교하여 적절한 모델 선택이 중요합니다.
2. 생성형 AI를 활용한 하이라이트 구간 추출 (Step Functions Workflow 1)
AWS Step Functions Workflow 1은 사용자가 영상을 처음 업로드하고, 이에 대한 1분 이내의 여러 하이라이트 영상들을 출력하는 워크플로우입니다. 사용자는 해당 워크플로우를 통해 생성된 여러 영상들을 최종 숏폼 형태로 만들기 전에 최종 검토를 할 수 있습니다. 순서는 다음과 같습니다.
- 영상 업로드 완료 시 첫 번째 Step Functions Workflow가 호출됩니다.
- Amazon Transcribe가 영상에서의 음성을 전사합니다.
- 생성된 영상의 전사 결과를 선택한 Amazon Bedrock의 모델에 입력하여, 해당 영상에서 다루어진 주요 주제들 및 아젠다를 도출합니다.
- (3)에서 도출된 주요 주제들과 전사 결과를 Amazon Bedrock에 입력하여 각각의 주제를 다루고 있는 대본 부분(하이라이트)을 도출합니다. 하이라이트는 영상 전체에서 해당 주제를 다루고 있는 여러 부분들을 LLM이 선택하고, 주어진 글자수 이내로 핵심만 담아 추출됩니다.
- AWS Lambda에서 (4)에서 추출한 부분들과 (2)에서 생성한 Amazon Transcribe 결과를 통해 해당 부분에 대한 실제 영상의 타임프레임을 추출합니다. 이때 타임프레임은 python difflib 라이브러리와 단어별 타임스탬프를 활용해 계산합니다.
- 추출한 타임프레임과 원본 영상을 기반으로 AWS Elemental MediaConvert를 활용해 긴 영상을 해당 부분에 대한 짧은, 가로 영상으로 재편집합니다.
- 재편집된 1분 이내의 영상에 대해 자막 파일을 Amazon Transcribe을 활용해 생성합니다.
3. 검수 과정
검수 과정에서 사용자는 1. 생성된 영상 제목 검토 및 수정, 2. 자막 검토 및 수정, 3. 구간별 화면 프레임 선택 과정을 진행합니다. 이때 수정 시 제목과 자막은 기존에 제목이 저장되었던 DynamoDB와 S3에서 최종 영상 제작 시 변경된 내용으로 반영됩니다.
- 사용자는 Edit Title에서 생성된 제목을 수정할 수 있습니다.
- Edit Video Frame에서 구간을 원하는대로 자를 수 있고, 해당 구간에서 1×1 비율로 최종 영상에 보이고자 하는 장면을 선택할 수 있습니다. 원하는 만큼 화면을 자르고 선택할 수 있습니다. 현재 툴에서는 1×1 비율로 고정되어 있지만, 이는 애플리케이션 코드와 백엔드 로직의 간단한 수정만으로 변경할 수 있습니다.
- 최종 영상에 삽입될 자막 파일에 대해 부정확한 전사 결과를 수정할 수 있습니다.
4. 최종 숏폼 생성 (Step Functions Workflow 2)
검수 및 구간 별 프레임 선택 이후 “Shortify” 버튼을 누르면 최종 숏폼 생성이 됩니다. 최종 숏폼 생성은 Step Functions Workflow 2로 실행됩니다.
- AWS Lambda는 사용자가 선택한 구간별 장면 등에 대한 정보를 기반으로 AWS Elemental MediaConvert를 실행할 Job Template을 생성합니다.
- 이후 AWS Lambda에서 AWS Elemental MediaConvert를 호출하여 최종 영상을 생성합니다.
5. 최종 영상 확인
위 서술한 아키텍처와 흐름으로 생성한 숏폼 영상 결과 예시는 위 화면과 같습니다.
주제 및 하이라이트 구간 추출 시 활용 프롬프트
툴에서 주제 및 하이라이트 구간을 추출 시 FM에게 지시하는 프롬프트는 다음과 같습니다.
- 주제 추출
Below is a transcript of a video. <script> {script} </script> Extract the agenda items from the script in the order they appear. Follow these guidelines: 1. Aim for at least 15 topics. If the video is short, provide as many as possible. 2. Topics should be specific and explanatory of the video's overall content. 3. Express each topic in the script's original language. 4. Keep proper nouns in their original language (typically English, but can be in Korean, Japanese, or other). 5. Format each topic like a concise video title, using 8 words or less. 6. Ensure topics follow the video's chronological order. Present the extracted agenda in this JSON format: <JSON> {{ "Topics": [ "Topic1", "Topic2", "Topic3", ... "Topic9" ] }} </JSON> Respond only with the JSON structure above, filled with the extracted topics.
전체 영상 내용에서 주제들을 순서대로 찾도록 명령하는 프롬프트입니다. 모델에게 영상의 대본을 주면서 15개의 주제를 찾도록 합니다. 출력 형식 역시 JSON 형태를 명시하고 있습니다. 필요에 따라 이 개수를 조정할 수 있으며, 프롬프트 역시 처리하고자 하는 영상의 종류에 맞게 최적화 할 수 있습니다.
- 주제에 대한 하이라이트 도출
FIND THE MOST RELEVANT CONTENT: Carefully read the entire <script> {script} </script>. Understand the given <Topic> {topic} </Topic>. <instructions> 1. Read the given <script></script> carefully. 2. Select the most relevant sentences or parts(consisted of sentences) that would come together and act as a separate script, best explaining the <topic></topic>. 3. Use [...] to indicate omitted text between non-consecutive selections. 4. Maintain the original language, including any errors. 5. Try to keep it less than 200 words. Not a must. 6. Format your response as follows: <thought> Briefly explain: - Your selection process - How you preserved the original text - Any challenges faced - Reasons for non-consecutive selections (if applicable) </thought> <Topic>Brief topic description</Topic> <JSON> {{ "VideoTitle": "Concise title summarizing the content", "text": "Your selection of relevant sentences, preserving original text exactly" }} </JSON> 6. Double-check for accuracy and format adherence. </instructions> <important_notes> Prioritize relevance and preservation of original text. Match the output language to the input script. Do not correct any errors in the original text. Maintain the exact format, including double curly braces in JSON. Try to keep the selection total in less than 200 words. Use [...] for non-consecutive selections. </important_notes> <examples> Example 1 (English): <script> The pyramids of Egypt are ancient monumental structures. Most were built during the Old and Middle Kingdom periods. The most famous Egyptian pyramids are those found at Giza, on the outskirts of Cairo. Several of the Giza pyramids are counted among the largest structures ever built. The Pyramid of Khufu is the largest Egyptian pyramid. It is the only one to remain largely intact. Egyptologists believe that the pyramids were built as tombs for the country's pharaohs and their consorts during the Old and Middle Kingdom periods. </script> <Topic>Egyptian Pyramids</Topic> <JSON> {{ "VideoTitle": "The Magnificent Pyramids of Ancient Egypt", "text": "The pyramids of Egypt are ancient monumental structures. Most were built during the Old and Middle Kingdom periods. [...] The Pyramid of Khufu is the largest Egyptian pyramid. It is the only one to remain largely intact. Egyptologists believe that the pyramids were built as tombs for the country's pharaohs and their consorts during the Old and Middle Kingdom periods." }} </JSON. </examples>
여기서는 앞서 모델이 추출한 주제들에 대해 이에 상응하는 스크립트 부분들을 추출하여 하나의 완성된 스크립트로 재구성하도록 모델에게 지시합니다. 모델로 하여금 전체를 이해한 후 해당 주제를 다루고 있는 부분에 대한 영상 제목 역시 생성하도록 합니다. 출력 형식 역시 JSON으로 명시합니다. 이때 모델에게 전체 부분을 200 단어 미만으로 추출하도록 명령하고 있습니다. 영상 길이를 보다 짧게 하고자 한다면 해당 부분을 줄일 수 있습니다.
툴에서는 이러한 프롬프트들을 사용하고 있지만, 효과적인 프롬프트 엔지니어링을 위해서는 지속적인 개선이 필수적입니다. 단계별로 생각하기, XML 태그 활용, 예시 등의 여러 프롬프트 엔지니어링 기술이 활용되었으며, 실제 프롬프트에서는 5-shot으로 5개의 예시를 모델에게 입력합니다. 관련하여 프롬프트 엔지니어링에 대한 더 자세한 가이드는 이 링크에서 찾아보실 수 있습니다.
결론
이 글에서 소개한 생성형 AI를 활용한 숏폼 영상 자동 편집 툴은 콘텐츠 제작과 마케팅 분야에서 새로운 가능성을 제시합니다. 이는 단순히 영상 편집 자동화를 넘어, 기존 콘텐츠의 가치를 극대화하고 더 넓은 타겟 독자들에게 더 빠르고 효과적이게 도달할 수 있는 방법을 제시합니다.
이 툴을 효과적으로 활용하기 위해서는 다음과 같은 고려점들이 있습니다:
- 원본 콘텐츠의 품질: 좋은 결과를 내기 위해서는 원본 콘텐츠의 품질이 중요합니다.
- 모델 선택과 프롬프트 최적화: 제시된 프롬프트를 참고하되, 여러분의 콘텐츠 특성에 맞게 조정해야 최적의 결과를 만들 수 있습니다.
- 검수 과정의 중요성: 검수 과정은 최종 영상의 품질을 위해서는 필수적인 과정입니다.
- 지속적인 피드백과 개선: 툴을 가장 기본적인 기능이 있는 상태라 생각해주시고, 결과물을 모니터링하고 지속적으로 개선해주세요.
- 최신 모델 동향 파악: AI 모델의 발전 속도가 빠른 만큼, 주기적으로 최신 모델을 테스트하고 적용해 보세요.
생성형 AI와 AWS 서비스의 결합은 이처럼 기존에 생각하지 못했던 새로운 솔루션을 만들어낼 수 있습니다. 여러분의 비즈니스에서도 반복적이고 시간 소모적인 작업들을 이와 같은 방식으로 자동화할 수 있는 부분에서 생성형 AI를 도입해보세요.