샤나에서 자막을 어떻게 처리하는지 알아보기 위해서는 자막의 종류에 대해 먼저 아셔야 합니다. 동영상에서의 자막은 아래와 같이 분류됩니다. 각각의 경우를 샤나에서 어떻게 처리하는지에 대해서도 언급합니다.
- Open Subtitle
'Hardsub' 또는 'Hard subtitle'이라고도 불리며 동영상의 영상 스트림에 '입혀져' 있는 형태입니다. 따라서 Mediainfo 같은 프로그램으로 동영상 정보를 살펴 보아도 따로 자막 스트림(트랙)이 존재하지 않습니다.
이미 영상의 일부이기 때문에 선택적으로 볼 수 없고 누구나 볼 수 있게 공개돼 있다 해서 'open' subtitle이라고 불립니다. (또는 '자체 자막 영상'이라고 부르기도 함)
동영상에 이 형식의 자막을 입히는 작업을 'hardburn(hardsub을 입히므로)' 또는 'subburn'이라고 통상 부릅니다. 샤나에서는 [빠른 설정(F6)] -> [영상/자막] 섹션의 '영상에 자막 입히기' 옵션이 이것과 관련된 설정입니다.
(ASS/내장 자막 스타일 강제 적용을 선택하면 샤나 내에서 지정한 스타일로 강제 적용이 됩니다.)
자막을 입힐 때는 해당 자막 파일의 텍스트 인코딩 형식이 반드시 'UTF-8 with BOM'이 되도록 주의해야 글자가 깨지지 않습니다.
자막 입히기를 선택하면 인코딩 시 비디오의 '스트림 복사'를 선택할 수 없습니다. 자막이 영상의 일부로 들어가므로 당연히 재인코딩을 해야 합니다. 이런 이유로 샤나에서는 비디오 코덱에 '스트림 복사'를 선택하면 [빠른 설정(F6)] -> [영상/자막] 섹션이 사라집니다.
- Closed Subtitle
동영상에 자막 트랙으로 따로 먹싱(muxing=multiplexing, 묶기)된 자막입니다. 따라서 Mediainfo 같은 프로그램으로 동영상 정보를 보면 따로 자막 트랙으로 존재합니다.
재생시 선택적으로 볼 수도, 안 볼 수도 있기 때문에 공개된 자막이 아니라 해서 'closed' subtitle이라고 합니다. 경우에 따라 넓은 의미에서 'Closed Caption'이라고도 불립니다. 여러 개의 자막을 넣어두고 선택적으로 볼 수 있습니다.
동영상에 이 형식의 자막을 삽입하는 작업을 'softburn' 또는 그냥 '먹싱(muxing)'이라고 통상 부릅니다. 샤나에서는 [빠른 설정(F6)] -> [기타] 섹션의 'Closed Caption' 옵션이 이것과 관련된 설정입니다.
이 옵션을 선택하면 인코딩 시 '스트림 복사'를 선택할 수 있습니다. 자막이 별도의 트랙으로 단지 영상과 음성 트랙들과 묶이기만(먹싱) 할 뿐이기 때문입니다.
※ 샤나에서는 output 파일 형식(컨테이너 형식)에 따라 먹싱되는 자막 스타일이 달라집니다. 자막의 종류, 즉 ass/srt/smi 상관 없이 자막이 먹싱되는 output 파일이 mkv 파일이면 ass 자막으로, mp4 파일이면 텍스트 형식(srt 자막)으로 변환되어서 먹싱됩니다.
Closed subtitle도 이미지 형태의 자막이냐, 텍스트 형태의 자막이냐에 따라 두 종류로 나뉩니다.
- 이미지 자막(Prerendered Subtitle)
좁은 의미에서 'Closed Caption(CC)'이라고 하면 이 종류의 자막을 의미하기도 합니다.
자막이 글자가 아닌 이미지화(render)되어 들어가 있는 경우입니다. DVD의 VobSub 자막들(.sub+.idx), 블루레이의 PGS 자막들(.sup)이 이에 해당합니다.
이미지화되어 있기 때문에 자막 내용 수정이 불가능합니다. 수정을 위해서는 이미지를 텍스트로 변환(OCR: Optical Character Recognition)해야 하는데, 이를 위해 대개 SubRip이나 Subtitle Edit 같은 프로그램을 이용하거나 구글 드라이브의 이미지 OCR 기능을 이용합니다.
이미지 자막을 먹싱할 수 있는 파일 형식은 MKV뿐입니다. (MP4나 M4V는 불가능)
샤나인코더 5.0 버전부터 이미지 자막의 인식 및 자막 입히기 기능이 추가되었습니다.
- 텍스트 자막(Softsub, Soft Subtitle)
우리가 알고 있는 대부분의 외부 자막들은 텍스트 자막입니다. (.ass, .ssa, .smi, .srt 등) 좁은 의미에서 'Closed Subtitle'이라고 하면 이 종류의 자막을 의미하기도 합니다.
MKV나 MP4, M4V 영상에 먹싱할 수 있습니다. 이때 해당 자막 파일의 텍스트 인코딩 형식이 'UTF-8 with BOM'이 되도록 주의하시기 바랍니다.
이 자막들은 자막 스타일을 지정할 수 있느냐, 없느냐에 따라 두 종류로 나뉘는데, .ass나 .ssa는 자막 스타일을 지정할 수 있고 동영상 플레이어들도 스타일을 지킵니다만, .smi나 .srt는 일부의 기본 스타일들(굵게, 기울임꼴, 글자 색상 등)을 제외하고는 대부분의 동영상 플레이어들에서 스타일(글꼴, 위치 등)이 무시됩니다.
<Q&A>
- Q: 인코딩 후 한글 자막이 이상한 문자로 나옵니다.
- A: 텍스트 자막과 관련된 문제입니다. 원 자막 파일 자체의 인코딩이 UTF-8으로 돼 있는지 확인한 후 샤나에서 Closed Caption을 선택해 먹싱합니다. 곰플레이어의 경우 UTF-8으로 인코딩된 텍스트 자막의 출력시 글자가 제대로 보이지 않는 버그가 있는 것 같습니다. (이 게시물과 이 게시물 참조.)
- Q: 자막 폰트 없는 것은 굴림체로 나옵니다. 이걸 원래 적용된 폰트로 나오게 할 수 없나요?
- A: 샤나는 텍스트 자막을 MKV 동영상으로 먹싱할 때 ASS/SSA 형식으로 변환한 후 동영상에 포함시킵니다. 따라서 동영상 플레이어가 글꼴과 스타일을 살리면서 재생합니다. 만약 해당 글꼴이 시스템에 없을 때는 다른 글꼴로 대체되는데 플레이어에 따라 글꼴이 다릅니다. 플레이어의 자막 글꼴 설정에서 조정하시든지 hardburn을 하십시오. (이 게시물 참조.)
- Q: SMI (또는 SRT) 외부 자막을 글꼴 지정 없이 그냥 텍스트 자막으로 동영상에 포함시키고 싶습니다.
- A: ASS 변환이 아닌 텍스트 형식 그대로 MKV 동영상에 먹싱하고 싶으시다면 샤나가 아닌 MKVToolNix와 같은 먹싱 프로그램을 이용하십시오. MP4 동영상에는 텍스트 자막으로 먹싱됩니다.
- Q: 자막 먹싱된 동영상 파일을 유튜브 등에 올리면 자막이 사라집니다. 자막을 살리는 방법은?
- A: 샤나에서 '영상에 자막 입히기'를 선택해 자막을 hardburn하거나, 자막 파일을 따로 만들어 유튜브의 영상 편집 창의 자막 섹션에서 자막 파일을 업로드합니다. (이 게시물 참조)
- Q: 녹화된 원본 영상의 방송용 자막을 살리면서 인코딩하고 싶지만 자막이 인식되지 않습니다.
- A: 전역 헤더가 없는 일부 파일(주로 VOB, TS 파일과 몇몇 대용량 파일 형식의 파일들)에서 FFmpeg가 자막을 인식하지 못하는 문제가 있습니다. probesize와 analyzeduration의 세팅값을 충분히 크게 잡아 샤나의 [매개변수(F8)] -> [입력 설정] 섹션에 직접 입력하여 자막 스트림을 FFmpeg가 캐치해낼 수 있도록 하는 방법을 추천합니다. (예를 들어 ' -probesize 100M -analyzeduration 50M'을 첫 줄에 추가) (이 게시물 참조)
수정하거나 업데이트해야 할 부분이 있으면 알려 주시기 바랍니다.
+ 08/30/2018 내용 업데이트: MKV와 MP4의 자막 먹싱시 형식 변환
+ 01/24/2020 내용 업데이트: 샤나인코더 5.0부터 이미지 자막 지원 기능 추가
+ 02/17/2021 내용 업데이트: 텍스트 자막 인코딩 부분 추가, MP4의 이미지 자막 먹싱 불가능 부분 추가, 기타 몇 가지 수정
<Q&A 추가>
외부 자막을 Aegisub 같은 프로그램을 통해 편집하면서 줄 간격을 조절하는 식으로 우회하는 방법밖에 없습니다. 해당 우회 방법은 아래 링크를 참조하세요.
https://www.md-subs.com/line-spacing-in-ssa
https://forum.videohelp.com/threads/384025-Line-Spacing-in-ASS-SSA
(이 게시물 참조)
MP4는 텍스트 자막으로 먹싱되니 당연히 줄 간격 조정을 할 수 없습니다.