Универсальный формат субтитров

ОткрытьСохранитьXMLМногоязычный

XML-формат субтитров эпохи Matroska: именованные стили, несколько языков в одном файле и место для дополнений. Немногие плееры его взяли, но он вмещает все, что хранит Subtitld, поэтому Subtitld хранит в нем свои проекты.

Коротко

Расширение.usf
Тип медиаtext/xml
СпецификацияUSF 1.1, проект CoreCodec (2010), доступен онлайн у Titlevision
Точность времениМиллисекунды
Кодировка текстаОбъявлена в XML. UTF-8, если в нем не указано иное.
ОформлениеИменованные стили и <i>, <b>, <u> и <font> в тексте
РасположениеДевять мест и отступов, для стиля или текста
Говорящиеspeaker у каждого текста
ЯзыкиНесколько в одном файле, по одному блоку <subtitles> на каждый, по коду ISO 639-2
В контейнерахMatroska как S_TEXT/USF

Анатомия файла

XML-документ: заголовок с метаданными и стилями, затем блок субтитров для каждого языка.

<USFSubtitles version="1.0">
<metadata>…</metadata>
<styles>…</styles>
<subtitles>
<language code="por">
  Portuguese (Brazil)
</language>
<subtitle
  start="00:00:01.000"
  stop="00:00:02.500">
<text>Olá!</text>
</subtitle>
</subtitles>
</USFSubtitles>
  1. 1 · Корень

    <USFSubtitles>, с версией USF, которой он следует.

  2. 2 · Заголовок

    Название, авторы и язык; именованные стили, которые могут использовать субтитры.

  3. 3 · Язык

    Блок <subtitles> для каждого языка, по его коду ISO 639-2.

  4. 4 · Субтитр

    Его начало, конец (или длительность) и текст.

Время

Достаточно одних секунд. 100 — это 00:01:40.000, а 1.5 — полторы секунды. Субтитр может указать duration вместо stop.

Текст

Текст USF — подмножество XHTML: теги в нижнем регистре, правильно вложенные, <br/> закрыт.

Элемент Действие В Subtitld
<i>, <b>, <u> Курсив, полужирный, подчеркивание Сохраняется
<font color="#00FF0000"> Цвет, а также шрифт, размер, контур или тень Сохраняется цвет
<br/> Перенос строки Сохраняется
<s> Зачеркивание: есть в списке планов USF, но не в спецификации Записывается для зачеркивания; другие инструменты могут показать текст простым
<karaoke>, <k t="250"/> Тайминг караоке Текст сохраняется
<image>, <shape> Картинки и рисунки Не сохраняется

Альфа идет первой и считается наоборот. Цвета USF — #AARRGGBB, где 00 непрозрачен, а FF прозрачен. #00FF0000 — сплошной красный; #FF0000 без альфы — тоже.

Стили и места

<style name="Narrator">
  <fontstyle italic="yes"/>
  <position alignment="TopCenter"/>
</style>

Текст использует стиль по имени, <text style="Narrator">, и берет из него шрифт, цвет, курсив, толщину и подчеркивание, а также место: одно из девяти, от TopLeft до BottomRight. Стиль с именем Default меняет вид всех субтитров, поэтому Subtitld его не пишет, и плееры сохраняют свой вид.

Языки

У каждого языка свой блок <subtitles>, названный по коду ISO 639-2: eng, fre, ger, por. Один код может обозначать несколько языков, как их знает Subtitld, поэтому Subtitld пишет в элементе и название языка, и по нему читает por как португальский Бразилии или Португалии.

<language code="por">
  Portuguese (Brazil)
</language>

USF в Subtitld

Проекты Subtitld — это USF. Файл .usfx — это USF плюс то, что ему нужно рядом: видео, голоса и озвучка в одном файле.

Сохраняется в .usf
  • Текст, оформление и место каждого субтитра
  • Переводы, по блоку на каждый
  • Говорящие, с их цветами и, по желанию, их фотографиями
  • Озвучка и ее голоса, сами клипы по желанию
  • Начало и конец с точностью до миллисекунды
Некуда деть
  • Шрифты, размеры, контуры и тени строк по отдельности
  • Картинки, рисунки и тайминг караоке
  • Эффекты

То, что добавляет Subtitld, другие инструменты оставляют без изменений.

Открытие файла USF

Subtitld читает то, что пишет Subtitld, и то, что пишут другие инструменты:

  • кодировку, которую объявляет XML;
  • курсив, полужирный, подчеркивание, цвет и место именованного стиля, который использует текст;
  • <font> с italic, bold или underline, как его пишут некоторые инструменты;
  • duration вместо отсутствующего stop, а времена — как одни секунды;
  • несколько текстов в одном субтитре как его строки;
  • блок каждого языка сопоставляется с первым по времени, поэтому блоки не обязаны содержать одинаковое число субтитров;
  • коды ISO 639-2 и названия языков, а также коды, которые писали старые версии Subtitld.

Файл, который не является USF, так и сообщает и ничего не открывает.

Сохранение USF

Диалог экспорта Subtitld с выбранным USF и встроенными фотографиями говорящих

USF хранит весь проект, поэтому Экспорт, затем Субтитры и USF, спрашивает только, что положить внутрь:

  • Встроить фото говорящихФото каждого говорящего в base64, в его стиле.
  • Встроить аудиоклипыКлип каждой озвучки в base64, в его субтитре.

Файл в UTF-8, языки указаны по коду ISO 639-2 и названию, с названием, которое требует USF, и без стиля Default.

Любопытное

2002

USF впервые вышел в ноябре 2002 года: проект CoreCodec как XML-альтернатива Advanced SubStation Alpha.

1.1

Последняя версия, ноябрь 2010 года. Ее спецификация все еще числит <s> среди планов.

VLC 0.9

Начиная с версии 0.9, VLC показывает текст и тайминг USF, с небольшой частью оформления, как это делает VSFilter.

Похожие форматы

Нужно исправить файл .usf?

Откройте его в Subtitld вместе с видео и поправьте тайминг по осциллограмме.

Скачать Subtitld