2021/04/01

동영상에서 자막 추출 Python 소스

동영상에서 자막 추출 Python 소스

동영상 자체에 입혀져 있는 자막 텍스트로 추출
<동영상에 입혀져 있는 자막을 추출한다>

출처: 视频字幕提取神器,你不会还在用手记笔记吧?支持所有视频!

오늘 소개하는 동영상 자체에 입혀져 있는 자막을 텍스트로 추출하는 도구는 실제 사용하기에는 부족한 미완성 프로그램이다. 단지 자막 추출 도구가 필요하다면, 이보다는 이미 블로그에 소개한 「동영상 자체에 입혀져 있는 자막 추출하기」를 추천한다.

앞서 소개한 프로그램보다 사용법이나 성능 등 모든 면에서 떨어지는 프로그램을 소개하는 이유는 제작자가 소스를 공개했기 때문이다. 고로 실제 이용 가치가 있다기보다는 OCR API를 활용하여 뭔가를 만들고 싶은 초보 프로그래머들에게 도움이나 영감을 줄 수 있을 것 같아 소개하게 되었다.

提取视频字幕 도구는 Python 언어와 Baidu Ai Cloud에서 무료로 제공하는 OCR API로 만들어졌는데, 중국 커뮤니티엔 이런 식으로 상용 프로그램에는 많이 못 미치지만, (기능이 고급이건 간단하건) 자신이 직접 제작한 프로그램과 소스를 공유하고 이에 대해 덕담을 나누는 훈훈한 모습을 꽤 볼 수 있다. 마치 한국이 IT 강국이라 불리던 시절을 보는 것 같다고 할까나?

자작 소프트웨어 공유가 활발한 중국

최초 배포자가 소스를 공개하면 누군가 그 소스를 이어 받아 부족하다 싶은 기능을 더하고 버그를 수정해 다시 공유하는 모습을 중국 커뮤니티 사이트에선 심심치 않게 볼 수 있다. 사실 내 블로그에 지금까지 소개한 (SpeedPan, PanDownload, KinhDown, 각종 음원 다운로더 등) 중국산 프로그램과 앱 대부분이 전부 이름 없는 프로그래머들이 무료로 공유하는 소프트웨어다.

내가 간간이 찾는 한국 커뮤니티 사이트에선 좀처럼 구경하기 어려운 광경이다. 그것뿐만 아니라 한국에선 자작 소프트웨어를 무료로 공유하는 사람을 요즘은 거의 보기 어렵다. 지금 검색해서 나오는 것들은 거의 전부 과거의 산물이다.

자작 소프트웨어 공유가 한국에서 드문 것은 PC 통신과 그 뒤를 이은 인터넷 붐을 형성한 한국 최초의 인터넷 공유 세대가 지금은 한창 자기 일에 열중할 나이이기도 하겠지만, 그것보다는 돈이 안 되어서 그런 것이 아닐까 하는 생각이 씁쓸하기도 하다.

구글 클라우드 플랫폼, Baidu Ai Cloud처럼 한국에도 네이버 클라우드 플랫폼이 있지만, 상업 소프트웨어 개발자들만 쓰는 것 같고, 오늘 소개하는 프로그램처럼 네이버 클라우드 API를 이용한 간단한 프로그램이나 소스를 맛보기로나마 무료로 공유해주는 사람은 아직 못 봤다. 지금이라도 프로그래밍을 배워볼까 하는 생각이 아예 없는 것도 아니지만, 회식 자리에서 지갑 꺼내기는 쉬워도 지갑에서 카드를 빼 막상 계산대에 내밀기는 어려운 것처럼 말을 꺼내기는 쉽지만 그것을 행동으로 옮기는 것이 어디 그렇게 쉬운 일인가? 정말이지 배우고 싶은 것이 너무나 많다.

사전 준비

• 만약 提取视频字幕.exe가 동영상 재생에 실패한다면 LAVFilters 같은 코덱 설치

• 提取视频字幕.exe 및 소스 >> 다운로드 링크 / 암호: e2ae

• 필요하다면, 제작자가 공유한 자습서 동영상 참고

• 작업할 동영상 파일명은 下载.mp4으로 설정

동영상 자체에 입혀져 있는 자막 텍스트로 추출

[한국어 인식과 결과물을 텍스트로 저장하지 못하는 문제는 둘째치고, 이 프로그램의 치명적인 단점은 두 번째 줄에 있는 자막은 인식하지 못한다는 것이다!]

동영상 자체에 입혀져 있는 자막 텍스트로 추출

1. 시작하기에 앞서 자막으로 인식할 사각형 영역의 좌표 x1, y1, x2, y2(방정식이 아니니 당황하지 말자)를 구해야 한다.

동영상의 스크린샷(원본 크기)을 찍은 다음 그것을 포토샵으로 불러와 텍스트를 인식한 사각형 영역을 그리고, x1과 y1(왼쪽 위 꼭짓점), x2와 y2(오른쪽 아래 꼭짓점)를 구하면 된다.

좌표는 [Info] 탭에서 확인할 수 있으며, 인치나 센티미터가 아니라 픽셀값이다.

동영상 자체에 입혀져 있는 자막 텍스트로 추출

2. 이제 提取视频字幕.exe를 실행하면, OCR 인식 정확도를 선택하는 질문이 가장 먼저 나온다.

[普通识别(표준 인식)과 高精度识别(고정밀 인식)이 있는데, 1번을 선택하자. 이상하게 2번을 선택하면 인식이 안 된다.

동영상 자체에 입혀져 있는 자막 텍스트로 추출

3. 작업할 동영상 파일명을 미리 下载.mp4으로 해놨다면 엔터 눌러 통과하자.

동영상 자체에 입혀져 있는 자막 텍스트로 추출

4. 동영상에서 텍스트를 인식한 자막 부분에 해당하는 사각형 범위 좌표를 입력하는 곳이다.

1번에서 구한 좌푯값을 입력하면 된다(예: 292,479,1008,693).

동영상 자체에 입혀져 있는 자막 텍스트로 추출

5. 동영상의 스크린샷 간격을 설정한다. 기본값은 60프레임이다. 이 말은 60프레임마다 동영상 화면을 캡처해 자막을 텍스트로 인식한다는 말이다.

여기서 알 수 있듯, 동영상에 입혀져 있는 자막을 텍스트로 OCR하는 작업은 [화면 캡처 >> OCR] 과정이다. 좀 더 지능적인 프로그램은 동영상의 이어지는 프레임 속에서 변하지 않는 부분을 자막으로 정의한 다음 그 부분을 OCR한다.

앞에서도 말했듯,

• 한국어는 인식하지 못한다(누군가 네이버나 구글에서 제공하는 OCR API로 만든다면 가능하겠지?).

• 두 번째 줄에 있는 자막도 인식하지 못한다.

• 인식한 결과물은 자동으로 텍스트 문서로 저장되는 것 같은데 나 같은 경우는 그 문서에 아무 내용도 없다.

0 comments:

댓글 쓰기

댓글은 검토 후 게재됩니다.
본문이나 댓글을 정독하신 후 신중히 작성해주세요