FMUSER Wirless ส่งวิดีโอและเสียงได้ง่ายขึ้น!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> แอฟริคานส์
sq.fmuser.org -> แอลเบเนีย
ar.fmuser.org -> ภาษาอาหรับ
hy.fmuser.org -> อาร์เมเนีย
az.fmuser.org -> อาเซอร์ไบจัน
eu.fmuser.org -> บาสก์
be.fmuser.org -> เบลารุส
bg.fmuser.org -> บัลแกเรีย
ca.fmuser.org -> คาตาลัน
zh-CN.fmuser.org -> ภาษาจีน (ประยุกต์)
zh-TW.fmuser.org -> ภาษาจีน (ดั้งเดิม)
hr.fmuser.org -> โครเอเชีย
cs.fmuser.org -> เช็ก
da.fmuser.org -> เดนมาร์ก
nl.fmuser.org -> ดัตช์
et.fmuser.org -> เอสโตเนีย
tl.fmuser.org -> ฟิลิปปินส์
fi.fmuser.org -> ฟินแลนด์
fr.fmuser.org -> ฝรั่งเศส
gl.fmuser.org -> กาลิเซีย
ka.fmuser.org -> จอร์เจีย
de.fmuser.org -> เยอรมัน
el.fmuser.org -> กรีก
ht.fmuser.org -> ชาวเฮติครีโอล
iw.fmuser.org -> ภาษาฮิบรู
hi.fmuser.org -> ภาษาฮินดี
hu.fmuser.org -> ฮังการี
is.fmuser.org -> ไอซ์แลนด์
id.fmuser.org -> ชาวอินโดนีเซีย
ga.fmuser.org -> ไอริช
it.fmuser.org -> อิตาเลี่ยน
ja.fmuser.org -> ภาษาญี่ปุ่น
ko.fmuser.org -> ภาษาเกาหลี
lv.fmuser.org -> ลัตเวีย
lt.fmuser.org -> ลิทัวเนีย
mk.fmuser.org -> มาซิโดเนีย
ms.fmuser.org -> มาเลย์
mt.fmuser.org -> มอลตา
no.fmuser.org -> นอร์เวย์
fa.fmuser.org -> เปอร์เซีย
pl.fmuser.org -> โปแลนด์
pt.fmuser.org -> โปรตุเกส
ro.fmuser.org -> โรมาเนีย
ru.fmuser.org -> รัสเซีย
sr.fmuser.org -> เซอร์เบีย
sk.fmuser.org -> สโลวัก
sl.fmuser.org -> สโลวีเนีย
es.fmuser.org -> สเปน
sw.fmuser.org -> ภาษาสวาฮิลี
sv.fmuser.org -> สวีเดน
th.fmuser.org -> ไทย
tr.fmuser.org -> ตุรกี
uk.fmuser.org -> ยูเครน
ur.fmuser.org -> ภาษาอูรดู
vi.fmuser.org -> เวียดนาม
cy.fmuser.org -> เวลส์
yi.fmuser.org -> ยิดดิช
ในช่วงไม่กี่ปีที่ผ่านมาความต้องการที่เพิ่มขึ้นสำหรับการปรับตัวแบบหลายแพลตฟอร์มทำให้เกิดการเพิ่มขึ้นของการเล่นบิตเรตแบบปรับได้ของสื่อสตรีมมิ่งซึ่งบังคับให้นักพัฒนาเว็บและอุปกรณ์เคลื่อนที่ต้องทบทวนตรรกะของเทคโนโลยีวิดีโอ ก่อนอื่นยักษ์ใหญ่ได้เปิดตัวโปรโตคอล HLS, HDS และ Smooth Streaming แยกกันโดยซ่อนรายละเอียดที่เกี่ยวข้องทั้งหมดไว้ใน SDK เฉพาะของตน นักพัฒนาไม่สามารถปรับเปลี่ยนตรรกะของเอนจินมัลติมีเดียในโปรแกรมเล่นได้อย่างอิสระ: คุณไม่สามารถแก้ไขกฎของบิตเรตที่ปรับเปลี่ยนได้และขนาดแคชหรือแม้แต่ความยาวของชิ้นส่วนของคุณ เครื่องเล่นเหล่านี้อาจใช้งานง่าย แต่คุณไม่มีตัวเลือกมากเกินไปในการปรับแต่งและแม้แต่คุณสมบัติที่ไม่ดีก็สามารถยอมรับได้
แต่ด้วยการเพิ่มขึ้นของสถานการณ์แอปพลิเคชันที่แตกต่างกันความต้องการฟังก์ชั่นที่ปรับแต่งได้นั้นมีมากขึ้นเรื่อย ๆ ระหว่างการถ่ายทอดสดกับออนดีมานด์มีความแตกต่างในการจัดการบัฟเฟอร์กลยุทธ์ ABR และกลยุทธ์การแคช ข้อกำหนดเหล่านี้ก่อให้เกิดชุด API การทำงานมัลติมีเดียระดับล่าง: Netstream บน Flash, ส่วนขยายแหล่งที่มาของสื่อบน HTML5 และตัวแปลงสัญญาณสื่อบน Android ในเวลาเดียวกัน MPEG-DASH รูปแบบการสตรีม HTTP มาตรฐานปรากฏในอุตสาหกรรม . ความสามารถขั้นสูงเหล่านี้ทำให้นักพัฒนามีความยืดหยุ่นมากขึ้นทำให้พวกเขาสามารถสร้างเครื่องเล่นและเอ็นจิ้นมัลติมีเดียที่เหมาะกับความต้องการทางธุรกิจของพวกเขา
วันนี้เราจะมาแบ่งปันวิธีการสร้างเครื่องเล่นสมัยใหม่และส่วนประกอบหลักที่จำเป็นในการสร้างเครื่องเล่นดังกล่าว โดยทั่วไปผู้เล่นทั่วไปสามารถแบ่งออกเป็นสามส่วน ได้แก่ UI เอนจิ้นมัลติมีเดียและตัวถอดรหัส
ส่วนต่อประสานผู้ใช้ (UI): เป็นส่วนบนสุดของเครื่องเล่น เป็นการกำหนดประสบการณ์การรับชมของผู้ใช้ปลายทางผ่านลักษณะการทำงานที่แตกต่างกันสามลักษณะ: สกิน (การออกแบบรูปลักษณ์ของเครื่องเล่น), UI (คุณสมบัติที่ปรับแต่งได้ทั้งหมดเช่นเพลย์ลิสต์และการแบ่งปันทางสังคม ฯลฯ ) และตรรกะทางธุรกิจ (ตรรกะทางธุรกิจเฉพาะ) เช่นการโฆษณาตรรกะความเข้ากันได้ของอุปกรณ์และการจัดการการรับรองเป็นต้น)
เอ็นจิ้นมัลติมีเดีย: จัดการตรรกะทั้งหมดที่เกี่ยวข้องกับการควบคุมการเล่นเช่นการวิเคราะห์ไฟล์คำอธิบายการดึงคลิปวิดีโอและการตั้งค่าและการเปลี่ยนกฎบิตเรตแบบปรับได้ เราจะอธิบายรายละเอียดส่วนนี้ด้านล่าง เนื่องจากโดยทั่วไปแล้วเครื่องยนต์เหล่านี้จะถูกผูกไว้อย่างแน่นหนากับแพลตฟอร์มจึงอาจจำเป็นต้องใช้เครื่องยนต์ที่แตกต่างกันหลายแบบเพื่อให้ครอบคลุมทุกแพลตฟอร์ม
ตัวจัดการตัวถอดรหัสและ DRM: ส่วนล่างสุดของเครื่องเล่นคือตัวถอดรหัสและตัวจัดการ DRM ฟังก์ชันของเลเยอร์นี้เรียก API ที่ระบบปฏิบัติการเปิดเผยโดยตรง หน้าที่หลักของตัวถอดรหัสคือการถอดรหัสและแสดงผลเนื้อหาวิดีโอในขณะที่ผู้จัดการ DRM ควบคุมว่าจะมีสิทธิ์เล่นผ่านกระบวนการถอดรหัสหรือไม่
ต่อไปเราจะใช้ตัวอย่างเพื่อแนะนำบทบาทต่างๆที่เล่นโดยแต่ละเลเยอร์
1. ส่วนต่อประสานผู้ใช้ (UI)
เลเยอร์ UI คือเลเยอร์บนสุดของโปรแกรมเล่น ควบคุมสิ่งที่ผู้ใช้ของคุณสามารถมองเห็นและโต้ตอบได้ ในขณะเดียวกันคุณสามารถปรับแต่งแบรนด์ของคุณเองเพื่อให้ผู้ใช้ของคุณได้รับประสบการณ์การใช้งานที่ไม่เหมือนใคร เลเยอร์นี้อยู่ใกล้กับส่วนการพัฒนาส่วนหน้าที่เรากำลังพูดถึงมากที่สุด ภายใน UI เรายังมีส่วนประกอบตรรกะทางธุรกิจซึ่งถือเป็นเอกลักษณ์ของประสบการณ์การเล่นของคุณแม้ว่าผู้ใช้ปลายทางจะไม่สามารถโต้ตอบกับส่วนนี้ของฟังก์ชันนี้ได้โดยตรง
ส่วน UI ส่วนใหญ่ประกอบด้วยสามองค์ประกอบ:
1) ผิวหนัง
Skin เป็นคำศัพท์ทั่วไปสำหรับส่วนที่เกี่ยวข้องกับการมองเห็นของเครื่องเล่น: แถบควบคุมความคืบหน้าปุ่มไอคอนเคลื่อนไหว ฯลฯ ดังแสดงในรูปที่ 2 เช่นเดียวกับส่วนประกอบการออกแบบส่วนใหญ่ส่วนประกอบนี้ยังใช้งานโดยใช้ CSS ซึ่งสามารถ สามารถรวมเข้าด้วยกันได้อย่างง่ายดายโดยนักออกแบบหรือนักพัฒนา (แม้ว่าคุณจะใช้โซลูชันที่สมบูรณ์เช่น JW Player และ Bitdash)
2) ตรรกะ UIUI
ส่วนลอจิก UI กำหนดการโต้ตอบที่มองเห็นได้ทั้งหมดระหว่างการเล่นและการโต้ตอบกับผู้ใช้: เพลย์ลิสต์ภาพขนาดย่อการเลือกช่องทางการเล่นและการแชร์โซเชียลมีเดีย จากประสบการณ์การเล่นที่คุณคาดหวังว่าจะประสบความสำเร็จคุณสามารถเพิ่มคุณสมบัติอื่น ๆ ในส่วนนี้ได้ในอดีตซึ่งหลายอย่างมีอยู่ในรูปแบบของปลั๊กอินและบางทีคุณอาจพบแรงบันดาลใจบางอย่าง: ปลั๊กอิน· videojs / video.js วิกิ·ส่วนตรรกะของ GitHub มีฟังก์ชันมากมายรวมอยู่ด้วย เราจะไม่แนะนำพวกเขาโดยละเอียด แต่ใช้ UI ของผู้เล่น Eurosport เป็นตัวอย่างเพื่อสัมผัสกับฟังก์ชันเหล่านี้โดยสังหรณ์ใจ
นอกเหนือจากองค์ประกอบ UI แบบดั้งเดิมแล้วยังมีคุณสมบัติที่น่าสนใจอีกด้วย เมื่อผู้ใช้รับชมสื่อสตรีม DVR การถ่ายทอดสดจะแสดงในรูปแบบของหน้าต่างเล็ก ๆ และผู้ชมสามารถกลับไปที่การถ่ายทอดสดได้ตลอดเวลาผ่านหน้าต่างเล็ก ๆ นี้ เนื่องจากเค้าโครงหรือ UI และเอ็นจิ้นมัลติมีเดียเป็นอิสระอย่างสมบูรณ์คุณลักษณะเหล่านี้จึงสามารถใช้งานได้โดยใช้ dash.js ใน HTML5 โดยใช้โค้ดเพียงไม่กี่บรรทัด สำหรับส่วน UI วิธีที่ดีที่สุดในการนำไปใช้คือการเพิ่มคุณสมบัติต่างๆให้กับโมดูลหลักของ UI ในรูปแบบของปลั๊กอิน / โมดูล
3) ตรรกะทางธุรกิจ
นอกเหนือจากคุณลักษณะ "ที่มองเห็นได้" ของสองส่วนข้างต้นแล้วยังมีอีกส่วนที่มองไม่เห็นซึ่งถือเป็นเอกลักษณ์ของธุรกิจของคุณนั่นคือการตรวจสอบสิทธิ์และการชำระเงินการได้มาของช่องและเพลย์ลิสต์และการโฆษณา นอกจากนี้ยังมีบางสิ่งที่เกี่ยวข้องกับเทคโนโลยีเช่นโมดูลทดสอบ A / B และการกำหนดค่าที่เกี่ยวข้องกับอุปกรณ์ การกำหนดค่าเหล่านี้ใช้เพื่อเลือกเครื่องมือสื่อที่แตกต่างกันระหว่างอุปกรณ์ประเภทต่างๆ
เพื่อเปิดเผยความซับซ้อนที่ซ่อนอยู่ที่ด้านล่างเราจะอธิบายรายละเอียดเพิ่มเติมเกี่ยวกับโมดูลเหล่านี้ที่นี่:
ตรรกะการตรวจจับและกำหนดค่าอุปกรณ์: นี่เป็นคุณสมบัติที่สำคัญที่สุดอย่างหนึ่งเนื่องจากแยกการเล่นและการแสดงผล ตัวอย่างเช่นตามเวอร์ชันต่างๆของเบราว์เซอร์ของคุณผู้เล่นอาจเลือกเอนจินมัลติมีเดียโดยอัตโนมัติตาม HTML5 MSE, hls.js หรือ FlasHls กลไกการเล่นที่ใช้แฟลชเพื่อเล่นสตรีมวิดีโอ HLS ให้คุณ คุณสมบัติที่ใหญ่ที่สุดของส่วนนี้คือไม่ว่าคุณจะใช้เอ็นจิ้นใดก็ตามคุณสามารถใช้ JavaScript หรือ CSS เดียวกันเพื่อปรับแต่ง UI หรือตรรกะทางธุรกิจของคุณในชั้นบนได้
ความสามารถในการตรวจจับอุปกรณ์ของผู้ใช้ช่วยให้คุณกำหนดค่าประสบการณ์ของผู้ใช้ปลายทางได้ตามต้องการ: หากคุณกำลังเล่นบนอุปกรณ์เคลื่อนที่แทนอุปกรณ์หน้าจอ 4K คุณอาจต้องเริ่มต้นด้วยบิตเรตที่ต่ำกว่า
ตรรกะการทดสอบ A / B: การทดสอบ A / B จะทำให้ผู้ใช้บางคนเป็นสีเทาในกระบวนการผลิตได้ ตัวอย่างเช่นคุณอาจให้ปุ่มใหม่หรือเอนจินมัลติมีเดียใหม่แก่ผู้ใช้ Chrome บางรายและคุณยังสามารถมั่นใจได้ว่างานทั้งหมดจะดำเนินไปตามแผนที่วางไว้
การโฆษณา (ไม่บังคับ): การประมวลผลการโฆษณาในฝั่งลูกค้าเป็นหนึ่งในตรรกะทางธุรกิจที่ซับซ้อนที่สุด ดังที่แสดงในผังงานของ videojs-Contrib-ads ของโมดูลปลั๊กอินมีหลายขั้นตอนในกระบวนการแทรกโฆษณา สำหรับการสตรีมวิดีโอ HTTP คุณจะใช้รูปแบบที่มีอยู่บางรูปแบบเช่น VAST, VPAID หรือ Google IMA มากขึ้นหรือน้อยลงซึ่งสามารถช่วยดึงโฆษณาวิดีโอจากเซิร์ฟเวอร์โฆษณา (โดยปกติจะเป็นรูปแบบที่ไม่ตอบสนองที่ล้าสมัย) โดยวางไว้ในช่วงต้นกลาง ช่วงท้ายของวิดีโอสำหรับการเล่นและไม่สามารถข้ามได้
สรุปผล:
สำหรับความต้องการในการปรับแต่งของคุณคุณอาจเลือกใช้ JW Player ที่มีฟังก์ชั่นคลาสสิกทั้งหมดในการเล่น (นอกจากนี้ยังช่วยให้คุณปรับแต่งฟังก์ชันบางอย่างได้) หรือปรับแต่งคุณสมบัติของคุณเองตามโปรแกรมเล่นโอเพ่นซอร์สเช่น Videojs แม้ในการรวมประสบการณ์ของผู้ใช้ระหว่างเบราว์เซอร์และโปรแกรมเล่นเนทีฟคุณยังสามารถพิจารณาใช้ React Native สำหรับ UI หรือการพัฒนาสกินและ Haxe สำหรับการพัฒนาตรรกะทางธุรกิจ ไลบรารีที่ยอดเยี่ยมเหล่านี้สามารถมีได้หลายประเภทฐานรหัสชุดเดียวกันจะใช้ร่วมกันระหว่างอุปกรณ์
2 เอ็นจิ้นมัลติมีเดีย
ในช่วงไม่กี่ปีที่ผ่านมาเอนจินมัลติมีเดียได้ปรากฏตัวในสถาปัตยกรรมเครื่องเล่นโดยเป็นส่วนประกอบใหม่ที่เป็นอิสระ ในยุค MP4 แพลตฟอร์มนี้ได้ประมวลผลตรรกะที่เกี่ยวข้องกับการเล่นทั้งหมดและมีเพียงคุณสมบัติที่เกี่ยวข้องกับการประมวลผลมัลติมีเดียบางอย่างเท่านั้น (เฉพาะฟังก์ชันเช่นการเล่นหยุดชั่วคราวลากและวางและโหมดเต็มหน้าจอ) ที่เปิดให้นักพัฒนาใช้งาน
อย่างไรก็ตามรูปแบบสื่อสตรีมมิ่งที่ใช้ HTTP ใหม่ต้องใช้องค์ประกอบใหม่เอี่ยมเพื่อจัดการและควบคุมความซับซ้อนใหม่: การแยกวิเคราะห์ไฟล์การประกาศการดาวน์โหลดคลิปวิดีโอการตรวจสอบอัตราบิตที่ปรับเปลี่ยนได้การกำหนดการตัดสินใจและอื่น ๆ ในตอนแรกความซับซ้อนของ ABR ได้รับการจัดการโดยแพลตฟอร์มหรือผู้ให้บริการอุปกรณ์ อย่างไรก็ตามด้วยความต้องการที่เพิ่มขึ้นสำหรับการควบคุมจุดยึดและผู้เล่นที่กำหนดเองผู้เล่นใหม่บางรายจึงค่อยๆเปิด API ระดับล่างบางส่วน (เช่น Media Source Extensons บนเว็บ Netstream บน Flash และ Media Codec บนแพลตฟอร์ม Android) และดึงดูดอย่างรวดเร็ว เอ็นจิ้นมัลติมีเดียที่ทรงพลังและมีประสิทธิภาพมากมายโดยใช้ API ที่เป็นพื้นฐาน
ต่อไปเราจะอธิบายรายละเอียดของแต่ละองค์ประกอบในระบบประมวลผลมัลติมีเดียที่ทันสมัย:
1) การตีความไฟล์ประกาศและ parser
ในการสตรีมวิดีโอที่ใช้ HTTP ทุกอย่างเริ่มต้นด้วยไฟล์คำอธิบาย ไฟล์ประกาศมีข้อมูลเมตาที่เซิร์ฟเวอร์สื่อต้องทำความเข้าใจ: คุณภาพของวิดีโอภาษาและตัวอักษร ฯลฯ มีกี่ประเภทและมีอะไรบ้าง โปรแกรมแยกวิเคราะห์รับข้อมูลคำอธิบายจากไฟล์ XML (ไฟล์ m3u8 พิเศษสำหรับ HLS) จากนั้นรับข้อมูลวิดีโอที่ถูกต้องจากข้อมูล แน่นอนว่ามีเซิร์ฟเวอร์สื่อหลายประเภทและไม่ใช่ทุกประเภทที่ใช้ข้อกำหนดอย่างถูกต้องดังนั้นโปรแกรมแยกวิเคราะห์อาจต้องจัดการกับข้อผิดพลาดในการใช้งานเพิ่มเติม
เมื่อแยกข้อมูลวิดีโอแล้วโปรแกรมแยกวิเคราะห์จะแยกวิเคราะห์ข้อมูลจากข้อมูลเพื่อสร้างภาพสตรีมมิงและรู้วิธีรับคลิปวิดีโอต่างๆ ในเครื่องมือมัลติมีเดียบางประเภทภาพที่มองเห็นเหล่านี้จะปรากฏในรูปแบบของภาพมัลติมีเดียนามธรรมก่อนจากนั้นจึงวาดลักษณะต่างๆของรูปแบบสตรีมวิดีโอ HTTP ที่แตกต่างกันบนหน้าจอ
ในฉากสตรีมมิงแบบสดโปรแกรมแยกวิเคราะห์จะต้องรับไฟล์การประกาศซ้ำเป็นระยะเพื่อให้ได้ข้อมูลคลิปวิดีโอล่าสุด
2) Downloader (ดาวน์โหลดไฟล์ประกาศ คลิปมัลติมีเดีย และคีย์)
ตัวดาวน์โหลดเป็นโมดูลที่รวม API ดั้งเดิมสำหรับการประมวลผลคำขอ HTTP ไม่เพียง แต่ใช้เพื่อดาวน์โหลดไฟล์มัลติมีเดียเท่านั้น แต่ยังสามารถใช้เพื่อดาวน์โหลดไฟล์ประกาศและปุ่ม DRM เมื่อจำเป็น ตัวดาวน์โหลดมีบทบาทสำคัญมากในการจัดการข้อผิดพลาดของเครือข่ายและการลองใหม่ในขณะที่สามารถรวบรวมข้อมูลบนแบนด์วิดท์ที่มีอยู่ในปัจจุบัน
หมายเหตุ: การดาวน์โหลดไฟล์มัลติมีเดียอาจใช้โปรโตคอล HTTP หรือโปรโตคอลอื่น ๆ เช่นโปรโตคอล WebRTC ในสถานการณ์การสื่อสารแบบเรียลไทม์แบบจุดต่อจุด
3) เอ็นจิ้นสตรีมมิ่ง
กลไกการเล่นแบบสตรีมมิงเป็นโมดูลกลางที่โต้ตอบกับ API ตัวถอดรหัส นำเข้าคลิปมัลติมีเดียที่แตกต่างกันไปยังตัวเข้ารหัสและจัดการการสลับหลายอัตราและความแตกต่างระหว่างการเล่น (เช่นความแตกต่างระหว่างไฟล์การประกาศและชิ้นส่วนวิดีโอและการหยุดอัตโนมัติ) การข้ามเฟรม)
4) ตัวทำนายพารามิเตอร์คุณภาพทรัพยากร (แบนด์วิดท์ CPU อัตราเฟรม ฯลฯ)
ตัวประมาณจะได้รับข้อมูลจากมิติข้อมูลต่างๆ (ขนาดบล็อกเวลาในการดาวน์โหลดต่อส่วนและจำนวนเฟรมที่ข้ามไป) และรวบรวมข้อมูลเหล่านี้เพื่อประเมินแบนด์วิดท์และพลังการประมวลผลของ CPU ที่มีให้สำหรับผู้ใช้ นี่คือเอาต์พุตที่ใช้สำหรับตัวควบคุมการสลับ ABR (Adaptive Bitrate, adaptive bitrate) เพื่อทำการตัดสิน
5) ตัวควบคุมสวิตช์ ABR
สวิตช์ ABR อาจเป็นส่วนที่สำคัญที่สุดของเอนจินมัลติมีเดียซึ่งมักจะเป็นส่วนที่ถูกมองข้ามมากที่สุด ตัวควบคุมจะอ่านข้อมูล (แบนด์วิดท์และจำนวนเฟรมที่ข้าม) โดยตัวประมาณใช้อัลกอริทึมที่กำหนดเองเพื่อทำการตัดสินตามข้อมูลเหล่านี้และบอกเอ็นจินการสตรีมว่าจำเป็นต้องเปลี่ยนคุณภาพของวิดีโอหรือเสียงหรือไม่ มีงานวิจัยมากมายในสาขานี้และปัญหาใหญ่ที่สุดคือการหาจุดสมดุลระหว่างความเสี่ยงในการบัฟเฟอร์ซ้ำและความถี่ในการเปลี่ยน (การเปลี่ยนบ่อยเกินไปอาจทำให้ผู้ใช้ได้รับประสบการณ์ที่ไม่ดี)
6) ตัวจัดการ DRM (ส่วนประกอบเสริม)
ปัจจุบันบริการวิดีโอแบบชำระเงินทั้งหมดขึ้นอยู่กับการจัดการ DRM และ DRM ส่วนใหญ่ขึ้นอยู่กับแพลตฟอร์มหรืออุปกรณ์เราจะเห็นเมื่อเราอธิบายผู้เล่นในภายหลัง ตัวจัดการ DRM ในเอ็นจิ้นมัลติมีเดียเป็นตัวห่อสำหรับ API การถอดรหัสเนื้อหาในตัวถอดรหัสระดับล่าง เมื่อใดก็ตามที่เป็นไปได้มันจะพยายามป้องกันความแตกต่างในรายละเอียดการใช้งานเบราว์เซอร์หรือระบบปฏิบัติการในรูปแบบนามธรรม โดยปกติส่วนประกอบนี้จะเชื่อมต่ออย่างแน่นหนากับเอ็นจิ้นการประมวลผลสตรีมเนื่องจากมักจะทำปฏิกิริยากับเลเยอร์ตัวถอดรหัส
7) ฟอร์แมตมัลติเพล็กเซอร์การแปลง (ส่วนประกอบเสริม)
ดังที่เราจะเห็นในภายหลังแต่ละแพลตฟอร์มมีข้อ จำกัด ในแง่ของบรรจุภัณฑ์และการเข้ารหัส (Flash อ่านไฟล์ H.264 / AAC ที่ห่อหุ้มในคอนเทนเนอร์ FLV และ MSE อ่านไฟล์ H.264 / AAC ที่ห่อหุ้มในไฟล์ ISOBMFF) สิ่งนี้นำไปสู่คลิปวิดีโอบางส่วนที่ต้องได้รับการจัดรูปแบบก่อนที่จะถอดรหัส ตัวอย่างเช่นด้วยมัลติเพล็กเซอร์การแปลงรูปแบบ MPEG2-TS เป็น ISOBMFF hls.js สามารถใช้เนื้อหารูปแบบ MSE เพื่อเล่นสตรีมวิดีโอ HLS เครื่องมัลติเพล็กเซอร์การแปลงรูปแบบที่ระดับเอนจินมัลติมีเดียถูกตั้งคำถาม อย่างไรก็ตามด้วยการปรับปรุงประสิทธิภาพการตีความ JavaScript หรือ Flash ที่ทันสมัยการสูญเสียประสิทธิภาพที่เกิดขึ้นนั้นแทบจะไม่สำคัญเลยและจะไม่ส่งผลกระทบต่อประสบการณ์ของผู้ใช้มากนัก
สรุปผล
นอกจากนี้ยังมีองค์ประกอบและคุณลักษณะต่างๆ มากมายในเอ็นจิ้นมัลติมีเดีย ตั้งแต่คำบรรยาย ภาพหน้าจอ ไปจนถึงการแทรกโฆษณา และอื่นๆ ต่อไป เราจะเขียนบทความแยกต่างหากเพื่อเปรียบเทียบความแตกต่างระหว่างเครื่องยนต์ต่างๆ ผ่านการทดสอบและข้อมูลการตลาดบางส่วนเพื่อให้คำแนะนำที่สำคัญสำหรับการเลือกเครื่องยนต์ เป็นที่น่าสังเกตว่าการสร้างเครื่องเล่นที่เข้ากันได้กับแพลตฟอร์มต่างๆ เป็นสิ่งสำคัญมากที่จะต้องจัดเตรียมเอ็นจิ้นมัลติมีเดียที่เปลี่ยนได้อย่างอิสระหลายตัว เนื่องจากตัวถอดรหัสพื้นฐานนั้นเกี่ยวข้องกับแพลตฟอร์มผู้ใช้ ต่อไปเราจะเน้นในด้านนี้
3. ตัวถอดรหัสและตัวจัดการ DRM
สำหรับประสิทธิภาพการถอดรหัส (ตัวถอดรหัส) และข้อพิจารณาด้านความปลอดภัย (DRM) ตัวถอดรหัสและตัวจัดการ DRM มีความผูกพันอย่างใกล้ชิดกับแพลตฟอร์มระบบปฏิบัติการ
1) ตัวถอดรหัส
ตัวถอดรหัสจะจัดการตรรกะที่เกี่ยวข้องกับการเล่นเลเยอร์ด้านล่าง มันจะคลายวิดีโอในรูปแบบการห่อหุ้มที่แตกต่างกันถอดรหัสเนื้อหาจากนั้นส่งเฟรมวิดีโอที่ถอดรหัสแล้วไปยังระบบปฏิบัติการเพื่อแสดงผลและในที่สุดก็อนุญาตให้ผู้ใช้ปลายทางดูได้
เนื่องจากอัลกอริธึมการบีบอัดวิดีโอมีความซับซ้อนมากขึ้นเรื่อย ๆ กระบวนการถอดรหัสจึงเป็นกระบวนการที่ต้องใช้การคำนวณอย่างเข้มข้นและเพื่อให้มั่นใจถึงประสิทธิภาพการถอดรหัสและประสบการณ์การเล่นที่ราบรื่นกระบวนการถอดรหัสจึงต้องขึ้นอยู่กับระบบปฏิบัติการและฮาร์ดแวร์เป็นอย่างมาก การถอดรหัสในปัจจุบันส่วนใหญ่อาศัยความช่วยเหลือของการถอดรหัสแบบเร่งของ GPU (นี่เป็นหนึ่งในสาเหตุที่ตัวถอดรหัส VP9 ที่ฟรีและมีประสิทธิภาพมากกว่าไม่ได้รับตำแหน่งทางการตลาด H.264) หากไม่มีการเร่งความเร็ว GPU การถอดรหัสวิดีโอ 1080P จะใช้เวลาประมาณ 70% ของการคำนวณ CPU และอัตราการสูญเสียเฟรมอาจร้ายแรงมาก
บนพื้นฐานของการถอดรหัสและการแสดงผลเฟรมวิดีโอผู้จัดการยังจัดเตรียมบัฟเฟอร์ดั้งเดิม เอ็นจิ้นมัลติมีเดียสามารถโต้ตอบโดยตรงกับบัฟเฟอร์เพื่อทำความเข้าใจขนาดแบบเรียลไทม์และรีเฟรชเมื่อจำเป็น
ดังที่เราได้กล่าวไว้ก่อนหน้านี้แต่ละแพลตฟอร์มมีเครื่องมือการแสดงผลของตัวเองและ API ที่เกี่ยวข้อง: แพลตฟอร์ม Flash มี Netstream, แพลตฟอร์ม Android มี Media Codec API และเว็บมี Media Sources Extensions มาตรฐาน MSE เป็นที่จับตามองมากขึ้นเรื่อย ๆ และอาจกลายเป็นมาตรฐานโดยพฤตินัยบนแพลตฟอร์มอื่น ๆ หลังจากเบราว์เซอร์ในอนาคต
2) ผู้จัดการ DRM
ปัจจุบัน DRM มีความจำเป็นในการถ่ายโอนเนื้อหาแบบชำระเงินที่ผลิตโดยสตูดิโอ เนื้อหาเหล่านี้ต้องได้รับการป้องกันไม่ให้ถูกขโมยดังนั้นโค้ดและกระบวนการทำงานของ DRM จึงถูกบล็อกจากผู้ใช้และผู้พัฒนา เนื้อหาที่ถอดรหัสจะไม่ออกจากชั้นถอดรหัสดังนั้นจึงไม่ถูกดักจับ
เพื่อสร้างมาตรฐาน DRM และมอบความสามารถในการทำงานร่วมกันสำหรับการใช้งานแพลตฟอร์มต่างๆเว็บยักษ์ใหญ่หลายแห่งได้ร่วมกันสร้าง Common Encryption (CENC) และส่วนขยายการเข้ารหัสมัลติมีเดียสากล Encrypted Media Extensions เพื่อจัดหาผู้ให้บริการ DRM หลายราย (เช่น EME สามารถใช้สำหรับ Playready บนแพลตฟอร์ม Edge และ Widewine บนแพลตฟอร์ม Chrome เพื่อสร้างชุด API ทั่วไปที่สามารถอ่านคีย์การเข้ารหัสเนื้อหาวิดีโอจากโมดูลการให้สิทธิ์ DRM สำหรับการถอดรหัส
CENC ประกาศชุดของการเข้ารหัสมาตรฐานและวิธีการแมปคีย์ซึ่งสามารถใช้ในการถอดรหัสเนื้อหาเดียวกันบนระบบ DRM หลายระบบโดยระบุคีย์เดียวกันเท่านั้น
ภายในเบราว์เซอร์ตามข้อมูลเมตาของเนื้อหาวิดีโอ EME สามารถระบุได้ว่าระบบ DRM ใดใช้สำหรับการเข้ารหัสและเรียกใช้โมดูลถอดรหัสที่เกี่ยวข้อง (Content Decryption Module, CDM) เพื่อถอดรหัสเนื้อหาที่เข้ารหัสโดย CENC โมดูลการถอดรหัส CDM จะจัดการงานที่เกี่ยวข้องกับการอนุญาตเนื้อหารับคีย์และถอดรหัสเนื้อหาวิดีโอ
CENC ไม่ได้ระบุการออกการอนุญาตรูปแบบการอนุญาตการจัดเก็บการอนุญาตและกฎการใช้งานและความสัมพันธ์ในการแมปสิทธิ์และรายละเอียดอื่น ๆ การจัดการรายละเอียดเหล่านี้ถือเป็นความรับผิดชอบของผู้ให้บริการ DRM
4. สรุป
วันนี้เรามีความเข้าใจอย่างลึกซึ้งเกี่ยวกับเนื้อหาที่แตกต่างกันของเครื่องเล่นวิดีโอทั้งสามระดับ ส่วนที่ดีที่สุดของโครงสร้างเครื่องเล่นสมัยใหม่นี้คือส่วนที่โต้ตอบได้ถูกแยกออกจากส่วนลอจิกของเอ็นจิ้นมัลติมีเดียโดยสิ้นเชิงทำให้สมอสามารถปรับแต่งประสบการณ์ของผู้ใช้ปลายทางได้อย่างราบรื่นและอิสระและยืดหยุ่น , การใช้เอ็นจิ้นมัลติมีเดียที่แตกต่างกันในอุปกรณ์ปลายทางที่แตกต่างกันไปพร้อม ๆ กันสามารถรับประกันการเล่นเนื้อหาวิดีโอในรูปแบบต่างๆได้อย่างราบรื่น
บนแพลตฟอร์มเว็บด้วยความช่วยเหลือของเอ็นจิ้นมัลติมีเดียเช่น dash.js, Shaka Player และ hls.js ซึ่งมีแนวโน้มที่จะเป็นไลบรารีสำหรับผู้ใหญ่ MSE และ EME กำลังกลายเป็นมาตรฐานใหม่สำหรับการเล่นและผู้ผลิตที่มีอิทธิพลมากขึ้นเรื่อย ๆ กำลังใช้ พวกเขา เอ็นจิ้นการเล่นเหล่านี้ ในช่วงไม่กี่ปีที่ผ่านมาความสนใจก็เริ่มขยายไปสู่กล่องรับสัญญาณและอินเทอร์เน็ตทีวีและเรายังได้เห็นอุปกรณ์รุ่นใหม่ ๆ ใช้ MSE เป็นเครื่องมือประมวลผลมัลติมีเดียพื้นฐานมากขึ้นเรื่อย ๆ เราจะลงทุนเพิ่มความพยายามอย่างต่อเนื่องเพื่อสนับสนุนมาตรฐานเหล่านี้
|
ป้อนอีเมลเพื่อรับเซอร์ไพรส์
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> แอฟริคานส์
sq.fmuser.org -> แอลเบเนีย
ar.fmuser.org -> ภาษาอาหรับ
hy.fmuser.org -> อาร์เมเนีย
az.fmuser.org -> อาเซอร์ไบจัน
eu.fmuser.org -> บาสก์
be.fmuser.org -> เบลารุส
bg.fmuser.org -> บัลแกเรีย
ca.fmuser.org -> คาตาลัน
zh-CN.fmuser.org -> ภาษาจีน (ประยุกต์)
zh-TW.fmuser.org -> ภาษาจีน (ดั้งเดิม)
hr.fmuser.org -> โครเอเชีย
cs.fmuser.org -> เช็ก
da.fmuser.org -> เดนมาร์ก
nl.fmuser.org -> ดัตช์
et.fmuser.org -> เอสโตเนีย
tl.fmuser.org -> ฟิลิปปินส์
fi.fmuser.org -> ฟินแลนด์
fr.fmuser.org -> ฝรั่งเศส
gl.fmuser.org -> กาลิเซีย
ka.fmuser.org -> จอร์เจีย
de.fmuser.org -> เยอรมัน
el.fmuser.org -> กรีก
ht.fmuser.org -> ชาวเฮติครีโอล
iw.fmuser.org -> ภาษาฮิบรู
hi.fmuser.org -> ภาษาฮินดี
hu.fmuser.org -> ฮังการี
is.fmuser.org -> ไอซ์แลนด์
id.fmuser.org -> ชาวอินโดนีเซีย
ga.fmuser.org -> ไอริช
it.fmuser.org -> อิตาเลี่ยน
ja.fmuser.org -> ภาษาญี่ปุ่น
ko.fmuser.org -> ภาษาเกาหลี
lv.fmuser.org -> ลัตเวีย
lt.fmuser.org -> ลิทัวเนีย
mk.fmuser.org -> มาซิโดเนีย
ms.fmuser.org -> มาเลย์
mt.fmuser.org -> มอลตา
no.fmuser.org -> นอร์เวย์
fa.fmuser.org -> เปอร์เซีย
pl.fmuser.org -> โปแลนด์
pt.fmuser.org -> โปรตุเกส
ro.fmuser.org -> โรมาเนีย
ru.fmuser.org -> รัสเซีย
sr.fmuser.org -> เซอร์เบีย
sk.fmuser.org -> สโลวัก
sl.fmuser.org -> สโลวีเนีย
es.fmuser.org -> สเปน
sw.fmuser.org -> ภาษาสวาฮิลี
sv.fmuser.org -> สวีเดน
th.fmuser.org -> ไทย
tr.fmuser.org -> ตุรกี
uk.fmuser.org -> ยูเครน
ur.fmuser.org -> ภาษาอูรดู
vi.fmuser.org -> เวียดนาม
cy.fmuser.org -> เวลส์
yi.fmuser.org -> ยิดดิช
FMUSER Wirless ส่งวิดีโอและเสียงได้ง่ายขึ้น!
ติดต่อ
ที่ตั้ง:
เลขที่ 305 อาคาร HuiLan เลขที่ 273 Huanpu Road Guangzhou China 510620
หมวดหมู่
จดหมายข่าว