Ana içeriğe geç
SubtitleMatrix

HTML track öğesi üret

Dışa aktarmaHTML track öğesi
Ya da altyazı metnini yapıştırın

Seçenekler

Altyazılar sesi duyabilen ve sözcüklere ihtiyaç duyan izleyiciler içindir — bir çeviri ya da aynı dilin yazıya dökülmüş hâli. Caption’lar sesi duyamayan izleyiciler içindir, bu yüzden sesin herkese söylediklerini de taşırlar: müzik, bir kapı, çalan telefon. Aynı dosya iki amaca da hizmet edebilir; bu yüzden sayfa tahmin etmek yerine sorar ve değer öğenin içinden sonradan değiştirilemez. Açıklamalar, bölümler ve üstveri sunulmaz: hiçbiri bir altyazı dosyasının içeriğiyle doldurulamaz.

en, en-GB ya da pt-BR gibi kısa bir dil etiketi; videonun değil, altyazılardaki sözcüklerin dilini adlandırır. Kendini altyazı olarak tanımlayan bir parçanın bir dil adlandırması zorunludur, bu yüzden bu kutuyu temizlemek özniteliği düşürmek yerine en’e döner — ve her öznitelik çıktıya yazıldığı için bu geri dönüşü herhangi bir şey yapıştırmadan önce görebilirsiniz.

Serbest metin: English, English (SDH), Français. Bir sayfa birden fazla parça sunduğunda izleyicinin seçtiği satır budur, bu yüzden kitlenizin tanıyacağı gibi yazın. Kutuyu temizlemek boş bir öznitelik yazmak yerine özniteliği tamamen kaldırır ve adlandırmayı oynatıcıya bırakır; boş bir etiket o menüye adsız bir satır koyardı.

Açıkken altyazılar video oynar oynamaz belirir. Bir medya öğesinin yalnızca bir varsayılan parçası olabilir, bu yüzden sayfa zaten bir tane taşıyorsa bunu kapalı bırakın: varsayılan olduğunu iddia eden ikinci bir parça oynatıcıların yanlış olanı seçmesine yol açar; varsayılan olmamak ise yalnızca izleyicinin kendi açması demektir.

Zamanlamaların hangi kare hızında sayıldığı. Format sayfalarında MicroDVD’nin ihtiyaç duyduğu şey budur, çünkü zamanlamayı kare numarası olarak saklar. Kare hızı sayfalarında ise dosyanın hangi hıza göre zamanlandığı — altyazının hazırlandığı sürüm — ve sayfanın ikinci kutusu altyazıyı birlikte kullanacağınız videonun hızını alır. 23,976, 24, 25, 29,97, 30, 50, 59,94 ve 60 yaygın olanlardır. Yanlış vermek tüm zaman çizelgesini kaydırır; kare hızı sayfalarında ise sabit bir miktar yerine bir oran kadar kaydırır.

Bu sayfa altyazılarınızı bir sayfaya yapıştırabileceğiniz tek bir öğeye yerleştirir. Çıktı, WebVTT metninin `src` özniteliğinin içine gömüldüğü tek bir `<track>` satırıdır; böylece altyazı metni işaretlemenin kendisiyle birlikte gider — yüklenecek ikinci bir dosya, doğru yazılması gereken bir yol ve oynatıcının olmayan bir şeyi araması gibi bir olasılık kalmaz.

Bu gömme işlemi sayfanın bütün amacıdır ve nedeni tarayıcıların yerel dosyalara davranışıdır. Bir iz çizilmez, indirilir; tarayıcı ise sayfa diskten açıldığında bu indirmeyi reddeder. Masaüstünüze kaydettiğiniz bir sayfadaki `<track src="film.vtt">` hiçbir şey göstermez: ekranda hata yoktur, altyazı menüsü boştur ve çoğu kişinin hiç açmadığı konsolda tek bir satır durur. `data:` URI hiç indirilmez — metin özniteliğin içindedir — bu yüzden orada çalışır. Bedeli boyuttur: harf ya da rakam olmayan her karakter URI’de üç karaktere dönüşür, boşluk `%20`, satır sonu `%0A` olur; yüz kilobaytlık bir dosya birkaç yüz kilobayta çıkar.

Girdi olarak bu sitenin okuduğu on iki formatın hepsini kullanabilirsiniz; çıktı her zaman WebVTT’dir, çünkü `<track>` öğesinin okuduğu biçim odur. Metin, zamanlama ve biçimlendirme değişmez; değişen şey kabuktur. `kind`, `srclang`, `label` ve `default` öznitelikleri sizin verdiğiniz değerlerden yazılır ve boş bıraktığınız bir kutu özniteliği yazmaz, onu varsayılan bir değerle doldurmaz. Sonuç bir dosya değil, tek bir öğedir — kopyalayıp sayfanıza yapıştırdığınızda altyazı sizinle gelir.

Örnekler

Tek bir öğe, kendi altyazısıyla

Girdi

1
00:00:01,000 --> 00:00:03,000
The room is dark.

2
00:00:04,000 --> 00:00:06,000
Nobody came.

Çıktı

<track kind="subtitles" src="data:text/vtt;charset=utf-8,WEBVTT%0A%0A1%0A00%3A00%3A01.000%20--%3E%2000%3A00%3A03.000%0AThe%20room%20is%20dark.%0A%0A2%0A00%3A00%3A04.000%20--%3E%2000%3A00%3A06.000%0ANobody%20came.%0A" srclang="en" label="English" default>

Burada ikinci bir dosya yok: WebVTT metni `src` özniteliğinin içinde `data:text/vtt` olarak duruyor. Öğeyi kopyalayıp sayfaya yapıştırmak yeterlidir; tarayıcı hiçbir şey indirmeye çalışmaz, bu yüzden diskten açılan bir sayfada da çalışır.

Dört öznitelik, dört karar

Girdi

WEBVTT - exported from the editing room

NOTE The first pass was done by hand.

STYLE
::cue { color: #f2f2f2; }

intro
00:00:01.000 --> 00:00:03.000 align:start position:10%
The room is dark.

2
00:00:04.000 --> 00:00:06.000
Nobody came.

Çıktı

<track kind="subtitles" src="data:text/vtt;charset=utf-8,WEBVTT%20-%20exported%20from%20the%20editing%20room%0A%0ANOTE%20The%20first%20pass%20was%20done%20by%20hand.%0A%0ASTYLE%0A%3A%3Acue%20%7B%20color%3A%20%23f2f2f2%3B%20%7D%0A%0Aintro%0A00%3A00%3A01.000%20--%3E%2000%3A00%3A03.000%20align%3Astart%20position%3A10%25%0AThe%20room%20is%20dark.%0A%0A2%0A00%3A00%3A04.000%20--%3E%2000%3A00%3A06.000%0ANobody%20came.%0A" srclang="en-GB" label="English (UK)" default>

`kind` altyazı türünü, `srclang` dil kodunu, `label` oynatıcı menüsünde görünen adı, `default` ise varsayılan izi belirler. Boş bırakılan bir kutu özniteliği tamamen kaldırır — boş bir değer yazmaz. Bu, oynatıcının ne göstereceğine karar vermesine izin vermek demektir, adın boş görünmesine değil.

SRT içeri, VTT dışarı

Girdi

1
00:00:01,000 --> 00:00:03,000
[door slams]
The room is dark.

2
00:00:04,000 --> 00:00:06,000
♪ Nobody came ♪

Çıktı

<track kind="captions" src="data:text/vtt;charset=utf-8,WEBVTT%0A%0A1%0A00%3A00%3A01.000%20--%3E%2000%3A00%3A03.000%0A%5Bdoor%20slams%5D%0AThe%20room%20is%20dark.%0A%0A2%0A00%3A00%3A04.000%20--%3E%2000%3A00%3A06.000%0A%E2%99%AA%20Nobody%20came%20%E2%99%AA%0A" srclang="en" label="Tom &amp; &quot;the boss&quot;" default>

Girdi SRT, çıktı WebVTT. Metin ve zamanlama aynıdır; değişen, oynatıcının okuduğu sözdizimidir. Bu dönüştürme kayıpsız sayılır, çünkü SRT’nin taşıyamadığı bir şey WebVTT’ye eklenmez ve WebVTT’nin fazladan blokları da uydurulmaz.

Uzun çıktı, küçük dosya

Girdi

1
00:00:01,000 --> 00:00:03,000
A cold night,
and no heating.

2
00:00:04,000 --> 00:00:06,000
Every night this week?

Çıktı

<track kind="subtitles" src="data:text/vtt;charset=utf-8,WEBVTT%0A%0A1%0A00%3A00%3A01.000%20--%3E%2000%3A00%3A03.000%0AA%20cold%20night%2C%0Aand%20no%20heating.%0A%0A2%0A00%3A00%3A04.000%20--%3E%2000%3A00%3A06.000%0AEvery%20night%20this%20week%3F%0A" srclang="en">

Yüz kilobaytlık bir altyazı, URI kodlaması yüzünden birkaç yüz kilobayta çıkar. Bu bir hata değil, gömmenin bedelidir: metin sayfanın içinde durduğu için ayrı bir istek gerekmez. Çıktıyı bir dosyaya kaydetmek isterseniz, kaydettiğiniz şey altyazı değil, içine altyazı gömülmüş bir işaretleme parçasıdır.

Sık sorulan sorular

Sayfamın yanında hâlâ bir .vtt dosyasına ihtiyacım var mı?

Hayır ve sayfanın amacı tam olarak budur. WebVTT, `src` özniteliğine `data:` URI olarak yazılır, yani öğe kendi altyazısını taşır. Öğeyi bir sayfaya yapıştırabilir, dosyayı e-postayla gönderebilir ya da başka bir klasöre taşıyabilirsiniz; altyazı yine görünür. Tek koşul, öğenin bir sayfanın içinde olmasıdır — tek başına açılan bir metin parçası değil.

Sayfayı kendi bilgisayarımdan açarsam çalışır mı?

Evet ve sayfanın altyazıyı gömmesinin nedeni bu durumdur. Sayfa diskten açıldığında tarayıcı ayrı bir iz dosyasını indirmeyi reddeder; `film.vtt` dosyasına işaret eden bir iz hiçbir şey göstermez — görünür bir hata yok, yalnızca boş bir altyazı menüsü. `data:` URI hiç indirilmediği için aynı sayfada çalışır.

Çıktı neden altyazı dosyamdan bu kadar uzun?

Çünkü harf ya da rakam olmayan her karakter URI’de üç karakter olur: boşluk `%20`, satır sonu `%0A`. Yüz kilobaytlık bir dosya birkaç yüz kilobayta çıkar. Base64 daha kısa olurdu — orijinalin yaklaşık üçte biri fazlası, iki katı değil — ama o zaman metin okunabilir olmazdı ve bu sayfa altyazının ne olduğunu gözle görebilmenizi ister.

`label` kutusunu temizlediğimde neden öznitelik kayboluyor?

Çünkü menü adı HTML’de isteğe bağlıdır ve onu atlamak “ad yok” anlamına gelmez; oynatıcının altyazı menüsünde ne göstereceğine karar vermesi anlamına gelir, ki bu genellikle dildir. Kutuyu temizlemek bu yüzden boş bir öznitelik yazmak yerine özniteliği kaldırır.

Burada altyazı ile caption arasındaki fark nedir?

Kime hitap ettikleri. Subtitle, izleyicinin sesi duyabildiğini ve yalnızca sözcüklerin yazılması ya da çevrilmesi gerektiğini varsayar; caption ise izleyicinin sesi duyamadığını varsayar ve bu yüzden işiten bir izleyiciye sesle ulaşan bilgiyi de taşır — müzik, kapı, telefon. `kind` özniteliği bu ayrımı oynatıcıya bildirir.

Diğer iz türlerinden hangilerini dışarıda bıraktınız?

Üçünü: göremeyen izleyici için görüntüyü anlatan `descriptions`; altyazıdan çok gezinme olan ve bu sitede kendi sayfası bulunan `chapters`; ve kimseye gösterilmeyen `metadata`. Üçü de altyazı metniyle doldurulabilecek türler değildir ve bu sayfa yalnızca `subtitles` ile `captions` üretir.

Altyazılarımdaki bir şey yolda değişiyor mu?

Metin, zamanlama ve biçimlendirme değişmez; WebVTT dosyası kendi yorum, stil ve bölge bloklarını ve replik başına ayarlarını korur. Değişen şey kabuktur: satırlar oynatıcıların okuduğu WebVTT sözdizimine çevrilir, çünkü `<track>` öğesi SRT okumaz. Girdi dosyanız olduğu gibi kalır.

İlgili araçlar