동영상에서 텍스트를 복사하는 일이 왜 어려운가
웹페이지에서 하던 그대로 트리플 클릭, 복사, 붙여넣기를 해 보다가 "아, 동영상은 문서가 아니지" 하고 깨닫는 일은 흔한 경험입니다. 화면에 떠 있는 글자는 영상의 일부, 즉 H.264나 HEVC에서 디코딩된 픽셀의 묶음입니다. 각 프레임은 그저 비트맵이고, 터미널 출력도, 슬라이드 글머리표도, 하단 자막도 모두 "그림"이지 텍스트가 아닙니다.
이 작업이 일반적인 스크린샷 OCR보다 까다로운 이유는 세 가지입니다.
- 압축 손실. 동영상 코덱은 대역폭을 절약하기 위해 고주파 디테일을 버립니다. 정지 화면에서는 또렷한 글자 윤곽도, 비트레이트가 낮은 스트리밍이나 720p 소스를 레티나 디스플레이에 맞춰 스케일업한 프레임에서는 흐려집니다.
- 모션 블러. 일시정지하려고 했어도 한 프레임 차이로 코덱이 키프레임 사이에 머물러 있어 글자가 번질 때가 있습니다.
- DRM. Netflix·Disney+·일부 Zoom 녹화·기업용 웨비나 도구는 영상을 보호 레이어에 그립니다. macOS가 이 보호 플래그를 존중하기 때문에, 스크린샷은 검은 사각형으로 돌아옵니다.
이 세 가지는 OCR 엔진 차원에서 해결할 수 있는 문제가 아닙니다. OCR보다 상류, 즉 영상이 화면에 도달하기까지의 경로에서 발생하는 일이기 때문입니다. 다행히 실제로 자주 마주치는 상황 — YouTube 프로그래밍 강좌, 인프런 녹화 강의, 줌 강의, Loom 사내 튜토리얼 — 대부분은 화면이 정상적으로 그려지고, 정상적으로 캡처됩니다. 핵심은 "올바른 프레임에서 멈춘 뒤, 해당 플레이어에 맞는 도구를 고르는 것"입니다.
먼저 라이브 텍스트를 시도하기 (어디에서 동작하는지 정확히 알기)
동영상이 Safari 안에서 재생되고 있다면 Apple의 라이브 텍스트가 가장 손쉬운 길입니다.
- 동영상을 일시정지합니다.
- 정지된 화면에서 마우스 오른쪽 버튼을 클릭합니다.
- "라이브 텍스트 표시"를 선택합니다(시스템이 선택 가능한 텍스트를 감지했을 때만 표시됩니다).
- 원하는 부분을 드래그로 선택해 복사합니다.
이렇게 동작하는 이유는 Safari가 WebKit 기반이고 Apple이 WebKit과 Vision 프레임워크를 긴밀하게 통합해 두었기 때문입니다. 일시정지하면 WebKit이 현재 프레임을 정지 이미지로 시스템에 넘기고, Vision이 그 위에서 인식을 수행하며, 플레이어 측에 선택 레이어가 덧씌워집니다. 별도 앱도, 외울 단축키도 필요 없습니다.
다만 대부분의 글이 짚지 않는 중요한 제약이 있습니다. 동영상 프레임에 대한 라이브 텍스트는 Safari 전용입니다. Apple은 이 훅을 다른 브라우저에 공개하지 않았고, Chrome·Firefox가 사용하는 GPU 컴포지팅 경로는 라이브 텍스트가 들여다보는 레이어를 우회합니다. macOS Sonoma·Sequoia 시점 기준으로 Chrome·Firefox·Brave·Arc·Edge에서는 동영상을 일시정지해도 "라이브 텍스트 표시" 메뉴가 나타나지 않습니다. Mac용 Chrome은 일반 이미지에는 라이브 텍스트가 적용되지만 video 요소의 현재 프레임에는 적용되지 않습니다.
라이브 텍스트가 조용히 작동하지 않는 곳
Safari를 벗어나는 순간, 동영상 프레임 위의 라이브 텍스트는 사라집니다. 실제 사용 사례 중 상당수가 여기에 해당합니다.
- Chrome·Firefox·Brave·Arc·Edge. 많은 분들이 강의와 웨비나를 Chrome으로 시청합니다. 동영상 프레임에 대한 라이브 텍스트는 작동하지 않으며, 우클릭은 그저 브라우저 기본 메뉴일 뿐입니다.
- Mac 네이티브 플레이어. VLC·IINA·MPV·QuickTime Player는 자체 렌더링 파이프라인을 사용합니다. 라이브 텍스트가 닿지 않습니다.
- Zoom·Microsoft Teams·Webex 클라이언트와 녹화. 화면이 멀쩡히 보이더라도 회의 클라이언트는 커스텀 렌더링 레이어를 거치기 때문에 라이브 텍스트는 사용할 수 없습니다.
- 인프런·클래스101·줌(Zoom) 강의·카카오톡 PC 통화 녹화. 강의 플랫폼의 데스크톱 앱이나 Chrome 재생, 카카오톡 영상 통화 캡처 등은 모두 자체 재생 경로를 사용해 라이브 텍스트가 관여하지 않습니다.
- DRM 보호가 걸린 스트리밍. Netflix·Disney+·Apple TV+·웨이브·티빙 일부 콘텐츠. 스크린샷 자체가 검은 사각형으로 나오기 때문에 OCR 도구를 바꿔도 읽을 픽셀이 없습니다.
이 글이 라이브 텍스트를 깎아내리려는 것은 아닙니다. 사진·미리보기·메모·Safari 내부 이미지·동영상에서 라이브 텍스트는 매우 잘 만들어진 시스템 기능입니다. 단지 "강좌는 Chrome, 회의 녹화는 Loom, 슬라이드는 줌 재생"이라는 현실 시나리오에는 맞지 않을 뿐입니다.
모든 상황을 커버하는 워크플로우
저희가 실제로 사용 중이며, Cheese! OCR을 설계한 기준이기도 한 흐름은 OCR을 "브라우저 기능"이 아니라 "시스템 수준의 동작"으로 바라보는 접근입니다.
- 동영상을 일시정지합니다. 스페이스 바를 누르고 플레이어가 안정될 시간을 잠깐 줍니다.
- OCR 단축키를 누릅니다. Cheese! OCR의 기본값은 ⇧⌘E입니다. 화면이 어두워지고 십자 커서가 나타납니다.
- 텍스트가 있는 영역을 드래그로 선택합니다. 강의의 터미널 창, 슬라이드의 글머리표, 웨비나 Q&A 패널 등 필요한 부분을 그대로 잡으시면 됩니다.
- 붙여넣습니다. 인식된 텍스트는 클립보드에 들어가 있습니다. Cmd+V로 노트, 코드 에디터, 카카오톡, 슬랙 어디에든 붙여 넣을 수 있습니다.
이 흐름이 어떤 플레이어에서도 통하는 이유는, Cheese! OCR이 브라우저나 video 요소나 회의 클라이언트에게 "지금 무엇을 표시하고 있나요?"라고 묻지 않기 때문입니다. macOS의 화면 캡처 API로 디스플레이의 픽셀을 가져온 뒤 그 위에서 Apple Vision을 로컬 실행합니다. OS 입장에서는 ⇧⌘4과 같은 종류의 동작이며, 화면에 그려져 있고 DRM으로 능동적으로 가려지지 않은 것이라면 무엇이든 캡처하고 OCR할 수 있습니다.
실무적인 이점 두 가지를 짚어 두겠습니다. 첫째, 모든 처리가 온디바이스에서 이루어집니다. Apple Vision이 Mac 내부에서 완결되며, 캡처된 프레임은 외부로 나가지 않습니다. Cheese! OCR에는 네트워크 권한 자체가 부여되어 있지 않습니다. 사외 공유가 곤란한 회의 녹화나 미공개 강의 자료를 다룰 때 평소보다 더 의미가 있습니다. 둘째, 히스토리가 남습니다. Cheese! OCR은 최근 인식 결과를 검색 가능한 목록에 보관하므로, 강의 영상에서 코드 스니펫을 연속으로 네 번 캡처해도 마지막 결과를 위해 앞의 셋을 잃을 일이 없습니다.
이 워크플로우가 해결하는 실제 사례
프로그래밍 튜토리얼
YouTube·인프런·Udemy·Coursera·Egghead. 강사가 화면에서 코드 한 줄을 입력하고, 그것을 그대로 에디터에 옮기되 다시 타이핑하고 싶지는 않을 때입니다. 일시정지하고 OCR한 뒤 붙여 넣으시면 됩니다. 최신 Apple Vision은 모던한 프로그래밍 폰트의 화면 녹화에 상당히 강하기 때문에, 보통은 들여쓰기를 조금 다듬는 정도, 비트레이트가 매우 낮은 스트리밍에서나 가끔 l과 1을 손보는 정도로 끝납니다.
온라인 강의 슬라이드
녹화 강의에서 강사가 슬라이드의 정의·공식·인용을 읽고 있는데, 그 슬라이드는 20초 만에 다음 챕터로 넘어가 버립니다. 일시정지 → 슬라이드 영역을 OCR → 다시 듣기로 돌아가는 흐름이 되감기 후 다시 정지해서 타이핑하는 것보다 훨씬 빠릅니다.
웨비나 Q&A·채팅 패널
녹화된 웨비나의 채팅 패널에는, 발표자가 라이브로 답하긴 했지만 발언으로 다시 반복하지 않은 가장 유용한 질문이 들어 있는 경우가 많습니다. 채팅 패널을 OCR하면 질문의 정확한 문장 그대로 손에 남길 수 있습니다.
글머리표 슬라이드 발표 영상
YouTube의 컨퍼런스 발표, 사내 전사 회의 녹화, 영업 킥오프 영상 등에서 발표자가 다섯 줄짜리 글머리표 슬라이드를 빠르게 넘깁니다. 회의 노트에 그 다섯 줄을 그대로 옮기고 싶을 때 OCR해서 붙여 넣으면 끝입니다.
동료가 보낸 줌·Loom 시연 영상
동료가 도구의 설정 방법을 Loom으로 녹화해 보냈는데, 화면에는 명령줄 스니펫이 떠 있습니다. 재생은 Chrome이나 Loom 데스크톱 앱입니다. 라이브 텍스트는 도와줄 수 없지만, 전역 단축키 OCR 도구는 도와줄 수 있습니다.
실제로 효율을 끌어올리는 팁
IINA로 프레임 단위 이동을 활용하세요. IINA는 MPV 기반의 잘 다듬어진 오픈소스 Mac 플레이어입니다. 방향키로 한 프레임씩 이동할 수 있어서, 원하는 글자가 1초도 안 되는 짧은 시간만 떠 있는 경우에도 가장 또렷한 프레임에 정확히 멈춰서 OCR할 수 있습니다.
고해상도 순간에서 멈추세요. 강사의 풀샷과 코드 줌인 화면이 번갈아 나오는 영상이라면 줌인된 프레임에서 OCR하시면 됩니다. 풀샷에 함께 잡히는 같은 코드는 코덱이 디테일을 보존할 수 없을 만큼 작습니다.
글자가 작다면 플레이어를 먼저 확대하세요. YouTube 등 대부분의 웹 플레이어는 Cmd++로 페이지 전체를 확대할 수 있습니다. 한 단계만 키워도 12px 자막이 18px이 되어 인식 정확도가 눈에 띄게 좋아집니다.
여러 프레임은 OCR 히스토리로 이어 붙이세요. 긴 코드 블록은 한 프레임에 다 담기지 않을 때가 있습니다. 프레임마다 캡처해 두면 Cheese! OCR이 검색 가능한 목록에 모두 남겨 주므로, 나중에 에디터에서 이어 붙이기만 하면 중간 결과를 잃지 않습니다.
자막이 있다면 OCR보다 자막을 우선하세요. 영상에 자막이 있고, 필요한 것이 대사뿐이라면, 자막이 항상 OCR로 인식한 인박힘 자막보다 정확합니다. 동영상 프레임 OCR은 자막에 들어 있지 않은 요소 — 코드, 슬라이드 글머리표, 채팅 패널, 화면 공유 문서 — 를 다루는 도구이지 대사 받아쓰기의 대안이 아닙니다.
출력을 신뢰하기 전에 알아둘 한계
동영상 프레임 OCR은 잘 동작하지만 만능은 아닙니다. 솔직한 한계 몇 가지를 정리합니다.
- 압축이 강한 영상은 일반 스크린샷보다 정확도가 떨어집니다. 1080p 화면 녹화를 480p로 송출하면 작은 한글 자모나
O와0의 구분에서 실수가 늘어납니다. 가능한 한 고화질로 재생하시기 바랍니다. - 아주 작은 글자는 먼저 확대하셔야 합니다. 13인치 레티나에서 10px짜리 글자를 띄우는 영상은 OCR이 힘들어합니다. 페이지나 플레이어를 먼저 키운 뒤 멈추시기 바랍니다.
- 애니메이션 자막은 동작이 끝난 뒤에 멈추세요. 자막이 0.5초 동안 슬라이드 인 한다면, 움직임이 완전히 끝난 프레임에서 일시정지하시면 됩니다.
- DRM 보호 녹화는 OCR 쪽에서 구제할 수 없습니다. 스크린샷이 검은 사각형으로 돌아온다면 어떤 OCR 도구로도 읽을 방법이 없습니다. 보호되지 않은 버전을 확보하는 길밖에 없습니다.
이 가운데 결정적인 단점은 없습니다. 동영상이 두 번 압축된다는 사실(코덱 한 번, 플레이어 스케일링 한 번) 때문에 일반 스크린샷 OCR이 가진 트레이드오프가 약간 증폭될 뿐입니다. 의도적으로 일시정지해 깨끗한 프레임을 잡는다면, 최신 Apple Vision의 강의 녹화 인식 정확도는 다시 타이핑하는 단계를 생략할 수 있을 만큼 안정적입니다.
한 줄로 요약하자면, 동영상은 결국 정지 화면의 연속이므로, 깨끗한 정지 화면 한 장을 잡을 수만 있다면 OCR은 통합니다. 먼저 일시정지하고, 다음으로 캡처하고, 그다음 OCR하시면 됩니다. 나머지는 지금 사용하는 플레이어에 맞춰 도구를 고르는 일뿐입니다.