Что такое формат файла ASS?
Файл с расширением .ass содержит скрипт для создания текстовых субтитров к видео, отформатированный по стандарту SubStation Alpha. Файлы .ass чаще всего создаются и редактируются в Aegisub - мультиплатформенном инструменте с открытым исходным кодом для создания и редактирования видеосубтитров. Файл .ass представляет собой обычный текст в кодировке UTF-8, разделенный на четыре или пять разделов, которые содержат:
- *Script Info* - версия, автор, название и общая информация, связанная с форматом экрана и разрешением;
- *V4+ Styles* - информация о форматировании текста и стилях, включая:
- Шрифты,
- Размер шрифта,
- Цвета,
- Позиционирование,
- Выравнивание текста;
- *Events* - список событий и временных меток текста в формате
H:MM:SS.cc, а также дополнительные атрибуты для каждой строки; - *Pictures* - изображения в кодировке UUE (необязательно);
- *Fonts* - встроенные данные шрифтов (необязательно).
Формат .ass является расширением стандарта SubStation Alpha, который строго следует спецификации SSA v4+. Файлы, соответствующие базовому стандарту SSA v4, используют расширение .SSA. Скрипты субтитров .ass используются для наложения субтитров на видео в процессе, называемом *hardsubbing* (вшитые субтитры). Мультимедийные контейнеры Matroska также поддерживают субтитры .ass, которые могут быть встроены как отдельный поток - техника, известная как *softsubbing* (подключаемые субтитры). По сравнению с более простыми форматами, такими как .SRT, .ass позволяет создавать эффекты караоке для каждой строки, отслеживание движения (motion tracking) и прозрачность альфа-канала.
Безопасность и защита
РИСК: LOWФайл .ass является обычным текстом и не может исполнять код, поэтому его безопасно открывать. Два небольших предостережения: (1) держите свой медиаплеер обновленным - исследования прошлых лет («Subtitle Hell», 2017) показали, что некорректный парсинг субтитров мог быть использован в некоторых плеерах; (2) ASS может ссылаться на внешние шрифты, а очень сложный тайпсеттинг/караоке может на мгновение нагрузить слабый плеер, но ни то, ни другое не является риском безопасности. Сохраняйте в UTF-8, чтобы нелатинские символы отображались правильно.
Детали формата
в двух словахПрограммы, открывающие файлы ASS
Технические подробности
глубокая спецификация| Кодировка файла | Обычный текст UTF-8; опционально предваряется UTF-8 BOM (EF BB BF) |
| Тип MIME | text/x-ssa |
| Идентификация файла | Бинарные магические байты отсутствуют; файл всегда начинается с заголовка раздела `[Script Info]` в первой строке |
| Обязательные разделы | `[Script Info]`, `[V4+ Styles]`, `[Events]` |
| Необязательные разделы | `[Fonts]` (встроенные данные шрифтов) и `[Graphics]` (изображения в кодировке UUE) |
| Формат времени | `H:MM:SS.cc` - часы, минуты, секунды, сантисекунды; обеспечивает разрешение 10 мс для каждого события субтитров |
| Внутристрочные теги переопределения | Переопределения стилей заключаются в `{}`, например, `{\b1}` (жирный вкл), `{\i1}` (курсив), `{\pos(x,y)}` (абсолютная позиция), `{\an}` (выравнивание по цифровой клавиатуре) |
| Поддержка караоке | Тайминг на уровне слогов с помощью тегов `{\k}` (очистка), `{\kf}` (плавное заполнение) и `{\ko}` (заполнение контура) |
| Формат цвета | Шестнадцатеричная нотация ABGR, например, `&H00FFFFFF&`; каналы Primary, Secondary, Outline и Back имеют независимый альфа-байт |
| Теги анимации | `{\move()}`, `{\fade()}` и `{\t()}` позволяют анимировать положение, переходы затухания и временную интерполяцию любого параметра стиля |
| Режим рисования | Рендеринг векторных фигур, активируемый `{\p1}`; поддерживает сегменты линий, кривые Безье и команды B-сплайнов для экранной графики |
| Поле слоя (Layer) | Каждое событие `Dialogue:` несет целое число `Layer`; более высокие значения отображаются поверх других, позволяя многослойный композитинг в одном потоке субтитров |
| Управление переносом строк | `WrapStyle` в `[Script Info]`: 0 = умный перенос, 1 = разрыв в конце строки, 2 = без переноса, 3 = обратный умный перенос |
| Обработка коллизий | Свойство `Collisions` управляет перекрывающимися строками: `Normal` сдвигает строки вверх во избежание наложения; `Reverse` оставляет их в объявленной позиции |
| Встраивание в контейнер | Нативно хранится как дорожка субтитров в файлах Matroska (`.mkv`) с ID кодека `S_TEXT/ASS` |
| Выпущен | Advanced SubStation Alpha (ASS) early 2000s, extending SubStation Alpha (SSA, 1998) |
| Открыть стандартное | Да · без роялти |
| Спецификация | www.tcax.org |