SAMI

1 개요

sami인곡
사용하는 확장자는 .smi 또는 .sami

한국에서만 쓰이는 대표적인 자막의 한 종류. Synchronized Accessible Media Interchange의 약자로, 마이크로소프트에서 정한 표준이다.
원래는 청각 장애인을 위해 개발된 방식이지만, 한국에서는 거의 표준 자막으로 널리 쓰이고 있다. 미디어 플레이어에서 지원할 때도 이 SAMI는자막(Subtitle)이 아닌 캡션(Caption)이라는 명칭으로 들어가 있었다.

2 형식

<SAMI>

<HEAD>
<Title>자막 제목</Title>
<STYLE TYPE="text/css">
<!--
P {margin-left:8pt; margin-right:8pt; margin-bottom:2pt; margin-top:2pt;
text-align:center; font-size:20pt; font-family:arial, sans-serif;
font-weight:normal; color:White;}
.KRCC {Name:한국어; lang:kr-KR; SAMIType:CC;}
.ENUSCC { name: English; lang: en-US ; SAMIType: CC ; }
-->
</STYLE>
</HEAD>

<BODY>

<SYNC Start=0>
<P Class=KRCC>한국어 자막</P>
<P Class=ENUSCC>English Subtitle</P>
</SYNC>

<SYNC Start=1000>
<P Class=KRCC> </P>
<P Class=ENUSCC> </P>
</SYNC>

<SYNC Start=2000>
<P Class=KRCC><font color="#79F3AE">자막 색상</font></P>
<P Class=ENUSCC><font color="#79F3AE">Font Color</font></P>
</SYNC>

</BODY>
</SAMI>

HTML과 형식이 매우 유사함을 알 수 있다.
자막제작툴로 자막을 찍다보면 색상을 표기할 떄 하는식으로 큰 따옴표가 없거나, </P>,</SYNC>등의 닫아주는 태그를 제대로 써주지 않는 툴들이 있는데, 이러한 툴로 생성된 자막들은 자막 프로그램 간 호환성이 매우 낮다.

3 특징

SAMI는 HTML 기반으로 각종 태그와 CSS를 지원하며, srt 자막처럼 색 넣기나 스타일 지정이 가능하다. 또한 ruby 태그를 이용하면 위첨자를 쓸 수 있어서, 일본어에 후리가나까지 넣을 수 있다. 다만 이를 제대로 지원하는 플레이어는 KMPlayer팟플레이어 뿐으로, 그렇게 표준이라고 할만한 사용법은 아니다.
가장 큰 특징 중 하나로는 종료싱크를 지정하는 내용이 없다는것이다. 이 떄문에 인물 대사가 끝나고 나면 빈 대사창을 별도로 추가해주지 않으면 마지막으로 한 대사가 계속 떠있지만 이 덕분에 다른 자막에 비해 작업속도가 빠른편이다.

SAMI가 세계적으로 널리 쓰이는 자막형식이 아니고 그걸 또 마개조해서 사용하는 국산 자막들은 외산 프로그램에서 이런 저런 문제가 발생하는 경우가 있다. 심지어 SAMI 개발사에서 만든 플레이어인 윈도우 미디어플레이어에서조차 vs-filter의 도움 없이는 이런저런 문제가 발생한다. vs-filter없이는 별도의 창으로 자막을 출력해주는건 덤

외부자막의 특성상 동영상과 파일 이름이 같아야 플레이어나 인코더에서 자동으로 찾아낸다. 흔히 하는 실수가 파일명.smi.smi 형태로 확장자를 두 번 쓰는 경우나, 파일명.mp4.smi등으로 영상 확장자도 같이 써넣는 경우다 . "자막이 안 나와요"라는 질문 중 반절 이상이 이렇게 파일 이름이 잘못된 경우. 이렇게 파일명을 지정하는게 귀찮다면 더 귀찮은 방법으로 플레이어 내에서 따로 자막파일을 지정해주는 방법도 있다. 다음팟 플레이어의 경우에는 아예 드래그앤드롭으로 자막파일을 현재 재생중인 영상에 끌어다 놓으면 그대로 출력해준다.

4 SAMI 자막의 문제점

SAMI의 가장 큰 문제점을 한 문장으로 요약하자면 비주류라는것

발표된 이후 아무도 사용하지 않아서 버려진 확장자였으나 국내 모 대학생이 심심해서 SAMI 파일을 지원하는 사사미#s2라는 동영상 플레이어를 만들었다. 그런데 이 프로그램이 완성도가 꽤 높은 탓[1]에 크게 성공하면서 SAMI 파일이 국내에 대량으로 퍼졌다. 또 srt에 비해 종료 싱크를 따로 만들 필요가 없으므로 상대적으로 srt 자막보다 자막 만드는 시간이 짧은 점도 한국에서 유독 널리 퍼진 이유중 하나라고 추측된다. 그러고 보니 왠지 ActiveX가 널리 퍼진 이유와도 비슷하다.

한국에서는 텍스트 방식 자막 파일로 SAMI가 널리 쓰이지만, 이외에도 고유 확장자를 갖는 자막형태만 10여 종류가 있으며, 동영상 자체에 별도로 자막스트림이 존재하는 경우까지 합치면 대충 20종류 남짓이다. 한국을 제외한 나머지 국가에서는 가벼운 자막이면 srt, 화려한 자막에는 ass를 주로 사용한다.

외산플레이어들이 SAMI파일들을 제대로 지원하지 못한다는 이야기들이 많은데 SAMI는 기본적으로 HTML스크립트를 기반으로 하기때문에 지원하는게 별로 어렵지 않다. 만약 자신이 사용하고 있는 외산 플레이어가 야매스크립트를 제외하고SAMI를 제대로 지원하지 못한다면 개발자가 귀찮아서 지원을 안하는것이므로 적극적으로 리포트를 넣어주자. 2016년 1월 기준으로 외산플레이어 중 유명하다 할만한 mpv,VLC,MPC-HC중에서 SAMI를 지원 안하는 플레이어는 VLC로, 이것도 이후 서술할 언어 인코딩문제로 발생하는것이지 SAMI파일을 지원안하는 것이 아니다. 자세한 내용은 하단의 호환성 문단 참조

SAMI 자막의 가장 큰 문제점은 기반언어가 HTML이라[2] 언어 인코딩문제에서 자유롭지 못하다는것이다. 언어 인코딩이 UTF-8로 고정된 SRT자막과는 다르게 언어 인코딩을 설정해주는 내용이 자막 내부에 없다. 이 때문에 애니메이션 오프닝/엔딩 가사에 가끔 쓰이는 일본 한자가 제대로 출력되지 않는 문제가 있으며, 하단의 호환성 문단을 보면 알겠지만 플레이어에 따라 한국어조차도 제대로 표시 못하는 플레이어가 있다. 이 일본 한자가 제대로 표시되지 않는 문제와 제작자의 무지가 결합해 만들어진 악습이 비슷하게 생겼거나 일본 약자의 유래가 되는 한자를 대용해서 표기하는것이다. 가령 미래를 나타내는 한자는 未來지만, 일본식 한자로 쓰면 未来가 된다. 당연히 일본 애니메이션에서 가사를 표기할때는 일본식 한자로 표기해야하며, 한국식 한자로 표기하면 명백한 오기다. 이러한 문제를 해결하기 위해 널리 쓰이는 방법이 SAMI파일을 유니코드로 저장해서 배포하는것이다. SAMI의 본 바탕이 되는 언어가 HTML이므로 통하는 방법으로, 이 방식이 잘못되었다고 이야기하는 사람도 있지만 SMAI형식 자체가 HTML+알파인 관계로 개발단계에서 고려되지 않은 사항일지는 몰라도 올바른 해결방법이라고 보아야 한다. 실제로 SAMI자막 렌더러가 뛰어난 플레이어또는 국산 플레이어들은 이러한 방식으로 상술한 글자들을 제대로 표시할 수 있다. 다만 SAMI형식 자체가 그렇게 해외에서 널리 쓰이는 포맷이 아니다보니 몇몇 플레이어들은 이렇게 해도 제대로 표기를 못한다는 문제가 있다. 언어인코딩에 대해 어느정도 지식이 있는 사람들은 알겠지만, 자막을 제작할 때 ANSI로 저장하면 외국언어를 사용하는 OS에서는 글자가 깨져나오는 문제가 있다. SubtitleEdit과 같은 웬만한 제막 제작툴은 저장단계에서 언어 인코딩을 설정할 수 있으니 일본식 한자같은게 없더라도 꼭 유니코드(utf-8)로 저장해주자

SAMI의 인지도가 얼마나 안습인지 알 수 있는 대목으로, 국내산 대기업 스마트 tv의 경우에도 srt는 지원해도 SAMI 자막은 지원하지 않는 경우가 많다.

이렇게 된 이유는 제작사인 마이크로소프트가 SMI 포맷을 버린 것이나 마찬가지이기 때문이다. 1998년에 처음 나왔을 때는 OS 환경이 아직 유니코드가 아니었고, 자막을 제대로 지원하는 소프트웨어가 없었기 때문에 SMI 포맷이 문제가 될 이유가 없었다. 그러나 이후 SMI 포맷은 업데이트가 전혀 없었고, 미디어 플레이어도 업데이트 되면서 지원은 하지만 SMI 자막을 켜는 옵션이 갈수록 숨겨지는 방향으로 갔다. 이렇게 거의 15년 넘게 끌어오다가 Windows 10이 나오면서 큰 문제가 생겼다. 윈도우 미디어 플레이어가 업데이트 없이 보조 프로그램으로 격하되었고, 대체제로 나온 Movies & TV 앱은 SMI를 아예 지원하지 않는다. 즉, MS에서도 완전히 버린 포맷이 되었다.

한국에서 가장 널리 쓰이는 곰플레이어는 srt 자막 지원이 엉망이기 때문에 멀쩡한 srt 자막을 받고도 smi로 자막 양식을 변환하는 사람마저 있다. 으아아아아 팟플레이어는 제대로 지원하지만 곰플레이어가 워낙 많이 퍼졌기 때문에 일어나는 현상.

5 호환성

작성일SAMI 지원[3]자막색상한글 표시일본 한자 표시ruby 태그
팟플레이어2016년 1월OOOOO
MPC-HC2016년 1월OOOXX
VLC (Windows)2016년 1월OOX[4]XX
mpv (Windows)2016년 1월OOOOX

6 참고할만한 사이트

MSDN문서
SMI와 SRT간의 차이를 설명
SMI의 문제점들
영문 위키피디아 SAMI항목
이 문서의 내용 중 전체 또는 일부는 SMI문서에서 가져왔습니다.</div></div>

  1. 예를 들어 플레이어 자체에 기본 코덱이 내장돼있어 상용 코덱을 제외하고는 코덱 설치 없이 동영상을 볼 수 있었고, 오버레이 자막을 지원한다거나 저사양에도 잘 돌아간다거나 지금 보면 당연한 기능들이지만 그 당시에는 사사미가 유일하게 지원하던 기능이었다.
  2. 가끔 일본 웹페이지를 돌아다니다가 글씨가 깨지는 페이지에서 인코딩항목에서 SHIFT-JS로 설정하면 제대로 보이는것과 같은 원리
  3. <font, u, i, b>,   등의 모든 SAMI관련 기본 스크립트
  4. 별도의 설정을 잡아주면 제한적으로 가능