레이블이 SRT인 게시물을 표시합니다. 모든 게시물 표시
레이블이 SRT인 게시물을 표시합니다. 모든 게시물 표시

2010년 12월 7일 화요일

Syntax Highlighter 3용 srt 자막 브러쉬 공개

Syntax Highlighter에서 .SMI 자막은 별도의 브러쉬가 필요하지 않다.
XML/HTML 브러쉬를 적용하면 충분히 예쁘게 보여줄 수 있다.

<SYNC Start=500><P Class=KRCC>
자막제작: BLUEnLIVE< br>
<font color=yellow>배포처: http://zoc.kr</font>
<SYNC Start=7500><P Class=KRCC>&nbsp;

하지만, (내가 선호하는) .srt는 적절한 브러쉬가 없다.
물론, XML/HTML 브러쉬를 적용하면 약간 비슷하게 보여줄 수는 있지만, 2% 부족하다.

다름아닌, 시간을 하일라이팅하지 않는다는 한계가 있다.

1
00:00:00,500 --> 00:00:07,500
자막제작: BLUEnLIVE
<font color=yellow>배포처: http://zoc.kr</font>

시간을 제대로 표시해줄 수 있는 .srt 전용 브러쉬를 만들었다.

1
00:00:00,500 --> 00:00:07,500
자막제작: BLUEnLIVE
<font color=yellow>배포처: http://zoc.kr</font>

브러쉬는 아래 링크에서 다운받을 수 있으며,


사용할 때는 아래와 같이 브러쉬를 지정하면 된다.

<pre class="brush:srt;">


2010년 11월 20일 토요일

유니코드를 처리하지 못하는 Subtitle Workshop

by (Sleepy) | 2008/12/08 19:15

자막 작업의 왕, Subtitle Workshop. from IT, PC/• Software 2008/12/08 19:15. 오늘 소개할 Subtitle Workshop은 감히 자막 편집기의 최고봉이라 말할 수 있을 것 같다. 자막 제작, 수정, 변환, 오류정정에 이르기까지 자막에 관련된 모든 작업을 지원 ...


Subtitle Workshop은 자막을 제작하고, 다른 포맷으로 변환하는 데 있어 굉장한 능력을 보여준다.
아마도 자막 관련 통합 툴 중에서 이만한 완성도를 보이는 프로그램은 없었던 것 같다.

하지만, 유니코드를 전혀 처리하지 못하는 치명적인 단점이 있다.


1. 유니코드(BOM) SAMI 미지원

이 점에 대해 우선 분명히 짚어야 할 점은 유니코드 SAMI라는 포맷 자체가 비정상적인 포맷이라는 것이다.

SAMI Structure and Declaration

Because SAMI is based closely on HTML, it has a similar (but not identical) component construct that makes it an easy format to learn and edit. All SAMI documents must begin with a <SAMI> tag and end with a </SAMI> tag.


<Understanding SAMI 1.0에서 발췌>


MS에서 작성한 Understanding SAMI 1.0에서 분명히 얘기하듯이 SAMI라는 포맷은 HTML에 기반을 둔 포맷이다.

하지만, HTML과 달리 텍스트 인코딩을 지정하는 기능이 없다.
SAMI의 한글 코드는 묵시적으로 확장 완성형 한글을 사용하고 있어 유니코드의 글자를 모두 표시할 수 없다.

우리나라의 사용자들은 이런 상황을 극복(?)하기 위해 그냥 SAMI 파일을 통째로 유니코드로 저장하기로 했다.
또한, 플레이어를 만드는 개발자들도 이에 동조해서 유니코드 포맷의 SAMI를 처리하고 있다.

그런데, SAMI의 기본을 생각해보면 SAMI에서 유니코드를 사용하려면 부호 있는 UTF-8을 사용했어야 했다.
하지만, 이젠 늦었다. 그냥 이렇게 갈 수 밖에 없다.

각설하고, 이 말도 안 되는 유니코드 SAMI는 Subtitle Workshop에서 읽을 수 없다.
그리고, 워낙에 말도 안 되는 포맷이라 앞으로도 Subtitle Workshop에서는 지원하지 않을 것이다.


2. SRT/UTF-8 미지원

이건 유니코드 SAMI와 완전히 다른 얘기다.

SRT 파일은 ANSI 포맷 외에, UTF-8 포맷으로도 저장할 수 있다.
특히, 아이폰 내장 비디오 플레이어는 UTF-8 포맷의 SRT 파일만 재생이 가능하다.

아이폰 재생 화면: 자막은 [아바타] 감성 버전. 영상은 전혀 무관한 [딱따구리]


즉, SRT는 SAMI와 다르게, 기본적으로 유니코드를 지원한다.

하지만, Subtitle Workshop 이 SRT/UTF-8를 전혀 읽거나 쓰지 못한다.


3. 글자 속성의 파괴

이 부분은 정말 이해가 되지 않는 부분이다.

SAMI는 (다른 자막 포맷과 마찬가지로) 다양한 글자 속성을 지원한다.
<b>, <i>, <font>, <u> 등등...
지원되는 속성와 형식은 SRT도 유사하다.

그런데, Subtitle Workshop는 어떤 글자 속성이든지 <i>로 대체해버린다.
난 한동안 SRT는 <i>밖에 지원하지 않는다고 생각할 정도였다.


결론적으로, Subtitle Workshop은 유니코드 SAMI를 SRT/UTF-8로 제대로 변환하지도 못하고, 글자 속성도 파괴한다.
자막 작업의 왕이라고 부르기엔 너무 커다란 헛점이 있는 것이다.

VCi를 만들면서 자막 변환 부분을 직접 제작한 이유가 바로 이런 점 때문이었다.
VCi는 유니코드 포맷 자막을 직접 읽어 완전하게 UTF-8 유니코드로 변환한다.

2010년 5월 22일 토요일

SRT 자막 보정 프로그램

자막 파일로 우리나라에서는 대부분 SMI 포맷을 사용하지만, 외국어 자막들은 SRT 포맷이 많이 사용된다.
MP4, MKV등의 동영상 파일에 손쉽게 삽입할 수 있다는 장점도 있지만, 무엇보다 DVD의 자막을 추출하는 SubRip에서 기본적으로 지원하는 포맷이기 때문이다.

문제는 SubRip에서 자막을 읽어들이는 것이 완벽하지 않다는 것.

DVD의 자막은 글자가 아니라 (자막이라는) 그림이 저장되고, SubRip는 이 자막을 OCR로 읽어들인다.
이 과정에서 l(L의 소문자)과 I(i의 대문자)를 제대로 구분하지 못하거나, 숫자 사이에 공백이 추가되는 등의 문제가 생긴다.

사실, SubRip에서 OCR을 마친 뒤에 기본적인 맞춤법 교정을 할 수 있는데, 많은 사용자들이 이 작업을 패스하고 있다.

이러한 문제들을 어느 정도 보정해주는 프로그램을 만들었다.

영문자막의 수정에 관심이 있는 사용자에게 작으나마 도움이 될 것이다.

화면은 대략 아래와 같고...


아래 링크에서 다운받을 수 있다.


2008년 3월 21일 금요일

DVD영화에 새로운 소리와 자막을 추가하는 방법

DVD를 편집하려면 보통 고가의 소프트웨어를 사용해야 한다고 생각합니다.
하지만, 수많은 아마추어 프로그래머들이 지식과 경험 그리고, 실력들을 모은 결과 프리웨어만으로도 완성도 높은 DVD를 만들거나 편집할 수 있습니다.

여기에서는 이러한 프리웨어만을 이용해서 DVD 영화에 새로운 소리와 자막을 추가하는 방법을 설명하겠습니다.

※ 이 글은 이러한 과정을 소개하기 위한 글이며 더 상세한 과정은 직접 부딛히며 익혀야 합니다.
    그리고, 이 글은 DVD 락의 해제를 통한 불법복제조장하거나 설명하는 글이 아닙니다!!!


필요한 도구들PgcDemux v1.2.0.5 : 홈페이지
DVDSubEdit v1.41 : 홈페이지
SubtitleCreator v2.2 : 홈페이지
IfoEdit v0.971 : 홈페이지
MuxMan Standard version 0.15R : 홈페이지
그리고, 작업할 DVD, 추가할 오디오(ac3) 및 자막(srt)


0. 전체적인 과정의 설명

DVD의 영화데이터는 데이터 파일(.vob)과 데이터 파일의 인덱스 파일(.bup / .ifo)로 구성되어 있습니다.
이 정보를 따로따로 분리했다가 다시 결합하는 것입니다.

a. 스트림 데이터의 분리(demux)
.ifo 파일을 참조해서 vob 파일들에 나뉘어 저장된 비디오(*.m2v), 오디오(*.ac3), 자막(*.sup) 추출
각 챕터의 정보, 자막 색깔 등 기록

b. 스트림 데이터의 재결합(mux)
a에서 분리된 데이터 및 추가할 오디오/자막 데이터 재결합
각 챕터 정보 재기록
자막 색깔 재기록



1. 원본 DVD에서 비디오/오디오/자막 추출 (PgcDemux)


DVD는 VIDEO_TS 폴더에 영화 데이터를 저장하며, 이 폴더를 보면 여러개의 VTS_01_x라는 파일들로 구성되어 있습니다.
이 중 1기가(1,073,709,056 바이트) 파일잔뜩 몰려있는 것영화의 본편을 담은 vob 파일들입니다.
위에 보인 예에서는 VTS_01_x에 영화 본편이 담겨있기 때문에 VTS_01_0.IFO를 지정했습니다.

추출된 파일들은 비디오(VideoFile.m2v), 오디오(*.ac3), 자막(*.sup) 외에도 각 챕터의 위치를 기록한 Celltimes.txt 파일과 작업 과정을 로깅해놓은 LogFile.txt가 있습니다.


2. 챕터 파일의 수정

위에서 추출한 Celltimes.txt를 메모장 등의 편집기를 이용해서 엽니다.
(Celltimes.txt는 아래 그림처럼 각 챕터의 위치를 기록해놓은 텍스트 파일입니다)
이 중 마지막 챕터 정보를 삭제합니다. (메모장에서 맨 마지막 줄을 삭제합니다)

사용자 삽입 이미지


3. 자막 색깔 확인 (DVDSubEdit)

DVD의 자막은 4가지 색으로 구성되어 있습니다(글자, 배경, 테두리1, 테두리2)
이 자막 색깔은 0~15 중에서 하나를 지정하게 되어있는데, 현재의 작업에서는 기존 자막에 자막을 추가하는 방식이기 때문에 기존 자막의 색깔을 확인해서 같은 색깔로 지정해줘야 합니다.

DVDSubEdit에서 추출된 자막중 하나를 읽은 뒤 왼쪽 아래의 정보를 보면 자막색은 14, 배경은 15, 테두리는 12, 13인 것을 확인할 수 있습니다.
(e2=12 e1=13 p=14 b=15)

사용자 삽입 이미지


4. 추가할 자막 만들기 (SubtitleCreator)

영화 자막 파일로 우리나라에서는 주로 smi 파일이 사용됩니다.
하지만, SubtitleCreator는 srt 파일만 DVD 자막으로 변환할 수 있습니다.
(자막 파일의 포맷은 기본적으로 시작시간, 종료시간, 자막의 3가지 요소가 기본인데, smi는 HTML에 기반을 두다 보니 개념이 좀 모호하기 때문입니다. 자막을 표시하지 않으려고 &nbsp;를 사용하다니요!!!)

a. Format의 지정 (NTSC)
DVD 비디오의 포맷은 기본적으로 PAL로 설정되어 있습니다. 이것을 NTSC로 변경해줘야 합니다.
NTSC로 변경 후에 디폴트 세로 위치404394로 바꾸는 것이 더 자연스럽습니다.

b. Setting에서 Remove [hearing impaired text] 해제
기본적으로 청각장애인을 위한 [음향효과](음향효과) 처럼 괄호로 둘러쌓인 부분은 제거하도록 되어있습니다.
하지만, 한글 자막에는 의도적으로 괄호를 집어넣는 경우가 많으므로 해제합니다.

c. 자막 색깔 지정
위의 3번에서 확인한 색깔을 지정합니다.
앞에서 확인한 결과를 역순으로 지정하면 됩니다.
(e2, e1, p, b 순이었는데, 여기서는 b, p, e1, e2 순으로 지정합니다)

사용자 삽입 이미지



5. 오디오/자막의 정확한 정보 확인 (IfoEdit)

DVD의 오디오와 자막에는 언어/감독 코멘트 여부 등의 정보가 같이 들어있습니다.
언어는 IfoEdit로 영화의 ifo 파일(여기서는 VTS_01_0.IFO 파일)을 열어보면 아래와 같이 확인할 수 있습니다.
또한, PowerDVD 등의 S/W로 재생하여 더 상세한 정보(Director's comment / forced 등)를 확인할 수 있습니다.

사용자 삽입 이미지


6. 만들어진 데이터 합치기 (MuxMan)

비디오, 오디오, 자막을 (추출할 때 보인 코드의) 순서대로 추가합니다.
그리고, 추가된 오디오와 자막의 정확한 정보를 지정합니다.
오디오는 언어, 상세정보, 딜레이 등을 지정해야 하고,
자막은 언어, 상세정도 및 비디오 크기 등의 정보를 지정해야 합니다.
그리고, 메뉴의 Import Chapter에서 2번에서 편집한 Celltime.txt를 지정합니다.
(2번에서 편집하지 않으면 한참의 시간이 걸려 muxing이 끝날 무렵에 작업을 할 수 없다는 오류가 튀어나옵니다)
그리고, 혹시나 모르니까 이렇게 지정된 내용을 Save Project As 메뉴를 이용해서 저장합니다.

마지막으로 Start 버튼을 클릭하면 (한참의 시간이 걸린 후) DVD 파일들이 생성됩니다.

사용자 삽입 이미지


7. 자막 색깔 팔레트 지정 (IfoEdit)

MuxMan의 기능에는 자막의 팔레트를 넣는 기능이 있습니다만, 정확하게 동작하지 않습니다.
그래서, 자막의 팔레트 정보를 다시 기록해줘야 합니다.
IfoEdit로 새롭게 생성된 비디오의 VTS_01_0.IFO 파일을 엽니다.
(5번에서는 원본의 IFO를 연 것이고, 여기서는 새롭게 만들어진 IFO 파일을 여는 것입니다)
그리고는 VTS_PGCITI를 클릭한 뒤에 VTS_PGC_1을 클릭하면 아래쪽 패널에 영화의 상세정보들이 나옵니다.
여기서 팔레트 데이터를 찾습니다.

아래 그림처럼 팔레트 데이터를 찾았으면, 3번에서 확인한 색깔값의 팔레트를 지정합니다.
(e2=12, e1=13, p=14, b=15)
여기서, 자막색깔인 p235, 128, 128(eb 80 80)을, 나머지16, 128,128(10 80 80)을 지정하면 됩니다.
(즉, 14eb 80 80을 지정하고, 12, 13, 1510 80 80을 지정)

수정이 완료되었으면 Save 버튼을 클릭해서 저장하면 작업이 완료됩니다.

사용자 삽입 이미지


작업이 완료된 후에 PowerDVD나 KMP 등의 플레이어로 열어보면 아래와 같이 자막이 추가된 모습을 볼 수 있습니다.

사용자 삽입 이미지

Revelations UltimateK DVD의 한 장면 ^^;;;;