สตรีม HTTP Live Streaming

M3U8 / HLS

Apple เป็นคนคิดค้น อุปกรณ์ Apple ทุกเครื่องเล่นมันได้ และไม่มีเครื่องไหนบันทึกมันได้เลย

สรุปสั้น ๆ

ไฟล์ .m3u8 เป็นเพลย์ลิสต์ ไม่ใช่วิดีโอ: ข้อความไม่กี่กิโลไบต์ที่รายชื่อส่วนย่อยเล็ก ๆ นับพันชิ้นที่ต้องดึงมาตามลำดับ การออกแบบนี้คือเหตุผลที่ HLS เล่นได้ไร้ที่ติบนอุปกรณ์ Apple ทุกเครื่อง และทำไมการกด "บันทึกไฟล์นี้" ถึงได้แค่เอกสารข้อความ การดาวน์โหลดมันหมายถึงการดึงทุกส่วนย่อยและสร้างไฟล์ใหม่ที่ไม่เคยมีอยู่มาก่อน

30 กรกฎาคม 2569

เปิดได้เองโดย

iPhone · iPad เปิดได้
Mac เปิดได้
FoxDL เปิดได้

HLS เป็นข้อกำหนดของ Apple เองและได้รับการรองรับระดับสูงสุดทุกที่ — Safari, AVPlayer, AirPlay สิ่งที่ไม่มีการรองรับที่ไหนในระบบเลยคือการเปลี่ยนสตรีมสดให้กลายเป็นไฟล์บนดิสก์ การเล่นกับการเก็บรักษาเป็นปัญหาคนละเรื่องกันโดยสิ้นเชิง

ข้อเท็จจริง

ชื่อเต็ม HTTP Live Streaming; เพลย์ลิสต์เป็น M3U แบบ UTF-8
ประเภท โปรโตคอลสตรีมมิ่ง ส่งมาในรูปเพลย์ลิสต์ข้อความ
นามสกุล .m3u8 (เพลย์ลิสต์), .ts หรือ .m4s (ส่วนย่อยที่มันชี้ไป)
เผยแพร่ 2009 โดย Apple; กลายเป็นมาตรฐาน RFC 8216 ในปี 2017
ความยาวส่วนย่อยทั่วไป 2 ถึง 10 วินาทีต่อชิ้น — วิดีโอหนึ่งชั่วโมงคือไฟล์หลายร้อยถึงหลายพันไฟล์
เพลย์ลิสต์หลักกับเพลย์ลิสต์สื่อ เพลย์ลิสต์หลักบอกระดับคุณภาพ แต่ละระดับชี้ไปยังเพลย์ลิสต์สื่อของส่วนย่อยจริง
วิดีโอในส่วนย่อย H.264 หรือ HEVC บางครั้งเป็น AV1
สตรีมสด เพลย์ลิสต์ถูกดึงใหม่ทุกไม่กี่วินาทีและยาวขึ้นเรื่อย ๆ ตามที่การถ่ายทอดสดดำเนินต่อไป

สารบัญ ไม่ใช่หนังสือ

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

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

มันยังอธิบายสิ่งที่ทำให้คนแปลกใจได้ด้วย: ไม่มีไฟล์เดียวให้ครอบครองเลย ภาพยนตร์ที่คุณกำลังดูอยู่ไม่มีอยู่จริงในฐานะวัตถุชิ้นเดียวที่ไหนเลย มันคือชิ้นส่วนนับพันชิ้นและชุดคำสั่ง

ทำไมการบันทึกมันถึงได้แค่ไฟล์ข้อความ

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

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

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

การนำไฟล์ลงอุปกรณ์

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

  1. ให้เอนจินดาวน์โหลดจัดการส่วนย่อยให้

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

  2. เลือกไฟล์ตรงเมื่อมีให้

    หลายเว็บไซต์ให้ทั้ง HLS และ MP4 แบบต่อเนื่องธรรมดา MP4 คือคำขอเดียว ไฟล์เดียว ไม่ต้องประกอบใหม่ — เป็นตัวเลือกที่ดีกว่าเสมอเมื่อมีให้

  3. ยอมรับว่าบางอย่างเก็บไว้ไม่ได้

    สตรีมที่ป้องกันด้วย DRM — FairPlay, Widevine — ถูกเข้ารหัสตั้งแต่ต้นจนจบและถูกออกแบบมาให้ดาวน์โหลดไม่ได้ ไม่มีเครื่องมือใดเปลี่ยนสิ่งนั้นได้ และเครื่องมือที่อ้างว่าทำได้กำลังโกหกเรื่องบางอย่างอยู่

จุดที่การดาวน์โหลด HLS ผิดพลาดได้

ไฟล์ที่ไม่มีแถบเลื่อน

ส่วนย่อยที่ถูกต่อกันโดยไม่รีมักซ์จะได้ไฟล์ที่เล่นได้แต่ไม่มีดัชนี มันเล่นจากต้นและกระโดดไปไหนไม่ได้เลย การรีมักซ์คือการเขียนดัชนีที่แก้ปัญหานี้

สตรีมสดที่ไม่มีวันจบ

เพลย์ลิสต์สดไม่มีจุดจบ — มันเติบโตต่อไปเรื่อย ๆ การดาวน์โหลดมันคือการบันทึก และมันจะหยุดเมื่อคุณสั่งหยุด ไม่ใช่เมื่อไฟล์จบ

ลิงก์ที่ใช้ได้เมื่อวาน

ที่อยู่เพลย์ลิสต์มักถูกเซ็นชื่อและจำกัดเวลา .m3u8 ที่บันทึกไว้ตอนเช้ามักจะชี้ไปไม่เจออะไรเลยตอนบ่าย

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

คำถามเกี่ยวกับฟอร์แมตนี้

FoxDL ดาวน์โหลดสตรีม HLS (m3u8) ได้ไหม? ได้ สตรีม HLS จะถูกดึงทีละส่วนแล้วรีมักซ์รวมเป็น MP4 ไฟล์เดียว สิ่งที่เข้าคลังของคุณจึงเป็นไฟล์ปกติที่เล่น ย้าย หรือแชร์ได้ — ไม่ใช่โฟลเดอร์ของไฟล์ .ts เศษ ๆ ที่เข้าใจได้เฉพาะเครื่องเล่นเฉพาะทาง ทำไมช่อง IPTV ของฉันบัฟเฟอร์หรือเปิดไม่ได้? เกือบทั้งหมดเป็นปัญหาที่ผู้ให้บริการ ไม่ใช่ตัวแอป ลองเปิดช่องเดียวกันในเครื่องเล่นอื่นบนเครือข่ายเดียวกัน ถ้าล้มเหลวที่นั่นด้วย สตรีมนั้นตายไปแล้ว บัญชีหมดอายุ หรือคุณใช้จำนวนการเชื่อมต่อพร้อมกันที่แผงอนุญาตไว้หมดแล้ว การปิดอุปกรณ์อื่นที่กำลังเล่นอยู่มักจะช่วยแก้ได้ ดาวน์โหลดไฟล์จากหน้าเว็บยังไง? เปิดหน้าเว็บในเว็บเบราว์เซอร์ในตัวของ FoxDL สื่อที่เล่นได้และไฟล์ที่ดาวน์โหลดได้จะถูกตรวจจับขณะคุณเลื่อนดู และ PDF, ZIP กับเอกสารจะเข้าคลังได้ในแตะเดียว เบราว์เซอร์นี้มีไว้เพื่อเข้าถึงไฟล์ของคุณเองและลิงก์ที่คุณมีสิทธิ์เข้าถึง

ที่มาของข้อเท็จจริงเหล่านี้

ฟอร์แมตใกล้เคียง

คลังไฟล์ของคุณ อยู่รวมกันในที่เดียวสักที

ดาวน์โหลดฟรี ไม่ต้องมีบัญชี ไม่ต้องสมัคร ไม่ต้องยื่นข้อมูลอะไรให้ใคร

ดาวน์โหลดบน App Store