Subtitle Sync Shifter: แก้ซับไทเทิล SRT/VTT ที่ซับไม่ตรงเสียง ในไม่กี่วินาที
วิธีแก้ซับไทเทิลที่เดินช้ากว่า/เร็วกว่าหนังด้วย Subtitle Sync Shifter — เลื่อน timestamp SRT/VTT ทั้งไฟล์แบบ fixed offset หรือ rescale ทั้งไทม์ไลน์ ทำงานในเบราว์เซอร์ 100% ฟรี
เครื่องมือออนไลน์ฟรี
เครื่องมือแก้ซับไม่ตรงเวลา
เลื่อน timestamp ของไฟล์ซับ SRT/VTT ทั้งหมดด้วย offset คงที่ หรือปรับสเกลเชิงเส้น แก้ปัญหาซับไม่ตรงเวลา ทำงานในเบราว์เซอร์ 100%
Table of Contents
ใครที่ชอบดูหนัง/ซีรีส์พร้อมซับ คงเคยเจอปัญหาเดียวกันหมด คือ ซับไม่ตรงเสียง — ทุกคนพูดจบไปแล้วซับค่อยขึ้น หรือแย่กว่านั้นคือซับขึ้นก่อนหน้าที่จะพูด เฉลยบทสนทนาไปหลายวินาที สาเหตุมีหลากหลาย ทั้งไฟล์ซับที่ทำมาสำหรับเวอร์ชันหนังคนละอัน, ไฟล์จาก Blu-ray region ต่างกัน, หรือปัญหาคลาสสิกอย่าง frame rate ไม่ตรงกัน
Subtitle Sync Shifter คือเครื่องมือที่แก้ปัญหานี้ได้ในไม่กี่วินาที แค่วางไฟล์ SRT หรือ WebVTT (VTT) ลงไป บอกว่าซับคลาดไปเท่าไร แล้วเครื่องมือจะแก้ timestamp ทุกบรรทัดในไฟล์ให้อัตโนมัติ ถ้าซับช้า/เร็วสม่ำเสมอทั้งไฟล์ ใช้ fixed offset ค่าเดียวจบ แต่ถ้าซับเริ่มต้นตรงแล้วค่อย ๆ เพี้ยนสะสมไปเรื่อย ๆ จนท้ายเรื่องหลุดไปเป็นวินาที ต้องใช้ linear rescale ที่ใช้ 2 anchor points ยืดไทม์ไลน์ทั้งไฟล์กลับเข้าที่ และที่สำคัญ ทุกอย่างประมวลผลในเบราว์เซอร์ ไฟล์ของคุณไม่ถูกอัปโหลดไปไหนเลย
บทความนี้จะพาไปดูว่า fixed offset กับ linear rescale ต่างกันอย่างไร ควรใช้ตอนไหน พร้อมวิธีใช้งานทีละขั้น และ use case จริงที่เครื่องมือนี้ช่วยประหยัดเวลาได้เยอะ
ทำไมต้องใช้ Subtitle Sync Shifter
- ไม่ต้องติดตั้งโปรแกรม — โปรแกรมแต่งซับเต็มรูปแบบนั้นทรงพลังแต่หนักและเยอะพิธีกรรม เครื่องมือนี้เปิดในเบราว์เซอร์ได้เลย แก้ไฟล์ ดาวน์โหลด จบ
- มี 2 โหมดแก้ให้เลือก — ปัญหาที่พบบ่อยที่สุดคือ delay คงที่ แต่บางไฟล์ต้อง rescale ไทม์ไลน์ มีทั้งสองโหมดในที่เดียวไม่ต้องไปคำนวณเองใน spreadsheet
- จัดการฟอร์แมตให้อัตโนมัติ — detect เองว่าไฟล์เป็น SRT หรือ WebVTT แล้วเขียน timestamp กลับแบบเดิม คือ SRT ใช้ลูกน้ำ (00:00:05,000) ส่วน VTT ใช้จุด (00:00:05.000) player เลยเปิดไฟล์ได้ไม่มีปัญหา
- ความเป็นส่วนตัว 100% — ทุกการคำนวณเกิดขึ้นใน JavaScript บนเครื่องคุณ ไม่มีการอัปโหลด สำคัญมากถ้าเป็นซับของงานที่ยังไม่เปิดเผย
- เห็นผลทันที — parse cue แล้วโชว์จำนวน cue และ preview ให้เช็กก่อนว่าไฟล์ถูกอ่านถูกต้อง ก่อนกด shift จริง
- ฟรีและเร็ว — ไม่มีสมัครสมาชิก ไม่มี watermark ไม่มีคิวรอ ไฟล์ซับหนังสองชั่วโมงก็ shift เสร็จในเสี้ยววินาที
ฟีเจอร์หลัก
| ฟีเจอร์ | ทำอะไร |
|---|---|
| Fixed offset shift | เลื่อน timestamp ทุกตัวเร็วขึ้น/ช้าลงเท่ากันหมด หน่วยเป็นมิลลิวินาทีหรือวินาที |
| Linear rescale | ยดหรือบีบไทม์ไลน์ทั้งไฟล์ด้วย 2 anchor points (เวลาเดิม → เวลาที่ถูกต้อง) |
| SRT / VTT auto-detect | อ่าน header และรูปแบบ cue แล้ว output ฟอร์แมตเดิมที่พบ |
| รองรับค่าลบ | เลื่อนซับให้เร็วขึ้น (ขึ้นก่อนเสียง) ได้เหมือนกับเลื่อนให้ช้าลง |
| Cue preview และสถิติ | ยืนยันว่าไฟล์ parse ผ่าน และบอกจำนวน cue ที่พบ |
| ประมวลผลในเบราว์เซอร์ | ไม่อัปโหลด ไม่ต้องสมัคร โหลดหน้าเว็บแล้วใช้ offline ต่อได้ |
บางฟีเจอร์น่าดูเชิงลึกเพิ่ม:
- offset ใส่ทศนิยมได้ — ใส่ -1.5s คือเลื่อนทุก timestamp ไปข้างหน้า 1 วินาทีครึ่ง ความละเอียดระดับนี้สำคัญตอนจับซับให้เข้ากับบทพูดบรรทัดใดบรรทัดหนึ่ง
- anchor ของ rescale เป็น timestamp ไม่ใช่เปอร์เซ็นต์ — เราอธิบายการแก้ตามที่เจอจริง เช่น "ที่นาทีที่ 1 ซับควรอยู่ที่ 1:02" และ "ที่นาทีที่ 40 ซับควรอยู่ที่ 40:10.5" แล้วเครื่องมือคำนวณ scale factor ให้เอง
วิธีใช้งาน
- เปิดเครื่องมือ — เข้า Subtitle Sync Shifter ในเบราว์เซอร์ ไม่ต้องติดตั้ง ไม่ต้องสมัครอะไร
- ใส่ไฟล์ซับ — วางเนื้อหา SRT หรือ VTT ลงในช่อง input หรือเลือกไฟล์จากเครื่อง เครื่องมือจะ detect ฟอร์แมตเองและบอกจำนวน cue ที่พบ
- เลือกโหมดแก้ — ใช้โหมด Shift ถ้าซับคลาดคงที่ ใส่ค่าเป็นมิลลิวินาทีหรือวินาที (ติดลบเพื่อเลื่อนซับให้เร็วขึ้น) หรือใช้ Rescale ถ้า timing drift แล้วกรอก anchor สองคู่
- Apply แล้วดู preview — timestamp ที่แก้แล้วจะขึ้นในพรีวิวทันที แนะนำให้สุ่มเช็ก cue แรก cue กลาง และ cue สุดท้ายเทียบกับโน้ตของเรา
- ดาวน์โหลดไฟล์ที่แก้แล้ว — เซฟไฟล์ซับไว้ข้างไฟล์หนัง โดยใช้ชื่อไฟล์ให้ตรงกัน player ส่วนใหญ่จะหยิบไปใช้เองอัตโนมัติ
Fixed Offset กับ Linear Rescale ต่างกันอย่างไร
การเลือกโหมดให้ถูกคือหัวใจของการแก้ซับให้จบในไม่กี่นาที มาดูกันว่าแต่ละโหมดทำอะไรกันแบบชัด ๆ
Fixed offset คือการบวก (หรือลบ) เวลาเท่ากันไปทุก timestamp ในไฟล์ เหมาะเมื่อซับทั้งไฟล์คลาดสม่ำเสมอ — ทุกซับช้าเป๊ะ 2 วินาที หรือเร็วเป๊ะ 500 มิลลิวินาที เคสนี้เจอบ่อยมากในความเป็นจริง เช่น ไฟล์ซับถูกทำมาสำหรับเวอร์ชันหนังคนละอัน, รอบถ่ายทอดสดมีภาพเปิดรายการเพิ่มมา, หรือไฟล์ export มาพร้อม delay ตั้งต้น แก้ด้วยตัวเลขค่าเดียวจบทั้งไฟล์
Linear rescale แก้ปัญหาที่ลึกกว่านั้น คือ timing drift แบบสะสม สมมติซับชุดแรกตรงเป๊ะ แต่พอถึงช่วงสองชั่วโมงท้ายเรื่อง ซับช้าไปห้าวินาที ไม่มี offset ค่าเดียวที่แก้ทั้งสองจุดได้พร้อมกัน เพราะ error โตขึ้นตามเวลา สาเหตุคลาสสิกคือ frame rate ไม่ตรง — ไฟล์ซับจับเวลากับหนัง 23.976 fps แต่ไฟล์ที่เปิดเป็นเวอร์ชัน 25 fps ผลต่างเสี้ยววินาทีต่อเฟรมสะสมกันเป็นพันเป็นหมื่นเฟรมจนกลายเป็นหลายวินาที
กลไก rescale ใช้ anchor สองจุด เราบอกเครื่องมือว่า "cue ที่ 00:01:00,000 ควรไปอยู่ที่ 00:01:02,000" (anchor A) และ "cue ที่ 00:40:00,000 ควรไปอยู่ที่ 00:40:10,500" (anchor B) เครื่องมือคำนวณ scale factor จากอัตราส่วนของการแก้สองจุด — โดยประมาณคือ scale = (to2 − to1) / (from2 − from1) — แล้ว map timestamp ทุกตัวผ่านฟังก์ชันเชิงเส้นนี้ พูดง่าย ๆ คือ ยดหรือบีบไทม์ไลน์ทั้งเส้นให้จุดแก้ทั้งสองไปตกอยู่ตรงที่ถูกต้องเป๊ะ และทุกจุดระหว่างนั้นไปตกตามสัดส่วน
กฎง่าย ๆ ในทางปฏิบัติ: เลือก anchor ใกล้ต้นไฟล์จุดหนึ่ง และใกล้ท้ายไฟล์อีกจุด แล้ววัดแต่ละจุดให้แม่นที่สุด (pause ที่บทพูดเด่น ๆ แล้วจด timestamp ทั้งสองค่า) anchor สองจุดที่ห่างกันพอและแม่นพอ จะได้ scale ที่แม่นทั้งไฟล์ ถ้า anchor สองจุดอยู่ใกล้กันเกิน error การวัดจะถูกขยายไปทั้งไฟล์
Use Case ในการใช้งานจริง
ซับเพี้ยนเพราะ frame rate ไม่ตรง (23.976 vs 25 fps)
โหลดซับที่ทำสำหรับ Blu-ray 23.976 fps มา แต่ไฟล์หนังที่มีเป็นเวอร์ชัน PAL 25 fps อาการคือซับช่วงแรกยังโอเคแล้วค่อย ๆ ช้าขึ้นเรื่อย ๆ วัด cue ต้นเรื่องหนึ่งจุด ท้ายเรื่องหนึ่งจุด ใส่เป็น anchor pair ในโหมด Rescale แล้วทั้งไฟล์จะกลับมา sync เฉย ๆ เคสนี้ตัวเดียวก็น่าจะเป็นที่มาของการ search หา "ซับไม่ตรง" ในอินเทอร์เน็ตส่วนใหญ่แล้ว
Sync ซับ fan-sub หรือซับชุมชน
ซับจากกลุ่ม fan-sub มักทำสำหรับ release ใด release หนึ่งเป็นหลัก ไม่ว่าจะตัดต่อคนละเวอร์ชัน มี opening เพิ่ม หรือตัดโลโก้สถานีออก ถ้าไฟล์หนังที่เรามีเริ่มเนื้อหาช้ากว่าเวอร์ชันที่ทำซับไว้สองวินาที แค่ fixed offset รอบเดียวก็กลับมาตรงเป๊ะ เช็ก cue หนึ่งสองจุด จดผลต่าง เลื่อน จบ
แก้ซับที่ drift สะสม
ไฟล์ rip เก่าหรือ capture ที่ re-encode มาแล้วบางไฟล์เดินความเร็วเพี้ยนนิด ๆ อาการเบา ๆ ตอนแรก — คลาดครึ่งวินาทีตอนครึ่งชั่วโมง และสองวินาทีตอนจบเรื่อง การ shift คงที่แก้ไม่ได้เพราะ error เปลี่ยนตามเวลา นี่คืองานของ linear rescale สอง anchor โดยเฉพาะ
ใช้ซับเดิมกับ cut คนละเวอร์ชัน
Director's cut เพิ่มฉากต้นเรื่องไปหลายนาที หรือรอบฉายทีวีตัดฉากออก แทนที่จะนั่ง re-time ซับหลายร้อย cue ในโปรแกรมเต็ม ใช้ shift หรือ rescale ไฟล์เดิมแล้วได้ผลลัพธ์ที่ใช้งานได้จริง โดยเฉพาะหนังที่บทพูดแน่น เพราะขอบเขตของ cue ยังอยู่ที่เดิมแม้ภาพรอบ ๆ จะเปลี่ยน
Best Practices
- วินิจฉัยก่อนแก้เสมอ — จด cue ต้นเรื่องหนึ่งจุดกับท้ายเรื่องหนึ่งจุดเทียบกับวิดีโอ ถ้าคลาดเท่ากันทั้งสองจุด ใช้ fixed offset ถ้า error ต่างกัน ใช้ rescale
- ใช้ offset ที่เล็กที่สุดที่พอดี — ถ้า delay จริงคือ 1.8 วินาทีไม่ใช่ 2 วินาทีเป๊ะ เชื่อค่าที่วัดได้ การปัดเลขเป็นค่าสวย ๆ เป็นสาเหตุยอดฮิตของอาการ "เกือบตรงแต่ไม่หาย"
- anchor ให้แม่นและห่างกันพอ — anchor A ควรอยู่ในไม่กี่นาทีแรก anchor B ใกล้ท้ายไฟล์ ความแม่นของทั้งสองจุดคือสิ่งที่ทำให้การ map เชิงเส้นแม่นทั้งไฟล์
- เก็บไฟล์ต้นฉบับไว้ — ดาวน์โหลดไฟล์ที่แก้แล้วเป็นชื่อใหม่หรือสำรองไว้ก่อน จะได้ไม่เสียซับต้นฉบับถ้าแก้พลาด
- เช็กสามจุดหลังแก้ — ดู cue แรก cue กลาง และ cue สุดท้ายเทียบกับวิดีโอ ถ้าสามจุดตรงหมด ทั้งไฟล์ตรงหมด
- รักษาฟอร์แมตให้ตรงตามมาตรฐาน — เครื่องมือคงฟอร์แมต SRT/VTT ให้อัตโนมัติ แต่ถ้าแก้ไฟล์เองมือ ให้ SRT ใช้ลูกน้ำและ VTT ใช้จุดในส่วนมิลลิวินาที ไม่งั้น player บางตัวจะเงียบและไม่ยอมเปิดไฟล์
พร้อมแก้ซับของคุณหรือยัง
เลิกนั่ง scrub วิดีโอไปมากับซับที่ไม่ยอมให้ความร่วมมือ เปิด Subtitle Sync Shifter ใส่ไฟล์ SRT หรือ VTT ใช้ offset หรือ rescale แล้วดาวน์โหลดซับที่ sync เป๊ะ — ใช้เวลาไม่ถึงนาที ทำงานในเบราว์เซอร์ทั้งหมด และฟรี
เครื่องมือที่เกี่ยวข้องที่คุณอาจสนใจ:
- Subtitle Format Converter — แปลงไฟล์ซับระหว่าง SRT, VTT, ASS/SSA และฟอร์แมตซับอื่น ๆ
- Timezone Converter — แปลงเวลาข้าม timezone สำหรับตารางฉายหรือนัดดูหนังพร้อมกัน
- Unix Timestamp Converter — แปลง epoch timestamp สำหรับ log และ script ต่าง ๆ
Happy syncing!
คำถามที่พบบ่อย
ถ: ไฟล์ซับของฉันถูกอัปโหลดขึ้นเซิร์ฟเวอร์หรือเปล่า?
ตอบ: ไม่ Subtitle Sync Shifter parse และแก้ timestamp ทั้งหมดในเบราว์เซอร์ด้วย JavaScript ไฟล์ไม่เคยออกจากเครื่องคุณ และถ้าโหลดหน้าเว็บไว้แล้วแม้ offline ก็ยังใช้ได้
ถ: เลื่อนซับให้เร็วขึ้น (ขึ้นก่อนเสียง) ได้ไหม หรือเลื่อนได้แค่ช้าลง?
ตอบ: ได้ ใส่ค่าติดลบ เช่น -1500 มิลลิวินาที ทุก timestamp จะเลื่อนไปข้างหน้า 1.5 วินาที ส่วนค่าบวกคือดันซับให้ช้าลง
ถ: ควรใช้ linear rescale เมื่อไหร่ แล้วต่างจาก fixed offset อย่างไร?
ตอบ: ใช้ fixed offset เมื่อทุกซับคลาดเท่ากันหมด ใช้ linear rescale เมื่อ error เปลี่ยนตามเวลา เช่น ซับต้นเรื่องเกือบตรงแต่ท้ายเรื่องช้าไปหลายวินาที อาการแบบนี้มักมาจาก frame rate ไม่ตรง (23.976 fps กับ 25 fps)
ถ: เครื่องมือแปลงไฟล์ SRT เป็น VTT หรือกลับกันให้ไหม?
ตอบ: ไม่ เครื่องมือ detect ว่า input เป็น SRT หรือ WebVTT แล้ว output เป็นฟอร์แมตเดิม พร้อมคงตัวคั่นมิลลิวินาทีให้ถูกต้อง (SRT ใช้ลูกน้ำ VTT ใช้จุด) ถ้าต้องการแปลงฟอร์แมตจริง ให้ใช้ Subtitle Format Converter
ถ: ควรเลือก anchor points แบบไหนสำหรับ rescale ดี?
ตอบ: เลือก cue ที่จับเวลาได้แม่นสองจุด จุดหนึ่งในไม่กี่นาทีแรกของไฟล์ อีกจุดใกล้ท้ายไฟล์ จากนั้นจด timestamp ในไฟล์ซับ และ timestamp ที่บรรทัดนั้นควรขึ้นในวิดีโอของเรา anchor ที่ห่างกันพอจะช่วยให้เครื่องมือได้ scale factor ที่แม่นสำหรับทั้งไทม์ไลน์