ทำให้ไฟล์ MKV เหมาะสมสำหรับการสตรีมด้วย ffmpeg (หรือ avconv) - จะย้ายเมทาดาทาทั้งหมดไปยังจุดเริ่มต้นของไฟล์ได้อย่างไร


1

คำถามของฉันฉันคิดว่ามันค่อนข้างง่าย ...

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

ดังนั้นฉันจะย้ายข้อมูลเมตาทั้งหมดไปยังจุดเริ่มต้นของไฟล์ในขณะที่เข้ารหัสเพื่อให้โปรแกรมเล่นจะรู้ว่าไฟล์นั้นนานแค่ไหนโดยไม่ต้องมีข้อมูลทั้งหมด คุณสามารถทำได้ด้วยmp4รูปแบบโดยใช้-movflags faststartแต่จะทำmkvอย่างไร?

ฉันขอโทษถ้าคำถามนี้ถูกถามและตอบที่อื่นฉันไม่สามารถนึกถึงคำหลักที่ดีกว่าที่ฉันเคยใช้และคำที่ฉันใช้นั้นไม่ได้ผล

คำตอบ:


3

รากฐาน Matroska นำเสนอเครื่องมือmkcleanที่ทำงานคล้ายกับ qt-faststart สำหรับ MOV / MP4

ไวยากรณ์:

mkclean in.mkv out.mkv

สิ่งนี้จะสร้างดัชนีตัวชี้นำใหม่ เพื่อรักษาความหมายดั้งเดิม

mkclean --keep-cues in.mkv out.mkv

FFmpeg ยังสามารถทำสิ่งนี้ด้วยการคาดเดาในส่วนของผู้ใช้

ffmpeg -i in.mkv -c copy -reserve_index_space 50k out.mkv 

โดยที่reserve_index_spaceค่าเป็นไบต์คือขนาดที่ต้องการสำหรับดัชนี 50kไบต์เป็นขนาดที่แนะนำสำหรับสื่อบันทึก 1 ชั่วโมง


ขอบคุณมาก! ก่อนที่ฉันจะยอมรับสิ่งที่เป็นประโยชน์ / ข้อเสียของการรักษาตัวชี้นำกับไม่? มันเป็นหนึ่งในสิ่งที่ฉันต้องถามฉันจะไม่สังเกตเห็นหรือไม่? :)
Fredrick Brennan

1
นั่นจะเป็นคำตอบของฉัน มันจะทำให้ตัวชี้นำระบุถ้าสร้างใหม่
Gyan

ตกลงฉันเข้าใจเหตุผลที่เกิดขึ้นนี้เป็นเพราะตัวชี้นำทั้งหมดเขียนขึ้นในตอนท้ายและฉันต้องการพวกเขาที่ด้านหน้า mkcleanจะย้ายตัวชี้นำ ถ้าไม่มี--keep-cuesมันจะสร้างสัญญาณใหม่และด้วยมันจะรักษาสัญญาณปัจจุบันที่สร้างขึ้นโดย ffmpeg ... แต่เนื่องจากตัวชี้นำไม่ใช่บท ... ไม่แตกต่างกันมากนัก แต่อาจทำให้ตัวชี้นำใช้เวลา CPU และการเข้าถึงดิสก์น้อยกว่า งอกใหม่พวกเขา ขอขอบคุณสำหรับความช่วยเหลือของคุณอีกครั้ง: D
Fredrick Brennan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.