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

แปลง SMI เป็น CSV

หรือวางข้อความคำบรรยาย

การแปลงนี้เปลี่ยนอะไร

3 อย่างถูกตัดทิ้งหรือต้องตัดสินใจ

  • รูปแบบ

    รูปแบบตัวอักษรทั้งหมด (ตัวหนา ตัวเอียง สี เส้นขอบ เงา)

  • ตำแหน่ง

    ตำแหน่งบนหน้าจอ (ทุกคิวกลับไปยังตำแหน่งเริ่มต้น)

  • เนื้อหาที่เฉพาะกับรูปแบบ

    เนื้อหาที่รูปแบบต้นทางเก็บไว้นอกคิว (บล็อกที่ไม่ใช่คิว ข้อความหัวไฟล์ การตั้งค่าต่อคิว เหตุการณ์ที่ถูกคอมเมนต์) — รูปแบบปลายทางไม่มีที่ให้เก็บ

รายการนี้มาจากเมทริกซ์ความสามารถของสองรูปแบบนี้ ไม่ได้มาจากไฟล์ที่คุณโหลด ไฟล์หนึ่งอาจสูญหายมากกว่าหากใช้คุณสมบัติที่รูปแบบอนุญาตแต่เมทริกซ์ไม่ได้จำลอง

หน้านี้แปลง SMI เป็น CSV วางไฟล์ลงไปหรือวางข้อความ แล้วคุณจะได้เวอร์ชัน CSV กลับมา การแปลงทำงานทั้งหมดในเบราว์เซอร์ จึงไม่มีการอัปโหลดและไม่ต้องมีบัญชี

สองรูปแบบนี้ไม่ได้เก็บสิ่งเดียวกัน และความต่างไม่ใช่เรื่องผิวเผิน: สไตล์ ตำแหน่งบนจอ และเนื้อหาเฉพาะรูปแบบไม่มีที่อยู่ใน CSV รายการด้านบนมาจากสิ่งที่ทั้งสองรูปแบบแสดงออกได้ ไม่ได้มาจากไฟล์ของคุณ คำตอบจึงเหมือนเดิมก่อนคุณจะโหลดอะไรลงไป ไฟล์เดียวก็ได้ ทั้งซีซันก็ได้ คิวทำงานตามลำดับและผลลัพธ์ลงมาพร้อมกันเป็นไฟล์ ZIP เดียว

ตัวอย่าง

ไฟล์ SMI ทั่วไป แปลงเป็น CSV

ข้อมูลนำเข้า

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial; }
.ENCC { Name: English; lang: en-US; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P Class=ENCC>Hello there.
<SYNC Start=3000>
<P Class=ENCC>&nbsp;
<SYNC Start=3500>
<P Class=ENCC>How are you?<br>Fine, thanks.
<SYNC Start=6000>
<P Class=ENCC>&nbsp;
</BODY>
</SAMI>

ผลลัพธ์

start,end,text
00:00:01.000,00:00:03.000,Hello there.
00:00:03.500,00:00:06.000,"How are you?
Fine, thanks."

สิ่งที่ตัดออกในผลลัพธ์นี้: สไตล์ ตำแหน่งบนจอ และเนื้อหาเฉพาะรูปแบบ ทุกอย่างอื่นตรงกันทีละบรรทัด

การแปลงเดียวกันกับข้อมูลที่ผิดปกติ

ข้อมูลนำเข้า

<SAMI>
<HEAD>
<TITLE>Episode 1</TITLE>
<STYLE TYPE="text/css">
<!--
.ENCC { Name: English; }
-->
</STYLE>
</HEAD>
<BODY>
<sync start="00:00:02,500">
<P Class=ENCC>Line one<br>Line two
<sync start=9000>
<P Class=ENCC>Tom &amp; Jerry
<SYNC Start=12000>
<P Class=ENCC>&nbsp;
</BODY>
</SAMI>

ผลลัพธ์

start,end,text
00:00:02.500,00:00:09.000,"Line one
Line two"
00:00:09.000,00:00:12.000,Tom &amp; Jerry

ไฟล์จริงมักมาพร้อม BOM การขึ้นบรรทัดใหม่แบบ Windows บรรทัดแปลกปลอมก่อนไทม์โค้ด หรือไทม์โค้ดที่อ่านไม่ได้เลย ไม่มีอะไรโยนข้อผิดพลาด: สิ่งที่เข้าใจไม่ได้จะถูกรายงาน ไม่ใช่ทิ้งเงียบ ๆ

คำถามที่พบบ่อย

ตัวหนา ตัวเอียง และสีจาก SMI ไปอยู่ไหนเมื่อแปลงเป็น CSV?

การเน้นอยู่ต่อ ตารางสไตล์ไม่อยู่ต่อ การจัดรูปแบบที่เป็นของข้อความชิ้นหนึ่ง — ตัวหนา ตัวเอียง ขีดเส้นใต้ สี — ถูกเขียนลงในข้อความ CSV เป็นแท็ก (`<i>`, `<b>`, `<u>`, `<font color="…">`) เพราะนั่นเป็นสไตล์ชนิดเดียวที่รูปแบบระดับคิวยังพกได้ สิ่งที่หายคือทุกอย่างที่ไฟล์ SMI บอกในระดับรวม: ฟอนต์ ขนาด เส้นขอบ เงา และระยะขอบ

ตำแหน่งบนจอจาก SMI ไปอยู่ไหนเมื่อแปลงเป็น CSV?

ตำแหน่งบนจอ CSV บอกไม่ได้ว่าคำบรรยายถูกวาดที่ไหน แอตทริบิวต์ของย่อหน้าและ CSS ที่ชี้ไปจึงถูกตัดตอนออกจาก SMI และทุกคิวกลับไปใช้ตำแหน่งเริ่มต้นที่โปรแกรมเล่นเลือก — ส่วนล่างของเฟรมและกึ่งกลางสำหรับโปรแกรมส่วนใหญ่

แท็ก `<STYLE>`, `<TITLE>` และแอตทริบิวต์ `Class=` ของ SAMI ไปไหนเมื่อแปลง SMI เป็น CSV?

ถูกตัดออก SAMI บอกว่าคำบรรยายมีหน้าตาอย่างไรจากภายนอกข้อความของคิว: บล็อก `<STYLE>` ของ CSS สำหรับย่อหน้า, `<TITLE>`, และเครื่องหมายช่องที่แต่ละย่อหน้าพกไป — `Class=ENCC` ซึ่งชี้ไปที่กฎข้อหนึ่งในนั้น CSV เก็บคิวไม่ใช่เอกสาร จึงไม่มีที่ให้สิ่งเหล่านั้นไปอยู่ การเน้นที่เขียนอยู่ในข้อความของคิวเองไม่ได้รับผลกระทบ เพราะมันเป็นของบรรทัด และคิวออกมาพร้อมข้อความและเวลาครบถ้วน

เมื่อแปลง SMI เป็น CSV ผลลัพธ์มีหน้าตาอย่างไร?

เหมือน CSV: มีแถวหัวตาราง (`start,end,text`) แล้วหนึ่งแถวต่อหนึ่งคิว ทุกคิว SMI กลายเป็นคิว CSV หนึ่งคิวในลำดับเดิมและข้อความเดิม

ไทม์โค้ดของ SMI ในไฟล์ CSV ยังแม่นถึงมิลลิวินาทีหรือไม่?

แม่นถึงมิลลิวินาที ซึ่งละเอียดที่สุดเท่าที่ทั้งสองรูปแบบทำได้ SMI เขียนเวลาเป็น `Start=4126` และ CSV เขียนเวลาเดียวกันเป็น `00:00:04.126` ไม่มีการปัดหรือเลื่อนระหว่างสองรูปแบบ และคิวที่อยู่บนจอ 2.9 วินาทียังคงเป็น 2.9 วินาที

คิว SMI สองบรรทัดจะออกมาเป็นอย่างไรใน CSV?

เป็นสองบรรทัดในเซลล์ข้อความเดียว โดยใส่เครื่องหมายคำพูดตามที่ CSV กำหนด การจับคู่ยังอยู่ ทั้งสองบรรทัดของ SMI ยังเป็นคำบรรยายเดียวกันในผลลัพธ์ CSV และโปรแกรมเล่นแสดงพร้อมกัน

ลำดับคิว SMI จะคงเดิมในผลลัพธ์ CSV หรือไม่?

ลำดับไม่เปลี่ยน: CSV รับคิวจาก SMI มาตามเวลาเริ่มจากน้อยไปมาก คิวที่สลับกันมาแต่แรกจะถูกจัดกลับพร้อมข้อความเดิม

แปลง CSV กลับเป็น SMI ได้หรือไม่?

ได้ และทิศทางนั้นไม่เสียอะไรเพิ่ม: ไฟล์ CSV เก็บได้น้อยกว่า SMI สิ่งที่ถูกตัดในทิศทางนี้ยังคงหายไป สไตล์ ตำแหน่งบนจอ และเนื้อหาเฉพาะรูปแบบสร้างคืนจากไฟล์ CSV ไม่ได้ เพราะไม่มีอะไรในไฟล์บันทึกว่ามันเคยเป็นอะไร

ไฟล์ CSV ที่ได้จะรักษา encoding ของไฟล์ SMI ไว้หรือไม่?

ขาออกเป็น UTF-8 เสมอ ไฟล์ CSV ไม่มี BOM และใช้การขึ้นบรรทัดใหม่แบบ Unix แม้ SMI ต้นทางจะเป็น UTF-16 หรือ encoding ไบต์เดียว แผงผลลัพธ์จะบอกถ้ามีการถอดรหัสเกิดขึ้น

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