가끔 아무리 찾아봐도


애니와 같은 특정 영상의 영자막이 없는 경우가 있다




엄청 오래된 고전 애니거나


자체 플랫폼에서 독점 공개하는 애니라든가


혹은 유투브에 있는 단편 애니들 같은 경우가 그러한데,




이럴 때 아래 방법을 쓰면


완벽하지는 않지만 특정 영상의 영자막을 만들어낼 수 있다




준비물은


ffmpeg.exe (https://mega.nz/#!sKBRXAJT!BB9pkpcRAT_GtvfBcua8ZQxeAxsIy7UXXpETTUorZTk) -> 영상이랑 같은 폴더에 다운받으면 된다.


Vrew (https://vrew.voyagerx.com/ko/) -> 제작사 사이트 가서 설치 프로그램 받고 설치하면 된다


영상 파일 -> mp4 영상으로 준비하면 좋고 아니어도 상관 없다






보통 영상을 구하면 mp4, mkv, avi 등 확장자가 다양한데




ffmpeg을 쓰면 확장자가 뭐든 영상에서 음성 트랙만을 추출해낼 수 있다


Vrew 프로그램은 이 음성을 분석해서 자막으로 만들어주는 것이다





미국 애니메이션인 용감한 전사들 시즌 3 4화의 영자막을 만들어보자




* mp4가 아닌 경우 ①로 가고


* mp4인 경우 바로 ②로 가서 진행하면 된다







영상 파일에서 음성을 뽑아낼 수 있는데


ffmpeg.exe와 영상 파일을 일단 같은 폴더에 넣어넣고


흰 공간에서 Shift 키를 누르면서 마우스 오른쪽키를 누르면


'여기서 명령 창 열기'가 있다, 클릭해준다




그럼 까만 창이 뜨는데


여기에 아래와 같이 입력해주고 엔터를 누른다


ffmpeg -i "파일이름.mkv" -f mp3 -ab 320000 "파일이름.mp3"



여기서는 BWS03E04.mkv이니까


ffmpeg -i "BWS03E04.mkv" -f mp3 -ab 320000 "BWS03E04.mp3"


아래처럼 입력을 했다




아래처럼 되서


작업 다 끝나면 mp3 파일이 생성됐을 것이다








이제 Vrew를 켜서


'새 영상 파일로 시작하기'를 누르고 생성된 mp3 혹은 mp4파일을 열어준다



영어 선택하고 확인 클릭하면




문장 추출을 의뢰하고 있습니다 -> 음성을 분석하고 있습니다


-> 분석 결과를 정리하고 있습니다 -> 바로 불러올까요? 뜨면 '예' 클릭





'다른 형식으로 내보내기' 클릭 후 '자막파일로 내보내기'클릭


그러면 srt 파일로 추출되면서 모든 작업이 끝난다






이 방법은


단순 애니뿐만 아니라 영어나 한국어로 말하는


모든 영상에 적용 가능하기 때문에 매우 활용도가 높다




만화 특성상 말장난, 제2외국어, 두명 이상이 동시에 말할때


또 배경음 깔릴 때는 거의 인식을 못하는 듯하다







물론 그냥 말하는 데도 싱크는 좀 잘 안맞는 편이지만


대충 의미 정도만 알려준다고 생각하면 편하다






그치만 기본적으로 무료이고


영자막 없는 고전 애니들 자막 만들 때 매우 유용하니


다들 사용해보는 것도 나쁘지 않을 것 같다






한줄요약 : 영상만 있을 땐 Vrew랑 ffmpeg 써서 영어/한국어 자막을 만들 수 있다

"https://archive.is/TIJmD"에서 관련 정보를 찾을 수 있었다. 



  • Subtitle Edit으로 MKV 파일에서 PGS(SUP) 자막파일 추출하고 SMI/SRT로 변환하기 (2)


원래는 Subtitle Edit으로도 가능하지만, 해당 방법이 통하지를 않아서 다른 방법을 고안하고자 한다.

Subtitle Edit에서 할 수가 없어서 여러 프로그램과 과정을 통해 좀 돌아가는 감이 있다.


MKVToolNix, BDSup2Sub, Subtitle Edit을 이용해 MKV 파일에서 PGS(SUP) 한글/영문 자막을 추출할 수 있다.




1. https://mkvtoolnix.download/downloads.html에서 MKVToolNix 최신 버전을 다운로드한다. 

   아래와 같이(윈도 기준) 파일명에 따라 종류가 다르니, 필요한 것을 받자. 본인의 운영체제에 맞는 것을 다운받는다.


 종류

 파일명

 포터블 버전

mkvtoolnix-32bit-(버전).7z

mkvtoolnix-64bit-(버전).7z

 설치 버전

mkvtoolnix-32bit-(버전)-setup.exe

mkvtoolnix-64bit-(버전)-setup.exe


2. 포터블 버전은 압축을 풀고, 설치 버전은 설치해 준다. 그 다음에 mkvtoolnix-gui.exe를 실행시킨다.


3. MKV 파일을 마우스로 끌어넣어 연다.


4. 그러면 자막이 있는 영상의 경우 트랙, 챕터와 태그(T) 부분에 유형  자막인 것을 찾자.

    여기서 원하는 언어의 ID만을 기억해 두고 프로그램을 종료한다. MediaInfo가 있는 사람은 해당 프로그램으로 확인해도 된다.


   여기서 자막 스트림만 택해서 하단의 합치기 시작을 택해도 되지만,

   이럴 경우 mks 포맷으로 추출되어 이후 자막 처리가 어렵다. 


5. 이후 mkvtoolnix-gui.exe와 같은 경로에 있는 mkvextract.exe 파일을 MKV 파일이 있는 곳에 복사해 두자.


6. 그 다음에 MKV파일이 있는 폴더에서 Shift키를 누른 채로 마우스 오른쪽 키를 클릭하고, 여기서 명령 창 열기(W)를 누른다.


7. 아래의 명령어를 자기가 가진 파일명에 따라 입력한다.

    오타 등으로 인해 바로 성공하지 못할 수 있으므로 메모장에 복사해 놓고 실행하기를 권장한다.


mkvextract tracks "파일이름.mkv" -c utf-8 ID번호:저장할파일명.sup


예시)

mkvextract tracks "video.mkv" -c utf-8 29:video.sup


8. 성공했으면 같은 경로에 sup 파일이 생성된다.

    Java Runtime이 필요하므로 설치하지 않은 사람은 http://www.java.com/ko/에서 설치하자.


9. 다음으로 BDSup2Sub 최신 버전을 https://www.videohelp.com/software/BDSup2Sub에서 다운로드한다.

    jar 파일이므로 바로 실행하면 실행된다.


10. Ctrl + O를 눌러 추출했던 sup 파일을 불러온다. Conversion Options 창이 뜨면 그냥 OK를 누른다.


11. Ctrl + E를 눌러 idx/sub 파일로 저장한다.


12. 이 파일을 Subtitle Edit에서 다시 불러와 이전 포스트에서처럼 tesseract를 이용해 SRT와 SMI로 바꿔서 저장한다.

      만약 해당 프로그램이 동작하지 않는다면 sub2smi와 같은 프로그램을 이용해 보는 것도 좋다.

"https://archive.is/YDGDq"를 참고하였다.
  • Subtitle Edit에서 뜨는 오류인 "Tesseract command line ocr engine의 작동이 중지되었습니다" 해결하기
일단 성공한 방법 그대로를 옮겨 본다. 시스템 환경에 따라 문제가 해결되지 않을 수도 있다.


1. https://github.com/SubtitleEdit/subtitleedit/releases/latest/에서 Subtitle Edit 최신 버전을 다운로드한다. 


2. https://github.com/UB-Mannheim/tesseract/wiki에서 "tesseract-ocr-setup-3.05.01.exe"를 다운받아서 설치한다.


일단 이렇게 한 뒤에 Subtitle Edit을 다시 실행시켜 OCR 작업을 수행하니 해당 오류는 나지 않았다.



"https://archive.is/fgH8v"에서 관련 정보를 찾을 수 있었다. 



  • Subtitle Edit으로 MKV 파일에서 PGS(SUP) 자막파일 추출하고 SMI/SRT 변환하기 (1)


자막 편집 시 사용하는 Subtitle Edit을 이용해 MKV 파일에서 PGS(SUP) 한글/영문 자막을 추출할 수 있다.


한글도 OCR이 가능하다. 핵심만 요약하면 아래와 같다.



1. https://github.com/SubtitleEdit/subtitleedit/releases/latest/에서 Subtitle Edit 최신 버전을 다운로드한다. 

   아래와 같이 파일명에 따라 종류가 다르니, 필요한 것을 받자.

 종류

 파일명

 포터블 버전

 SE354.zip

 설치 버전

 SubtitleEdit-3.5.4-Setup.zip



2. 포터블 버전은 압축을 풀고, 설치 버전은 설치해 준다. 그 다음에 SubtitleEdit.exe를 실행시킨다.


3. 좌측 상단의 메뉴에서 "File" >> "Import subtitle from Matroska file…"을 눌러서 MKV 파일을 연다.


4. 그러면 자막이 있는 영상의 경우 원하는 언어의 자막 스트림을 선택할 수 있다. 선택해서 열어주자.


5. Parsing 작업이 모두 끝나면, OCR method에서 OCR via Tesseract를 선택하자.


6. 그 다음에 아래의 Language에서 원하는 언어를 선택하자. 필요한 언어가 없으면 "..."을 눌러 필요한 것을 다운로드하자.


7. 필요에 따라 "Italic"이나 "Music Symbol"을 체크하고, 오른쪽의 Dictionary도 인식할 언어로 설정하자. 없거든 다운하면 된다. 


8. 그다음 아래의 "Start OCR"을 누르자. 만약 여기서 아래와 같은 오류가 나면, 다음 포스트를 참조해 문제를 해결하자. 


Tesseract command line ocr engine has stopped working

Tesseract command line ocr engine의 작동이 중지되었습니다


9. OCR 인식 작업이 끝나면 OK를 눌러 작업을 완료하고, "File" >> "Save As…"를 눌러서 원하는 파일 형식으로 저장한다.


LNK2019 오류가 날 수 있으니

혹시라도 검색해서 오신 분은 다른 방법을 권장드립니다


버전

Microsoft Visual Studio Community 2017 

Version 15.3.3

VisualStudio.15.Release/15.3.3+26730.12

Microsoft .NET Framework

Version 4.7.02053

Installed Version: Community


0. https://curl.haxx.se/download.html 에서 최신 버전을 다운


1. libcurl을 사용할 프로젝트에 include, lib 디렉토리 생성 


2. $(ProjectDir)\include에 curl-7.57.0\include\curl를 복사


3. curl-7.57.0\projects\Windows\VC14cul-all.sln 열기


4. Build - Batch Build를 눌러서

Project : libcurl

Configuration : LIB Release

Platform : x86


Project : libcurl

Configuration : LIB Debug

Platform : x86


이 2개를 선택하고 Build 클릭

(둘 모두 x64를 했다가 계속 LNK2019 오류가 나서 포기)


5. curl-7.57.0\build\Win64\VC14 경로에 lib 생성


6. $(ProjectDir)\lib에 libcurld.lib, libcurl.lib복사


7. 프로젝트의 Properties에서

Configuration은 All Configurations

플랫폼은 전부 All Platforms


Configuration Properties - C/C++ - General - Additional Include Directories에 아래 추가

"$(ProjectDir)\include\"


Configuration Properties - Linker - General - Additional Library Directories에 아래 추가

"$(ProjectDir)\lib\"


8.

프로젝트의 Properties에서

Configuration은 Debug

플랫폼은 x86

Configuration Properties - Linker - Input - Additional Dependencies 뒤쪽에 아래 추가로 적기

libcurld.lib;


프로젝트의 Properties에서

Configuration은 Release

플랫폼은 x86

Configuration Properties - Linker - Input - Additional Dependencies 뒤쪽에 아래 추가로 적기

libcurl.lib;


9. Debug, x86로 설정하고(x64도 필요하면 같은 방법으로) 이후 원하는 프로젝트 빌드


10. 

#include <curl/curl.h>

#include <curl/easy.h> 두 파일을 결국 Solution Explorer에서 헤더 쪽에 추가해 줬다.


11. 계속 LNK2019 오류가 발생...

+ Recent posts