JSON’dan ASS’ye dönüştürücü
Ya da altyazı metnini yapıştırın
Bu dönüşüm neyi değiştirir
1 şey atılır ya da bir karar gerektirir
- Hassasiyet
zamanlama hassasiyeti — çıktının saati daha kaba, bu yüzden her zaman damgası en yakın 10 ms’e yuvarlanır
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 dönüştürücü JSON dosyasını tarayıcıda okuyup ASS biçiminde yeniden yazar. JSON’da 1,25 saniye 1250 diye yazılır; ASS’de aynı an 0:00:01.25 olur. Hedefin saati salise hassasiyetinde olduğu için değer en yakın 10 ms’ye yuvarlanır. Satır sonları ve metin olduğu gibi geçer.
İki biçim aynı şeyleri saklamaz. Bu dönüşümde zaman hassasiyeti düşer; hedefin saati daha kaba olduğu için her zaman damgası en yakın 10 ms’ye yuvarlanır. ASS çıktısında tek bir Default stil yazılır (Arial, 20 punto, beyaz metin, koyu kontur); kaynakta stil yoksa görünüm budur.
Dosyalar tarayıcı sekmesinde okunur ve yazılır; ağa yalnızca sayfanın kendisi çıkar. Bir dosya da yüz dosya da aynı yoldan geçer: kuyruk sırayla çalışır, ilerleme görünür ve sonuçlar tek arşivde iner.
Örnekler
Tipik bir JSON dosyası ve ASS çıktısı
Girdi
{
"version": 1,
"title": "Fixture: typical",
"fps": 25,
"styles": {
"Default": {
"name": "Default",
"fontFamily": "Arial",
"fontSize": 20,
"primaryColor": "#FFFFFF",
"bold": false,
"italic": false
}
},
"generator": "subtitlematrix fixtures",
"cues": [
{
"id": "1",
"start": 0,
"end": 2000,
"lines": [
"Hello world.",
"Second line."
],
"style": "Default",
"position": {
"x": 100,
"y": 200,
"align": "center"
}
},
{
"id": "2",
"start": 2500,
"end": 4000,
"lines": [
"Plain line.",
{
"text": "Styled line.",
"tags": [
{
"kind": "italic",
"start": 0,
"end": 6
}
]
}
]
},
{
"id": "3",
"start": 4500,
"end": 6000,
"lines": [
"Roger: I am here."
],
"speaker": "Roger"
}
]
}
Çıktı
[Script Info]
Title: Fixture: typical
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,,,,0,0,,,,,,,,,,,,,,
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:02.00,Default,,0,0,0,,{\pos(100,200)}Hello world.\NSecond line.
Dialogue: 0,0:00:02.50,0:00:04.00,Default,,0,0,0,,Plain line.\N{\i1}Styled{\i0} line.
Dialogue: 0,0:00:04.50,0:00:06.00,Default,,0,0,0,,Roger: I am here.
Bu çıktıda düşenler: 10 ms’ye yuvarlanır. 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
[
{ "start": 0, "end": 1000, "lines": ["First."] },
{ "start": 1000, "end": 2000, "text": "Second." },
"not an object",
{ "start": 2000, "end": 3000, "lines": ["Third."], "class": "top" }
]
Çıktı
[Script Info]
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,0,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:00.00,0:00:01.00,Default,,0,0,0,,First.
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,Second.
Dialogue: 0,0:00:02.00,0:00:03.00,Default,,0,0,0,,Third.
Gerçek dosyalar böyle gelir: karışık satır sonları, baştaki BOM, boş alanlar. Soldaki dağınık dosyanın sağda düzenli bir ASS dosyasına dönüştüğünü, anlaşılmayan her şeyin ise raporda sayıldığını görün.
Sık sorulan sorular
JSON → ASS dönüşümünde hangi özellikler aynen geçer?
Replik metni, sırası ve zaman çizelgesi JSON’dan ASS’ye olduğu gibi geçer. Değişen şey sarmalayıcıdır: JSON’da 1,25 saniye 1250 diye yazılır; ASS’de aynı an 0:00:01.25 olur. Hedefin saati salise hassasiyetinde olduğu için değer en yakın 10 ms’ye yuvarlanır. Bununla birlikte zaman hassasiyeti düşer; hedefin saati daha kaba olduğu için her zaman damgası en yakın 10 ms’ye yuvarlanır.
JSON’da zaman kodu ASS’de nasıl yazılır?
JSON’da bir an 1250 diye yazılır; ASS’de aynı an 0:00:01.25 olur. Hedefin saati salise hassasiyetinde olduğu için değer en yakın 10 ms’ye yuvarlanır.
JSON’dan ASS’ye geçerken zamanlar neden 10 ms’ye yuvarlanıyor?
JSON’dan ASS’ye geçerken saat salise adımlarıyla ilerler: 00:00:01,234 gibi bir değer 0:00:01.23 olarak yazılır. Bu, her zaman damgasında en fazla 5 ms’lik bir kayma demektir; replik sınırları ve metin değişmez.
JSON dosyasını ASS’ye dönüştürdükten sonra onu hangi oynatıcılar açar?
JSON dosyasından üretilen ASS dosyasını şu araçlar açar: VLC, mpv, MPC-HC ve Aegisub gibi oynatıcılar ASS dosyasını okur; mobil oynatıcıların bir kısmı yalnızca temel metni gösterir.
BOM ve CRLF içeren bir JSON dosyası ASS’ye dönüşürken sorun çıkarır mı?
Çıkarmaz. JSON dosyası okunurken BOM ve karışık satır sonları temizlenir, ASS çı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.
JSON dosyalarımı toplu olarak ASS’ye dönüştürebilir miyim?
Evet. Birden çok JSON dosyasını bir seferde sürükleyip bırakabilirsiniz; kuyruk hepsini sırayla işler, istediğiniz an durdurabilirsiniz ve ASS çıktıları tek bir ZIP olarak iner. Dosyalar tarayıcıdan çıkmaz, sunucuya hiçbir şey yüklenmez.
ASS dosyasını yeniden JSON’a dönüştürürsem aynı dosyayı elde eder miyim?
JSON → ASS → JSON gidiş-dönüşünde şunlar geri gelmez: 10 ms hassasiyet. 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.