sami 자막 수정 방법

version 2011.03.26

그냥 심심하네요. 그래서 smi 확장자로 잘 알려진 sami 자막을 수정하는 방법에 대해서 살펴보도록 하겠습니다.

sami 화일은 MS에서 만든 자막 규격인데 다른 나라에서는 거의 쓰이지 않고 우리나라에서만 많이 쓰입니다.

(자막은 smi 말고도 srt와 sub 파일이 존재하지만, 다른 종류는 전문 유틸리티를 사용하지 않으면 수정이 힘듭니다. 자막을 동영상에 넣기를 원할 경우에는 smi화일보다 srt화일로 만드는 것이 쉽습니다. smi와 srt화일을 변환시키는 utility가 있습니다.)

1. 기본구성

sami 파일은 기본적으로 html 태그와 비슷하게 구성되어 있어서 html을 조금이라도 살펴본 사람들이라면 쉽게 적응할 수 있을 것입니다. sami 파일의 기본구조는 다음과 같습니다.

<sami>
<head>
<Title> 제목 </Title>
<STYLE TYPE=”text/css”> <!– 설정값 –> </STYLE>
</head>

<body>
자막내용
</body>
</sami>

head 부분은 자막의 기본적인 정보를 입력하는 부분입니다. head가 없어도 대부분 자막이 잘 표시될 수 있지만, 더 나은 자막을 만들기 위해서는 head를 잘 설정해야 합니다.

자막 수정 유틸리티를 사용해서 자막을 수정하면 <Title> 부분의 안에 유틸리티 정보가 들어가기도 합니다. 하지만 이 부분에는 원래의 영상물의 정보가 들어가야 합니다. 예를 들어 하나의 영화로 만든 여러개의 동영상이라고 하더라도 동영상에 따라서 자막이 화면에 나오는 시간(Sync)이 달라지므로 Title 정보에는 영화 제목과 릴 정보(다시 말해서 동영상 파일의 이름), 동영상 크기를 함께 넣는 것이 관례화 되어있습니다. 친절하게 자막을 만들어주지 않는 경우가 많지만, 혼동이 있을 경우에 때때로 메모장같은 text 편집기로 자막파일을 열어보면 정보가 들어있는 경우도 많습니다.

2. Head 수정하기

자막으로 출력될 글씨들에 공통으로 적용될 성질을 설정하는 내용은 STYLE 태그 속에 넣습니다. STYLE 태그 내부에 들어갈 내용은 주석 기호 <!––>로 감싸야 합니다. 이 안에는 글씨에 적용될 성질, 언어 설정, 글씨 크기 설정 등등 몇 가지 사항이 삽입될 수 있습니다. 물론 주석 기호로 감쌓인 것들이 자막의 다른 부분에 있다면 플레이어는 이러한 부분을 모두 무시할 것입니다. 그래서 하고싶은 말이 있을 경우에 주석으로 여기저기 기록해 놓는 것도 가능합니다. 그러나 동영상 플레이어에 따라서 Head를 무시하는 경우도 많이 있습니다.

P { margin-left:8pt; margin-right:8pt; margin-bottom:2pt;
    margin-top:2pt; font-size:22pt; text-align:center;
    font-family:Arial, Sans-serif; font-weight:bold; color:white;
    }

.KRCC { Name:Korean; lang:ko-KR; SAMIType:CC; }
.ENCC {Name:English; Lang:en-US; SAMIType:CC;}

#STDPrn { Name:Standard Print; }
#LargePrn { Name:Large Print; font-size:34pt; }
#MediumPrn { Name:Medium Print; font-size:24pt; }
#SmallPrn { Name:Small Print; font-size:18pt; }

P{ }로 작성되는 부분은 자막 전체에 적용될 성질을 나타내는 부분입니다. 이 설정도 여러가지로 할 수 있다고 생각되는데, 그렇게 작성한 자막을 본 적이 없습니다. (사실은 적용시켜 본 적이 있는데, 두 개 이상을 지원하는 플레이어를 찾지 못했습니다. ^^;)
일부 플레이어는 이 부분을 완전히 무시해 버리고, 자체의 옵션을 이용해서 여러가지 글씨의 설정을 조절하게 만듭니다. 하지만 동영상을 재생시킬 때마다 매번 자막 설정을 새로 하는 것보다는 이 부분을 지원해 주는 것이 자막을 이용하기가 더 쉬울 것입니다.

‘.’으로 시작되는 줄이 언어 설정을 하는 부분입니다.

.KRCC { Name:Korean; lang:ko-KR; SAMIType:CC; }

KRCC는 꼭 이렇게 정해져 있는 것이 아니어서 다른 문자열을 사용할 수 있지만 한글 자막의 경우 관용적으로 이렇게 사용합니다.
영어 자막은 ENCC, 일본어 자막은 JNCC 등으로 기록합니다. 괄호 안의 Name은 언어의 이름을 나타내는 말로  Korean이라고 쓴 것이 플레이어에서 언어를 고를 때 나타나는 말입니다. 한글 자막의 경우 ‘Korean’이나 ‘한국어’로 쓰면 되겠죠? 하지만 한글이 지원되지 않는 시스템에서도 이름을 정확히 표시하려면 영어로 표시하는 것이 좋겠습니다. ^^; lang 부분은 언어정보, SAMIType는 자막을 해석할 방법을 알려주는 부분입니다. (보통 언어명-사용국가명 형식으로 표기합니다.) 이 설정들은 특별히 작성하는 방법 없이 보기와 같이 사용하면 되겠습니다.

여러 개의 자막을 한 파일에 설정하여 다중언어 자막을 만들 수 있습니다. 보통 우리나라에서는 한글/영어/일본어를 설정하여 자막을 만드는 건 다들 아시죠?

# 형태로 작성된 줄들이 글자의 크기를 설정하는 부분입니다.

플레이어에 따라서 글자 크기를 조정할 수 있는 메뉴가 있는데, 이 항목으로 어떤 메뉴를 만들지를 결정하는 것입니다. Name 부분은 글씨 크기를 나타내는 말입니다. 개수가 정해진 것이 아니므로 다양하게 만들어 사용할 수도 있습니다. STDPrn은 플레이어의 기본 설정을 나타냅니다. 이 옵션을 지원하지 않는 플페이어가 많습니다.

여기까지 head 부분 설정이 끝났습니다.

3. 자막내용 수정하기

① 대사 출력하기

대사를 출력하는 방법은 아주 단순합니다.

<SYNC Start=7000><P Class=KRCC> 자막내용

SYNC 태그의 Start는 ‘자막내용’이 표시되기 시작하는 시간을 나타냅니다. 단위는 ms이므로 윗 보기의 7000은 동영상이 시작한 뒤 7초 뒤에 ‘자막내용’을 화면에 보여준다는 의미입니다. P 태그는 head 부분에서 설정한 P{ }를 적용하라는 이야기입니다. Class는 출력할 종류를 지정하는 설정입니다. KRCC로 설정되어 있으므로 한국어 자막이 출력되기를 원할 때 ‘자막내용’이 출력될 것입니다. 영어로 출력되어도 ‘자막내용’이 출력되기를 원한다면 위와 같은 줄을 하나 더 작성해야 합니다.

<SYNC Start=7000><P Class=ENCC> 자막내용

class를 바꿔주면 그 언어가 어떤 문자로 사용됐는지에 상관없이 출력됩니다. 한글 자막에서도 영어로 쓸 것이 있을 수 있으니 당연한 것이겠죠.

② 대사 지우기

출력된 자막을 지우는 방법은 두 가지가 있습니다.

정식 방법은 대사가 끝나는 시간을 미리 입력해두는 것입니다.

<SYNC Start=7000 END=8500><P Class=KRCC> 자막내용

이 방법을 사용하라고 표준에서 정의해놨지만 사람들이 사용하지 않았습니다. 왜냐하면 END의 수치와 다음 자막의 수치의 시간을 잘 맞춰야 하는데 그게 쉽지 않았거든요. 더군다나 sami자막 수정 utility를 만들 때 END 옵션을 수정하도록 만드는 것이 생각보다 쉽지 않았기 때문입니다.[footnote]END 옵션을 플페이어가 지원하지 않는 경우가 많습니다.[/footnote]

그래서 사람들은 편법으로 “&nbsp;“이나 “<BR>“을 사용합니다.

  • &nbsp;는 원래 html 문서에서 공백(space)을 나타내는 문자열입니다. html에서는 기본적으로 공백이나 탭문자나 줄바꿈 문자가 연속으로 여러 개 포함되어 있을 경우 모두 공백 하나로 인식하도록 되어있기 때문에 공백을 넣을 수 없는 위치나 공백을 연속적으로 여러 개 넣기를 원할 때에 사용합니다.
  • <br> 태그는 줄바꿈 태그입니다.

공백을 하나 출력하거나 줄바꿈을 하나 표시하더라도 전혀 티가 나지 않기 때문에 공백 하나를 출력하라는 의미의 &nbsp;를 사용하여 현재 보이는 자막을 지우는 것입니다.

<SYNC Start=7000><P Class=KRCC> 자막내용
<SYNC Start=8500><P Class=KRCC> &nbsp;

이와같이 자막을 만들면 7초에 ‘자막내용’이 출력된 뒤에 8.5초에 사라지도록 되는 것입니다. 첫 번째 방법으로 만든 자막보다 분량이 늘어나지만 사용자들이 직관적으로 보고 알기가 편하고, 프로그램 만들기도 편합니다.

③ 글자색 바꾸기

자막을 작성하다가 단 한 곳의 색만 녹색으로 바꾸고자 한다면 어떻게 하면 될까요?

원하는 곳을 <font color=green> </font>로 감싸주면 됩니다. 예를 들어 “자막내용”을 “자막내용”으로 바꾸려고 할 경우에는

<SYNC Start=7000><P Class=KRCC> 자<font color=green>막내</font>용

으로 만들면 ‘막’과 ‘내’ 두 글자만 녹색으로 바뀝니다. font 태그로 설정할 수 있는 글씨 성질(글자색, 배경색, 글자크기 등등)은 모두 사용할 수 있습니다만 모든 것을 지원하는 플레이어가 현재는 없습니다. 보통은 글자색만 사용합니다.

④ 다른 효과

marqee 태그, <right>나 <center> 태그, <B>나 <U>나 <strike> 태그 등 html 태그에 사용되는 대부분의 태그를 사용할 수 있습니다. 플레이어에서 지원해 주기만 한다면….

4. 자막 수정할 때 주의할 점

마지막으로 자막을 만들 때 주의할 점을 몇 가지 알려드려야겠네요.

  1. 다중언어 자막을 만들 경우 한 언어로 작성되는 대사는 한꺼번에 모여있어야 합니다. 원리적으로는 섞여있어도 잘 작동해야 하지만, 플레이어가 지원하지 않는 경우가 많습니다.
  2. 자막은 시간순대로 정렬되어 있어야 합니다. 늦게 나와야 하는 자막이 앞에 있으면, 그 자막이 출력될 때까지 아무런 자막도 출력되지 않습니다.
  3. 자막은 정확한 직역보다는 영화의 흐름에 따라서 적당히 의역하는 것이 좋습니다. 글씨를 읽고 이해하는 속도가 말을 듣고 이해하는 것보다 느려서, 모든 것을 정확히 번역하면 이해하기 힘든 자막이 됩니다. 그래서 자막을 만들 때는 싱크(Sync) 조절과 과감한 생략이 더 나은 경우가 많습니다.
  4. 줄바꿈 문제입니다.
    한꺼번에 표시해야 할 내용이 많으면 자연스럽게 줄바꿈이 일어납니다. 그러나 보통 책의 경우도 아무때나 줄이 바뀌면 읽고 이해하기가 힘들어집니다. 마찬가지로 빨리빨리 읽어야 하는 자막에서는 읽는 속도가 중요하기 때문에 읽는 속도에서는 작은 문제도 중요해집니다.
    자막에서는 플레이어가 자동으로 줄을 바꾸게 해서는 절대로 안 되며, 자막 제작자가 <BR> 태그를 넣어서 강제로 바꿔줘야 합니다. 이때 <BR> 태그는 글의 뜻 단위에 맞춰서 삽입되어야 합니다. 예를 들어 “누가 네게 자막을 그렇게 잘 만들라고 그랬어?”를 두 줄로 출력하기를 원한다면

    <SYNC Start=7000><P Class=KRCC> 누가 네게 자막을<BR> 그렇게 잘 만들라고 그랬어?

    처럼 나눠서 서술절만 한 줄로 만드는 것이 좋습니다.

  5. 자막 파일의 인코딩 문제입니다.
    어떤 한글 규격으로 자막파일을 만들든 괜찮습니다만…………….. 여러 형식이 섞이게 되면 제대로 나오지 않습니다. 여러 자막 파일을 복사하여 하나의 파일로 만들 때 여러 형식의 한글이 섞이게 되는데, 자막 파일을 텍스트 에디터로 열어서 아무리 살펴봐도 티가 나지 않기 때문에 원인을 알아내기 힘듭니다. 그래서 원인을 알 수 없이 정상적으로 나오지 않는 자막 파일은, 보통 아래한글이나 MS워드 등에 붙여넣고 text화일로 저장하여 해결합니다.

5. 당부

그러나…..

영화 자막은 저작권에 문제에 신경써야 합니다. 대사는 기본적으로 시나리오 작가의 저작물이고, 자막 작성자가 시나리오 작가의 허락을 받지 않은 이상 저작권을 위배했다고 볼 수 있습니다.

그럼에도 불구하고 제가 이 글을 작성하는 이유는……

자막을 작성하는 일을 한 번정도 해보면, HTML로 만들어지는 태터 계열의 블로그 스킨을 수정하거나 글쓰기를 할 때 도움이 되기 때문입니다. 그리고 자막이 꼭 기존 동영상에만 맞춰서 만들어지는 것은 아니니까요. 여러 가지 일에 사용될 수 있겠죠? ^^

모두 좋은 자막 만드시기 바랍니다.

ps.

둘 이상으로 나눠진 자막을 한 설정파일을 만들어서, 하나처럼 재생하는 방법이 있다고 합니다. 확인한 바로는 매우 방법이 복잡하고, 극히 일부 플레이어에서만 사용이 가능했습니다. 보통은 자막 파일을 일일히 하나로 합쳐야 합니다.

9 thoughts on “sami 자막 수정 방법

  1. 작은사진(가로 640픽셀)은 블로그에 사진 가져가셔도 될텐데..
    아마 큰 사진을 말씀하시는 것 같습니다. ^^

    제가 이미 출근한 상태라서..
    저녁쯤에나 보내드릴 수 있겠네요.
    사진이 집에 있는 컴퓨터에 있거든요 ㅋㅋ

  2. 저는 자막 만드는 것보다는 자막 동기화 작업을 잘해보고 싶어요.. ^^

    1. 동기화? 싱크 맞추는 거 말씀하시는 건가요?
      뭐 그럭저럭…. 손으로 수정하고 있습니다만….
      영 껄쩍지근하죠? ㅋㅋ

  3. 인장님 RSS리더 보다가 간만에 들렀습니다 :) (실은 슈렉 3영화 보는데 자막이 중간에 깨져서 어쩔까하다가 마침 딱 이 포스트가 뜨는 바람에… 흐흐 덕분에 에러난 부분 찾아서 잘 봤습니다 +_+)

    이번주 토요일인 16일에 태터캠프 열리는데 오실 수 있으면 꼭 오세요~^^ 그 때 뵙겠습니다~

  4. 한가지 궁금한것이 있는데, 영화를 보는동안 화면우측상단에 영화제목이 표시되도록 하는방법은 없나요?
    TV를보면 우측상단에 프로그램제목이 표시되는것처럼말이죠.

    1. 자막에서 하는 방법은 없습니다.
      더군다나 플레이어에서 지원이 절대 안 될 것입니다.
      또 제목을 계속 띄우는 것은 영화감상에 도움이 안 될 것 같네요. 영화보는 내내 시선은 제목에 가 있을테니까 영화본 뒤 생각나는 것은 제목뿐일 것 같네요. ㅜㅜ

  5. 안녕하세요. 인장님 ^^

    광주시청에 아는분이 계셔서 연락해보니 몇군데 있다고 하시더군요. 광주 광엑스포를 준비하는곳도 있고, 또 CGI 제작쪽도 있고, 그 외 몇 군데 더 있다고 하십니다. 내려오시면 에스코트는 제가 해드리겠습니다. ^^

    정확한 일정이나 계획을 알려주시면 훨씬 효율적으로 일정을 짜 볼 수 있을것 같습니다.

    연락 주시면 감사하겠습니다.
    010-2080-2918 김태진 입니다. ^^

  6. 핑백: Mystery Crisis

댓글 남기기