ข้ามไปยังเนื้อหาหลัก
SubtitleMatrix

แปลง 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 เก็บไม่ได้ ซึ่งคือรายการด้านบนนั้นเอง

เครื่องมือที่เกี่ยวข้อง