srt 자막 파일과 smi 자막 파일의 차이점?

자막제작자포럼

srt 자막 파일과 smi 자막 파일의 차이점?


"smi 자막은 한국어 자막, srt 자막은 영어 자막" 이런 편견이 많더군요.


저도 예전엔 그런 줄 알고 처음 자막 만들 당시엔 일일이 srt->smi 변환을 했었는데... 굳이 변환해 줄 필요가 없다는 걸 알게 되었죠.


srt 파일에 대해 갖고있는 오해와 그 장점을 알려드리기 위해 몇 자 써봤습니다.





smi 파일이란?


자막 파일의 형식 중 하나로, 거의 한국에서만 쓰이는 양식입니다. 정식 명칭은 Synchronized Accessible Media Interchange (SAMI) 로 .smi 혹은 .sami 확장자를 사용합니다.


마이크로소프트에서 미디어 플레이어에 쓰는 청각 장애인을 위한 폐쇄자막(Closed Caption) 용으로 개발했으나, 그다지 널리 쓰이지 못하고 잊혀진 고물(?)입니다. 자막을 메모장으로 열어보면 KRCC, ENCC 이런 약자를 볼 수 있을텐데 이게 그 흔적이라고 할 수 있죠. (KRCC = Korean Closed Caption, ENCC = English Closed Caption) 


사실상 해외에서는 전혀 쓰이지 않는 양식이라고 봐도 됩니다. 하지만 한국에서는 초고속인터넷 초창기에 사사미(SASAMI 2K)라는 동영상 재생 프로그램이 등장, smi 파일을 자막으로 지원하면서 오히려 국내에서의 자막=.smi 파일 공식을 세우게 되었습니다.



smi 파일 구조 

 

<SAMI>


<HEAD>
<Title>자막 제목</Title>


<STYLE TYPE="text/css">
<!--
P { margin-left:8pt; margin-right:8pt; margin-bottom:2pt;
    margin-top:2pt; font-size:20pt; text-align:center;
    font-family:굴림, Arial; font-weight:bold; color:white;
    background-color:black; }
  .KRCC { Name:한국어; lang:kr-KR; SAMIType:CC; }
  .ENCC { name: English; lang:en-US ; SAMIType:CC; }
-->

</STYLE>


</HEAD>


<BODY>


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


<SYNC Start=1000>
<P Class=KRCC>&nbsp;</P>
<P Class=ENCC>&nbsp;</P>


</BODY>
</SAMI>


실질적으로는 자막 내용이 있는 <BODY> </BODY> 안의 내용만 있더라도 팟플레이어 같은 플레이어에서 잘 인식됩니다.


즉 smi 자막 파일의 핵심은 <SYNC Start=싱크>인 셈이죠. 다만 이 싱크라는 게 숫자로만 되어 있어서 그냥 보기만 하면 이게 언제 나오는 건지 알기 어렵습니다. 그래서 Subtitle Edit 같은 자막 제작 프로그램이나 동영상 프로그램 내 자막 탐색기로 건드리는게 편합니다.



smi 파일의 특징


1. HTML 태그 및 CSS 지원


<i></i> 이탤릭

<b></b> 볼드

<font color = FF0000></font> 글자색

<font face = 바탕></font> 글 폰트 변경

<ruby></ruby> 루비태그 

 

등등 자막에 간단한 효과를 입힐 수 있습니다. 


다만 단점(?)이라면 자막 중간에 <br>이 없으면 줄 바뀜이 되지 않습니다.


<SYNC Start=1000><P Class=KRCC>
1, 2, 3, 4
5, 6, 7, 8


실제로 나오는 자막 = 1, 2, 3, 45, 6, 7, 8


이렇게 말이죠



2. 태그를 이용해 통합자막 제작 가능


아까 위에서도 언급했지만 KRCC, ENCC 등 동영상 플레이어에서 자막 언어를 KRCC, ENCC, 혹은 동시에 나오도록 설정할 수 있습니다. 통합자막은 다 이런 형식이라고 보면 됩니다. smi 파일의 장점이죠.


srt 파일은 파일 하나 당 하나의 자막 파일이라서 통합 자막 흉내를 내려면 파일 제목 마지막에 .kr .en 이런 식으로 구별해줘야 합니다.



3. 종료싱크가 없음


이건 어떻게 보면 smi 파일의 단점인데, 싱크 하나가 시작되면 다음 싱크가 나오기 전까지 자막이 계속 남습니다. 종료싱크가 없으니 대신 중간에 싱크 하나에 &nbsp; 를 넣어 빈 자막을 만드는 식으로 자막을 지워줘야 하죠. 


후술하겠지만 srt 파일은 자막 별로 시간을 따로 설정할 수 있기에 자막이 자동 종료되거나 같은 시간에 여러 자막을 나오게 하는 것도 가능합니다. 



4. 호환성이 낮음


SAMI 자체가 워낙 오래된데다가 마소도 사실상 버린 자식 취급이라 생기는 문제입니다. 이게 개발된 90년대만 해도 유니코드란 개념이 없었기에, 각 언어가 다른 인코딩 형식을 가지고 있었죠.


대표적으로 일본어 같은 경우 유니코드로 저장하지 않으면 자막에서 글자가 깨져서 나옵니다. 요즘엔 Subtitle Edit 같은 자막 제작 프로그램에서 UTF-8 형식으로 저장하는 걸 지원해주니 왠만하면 유니코드로 만드는 게 좋습니다.


또 다른 문제는 smi 파일이 사실상 한국에서만 쓰이는 파일이다보니, smi 파일을 지원하는 멀티미디어 기기가 그다지 많지 않습니다. 






srt 파일이란? 

 


srt 파일은 서브립(SubRip)이라는 자막 추출 프로그램의 텍스트 자막 파일 확장자입니다. 사실상 모든 서브립 파일 포멧의 기본 구조라고 할 수 있죠. 해당 프로그램은 자유 소프트웨어라 전세계에서 널리 쓰이고 있습니다. 


해외에서는 텍스트 자막 = srt 파일입니다. 단순한 자막은 srt 파일, 좀 더 화려한 효과를 주고 싶다면 ass 파일을 사용하죠.



srt 파일 구조


9
00:01:57,456 --> 00:01:58,790
MAN: Get inside now!


10
00:01:58,830 --> 00:02:00,700
Hurry up! You're late!


순번, 시간(시간:분:초,밀리초), 자막으로 구성된 단순한 구조입니다. 


사실 저 순번은 그냥 '몇 번째 자막'이라는 정도라서 숫자가 중복이든 역순이든, 심지어는 없더라도 자막을 읽는데는 아무런 문제가 없습니다. 중요한 건 시간과 자막이죠.



srt 파일의 특징



1. 높은 호환성


유니코드 형식이라서 일본어든 간체자든 글자가 깨질 일이 없습니다. 그리고 전 세계에서 널리 쓰이는 자막 파일이라 srt를 지원하지 않는 멀티미디어 기기 찾는게 더 빠를 정도죠.


그리고 HTML 태그도 사용할 수 있습니다. 종종 인터넷에 'srt 파일은 smi 파일처럼 자막을 꾸밀 수 없습니다' 라는 소리가 있던데... 아주 잘 적용됩니다. 제 자막 받아보신 분들은 아실겁니다.



2. 독립된 자막


시작 시간 ---> 종료 시간

자막 내용


각 자막별로 시작 시간과 종료 시간을 설정할 수 있습니다.


이게 의외로 재미있는 기능인게, 종료 시간이 따로 설정되었기에 한 자막이 나오는 도중 다른 자막이 나오더라도 동시에 같이 나옵니다. smi 같은 경우는 싱크 시작만 설정되어 있기에 이전 자막은 바로 끊겨버리죠.
 

그래서 상황에 따라선 .ass 자막 비슷한 효과를 내는 것도 가능합니다. 


예시를 보여드리자면...

2074629148_WDicUrxo_741b30b31c7530f08c7315da70e05f4affc511a2.jpg

(gif 사진 첨부가 안되네요... 원글 # 확인 바랍니다.)


159

00:09:55,000 --> 00:09:58,000
<ruby><rt>몰라. 어쩌면 세상에게서</rt></ruby>
<ruby><rt>당한 만큼 되돌려</rt></ruby>
<ruby><rt>받으려는 걸지도 모르지.</rt></ruby>


175
00:09:52,710 --> 00:09:56,080
<i>그들 모두의 이름을</i>
<i>부르시는 분이시다</i>


176
00:09:56,080 --> 00:09:58,420
<i>그분께서는 능력이 크시고</i>
<i>권능이 막강하시어</i>


177
00:09:58,420 --> 00:09:59,960
<i>하나도 빠지는</i>
<i>일이 없다.</i>


9분 55초~9분 58초로 설정된 루비태그 자막이 다른 자막들이 나올 때 위에 나타났다가 사라지는 걸 보실 수 있을 겁니다. 자막별로 시작 시간과 종료 시간이 설정되어 있기에 이런 연출이 가능합니다.


싱크 시작 밖에 없는 smi 자막으로는 하기 어려운 연출이죠. 그래서 제가 만든 자막글에 변환하지 말아달라고 적은 겁니다. 이걸 smi 변환하면 대사가 순식간에 나왔다가 사라지는 등 엉망이 됩니다.



3. 단순함


저 위의 smi 구성만 보더라도, HTML 태그 잔뜩이라 복잡하지만 srt 형식은 단순합니다. 그리고 &nbsp; 같은 빈 싱크도 필요없고, 줄 하나 바꾸는 데 <br> 도 필요없죠. 그래서 같은 내용의 자막이더라도 srt 파일이 smi 보다 훨씬 용량이 적죠. 딱히 장점은 아니지만요.


그 외에도 싱크로 자막을 설정하는 smi와 달리 srt는 시간으로 자막을 설정하기에 굳이 전용 프로그램 없이 메모장만 가지고도 쉽게 수정할 수 있다는 장점이 있습니다.




요약 


1. smi 자막 - 한국에서만 씀. 비주류 양식이라 호환성 문제가 있음. KRCC/ENCC 등 HTML 태그를 사용해 통합자막을 만들 수 있음.


2. srt 자막 - 범세계적 양식. 거의 모든 플레이어 및 기기에서 사용 가능. 통합자막 기능만 빼고 smi에서 되는 태그는 srt에서도 가능함. 


3. 서로 차이점은 있지만 근본적으론 거기서 거기


4. 그러므로 프로그램 혹은 장치 호환 문제가 아닌 이상 억지로 변환할 필요는 없음


5. srt 파일이라고 다 영어 자막은 아니니 오해하지 마시길...





https://ko.wikipedia.org/wiki/SAMI

https://en.wikipedia.org/wiki/SAMI


https://ko.wikipedia.org/wiki/서브립

https://en.wikipedia.org/wiki/SubRip 



Facebook Twitter GooglePlus KakaoStory NaverBand 신고

Author

Lv.7 7 destinyfate000  골드(3등급)
12,409 (68.1%)

등록된 서명이 없습니다.

15 Comments
S rayphie  
공부 잘 했습니다.
사족을 달아보자면
1. smi에는 종료씽크가 없다 표현하셨지만 빈 싱크라 표현하신 방법으로 종료시키고 있는 것이니 없는 것은 아니겠네요.
2. smi로도 예전과는 달리 요즘 pot player에서는 겹치는 씽크가 됩니다.
3. srt에서 화면에 출력 안되는 메모를 넣고자 할 때 극히 짧은 씽크 말고 다른 방법이 있는지 궁금합니다.
7 destinyfate000  
댓글 감사합니다. 답변을 드리자면...

1. &nbsp;를 싱크 종료처럼 사용하긴 하지만, 엄밀히 말하자면 이건 '종료싱크' 가 아니라 새로운 싱크를 시작하는 개념이죠. 물론 이게 문제가 된다는 건 아니고, srt와 비교했을 때 단점이라고 말할 수 있다 정도입니다. 아래에서 좀 더 자세히 설명하겠습니다.

2. 단순히 겹치는 싱크가 아닙니다.  smi는 자막 별 종료 싱크가 없어서 다른 새로운 싱크가 생기면 그 싱크로 넘어갑니다. smi로도 완전히 동일한 싱크로 다른 자막들을 같이 나오게는 할 수 있지만, 그 다음에 새로운 싱크가 시작되면 앞서 나온 자막은 다 사라지죠. 반면에 srt는 각각의 자막이 개별적으로 시작-종료되기에 다른 자막들을 계속 내보내면서 동시에 새로운 자막을 별도로 내보내는 게 가능하다는 소리입니다. gif 파일을 보시면 제가 하려던 게 무슨 말인지 이해가 쉬운데... 용량 문제로 씨네스트엔 올릴 수 없더군요. 링크인 블로그에 예시 gif 파일을 올려놓았으니 링크 한 번 봐주시면 감사하겠습니다.

3. srt도 근본적으론 텍스트 자막이다보니... 더 다양한 연출을 하려면 아무래도 ass 자막 밖엔 없을 것 같네요.
30 데블  
3번의 경우, 화면에 출력 안되는 메모는 애초에 자막에서는 필요가 없는 기능이죠.
이런 메모는 비공식 자막제작자분들 말고는 사실상 쓰일 일이 없습니다.
게다가 <!-- 같은 주석 태그는 포맷 상호 변환시 제거될 확률이 높습니다.
주석이다보니 없어도 되거든요. 실제로 팟플에선  <body>의 내용만 있으면 정상출력이 됩니다.
따지고보면 font-family, margin, lang 같은 스타일 태그는 사실 알고보면 다 주석일 뿐인데
플레이어에 따라 이게 꼭 필요한 경우도 있습니다. 미완성 포맷이다보니 기준이 없는 거죠.
어떤건 SAMIParam이 들어가기도 하고, 심지어 P Class=ENUSCC로 되어있으면 인식불가 되기도 하는
문제들은 srt 라면 애초부터 생기지 않을 문제들이죠.
S 토마스모어  
srt 자막은 시간이 표시되어 싱크 개별 조정을 하거나 자막을 추가할때 참 편하지만 SMI는 숫자로만 되어 있어서 참 불편하긴 합니다.
그런데 제가 많이 쓰는 '한방에' 라는 프로그램은 srt 자체를 인식하지 못하여 어쩔 수 없이 결국은 smi 로 변한시킵니다.
한방에를 대체할 수 있는 쉬운 자막관리 프로그램이 있으면 좋겠네요.  워낙 한방에만 오래 써서 익숙하고 쉬운데.
S 토마스모어  
아, 그리고 영상에 자막을 입힐 때 쓰는 다음 팟인코더도 아예 srt 자체를 인식 못하더군요.
영상에 자막 입히려면 그래서 또 smi 로 변환시켜야 하고.  그래서 저는 smi 가 더 보편적인 자막파일인줄 알았는데
우리나라에서만 널리 사용되는군요.  어쩐지 외국사이트에서는 srt 자막만 제공되는게 그 이유였군요.
7 destinyfate000  
'한방에'랑 '팟인코더' 둘 다 개발 종료된지 오래된 프로그램이죠...

자막 프로그램으로는 본문에서도 언급한 Subtitle Edit, 인코딩 프로그램으로는 샤나인코더 정도 있겠네요. Subtitle Edit 은 srt, smi 제작은 물론 변환도 지원하며, 샤나인코더는 ass 자막까지 인코딩 가능합니다.

https://github.com/SubtitleEdit/subtitleedit/releases
https://shana.pe.kr/main
S 토마스모어  
제가 자막 프로그램을 주로 사용하는 이유가 싱크조정을 쉽게 하기 위해서인데 subtitle edit 도 그런 기능이 쉬운가 보네요.
1 바구미다  
smi 진짜 너무 불편해요 호환 안되는 기기때문에.. srt나  ass만 쓰면 좋겠는데 매번 변환해줘야 하고
37 Rookie  
좋은 자료 감사합니다
20 큰바구  
훌륭한 글과 그리고 댓글과 답변들 잘 보았습니다
많은 도움이 되었습니다 감사합니다^^*
1 beecom  
자세한 비교 설명 잘 읽었습니다. 감사합니다. 요즘 한글 자막도 srt가 많아지는 이유를 알 것 같네요
17 폴리오  
감사합니다. ^^
덕분에 그동안의 궁금증이 모두 해소되었습니다.
저도 몇몇분들처럼 한방에만 쓰다보니 무조건 smi만 선호했는데 이제 새로운 세상을 만난 것 같군요~
이런 내막(?)이 숨어 있을줄이야!
그동안 소장한 수천편이 모두 smi인데 국내에서만 쓰는걸로... ㅎ

좋은 지식정보에 감사드리며, 본문 srt의 높은 호환성 항목중
'그리고 전 세계에서 널리 쓰이는 자막 파일이라 srt를 지원하지 않는 멀티미디어 기기 찾는게 더 빠를 정도죠.'를
'그리고 전 세계에서 널리 쓰이는 자막 파일이라 srt를 지원하지 않는 멀티미디어 기기 찾는게 더 어려울 정도죠.'로
바꿔야 하지 않을까 조심스럽게 생각됩니다만...;;
7 destinyfate000  
srt 지원 안하는 플레이어가 손에 꼽을 정도로 적다는 의미에요 ㅎㅎ...
일단 곰플레이어는 안되는 걸로 알고 있거든요.
1 홍칠공공칠빵  
글쎄요 곰플레이어도 되네요~~
잘못알고 계신거같아요
1 성혁정엽  
잘보고 이해도 했습니다