소프트웨어 블루레이 원본에서 추출된 .Sup를 재생함에 있어서...
2011.06.22 19:40
Blu-ray의 메인 무비 자막 스트림에 해당하는 부분을 추출(xxx.sup)해서 일반 mkv, mp4 등의 비디오 영상에서
이를 활용하고자 할 경우 다음과 같은 방법이 있습니다.
하나는 쉽게 외부 자막을 로드할 수 있는 대다수 재생기에 내장되어 있는 DirectVobSub 를 이용하는 방법으로써,
Bluray Sup---> Sub/idx 형태로 변환하여 일반 재생기의 내장 자막 렌더러에서 재생하는 방법입니다.
물론, 자막 품질은 좀 떨어지지만 눈깜작할 사이에 변환해서 손쉽게 볼수 있는 방법입니다.
다른 하나는 .sup 자막을 OCR를 이용한 순수 노가다의 세계로 진입하여 텍스트 자막인 srt로 변환하는 것입니다.
그래도 군입대보다 덜 고통스럽고 그럭저럭 해볼만 하겠지라고 도전해 보시는 용자는 되지 마시길...
마지막으로 아래에 기재할 내용으로써 추출된 .sup 자막 품질을 그대로 유지하면서 재생하는 방법입니다.
좀 더 소장용 작업에 적합한 방법이자 근본적인 해결책입니다.
내용이 좀 난해하다고 생각하시면 건너띄고
제일 밑에 설명한 (외부 로드가 아닌 스트림 형태로 재생하기)방식으로 곧바로 가시길 바랍니다.
시간나실 때 천천히 알아 가시는 것이 가장 좋은 방법입니다. 차후에는 최소 DirectShow Source 방식을 이용하시길 바랍니다.
어려운 순서부터 시작해서 나열합니다.
주의 사항(공통) : .sup 파일을 자신이 재생할 비디오 영상에 맞게 BDSup2sub를 이용해 변환하는 작업이 선행되어야 합니다.
예) Blu-ray에서 eac3to로 demuxing된 .sup 파일은 1080p 이므로 720p 영상에서 재생할려면 720p로 변환해 줘야 합니다.
또한, 대다수 Blu-ray 규격이 아닌 Crop된 해상도의 비디오 영상이므로 자신이 직접 제작한 .sup 인 경우에도
재생할 영상 크기에 맞는지 offset 값이 적절한지 다시 한번 살펴봅니다.
BDSup2sub으로 Edit - move all captions 의 옵션에서 move outside bounds을 선택
offset Y 값을 결정해 Move All 하는 걸 추천 !
---------------------------> 관련 내용 <-----------------------------------------
목차 :
1. 외부 자막 형식으로 로드하여 재생하기
A) FFmpeg Source를 이용하기(AviSynth 를 이용)
B) DirectShow Source를 이용하기(AviSynth를 이용)
C) 외부 디코더를 이용하기
2. Stream 형태를 만들어 재생하기
<준비물 설치 >
첨부 파일 : Avisynth(258_MT_MSVC2010버전) ,ffmpegsource, SupTitle Plugin
다운 가속기 이용(sup plugin.7z): https://www.mediafire.com/?miy89q5tqrt3j
(개별 다운을 하실려면 mt 버전의 avisynth에 mt 버전의 Suptitle plugin의 조합이 맞어야 됩니다)
설치 방법:
FFmpeg Source 를 이용할 경우 : 제어판에서 .net Framework 4 Client Profile이 설치되어(Suptitle Plugin에 필요) 있지 않으면
windows update를 통해 반드시 설치할 것
공통 : Avisynth 를 설치 한 뒤 첨부한 Plugins 폴더 내용물을 Avisynth의 설치 경로에 있는 Plugins 폴더에 붙여넣기 할 것.
FFDshow : https://xhmikosr.1f0.de/index.php?folder=ZmZkc2hvdw==
ffdshow audio/video decoder 의 Codecs 값에서 uncompressed/Raw Video --> all supported
재생시 dts/dts-hd,Dolby TrueHD 24bit 포맷같은 경우 기호에 따라
FFDShow Audio Decoder의 Output값을 24bit값을 제외한 체크해제
Haali Media Splitter (https://haali.su/mkv/)혹은 LAV Splitter(추천) (https://github.com/Nevcairiel/LAVFSplitter)
LAV Splitter 위주로 사용하시고 문제시에만 Haali(ffmpeg source 이용시 mkv의 parser 역활에 필요)를 이용
기타 : .avs 편집을 간편하게 하기 위해 AvsPmod : https://forum.doom9.org/showthread.php?t=153248
WASAPI : ReClock (https://forum.slysoft.com/forumdisplay.php?f=85)
** MPC-HC에서 기본 오디오 렌더러 값을 ReClock Audio Renderer로 설정해서 사용하거나,
Windows Media Player 12를 사용시 ReClock이 로드되도록 하실 것을 추천하며
그 기준을 토대로 작성되어 있습니다.
################ 1. 외부 자막 형식으로 로드하여 재생하기 ##########################
.SUP 포맷(Presentation Graphic Subtiltes)을 단일 파일 형태로 가지고 있을 때
일반 재생기에서 로드하여 재생하는 방식은 크게 3가지 형식으로 나눌 수 있습니다.
<A: 첫번째 방식 - ## FFmpeg Source를 이용하는 방법 ## >
묻지마 인코딩의 A/V 의 경우 index 파일 형성시 에러가 발생하며,
또한 처음 실행시 index 파일이 생성되는데 재생 시간과 정비례하여 상당히 오래 걸린다는 단점이 있습니다.
그렇지만, 반드시 한번쯤은 알아두어야 할 과정입니다.
AvsPmod 혹은 메모장을 열어서 다음 점선 사이의 내용을 복사 - 붙여넣기 한 후 .avs 확장자로 저장한다.
---------------점선 사이의 내용 복사(64bit OS는 알맞는Plugin 경로 변경)---------------------------------
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\ffms2.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\SupTitle.dll")
A = FFAudioSource("영상(오디오) 파일 경로")
V = FFVideoSource("영상(비디오) 파일 경로")
AudioDub(V, A)
SupTitle("자막 파일 경로", forcedOnly=false, swapCbCr=false, relocate=true, relocOffset="0,0,0,0")
----------------------------------------------------------------------------------------------------
@ 64bit Os에서 .avs 의 간략한 예제(영구와 땡칠이.mkv 영상을 .sup 파일을 로드하여 재생하고자 할 경우)
LoadPlugin("C:\Program Files(x86)\AviSynth 2.5\plugins\ffms2.dll")
LoadPlugin("C:\Program Files(x86)\AviSynth 2.5\plugins\SupTitle.dll")
A = FFAudioSource("F:\Movie\영구와 땡칠이.mkv")
V = FFVideoSource("F:\Movie\영구와 땡칠이.mkv")
AudioDub(V, A)
SupTitle("D:\다운로드\자막 모음 폴더\맹구와 독수리 오형제.sup", forcedOnly=false, swapCbCr=false, relocate=true, relocOffset="0,0,0,0")
@ 저장된 .avs 파일을 재생하면 .ffindex 파일을 생성하는데 영상 재생 시간이 길수록 오래 걸리므로 참고 기다리면 됩니다.
.ffindex 파일 생성 후 .sup 파일이 자동으로 로드되어 재생기에서 재생되며,
대다수 다운받은 mkv,mp4는 Crop된 영상이므로 Crop된 영상을 기준으로 자막이 놓여진다고 보시면 됩니다.
@ wmp12 ----> FFDShow Audio Decoder + Reclock WASPI 모드 조합으로 ...
mpc-hc---> ReClock 사용시 FFDShow Audio Decoder를 로드하지 않고 PCM이 ReClock 렌더러로 전달 재생되므로
필요한 경우 FFDShow Audio Processor를 이용 Downmixing 및 Output Format를 결정하면 됩니다.
팟플은 AviSynth에 그리 적합한 재생기는 아니므로 패스....
<B: 두번째 방식 - ## Directshow Source 를 이용하는 방법 ## >
순서 :
a) 영상 파일을 드래그해서 AvsPmod로 드랍시키면 자동으로 Directshow 경로가 완성됩니다.
(혹은 메모장에 미리 형식을 기재해 놓고 다른이름 저장을 활용하시면 됩니다.)
b) insert - plugin해서 Suptitle Plugin을 insert - file name에서 .sup 자막 경로를 지정하시면 됩니다. 저장 끝 !!
-----------------------점선 사이의 내용을 첨조하시길 바랍니다.-------------------------------
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\SupTitle.dll")
DirectShowSource("영상파일 경로")
SupTitle("자막 파일 경로", forcedOnly=false, swapCbCr=false, relocate=true, relocOffset="0,0,0,0")
---------------------------------------------------------------------------------------------
Directshow Source 방식는 오디오 문제로 팟플은 적합하지 못합니다.
wmp12/mpc-hc를 재생시 FFDshow A/V Decoder와 ReClock WASAPI 조합을 적극 추천합니다.
이 방법은 FFmpeg Source 방식에서 탈피하여 간단한 Script로 곧바로 재생할 수 있으며,
기본적인 Splitter를 이용하므로 좀 더 호환성 측면에서는 좋습니다.
재생에 사용되는 필터는 Source filter가 아닌 Splitter Filter를 이용하는 방식으로 재생시
LAV Splitter 혹은 Haali Media Splitter(AR)를 사용합니다.
일반적으로 Avsynth 의 script 파일에는 Haali가 많이 이용되어 왔지만 그동안 발전이 없는 관계로
계속 개발 중인 LAV Splitter를 사용해도 무관하며 오히려 다양한 오디오 포맷을 다룰 수 있습니다.
@@@ 위에 기재된 AviSynth 관련 Script는 기본값 위주입니다.
Avisynth는 인코딩을 많이 하시는 분들이 필수적으로 알아야 하는 과정이므로, 그 분들에게 Script 관련 내용을 물어보시면
좀 더 고급 옵션을 가르쳐 주실 것으로 생각되어 집니다. @@@
<C: 세번째 방식 - 외부 디코더를 이용하는 방법 >
이런 방법도 있다고 생각하시고 지금 당장 잊어버리시길 바랍니다.
FFDShow Video Decoder와 FFDshow DXVA Video Decoder를 이용할 때 자동으로 로드되는 .sup 재생에 있어서
옵션 - Subtitles - Bluray & DVD 값에서 Smoothing method값을 Full(Slowest)으로 해줘야 그나마 볼만 합니다.
그렇지만, Seek 할 경우 한참 동안 자막이 숨바꼭질, 경우에 따라 부분적으로 자막 재생이 이루어지지 않아
외국어 학습 효과를 드높입니다.
이는 아래 부분에 기재할 Stream 방식에서 Splitter 필터를 통해 불러 오는 경우와는 전혀 다른 것으로써,
왜 Stream 형식을 통해서 PGs를 분리 이미지 자막을 재생하는지를 극명하게 보여주는 예입니다.
################# 2. 외부 로드가 아닌 스트림 형태로 재생하기 ######################
외부 로드 방식은 근본적으로 AviSynth 방식이라 따라하기 좀 힘들겠지만,
스트림 형태는 누구나 따라 할 수 있습니다.
MKVToolnix(https://www.bunkus.org/videotools/mkvtoolnix/win32/)를 이용하여
.sup 자막을 끌어다 놓으시고 muxing하시면 됩니다.
이 경우 옵션값에서 forced값을 주면 자동으로 원하는 트랙이 일순위로 보여줍니다.
Default값일 경우 재생기의 Splitter 옵션에서 PGS 트랙을 선택하시면 됩니다.
m2ts/mkv 컨테이너 방식에서 스트림을 분리 및 관련 정보를 전달하는 기능인 합당한 Splitter가 설치되어 있다면
웬만한 일반 재생기는 Presentation Graphic Stream를 읽어들여 해당 이미지를 내장 자막 렌더러를 통해 보여줍니다.
(Bluray 포맷인 m2ts 로 컨테이너를 만들 때 표준 규격을 무시하는 묻지마 m2ts 를 만들지 마시길 바랍니다.)
m2ts 혹은 blu-ray 디스크 구조 만들기 : https://www.videohelp.com/tools/tsMuxeR
마지막으로 Stream 형태의 Bluray PGs를 재생함에 있어서
일반 재생기의 각 기본값으로 사용시 VLC > mpc-hc, 팟플를 추천하며
mpc-hc의 subtitle 관련 옵션에서 sub picture buffer값을 조절하시길 바랍니다.
(기본값 3에서 5 혹은 8까지 편할대로.. 클수록 좋음)
PGs는 smi, srt과 같은 텍스트 형식이 아닌 기본적으로 이미지 파일의 연속된 나열이므로
이를 디코딩할 시 buffer 할당이 잘 이루어져야 합니다.
재생기에서 Seeking 기능을 이용할 경우 자막이 사라지는 경우 주로 PGs 자막 제작에 있어서
일반 smi-->srt-->sup 자막으로 변환시 Overlapping 문제를 너무 소홀히 하는 결과로 일어납니다.
PC가 아닌 전용 Blu-ray 재생기와의 호환성도 고려해서 기본 Buffer할당 4MB를 초과하지 않도록
Sup 자막 제작시 이를 고려해야 합니다.
댓글 [5]
-
담울 2011.06.22 23:03
-
동방전패 2011.06.23 05:28 팟플레이어의 기본값인 내장 MKV Splitter은 외부 자막, 내장된 스트림 형식의 자막 등을 불러와서
자막 - 언어 선택에 표시됩니다.
현재 내장 MKV의 Splitter는 여러 트랙으로 구성된 PGs 혹은 텍스트 자막과의 혼재시 1번째 기본트랙 PGs와
텍스트 자막만을 선택할 수 있으며 다른 어떤 트랙의 PGs를 선택하지 못합니다.
이것은 내장 Splitter 문제로 제대로 내장 자막 렌더러에 정보를 제공해 주지 못하며
관련 옵션인 자막 - 언어에 표시가 되지 않습니다.
단순한 것이므로 차후에 수정 개선될 것으로 보여지며,그동안 LAV Splitter를 이용하시길 바랍니다.
자막 스트림(srt, ass, pgs 등) 혹은 외부 자막 등이 혼재해 있을 때 필터- LAV Source 혹은 LAV Splitter 등에서
취사 선택할 수 있으며 이 정보는 고스란히 자막 -언어선택 란에 보여지므로
거기서 선택할 수도 있습니다.
-
담울 2011.06.23 07:05
어렵다기 보다는 제대로 사용하려면 좀 많이 번거롭군요.
자세한 설명 감사합니다.
설명에 관련되서 하나 더 질문드립니다.
현재 k-lite 코덱이 설치되어있는데 LAV Splitter는 없는 것 같아 codecs.com 에서 다운로드를 받았습니다.
거기 설명 중에(https://www.free-codecs.com/download/LAVFSplitter.htm) LAV를 쓰려면 먼저
- Some other splitters register in a "bad" way and force all players to use them. The Haali Media Splitter is one of those, and to give priority to the LAVFSplitter you have to either uninstall Haali or rename its .ax file at least temporarily.
라는 부분이 있는데 Haali Media Splitter 를 제거하거나 .ax 파일 이름을 바꿔놓고 그 다음에 LAS를 설치 하라는 거 맞나요?
-
고달픈명탐정 2011.06.23 15:44
강좌 감사합니다.
알듯 말듯... 직접 몸으로 부딪쳐 봐야 되는데.. 시작이 어렵군요. ^^
-
크탕카 2011.06.23 21:13
좋은 강좌입니다. 고맙습니다.
번호 | 제목 | 글쓴이 | 조회 | 추천 | 등록일 |
---|---|---|---|---|---|
[공지] | 강좌 작성간 참고해주세요 | gooddew | - | - | - |
1087 | 소프트웨어| sscvf.sys 에러 발생 | 죠타로 | 6975 | 0 | 07-06 |
1086 | 윈 도 우| Windows ThicPC 다국어(한글) 통합하기. [4] |
|
19055 | 0 | 07-05 |
1085 | 하드웨어| 우분투 SSD 최적화 내용 업데이트 [2] | 수퍼센트 | 7745 | 0 | 07-04 |
1084 | 윈 도 우| 수동으로 Windows Update 하기 [5] | 행인3 | 8861 | 0 | 07-03 |
1083 | 윈 도 우| Chrome Pig 0.9.9.5 확장 프로그램 [11] |
|
7969 | 0 | 07-02 |
1082 | 윈 도 우| [Re] win7 서비스 최적화 참조하세요 [6] | 아니오 | 18366 | 0 | 06-30 |
1081 | 윈 도 우| win7 서비스 최적화 참조하세요 [13] |
|
19620 | 2 | 06-30 |
1080 | 윈 도 우| Windows 7 Aero 설정이 안되는 경우 [4] |
|
8152 | 0 | 06-29 |
1079 | 윈 도 우| 포터블 프로그램 우클릭 메뉴 [4] |
|
11284 | 0 | 06-26 |
1078 | 윈 도 우| 리얼텍 내장 사운드, PC와 TV 쉽게 동시 출력하기. [5] | 블루블루 | 8289 | 0 | 06-25 |
1077 | 윈 도 우| 리얼텍사운드 동시출력하는 방법 TV와 컴퓨터사운드 동시출력. [2] |
|
10885 | 0 | 06-25 |
1076 | 윈 도 우| IE 관련 스크립트 오류 창닫힘 현상 ActiveX 오류 최소화 ... [2] |
|
11011 | 0 | 06-22 |
» | 소프트웨어| 블루레이 원본에서 추출된 .Sup를 재생함에 있어서... [5] |
|
17830 | 0 | 06-22 |
1074 | 윈 도 우| xp 시작버튼을 영어 start로 바꾸기 [4] | zzazzer | 8987 | 0 | 06-22 |
1073 | 윈 도 우| 적절한 시점에 자동으로 컴퓨터 끄기 [5] | 우금티 | 8189 | 1 | 06-22 |
1072 | 윈 도 우| (통합용)XPSP3 이후 핫픽스 모음 [10] | 제스트- | 12728 | 1 | 06-21 |
1071 | 윈 도 우| DVD 타이틀 만들어 봅시다. [2] |
|
6333 | 0 | 06-21 |
1070 | 윈 도 우| DIY OEM XP 만들기 [6] | gooddew | 10834 | 0 | 06-20 |
1069 | 소프트웨어| WinRAR최신버전 한글화 하기 [8] | 가자™ | 8244 | 0 | 06-16 |
1068 | 소프트웨어| MS Word 2010에는 pdf 저장옵션이 있군요. [14] |
|
8987 | 0 | 06-14 |
[2. 외부 로드가 아닌 스트림 형태로 재생하기] 에서 2개 이상의 sup를 muxing 했을 경우는 선택이 가능한가요?
무조건 첫번째 자막만 나오는데 팟플레이어 splitter 옵션에서 자막선택을 어떻게 하나요?