chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內(nèi)不再提示

為什么需要畫面幀的準確性?如何探究畫面幀的準確性

LiveVideoStack ? 來源:LiveVideoStack ? 2023-03-17 09:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

背景

分秒幀是一個音視頻生產(chǎn)協(xié)作平臺,其中用戶可以通過在視頻的某個時間點提出意見或分享來溝通對視頻的修改意見。由于客戶有時需要對時間精確到幀進行定位,我們需要保證不同轉碼視頻在播放時,時間定位能夠精確到毫秒級別。在滿足這一要求的同時,我們還必須考慮不同網(wǎng)絡條件、不同端和不同使用場景。我們在解決這些問題的過程中發(fā)現(xiàn)了一些問題,本文將對這些問題進行討論。

為什么需要畫面幀的準確性?

當用戶發(fā)送批注需要審閱者根據(jù)批注意見做出修改時,如果沒有畫面校準,此時審閱者一臉黑人問號, 哪來的“T” ? 然后再私下溝通嗎?信息存在誤差, 審閱批注就毫無意義。

問題一:保證瀏覽器中 Video 標簽時間定位在 pause 時的準確性

當用戶在播放視頻時暫停,并對視頻進行批注,然后繼續(xù)播放時,有時會發(fā)現(xiàn)定位回原始批注時間點時畫面會有一幀的偏差。這是因為,我們在暫停時記錄了視頻的當前時間(即 currentTime)并通過 seek() 方法回到該時間點,但是這個方法并不能保證回到的畫面完全準確。

現(xiàn)象

暫停批注時 沒有矯正currentTime,當批注發(fā)送成功后,自動跳回批注點,畫面發(fā)生了變化,以下是用戶所不想看到的畫面:

JS代碼如下:

JavaScript
var videoDom =  document.getElementsByTagName('video')[0]
videoDom.pause()
var currenttime = videoDom.currentTime
videoDom.currentTime = currentTime // 此時畫面有概率發(fā)生改變

問題產(chǎn)生原因

我們在解決這個問題時發(fā)現(xiàn),這個問題是由 JavaScript 執(zhí)行機制導致的。在瀏覽器中,JavaScript 是單線程執(zhí)行的。當我們調(diào)用 pause 方法時,實際上是將該操作添加到了事件隊列中。當事件輪詢到這個暫停操作時,才會真正執(zhí)行 pause 方法。而在這個過程中,獲取 currentTime 的操作已經(jīng)完成了。這就導致了兩個操作之間的時間差。如果這個時間差恰好發(fā)生在視頻幀切換的時候,就會導致畫面偏差一幀。

舉個例子,如果一個視頻有 25 幀,那么第 0-40ms 是第一幀畫面,第 41-80ms是第二幀畫面,以此類推。

bf6249b0-c421-11ed-bfe3-dac502259ad0.jpg

當用戶在播放第一幀畫面時按下暫停按鈕,我們認為JavaScript 會立即執(zhí)行邏輯并通知 Video 標簽停止播放,但實際上暫停操作會被加入事件隊列中等待執(zhí)行。如果暫停操作前面還有其他事件正在排隊,等執(zhí)行到暫停操作時就會有一定的時間差。如果這個時間差恰好發(fā)生在第 41 ms,畫面會跳到下一幀畫面。但是,我們拿到的currentTime還是第一幀畫面的。

解決方案

為了確保在暫停時和查看批注時 currentTime 的一致性,我們在暫停時對 currentTime 進行了矯正。這樣,當用戶暫停時進行批注,然后再設置 currentTime查看批注時,就不會出現(xiàn)畫面偏差問題。通過這種方式,我們就能保證畫面在暫停時和查看批注時的準確性。

問題二:HLS流中視頻 duration 值變化異常

在我們的應用中,我們需要確保各端的視頻總時長和總幀數(shù)一致。為了實現(xiàn)這個目的,我們通常會在瀏覽器 Video 標簽的 durationchange 事件觸發(fā)時獲取視頻總時長,并通過幀率計算出總幀數(shù)。durationchange 事件是當視頻總時長發(fā)生改變時觸發(fā)的。當視頻加載前,總時長為默認值"NaN",當視頻加載完成后,durationchange 事件觸發(fā),總時長會變成視頻的實際總時長。

在加載和播放視頻時,瀏覽器會用Video標簽來追蹤視頻的狀態(tài)。共有五個狀態(tài),分別是:[1]。

Constant Value Description
HAVE_NOTHING 0 沒有關于音頻/視頻是否就緒的信息
HAVE_METADATA 1 音頻/視頻已初始化
HAVE_CURRENT_DATA 2 數(shù)據(jù)已經(jīng)可以播放 (當前位置已經(jīng)加載) 但沒有數(shù)據(jù)能播放下一幀的內(nèi)容
HAVE_FUTURE_DATA 3 當前及至少下一幀的數(shù)據(jù)是可用的 (換句話來說至少有兩幀的數(shù)據(jù))
HAVE_ENOUGH_DATA 4 可用數(shù)據(jù)足以開始播放 - 如果網(wǎng)速得到保障 那么視頻可以一直播放到底

在視頻加載和播放過程中,瀏覽器Video標簽的 readyState 會發(fā)生變化。在這個過程中,MP4文件和HLS文件的 duration 變更時機是不同的。

MP4

在 MP4 文件的加載過程中,durationchange 事件會在資源開始加載(loadstart)之后,在元數(shù)據(jù)已加載(loadedmetadata)之前觸發(fā)。此時,瀏覽器會解析 MP4 文件中的 moov box,并獲取視頻時長。因此,在 durationchange 事件觸發(fā)時,可以獲取到較為準確的 duration 。

HLS

我們發(fā)現(xiàn)在加載 HLS 流時,瀏覽器 video 標簽的 duration 會發(fā)生多次變更。

第一次變更在loadstart之后 loadedmetadata 之前 并且 readyState === 0 時調(diào)用,此時已拿到相對準確的 duration,≈ ffmpeg取到的 durantion。

舉個例子,ffmpeg截圖如下:

bf7d369e-c421-11ed-bfe3-dac502259ad0.png

第二次變更在loadstart之后 loadedmetadata 之前 并且 readyState === 1 時調(diào)用,此時拿到的時長由 m3u8 文件解析得到。

第三次變更在加載到最后一片 ts 時調(diào)用。我們發(fā)現(xiàn)這三次變更的時長并不一致。因此我們需要在這三次變更中取一個更準確的時長作為視頻時長。

舉個例子,三次時長比較:

bf8fec9e-c421-11ed-bfe3-dac502259ad0.png

HLS三次取值時長不一致的原因

第一次:在loadstart后loadedmetadata前readyState === 0時調(diào)用,視頻的實際時長已被解析出來,時機和機制類似于MP4文件(第一次調(diào)用時就可以獲取到duration的值)。

第二次:在loadstart后loadedmetadata前readyState === 1時調(diào)用,hls.js解析完m3u8索引文件并通過#EXTINF計算出視頻的實際時長。

舉個例子,以下是一個m3u8文件信息:

bfa42916-c421-11ed-bfe3-dac502259ad0.png

第三次:當加載完最后一片ts 此時所有音頻和視頻幀信息已經(jīng)可以全部拿到。

舉個例子,以下是幀信息:

c01755c6-c421-11ed-bfe3-dac502259ad0.png

c04acae6-c421-11ed-bfe3-dac502259ad0.png

c0a53a08-c421-11ed-bfe3-dac502259ad0.png

c0ba96f0-c421-11ed-bfe3-dac502259ad0.png

best_effort_timestamp_time :媒體流中的一個標識符,用于標識每一幀的時間戳。

pkt_duration_time :媒體流中的一個標識符,用于標識每一幀的持續(xù)時間。

通常,best_effort_timestamp_time 和 pkt_duration_time 會用在音視頻同步、流量控制、緩存等方面。

尾音頻/視頻信息中的 best_effort_timestamp_time 和 pkt_duration_time 可用來計算音頻/視頻的結束時長。在這個案例中,音頻結束時長由 best_effort_timestamp_time 和 pkt_duration_time 相加所得(即 96.230300 + 0.023211 = 96.253511),視頻結束時長也是如此(即 96.229778 + 0.016667 = 96.246445)。

我們發(fā)現(xiàn),音頻結束時長 - 音頻首個best_effort_timestamp_time約等于第三次獲取的duration。具體來說,音頻的結束時間比視頻的結束時間長,同時音頻的第一個時間戳早于視頻的第一個時間戳。為了包含最完整的時間長度,需要將音頻和視頻時間戳中的最小值和最大值來進行計算。這種情況可能出現(xiàn)在音頻和視頻的錄制或處理過程中,需要進行相應的調(diào)整以確保兩者之間的同步和一致性。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • JAVA
    +關注

    關注

    20

    文章

    2997

    瀏覽量

    115610
  • javascript
    +關注

    關注

    0

    文章

    525

    瀏覽量

    55966
  • HLS
    HLS
    +關注

    關注

    1

    文章

    133

    瀏覽量

    25572

原文標題:在線視頻協(xié)同:探究畫面幀的準確性

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    確保X光設備檢測的有效準確性的關鍵技巧

    在工業(yè)和安全領域,X光設備檢測已成為不可或缺的重要環(huán)節(jié)。然而,許多用戶常常面臨檢測效果不理想、準確性不足的問題,影響生產(chǎn)效率和安全保障。如何確保X光檢測設備能夠發(fā)揮最大效能,準確捕捉目標信息,是當前
    的頭像 發(fā)表于 11-18 11:27 ?77次閱讀

    電能質(zhì)量在線監(jiān)測裝置的精度等級對其測量結果的準確性有何影響?

    電能質(zhì)量在線監(jiān)測裝置的精度等級是衡量其測量結果準確性的 核心量化指標 ,直接決定了測量值與 “真實值” 的偏差范圍。精度等級越高(如 A 級),誤差限值越嚴格,測量結果的準確性越高;反之(如 B/C
    的頭像 發(fā)表于 09-26 17:40 ?1013次閱讀

    電能質(zhì)量在線監(jiān)測裝置定位諧波源的準確性有多高?

    電能質(zhì)量在線監(jiān)測裝置定位諧波源的準確性 沒有固定數(shù)值 ,而是受 “ 監(jiān)測網(wǎng)絡設計、技術參數(shù)精度、算法適配、電網(wǎng)工況復雜 ” 四大核心因素影響,呈現(xiàn) “ 場景化差異 ”—— 在理想條件下(如低壓配
    的頭像 發(fā)表于 09-26 15:20 ?359次閱讀

    電能質(zhì)量監(jiān)測中,數(shù)據(jù)校驗系統(tǒng)的準確性如何影響暫態(tài)過電壓指標?

    在電能質(zhì)量監(jiān)測中,暫態(tài)過電壓的核心監(jiān)測價值在于 精準捕捉 “短時、突發(fā)” 的電壓異常特征 (關鍵指標包括幅值、持續(xù)時間、上升時間、波形形態(tài)),而數(shù)據(jù)校驗系統(tǒng)的準確性直接決定了這些特征參數(shù)的測量可信度
    的頭像 發(fā)表于 09-25 17:57 ?495次閱讀

    如何保障電能質(zhì)量監(jiān)測裝置的準確性?

    保障電能質(zhì)量監(jiān)測裝置(以下簡稱 “裝置”)的準確性,需貫穿其 “ 選型→安裝→運行維護→校準→報廢 ” 全生命周期,核心是通過 “ 源頭把控硬件精度、過程規(guī)避干擾與退化、定期驗證與修正 ”,確保裝置
    的頭像 發(fā)表于 09-23 16:03 ?457次閱讀

    如何保證數(shù)據(jù)校驗系統(tǒng)的時間同步以提高準確性?

    在電能質(zhì)量監(jiān)測的數(shù)據(jù)校驗系統(tǒng)中, 時間同步的準確性直接決定了多監(jiān)測點數(shù)據(jù)的時空一致、暫態(tài)事件的時序匹配度,以及校驗結果的可信度 。要保證時間同步以提升數(shù)據(jù)校驗準確性,需從 “協(xié)議選擇、硬件保障
    的頭像 發(fā)表于 09-19 11:28 ?316次閱讀

    哪些環(huán)境因素會對電能質(zhì)量在線監(jiān)測裝置的校驗準確性產(chǎn)生影響?

    電能質(zhì)量在線監(jiān)測裝置的校驗準確性,核心依賴于裝置硬件(如采樣傳感器、模數(shù)轉換器 ADC、基準源)、信號傳輸鏈路及校驗標準源的穩(wěn)定工作。而環(huán)境因素通過干擾上述環(huán)節(jié)的性能,直接或間接導致校驗數(shù)據(jù)偏差
    的頭像 發(fā)表于 09-18 11:14 ?448次閱讀
    哪些環(huán)境因素會對電能質(zhì)量在線監(jiān)測裝置的校驗<b class='flag-5'>準確性</b>產(chǎn)生影響?

    如何確保電能質(zhì)量在線監(jiān)測裝置的數(shù)據(jù)校驗的準確性?

    確保電能質(zhì)量在線監(jiān)測裝置(以下簡稱 “監(jiān)測裝置”)數(shù)據(jù)校驗的準確性,需圍繞 “ 標準溯源、流程規(guī)范、環(huán)境控制、數(shù)據(jù)審核、全周期追溯 ” 五大核心環(huán)節(jié),建立全鏈條管控機制,覆蓋校驗前準備、校驗過程執(zhí)行
    的頭像 發(fā)表于 09-18 11:05 ?369次閱讀
    如何確保電能質(zhì)量在線監(jiān)測裝置的數(shù)據(jù)校驗的<b class='flag-5'>準確性</b>?

    如何使用運行數(shù)據(jù)趨勢分析驗證裝置準確性?

    利用運行數(shù)據(jù)趨勢分析驗證電能質(zhì)量在線監(jiān)測裝置準確性,核心邏輯是 通過長期采集的電網(wǎng)運行數(shù)據(jù),判斷其趨勢是否符合電網(wǎng)實際規(guī)律、是否具備穩(wěn)定性與一致 —— 若裝置準確,其輸出的數(shù)據(jù)趨勢應與電網(wǎng)工況(如
    的頭像 發(fā)表于 09-18 10:33 ?327次閱讀
    如何使用運行數(shù)據(jù)趨勢分析驗證裝置<b class='flag-5'>準確性</b>?

    測縫計測量數(shù)據(jù)的準確性和校準方法解析

    在結構物安全監(jiān)測領域,數(shù)據(jù)準確性是評估工程健康狀態(tài)的核心依據(jù)。振弦式測縫計作為主流裂縫監(jiān)測設備,其測量精度直接影響裂縫發(fā)展趨勢的判斷。那么如何確保測縫計測量數(shù)據(jù)的準確性以及如何校準?下面是南京峟思給
    的頭像 發(fā)表于 07-07 13:56 ?414次閱讀
    測縫計測量數(shù)據(jù)的<b class='flag-5'>準確性</b>和校準方法解析

    必知!影響手機氣密檢測準確性的重要因素

    移動設備防水防塵技術升級,手機氣密檢測成保障產(chǎn)品可靠的關鍵。但檢測準確性受設備精度、環(huán)境穩(wěn)定性、操作規(guī)范性及手機結構設計局限等因素干擾,影響測試結果、產(chǎn)品良品率和用戶體驗。影響手機氣密
    的頭像 發(fā)表于 07-04 14:26 ?571次閱讀
    必知!影響手機氣密<b class='flag-5'>性</b>檢測<b class='flag-5'>準確性</b>的重要因素

    如何使用POT準確性檢查器?

    :95:0.00% 分辨率視覺對象等級挑戰(zhàn) (VOC) 數(shù)據(jù)集未經(jīng)英特爾驗證。如 Yolo-v4-tf 文檔 中所提到,英特爾已使用上下文中常見的對象 (COCO) 數(shù)據(jù)集驗證了準確性。通過
    發(fā)表于 03-06 08:04

    如何設置準確性檢查器支持的“Input_height”和“Input_width”適配器參數(shù)?

    根據(jù)準確性檢查器 (AC) 工具文檔設置input_width并input_height參數(shù)在量化過程中遇到此錯誤: adapter.yolo_v3 specifies unknown options: [\'input_width\', \'input_height\']
    發(fā)表于 03-06 07:45

    如何提高OTDR測試的準確性

    OTDR(光時域反射儀)是光纜線路故障定位和光纖特性測量的重要工具,提高OTDR測試的準確性對于確保光纜線路的穩(wěn)定運行至關重要。以下是一些提高OTDR測試準確性的方法: 一、準確設置OTDR參數(shù)
    的頭像 發(fā)表于 12-31 09:25 ?1779次閱讀

    如何提高電位測量準確性

    在電子工程和物理實驗中,電位測量是一項基本而重要的任務。電位測量的準確性直接影響到實驗結果的可靠和產(chǎn)品的安全。 1. 選擇合適的測量設備 選擇合適的測量設備是提高電位測量準確性的第
    的頭像 發(fā)表于 12-28 13:56 ?1297次閱讀