Format subtitle TTML
Apa yang dapat diwakili format ini
- Pemformatan teks
- Font, warna, garis tepi, bayangan
- Posisi di layar
- Ya
- Timing karaoke
- Tidak
- Pemisahan baris di dalam cue
- Ya
- Timeline
- Waktu awal dan akhir untuk setiap cue
- Resolusi waktu
- 1 ms
- Waktu disimpan sebagai nomor frame
- Tidak
- Teks kanan-ke-kiri
- Ya
Contoh
File TTML umum, dan apa yang dibaca darinya
File
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling" xml:lang="en">
<head>
<styling>
<style xml:id="s1" tts:color="#FFFF00" tts:fontWeight="bold"/>
</styling>
<layout>
<region xml:id="bottom" tts:origin="10% 80%" tts:extent="80% 20%"/>
</layout>
</head>
<body>
<div>
<p begin="00:00:01.000" end="00:00:03.500" region="bottom" style="s1">Hello <span tts:fontStyle="italic">there</span>.</p>
<p begin="00:00:03.500" end="00:00:06.000" region="bottom">How are you?<br/>Fine, thanks.</p>
</div>
</body>
</tt>
Isi yang dikandungnya
2 cues, 3 lines of text
00:00:01.000 → 00:00:03.500
Hello there. [italic ×1]
[region="bottom" style="s1"]
00:00:03.500 → 00:00:06.000
How are you?
Fine, thanks.
[region="bottom"]
Outside the cues:
prolog an XML declaration and the namespace bindings, kept as they came in
styling 1 × <style> — "s1", the colour and weight a paragraph points at by name
layout 1 × <region> — "bottom", the origin and extent a paragraph points at by name
resolved the head is kept as it was written and is not applied here — a paragraph's style="s1" region="bottom" stays an attribute, not a colour or a screen positionSisi kanan bukan file hasil konversi — itu yang dibaca situs ini dari sisi kiri, dan titik awal setiap konversi file tersebut.
File TTML yang berantakan, dan apa yang masih terbaca darinya
File
<?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>
<div begin="00:00:01.000" end="00:00:05.000">
<p>Inherits its timing from the div, which we do not resolve.</p>
<p begin="00:00:06.000" end="00:00:07.000">This one has its own timing.</p>
</div>
<!-- <p begin="00:00:08.000" end="00:00:09.000">commented out</p> -->
<div>
<p begin="00:00:10.000"/>
<p begin="00:00:11.000" end="00:00:12.000">Last one.</p>
</div>
</body>
</tt>
Isi yang dikandungnya
3 cues, 2 lines of text
00:00:06.000 → 00:00:07.000
This one has its own timing.
00:00:10.000 → 00:00:12.000
(no text)
00:00:11.000 → 00:00:12.000
Last one.
Outside the cues:
prolog an XML declaration and the namespace bindings, kept as they came in
head none — no <styling> and no <layout>, and no paragraph points at one either
comments the commented-out <p> stays a comment, in the place it was written
divs the timings on an enclosing <div> are not pushed down onto the paragraphs inside it
Reported while reading — repaired or skipped, never silently:
1 × paragraphs with no readable begin time of their own (they were skipped — see the note about timing inherited from an enclosing div)
1 × paragraphs with neither an end time nor a duration of their own (their end times were generated)File nyata datang dengan byte-order mark, akhir baris Windows, baris nyasar sebelum timecode, atau timecode yang tidak terbaca sama sekali. Tidak ada yang melempar galat: apa pun yang tidak bisa dipahami dilaporkan, bukan dibuang diam-diam.
Konversi TTML (Timed Text) ke format lain
Semuanya berjalan sepenuhnya di peramban Anda. Labelnya menyebutkan apa yang dikorbankan arah konversi itu sebelum Anda membukanya.
- Presisi
- Konten khusus format
- Pemformatan
- Posisi
- Konten khusus format
- Konten khusus format
- Waktu
- Pemformatan
- Posisi
- Presisi
- Konten khusus format
- Pemformatan
- Posisi
- Frame rate
- Konten khusus format
- Pemformatan
- Posisi
- Konten khusus format
- Pemformatan
- Konten khusus format
- Pemformatan
- Posisi
- Konten khusus format
- Presisi
- Konten khusus format
- Waktu
- Pemformatan
- Posisi
- Pemisahan baris
- Konten khusus format
- Pemformatan
- Posisi
- Konten khusus format
Mengonversi ke format ini
- SubRip (SRT) → TTML (Timed Text)
- WebVTT (VTT) → TTML (Timed Text)
- Advanced SubStation Alpha (ASS) → TTML (Timed Text)
- SubStation Alpha (SSA) → TTML (Timed Text)
- YouTube SBV → TTML (Timed Text)
- SAMI (SMI) → TTML (Timed Text)
- LRC Lyrics → TTML (Timed Text)
- MicroDVD → TTML (Timed Text)
- SubtitleMatrix JSON → TTML (Timed Text)
- Plain Text (TXT) → TTML (Timed Text)
- CSV Spreadsheet → TTML (Timed Text)
TTML (Timed Text) adalah salah satu format subtitle yang ditangani situs ini, dan halaman ini adalah rujukannya: apa yang bisa disimpannya, apa yang tidak, dan satu halaman untuk setiap format tujuan.
Sebuah file TTML adalah dokumen XML. Di dalamnya, `<head>` menyimpan yang tidak muat di cue: tabel `<styling>` berisi gaya bernama (font, ukuran, warna, garis tepi, margin) dan tabel `<layout>` berisi region bernama (posisi dan ukuran kotak). Setiap subtitle adalah elemen `<p>` dengan atribut `begin` dan `end` yang menulis waktu hingga milidetik, dan penekanan di dalam paragraf memakai `<span>` dengan atribut seperti `tts:fontStyle` atau `tts:color`. Yang tidak disimpannya adalah timing karaoke: file TTML mencatat kapan satu cue mulai dan berakhir, bukan kapan suku kata menyala.
Tabel di atas adalah keseluruhannya — tidak ada daftar fitur tersembunyi. Ketika sebuah baris menyebut tidak, itulah tepatnya yang hilang saat mengonversi dari TTML, dan setiap halaman konversi yang tertaut di bawah menyatakannya sebelum Anda membuka file. Semua konversi berjalan di peramban Anda: tidak ada yang diunggah dan tidak perlu akun, yang penting untuk materi di bawah NDA, rekam medis pasien, atau embargo penyiaran.
Pertanyaan yang sering diajukan
Apa itu file TTML?
`.ttml` adalah TTML, format timed-text yang dipakai dunia penyiaran dan streaming untuk menulis caption: dokumen XML yang `<head>`-nya mendeklarasikan gaya dan region bernama, dan elemen `<p>`-nya adalah subtitle. Pipeline caption streaming memakainya, dan profil SMPTE-TT serta IMSC dibangun di atasnya.
Apakah TTML menyimpan gaya?
Ya, dan lebih banyak daripada format lain: tabel gaya berisi font, ukuran, warna, garis tepi, dan margin, ditambah kode per cue di dalam teks, sehingga satu baris bisa tebal, berwarna, dan ditempatkan tanpa gaya bernama. TTML tidak menyimpan timing karaoke: file TTML mencatat kapan cue mulai dan berakhir, bukan kapan suku kata menyala. Di sini kedua tabel itu adalah `<head>`: `<styling>` menyimpan gaya bernama (`tts:color`, `tts:fontWeight`, `tts:fontFamily`) dan `<layout>` menyimpan region bernama (`tts:origin`, `tts:extent`), sedangkan `<p>` merujuknya dengan nama (`style="s1" region="bottom"`) alih-alih mengulanginya.
Apakah setiap cue TTML menyimpan awal dan akhir?
Ya, dan satu momen dalam file TTML terbaca `00:00:04.126`. Itu serinci yang bisa dicapai TTML — hingga milidetik — dan angkanya eksak, sehingga cue bisa pendek, panjang, atau tumpang tindih dengan cue berikutnya tanpa menyiratkan apa pun.
Format mana yang sebaiknya saya tuju dari TTML?
Tidak ada yang di situs ini menampung semua isi file TTML, jadi tidak ada arah gratis — setiap halaman konversi menyebut daftar kehilangannya sendiri. Pilih target berdasarkan daftar mana yang bisa Anda terima, bukan berdasarkan format yang paling sering Anda lihat.
Apa yang disimpan file TTML di luar cue-nya?
Deklarasi XML dan seluruh `<head>`: tabel `<styling>` berisi gaya bernama (`tts:color`, `tts:fontWeight`), tabel `<layout>` berisi region bernama (`tts:origin`, `tts:extent`), dan `<metadata>` apa pun. Setiap `<p>` merujuknya dengan nama alih-alih mengulanginya, sehingga satu file dapat mengubah gaya semua caption dengan menyunting satu entri. Rujukan itu berada pada paragraf, bukan di model cue, dan itulah sebabnya mengonversi ke format tanpa keduanya dilaporkan sebagai kehilangan.