강좌 / 팁

소프트웨어 블루레이 원본에서 추출된 .Sup를 재생함에 있어서...

2011.06.22 19:40

동방전패 조회:17812

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 자막 제작시 이를 고려해야 합니다.

번호 제목 글쓴이 조회 추천 등록일
[공지] 강좌 작성간 참고해주세요 gooddew - - -
1086 윈 도 우| Windows ThicPC 다국어(한글) 통합하기. [4] Windows8 19053 0 07-05
1085 하드웨어| 우분투 SSD 최적화 내용 업데이트 [2] 수퍼센트 7739 0 07-04
1084 윈 도 우| 수동으로 Windows Update 하기 [5] 행인3 8859 0 07-03
1083 윈 도 우| Chrome Pig 0.9.9.5 확장 프로그램 [11] DaGolBin 7962 0 07-02
1082 윈 도 우| [Re] win7 서비스 최적화 참조하세요 [6] 아니오 18356 0 06-30
1081 윈 도 우| win7 서비스 최적화 참조하세요 [13] 선지자 19611 2 06-30
1080 윈 도 우| Windows 7 Aero 설정이 안되는 경우 [4] 선지자 8146 0 06-29
1079 윈 도 우| 포터블 프로그램 우클릭 메뉴 [4] eunnano 11275 0 06-26
1078 윈 도 우| 리얼텍 내장 사운드, PC와 TV 쉽게 동시 출력하기. [5] 블루블루 8283 0 06-25
1077 윈 도 우| 리얼텍사운드 동시출력하는 방법 TV와 컴퓨터사운드 동시출력. [2] 디에스인 10879 0 06-25
1076 윈 도 우| IE 관련 스크립트 오류 창닫힘 현상 ActiveX 오류 최소화 ... [2] wmy100 11004 0 06-22
» 소프트웨어| 블루레이 원본에서 추출된 .Sup를 재생함에 있어서... [5] 동방전패 17812 0 06-22
1074 윈 도 우| xp 시작버튼을 영어 start로 바꾸기 [4] zzazzer 8984 0 06-22
1073 윈 도 우| 적절한 시점에 자동으로 컴퓨터 끄기 [5] 우금티 8185 1 06-22
1072 윈 도 우| (통합용)XPSP3 이후 핫픽스 모음 [10] 제스트- 12724 1 06-21
1071 윈 도 우| DVD 타이틀 만들어 봅시다. [2] 윈포초보 6329 0 06-21
1070 윈 도 우| DIY OEM XP 만들기 [6] gooddew 10827 0 06-20
1069 소프트웨어| WinRAR최신버전 한글화 하기 [8] 가자™ 8242 0 06-16
1068 소프트웨어| MS Word 2010에는 pdf 저장옵션이 있군요. [14] 토비네 8983 0 06-14
1067 윈 도 우| 윈도우7 - 사양 낮은 컴퓨터 익스플로러 속도 개선 [15] wmy100 23990 0 06-12
XE1.11.6 Layout1.4.8