M3U
ไฟล์ข้อความที่ไม่มีวิดีโออยู่เลย และคือสิ่งที่การสมัคร IPTV เป็นอยู่จริง ๆ
M3U คือรายการที่อยู่สื่อแบบข้อความล้วนพร้อมชื่อกำกับไว้ มันไม่มีเสียงหรือวิดีโอเลยแม้แต่น้อย เมื่อผู้ให้บริการ IPTV ขายการสมัครสมาชิกให้คุณ สิ่งที่คุณได้รับคือลิงก์ไปยังไฟล์แบบนี้หนึ่งไฟล์ — รายชื่อช่อง โลโก้ กลุ่ม และที่อยู่สตรีม ที่เครื่องเล่นแปลงให้กลายเป็นผังรายการ
30 กรกฎาคม 2569
เปิดได้เองโดย
ไม่มีอะไรใน iOS หรือ macOS อ่าน M3U เป็นเพลย์ลิสต์ได้ การแตะไฟล์นี้จะแสดงกำแพงข้อความ มันไม่ใช่ฟอร์แมตสื่อ และไม่มีระบบไหนจะปฏิบัติกับมันแบบนั้นได้เลย — มันต้องการแอปที่เข้าใจว่ารายการนี้มีไว้ *เพื่ออะไร*
ข้อเท็จจริง
| ชื่อเต็ม | MP3 URL หรือ Moving Picture Experts Group Audio Layer 3 Uniform Resource Locator |
|---|---|
| ประเภท | เพลย์ลิสต์ — รายการที่อยู่ ไม่มีสื่อ |
| นามสกุล | .m3u (การเข้ารหัสข้อความใดก็ได้), .m3u8 (UTF-8) |
| เผยแพร่ | ปลายยุค 1990 โดย Fraunhofer สำหรับ Winamp; ไม่เคยเป็นมาตรฐานทางการ |
| โครงสร้าง | บรรทัด #EXTINF ตั้งชื่อแต่ละรายการ ตามด้วยที่อยู่ของมัน |
| ส่วนขยายสำหรับ IPTV | tvg-id, tvg-name, tvg-logo, group-title — เพิ่มเข้ามาตามธรรมเนียม ไม่ใช่ตามข้อกำหนด |
| สิ่งที่ที่อยู่เหล่านั้นชี้ไป | มักเป็นเพลย์ลิสต์ HLS หรือสตรีม MPEG-TS บางครั้งเป็นไฟล์ธรรมดา |
| ขนาดทั่วไปของผู้ให้บริการ | ตั้งแต่ไม่กี่ร้อย KB ไปจนถึงเกิน 200 MB สำหรับลิสต์ที่มีหลายแสนช่อง |
รายชื่อและที่อยู่
ฟอร์แมตนี้เรียบง่ายที่สุดเท่าที่ฟอร์แมตหนึ่งจะเป็นได้ แต่ละรายการมีสองบรรทัด: บรรทัดหนึ่งขึ้นต้นด้วย #EXTINF ที่ตั้งชื่อสิ่งนั้น และอีกบรรทัดคือที่อยู่ที่มันอยู่ ทุกอย่างอื่น — โลโก้ หมายเลขช่อง กลุ่มที่กลายเป็นหมวดหมู่ในเครื่องเล่น — มาทีหลังในฐานะแอตทริบิวต์ที่ผู้คนตกลงกันจะใส่ในบรรทัด #EXTINF ไม่มีหน่วยงานมาตรฐานใดรับรองสิ่งใดเลยสักอย่าง
ความไม่เป็นทางการนั้นคือเหตุผลที่ไฟล์ M3U แตกต่างกันมาก ผู้ให้บริการรายหนึ่งเขียน group-title="Sports" อีกรายเขียน group-title="SPOR" รายที่สามละไว้เลยและคาดหวังให้เครื่องเล่นเดาเอาเอง เครื่องเล่นที่จัดการ IPTV ได้ดีก็คือเครื่องเล่นที่เจอไฟล์ M3U เขียนแย่ ๆ มามากเป็นส่วนใหญ่
ความสับสนกับ M3U8 ควรทำความเข้าใจให้ชัดเจน: 8 หมายถึงการเข้ารหัสข้อความแบบ UTF-8 เท่านั้น ไม่มีอะไรมากกว่านั้น เพลย์ลิสต์ HLS ทุกอันเป็น M3U8 แต่ไม่ใช่ M3U8 ทุกอันจะเป็น HLS — รายชื่อช่อง IPTV ที่บันทึกเป็น UTF-8 ก็เป็น .m3u8 เช่นกันและไม่เกี่ยวข้องกับการสตรีมแบบแบ่งส่วนเลย
ทำไมขนาดจึงเป็นปัญหาทั้งหมด
ลิสต์ของผู้ให้บริการเติบโตในแบบที่ฟอร์แมตนี้ไม่เคยคาดคิด ไฟล์ที่เคยมีแค่ไม่กี่ร้อยบรรทัดในปี 2010 ตอนนี้จากผู้ให้บริการรายใหญ่กลายเป็นหลายแสนรายการและหลายร้อยเมกะไบต์ของข้อความ
วิธีอ่านแบบไร้เดียงสา — โหลดไฟล์เข้าหน่วยความจำ แยกวิเคราะห์ เก็บผลลัพธ์ไว้ — ล้มเหลวไปนานก่อนถึงจุดนั้นแล้ว การแยกวิเคราะห์ลิสต์ 200 MB ด้วยวิธีนั้นหมายถึงหน่วยความจำพุ่งสูงจน iPhone ทนไม่ได้ และ iOS จะปิดแอปแทนที่จะรอ นี่คือเหตุผลที่แอป IPTV จำนวนมากล่มง่าย ๆ เมื่อเจอผู้ให้บริการรายใหญ่
วิธีที่ได้ผลคือไม่เก็บลิสต์ไว้ในหน่วยความจำเลย: อ่านจากดิสก์ทีละส่วน เขียนแต่ละช่องลงฐานข้อมูลโดยตรงทันทีที่แยกวิเคราะห์เสร็จ แล้วดึงหน้าจอมาแสดงจากฐานข้อมูลนั้น FoxDL ถูกทดสอบกับลิสต์ขนาด 485 MB ที่มีสองล้านช่อง — ใช้เวลา 123 วินาทีในการนำเข้า เพิ่มหน่วยความจำเพียง 9 MB วาดหน้าแรกใน 4 มิลลิวินาที และค้นหาทั้งลิสต์ได้ใน 400 มิลลิวินาที ตัวเลขเหล่านี้น่าสนใจก็เพราะวิธีไร้เดียงสาไม่มีทางทำแบบนี้ได้เลย
การใช้งานมัน
- เพิ่มมันเป็น URL ไม่ใช่เป็นไฟล์
ผู้ให้บริการอัปเดตลิสต์ของตัวเองอยู่เสมอ — ช่องย้าย ที่อยู่หมุนเวียน เครื่องเล่นที่เก็บ URL ไว้จะรีเฟรชได้ ส่วนเครื่องเล่นที่เก็บสำเนาที่คุณดาวน์โหลดไว้ครั้งเดียวจะล้าสมัยทันทีที่มีอะไรเปลี่ยนแปลง
- เตรียมใจว่ากลุ่มจะยุ่งเหยิงและใช้การค้นหา
ชื่อหมวดหมู่มาจากผู้ให้บริการและไม่มีธรรมเนียมใด ๆ บนลิสต์ขนาดใหญ่ การค้นหาช่องเร็วกว่าการไล่หาไปเรื่อย ๆ ตราบใดที่แอปค้นหาจากฐานข้อมูลแทนที่จะเป็นอาร์เรย์ที่โหลดไว้
- รู้ว่าลิสต์ไม่ใช่เนื้อหา
M3U คือที่อยู่ ส่วนที่อยู่เหล่านั้นถูกกฎหมายให้ดูหรือไม่เป็นคำถามเกี่ยวกับผู้ให้บริการ ไม่ใช่เกี่ยวกับไฟล์หรือเครื่องเล่น ไม่มีแอปไหนจัดหาช่องมาให้ และไม่มีแอปไหนรับรองลิสต์ที่คุณป้อนเข้าไปได้
คำถามเกี่ยวกับฟอร์แมตนี้
ที่มาของข้อเท็จจริงเหล่านี้
ฟอร์แมตใกล้เคียง
คลังไฟล์ของคุณ อยู่รวมกันในที่เดียวสักที
ดาวน์โหลดฟรี ไม่ต้องมีบัญชี ไม่ต้องสมัคร ไม่ต้องยื่นข้อมูลอะไรให้ใคร