แยกคำบรรยายจากวิดีโอ
การรันครั้งแรกจะดาวน์โหลดเอนจินคำบรรยาย — ประมาณ 31 MB ให้บริการโดยเว็บนี้และแคชโดยเบราว์เซอร์หลังจากนั้น วิดีโอเองไม่เคยออกจากแท็บนี้
หน้านี้รับไฟล์วิดีโอแล้วคืนแทร็กคำบรรยายที่มีอยู่แล้วในไฟล์นั้นออกมาเป็นไฟล์แยกกัน แทร็กละหนึ่งไฟล์ ตั้งชื่อตามรหัสภาษาของแทร็ก ไฟล์ Matroska ที่มีแทร็กอังกฤษแบบ SDH แทร็กจีน และแทร็กภาพ PGS จะออกมาเป็นสามไฟล์ คือ .srt หนึ่งไฟล์ .srt อีกหนึ่งไฟล์ และ .sup หนึ่งไฟล์ ตัวคอนเทนเนอร์ถูกแยกสตรีมออกจากกัน (demux) ไม่ได้เข้ารหัสใหม่ แทร็กข้อความจึงถูกคัดลอกออกมาเป็นไบต์ที่มีอยู่ในไฟล์เดิม ไม่ได้พิมพ์ใหม่จากหน้าจอและไม่ได้จัดเวลาใหม่
งานทั้งหมดเกิดในแท็บ เบราว์เซอร์อ่านวิดีโอด้วย ffmpeg ที่คอมไพล์เป็น WebAssembly และเว็บไซต์นี้โฮสต์เอง คำขอเครือข่ายเดียวคือตัวเอนจิน ประมาณ 31 MB ในการใช้ครั้งแรก แล้วเบราว์เซอร์แคชไว้ ตัววิดีโอไม่ถูกส่งไปที่ใด ซึ่งเป็นกฎเดียวกับทุกหน้าของเว็บนี้ คำบรรยายที่เผาเข้าไปในภาพแยกออกมาไม่ได้ และไม่มีเครื่องมือใดทำได้ เพราะไม่มีแทร็กให้อ่าน คำเหล่านั้นเป็นพิกเซล ถ้าไฟล์ไม่มีสตรีมคำบรรยายเลย หน้าจะบอกเช่นนั้นแทนที่จะสร้างไฟล์ว่าง หน้ารายการทุกสตรีมก่อนเขียนอะไรลงไป ทั้งดัชนี codec ภาษา ชื่อ และสถานะ default หรือ forced แทร็กที่อยู่ในคอนเทนเนอร์ของตัวเองจะคงรูปแบบเดิม ASS ยังเป็น ASS WebVTT ยังเป็น WebVTT ส่วนแทร็กที่ codec ไม่มีไฟล์เดี่ยว (เช่น mov_text ใน MP4) จะถูกเข้ารหัสใหม่เป็น SRT และการ์ดผลลัพธ์จะบอกไว้ แทร็กภาพออกมาเป็นภาพ PGS เป็น .sup และ DVD เป็น .sub เพราะภาพคือสิ่งที่อยู่ในไฟล์จริง ๆ ถ้าต้องการข้อความ ให้นำ .sup ไปที่หน้าของ PGS
คำถามที่พบบ่อย
ไฟล์วิดีโอชนิดใดบ้างที่วางในหน้านี้ได้
MKV, MP4, M4V, AVI, MOV, TS, WebM, WMV, FLV, MPG และ OGV รายการนี้อันที่จริงคือรายการ demuxer ที่ ffmpeg เวอร์ชันที่บันเดิลมามี ไม่ใช่รายการ codec วิดีโอ ไม่ว่าข้างในคอนเทนเนอร์จะเป็นอะไร แทร็กคำบรรยายก็เป็นสตรีมชนิดเดียวกัน ไฟล์ที่นามสกุลแปลกแต่เนื้อในเป็น Matroska ปกติมักยังใช้ได้ เพราะ demuxer อ่านส่วนหัวของไฟล์ไม่ใช่อ่านชื่อ ส่วนไฟล์ที่ดาวน์โหลดมาไม่ครบหรือเป็น fragmented มักใช้ไม่ได้ เพราะไม่มีดัชนีให้ไล่
วิดีโอของฉันถูกส่งออกจากเครื่องขณะที่หน้านี้กำลังอ่านหรือไม่
ไม่ คำขอเดียวที่เกิดขึ้นคือดาวน์โหลดเอนจิน ffmpeg ประมาณ 31 MB ซึ่งเสิร์ฟจากเว็บไซต์นี้และเบราว์เซอร์แคชไว้หลังใช้ครั้งแรก วิดีโอของคุณถูกเมานต์เข้าไฟล์ระบบเสมือนของเอนจินในแท็บและอ่านจากที่นั่น ไม่เคยถูกเขียนลงในเนื้อหาคำขอ ตรวจสอบได้ในแผง Network ระหว่างประมวลผลไฟล์จะไม่มีคำขอใดบรรทุกไฟล์นั้น คุณสมบัตินี้คือเหตุผลที่หน้านี้มีอยู่ เพราะตัวแยกไฟล์ส่วนใหญ่ต้องอัปโหลดก่อน และวัสดุที่ติดข้อกำหนดทางกฎหมายหรือทางการแพทย์อัปโหลดไม่ได้
ทำไมแทร็กคำบรรยายในวิดีโอถึงออกมาเป็นไฟล์ .sup แทน .srt
เพราะแทร็กนั้นถูกเก็บเป็นภาพไม่ใช่ข้อความ สตรีม PGS (codec hdmv_pgs_subtitle) คือลำดับของภาพ และการแยกสตรีมภาพออกมาอย่างซื่อตรงก็คือสตรีมภาพ นั่นคือ .sup ซึ่งเป็นสิ่งที่เครื่องเล่นและโปรแกรมตัดต่อคำบรรยายคาดหวัง การเปลี่ยนเป็นข้อความหมายถึงการอ่านตัวอักษรในแต่ละภาพ ซึ่งเป็นหน้าอื่นที่มีคำถามเรื่องภาษาและขั้นตอนตรวจทาน ตัวแยกไฟล์ไม่แต่งข้อความที่ไม่เคยอ่านขึ้นมา
แทร็กที่รูปแบบไม่มีไฟล์เดี่ยวอย่าง mov_text ถูกจัดการอย่างไร
แทร็กนั้นจะถูกเข้ารหัสใหม่เป็น SRT และผลลัพธ์ถูกทำเครื่องหมายว่าเข้ารหัสใหม่ กรณีพบบ่อยคือ mov_text ซึ่งเป็น codec คำบรรยายที่อยู่ใน MP4 และไม่มีรูปแบบไฟล์ของตัวเอง ถ้าคัดลอกสตรีมออกมาตรง ๆ จะได้ไบต์ที่ไม่มีโปรแกรมใดเปิดได้ การเข้ารหัสใหม่ไม่ใช่การทำแบบไม่สูญเสียข้อมูล สไตล์และการวางตำแหน่งที่ mov_text อาจพกมาจะไม่รอด จึงถูกลงเป็นรายการสูญหาย ไม่ได้นำเสนอเป็นสำเนาที่ไม่ถูกแตะต้อง
ไฟล์ที่แยกได้หลายไฟล์ตั้งชื่ออย่างไรเมื่อวิดีโอมีหลายแทร็ก
ตั้งตามชื่อวิดีโอและรหัสภาษาของแทร็ก ไฟล์ชื่อ documentary.mkv ที่มีแทร็กอังกฤษจะได้ documentary.eng.srt เมื่อสองแทร็กใช้ภาษาเดียวกัน เช่นแทร็กอังกฤษปกติกับแทร็กอังกฤษแบบ SDH ซึ่งพบบ่อย ไฟล์ที่สองจะเป็น documentary.eng-2.srt ไม่ทับไฟล์แรก แทร็กที่ไม่มีแท็กภาษาจะใช้ดัชนีสตรีมแทน จึงยังแยกออกจากกันได้ ถ้าได้มากกว่าหนึ่งไฟล์ หน้าจะรวมให้เป็น zip เดียว เพราะเบราว์เซอร์บล็อกการเริ่มดาวน์โหลดหลายไฟล์พร้อมกันจากหน้าเดียว
ทำไมการแยกคำบรรยายจากวิดีโอครั้งแรกจึงนานกว่าครั้งถัดไป
ครั้งแรกต้องดาวน์โหลดเอนจิน ffmpeg ประมาณ 31 MB แถบความคืบหน้าครอบคลุมการดาวน์โหลดนั้นแล้วจึงเป็นการแยกไฟล์ เบราว์เซอร์แคชเอนจินไว้ ครั้งต่อไปในหน้าเดิมจึงเริ่มเกือบจะทันที และยังเป็นเช่นนั้นหลังรีโหลดหากแคชไม่ถูกล้าง เอนจินถูกเสิร์ฟเป็นสี่ชิ้นเพราะแพลตฟอร์มโฮสต์ปฏิเสธไฟล์เดี่ยวที่เกิน 25 MiB และหน้าประกอบชิ้นส่วนในหน่วยความจำก่อนเริ่ม ซึ่งเป็นการรอในรอบแรกเช่นกัน
ยกเลิกการแยกคำบรรยายจากวิดีโอกลางทางได้หรือไม่
ได้ ปุ่มยกเลิกจะหยุดการแยกที่กำลังทำงานและยุติ worker ที่ทำอยู่ทันที ไฟล์ใหญ่จึงไม่กินคอร์ทิ้งไว้หลังคุณตัดสินใจไม่รอ การยกเลิกไม่ใช่ข้อผิดพลาด รายการกลับไปสู่สถานะที่ลองใหม่ได้ และรอบถัดไปเริ่ม worker ใหม่ ไม่มีไฟล์บางส่วนถูกเสนอให้ดาวน์โหลด เพราะไฟล์คำบรรยายที่เขียนค้างครึ่งแต่ดูเหมือนสมบูรณ์นั้นแย่กว่าไม่มีไฟล์เลย