色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

MPEG-DASH視頻流中6種最常見的隱患

LiveVideoStack ? 來源:LiveVideoStack ? 作者:LiveVideoStack ? 2022-05-30 10:32 ? 次閱讀

作為dash.js項目的首席開發人員,我們經常面對這樣的情況:我們必須評估DASH傳輸失敗是由dash.js播放器實現中的實際bug引起,還是由錯誤的內容生成引起。在本文中,我們將分享一些在DASH傳輸中出現的常見錯誤,以及我們通常在面對這些錯誤時所總結的一些見解。

/ DRM的特定問題 /

“想要安全,請使用https”

在播放受到DRM保護的視頻的時候,經常會出現一個與底層應用托管有關的錯誤。為了能夠使用EME(加密媒體擴展,DRM播放以及與CDM通信時必須用到的W3C API),Web瀏覽器通常必須使用https。如果使用http調用應用,dash.js將輸出警告:無法進行DRM播放。

No supported version of EME detected on this user agent! - Attempts to play encrypted content will fail!

保護自己免受保護

DRM本身是一個比較復雜的話題。有一個顯而易見的事實是:有三種主要的DRM系統,分別是:Google Widevine、Microsoft PlayReady和Apple FairPlay。在Google Chrome和Mozilla Firefox中,需要Widevine才能啟動DRM播放,但是老款Edge卻只支持PlayReady。一些設備(如智能電視或者FireTV)同時支持Widevine和PlayReady。因此,在特定平臺試圖播放DRM保護內容之前,我們需要評估具體平臺底層對DRM的功能支持。當使用dash.js時,一旦找到并選擇了合適的DRM系統,就會顯示如下輸出:

DRM: KeySystem Access Granted (com.widevine.alpha)!

如果某個平臺支持多種DRM系統,那么定義選擇優先級會很有用。


{    "com.widevine.alpha": {        "serverURL": "someurl",        "priority": 1    },    "com.microsoft.playready": {        "serverURL": "someurl",        "priority": 2    }}

比如按照上例中的配置,dash.js會優先考慮使用Widewine DRM, 而不是PlayReady。

你可以在之前的博文中了解到更多DRM知識:https://websites.fraunhofer.de/video-dev/enabling-hardware-drm-on-android-chrome-using-the-encrypted-media-extensions/

https://websites.fraunhofer.de/video-dev/dash-js-license-acquisition-for-multiple-eme-versions/

模式化一切

在《dash.js:多個EME版本的許可獲取》(dash.js: License acquisition for multiple EME versions)[1]一文中,我們描述了dash.js 內容保護模型的概念,從中得到的關鍵點是:dash.js實現了三種不同版本的EME(被封裝在不同的內容保護模型中)。遺憾的是,很多設備(向那些“樂于”為智能電視和機頂盒開發的人問候)需要定制其中一種保護模型。在此類設備上調試DRM問題時,這件事很值得做:總是檢查EME調用是否需要被前置或者另做修改。

/播放時序的特定問題 /

“請保證您的播放器的當前播放時間不要掉出滑動窗口”

當開發DASH播放器或者創建DASH MPD時,一個關鍵概念是要理解DASH時序模型。你可以通過閱讀

DASH-IF IOP guidelines[2]DASH-IF implementation guidelines: restricted timing model[3]了解DASH時序模型。

我們經常遇到的一個問題由視頻流引起,其中可用媒體切片的呈現時間在時移緩沖區之外。當給出了帶有 的明確時間信息時,播放器能夠調整自身操作。下圖就說明了這種調整:

2ce061c4-dfae-11ec-ba43-dac502259ad0.png

播放器使用 MPD@timeShiftBufferDepth屬性確定DVR窗口。除此之外,從“UTC now”時間中減去當前的即時直播延遲時間,就能得到“實際的DVR窗口時長”(比“名義的DVR窗口時長”要短)。在直播期間,上層應用只能在有效的DVR窗口內進行播放移動。

在上面的示例中,最后一個可用切片(第5個切片)的呈現結束時間在DVR窗口之外。在這種情況下,播放器將找不到可供下載和播放的切片。在這種情況下,dash.js可以將anchor time(基準時間)調整到最近已播放切片的presentation end time(該切片的呈現截止時間),從而得出用于計算有效DVR窗口的調整值,以避免播放停頓。該功能通過調整設置參數實現,如下所示:


player.updateSettings({   streaming:     {     calcSegmentAvailabilityRangeFromTimeline: true    }})

使用Offset避免Upset

為了能夠在DASH視頻流中插入廣告,MPD經常使用多種分段時間。讓我們來看一個非常簡單的示例:我們想向主要內容(main content)添加一個中貼片廣告。

2d133fa4-dfae-11ec-ba43-dac502259ad0.png

這種情況下,我們在切換為廣告內容前,先播放8秒主要內容。廣告結束后,我們重新播放主要內容。所有分段持續時間總和構成了18秒媒體呈現持續時間。

為了將視頻切片對應到媒體緩沖區中的目標位置,MSE對切片的內部呈現時間戳(既最早的呈現時間EPT,Earliest Presentation Time)添加了可配置的timestampOffset。因此,應用可以通過調整timestampOffset控制切片在緩沖區中的位置。

現在,以上所述對我們的示例而言又有什么意義呢?讓我們假設主要內容中的第一個切片和廣告內容中的第一個切片的EPT為0。在DASH視頻流中,一個切片的呈現時間與其分段時間的開始有關。如果我們僅僅將每個切片的MSE.timestampOffset設置為每個分段時間的起始時間會發生什么?如下所示:分段時間1和分段時間2沒有問題。


--- Period 1 ---MSE.timestampOffset = Period@start = 0BufferPosition(Seg 1) = MSE.timestampOffset + EPT = 0 + 0 = 0 BufferPosition(Seg 4) = MSE.timestampOffset + EPT = 0 + 6 = 6 --- Period 2 --- MSE.timestampOffset = Period@start = 8BufferPosition(Seg 1) = MSE.timestampOffset + EPT = 8 + 0 = 8 BufferPosition(Seg 2) = MSE.timestampOffset + EPT = 8 + 2 = 10

但問題出現在分段時間3。因為我們從第5個切片開始,EPT沒有設置為0。


--- Period 3 ---MSE.timestampOffset = Period@start = 12BufferPosition(Seg 5) = MSE.timestampOffset + EPT = 12 + 8 = 20 

沒有將分段時間3的第一個切片定位在媒體呈現時間線中的第12秒,而是在第20秒時結束了。幸運的是,有一個方法很容易解決剛剛的問題:在MPD中,我們可以為每個時間段分配一個單獨的@presentationTimeOffset (注意:在此示例中,我們做了一些簡化處理)。

在MPD中,對于每個 Representation而言,@presentationTimeOffset都不同。dash.js 使用@presentationTimeOffset來計算 MSE.timestampOffset。我們將@presentationTimeOffset的值設置為該時段中第一個切片的EPT:


--- Period 3 ---MSE.timestampOffset = Period@start - @presentationTimeOffset = 12 - 8 = 4BufferPosition(Seg 5) = MSE.timestampOffset + EPT = 4 + 8 = 12 BufferPosition(Seg 6) = MSE.timestampOffset + EPT = 4 + 10 = 14 

現在所有切片都處在媒體緩沖區的正確位置,我們終于得到了一個連續的媒體呈現時間線。

關注緩沖——前方空隙

基于MSE的播放器有一個大問題,那就是時間線中的時間空隙。大部分MSE實現無法處理這種情況,因為其中的媒體緩沖并不連續,而且一旦播放位置到達空隙,緩沖就會停止。那么當我們在討論空隙以及產生空隙的原因時,到底意味著什么?從我們的經驗來看,空隙主要由以下兩個原因引起:

  • 后續時間段沒有對齊,結果時間段邊界處的切片也無法對齊。

  • 切片中的總媒體樣本持續時間短于其呈現持續時間所指示的時間。

最終就導致了如下情況的發生:

2d6b2462-dfae-11ec-ba43-dac502259ad0.png

在這種情況下,切片1和切片2完美對齊,然而切片2和切片3之間有一個空隙。為了避免出現播放停止,dash.js會適時啟用一個復雜的空隙跳轉機制。可以通過如下設置啟用和配置該機制:

player.updateSettings({   streaming:     {            jumpGaps: true,            jumpLargeGaps: true,            smallGapLimit: 1.5,    }})

/ 結語 /

本篇文章中,我們分享了MPEG-DASH視頻流中6種最常見的隱患。

當播放受到DRM保護的視頻時,我們強調需要https,并概括了使用特定DRM系統平臺的重要性。除此之外,我們推動了實現EME舊版本的需求。

MPEG-DASH的時序模型并不容易理解。錯誤的DVR窗口會導致播放停止和失敗。在多時段廣告插入的背景下,使用MPD的具體屬性將時間段對齊以避免媒體緩沖的不連續很重要。此外,當MSE實現無法處理媒體緩沖中的空隙時,應避免媒體時間線中的空隙。

dash.js播放器能夠處理大部分以上情況,并幫助識別和解決此類問題。

審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 視頻傳輸
    +關注

    關注

    3

    文章

    107

    瀏覽量

    21033
  • DRM
    DRM
    +關注

    關注

    0

    文章

    46

    瀏覽量

    15134

原文標題:MPEG-DASH視頻傳輸中的常見問題

文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    X平臺推出短視頻信息流,瞄準美國TikTok用戶

    的軟件,用戶將在底部菜單欄里看到一個新增的視頻標簽。只需輕輕一點,用戶便能進入短視頻信息流,享受上滑屏幕翻閱系統推薦的其他短視頻的便捷體驗。 與TikTok等短
    的頭像 發表于 01-22 10:36 ?67次閱讀

    變頻器過(OC)故障維修及案例分析

    ? ? ? 變頻器作為現代工業控制的關鍵設備,其穩定運行對于保障生產線的連續性和效率至關重要。然而,在實際應用,變頻器故障時有發生,其中過(OC)故障是最常見且影響較為嚴重的一
    的頭像 發表于 12-13 07:34 ?438次閱讀
    變頻器過<b class='flag-5'>流</b>(OC)故障維修及案例分析

    DVI在高清視頻傳輸的優勢 DVI接口的常見問題解決

    DVI(Digital Visual Interface,數字視覺接口)在高清視頻傳輸具有顯著優勢,并且針對DVI接口的常見問題,也有一系列有效的解決方法。 DVI在高清視頻傳輸
    的頭像 發表于 12-11 15:50 ?646次閱讀

    常見視頻接口的優勢與劣勢

    和局限性。 常見視頻接口 1. VGA(Video Graphics Array) 優勢: 兼容性強: VGA接口是最早的模擬視頻接口之一,至今仍被廣泛使用,尤其是在一些老舊的顯示器和投影儀上。 成本
    的頭像 發表于 10-30 16:14 ?529次閱讀

    常見視頻接口有哪些

    。它是一被廣泛使用的視頻接口標準,也叫做基帶視頻或RCA視頻。CVBS接口以模擬波形來傳輸數據,包含色差(色調和飽和度)和亮度(光亮)信息,并將它們同步在消隱脈沖
    的頭像 發表于 10-09 15:58 ?959次閱讀

    盤點那些常見視頻接口

    我們熟知的一些常見視頻接口,發展至今在日常使用已經漸漸少了。但是在工業領域的音視頻連接,依然能看到其身影。這些看似消失的接口,它們現在發展成什么樣子了?本期我們將做一個大盤點。
    的頭像 發表于 09-09 14:34 ?638次閱讀

    嵌入式五常見模擬電路

    在嵌入式系統設計,模擬電路是不可或缺的一部分。它們負責處理真實世界的信號,如聲音、溫度、壓力等,并將這些信號轉換成數字信號,或者對這些信號進行放大、濾波等處理。以下是五常見的模擬
    發表于 08-28 15:31

    ASI信號和SDI信號的區別

    為Asynchronous Serial Interface,即異步串行接口,是一用于傳送碼的標準接口,尤其在DVB(Digital Video Broadcasting,數字視頻廣播)系統中常用于
    的頭像 發表于 08-20 14:27 ?2791次閱讀

    功能測試覆蓋中最常見的是什么方法

    功能測試覆蓋是軟件測試過程的一個重要環節,它主要關注軟件產品的功能實現是否符合需求規格說明。在功能測試覆蓋,有多種方法可以采用,以確保測試的全面性和有效性。本文將詳細介紹功能測試覆蓋中最常見
    的頭像 發表于 05-30 14:55 ?799次閱讀

    如何通過FX3將USB3視頻流轉換為RGB視頻

    通過 FX3 將 USB 3 視頻流轉換為 RGB 視頻
    發表于 05-22 06:36

    PCB板的顏色應該怎么選?為什么綠色最常見

    使用的,更為人熟悉。但是不同的PCB我們應該怎么去選擇PCB的顏色呢,為什么綠色更常用呢?1綠色PCB板綠色是最常見的PCB顏色,也是最經濟、使用最廣泛的選擇。這是因為在傳
    的頭像 發表于 05-10 08:20 ?1071次閱讀
    PCB板的顏色應該怎么選?為什么綠色<b class='flag-5'>最常見</b>?

    探討SONiC-DASH網絡可編程技術

    DASH 在傳統 SONiC 管理的底層基礎設施之上建立了overlay服務。這種overlay服務或應用利用管道作為自適應處理單元,允許創建自定義處理邏輯,每個階段都描述了一系列表,表項根據指定的標準匹配數據包并執行相應的操作。
    的頭像 發表于 04-25 13:00 ?1215次閱讀
    探討SONiC-<b class='flag-5'>DASH</b>網絡可編程技術

    電路的過壓保護和過保護的區別

    電路的過壓保護和過保護的區別? 過壓保護和過保護是電路中常見的保護措施,用以保護電路的元件或設備免受過電壓和過電流的損害。雖然它們的
    的頭像 發表于 02-06 09:07 ?2501次閱讀

    變頻器過載和過有什么區別?

    和過載屬于變頻器最常見的故障,要區別變頻器到底是過跳閘還是過載跳閘,首先就要搞清楚他們之間的區別。
    發表于 02-03 15:26 ?709次閱讀

    最常見的發動機怠速抖動問題及原因

    最常見的發動機怠速抖動問題及原因 發動機怠速抖動問題是一常見的車輛故障,它通常會導致發動機運行不穩定,并伴有抖動感。這種問題可能由多種原因引起,本文將詳細介紹最常見的原因及解決辦法。
    的頭像 發表于 02-02 10:40 ?3099次閱讀
    主站蜘蛛池模板: 69国产精品人妻无码免费| 久久久久久久网站| 九九免费的视频| 男男肉肉互插腐文| 性色无码AV久久蜜臀| 影音先锋av333资源网| 大胆国模一区二区三区伊人 | 呜呜别塞了啊抽插| 60老妇性xxxxhd| 玖玖热视频一区二区人妻| 熟女人妻AV五十路六十路| 中文字幕久久熟女人妻AV免费| 囯产精品麻豆巨作久久| 男插女高潮一区二区| 69式国产真人免费视频| 男女啪啪久久精品亚洲A| gogo免费在线观看| 色姐妹久久综合在线av| 国产精品外围在线观看| 日本韩国欧美一区| 高清国产激情视频在线观看| 男女疯狂一边摸一边做羞羞视频| 8050午夜二级一片| 欧美精品成人久久网站| 纯肉高H种马艳遇风流多| 手机观看毛片| 国产在线精彩视频| 伊人yinren6综合网色狠狠 | 秘密影院久久综合亚洲综合| pkf女尸studiosxnxx| 理论937| 99视频在线国产| 麻豆人妻换人妻X99| 一久久| 欧美三级不卡在线观线看| 国产成人精品在视频| 野草视频在线观看| 果冻传媒2021一二三区| 四川老师边上网课边被啪视频| 国模精品一区二区三区视频| 131美女爱做视频午夜剧场|