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

แปลง ASS เป็น SMI

การแปลงรูปแบบAdvanced SubStation Alpha (ASS)
หรือวางข้อความคำบรรยาย

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

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

  • รูปแบบ

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

  • Karaoke

    จังหวะ Karaoke (ไฮไลต์ต่อพยางค์)

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

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

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

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

ในทิศทางนี้สิ่งที่สูญหายคือสไตล์ คาราโอเกะ และเนื้อหาเฉพาะรูปแบบ รายการนี้มาจากสิ่งที่สองรูปแบบเก็บได้ ไม่ได้มาจากไฟล์ของคุณ จึงเป็นคำตอบเดิมก่อนคุณโหลดอะไร ส่วนข้อความและลำดับคิวยังอยู่ ผลลัพธ์เป็นไฟล์ SAMI ที่แต่ละคิวเป็นแท็ก <SYNC Start=…> พร้อมข้อความในแท็ก <P>

ตัวอย่าง

ไฟล์ ASS ทั่วไป แปลงเป็น SAMI

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

[Script Info]
Title: Example
ScriptType: v4.00+
WrapStyle: 0

[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
Style: Title,Arial,36,&H0000FFFF,&H000000FF,&H00000000,&H00000000,-1,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:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: 0,0:00:05.00,0:00:08.50,Default,,0,0,0,,{\i1}Italic{\i0} and {\b1}bold{\b0} text.
Dialogue: 0,0:00:09.00,0:00:12.00,Title,,0,0,0,,{\pos(320,240)}Positioned
Dialogue: 0,0:00:13.00,0:00:16.00,Default,,0,0,0,,{\k50}ka{\k30}ra{\k20}o{\k10}ke
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Line one\NLine two
Dialogue: 1,0:00:21.00,0:00:24.00,Default,,0,0,0,,{\an7}Top left

ผลลัพธ์

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P>Hello there.
<SYNC Start=4000>
<P>&nbsp;
<SYNC Start=5000>
<P><i>Italic</i> and <b>bold</b> text.
<SYNC Start=8500>
<P>&nbsp;
<SYNC Start=9000>
<P>Positioned
<SYNC Start=12000>
<P>&nbsp;
<SYNC Start=13000>
<P><c>ka</c><c>ra</c><c>o</c><c>ke</c>
<SYNC Start=16000>
<P>&nbsp;
<SYNC Start=17000>
<P>Line one<br>Line two
<SYNC Start=20000>
<P>&nbsp;
<SYNC Start=21000>
<P>Top left
<SYNC Start=24000>
<P>&nbsp;
</BODY>
</SAMI>

มีข้อมูลสูญหายในผลลัพธ์นี้: สไตล์ คาราโอเกะ และเนื้อหาเฉพาะรูปแบบ ส่วนที่เหลือตรงกันทุกบรรทัด

การแปลง ASS เป็น SAMI บนไฟล์ที่มีปัญหา

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

[Script Info]
; 一份真实的脏文件:BOM + CRLF + 认不出的覆写码 + Comment + 坏时间码
Title: Dirty sample
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,1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Fonts]
fontname: Arial
!!!!!!!!!!!!!!!!!!!!!!!!!!!!

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: 0,0:00:00.00,0:00:01.00,Default,,0,0,0,,这是一条注释,不该变成字幕
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello, world
Dialogue: 0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\fad(300,300)}Unmodelled override
Dialogue: 0,0:00:09.00,0:00:12.00,Default,,0,0,0,,{\an7\pos(320,240)}Both, wrong order
Dialogue: 0,0:00:13.00,0:00:16.5,Default,,0,0,0,,One decimal centisecond
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Soft\nbreak
Dialogue: 0,0:00:xx.00,0:00:24.00,Default,,0,0,0,,Broken timecode

ผลลัพธ์

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P>Hello, world
<SYNC Start=4000>
<P>&nbsp;
<SYNC Start=5000>
<P>{\fad(300,300)}Unmodelled override
<SYNC Start=8000>
<P>&nbsp;
<SYNC Start=9000>
<P>Both, wrong order
<SYNC Start=12000>
<P>&nbsp;
<SYNC Start=13000>
<P>One decimal centisecond
<SYNC Start=16500>
<P>&nbsp;
<SYNC Start=17000>
<P>Soft<br>break
<SYNC Start=20000>
<P>&nbsp;
</BODY>
</SAMI>

ไฟล์จริงมักมีอาการแบบนี้ — การขึ้นบรรทัดใหม่แบบผสม ช่องว่างเกิน และฟิลด์ที่เว้นว่าง เทียบกับตัวอย่างแรกเพื่อดูว่าตัวแยกวิเคราะห์ยอมรับอะไรได้บ้าง

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

สไตล์ใดจาก ASS รอดไปถึง SAMI

ASS ส่งต่อตัวหนา ตัวเอียง ขีดเส้นใต้ และสีในรูปแท็ก <b>, <i>, <u> และ <font color="…"> ซึ่งเบราว์เซอร์แสดงผลได้ แต่ตาราง Style ของ ASS (ฟอนต์ ขนาด เส้นขอบ เงา ระยะขอบ) ไม่มีที่ลงใน SAMI หน้าที่ฝังจะใช้ CSS ของตัวเองแทน

เวลาคาราโอเกะจาก ASS ไปไหนเมื่อแปลงเป็น SAMI

เวลาไป แต่คำอยู่ คาราโอเกะอยู่ในรหัส \k, \kf และ \ko ที่อีเวนต์ ASS พาไว้ ซึ่งบอกว่าแต่ละพยางค์สว่างเมื่อไร และ SAMI ไม่มีวิธีบันทึกช่วงเวลาภายในบรรทัด เครื่องหมายจึงถูกถอดออกและพยางค์ออกมาเป็นข้อความ SAMI ธรรมดา

ส่วน [Script Info] และส่วนอื่นของสคริปต์ ASS ไปไหนเมื่อกลายเป็น SAMI

เฉพาะบรรทัด Dialogue กลายเป็นคำบรรยาย ส่วน [Script Info] (รวมชื่อเรื่อง ซึ่ง SAMI ไม่มีที่เก็บ) ตารางสไตล์ บรรทัด Comment และสิ่งที่ฝังใน [Fonts] หรือ [Graphics] ถูกทิ้งทั้งหมด สำหรับไฟล์ ASS ที่เขียนสไตล์ด้วยมือ นี่คือความสูญหายที่เห็นชัดที่สุด

ผลลัพธ์มีหน้าตาอย่างไรเมื่อ ASS กลายเป็น SAMI

หน้าตาแบบ SAMI: ไฟล์ SAMI ที่แต่ละคิวเป็นแท็ก <SYNC Start=…> พร้อมข้อความในแท็ก <P> ทุกคิวของ ASS กลายเป็นหนึ่งคิว SAMI ในลำดับเดิม ด้วยข้อความเดิม

เวลาใน ASS ยังตรงเมื่อแปลงเป็น SAMI หรือไม่

ตรงตามค่าที่มีอยู่ ASS เขียนเวลาเป็น 0:00:04.13 และ SAMI เขียนช่วงเวลาเดียวกันเป็น Start=4130 ค่าที่เก็บได้ถึงหนึ่งในร้อยของวินาทีถูกยกไปทั้งค่า ไม่มีการปัดหรือเลื่อนระหว่างสองฝั่ง และคิวที่ขึ้นจอ 2.9 วินาทียังคง 2.9 วินาที

คิว ASS ที่มีสองบรรทัดออกมาใน SAMI อย่างไร

เป็นสองบรรทัดที่มีแท็ก <br> คั่น ซึ่งเป็นวิธีเขียนการขึ้นบรรทัดใหม่ของ SAMI การจับคู่ยังอยู่ — สองบรรทัดของ ASS ยังเป็นคำบรรยายเดียวกันในผลลัพธ์ SAMI

ลำดับคิว ASS ยังเหมือนเดิมในผลลัพธ์ SAMI หรือไม่

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

แปลง SAMI กลับเป็น ASS ได้ไหม

ได้ และการแปลง SAMI กลับเป็น ASS มีรายการสูญหายของตัวเอง: ความละเอียดของเวลาและเนื้อหาเฉพาะรูปแบบ รายการนั้นต่างจากด้านบนเพราะสองรูปแบบเก็บข้อมูลต่างกัน

ไฟล์ SAMI ที่แปลงจาก ASS ยังใช้ encoding เดิมหรือไม่

ไม่ ไฟล์ผลลัพธ์เป็น UTF-8 ใช้การขึ้นบรรทัดใหม่แบบ Unix และไม่มี byte-order mark ไม่ว่าไฟล์ ASS ต้นฉบับจะใช้ encoding อะไร ไฟล์ที่มาเป็น UTF-16 หรือ encoding ไบต์เดี่ยวแบบ Windows จะถูกถอดรหัสตอนอ่านเข้า และผลลัพธ์ออกมาเป็น SAMI แบบ UTF-8 เหมือนกันทุกครั้ง

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