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

เปลี่ยนตำแหน่งคำบรรยายบนหน้าจอ

ข้อความและสไตล์ย้ายคำบรรยายบนหน้าจอ
หรือวางข้อความคำบรรยาย

ตัวเลือก

ช่องสำเร็จรูปเก้าช่องบวกการลบ ตัวทำเครื่องหมายที่เขียนคือ {\anN} ตามลำดับปุ่มตัวเลข — 7/8/9 คือแถวบน 4/5/6 คือแถวกลาง 1/2/3 คือแถวล่าง — และมันอยู่หน้าบรรทัดแรกของแต่ละคิว ASS และ SSA อ่านกลับเป็นรหัสการจัดตำแหน่งจริง ใน SRT มันเป็นข้อความตรงตัวที่ libass, VLC และ mpv เคารพ ส่วนโปรแกรมเล่นที่เรียบง่ายกว่าจะพิมพ์ออกมา พิกัด \pos ที่มีอยู่ไม่ถูกแตะเลย เลือกตัวเลือกสุดท้ายเพื่อลบเครื่องหมายตำแหน่งแทนการเพิ่ม

หน้านี้ย้ายทุกคิวในไฟล์คำบรรยายไปยังหนึ่งในเก้าตำแหน่งบนหน้าจอ หรือลบเครื่องหมายตำแหน่งออกจากไฟล์ที่มีอยู่แล้ว หน้าเขียนรหัสจัดตำแหน่งที่ต้นบรรทัดแรกของแต่ละคิว โดยตัวเลขเรียงช่องแบบแป้นตัวเลข คือ 7 8 9 แถวบน 4 5 6 แถวกลาง และ 1 2 3 แถวล่าง การเรียงนี้ไม่ใช่ลำดับการอ่าน และตัวอย่างของหน้ามีไว้เพื่อไม่ให้เลือกซ้ายบนแล้วได้ซ้ายล่างโดยไม่ตั้งใจ

เครื่องหมายนี้เป็นข้อมูลตำแหน่งชิ้นเดียวที่สามรูปแบบเห็นตรงกัน ใน ASS และ SSA มันเป็นรหัสคำสั่งที่ถูกต้อง อ่านกลับเข้าคิวเป็นฟิลด์ของตัวเองและเขียนออกตามลำดับเอกสารหลังคำสั่ง pos ไฟล์ที่ไม่เคยออกจาก ASS จึงรอดรอบไปกลับพอดี ส่วน SRT ไม่มีไวยากรณ์ตำแหน่งเลย เครื่องหมายจึงถูกเขียนเป็นข้อความจริงที่ต้นบรรทัด โปรแกรมที่ใช้ libass เช่น VLC และ mpv จะทำตาม แต่โปรแกรมที่ไม่รู้จักจะพิมพ์สี่อักขระบนจอ หน้าเขียนเรื่องนี้ตรง ๆ ไม่สัญญาตำแหน่งที่รับประกันไม่ได้ ตำแหน่งถือเป็นคุณสมบัติของทั้งคิว เครื่องหมายจึงไปที่บรรทัดแรกเท่านั้น คำสั่ง pos เดิมไม่ถูกแตะ และการเลือก Remove เป็นคำสั่งจริงที่ลบเครื่องหมายต้นบรรทัดกับค่าจัดตำแหน่งที่เก็บไว้ โดยไม่แตะเครื่องหมายกลางบรรทัดซึ่งเป็นบทสนทนา ไม่มีการอัปโหลดและไทม์โค้ดไม่ถูกแตะ

ตัวอย่าง

สองคิว SRT ธรรมดาย้ายไปกลางบน

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

1
00:00:01,000 --> 00:00:02,000
Hello there.

2
00:00:03,000 --> 00:00:04,000
Second line.

ผลลัพธ์

1
00:00:01,000 --> 00:00:02,000
{\an8}Hello there.

2
00:00:03,000 --> 00:00:04,000
{\an8}Second line.

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

ไฟล์เดียวกันที่มุมซ้ายบนและซ้ายล่าง

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

1
00:00:01,000 --> 00:00:02,000
Hello there.

ผลลัพธ์

1
00:00:01,000 --> 00:00:02,000
{\an7}Hello there.

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

ย้ายคิว ASS ที่อยู่ซ้ายบนอยู่แล้ว

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

[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:01.00,0:00:02.00,Default,,0,0,0,,{\an7\i1}Hello there{\i0}

ผลลัพธ์

[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:01.00,0:00:02.00,Default,,0,0,0,,{\an2}{\i1}Hello there{\i0}

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

ลบเครื่องหมายจากไฟล์ที่มีสองแบบ

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

1
00:00:01,000 --> 00:00:02,000
{\an8}Hello there.

2
00:00:03,000 --> 00:00:04,000
{\an2}Second line.

ผลลัพธ์

1
00:00:01,000 --> 00:00:02,000
Hello there.

2
00:00:03,000 --> 00:00:04,000
Second line.

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

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

ตำแหน่งใดคือรหัสหนึ่ง และทำไมไม่เริ่มที่ซ้ายบน

รหัส 1 คือมุมซ้ายล่าง ค่าเก้าค่าเรียงตามแป้นตัวเลข 7 8 9 คือแถวบน 4 5 6 คือแถวกลาง และ 1 2 3 คือแถวล่าง ซ้ายบนจึงเป็น 7 กลางเป็น 5 และขวาล่างเป็น 3 รายการตำแหน่งบนหน้าถูกเขียนตามลำดับการอ่านและแปลเป็นตัวเลขเหล่านี้ให้ ซึ่งเป็นเหตุผลหลักที่ควรใช้รายการแทนการแก้เครื่องหมายด้วยมือ

หน้านี้ใช้กับไฟล์ WebVTT SAMI หรือ TTML ได้ไหม

ไม่ได้ และรายการรูปแบบที่รับสั้นโดยตั้งใจ คือ SRT ASS และ SSA เท่านั้น WebVTT และ TTML มีไวยากรณ์ตำแหน่งของตัวเอง เช่น cue settings อย่าง line และ align หรือแอตทริบิวต์ tts และหน้านี้ไม่เขียนสิ่งเหล่านั้น ถ้ารับมาก็จะรายงานว่าเปลี่ยนตำแหน่งทั้งที่ไฟล์ออกมาไม่เปลี่ยน เหตุผลเดียวกันตัด JSON ออก เพราะฟิลด์ตำแหน่งมีห้าค่าแนวนอนไม่ใช่เก้าช่อง

เครื่องหมายจะมองเห็นเป็นข้อความในไฟล์ SRT ไหม

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

คำสั่ง pos เดิมจะถูกเขียนทับด้วยตำแหน่งใหม่ไหม

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

คิวมีสองบรรทัด แต่ละบรรทัดได้เครื่องหมายของตัวเองไหม

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

ใส่ตำแหน่งเดิมซ้ำสองครั้งจะเป็นอย่างไร

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

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