45개 비디오테이프를 디지털화하기 위한 8년간의 여정 (1부)
지난 8년 동안 저는 이 비디오테이프 한 상자를 들고 네 곳의 아파트와 한 채의 집을 옮겨 다녔습니다. 모두 제가 어렸을 적 찍은 가족 홈비디오입니다.
600시간이 넘는 작업 끝에 마침내 원본 테이프를 버릴 수 있을 만큼 깔끔하게 디지털화하고 정리했습니다. 지금은 이렇게 볼 수 있습니다.


비공개 미디어 공유 서버에서 볼 수 있도록 디지털화한 모든 홈비디오
총 513개의 개별 클립이 있으며, 각각 제목과 설명, 촬영일, 등장인물 태그, 촬영 당시의 나이 정보가 붙어 있습니다. 모든 영상은 가족만 접속할 수 있는 비공개 미디어 공유 웹사이트에서 호스팅하고 있으며, 유지비는 한 달에 1달러도 들지 않습니다.
이 글에서는 제가 어떻게 해냈는지, 왜 8년이나 걸렸는지, 그리고 여러분은 어떻게 하면 조금 더 적은 노력으로 같은 결과를 얻을 수 있는지 설명합니다.
서툴렀던 첫 시도
2010년쯤, 어머니께서 VHS를 DVD로 변환해 주는 기기를 사서 집에 있던 홈비디오를 전부 변환하셨습니다.

어머니께서 만드신 테이프 원본의 DVD 사본입니다 (중간에 비어 있는 알파벳은 어디로 갔는지 모르겠습니다)
문제는 DVD가 단 한 세트뿐이었다는 점이었습니다. 가족 모두가 서로 다른 주에 살고 있어서 디스크를 돌려보는 일이 매우 불편했습니다.
2012년에 누나에게서 그 DVD들을 받았습니다. 저는 DVD를 리핑해 비디오 파일로 만들고 전부 클라우드 스토리지에 올렸습니다. 문제 해결!

Google Cloud Storage에 공유한 가족 홈비디오 DVD 리핑 파일
몇 주 뒤에 가족들에게 영상을 봤는지 물어봤습니다. 아무도 보지 않았습니다. 저도 보지 않았습니다. 유튜브 시대에 3시간짜리 정체불명의 파일을 내려받아 그 안에서 재미있는 장면을 찾는 일은 너무 지루하게 느껴졌습니다.
유일하게 들떠 있던 사람은 어머니였습니다. 어머니는 “좋네, 그럼 이제 이 테이프들 드디어 버려도 되니?”라고 하셨습니다.
아차 싶었습니다. 무서운 질문이었죠. 혹시 빼먹은 테이프가 있으면 어떡할까? 더 높은 화질로 디지털화할 수 있지 않을까? VHS 라벨에 중요한 정보가 적혀 있으면 어떡하지?
가능한 최고의 화질로 모든 영상을 빠짐없이 확보했다는 확신이 들기 전까지는 원본 테이프를 버리는 게 도저히 마음 편하지 않았습니다. 결국 직접 해야 했습니다.
그때는 제가 얼마나 큰 일을 시작하는지 전혀 몰랐습니다.
그렇게 어려워 보이진 않죠
왜 이 작업에 8년과 수백 시간이 걸렸는지 궁금하시다면 충분히 이해합니다. 저도 처음에는 쉬운 프로젝트라고 생각했습니다.
디지털화 과정은 처음부터 끝까지 이렇게 진행됩니다.
아니, 정확히는 이론상으로는 그렇다는 겁니다. 실제로는 이렇게 진행됐습니다.
대부분의 시간은 재작업에 쓰였습니다. 한 단계를 끝내고 한두 단계 뒤에 가서야 제 방식에 결함이 있다는 걸 알게 되곤 했습니다. 예를 들어 테이프 20개를 캡처하고 나서야 오디오가 미세하게 어긋난다는 걸 깨달았습니다. 또 몇 주간 편집을 하고 나서야 온라인 스트리밍을 지원하지 않는 형식으로 영상을 내보내고 있었다는 걸 알게 되기도 했습니다.
모두의 정신 건강을 위해, 독자 여러분을 계속 뒤로 돌려보내 처음부터 다시 시작하게 하는 대신, 과정이 순조롭게 앞으로 나아간 것처럼 설명하겠습니다.
1단계: 비디오 캡처
자, 다시 2012년으로 돌아가 보겠습니다. 어머니께서는 20년간 가족 홈비디오를 보관해 온 역할을 이제 끝내고 싶어 하셨고, 다음에 뵈었을 때 커다란 종이상자 가득 비디오테이프를 건네주셨습니다. 그렇게 제 디지털화 모험이 시작됐습니다.
가장 간단한 방법은 전문 업체에 맡기는 것이었습니다. 디지털화 전문 업체는 많고, 오래된 홈비디오를 전문으로 처리하는 곳도 있습니다.
저는 개인정보에 꽤 민감한 편이라, 제가 배변 훈련을 하는 모습이 담긴 영상(적절한 나이 때 찍은 것이니 오해 마세요!)을 낯선 사람에게 맡기는 게 내키지 않았습니다. 게다가 ‘비디오 디지털화가 얼마나 어렵겠어?’라고 생각했습니다.
결론부터 말씀드리면, 정말 어려웠습니다.
비디오 캡처 첫 시도
오래된 가족용 VCR이 아직 아버지 댁 지하실에 있어서, 점심을 함께할 때 찾아 달라고 부탁드렸습니다. 그리고 Amazon에서 저렴한 RCA-USB 변환 어댑터를 샀습니다. 이제 본격적으로 시작할 준비가 됐습니다.

TOTMC 비디오 캡처 장치, 이 과정에서 구입한 수많은 A/V 장비 중 첫 번째입니다.
USB 캡처 장치에서 들어오는 영상을 처리하기 위해 VirtualDub을 사용했습니다. 2012년 기준으로도 조금 오래된 프로그램이었지만, 그렇게까지 오래된 건 아니었습니다.

VirtualDub으로 네 살 때 아버지께 책을 읽어 드리던 장면의 원본 영상을 캡처하는 모습
지독한 오디오 싱크 어긋남이라는 재앙
편집을 시작하면서 오디오와 비디오가 미세하게 어긋나 있다는 걸 알게 됐습니다. 괜찮습니다, 오디오를 조금 옮기면 되겠지요.
10분 뒤, 다시 어긋났습니다. 처음에 충분히 옮기지 않은 걸까?
서서히 깨달았습니다. 오디오와 비디오가 단순히 어긋나 있는 게 아니라, 서로 다른 속도로 캡처되고 있었던 것입니다. 테이프가 진행될수록 점점 더 벌어졌습니다. 싱크를 맞추려면 몇 분마다 수동으로 오디오를 조정해야 했습니다.

비디오 장비가 오디오와 비디오를 서로 다른 속도로 캡처한다면, 유일한 해결책은 몇 분마다 수동으로 오디오를 보정하는 것뿐입니다.
10밀리초 빨리 들리는 소리와 10밀리초 늦게 들리는 소리를 구분하는 게 얼마나 어려운지 아십니까? 정말 어렵습니다! 직접 판단해 보십시오.
불쌍하고 착한 새끼 고양이 Black Magic과 놀고 있는 제 영상입니다. 오디오가 비디오와 미세하게 어긋나 있습니다. 오디오가 비디오보다 빠른 걸까요, 느린 걸까요?
오디오와 비디오가 어긋난 비디오 클립 예시
Magic이 점프하는 부분을 5분의 1 속도로 느리게 재생한 영상입니다.
오디오와 비디오가 어긋난 상태로 5분의 1 속도로 느리게 재생한 영상
수백 시간을 낭비하는 대신 100달러를 더 쓸 걸 그랬을까
오디오 보정만으로도 지루하고 미칠 것 같은 작업에 몇 시간이 걸렸습니다. 문득 Amazon에서 가장 저렴한 캡처 장치가 아닌 다른 것을 샀다면 이런 고생을 피할 수 있지 않았을까 하는 생각이 들었습니다. 조금 더 찾아본 끝에 새 장치를 하나 샀습니다.

비디오 캡처 장치를 구입하려는 두 번째 시도
새 장치로도 오디오 어긋남은 여전했습니다.
슈퍼로 가기
혹시 VCR 문제일지도 모릅니다. 디지털화 포럼에서는 “타임 베이스 코렉터”(TBC)가 있는 VCR에서는 오디오 어긋남이 발생하지 않는다고 했습니다. TBC는 Super VHS(S-VHS) VCR의 일반적인 기능입니다.
그렇지! 문제를 해결해 줄 슈퍼 VCR이 있는데, 왜 바보같이 일반 VCR로 낑낑대고 있었던 걸까요?
이제는 아무도 S-VHS VCR을 만들지 않지만, eBay에서는 아직 구할 수 있습니다. 저는 VHS 디지털화에 적합하다고 알려진 JVC SR-V10U 모델을 179달러에 구입했습니다.

eBay에서 179달러에 구입한 빈티지 JVC SR-V10U VCR
슈퍼 VCR이 우편으로 도착했습니다. 몇 달간 소리 싱크 문제로 고생한 끝에, 모든 문제를 해결해 줄 것 같은 장비를 손에 넣으니 너무나 기뻤습니다.
상자를 열고 모든 장비를 연결했지만, 오디오는 여전히 어긋나 있었습니다. 한숨만 나왔습니다.
지루한 문제 해결과 수년간의 정체
하드웨어 문제를 해결하는 과정은 정말 비참했습니다. 옷장에서 장비를 전부 꺼내고, 책상 뒤로 기어 들어가 모든 케이블을 연결한 뒤 캡처를 시도해 보고, 결국 안 된다는 걸 확인하는 일의 반복이었습니다.
어느 날은 2008년에 올라온 무작위 포럼 글에서 출처 불명의 서명되지 않은 중국산 장치 드라이버를 설치하라고 합니다. 말도 안 되는 소리지만, 지푸라기라도 잡는 심정으로 설치해 봤습니다. 문제는 해결되지 않았습니다.
다른 캡처 소프트웨어도 써 봤습니다. VCR의 자기 헤드를 청소하는 특수 VHS 테이프도 샀습니다. 세 번째 캡처 장치도 샀습니다. 결과는 언제나 같았습니다.
결국에는 매번 포기하고 모든 장비를 뽑아 다시 옷장 속으로 처박아 몇 달 동안 잊고 지냈습니다.
전문 업체에 맡기기로 하다
시간을 훌쩍 건너뛰어 2018년이 되었습니다. 저는 이 비디오테이프와 수많은 장비를 들고 네 곳의 아파트를 옮겨 다녔고, 이제 뉴욕시에서 매사추세츠로 이사를 준비하고 있었습니다. 혼자서는 절대 이 프로젝트를 끝낼 수 없다는 게 분명해진 상황에서, 이 짐을 또다시 옮길 수는 없다고 생각했습니다.
가족들에게 테이프를 디지털화 업체에 맡겨도 괜찮겠냐고 물어봤습니다. 다행히 아무도 개의치 않았습니다. 모두 다시 영상을 보고 싶은 마음이 훨씬 컸습니다.
나: 그런데 그러면 어떤 업체든 우리 홈비디오를 다 보게 되는 거잖아. 그래도 괜찮아?
누나: 응, 상관없어. 그런 거 신경 쓰는 건 너뿐이야. 잠깐, 처음부터 그냥 돈 주고 맡길 수 있었던 거야?
나: 어…
45개 테이프를 모두 디지털화하는 데 750달러가 들었습니다. 비싸게 들릴지도 모르지만, 그때 심정으로는 비디오 장비를 또 한 번 만지는 일을 피할 수만 있다면 얼마라도 낼 수 있었습니다.
파일을 받아 보니 화질은 의심할 여지 없이 더 좋았습니다. 제가 캡처한 영상은 항상 가장자리에 ‘찢어짐’ 현상이 있었는데, 전문가들은 왜곡 하나 없이 모든 영상을 디지털화해 주었습니다. 무엇보다 오디오와 비디오가 완벽하게 싱크가 맞았습니다.
전문 업체의 캡처본과 제가 직접 캡처한 영상을 비교한 영상입니다.
어머니께서 제가 처음으로 코딩을 하던 모습을 녹화한 테이프를 전문 업체가 캡처한 영상과 제가 캡처한 영상을 비교한 영상
2단계: 편집
홈비디오의 경우, 영상의 약 90%는 지루하고, 8%는 재미있으며, 2%는 정말 놀랍습니다. 테이프를 디지털화한 뒤에도 해야 할 일이 많습니다.
Adobe Premiere로 편집하기
VHS 테이프에는 긴 영상 클립과 그 사이의 빈 구간이 뒤섞여 있습니다. 테이프를 편집하려면 각 클립이 어디서 시작해 어디서 끝나는지 찾아내야 합니다.
편집에는 Adobe Premiere Elements를 사용했습니다. 평생 라이선스가 100달러도 안 합니다. VHS 테이프를 편집할 때 가장 중요한 기능은 확대 가능한 타임라인입니다. 이 기능 덕분에 장면 경계를 대략적으로 빠르게 찾은 뒤, 확대해서 클립이 시작하고 끝나는 정확한 프레임을 찾을 수 있습니다.

Adobe Premiere Elements에서 매우 유용한 확대 가능한 편집 타임라인
Premiere의 문제는 자주 멈추고 시작해야 한다는 점이었습니다. 제 작업 과정은 이랬습니다.
- 30~120분 분량의 원본 캡처 파일을 연다.
- 개별 클립의 경계를 표시한다.
- 클립을 내보낸다.
- 내보내기가 끝날 때까지 2~15분 기다린다.
- 테이프가 끝날 때까지 2~4단계를 반복한다.
긴 대기 시간 때문에 저는 비디오 편집과 다른 일을 끊임없이 오가야 했고, 몇 시간 동안 집중력이 흐트러졌습니다.
또 다른 단점은 재현이 불가능하다는 점이었습니다. 작은 오류 하나를 고치는 것이 전체 작업을 처음부터 다시 하는 것만큼이나 어려웠습니다. 이 문제는 비디오 공유 단계에 이르러 크게 발목을 잡았습니다. 그제야 웹 브라우저에서 바로 스트리밍할 수 있는 형식으로 영상을 내보냈어야 했다는 걸 깨달았습니다. 선택지는 두 가지뿐이었습니다. 수백 개의 클립을 내보내는 지루한 작업을 처음부터 다시 하거나, 이미 내보낸 영상을 다른 형식으로 재인코딩해 화질을 떨어뜨리는 것이었습니다.
자동 편집
부끄러울 정도로 많은 시간을 수작업에 쏟은 뒤, 문득 인공지능으로 문제를 해결할 수 있지 않을까 생각했습니다. 클립 경계를 찾는 일은 머신러닝에 적합한 작업처럼 보였습니다. 정확도가 완벽하지는 않겠지만, 80% 정도는 AI가 하고 나머지 20%는 제가 수동으로 고치면 되지 않을까 싶었습니다.
pyscenedetect라는 도구를 실험해 봤습니다. 이 도구는 비디오 파일을 분석해 장면이 바뀌는 지점의 타임코드를 출력해 줍니다.
$ docker run
--volume "/videos:/opt"
handflucht/pyscenedetect
--input /opt/test.mp4
--output /opt
detect-content --threshold 80
list-scenes
[PySceneDetect] Output directory set:
/opt
[PySceneDetect] Loaded 1 video, framerate: 29.97 FPS, resolution: 720 x 480
[PySceneDetect] Downscale factor set to 3, effective resolution: 240 x 160
[PySceneDetect] Scene list CSV file name format:
$VIDEO_NAME-Scenes.csv
[PySceneDetect] Detecting scenes...
[PySceneDetect] Processed 55135 frames in 117.6 seconds (average 468.96 FPS).
[PySceneDetect] Detected 33 scenes, average shot length 55.7 seconds.
[PySceneDetect] Writing scene list to CSV file:
/opt/test-Scenes.csv
[PySceneDetect] Scene List:
-----------------------------------------------------------------------
| Scene # | Start Frame | Start Time | End Frame | End Time |
-----------------------------------------------------------------------
| 1 | 0 | 00:00:00.000 | 1011 | 00:00:33.734 |
| 2 | 1011 | 00:00:33.734 | 1292 | 00:00:43.110 |
| 3 | 1292 | 00:00:43.110 | 1878 | 00:01:02.663 |
| 4 | 1878 | 00:01:02.663 | 2027 | 00:01:07.634 |
...
실제로 정확도는 약 80% 정도였지만, 도구가 한 작업을 검수하는 데 오히려 더 많은 시간이 걸렸습니다. 그럼에도 pyscenedetect는 이 프로젝트 전체에서 가장 중요한 깨달음 중 하나를 안겨 주었습니다. 장면 경계를 찾는 일과 클립을 내보내는 일은 별개의 작업이라는 점입니다.
나는 프로그래머라는 걸 기억해 냈습니다
그때까지 저는 Adobe Premiere에서 하던 모든 작업을 ‘편집’이라고 생각했습니다. 원본 영상에서 하위 클립을 잘라내는 일이 클립 경계를 찾는 일과 불가분하게 연결되어 있다고 느꼈습니다. Premiere가 그렇게 보여줬기 때문입니다. pyscenedetect가 메타데이터 테이블을 출력했을 때, 장면 탐색과 비디오 내보내기를 분리할 수 있다는 걸 깨달았습니다. 판도를 바꾸는 순간이었습니다.
편집이 그토록 지루하고 오래 걸렸던 이유는 Premiere가 각 클립을 내보낼 때까지 계속 기다려야 했기 때문입니다. 메타데이터를 스프레드시트에 기록하고 비디오를 자동으로 내보내는 스크립트를 작성한다면, 편집 과정은 훨씬 빠르게 진행될 것이었습니다.
게다가 스프레드시트는 제가 담을 수 있는 정보의 종류를 획기적으로 늘려 주었습니다. 처음에는 파일 이름에 메타데이터를 욱여넣었는데, 이는 제약이 많고 유연하지 않았습니다. 스프레드시트 전체를 활용하니 등장인물, 촬영 시기 등 영상을 볼 때 함께 보여주고 싶은 온갖 정보를 훨씬 더 많이 정리할 수 있었습니다.

거대한 스프레드시트에 홈비디오 메타데이터를 정리하는 모습
나중에는 그 메타데이터를 활용해 클립에 당시 우리의 나이 같은 정보와, 클립에서 무슨 일이 일어나고 있는지에 대한 자세한 설명을 추가할 수 있었습니다.

스프레드시트의 유연성 덕분에 클립에 대한 더 많은 정보를 담은 메타데이터를 기록하고, 클립을 더 쉽게 찾아볼 수 있게 만들 수 있습니다.
자동화된 솔루션의 영광
스프레드시트를 손에 넣은 뒤, 저는 CSV 파일을 입력받아 원본 비디오를 더 작은 클립으로 잘라 주는 스크립트를 작성했습니다.
이 시점에서 저는 Premiere에서 지루하게 클립 경계를 선택하고 내보내기 버튼을 누른 뒤 몇 분을 기다렸다가 다시 시작하는 과정을 수백 시간 동안 반복한 상태였습니다. 게다가 같은 영상에 대해 나중에 품질 문제를 발견하고는 이 과정을 여러 번 반복하기도 했습니다.
클립 자르기 부분을 자동화하고 나니 어깨에서 큰 짐이 내려앉았습니다. 메타데이터를 빠뜨리거나 잘못된 출력 형식을 선택할까 봐 걱정할 필요가 없어졌습니다. 나중에 실수를 발견하더라도 스크립트를 조금 고쳐서 다시 실행하면 됐습니다.
2부에서 계속됩니다
클립을 캡처하고 편집하는 것은 전체 과정의 절반에 불과했습니다. 남은 절반은 가족과 함께 재미있고 안전하며 저렴한 방식으로 공유할 방법을 찾는 일이었습니다.
이 글의 2부에서는 이 클립들을 한 달에 단 0.77달러로 가족과 공유하기 위해 사용한 오픈소스 미디어 서버에 대해 설명합니다.
일러스트: Loraine Yow.
이 클립과 스틸컷 일부를 공유하도록 허락해 주고, 애초에 모든 순간을 기록해 주었으며, 이 과정 내내 큰 힘이 되어 준 가족에게 특별한 감사를 전합니다.
글을 무작위로 읽기


