원래 다큐같은 방송 녹화가 취미인데.. (녹화만 하고 거의 못보는 게 문제..)
DS120j + HD 홈런 4채널 지상파 튜너로 방송을 녹화 → 제가 광고 같은 거 다 잘라냄 → 라이젠 5 3200 16GB + GTX1060 3GB 컴터로 필요할 때만 켜서 6Mbps 2패스 H.264로 재인코딩 후 보관
의 과정을 수작업으로 하고 있습니다. 이 편집 과정은 아마 자동화가 좀 어려울 거 같고요... (근데 왠지 가능할 것 같다는 생각도 드네요)
그런데 얼굴 인식 기반으로 뉴스에서 아나운서나 기상캐스터 등 특정 인물만 뽑는게 가능할까? 하는 생각이 들었고 오픈클로한테 물어보니까 가능하다고 합니다.
준비물
· 뉴스 녹화본 (TS)
· 얼굴 인식용 캡쳐 이미지 파일 (위 TS 파일에서 캡쳐합니다)
방법
· 얼굴 인식 → 프레임 추출해서 인물 탐지 → 커팅 → 취합
의 과정이고 ffmpeg를 비롯한 몇몇 프로그램을 조합해서 오픈클로가 파이썬 위주로 코딩해서 자동화 시키는 구조입니다. 즉, LLM은 단순 코더고 실제 구동은 오픈클로가 설치된 PC의 리소스를 활용합니다. 즉, 컴터의 램과 깡성능이 이 작업의 성패(?)를 좌우하고요.
어느 정도 환경에서 돌아가는가?
애플실리콘 맥이 절대적으로 유리할듯 합니다. 저는 윈도우와 맥을 섞어 5대의 오픈클로를 돌리고 있고,
다른 작업을 할 때인데 라이젠 5 7530U + 32GB DDR4 조합의 경우 램의 여유가 있음에도 오픈클로는 5~6GB 정도의 램만 쓰더군요. (여유 램이 절반정도 남아있음)
문제는 램은 남고, 분명 부하가 큰 작업인데도 불구하고 위의 환경에서는 일부러 램을 안쓰고 작업 진행이 안 되는(...) 경우를 경험해서 아마 CPU 성능에 따라 램 사용량을 늘린다거나 할 거 같아요. 윈도우 오픈클로에 물어보니 공격적으로 시스템 리소스를 쓸 수는 있는데 전체적인 퍼포먼스 밸런스 측면에서 본인이 그 정도만 쓴다고 합니다. (근데 시킨걸 못 할정도로 리소스 관리에만 치중해버리니..)
왜 램 이야기를 하느냐... 지금 이 작업을 맥미니 M4 32GB에서 돌리는데요... 스왑만 100GB 이상 할 때가 많습니다. 영상 파일을 통으로 램에 올리고 이걸 프레임 단위로 쪼개서 보는 듯한 느낌이더군요.
즉, 외부 LLM 쓴다고 오픈클로는 가벼운 환경에서 실행해도 되요! 라는 말.. 오픈클로가 뭘 어떻게 하느냐에 따라 다르지만 활용처에 따라 로컬 리소스만 돌리는데도 192GB 맥스튜디오가 적정 환경이 될 수도 있다는 말씀을 드리고 싶습니다.
그리고 이 말인 즉슨, 아나컷 - 기캐컷 뽑는 덴 아직까지는 사람이 월등히 효율적이라는 말씀까지 드립니다 ㅋㅋㅋ
(MPEG-2 를 프레임 단위로 단순 편집만 해서 뽑아내기엔 제 경험으로는 윈도우 7 시절에 업데이트가 끝난 VideoReDo+ 라는 프로그램이 제일 편하더군요. 앞으로 사람 작업과의 비교는 이 프로그램을 기준으로 합니다)
시간은?
10분짜리 뉴스 파일이라고 할 경우 저는 시작 전 20분, 시작 후 20분 정도의 여유를 두고 녹화해서 실질적으로는 1시간 안팎으로 녹화가 됩니다. 10분 짜리 뉴스에 기캐컷만 뽑을 경우 처음엔 10~15분 정도 걸렸는데 나중엔 3~4분까지 시간이 단축되더군요.
제가 수작업으로 해도 2~3분 정도는 걸리는 거 같아서 10분짜리 뉴스는 사람이나 오픈클로나 큰 차이는 없어보이고 저는 이 작업을 윈도우에서 하니까 전기도 맥이 압승이지 않나 합니다.
그 다음 러닝타임이 긴 밤 시간 메인 뉴스나 아침 뉴스의 경우, 여러 명의 인물을 뽑아내야고 영상 길이도 길어져서 제법 과정이 복잡해집니다.
밤 시간 메인 뉴스라면 보도 / 스포츠 / 기상 3명 정도로 뽑아야하는데.. 오픈클로가 처음엔 무식하게
전체 스캔 후 보도 뽑고 → 또 전체 스캔 후 스포츠 뽑고 → 또 전체 스캔 후 기상을 뽑는등 50분짜리 뉴스에 세명 추출하는데 1시간이 걸리더라고요.
그리고 이 루트로 여러 뉴스 자동화 걸면 램 때문에 맥이 프로세스 죽여서 작업이 중단되는 경우도 있더군요. 그래서 추출은 한 번에 하고 취합만 사람대로 하면 되지 않냐고 오픈클로한테 물어보기 그게 맞다면서 그렇게 하고 작업시간은 1시간 → 15분 정도로 단축되었습니다 ㄷㄷㄷ
그런데.. 이거 막상 수작업으로 해보니 밤뉴스같은건 시간이 생각보다 오래 걸리고.. 무엇보다도 특정인만 커팅한다는 게 엄청 불편하더군요 ㄷㄷㄷ (이거 하시는 분들 대단하다는 생각이 드는..)
설령 한 시간이 걸리더라도 귀찮음을 감수하면 그냥 오픈클로가 10000배는 더 편한 느낌입니다 ㄷㄷㄷ
품질은?
제가 비디오리두플러스로 수작업을 할 때는 단 1프레임의 오차도 없이 잘라네는데(다큐같은 거) 오픈클로 작업본의 경우 0.x 초 정도의 마진은 두더군요. 처음엔 커팅 앞뒤로 1~2초 두길래 마진 0으로 셋팅하라고 했는데도 0.x 정도 오차는 발생하는 느낌이고,
뉴스 영상을 보면 아나운서가 데스크에서 보도를 하면 뒤에 배경에 해당 기사의 핵심 사진 같은 게 있잖아요. 그 뒤의 배경을 인식해서 난데없이 장동혁 보도 내용이 들어간다거나 할 때가 있더군요 ㄷㄷㄷ 그나마 이런 부분은 얼굴 학습시킨 후 학습된 얼굴만 매칭시키면 처음엔 좀 해매도 안정화 되면 큰 문제 없이 뽑더군요. (특히 인물 학습용 샘플 이미지 줄 때 두 명이 들어가있으면 안 되고 무조건 단독사진이 들어가야 하더군요.)
저도 많이 돌려본 게 아니어서 장담은 못하겠지만 데이터가 누적될수록 더 잘 할 것으로 보입니다 ㄷㄷㄷ
다른 오픈클로들과 연동하는 다중 작업들 (추후 예정: 오케스트레이션인가 하는 거)
뉴스(아나컷/기캐컷)는 아니고 다큐멘터리 녹화해서 TS 본 광고하고 앞뒤 잘라내기까진 제가 수작업으로 하지만 그 이전 이후는 오픈클로한테 맡겼던 자동화들인데 그 전에 제 나스가..
· DS918 (110TB HDD + 1TB SSD)
· DS120j(1TB SSD) - 녹화용
이 조합이고.. 녹화용 나스가 저성능이라 하드 물리고 다채널 녹화 시작하면 녹화본 상태가 영 매롱해서 SSD로 돌리거든요. 어쨌건 용량의 한계라는 게 있으니 윈도우용 오픈클로를 통해
· 녹화본 중 중복파일 자동 제거 → DS918로 자동 이동
까지 자동화 하고 제가 광고 앞뒤 잘라낸 최종 MPG 본을 만들면 그걸 다시 윈도우 오픈클로가 6Mbps 2패스 H.264 MP4 파일로 인코딩해주는 자동화까지 걸어놓고 쓰고 있거든요. 이렇게 오픈클로들을 조합하면 최종적으로 완성 가능한 자동화가
· 녹화가 끝나면 오픈클로 A가 DS20j → DS918로 녹화 파일 이동
· 시놀로지 드라이브로 DS918 → 맥미니 M4 32GB로 녹화 파일 동기화
· 오픈클로 B가 아나컷/기캐컷 추출 완료 및 원본 삭제
· 추출 완료된 파일은 시놀로지 동기화를 통해 자동으로 맥미니 → DS918로 동기화
· 오픈클로 A가 오픈클로 C를 WOL로 깨움
· 오픈클로 C가 추출 파일을 6Mbps 2패스 H.264 MP4로 변환하고 추출본 TS는 삭제 및 오픈클로 C는 자동으로 최대절전모드 진입
으로 작업이 최종 마무리 되고 지금은 오픈클로들한테 지시하는 걸 제가 수동으로 해주고 있는데 이걸 묶어서 자동화까지 해보는 게 목표.. 입니다만 이런 건 그냥 취미니 일단은 이즘에서 대충 마무리 지을 생각입니다.
다음 과제: 수천장의 원본 사진을 셀렉하고 보정까지 풀 자동화 걸기. 이건 이제 막 시작해서 어느 정도 결론이 나오는 시점 되면 사용기 게시판에 올리리겠습니다. (본문 내용이 취미의 영역이라면 이 영역은 제 업무의 영역이라 ㄷㄷ)
제 개인적인 생각으로는 얼굴 인식을 뭘로 할지 모르겠으나 보통은 opengl로 할텐데 맥보다는 nvidia계열 그래픽카드가 훨씬 유리하지 않나 싶습니다. mac은 opengl 지원이 끊겨서 아마도 metal api로 어떻게 하면 될거 같긴한데... 어떤 툴을 쓰시느냐에 따라 다를거 같네요.
지금 조합은 이렇게 쓰고 있습니다 보스. 💼
• Python: 전체 오케스트레이션(파일 탐색, 인물명 파싱, 구간 병합, 결과 정리)
• InsightFace (buffalo_l): 얼굴 검출/임베딩/인물 유사도 계산
• OpenCV (cv2): 영상 프레임 읽기(샘플링 스캔)
• FFmpeg: 실제 TS 구간 컷팅/concat (-c copy 무인코딩)
• NumPy/JSON: facebank 벡터/인덱스 저장 관리
즉 핵심은
Python + InsightFace + OpenCV + FFmpeg 조합입니다.
이라고 하네요 ㄷㄷㄷ
안그래도 오픈클로한테 물어보니 대략적으로 러닝타임 많아지고 뽑을 사람 많을수록 위 조합은 불리해진다고는 하네요.
그리고 결정적으로 라이젠 5 3200 + 1060 조합은 쓸 때만 킵니다 ㅋㅋ
그게 이 문젭니다 ㅋ
계속 켜져있는 나스에서도 가능하겠다 싶어서 설치했는데
되긴 하는데 Google CLI로 인증하게끔 해놨더니 묻고 답하는데 너무 오래걸리더라구요...;;
API로 하면 속도는 빠른데 제한이 있고...
이거 구글에서 막겠다고 이야기가 나왔으니 주의하시길 바랍니다
https://www.hani.co.kr/arti/economy/it/1247120.html