Перейти до основного вмісту
SubtitleMatrix

Конвертер SSA у ASS

Або вставте текст субтитрів

Що змінює ця конвертація

У цьому напрямку нічого не втрачається — кожна можливість вихідного формату має куди подітися в цільовому.

Цей перелік походить із матриці можливостей для цих двох форматів, а не з конкретного завантаженого файлу. Певний файл може втратити більше, якщо використовує можливості, які формат дозволяє, а матриця не моделює.

SSA і ASS — діалекти одного скриптового формату. SSA оголошує ScriptType v4.00 і тримає стилі в [V4 Styles]; ASS — v4.00+ і [V4+ Styles]. Ця сторінка переписує заголовок і таблицю стилів так, щоб файл коректно відкривався рушієм ASS.

Колонки переносяться за змістом, а не за позицією: там, де V4 називає кольори tertiary і back, V4+ має окремі outline і shadow. Рядки Dialogue, час 0:00:01.25 і коди перевизначення лишаються незмінними.

Втрат немає: обидва формати мають однакову модель. Файли обробляються в браузері, без сервера.

Приклади

Типовий файл SSA, переписаний у ASS

Вхід

[Script Info]
Title: Example SSA
ScriptType: v4.00
Collisions: Normal

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\i1}Italic{\i0} line.
Dialogue: Marked=0,0:00:09.00,0:00:12.00,Default,,0,0,0,,Two\Nlines

Результат

[Script Info]
Title: Example SSA
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,,&H00000000,0,0,,,,,,,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: 0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\i1}Italic{\i0} line.
Dialogue: 0,0:00:09.00,0:00:12.00,Default,,0,0,0,,Two\Nlines

Обидві колонки збігаються рядок у рядок: переписується лише синтаксис, а текст і час лишаються тими самими.

Той самий перехід на неохайному файлі SSA

Вхід

[Script Info]
Title: Dirty SSA
ScriptType: v4.00

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: Marked=0,0:00:00.00,0:00:01.00,Default,,0,0,0,,not a subtitle
Dialogue: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,{\b1}Bold{\b0} and {\u1}underlined{\u0}.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,A soft\nbreak and a {\p1}mystery{\p0} code.

Результат

[Script Info]
Title: Dirty SSA
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,,&H00000000,0,0,,,,,,,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,{\b1}Bold{\b0} and {\u1}underlined{\u0}.
Dialogue: 0,0:00:05.00,0:00:08.00,Default,,0,0,0,,A soft\Nbreak and a {\p1}mystery{\p0} code.

Справжні файли приходять із BOM, переводами рядків Windows, зайвим рядком перед часом або часом, який взагалі не читається. Ніщо з цього не валить обробку: нерозпізнане потрапляє у звіт, а не зникає мовчки.

Часті запитання

Чи збережеться порядок реплік із SSA у ASS?

Так. Конвертер сортує репліки за початком і пише їх у хронологічному порядку. SSA записує час як 0:00:01.25, ASS записує час як 0:00:01.25. Якщо у вихідному файлі порядок був іншим, він стане хронологічним, а не зникне.

У якому кодуванні буде збережено файл ASS після конвертації з SSA?

Файл ASS пишеться в UTF-8, а кодування вхідного SSA визначається автоматично, разом із BOM. Кирилиця, грецька чи емодзі не замінюються знаками питання; закінчення рядків у вихідному ASS — LF.

Які програми відкриють ASS після конвертації з SSA?

ASS підтримують mpv, VLC, ffmpeg і Aegisub. Для порівняння, SSA підтримують старіші збірки VLC, mpv і Aegisub. Якщо цільовий формат потрібен для конкретної платформи, перевірте її підтримку до конвертації великого пакета.

Чим SSA відрізняється від ASS у цьому напрямку?

SSA описує субтитр скриптом старішого діалекту з власною таблицею стилів, а ASS описує субтитр скриптом із таблицею стилів, позиціюванням і караоке. Тому перетворення — це не зміна розширення, а переписування моделі. У SSA скрипт: заголовок [Script Info], таблиця [V4 Styles] і рядки Dialogue. У ASS скрипт: заголовок [Script Info], таблиця [V4+ Styles] і рядки Dialogue. Саме з цієї різниці й постає список втрат над файловим полем.

Як перевірити, що конвертація SSA в ASS нічого не зіпсувала?

Порівняйте кількість реплік, час першої та останньої і список втрат, який сайт показує до завантаження. SSA записує час як 0:00:01.25, ASS записує час як 0:00:01.25; якщо кількість і межі збігаються, а перелік втрат вас влаштовує, файл готовий.

Споріднені інструменти