|
Обзор форматов субтитров. | ||
Автор: DraCat | ||
Наибольшее удовольствие вы получите от просмотра фильма на языке оригинала. А в связи с тем, что часто языка оригинала не знаешь или знаешь плохо, появляется необходимость субтитров. Корме того субтитры - хорошая возможность подучить язык. Субтитры можно накладывать в момент кодирования видео или в момент его воспроизведения (realtime). В первом случае субтитры встроенные, во втором - внешние. У внешних субтитров ряд преимуществ по сравнению с встроенными. Они всегда четкие и хорошо читаются независимо от качества видео и настроек декомпрессора. И конечно главное достоинство - их можно отключить. Форматы Существует несколько форматов представления внешних субтитров. Каждый формат имеет свои преимущества и недостатки. Наиболее распространены srt, ssa, smi. srt - один из самых простых и интуитивно понятных; ssa - самый навороченный; а smi - поддерживается Microsoft'ом.Файл субтитров содержит некоторую структуру, в которой содержится информация о том когда и какой текст нужно накладывать на изображение. Время показа определяется либо по начальному и конечному фрейму (framebased subtitres) либо по времени начала показа и конца показа фразы (timebased subtitres). Фраза представляет из себя одну или несколько тестовых строк. Более сложные форматы определяют цвет и положение текста, его размер, используемые эффекты. Иногда файл субтитров содержит <шапку> - заголовок в котором написано для какого фильма предназначены эти субтитры, кем они сделаны и другую информацию. Откуда берутся субтитры: 1 DVD 2 Fansub Вот более подробное описание самых распространенных форматов субтитров. SubRipper (*.srt) Файлы имеют расширение srt. Это родной формат субтитров программы SubRip (by Brain) . Это самая популярная программа для выдирания субтитров с DVD. Сам формат отличается простотой и наглядностью, синхронизация с видео на основе времени с точностью до миллисекунд. Весьма распространенный формат. Srt файлы очень удобно редактировать - перевод лучше делать именно в srt файлах. Расширенный формат позволяет изменять некоторые параметры шрифта (стиль, цвет) и положение субтитров на экране, но мало кем поддерживается. Шапки - нет. Субтитры отделяются друг от друга пустой строкой; конец файла отмечается удвоенным переводом строки (критично для некоторых плееров и конверторов). Пример файла 1 N где между временем и стрелкой пробел. SAMI (*.smi) Файлы с расширением *.smi это формат субтитров от Microsoft под названием SAMI(Synchronized Accessible Media Interchange). . Этот формат хорошо документирован, имеет сложную, расширяемую структуру. Фактически SAMI - подмножество SGML, как и HTML и потому очень на него похоже. Создание этого языка разметки является результатом работы The Caption Center at WGBH по внедрению субтитров на телевидении для глухих, слабослышащих, а также для изучающих иностранный язык. Стандарт поддерживает изменение размера, цвета, гарнитуры и стиля шрифта, а также изменения положения на экране. Кроме того он поддерживает стили. Синтаксис стилей как у CSS от W3C. Синхронизация по времени. Главным преимуществом этого формата является то что его поддерживает Микрософт и потому его можно без проблем проиграть на обычном Windows Media Player (ver >= 5).Нужно также упомянуть что иногда расширение smi имеют файлы формата SMIL(это субтитры для RealPlayer'а) их не нужно путать с субтитрами SAMI. Правильно расширение для SMIL файлов - *.smil Вот пример типичного файла формата SAMI: <SAMI> файл субтитров состоит из двух частей, заключенных в общий тег <SAMI> <HEAD> заголовок <BODY> тело заголовок в свою очередь включает разделы <TITLE> и <STYLE>. В первом задается заглавие файла со скриптами, а во втором задаются стили. Формат позволяет указывать как стили по умолчанию так и пользовательские, которые зритель может менять в процессе просмотра (такая возможность поддерживается например в Windows Media Player). Также в заголовке с помощью тега <SAMIParam> можно давать любую сопутствующую информацию, например указать переводчика, название оригинала и т.д. Тело представляет из себя таблицу и состоит из последовательности фраз, заключенных
в тег <P> - параграф. Позволяются следующие форматирующие теги : SubViewer (*.sub) v1 & v2 (Submagic) Формат некогда был довольно популярен, но теперь в связи с распространением других форматов, обладающих большими преимуществами, стал абсолютно неактуален. Изначально этот формат был предназначен для проигрывания в программе Submagic. Это программа для просмотра субтитров, работающая отдельно от плеера и требующая ручной синхронизации. Так можно было просматривать с субтитрами видеокассеты, если подключить видеомагнитофон к ТВ тюнеру. В последствии этот формат научились поддерживать многие плееры. Формат очень похож на *.srt. Отличается наличием шапки в которой можно указать различную информацию о субтитрах: название, кто перевел, с чего сделан перевод и т.д. Также в шапке указываются параметры шрифта. Эти параметры общие для всего скрипта. Обычно плееры, поддерживающие это формат субтитров плюют на эти стилевые указания. Синхронизация по времени. Формат *.sub состоит из двух не совместимых между собой версий : v1 и v2, вот пример скрипта версии 2. [INFORMATION] Пожалуйста спаси мою землю структура очень мало отличается от структуры *.srt формата и потому подробно не рассматривается. MicroDVD (*.mdv,*.sub) Это собственный формат плеера MicroDVD player. Он не имеет фиксированного расширения, обычно это txt или sub. В связи с тем, что MicroDVD Player долгое время оставался вне конкуренции среди плееров с поддержкой субтитров, а также благодаря подробной документации, поддержке изменяемого стиля, размера и положения шрифта, этот формат сыскал уважение среди пользователей. Под него успели написать множество утилит, которые делают в основном то же самое: конвертят в него из всего, что попало и меняют FPS. Последнее особенно актуально в связи с тем, что этот формат синхронизирован по номеру кадра, и поэтому если у вас окажется исходник видео с другой частотой кадров (например при Inverse TeleCine 30fps->24fps) то придется пересчитывать кадры начала и конца каждой фразы файла субтитров. Формат весьма компактен и интуитивно понятен. За основу видимо взят формат SubMagic v1 с (он был кадровой синхронизацией). вот пример файла *.mdv Хочу домой. ... 88680}Я хочу поговорить с тобой. Так ты умеешь летать, верно? формат не предусматривает никакой шапки и является одним из самых компактных. Он слегка проигрывает в читабельности srt в связи с тем что переводы строки здесь обозначены как "|" формат расширяется посредством следующих контрольных кодов: {c:$bbggrr} цвет шрифта bb gg и rr это шестнадцатеричные числа в RGB представлении цвета, т.е. как в HTML. пример {}{c:$0000FF}- But why?|{c:$00FFFF}- Because this movie|has
naughty language! {f:fontname} выбор гарнитуры шрифта . заглавная и строчная буквы действуют аналогично выбору цвета. {s:size} выбирает размер шрифта. Заглавная и строчная буквы действуют аналогично выбору цвета. {H:charset} выбор кодировки: русская греческая и т.д. {P:position} показывать субтитры сверху видео окна или снизу. действует только на всю фразу (только заглавная) {o:x-coordinate,y-coordinate}поместить текст в произвольно положение экрана с координатами x,y относительно правого верхнего угла. можно указать значения по умолчанию для всего скрипта субтитров с помощью раздела {}<Control Codes> на месте <Control Codes> можно поместить любые из контрольных кодов(заглавные буквы). пример {}{F:Arial}{S:18}{Y:b,i}{P:1} контрольный код H можно применять только в этом разделе ! SubStation Altha (*.ssa) v.4 Формат *.ssa это рабочий файл субтитров программы SubStation Altha. Это программа для подготовки и таймирования субтитров, а также наложения их на аналоговый носитель (VHS или SVHS) с помощью устройства называемого GenLock. Среди непрофессионалов это самая популярная и богатая возможностями программа для титрования. Список ее возможностей может послужить темой для отдельной статьи. Также богат и сам формат субтитров. Здесь полностью поддерживается работа со всеми параметрами шрифта (цвет, размер, гарнитура и т.д.), размещение текста в любом месте экрана, комментарии. Множество полей определяет параметры каждой фразы, например специальное поле для определения произносящего данную фразу. Этот формат является фактически стандартом де-факто в среде фэнсаберов (небольшая доля пользуется амиговским Js но основная масса использует Windows и SubStation Alpha). Все это делает формат SSA преобладающим в среде анимешников. До недавнего времени не было плееров, с возможностью динамически накладывать ssa субтитры на видео, и единственным способом посмотреть их было вставить в ssa событие проигрывания фрагмента самого фильма. При этом субтитры накладывались на видео в самом SubStation Altha. При этом отсутствовала возможность растянуть видео на полный экран. Теперь ситуация поправляется: его хорошо поддерживает Crystal Player. Также поддерживает этот формат MicroDVDPlayer ver 1.2 (без изменения параметров шрифтов, положения текста и эффектов) и DVDSubtitler. Как альтернатива можно просматривать цифровое видео с субтитрами в этом формате если жестко наложить эти субтитры на видео с помощью фильтра subtitler (by Avery Lee) для VirtualDub. При этом работа со шрифтами поддерживается. вот пример файла ssa ver.4 [Script Info]; This is a Sub Station Alpha v4 script. ; For Sub Station Alpha info and downloads, ; go to http://www.eswat.demon.co.uk/ ; or email kotus@eswat.demon.co.uk Title: Di Gi Charat Volume 1 Original Script: Zeruel Script Updated By: Anime Jonetsu ScriptType: v4.00 Collisions: Normal PlayResY: 600 PlayDepth: 0 Wav: 0, 179746,C:\Scripts\digicharat\digicharat1.wav Timer: 100.0000 [V4 Styles] Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: Default,Arial,28,16777215,16777215,16777215,13305607,-1,0,1,4,1,2,30,30,30,0,0 Style: Screentext,Arial,26,16777215,16777215,16777215,10750853,-1,0,1,3,1,2,30,30,30,0,0 Style: alt dialog,Arial,26,16777215,16777215,16777215,32768,-1,0,1,3,1,2,30,30,30,0,0 Style: credits,Arial,22,16777215,16777215,16777215,5701806,-1,0,1,3,1,2,30,30,30,0,0 Style: digi,Arial,28,16777215,16777215,16777215,11493729,-1,0,1,4,1,2,30,30,30,0,0 Style: scary,Arial,28,255,16777215,16777215,3092271,-1,0,1,4,1,2,30,30,30,0,0 Style: song,Arial,26,16777215,16777215,16777215,33023,-1,0,1,3,1,2,30,30,30,0,0 [Events] Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Comment: Marked=0,0:00:03.50,0:00:05.50,*Default,Comment,0000,0000,0000,,Synch Point: Chapter 1, 0:00:00 Dialogue: Marked=0,0:00:06.50,0:00:12.50,Screentext,Text,0187,0181,0529,,NOT FOR SALE OR RENT Dialogue: Marked=0,0:00:18.14,0:00:20.12,Screentext,Text,0122,0411,0313,,OP Theme:\nOnly 1 No.1\n(Okui Masami) Dialogue: Marked=0,0:00:06.32,0:00:13.05,song,romaji-song,0131,0128,0469,,sekai de ichiban kagayaku made Dialogue: Marked=0,0:00:06.32,0:00:13.05,digi,song-e,0075,0050,0001,,Until I shine the brightest in the world Скрипт состоит из заголовка, описания стилей и тела В заголовке [Script Info] есть стандартная часть, которая сообщает что это за файл и версию скрипта, а также отсылает к сайту SubSttaion Altha. Далее идут несколько полей обозначающих автора перевода, источник откуда сделан перевод, точку синхронизации (при выводе на аналоговый носитель синхронизация производится вручную), разрешение с которым работал редактор при расположении элементов по экрану и некоторые другие. В разделе стилей [V4 Styles] идет детально описание всех используемых в скрипте стилей. указывается размер, гарнитура, стиль и цвет шрифта, положение (в виде отступов справа, слева, сверху и снизу), а также кодировку. Далее идет раздел [Events] в котором располагается последовательность текстовых фраз, комментариев, а также команд на показ логотипа, проигрывания музыки или видеофрагмента. Для каждой из фраз отдельно можно указать время начала и конца показа этой фразы, ее стиль, название (используется как поля для указание имени говорившего) и положения фразы на экране. Далее идет сам текст фразы, разделение на строки как в языке C с помощью комбинации "\n" или "\N". Интересно работаем механизм коллизий, т.е. перекрывания по времени отдельных фраз. Например когда в кадре кто-то говорит, а за кадром слышен голос диктора из телевизора. при этом на экране показываются обе строки, только более поздняя показывается ниже и другим цветом. Для этого задается не один а 3 цвета шрифта, например для случая двукратной коллизии (встречается крайне редко). Кроме того формат еще позволяет включать в себе с помощью UUEncoding шрифты и картинки, используемые в скрипте. Это делает *.ssa самодостаточным и независимым от машины, на которой накладывается, но поддерживается это только в SubStation Alpha. JACOsub (*.js) Файлы с расширением *.js - рабочие файлы программы JACOSub. Это программа для титрования фильмов, такая же как и SubStation Altha только для компьютера Amigo. В свое время этот стандарт был довольно популярен, сейчас используется редко, но не смотря на это все, еще можно встретить в Интернет скрипты в этом формате. Возможности JACOSub близки к SSA, но многие вещи очень Amigo-зависимы. Синхронизация с видео по времени. вот пример файла *.js # JACOsub script file# Converted by Multi-script Converter VERSION 1.24 # Title: Aa! Megami-sama Gekijouban Subbing Script # Original Script: Converted by Shadowrunner # Timing/Script: Converted by Shadowrunner # Editing: Converted by Shadowrunner # This is a free fan subtitle. You may use this script only in accordance # with U.S. copyright regulations. This means if the title has been licensed # for release in the U.S., you may ONLY use this script for PERSONAL viewing # and MAY NOT distribute material using this script or translation. Neither # Shadowrunner nor the converter that created this file will be held # accountable for anyone's use or abuse of this script. It is intended for # personal private use only and the actions of third parties are their # OWN responsibility. # Date: 08-10-2001 #TIMERES 100 #SHIFT 0 0:00:01.00 0:00:04.00 D0 {} Oh! My Goddess Movie v1.9 Fansub 0:00:05.00 0:00:08.00 D0 {} Nekomi Kodai Fansubbing 0:00:09.00 0:00:12.00 D0 {} The accuracy of this sub is in no way guaranteed. 0:00:13.00 0:00:16.00 D0 {} Timed, Edited, Translated by Edward Chang Retimed for the DVD release by Ifruita Как видно из примера файл субтитров состоит из заголовка, в котором указывается название, кто перевел, кто оттаймировал, кто редактор данного скрипта, затем стандартное предупреждение что этот файл не предназначен для коммерческого использования и др. подобной информации. После заголовка идет тело скрипта, состоящее из последовательности фраз с указание времени начала и конца показа каждой фразы. Можно указывать кто произносит тут или иную фразу. Real Text&SMIL (*.smil,*.rt,*.smi) Real Player также может показывать субтитры, для их включения нужны файлы real text и SMIL. SMIL (Synchronized Multimedia Integration Language) формат представления синхронизированного с медиафайлами текста, разработанного W3C консорциумом. вот пример файла *.smil <smil> <head> <meta name="title" content="Dragonball Z Episode 192" /> <meta name="author" content="Bardock" /> <meta name="copyright" content="(c) 1999" /> <layout> <root-layout width="320" height="270" /> <region id="video_region" width="320" height="240" left="0" top="0" /> <region id="text_region" width="320" height="30" left="0" top="240" /> </layout> </head> <body> <par> <textstream src="192-raw-300k.rt" region="text_region" fill="freeze" /> <video src="192-raw-300k.rm" region="video_region" fill="freeze" /> </par> </body> </smil> этот файл представляет собой шапку для одно или нескольких *.rt (real text) файлов которые и содержат собственно сами субтитры. а вот пример упомянутого в SMIL файла 192-raw-300k.rt <window type="generic" видно что каждый из *.rt файлов состоит из маленького заголовка, в котором
указывается техническая информация по данному скрипту, и набора фраз, каждая
из которых начинается с тега <time> с указанием времени начала показа
Sasami2k script (*.s2k) Это внутренний формат представления субтитров плеера Sasami2k. После того как Sasami2k обнаружит рядом с файлом фильма файл субтитров *.smi с тем же именем, он автоматически запустит перекодировщик - Sasami translator. Затем происходит преобразование, детали которого пока неясны, так как перекодировщик еще не переведен с корейского. Ясно лишь, что после перекодирования сохраняется информация о стилях и положении текста, причем положение и размер шрифта масштабируется в соответствии с разрешением фильма. Далее в плеере можно изменять положение размер и другие параметры субтитров прямо на лету и в конце сохранить скрипт субтитров со всеми внесенными изменениями в файл *.s2k. Формат очень громоздок, трудночитаем, имеет весьма сложную структуру и, скорее всего, не будет поддерживаться ни одним плеером, кроме Sasami2k. Вот пример скрипта s2k: // translated by Sami2Sasami 1.0.7.300 // contact: nuclei@shinbiro.com ;Set.Slot=1 ;Set.Time.Delay=15000 ;Set.Alpha.End=256 ;Set.Alpha.Start=256 ;Set.Alpha.Step=-300 ;Set.Font.Bold=0 ;Set.Font.Color=#EEF4FB ;Set.Font.Outline.Color=#00101010 ;Set.Font.Outline2.Color=#01101010 ;Set.Font.Size=9 ;Set.Font.Face=№ЩЕБ ;Buffer.Push=1 ;Buffer.Pop=1 ;Set.Time.Start=18352 ;Set.Start.Position.x=117 ;Set.End.Position.x=117 ;Set.Start.Position.y=203 ;Set.End.Position.y=203 ;Set.Start.Position.x=117 ;Set.End.Position.x=117 ;Set.Start.Position.y=203 ;Set.End.Position.y=203 ;(ї┐°бчК) ;Set.Start.Position.x=164 ;Set.End.Position.x=164 ;Set.Start.Position.y=203 ;Set.End.Position.y=203 ;Set.Start.Position.x=164 ;Set.End.Position.x=164 ;Set.Start.Position.y=203 ;Set.End.Position.y=203 Long, long ago, ;Set.Start.Position.x=160 ;Set.End.Position.x=160 ;Set.Start.Position.y=221 ;Set.End.Position.y=221 ;Set.Start.Position.x=160 ;Set.End.Position.x=160 ;Set.Start.Position.y=221 ;Set.End.Position.y=221 Ihrie! Hey, lhrie! ;Set.Start.Position.x=160 ;Set.End.Position.x=160 ;Set.Start.Position.y=203 ;Set.End.Position.y=203 ;Set.Start.Position.x=160 ;Set.End.Position.x=160 ;Set.Start.Position.y=203 ;Set.End.Position.y=203 ;Set.Start.Position.x=160 ;Set.End.Position.x=160 ;Set.Start.Position.y=221 ;Set.End.Position.y=221 ;Set.Start.Position.x=160 ;Set.End.Position.x=160 ;Set.Start.Position.y=221 ;Set.End.Position.y=221 What is it, Fam? здесь видно, что это больше похоже на язык программирования чем на скрипт субтитров. например общие для всех фраз параметры вносятся в стек и вынимаются перед каждой фразой. Частенько каждое слово обрамляется полным набором параметров, которые к тому же часто дублируют друг друга.
конвертировать субтитры в этот формат можно только конвертором от Sasami2k и просмотреть можно только в плеере Sasami2k. QTtext (*.txt) Для представления субтитров в QuickTime плеере используется формат QTtext. Это очень кривой и редкий формат. Субтитры в таком формате можно создать (т.е. оттаймировать) с помощью программы Magpie. Вот пример субтитров в данном формате. {QTtext}{font: Arial}{justify: center}{size: 12}{backcolor:0, 0, 0} {timescale: 100}{width: 439}{height: 0} [00:00:05.71] {justify:center}README.TXT for MAGpie [00:00:07.03] {justify:center}Please read this entire document before installing MAGpie. [00:00:14.98] {justify:center}***************** MAGpie 1.0 *****************00:00:15.99] {justify:center}-- SYSTEM REQUIREMENTS [00:00:16.83] {justify:center}1. Windows95/98 [00:00:18.43] {justify:center}2. Microsoft Internet Explorer 4 or higher (http://www.microsoft.com) Файл состоит из маленького заголовка с указанием общих для всего скрипта технических параметров (гарнитура, размер и цвет шрифта; размеры изображения и т.д.) далее идет последовательность фраз, предваряемых временем начала показа в квадратных скобках. Время указывается с точностью до микросекунды. Перевод строки в тексте фразы передается обычным переводом строки в файле скрипта (также как и в srt формате). субтитры в данном формате проиграются только QuickTime player'ом. TMPlayer subtritres (*.sub) Внутренний формат плеера TMPlayer, который широко распространен в Польше, и, похоже, только там. Встретить можно очень редко, но DVDSubtitler его все же поддерживает. конверторов в этот формат я не нашел потому примера файла нет. (*.txt) Такого формата субтитров не существует. *.txt это PlainText, а не субтитры. Но иногда всё же можно встретить файлы субтитров с этим расширением. Как правило это субтитры формата MicroDVD или SubViewer и должны иметь расширение sub, но встречаются и MPL субтитры (расширение mpl). |
||
<< назад | ||