Timed Text Markup Language

AçKaydetXMLBiçimli

Yayıncıların ve yayın hizmetlerinin istediği, W3C’nin altyazı ve açıklamalar için XML’i. DFXP, ilk profilinin adıydı ve birçok dosya hâlâ bu adı taşır. IMSC, EBU-TT-D ve Apple’ın iTT’si de TTML’dir; her birinin kendi alışkanlıkları vardır.

Kısaca

Uzantı.ttml
Medya türüapplication/ttml+xml
BelirtimW3C, Timed Text Markup Language 1 (TTML1), bir Öneri (Recommendation). TTML2 bunu genişletir; IMSC ve EBU-TT-D dağıtım için alt kümelerdir.
Zaman hassasiyetiSerbest: saniyenin kesirleri, kareler ya da tikler
Metin kodlamasıXML’de belirtilir. Neredeyse her zaman UTF-8.
BiçimlendirmeAdlandırılmış stiller ve tts: öznitelikleri: yazı tipi, boyut, renk, arka plan, italik, kalın, altı çizili, üstü çizili, kontur
KonumlandırmaBölgeler (regions): görüntünün herhangi bir yerine konulan ve boyutlandırılan kutular
KonuşmacılarAjanlar (ttm:agent), başlıkta adlandırılmış
KapsayıcılardaMP4’te stpp (ISO/IEC 14496-30) olarak, DASH, CMAF ve HLS akışlarında

Dosyanın yapısı

Stillerini ve bölgelerini adlandıran bir başlık (head) ve her altyazı için bir paragraftan oluşan bir gövdeden (body) oluşan bir XML belgesi.

<tt xml:lang="en" …>
<head>styles, regions</head>
<body><div>
<p begin="00:00:23.000"
   end="00:00:24.500">
You're a jerk,<br/>Thom.</p>
</div></body>
</tt>
  1. 1 · Kök

    <tt>; TTML’nin ad alanları, dil ve zamanların sayıldığı saat: ttp:frameRate, ttp:tickRate.

  2. 2 · Başlık

    Adlandırılmış stiller, ekranın bölgeleri ve kimin konuştuğu.

  3. 3 · Zamanlama

    Her paragrafın begin değeri ve end ya da dur değeri.

  4. 4 · Metin

    Altyazı. Aralıklar metnin bir kısmına stil uygular; <br/> satırı böler.

Zamanlar

TTML, zamanı başka hiçbir altyazı biçiminden daha fazla yolla yazar:

Yazılışı Ne olduğu
00:00:23.500 Saat, dakika, saniye ve kesir
00:00:23:12 Saniyeden sonra kareler: dosyanın ttp:frameRate değerinde on iki
23.5s, 23500ms, 1h Saat, dakika, saniye ya da milisaniye cinsinden bir ofset
564f Kareler
235000000t Tikler; saniyede ttp:tickRate kadar

Zamanlar, onları içeren yerden sayılır. Bir paragrafın begin değeri, içinde bulunduğu <div> ve <body> başlangıcından sayılır; kendi bitişi olmayan bir paragraf da onlarla birlikte biter.

Stiller

Bir stil, bir dizi tts: özniteliğidir. Metin, bölgesinden başlayarak, sonra çevresindeki body, div, paragraf ve span’lerden sırayla bunları alır. Her öğe, adını andığı stilleri (style="s1 s2" ve bunların andığı stilleri) ve sonra kendi özniteliklerini alır.

Öznitelik Etki Subtitld’de
tts:fontStyle="italic" İtalik Korunur
tts:fontWeight="bold" Kalın Korunur
tts:textDecoration="underline", "lineThrough" Altı çizili, üstü çizili Korunur
tts:color Metin rengi: bir ad, #rrggbb, #rrggbbaa ya da rgb() Korunur, saydamlığı olmadan
tts:displayAlign, tts:textAlign Metnin bölgesi içindeki yeri Dokuz yerden biri olarak korunur
tts:fontFamily, tts:fontSize Yazı tipi ve boyut Korunmaz
tts:backgroundColor, tts:textOutline Metnin arkasında bir kutu, bir kontur Korunmaz
<set> Zamanla değişen bir stil Korunmaz

Bölgeler

Bir bölge, görüntü üzerinde tts:origin ile yerleştirilen ve tts:extent ile boyutlandırılan bir kutudur. İçinde tts:displayAlign metni üst, orta ya da alt (before, center, after) konuma, tts:textAlign ise bir yana ya da ortaya koyar.

<region xml:id="top"
        tts:origin="10% 10%"
        tts:extent="80% 80%"
        tts:displayAlign="before"/>

Subtitld metnin nereye düştüğünü hesaplar; bölgenin yüzde, piksel ya da hücre cinsinden ölçülüp ölçülmediğine bakmaksızın, SubRip’in {\an1} ila {\an9} ile belirttiği dokuz yerden en yakınını seçer. Bir dosya yazarken kullandığı her yer, o adı taşıyan bir bölge olur: bottom, top, top-left…

Dosya belirtmiyorsa. TTML’nin kendi varsayılanları metni bölgesinin sol üstüne koyar, ama oynatıcılar onu altta ve ortada gösterir; Subtitld de öyle yapar. Boyutu ya da yeri olmayan bir bölgede textAlign="start" değerini ortada kabul eder: pycaption ile yazılmış dosyalar (eski Subtitld sürümleri de dâhil) bunu her bölgeye koyar.

Profiller

TTML’nin çoğu bir profille yazılır: dilin kendi kurallarıyla bir alt kümesi. Subtitld bunların hepsini TTML olarak okur.

Profil Nerede kullanılır Alışkanlıkları
DFXP TTML’nin ilk profili ve .dfxp uzantısı http://www.w3.org/2006/10/ttaf1 ad alanındaki eski dosyalar
IMSC 1 DASH, CMAF ve HLS üzerinden akış Çevrimiçi altyazılar ve açıklamalar için W3C profili
EBU‑TT‑D Avrupalı yayıncıların çevrimiçi oynatıcıları Öğeler çoğu zaman bir önekle yazılır: <tt:p>
SMPTE‑TT Amerikan televizyonunun çevrimiçi açıklamaları Yayından taşınan açıklamalar için SMPTE’nin eklemeleri
iTT (.itt) Apple’ın iTunes Store ve Apple TV’ye teslimleri Zamanlar karelerle (ttp:timeBase="smpte")

Subtitld’de TTML

Dosyada korunanlar (.ttml)
  • Her altyazının metni ve satır sonları
  • İtalik, kalın, altı çizili, üstü çizili ve renk
  • Ekranda nerede durduğu
  • Konuşmacılar, ajan olarak
  • Başlangıç ve bitiş, milisaniyeye kadar, sırayla
Yeri olmayanlar
  • Satır satır yazı tipleri, boyutlar, arka planlar ve konturlar
  • Bir bölgenin kesin boyutu ve yeri
  • Zamanla değişen stiller, ruby, görüntü altyazıları
  • Orijinalin yanındaki çeviriler, dublajlar, konuşmacıların yüzleri

Subtitld’e ait olanı korumak için bir .usfx projesi kaydedin.

TTML dosyası açmak

Subtitld .ttml, .dfxp, .itt ve .xml dosyalarını açar ve:

  • TTML’yi nasıl yazılmış olursa olsun okur: kendi ad alanında, eski DFXP ad alanında ya da her öğenin önünde tt: ile;
  • zamanın her biçimini okur; her biri içinde bulunduğu div ve body’den sayılır;
  • stilleri TTML’nin uyguladığı gibi izler; italik, kalın, altı çizili, üstü çizili ve beyazdan farklı her rengi korur;
  • her altyazıyı bölgesinin gösterdiği yere koyar;
  • ajanları dublaj için hazır konuşmacılar olarak alır, dosyanın xml:lang değerini projenin dili olarak;
  • dosyanın bildirdiği kodlamayı ve &nbsp; gibi HTML varlıklarını okur.

Biçimi doğru olmayan bir XML dosyası, satır ve sütun numarasını veren bir iletiyle açılır. Hiç TTML olmayan bir dosya bunu söyler.

TTML dışa aktarmak

Subtitld’nin dışa aktarma penceresi: TTML seçili, konuşmacılar ajan olarak yazılmış

Dışa aktar, ardından Altyazılar ve TTML ya da DFXP seçildiğinde şunlar sunulur:

  • MetinOrijinal, bir çeviri ya da ikisi; çeviri altta.
  • Konuşmacı adlarıDışarıda bırakılır, metnin önüne yazılır (Thom: …) ya da TTML’nin kendi yolu olan ajan (ttm:agent) olarak yazılır.
  • BiçimlendirmeKorunur ya da kaldırılır.
  • Zamanları kaydırHer altyazı aynı miktarda önceye ya da sonraya alınır.
  • Görünüm (Look)Beyaz, siyah konturlu; ya da Subtitld önizlemesinin çizdiği gibi: yazı tipi, renk ve yarı saydam kutu.

Dosya UTF-8’de TTML 1’dir. Zamanlar 00:00:23.000 olarak yazılır, altyazıların durduğu her yer bir bölge olarak, biçimlendirme span’ler olarak ve satır sonları <br/> olarak yazılır. xml:lang değeri, içerdiği metnin dilidir. TTML ve DFXP aynı dosyayı alır; yalnızca uzantı farklıdır.

TTML mi WebVTT mi?

Bir web sayfasındaki <track> için WebVTT: tarayıcılar onu kendisi okur. Yayıncılar, onu isteyen yayın hizmetleri ve dash.js ile Shaka Player gibi onu okuyan oynatıcılar için TTML. Gerisi WebVTT sayfasında.

Bilgi köşesi

2010

TTML 1.0, 2010 Kasımında bir W3C Önerisi oldu; ilk profilinin adını taşıyan taslaklardan sonra: Distribution Format Exchange Profile, DFXP.

ttaf1

Eski ad alanı, http://www.w3.org/2006/10/ttaf1, 2006 taslaklarından; o zamanlar TTML, Timed Text Authoring Format idi. Dosyalar hâlâ bunu taşır.

Emmy

2016’da W3C, TTML için HBO, Netflix, Telestream ve SMPTE’nin yanında bir Technology & Engineering Emmy aldı.

İlgili biçimler

.ttml düzeltmek mi istiyorsunuz?

Videoyla birlikte Subtitld'de açın ve dalga biçimi üzerinde yeniden zamanlayın.

Subtitld'yi indirin