HTTP Live Streaming (HLS) เป็นโปรโตคอลวิดีโอสตรีมมิงแบบสดที่อัตราบิตปรับเปลี่ยนได้ ซึ่งช่วยให้สตรีมมิงเนื้อหาวิดีโอคุณภาพสูงได้ DAI สําหรับ Ad Manager รองรับ HLS เวอร์ชัน 3 คู่มือการผสานรวมนี้แสดงรายละเอียดของข้อกำหนดและคำแนะนำสำหรับการใช้ HLS
ดูฟีเจอร์ที่รองรับการถ่ายทอดสดและวิดีโอออนดีมานด์ฟีเจอร์ | ไลฟ์สด | วิดีโอตามคำขอ (VOD) |
---|---|---|
EXTINF |
||
EXT-X-DATERANGE > SCTE35-IN |
— | |
EXT-X-DATERANGE > SCTE35-OUT |
— | |
EXT-X-DISCONTINUITY |
||
EXT-X-DISCONTINUITY-SEQUENCE |
— | |
EXT-X-ENDLIST |
* | |
EXT-X-I-FRAME-STREAM-INF |
||
EXT-X-I-FRAMES-ONLY |
||
EXT-X-INDEPENDENT-SEGMENTS |
||
EXT-X-KEY |
||
EXT-X-MEDIA (กลุ่มเวอร์ชันสื่อ) |
||
EXT-X-MEDIA-SEQUENCE |
— | |
EXT-X-PLAYLIST-TYPE |
||
EXT-X-PROGRAM-DATE-TIME |
||
EXT-X-STREAM-INF > AUDIO |
||
EXT-X-STREAM-INF > AVERAGE-BANDWIDTH |
||
EXT-X-STREAM-INF > BANDWIDTH |
||
EXT-X-STREAM-INF > CLOSED CAPTIONS |
||
EXT-X-STREAM-INF > CODECS |
||
EXT-X-STREAM-INF > FRAMERATE |
||
EXT-X-STREAM-INF > RESOLUTION |
||
EXT-X-STREAM-INF > SUBTITLES |
||
EXT-X-STREAM-INF > VIDEO |
||
EXT-X-TARGETDURATION |
||
EXT-X-VERSION |
* รองรับเฉพาะในสตรีมแบบสดสำหรับเพลย์ลิสต์ประเภท EVENT
ข้ามไปยังส่วนที่ต้องการ
- เพลย์ลิสต์และกลุ่มเวอร์ชันสื่อ
- ตัวแปลงรหัสและความละเอียด
- ระยะเวลาของกลุ่มและการจัดการประทับเวลา
- ความไม่ต่อเนื่อง
- การเข้ารหัสสื่อ
เพลย์ลิสต์และกลุ่มเวอร์ชันสื่อ
ส่งเพลย์ลิสต์โดยใช้การเข้ารหัสเนื้อหา GZIP (แนะนำ) รูปแบบต่างๆ ในเพลย์ลิสต์หลักและส่วนต่างๆ สามารถใช้ URL ที่สมบูรณ์หรือ URL สัมพัทธ์ก็ได้
ระบบจะแปลงเนื้อหาโฆษณาทั้งหมดเพื่อรวมเพลย์ลิสต์ I-FRAME รวมถึงแถบสเลท Ad Manager DAI ไม่ได้สร้างเพลย์ลิสต์ I-FRAME จากเนื้อหา หรือสร้างกลุ่มเวอร์ชันสื่อใหม่โดยอิงจากการผสมวิดีโอ/เสียง
- สำหรับสตรีมแบบไลฟ์สด: โปรแกรมเปลี่ยนไฟล์/Packager ต้องสร้างและปรับสภาพเพลย์ลิสต์ I-FRAME หากจำเป็น ระบบจะส่งกลุ่มเวอร์ชันสื่อตามที่สร้างจากโปรแกรมเปลี่ยนไฟล์แบบสด
- สําหรับวิดีโอตามคําขอ (VOD): หากจำเป็นต้องใช้ คุณต้องใส่เพลย์ลิสต์ I-FRAME ในไฟล์ Manifest หลักเมื่อนำเข้า Ad Manager จะแสดงข้อผิดพลาดเฉพาะในกรณีที่เข้าถึงหรือแยกวิเคราะห์ไฟล์เพลย์ลิสต์ I-FRAME ที่ให้มาไม่ได้ ระบบจะส่งกลุ่มเวอร์ชันสื่อตามที่ให้ไว้ในไฟล์ Manifest หลัก
ตัวแปลงรหัสและความละเอียด
เพลย์ลิสต์หลักของ HLS สำหรับสตรีมแบบสดและเนื้อหาวิดีโอตามคำขอ (VOD) ต้องมีแอตทริบิวต์ CODECS
(ตัวแปลงรหัส) และ RESOLUTION
(ความละเอียด) ซึ่งเป็นแบบมีหรือไม่ก็ได้ แอตทริบิวต์เหล่านี้ใช้สำหรับค้นหาโฆษณาที่เหมาะสมที่ตรงกับการตั้งค่าการเข้ารหัสเหล่านี้ หากไม่ได้ระบุค่าเหล่านี้ไว้ ระบบจะจับคู่โฆษณาตามแบนด์วิดท์เท่านั้น และอาจทำให้การจับคู่ความละเอียดและตัวแปลงรหัสระหว่างโฆษณาและเนื้อหาเกิดความผิดพลาด ซึ่งอาจทำให้ผู้ใช้ได้รับประสบการณ์ที่ไม่ดีและเกิดปัญหาการเล่นในอุปกรณ์ต่างๆ
แอตทริบิวต์ CODECS
ต้องมีทั้งตัวแปลงสัญญาณเสียงและตัวแปลงสัญญาณวิดีโอ โปรแกรมเปลี่ยนไฟล์อาจเพิ่มหรือลบรูปแบบใน URL เพลย์ลิสต์หลักได้ทุกเมื่อ
ตัวแปลงสัญญาณเสียง
DAI รองรับตัวแปลงรหัสเสียง AAC นอกจากนี้ DAI ยังรองรับตัวแปลงรหัส AC-3 และ E-AC-3 ด้วย
CODECS
กับ RESOLUTION
แต่ละรายการมีความสอดคล้องกันคุณควรตรวจดูว่าได้กำหนดค่าโปรแกรมเปลี่ยนไฟล์ให้ใช้ URL ที่สอดคล้องกันสำหรับ URL แต่ละรูปแบบเพื่อป้องกันการเกิดปัญหาการเล่นสำหรับผู้ใช้
ตัวอย่าง
เพลย์ลิสต์หลักที่มีตัวแปลงรหัสและความละเอียด
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=694272,CODECS="avc1.77.41,mp4a.40.2",RESOLUTION=768x432
chunklist_b694272.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=202752,CODECS="avc1.66.31,mp4a.40.2",RESOLUTION=480x270
Chunklist_b202752.m3u8
ระยะเวลาของส่วนต่างๆ
เพลย์ลิสต์สื่อของ HLS ต้องมีการประกาศระยะเวลาของส่วนต่างๆ ในสื่อเป็นตัวเลขทศนิยม ระยะเวลาดังกล่าวควรมีจุดทศนิยมที่แม่นยำเพื่อช่วยระบุเวลาที่แน่นอนว่าช่วงพักโฆษณาจะเริ่มและสิ้นสุดลงเมื่อใด ยิ่งค่าระยะเวลามีความแม่นยำน้อย เวลาเริ่มต้นช่วงพักโฆษณาในสตรีมผลลัพธ์ที่ระบบระบุได้ก็จะมีความแม่นยำน้อยลงไปด้วย
ตัวอย่าง
เพลย์ลิสต์สื่อที่มี #EXTINF
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:26
#EXTINF:9.901,
http://media.example.com/wifi/segment26.ts
#EXTINF:9.901,
http://media.example.com/wifi/segment27.ts
#EXTINF:9.501,
http://media.example.com/wifi/segment28.ts
ความสอดคล้องกันของการประทับเวลา
การประทับเวลาของการนำเสนอ (Presentation Timestamp หรือ PTS) ในส่วนต่างๆ ในเพลย์ลิสต์สื่อรูปแบบต่างๆ ต้องสอดคล้องตรงกัน P-frame และ B-frame จะอ้างอิงเฟรมอื่นๆ เพื่อถอดรหัสเฟรม ตัวแปลงรหัส H.264 ยังอ้างอิงเฟรมที่ไม่ได้อยู่ติดกันเพื่อการบีบอัดที่ดีขึ้นด้วย เนื่องจากเฟรมเหล่านี้อาศัยเฟรมอื่นๆ ในการถอดรหัสและการนำเสนอ การประทับเวลาของการถอดรหัส (Decode Timestamp หรือ DTS) จะกำหนดลำดับตามเฟรมที่ถูกถอดรหัส และ PTS จะกำหนดลำดับตามเฟรมที่นำเสนอ การกำหนดให้ PTS สอดคล้องกันเป็นเรื่องสำคัญเมื่อคุณปรับให้เข้ากับอัตราบิตอื่นขณะเล่นเนื้อหา การแทรกโฆษณาใช้ PTS เพื่อหาตำแหน่งในการแทรกโฆษณา
ความไม่ต่อเนื่อง
EXT-X-DISCONTINUITY
ใดก็ตามในเพลย์ลิสต์สื่อต้องมี EXT-X-DISCONTINUITY-SEQUENCE
แท็ก EXT‑X‑DISCONTINUITY‑SEQUENCE
ช่วยให้ซิงค์ระหว่างการแปลความหมายที่แตกต่างกันของสตรีมรูปแบบเดียวกันหรือสตรีมต่างรูปแบบได้
การเข้ารหัสสื่อ
หากต้องการเข้ารหัสเนื้อหาสื่อ คุณจะต้องเข้ารหัสด้วยวิธีต่อไปนี้
- AES-128 (เข้ารหัสทั้งกลุ่ม)
- SAMPLE-AES (เข้ารหัสสื่อแต่ละรายการ เช่น เสียงหรือวิดีโอ
- SAMPLE-AES-CTR.
Ad Manager DAI รองรับเทคโนโลยี DRM สำหรับสตรีม HLS ที่ใช้ FairPlay และ DRM อื่นๆ ที่มี CMAF/MP4 แบบแยกเป็นส่วนๆ
ตัวอย่าง
เพลย์ลิสต์สื่อที่มี #EXT-X-KEY
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:26
#EXT-X-KEY:METHOD=AES-128,URI="https://media.example.com/asset/key1.php?id=<signature>",IV=<initialization vector>
#EXTINF:9.901,
http://media.example.com/wifi/segment26.ts
#EXTINF:9.901,
http://media.example.com/wifi/segment27.ts
#EXT-X-KEY:METHOD=AES-128,URI="https://media.example.com/asset/key2.php?id=<signature>"
#EXTINF:9.501,
http://media.example.com/wifi/segment28.ts