brunch

11.AI로 프로페셔널하게 활용하기 7

동영상 플레이어

by 갸리

애니메이션 스튜디오와 영화 CG 업계에서 리얼 필수템


애니메이션 스튜디오나 영화 CG 업계에서 '장비빨'을 논할 때 절대 빼놓을 수 없는 것 중 하나가 바로 리뷰 툴이에요. 작업 끝난 결과물을 확인하는 동영상 플레이어. 이거 없으면 정말 일이 안 돌아가거든요.


최종 편집용 시퀀스 이미지랑 컨펌용 MOV 파일을 뽑아내는 건 이 업계에서는 그야말로 국룰! 감독님이나 동료 아티스트에게 피드백을 받아야 하는데 영상이 버벅거린다? 상상만 해도 끔찍하죠. 렉 걸리는 순간 제대로 된 리뷰는 그냥 물 건너가는 거예요.

그래서 무거운 시퀀스 이미지 대신 세상 가벼운 MOV 파일을 쓰는 거예요.


K-직장인의 "빨리빨리" DNA, 다들 아시잖아요? 1초라도 딜레이 되면 바로 분노 게이지 폭발합니다.

결국 모두가 원하는 건 가볍고 빠릿빠릿한 갓성비 툴. 내 작업물 후딱 확인하고 고칠 거 있으면 바로바로 수정해야 하니까요. 이때 선택지는 보통 두 가지로 갈립니다. 돈 좀 쓰는 상용 툴이냐, 무료 꿀템 오픈소스냐.



요즘 힙스터들의 선택, 오픈소스 플레이어...그러나

오픈소스 진영의 대표주자. DJV & Keyframe Pro를 빼놓을 수 없죠.

SCR-20250610-nhlr.png
SCR-20250610-nwnd.png
DJV & Keyframe-pro


상용 툴의 대장! HieroPlayer

The Foundry 사의 HieroPlayer도 아주 유명하고요.

SCR-20250610-ofig.png The Foundry의 HieroPlayer


그런데 말입니다... 상용 툴이든 오픈소스든 쓰다 보면 꼭 현타가 와요. 기능이 너무 많아서 탈이거나 아니면 정작 꼭 필요한 기능은 없거나. 둘 중 하나더라고요.

특히 비싼 돈 주고 샀는데 돈값 못하면 진짜 킹받아요. 물론 좋은 기능도 많겠죠. 하지만 솔직히 단순 리뷰용인데 이렇게까지 복잡할 필요 있나 싶어요.


제일 열받는 순간은 파일을 로딩할 때예요. 내 작업물 하나 보려고 매번 폴더를 찾아 들어가는 거. 정말 선 넘는 노가다죠. 이런 반복 작업은 상용 툴이든 오픈소스든 답이 없더라고요.

개발자 친구라도 한 명 있었으면 "야, 이거 좀 고쳐줘" 한마디면 끝날 텐데, 현실은 어림도 없잖아요.

SCR-20250610-onsc.png 파일 불러오기 / HieroPlayer




파일 열고 -> 찾아 헤매고 -> 겨우 플레이

임포트? 그거 이제 안 함.


앞서 말씀드렸듯이 상용 툴이든 오픈소스든 저희 회사처럼 미로 같은 폴더 구조와는 정말 상성이 안 좋더라고요. 특히 DB까지 쓰는 환경이라면... 그건 그냥 '폴더 지옥' 그 자체였죠.

그래서 저희가 만들 AI 플레이어의 첫 번째 미션은 아주 명확했어요. '파일 임포트, 이딴 거 그냥 없애버리자!' 아티스트들이 매일같이 폭발했거든요.


"아 불편해"

"진짜 불편하다고!"

"내 작업물 바로 좀 보자고!"



맨날 쓰던 DJV만 봐도 딱 답이 나오더라고요.


앱에서 '파일 열기'를 누르고...

미로 같은 '폴더 지옥'을 한참 뒤져서 내 영상을 겨우 찾고...

그제서야 플레이 버튼을 누를 수 있었죠.


매일같이 반복되는 이 지겨운 3단 콤보 말이에요.

SCR-20250611-jyuu.png
SCR-20250611-jzoo.png
SCR-20250611-katq.png
파일 오픈(좌) -> 파일 찾기(중앙) -> 동영상 플레이(우)

이게 왜 그렇게 문제냐고요?

작품 하나에 파일이 한두 개 들어가는 게 아니잖아요. 수백, 수천 개의 파일을 일일이 확인하려면 이 무한 반복 노가다는 그냥 기본 옵션이었어요.


게다가 폴더는 또 어떻고요. 작품 하나에 폴더가 정말 수두룩빽빽한데. 그 안에 또 폴더, 그 안에 또 파일... 이 무한 트리 구조를 클릭하다 보면 멘탈이 '바사삭' 깨지는 거죠.


이 지긋지긋한 폴더의 굴레에서 정말 벗어나고 싶지 않으신가요?

작업 폴더 구조






AI로 만들어보는 동영상 플레이어


AI 바이브 코딩으로 만든 동영상 플레이어 / 1차 초기 버전 완성


AI 코딩? 이제 '바이브 코딩'이라고 불러주세요!


요즘 들어 AI 코딩을 '바이브 코딩'이라고 부르는 이유요? 앞에서도 말했듯이 그냥 AI한테 질문하면서 마치 대화하듯이 프로그램을 만들어나가는 방식을 말해요. 코딩 1도 모르는 우리 같은 사람도 개발자가 될 수 있는 시대가 정말 온 거죠.


완전 신박하지 않나요?


누가 이런 판을 깔아줬냐고?

바로 ChatGPT, Claude, Grok, Gemini 같은 AI 모델들이에요. 이 똑똑한 친구들 덕분에 이제 우리도 사내 프로그램을 뚝딱 만들 수 있게 된 거랍니다.




기존 툴. 대체 뭐가 그렇게 답답했을까요?

그럼 우리가 기존 오픈소스나 상용 툴들을 쓰면서 대체 뭐가 그렇게 답답했는지 한번 돌아볼까요?



1. 듀얼 비디오 비교 기능? 그런 거 없음.

이전 버전(Take 1)과 수정 버전(Take 2)을 동시에 띄워놓고 뭐가 바뀌었는지 한눈에 비교할 수 없어서 작업 효율이 정말 뚝뚝 떨어졌어요.

Keyframe Pro & Hiero Player


물론, Hiero Player 같은 비싼 상용 툴에는 이 기능이 있긴 해요. 근데 저희가 자주 쓰던 오픈소스 툴에는 그런 기능 자체가 없어서 정말 답답했죠.



2. 파일 로딩: 로딩이 이렇게 힘들 일이야?

파일을 로딩하는 과정도 정말... 짜증 났어요. 필요한 영상 하나 보겠다고 매번 폴더를 클릭, 클릭, 또 클릭해서 찾아 들어가는 거. 너무 귀찮지 않나요? 기존 툴들은 정말 이 부분에서 답이 없더라고요.

SCR-20250619-pfgv.png HieroPlayer 파일 로딩




바이브 코딩으로 문제 해결 완전 가능!

이 플레이어는 애니메이션 스튜디오나 영상 만드는 곳에서 버전이 다른 두 영상을 '찐'으로 비교하고 분석하려고 만들었어요. 전문가분들의 작업을 도와줄 '꿀템'이 되었으면 하는 마음으로요.



핵심 기능? 이건 못 참지!

듀얼 비디오 비교: 상용 툴인 HieroPlayer처럼 Take 1, Take 2를 나란히 띄워놓고 정밀하게 비교할 수 있게 만들었어요.

와이프(Wipe) 효과: X축, Y축을 기준으로 두 영상을 슥~ 가르면서 비포 & 애프터를 확실하게 볼 수 있는 기능도 넣었답니다.

드래그 앤 드롭 & DB 연동: 파일 로딩은 이제 그냥 끌어다 놓으면 끝! 복잡한 폴더 구조도 알아서 착착 처리해주고요.



고급 기능으로 작업 효율 끝판왕 찍어보기!

정밀 프레임 제어: 키보드나 마우스로 프레임 단위로 콕콕 짚어가며 볼 수 있고요.

플레이리스트 재생: 여러 영상을 리스트에 담아두고 한 번에 쭉~ 이어서 검토하는 것도 가능해요.

줌/팬 기능: 세밀한 부분은 확대해서 꼼꼼히 보고 화면도 내 맘대로! (우리 연장자들 시력은 소중하니까요).

테마 전환: 다크 모드, 라이트 모드. 취향에 맞게 골라서 눈 편하게 작업하세요!



기술 스택도 완전 짱짱해!

UI: PyQt5로 전문가 포스 나는 인터페이스를 만들었고요.

비디오 처리: OpenCV + NumPy 조합으로 영상 처리는 그냥 끝판왕급으로!

미디어 엔진: QMediaPlayer로 오디오 싱크까지 완벽하게!

변환: FFmpeg를 통합해서 어떤 파일이든 뚝딱뚝딱 변환할 수 있답니다.

커서 바이브 코딩 화면





개발 전략: 게임 퀘스트 깨듯이 커서로 차근차근!

복잡한 영상 플레이어. 이걸 한 방에 만들 생각은 애초에 접어뒀어요. 일단 기본 기능부터 깔끔하게 만들고 거기에 차근차근 고급 기능을 추가하는 거죠. 각 단계마다 AI한테 뭘 원하는지 정확히 말해주는 게 핵심이에요. 마치 게임 퀘스트를 하나씩 깨나가는 것처럼요!



1. 초급 퀘스트: 뼈대부터 세우기!

초급

일단 영상 재생 앱을 만들려면 뼈대부터 세워야 하잖아요? 그래서 파이썬 기반으로 PyQt5를 픽했어요. 딱 이거다 싶었죠!


자, 그럼 이제 AI한테 이렇게 '주문서'를 던져보는 거예요.

"PyQt5를 사용해서 비디오 플레이어의 기본 윈도우를 만들고 싶어. 메인 윈도우에 비디오 재생 영역, 컨트롤 버튼들(재생/정지/이전/다음), 그리고 파일 목록을 보여주는 사이드바가 있는 레이아웃을 만들어줘."


Cursor에서 이렇게 물어보면 돼요. 벌써부터 코딩 냄새가 솔솔 나지 않나요?

SCR-20250623-jdgo.png 이제 커서에서 mov_player.py 이름의 빈 파일을 하나 만들어요.


커서: 바이브 코딩계의 치트키!

Cursor가 자동으로 코드를 작성.

SCR-20250623-jeaa.png 커서가 자동으로 코드 작성.

에이전트 모드 강추!

코드를 작성해주고 심지어 고쳐주기까지 한다니... 이거 완전 거져먹기 아니냐고요?

SCR-20250623-jeht.png


1분 컷! 미친 완성도에 할 말을 잃다

Cursor에게 질문 하나 던졌을 뿐인데 바로 코드를 쫙 짜주고 결과물까지 뚝딱 만들어주더라고요. 정말 기가 막힌 초기 프로그램이 딱! 하고 나왔어요.


솔직히 이거 사기캐 아니에요? 진짜 1분도 안 걸려서 나온 결과물인데 이 정도면 레알 미쳤다고밖에... 이제 여기서부터 세부 기능들을 하나씩 추가해나가면 된다는 거죠!

SCR-20250702-ozpw-3.png 1차 동영상 플레이어 완성.



2. 커서, 너란 녀석... 바이브 코딩 고민 해결사!

Cursor는 코딩도 자동으로 해주는데 심지어 이렇게 깔끔하게 자기가 뭘 만들었는지 정리까지 해줘요. 코딩 쌩초보들은 뭘 물어봐야 할지 막막하잖아요? 근데 커서가 이렇게 딱 정리해주니까 완전 개이득인 거죠! 나중에 기능을 더 추가하고 싶을 때 이 내용을 보고 질문하면 핵심만 쏙쏙 뽑아낼 수 있다고요!


주요 기능. 한번 파헤쳐 볼까요?


레이아웃 구성: 사이드바(파일 목록)와 메인 영역(재생 화면)을 분리해서 크기 조절도 가능.

비디오 재생 영역: QVideoWidget을 사용해서 비디오를 띄움.

컨트롤 버튼들: 재생/정지(▶/⏸), 이전(⏮), 다음(⏭), 진행 슬라이더, 볼륨 조절.

파일 목록 사이드바: 파일/폴더 추가는 물론, 리스트에서 더블클릭하면 바로 재생.

시간 표시: 현재 재생 시간과 총 재생 시간을 MM:SS 형식.

스타일링: 다크 테마를 기본으로, 모던하고 예쁜 UI 디자인 추가.


커서가 이렇게까지 다 해주면, 코딩 진짜 해볼 만하지 않아요?




3. 커서 편집 기능: 코딩 수정도 힙하게!

Cursor가 코드를 고쳐줄 때 그냥 휙 바꾸는 게 아니에요. 마치 '틀린 그림 찾기'처럼 뭐가 어떻게 바뀌었는지 한눈에 딱! 보여준답니다.


새로 추가된 코드는 초록색으로 지워질 코드는 빨간색으로 표시해주는데 이 디테일 정말 센스 있지 않나요?

코드를 쭉 훑어보고 '오, 완벽한데?' 싶으면 아래 Accept file 버튼만 꾹! 눌러서 확정하면 끝이에요.


반대로 '어? 이건 좀 아닌데?' 싶을 땐 바로 Reject file을 눌러서 쿨하게 없던 일로 만들 수 있답니다. 실수할까 봐 걱정할 필요 없이 정말 편하고 힙하게 코드를 관리할 수 있죠?

SCR-20250623-jmfd.png 수정된 코드 화면
SCR-20250623-jnsa.png Accept file 클릭 후



4. 기능 추가: 프레임 카운트까지 다 보여줘!

시간만 나오니까 뭔가 2% 아쉽잖아요? 저희 같은 영상쟁이들에게는 '프레임'이 생명인데 말이죠. 그래서 Cursor에게 바로 질렀습니다.


"시간 표시"
"현재 재생 시간과 총 재생 시간 표시와 함께 프레임으로도 나오게 수정해줘."


그랬더니 Cursor가 알아서 코드를 샥샥 고쳐주는데 역시나 새로 추가된 코드는 초록색으로, 지워질 코드는 빨간색으로 딱딱 보여주더라고요.

SCR-20250623-jrlr.png 코드 수정


프레임 표시 기능 추가 완료!

이제 기존의 타임코드 아래에 프레임 정보까지 함께 나와요. 완전 편리 그 자체죠!

프레임 정보 표시 추가

이렇게 추가된 기능은 Cursor가 또 친절하게 정리해서 보여준답니다.


1. 시간 표시 개선

시간: 현재 재생 시간 / 총 재생 시간 (MM:SS 형식)

프레임: 현재 프레임 / 총 프레임 수

FPS: 비디오의 프레임 레이트 표시


2. 레이아웃 개선

시간 정보와 프레임 정보를 두 줄로 표시

FPS 정보를 오른쪽에 별도로 표시

각 정보에 색상 구분 적용


3. FPS 추정 방법

ffprobe 사용: 가장 정확한 FPS 정보 추출

파일 확장자 기반: ffprobe 실패 시 일반적인 FPS 값 사용

지원 형식: MP4, AVI, MKV, MOV, WMV, FLV, WEBM


4. 실시간 업데이트

재생 중 현재 프레임 수 실시간 업데이트

재생 위치 변경 시 프레임 정보도 함께 업데이트


정말... Cursor가 이렇게까지 다 해주는데, 안 쓸 이유가 없겠죠?



5. 기능 개선: 시간/프레임 한방에 해결!

솔직히... 시간과 프레임 정보가 두 줄로 나오는 거. 좀 거슬리지 않으셨나요? 그래서 이걸 한 줄로 깔끔하게 합치고 시간 또는 프레임 정보를 '선택'해서 볼 수 있게 바꿔보기로 했어요. 이제 더 스마트하게 정보를 확인할 수 있다고요!

SCR-20250623-jywc.png 시간, 프레임 정보가 두 줄로 표시


그래서 Cursor에게 이렇게 부탁했죠.

"시간 정보와 프레임 정보를 두 줄로 표시하는데, 콤보 박스를 만들어서 시간과 프레임 정보를 선택할 수 있게 해줘."


23.png
24.png 시간과 프레임 정보 선택 가능.

추가된 기능, 한번 파헤쳐 볼까요?

정보 선택 콤보 박스: 이제 '시간+프레임', '시간만', '프레임만' 중에서 원하는 대로 골라볼 수 있어요.

동적 레이아웃 변경: 콤보 박스에서 옵션을 선택하는 순간 화면 표시가 실시간으로 착! 바뀌어요.

스타일링: 콤보 박스에도 다크 테마를 적용해서 '간지'를 통일했고요.

레이아웃 구성: 상단에는 콤보 박스와 FPS 표시. 하단에는 선택된 정보가 나오도록 깔끔하게 정리했어요.



사용 방법: 이젠 내 맘대로!

정말 쉬워요! 콤보 박스에서 원하는 표시 옵션만 딱! 고르면 끝.


"시간 + 프레임": 시간과 프레임 정보를 모두 보고 싶을 때! (기본값)

"시간만": 현재 시간 / 총 시간만 깔끔하게 보고 싶을 때!

"프레임만": 오직 프레임 정보만 집중해서 보고 싶을 때!


영상을 보다가도 언제든지 바꿀 수 있답니다.

시간 및 프레임 정보 선택 기능 추가

이렇게 하나씩 기능을 추가하면서 업그레이드해나가는 거예요. AI에게 질문할 때도 한 번에 너무 많은 걸 요구하기보다는, 이렇게 하나씩 퀘스트를 클리어하듯이 진행하는 걸 추천해요. 그래야 AI도 헷갈리지 않고 결과물도 훨씬 더 좋게 나오더라고요!






바이브 코딩으로 완성한 동영상 플레이어.


동영상 플레이어 최종 버전


핵심 기능: 솔직히 이 정도면 게임 끝!



드래그앤드롭 로딩: 그냥 끌어다 놓으면 끝!

파일이든 폴더든 그냥 플레이어 위로 휙~ 끌어다 놓으면 알아서 로드가 끝나요. 심지어 폴더는 자동으로 북마크에 추가돼서 나중에 또 찾아 헤맬 필요 없이 바로 접속할 수 있답니다. 이거 진짜 꿀기능이죠!

SCR-20250703-jkjp.png 드래그앤드롭 로딩


와이프 효과: 비포 애프터 확실하게!

X축 Y축을 기준으로 두 영상을 슥~ 가르면서 비포 & 애프터를 바로 비교해 보세요. 마우스로 분할선을 움직이면 실시간으로 화면이 바뀐답니다. 좌우든 상하든 내 맘대로 비교 가능해요!

SCR-20250703-jlvh.png
SCR-20250703-jncy-2.png
비디오 A, B 비교 (좌우 / 상하)


정밀 프레임 제어: 한 프레임도 놓치지 마세요!

키보드(← →)나 마우스 휠로 프레임 단위로 꼼꼼하게 탐색해 보세요. 슬라이더를 드래그하면 원하는 위치로 바로 점프! 프레임 바이 프레임으로 영상을 샅샅이 뜯어볼 수 있다고요!

SCR-20250703-jote.png 프레임 바이 프레임으로 동영상 탐색


플레이리스트 재생: 여러 개도 한 번에!

여러 파일을 선택해서 순서대로 쭉~ 재생! 한 번에 몰아서 검토하기 정말 좋아요. 지금 재생 중인 파일은 빨간색으로 딱 하이라이트 되니까 헷갈릴 일도 없고요!

SCR-20250703-jrrt.png 멀티 플레이


줌/팬 기능: 확대 축소는 기본!

'+/-' 키로 확대/축소하는 건 기본. 마우스로 화면도 자유롭게 움직여 보세요. 애니메이터, 감독님들이 세밀한 작업을 검토할 때 완전 필수템! 줌 아웃, 줌 픽스, 줌 인까지 다 된답니다!

SCR-20250703-jwzs.png
SCR-20250703-jxrw.png
SCR-20250703-jydk.png
줌아웃 / 줌픽스 / 줌인

GPU 가속: 버벅임 없이 시원하게!

NVIDIA CUDA나 AMD OpenCL을 지원해서 고해상도 영상도 버벅임 없이 처리할 수 있어요. CPU든 GPU든 원하는 걸로 골라 쓸 수 있는 재미까지!

SCR-20250623-nals.png gpu 가속


테마 전환: 눈 피로도 안녕!

다크 모드와 라이트 모드 중에 골라서 작업 환경을 최적화해 보세요. 'T' 키 하나면 바로바로 바뀌니까 눈의 피로가 확 줄어든다고요!

SCR-20250703-jyya.png
SCR-20250703-jzje.png
테마 전환 (단축키 T)


키보드 단축키: 손가락이 기억하는 스피드!

스페이스바(재생/정지), F(전체화면), V(UI 숨기기) 등, 직관적인 단축키가 다 있어서 작업 속도가 확 올라가요!

SCR-20250703-kahp.png
SCR-20250703-kaxh.jpeg
스페이스바 / V

북마크 시스템: 자주 가는 곳은 저장!

자주 쓰는 폴더는 북마크로 저장해두세요! 드래그앤드롭으로 넣은 폴더는 자동으로 북마크에 추가되니까 정말 편해요!

SCR-20250623-ncwt-2.png 즐겨찾기 편집


최종 완성 버전



마무리를 하며:


"바이브 코딩으로 진짜 쓸만한 프로그램 만들 수 있다고? 에이 설마!"


코딩 1도 모르는 분들이라면 이렇게 생각하는 게 어쩌면 당연해요. 저 역시 처음에는 "말도 안 돼!"라고 생각했으니까요.


진짜 쓸만할까? 의심은 이제 그만!


솔직히 오픈소스나 비싼 상용 툴을 정말로 대체할 만한 퀄리티가 나올까... 싶으실 거예요. 직접 해보지 않으면 의심만 가득한 게 당연하잖아요?


하지만 제가 앞에서 보여드린 결과물만 봐도 알 수 있듯이 AI의 도움을 받으면 웬만한 프로그램은 정말 뚝딱 만들어진답니다. 이건 더 이상 미래의 이야기가 아니라, 지금 이 순간에도 계속해서 증명되고 있는 현실이에요.


특히 동영상 플레이어 같은 경우는 각 회사 상황에 딱 맞는 걸 찾기가 정말 어렵잖아요. 그런데 이제는 AI와 함께 이렇게 멋진 플레이어를 직접 만들 수 있고 앞으로는 훨씬 더 쉽게 만들 수 있게 될 거예요.

AI는 정말 하루가 다르게 미친 듯이 성장하고 있으니까요!



keyword
매거진의 이전글10.AI로 프로페셔널하게 활용하기 6