[00:00]
오늘은 제가 최근에 실험해본 굉장히
[00:02]
흥미로운 것을 보여드리려고 합니다.
[00:03]
이 프로젝트를 통해 많이 배웠는데요
[00:06]
여러분도 오늘 몇 가지 배워가실 수 있을 것 같습니다.
[00:08]
전체 영상을 다루지는 않지만
[00:11]
제가 이것을 어떻게 구성했고
[00:13]
제게 얼마나 잘 작동하는지
[00:15]
보여드리고 싶었습니다
[00:19]
이를 통해 여러분이 이 워크플로우를
[00:22]
어떻게 활용할 수 있을지 아이디어를 얻으실 수 있을 것 같습니다
[00:24]
기본적으로 제가 AI 에이전트를
[00:27]
비디오 편집을 위해 어떻게 설정했는지
[00:29]
보여드리려고 합니다
[00:33]
간단히 설명드리자면
[00:35]
제가 한 방법은 이렇습니다
[00:38]
먼저 관심 있는 분야의
[00:40]
비디오 클립들을 수집했습니다
[00:43]
그리고 이 비디오 클립들에 라벨을 붙였습니다
[00:47]
자, 커서로 가보면
[00:50]
보시다시피 여기
[00:52]
예를 들어 이 클립부터 시작해보겠습니다. Sam Altman 1이라고 되어있네요
[00:55]
이건 OpenAI의 샘 알트만이 이야기하는
[00:59]
15초짜리 클립입니다
[01:02]
제가 한 일은 각 클립에 대한
[01:07]
대규모 라벨을 만든 것입니다
[01:09]
파일의 각 클립에 라벨을 붙였죠
[01:12]
클립 이름은 Sam Altman 1.mp4이고
[01:15]
설명은 '샘 알트만 인터뷰'
[01:19]
참고사항으로는 '샘 알트만과 OpenAI에 대한
[01:22]
콘텐츠에 적합함'이라고 적었고
[01:24]
길이는 15초입니다
[01:28]
이 정도의 정보만으로도 충분하다는 것을 알게 되었는데요
[01:30]
이 클립이 무엇에 관한 것인지
[01:36]
그리고 영상에 어떻게 맞출 수 있는지
[01:39]
이해하기에 충분했습니다
[01:42]
우리가 에이전트에 제공하는
[01:44]
또 다른 콘텐츠가 있는데요
[01:47]
바로 script.srt 파일입니다
[01:52]
이 파일에는 보이스오버의
[01:54]
모든 내용이 담겨 있습니다
[01:57]
예시를 보여드리겠습니다
[01:59]
아래로 내려가보면 예시를 찾을 수 있는데요
[02:02]
여기 보시면
[02:05]
타임라인이 있고
[02:09]
OpenAI가 그 경계를 넘어섰다는
[02:12]
모두를 두렵게 할 만한 내용이 있습니다
[02:14]
이 작은 세그먼트만으로도
[02:19]
에이전트가 샘 알트만 클립이
[02:23]
시작하기에 좋을 것이라고 판단할 수 있습니다
[02:26]
시작 부분에 OpenAI가 언급되어 있기 때문이죠
[02:28]
이런 식으로 스크립트의 모든 세그먼트를
[02:32]
검토하여
[02:35]
ffmpeg 명령어나 명령어 체인을 만들어냅니다
[02:39]
이는 사용 가능한 모든 클립과
[02:41]
라벨, SRT 파일을 가져와서
[02:44]
최종 영상을 만들어내는데
[02:47]
스크립트의 모든 줄에 맞춰
[02:51]
라벨에서 가져온 적절한 비디오 클립을
[02:54]
매칭시켜줍니다
[02:58]
이건 제가 오랫동안 하고 싶었던 것인데
[03:01]
몇 년 전에 시도했을 때는
[03:03]
에이전트가 충분히 좋지 않았고
[03:05]
모델들이 제대로 이해하지 못했습니다
[03:07]
하지만 최근에는 아주 잘 작동하고 있어요
[03:09]
오늘은 이것의 한 버전을
[03:11]
보여드리려고 합니다
[03:13]
이 시스템을 사용해서
[03:16]
어떤 결과를 얻을 수 있는지 보여드리죠
[03:18]
커서로 가서 한 번 실행해보고
[03:21]
클립들이 우리가 만든 스크립트와
[03:24]
잘 매칭되는지 확인해보겠습니다
[03:28]
비디오 에디터를 위한 프롬프트를
[03:30]
잠깐 살펴보면
[03:32]
주어진 이 클립들만 가지고
[03:35]
사용 가능한 클립들이 있고,
[03:37]
여기서 우리의 전체 클립들을 넣습니다. 이걸 Clips label.MDS라고 부르죠.
[03:41]
이 클립들을 프롬프트의 이 부분에 넣습니다.
[03:44]
프롬프트의 이 부분에 전체 클립 리스트를 넣고
[03:47]
여기로 다시 돌아와서 보시면
[03:50]
SRT 콘텐츠도 있는데, 이것은
[03:53]
타임스탬프와 스크립트가 있는 파일입니다
[03:56]
스크립트 세그먼트와
[03:57]
여기서부터 우리의 프롬프트로 들어갑니다.
[04:00]
제공된 리스트에서 클립을 사용해야 하고
[04:03]
정확한 SRT 타임스탬프를 사용하여
[04:05]
클립이 보이스오버 타이밍과 일치하도록 하고
[04:07]
계속해서 진행됩니다. 우리가 원하는 것은
[04:11]
SRT 파일에 있는 세그먼트 수가
[04:13]
우리가 사용하는 클립의 수와 일치하도록 하는 겁니다.
[04:16]
보시다시피 각 클립 세그먼트는
[04:20]
해당하는 SRT 세그먼트의
[04:22]
정확한 길이와 일치해야 합니다.
[04:24]
즉, 예를 들어 첫 번째 SRT 세그먼트가 있다면
[04:28]
그 클립의 길이는 3초여야 하고
[04:32]
그 다음 클립은 2초, 그 다음은 2초, 3초
[04:35]
이런 식으로 진행됩니다.
[04:40]
이해하시겠죠? 이것은 일종의
[04:42]
AI 에이전트가 수행해야 하는 빠른 비디오 편집입니다.
[04:47]
보시다시피 O3 mini를 사용했는데
[04:49]
제가 테스트해본 결과 성능이 좋았고
[04:52]
계속 이걸 사용하고 있습니다.
[04:55]
물론 앞으로 나올
[04:57]
다른 모델들도 시도해볼 생각이 있습니다.
[05:00]
이제 이걸 실행해서
[05:02]
이 모델이 얼마나 잘 클립들을 맞출 수 있는지
[05:06]
비교해볼 수 있습니다.
[05:09]
클립들을 맞추고,
[05:12]
보이스오버를 들어보면서
[05:14]
클립이 보이스오버의 내용과 일치하는지 확인할 수 있습니다.
[05:18]
이렇게 하면 영상이
[05:22]
더 흥미롭게 될 것입니다.
[05:24]
자, 이제 'python Video Edit'을 실행하면
[05:28]
실행했을 때 첫 번째로 하는 것은
[05:30]
비디오 길이를 찾는 것입니다.
[05:33]
이는 우리가 생성한 보이스오버를 기반으로 합니다.
[05:35]
오늘은 스크립트 작성 방법에 대해서는 설명하지 않겠지만
[05:38]
보시다시피
[05:40]
예상되는 클립 세그먼트의 수는
[05:43]
153개의 클립입니다.
[05:46]
전체 비디오를 만들기 위해 153개의 클립이 필요하고
[05:49]
우리의 보이스오버, 이 MP3 파일이
[05:55]
6분 44초이므로 영상도 그 정도 길이가 될 것입니다.
[05:58]
이 작업은 시간이 좀 걸릴 텐데,
[06:01]
전체 비디오를 생성하고
[06:04]
FFmpeg를 사용해서
[06:06]
153개의 클립을 모두 합쳐야 하기 때문입니다.
[06:08]
이제 이걸 실행시키고
[06:11]
클립이 완성되면 돌아와서
[06:13]
시청해보고 보이스오버와
[06:16]
잘 맞는지 확인해보겠습니다.
[06:19]
네, 보이스오버와 맞는지 보겠습니다.
[06:23]
좋습니다, 작업이 완료됐네요.
[06:25]
제 생각에는 몇 분 정도 걸린 것 같습니다.
[06:28]
GPU로 FFmpeg를 실행했고,
[06:32]
위로 스크롤해보면
[06:34]
'final output'이라는 비디오가 있고
[06:36]
아래로 조금 내려가보면
[06:39]
몇 초를 놓쳤지만
[06:42]
첫 프레임이 OpenAI와
[06:44]
관련된 것을 볼 수 있어서 좋네요.
[06:46]
자, 비디오를 띄워볼게요.
[06:50]
VLC 플레이어로 열어서
[06:52]
보이스오버와 비교해가며
[06:54]
어떻게 됐는지 들어보겠습니다.
[06:57]
네, 여기 있네요.
[07:00]
자막도 삽입되어 있고
[07:02]
배경 음악도 있고
[07:04]
보이스오버도 들어가 있습니다.
[07:06]
몇 가지 클립을 찾아보겠습니다.
[07:08]
여기서 우리는 명확하게 볼 수 있죠.
[07:11]
우리의 AI 에이전트가 음성과 클립 레이블이
[07:13]
모두 일치하는 것을 찾았다는 것을요.
[07:16]
이 첫 번째 프레임부터 시작해보죠.
[07:17]
보시다시피 OpenAI의 샘 올트만 클립을 선택했습니다.
[07:20]
왜냐하면 여기 시작 부분에 OpenAI가 있기 때문이죠.
[07:23]
OpenAI가 방금 인공지능의 미래에
[07:26]
관심 있는 모든 사람들을
[07:28]
두렵게 할 만한 선을 넘었습니다.
[07:30]
파이낸셜 타임스 보도에 따르면,
[07:32]
이 회사는 비영리 이사회에
[07:34]
특별 의결권을 부여하여
[07:36]
주요 투자자들의 결정을
[07:38]
무효화할 수 있게 하려 합니다.
[07:40]
자, 이것이 첫 번째 클립이었습니다.
[07:42]
물론 모든 내용에 대해
[07:44]
클립을 가지고 있진 않습니다.
[07:45]
그러려면 정말 많은 클립을
[07:48]
수집해야 할 테니까요.
[07:49]
다른 클립들이 잘 매칭되는
[07:51]
부분을 찾아보겠습니다.
[07:54]
여기 일론 머스크가 OpenAI에
[07:56]
인수를 시도했다는 내용이 있네요.
[07:59]
한번 들어보시죠.
[08:01]
이런 움직임은 일론 머스크의
[08:02]
OpenAI 비영리 부문에 대한 974억 달러 규모의
[08:06]
인수 시도에 뒤이은 것으로,
[08:09]
이사회는 만장일치로 이를 거부했습니다.
[08:12]
꽤 좋았죠? 일론 머스크에 대한
[08:14]
내용이 나왔을 때, 우리는
[08:17]
일론 머스크에 관한 클립을
[08:20]
선택했다는 것을 알 수 있죠.
[08:22]
아주 잘 맞았습니다.
[08:25]
다른 완벽하게 일치하는
[08:27]
클립들을 찾아보겠습니다.
[08:30]
여기 뭔가 찾았는데,
[08:31]
재생해보면 어떻게 매칭되는지
[08:33]
아실 수 있을 겁니다.
[08:34]
핵심 문제를 이야기해봅시다. 샘 올트만의 권력 장악,
[08:37]
비영리 조직을
[08:38]
영리 조직에서 분리함으로써,
[08:41]
그는 러시아 인형 구조를 만들어
[08:43]
회사의 성공에 전혀 재정적 이해관계가
[08:46]
없는 사람들에게 최종 통제권을
[08:48]
주고 있습니다. 이건 이타주의가 아닙니다.
[08:50]
꽤 좋았죠. 다른 것도
[08:52]
찾아볼 수 있지만,
[08:54]
이제 요점을 이해하셨을 것 같네요.
[08:56]
AI가 이 모든 클립들을
[08:58]
찾아서 정렬할 수 있다는 것이
[09:01]
정말 인상적입니다. 비디오가 거의
[09:03]
6분 정도 되는데도 말이죠.
[09:06]
영상 끝부분에서도 클립들이
[09:09]
얼마나 잘 맞는지 봅시다.
[09:11]
여기 영상 끝부분에서
[09:13]
마크 저커버그가 나오는데, 그도
[09:16]
오픈소스 모델과 관련이 있어서
[09:18]
영상을 마무리하기에
[09:21]
좋은 아이디어라고 생각했습니다.
[09:23]
끝까지 클립을 매칭할 수 있다는 것을
[09:26]
보여주기 위해서죠.
[09:28]
완벽한 엔딩이었습니다.
[09:30]
네, 이것은
[09:31]
꽤 멋진 것이라 생각했고
[09:34]
다른 사람들이 시도하지 않은 것이라
[09:36]
공유하고 싶었습니다. 확실히
[09:39]
계속 실험해볼 만한 가치가 있죠.
[09:42]
하지만 이 설정에는 더 많은 것들이 있습니다.
[09:45]
지금은 영상 편집 부분만 다뤘는데,
[09:47]
만약 정말 관심이 있으시다면
[09:50]
제가 전체 튜토리얼과 코드를
[09:53]
제 채널의 멤버 섹션에 올려두었습니다.
[09:56]
원하신다면 확인해보세요.
[09:59]
이 코드와 튜토리얼에 대한
[10:01]
전체 액세스를 원하시면 설명란의 링크를
[10:04]
통해 채널 멤버가 되실 수 있습니다.
[10:05]
거기서 안내를 따라 주시면
[10:08]
GitHub 저장소에 초대해드리고
[10:10]
멤버 전용 영상도 보실 수 있습니다.
[10:12]
그리고 한 가지 더 했던 것은
[10:15]
이 영상들이 사람들의 반응이 어떤지
[10:18]
테스트해보고 싶었습니다.
[10:21]
그래서 제가 만든 완전 자동화 시스템을 통해
[10:24]
유튜브에 몇 개의 영상을 올렸습니다.
[10:28]
기본적으로 우리가 만든 모든 영상은
[10:30]
이전에 봤던 것처럼
[10:32]
바로 유튜브 채널로 업로드됩니다.
[10:35]
만든 영상 중 일부가 관심을 받아서
[10:38]
거의 3,000회 조회수를 기록했고
[10:40]
20명의 새로운 구독자도 생겼습니다.
[10:43]
아직도 조회수가 늘고 있고, 이 시스템을
[10:46]
다른 용도로도 활용할 수 있을 것 같습니다.
[10:49]
더 탐구해볼 생각인데요,
[10:50]
이 에이전트들과 모델들이
[10:53]
클립들과 레이블들을 연결하는 데
[10:55]
매우 능숙하다는 것을 발견했기 때문입니다.
[10:58]
물론 이것을 다른 용도로도
[11:01]
활용할 수 있을 것 같은데
[11:03]
이건 다음 영상에서 다루도록 하겠습니다.
[11:05]
네, 오늘은 간단한 맛보기였고
[11:07]
여러분께 아이디어를
[11:09]
제공해드렸길 바랍니다.
[11:12]
자, 이것이 제가 오늘 준비한 영상이었는데요.
[11:16]
이번 주말에 Claude 4가 나오길 기대했는데
[11:19]
정말 사용해보고 테스트해보고 싶었거든요.
[11:22]
어떤 것들을 할 수 있는지 시험해보고 싶었는데
[11:25]
다음 주를 기대해봅시다.
[11:27]
새로운 Claude 모델에 접근할 수 있게 될 거고
[11:30]
정말 기대됩니다.
[11:32]
그리고 소문에 의하면
[11:34]
OpenAI 모델들도 몇 개 받을 수 있다고 하니
[11:36]
아마도 다음 주가 매우 바쁠 것 같네요.
[11:39]
꽤 흥미진진할 것 같습니다.
[11:42]
시청해주셔서 감사합니다.
[11:43]
도움이 되는 아이디어를 얻으셨길 바라고
[11:45]
말씀드린 대로 설명란의 링크를 통해
[11:47]
멤버가 되실 수 있습니다.
[11:48]
그럼 좋은 주말 보내시고
[11:49]
곧 다시 뵙겠습니다.