ASS’den TTML’e dönüştürücü
Ya da altyazı metnini yapıştırın
Bu dönüşüm neyi değiştirir
2 şey atılır ya da bir karar gerektirir
- Karaoke
karaoke zamanlaması (hece başına vurgulama)
- Biçime özgü içerik
kaynak formatın repliklerinin dışında tuttuğu içerik (replik olmayan bloklar, başlık metni, replik başına ayarlar, yorum satırına alınmış olaylar) — hedef formatın bunun için yeri yok
Bu liste, yüklediğiniz belirli dosyadan değil, bu iki formatın yetenek matrisinden gelir. Belirli bir dosya, formatın izin verdiği ama matrisin modellemediği özellikler kullanıyorsa daha fazlasını kaybedebilir.
Bu sayfa ASS dosyasını TTML dosyasına dönüştürür. ASS’de 1,25 saniye 0:00:01.25 diye yazılır; TTML’de aynı an <p> öğesinde begin="00:00:01.250" olur. Metin, replik sayısı ve replik sırası olduğu gibi kalır.
Kayıp listesi kısa ama gerçek: karaoke zamanlaması düşer (hece hece vurgulama); replik dışındaki içerik düşer: [Script Info], [Fonts] ve [Graphics] bölümleri ile Comment: satırları. TTML çıktısında her replik <p begin=… end=…> öğesi olur; stil bilgisi <span> üzerinde tts öznitelikleriyle yazılır. Metin ve zaman çizelgesi etkilenmez, düşen şey bunların çevresindeki bilgidir.
Tek dosyayı sürükleyip bırakın ya da metni yapıştırın; çıktı hemen iner. Toplu işlemde kuyruk dosyaları sırayla işler, ilerlemeyi gösterir ve tüm sonuçları tek ZIP’te toplar. Dosyalar cihazınızdan çıkmaz.
Örnekler
Tipik bir ASS dosyası, TTML’ye dönüştürüldü
Girdi
[Script Info]
Title: Example
ScriptType: v4.00+
WrapStyle: 0
[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,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
Style: Title,Arial,36,&H0000FFFF,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,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.50,Default,,0,0,0,,{\i1}Italic{\i0} and {\b1}bold{\b0} text.
Dialogue: 0,0:00:09.00,0:00:12.00,Title,,0,0,0,,{\pos(320,240)}Positioned
Dialogue: 0,0:00:13.00,0:00:16.00,Default,,0,0,0,,{\k50}ka{\k30}ra{\k20}o{\k10}ke
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Line one\NLine two
Dialogue: 1,0:00:21.00,0:00:24.00,Default,,0,0,0,,{\an7}Top left
Çıktı
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<body>
<p begin="00:00:01.000" end="00:00:04.000">Hello there.</p>
<p begin="00:00:05.000" end="00:00:08.500"><span tts:fontStyle="italic">Italic</span> and <span tts:fontWeight="bold">bold</span> text.</p>
<p begin="00:00:09.000" end="00:00:12.000">Positioned</p>
<p begin="00:00:13.000" end="00:00:16.000">karaoke</p>
<p begin="00:00:17.000" end="00:00:20.000">Line one<br/>Line two</p>
<p begin="00:00:21.000" end="00:00:24.000">Top left</p> </body>
</tt>
Bu çıktıda düşenler: karaoke düşer; replik dışı içerik düşer. Metin ve replik sırası satır satır aynı kalır; iki sütunu yan yana karşılaştırabilirsiniz.
Aynı dönüştürme, dağınık bir girdi üzerinde
Girdi
[Script Info]
; 一份真实的脏文件:BOM + CRLF + 认不出的覆写码 + Comment + 坏时间码
Title: Dirty sample
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,&H00000000,1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
[Fonts]
fontname: Arial
!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: 0,0:00:00.00,0:00:01.00,Default,,0,0,0,,这是一条注释,不该变成字幕
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello, world
Dialogue: 0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\fad(300,300)}Unmodelled override
Dialogue: 0,0:00:09.00,0:00:12.00,Default,,0,0,0,,{\an7\pos(320,240)}Both, wrong order
Dialogue: 0,0:00:13.00,0:00:16.5,Default,,0,0,0,,One decimal centisecond
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Soft\nbreak
Dialogue: 0,0:00:xx.00,0:00:24.00,Default,,0,0,0,,Broken timecodeÇıktı
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<body>
<p begin="00:00:01.000" end="00:00:04.000">Hello, world</p>
<p begin="00:00:05.000" end="00:00:08.000">{\fad(300,300)}Unmodelled override</p>
<p begin="00:00:09.000" end="00:00:12.000">Both, wrong order</p>
<p begin="00:00:13.000" end="00:00:16.500">One decimal centisecond</p>
<p begin="00:00:17.000" end="00:00:20.000">Soft<br/>break</p> </body>
</tt>
Bu, gerçek dosyalarda karşılaşılan hasardır: BOM, Windows satır sonları, boş bırakılmış alanlar. Hiçbiri işlemi durdurmaz; okunamayan bölümler sessizce kaybolmaz, raporda görünür.
Sık sorulan sorular
ASS’den TTML’ye dönüşümde ne korunur, ne değişir?
Replik metni, sırası ve zaman çizelgesi ASS’den TTML’ye olduğu gibi geçer. Değişen şey sarmalayıcıdır: ASS’de 1,25 saniye 0:00:01.25 diye yazılır; TTML’de aynı an <p> öğesinde begin="00:00:01.250" olur. Bununla birlikte karaoke zamanlaması düşer (hece hece vurgulama); replik dışındaki içerik düşer: [Script Info], [Fonts] ve [Graphics] bölümleri ile Comment: satırları.
ASS’de zaman kodu TTML’de nasıl yazılır?
ASS’de bir an 0:00:01.25 diye yazılır; TTML’de aynı an begin="00:00:01.250" olur. TTML’de her replik bir <p> öğesidir ve iki zamanı begin ile end özniteliklerinde taşır.
ASS’de karaoke zamanlaması TTML’ye geçer mi?
ASS’den TTML’ye geçişte karaoke zamanlaması korunmaz. Karaoke, hece hece vurgulama demektir ve TTML bunun için ayrı bir alan saklamaz. Metnin tamamı tek parça olarak görünür; hece zamanları kaybolur, sözler ve replik sınırları kalır.
ASS dosyasını TTML’ye dönüştürdükten sonra onu hangi oynatıcılar açar?
ASS dosyasından üretilen TTML dosyasını şu araçlar açar: TTML’yi yayın ve akış platformları (IMSC), video oynatıcıları ve bazı tarayıcı eklentileri okur.
BOM ve CRLF içeren bir ASS dosyası TTML’ye dönüşürken sorun çıkarır mı?
Çıkarmaz. ASS dosyası okunurken BOM ve karışık satır sonları temizlenir, TTML çıktısı tek tip satır sonuyla yazılır. Tanınmayan bölümler atlanır ve sayılır; dönüşüm hiçbir zaman hata verip durmaz, anlaşılmayan her şey raporda görünür.
ASS dosyalarımı toplu olarak TTML’ye dönüştürebilir miyim?
Evet. Birden çok ASS dosyasını bir seferde sürükleyip bırakabilirsiniz; kuyruk hepsini sırayla işler, istediğiniz an durdurabilirsiniz ve TTML çıktıları tek bir ZIP olarak iner. Dosyalar tarayıcıdan çıkmaz, sunucuya hiçbir şey yüklenmez.
TTML dosyasını yeniden ASS’ye dönüştürürsem aynı dosyayı elde eder miyim?
ASS → TTML → ASS gidiş-dönüşünde şunlar geri gelmez: karaoke zamanlaması, replik dışındaki içerik. Metin, replik sırası ve başlangıç anları geri gelir, ama bu özellikler ikinci dönüşümde yeniden üretilemez. Gidiş-dönüşü bir yedek olarak değil, biçim değişikliği olarak düşünün.