แปลง JSON เป็น SRT
หรือวางข้อความคำบรรยาย
การแปลงนี้เปลี่ยนอะไร
3 อย่างถูกตัดทิ้งหรือต้องตัดสินใจ
- รูปแบบ
รูปแบบตัวอักษรทั้งหมด (ตัวหนา ตัวเอียง สี เส้นขอบ เงา)
- ตำแหน่ง
ตำแหน่งบนหน้าจอ (ทุกคิวกลับไปยังตำแหน่งเริ่มต้น)
- Karaoke
จังหวะ Karaoke (ไฮไลต์ต่อพยางค์)
รายการนี้มาจากเมทริกซ์ความสามารถของสองรูปแบบนี้ ไม่ได้มาจากไฟล์ที่คุณโหลด ไฟล์หนึ่งอาจสูญหายมากกว่าหากใช้คุณสมบัติที่รูปแบบอนุญาตแต่เมทริกซ์ไม่ได้จำลอง
หน้านี้อ่านเอกสาร JSON ที่บรรยายคำบรรยายแล้วเขียนไฟล์ SRT จากมัน รูปที่รับได้คือสคีมาที่เว็บนี้เขียน — เลข version แล้วตามด้วยอาร์เรย์ cues — และรูปแบบธรรมดาที่เอกสารเป็นเพียงรายการคิว ไม่ว่ารูปใด สิ่งที่ต้องการจากแต่ละคิวคือเวลาเริ่ม เวลาสิ้นสุด และข้อความ ส่วนเวลาเป็นมิลลิวินาทีและเข้าสู่ไทม์โค้ด SRT โดยตรง ซึ่งมีความละเอียดเท่ากัน จึงไม่มีอะไรถูกปัดระหว่างทาง
สิ่งที่ SRT เก็บไม่ได้จะถูกรายงาน ไม่ใช่ทิ้งเงียบ ๆ: ชื่อเรื่อง เฟรมเรต และตารางสไตล์ไม่มีบ้านในไฟล์คำบรรยายที่เป็นเพียงคิวมีเลขกำกับ เมื่อคิวใช้การจัดรูปแบบ — ตัวเอียง ตัวหนา สี — มันถูกเขียนเป็นแท็กที่ตรงกัน และสิ่งที่แท็กแสดงออกไม่ได้อยู่ในรายการด้านบน ไฟล์ที่เสียหายไม่หยุดการแปลง ตัวแยกวิเคราะห์อ่านเท่าที่ทำได้และซ่อมคิวที่เวลาสิ้นสุดไม่อยู่หลังเวลาเริ่ม เพราะไฟล์คำบรรยายที่โหลดแก้ได้มีค่ามากกว่าข้อความ error ทั้งชุดแปลงในรอบเดียว ในเบราว์เซอร์ และกลับมาเป็น ZIP
ตัวอย่าง
ไฟล์ JSON ทั่วไป แปลงเป็น SRT
ข้อมูลนำเข้า
{
"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"
}
]
}
ผลลัพธ์
1
00:00:00,000 --> 00:00:02,000
Hello world.
Second line.
2
00:00:02,500 --> 00:00:04,000
Plain line.
<i>Styled</i> line.
3
00:00:04,500 --> 00:00:06,000
Roger: I am here.
ไม่มีการสูญหายที่นี่ เทียบสองฝั่งทีละบรรทัด
การแปลงเดียวกันกับข้อมูลที่ยุ่งเหยิง
ข้อมูลนำเข้า
[
{ "start": 0, "end": 1000, "lines": ["First."] },
{ "start": 1000, "end": 2000, "text": "Second." },
"not an object",
{ "start": 2000, "end": 3000, "lines": ["Third."], "class": "top" }
]
ผลลัพธ์
1
00:00:00,000 --> 00:00:01,000
First.
2
00:00:01,000 --> 00:00:02,000
Second.
3
00:00:02,000 --> 00:00:03,000
Third.
นี่คือความเสียหายแบบที่ไฟล์จริงมี — การขึ้นบรรทัดใหม่ปนกัน ช่องว่างเกิน และช่องที่เว้นว่าง เทียบกับตัวอย่างเรียบร้อยด้านบนเพื่อดูว่าตัวแยกวิเคราะห์ให้อภัยอะไรได้บ้าง
คำถามที่พบบ่อย
รูปแบบ JSON แบบใดที่รับได้เมื่อแปลงเป็น SRT?
เอกสารที่เว็บนี้เขียน — เลข version และอาร์เรย์ cues — และรูปแบบอาร์เรย์ที่เทียบเท่า ซึ่งไฟล์เป็นเพียงรายการคิว สิ่งสำคัญคือแต่ละคิวมีเวลาเริ่ม เวลาสิ้นสุด และข้อความในรูปใดรูปหนึ่งที่รู้จัก
ชื่อเรื่อง สไตล์ และเฟรมเรตในไฟล์ JSON ของฉันไปไหนเมื่อแปลงเป็น SRT?
ถูกอ่านแล้วรายงานว่าถูกตัดทิ้ง เพราะ SRT ไม่มีช่องสำหรับสิ่งเหล่านี้ เฟรมเรตโดยเฉพาะไม่มีที่ไป — SRT เก็บเวลานาฬิกา ไม่ใช่เฟรม — จึงถูกลิสต์ด้านบนแทนที่จะใช้เงียบ ๆ
มิลลิวินาทีถูกปัดระหว่างส่งออกเป็น SRT ไหม?
ไม่ — SRT เก็บมิลลิวินาทีและไฟล์ JSON เขียนเป็นมิลลิวินาที ทุกเวลาเริ่มและสิ้นสุดจึงถูกส่งต่ออย่างแม่นยำและไทม์ไลน์ไม่คลาด
ถ้าเวลาเริ่มของคิวอยู่หลังเวลาสิ้นสุดจะเป็นอย่างไรในการแปลง JSON เป็น SRT?
ตัวแปลงซ่อมให้แทนที่จะปฏิเสธไฟล์ เอกสารที่ถูกแก้ด้วยมือจึงยังให้ไฟล์คำบรรยายที่เปิดได้ ตรวจเวลาของคิวนั้นเทียบกับวิดีโอ เพราะไฟล์กำลังบอกคุณว่ามีอะไรผิด
แปลง JSON เป็น SRT แล้วกลับไปกลับมาได้โดยไม่สูญเสียหรือไม่?
การแปลงเป็น JSON แล้วกลับมาให้ไทม์ไลน์เดิมอย่างแม่นยำ และให้การจัดรูปแบบที่ JSON บรรยายได้: ตัวเอียง ตัวหนา และสีกลายเป็นแท็กแล้วกลับมาเป็นแท็ก สิ่งที่ไม่รอดการไปกลับคืออะไรก็ตามที่ SRT เก็บไม่ได้ ซึ่งคือรายการด้านบนนั้นเอง