18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

為什么需要畫(huà)面幀的準(zhǔn)確性?如何探究畫(huà)面幀的準(zhǔn)確性

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

掃碼添加小助手

加入工程師交流群

背景

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

為什么需要畫(huà)面幀的準(zhǔn)確性?

當(dāng)用戶發(fā)送批注需要審閱者根據(jù)批注意見(jiàn)做出修改時(shí),如果沒(méi)有畫(huà)面校準(zhǔn),此時(shí)審閱者一臉黑人問(wèn)號(hào), 哪來(lái)的“T” ? 然后再私下溝通嗎?信息存在誤差, 審閱批注就毫無(wú)意義。

問(wèn)題一:保證瀏覽器中 Video 標(biāo)簽時(shí)間定位在 pause 時(shí)的準(zhǔn)確性

當(dāng)用戶在播放視頻時(shí)暫停,并對(duì)視頻進(jìn)行批注,然后繼續(xù)播放時(shí),有時(shí)會(huì)發(fā)現(xiàn)定位回原始批注時(shí)間點(diǎn)時(shí)畫(huà)面會(huì)有一幀的偏差。這是因?yàn)?,我們?cè)跁和r(shí)記錄了視頻的當(dāng)前時(shí)間(即 currentTime)并通過(guò) seek() 方法回到該時(shí)間點(diǎn),但是這個(gè)方法并不能保證回到的畫(huà)面完全準(zhǔn)確。

現(xiàn)象

暫停批注時(shí) 沒(méi)有矯正currentTime,當(dāng)批注發(fā)送成功后,自動(dòng)跳回批注點(diǎn),畫(huà)面發(fā)生了變化,以下是用戶所不想看到的畫(huà)面:

JS代碼如下:

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

問(wèn)題產(chǎn)生原因

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

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

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

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

解決方案

為了確保在暫停時(shí)和查看批注時(shí) currentTime 的一致性,我們?cè)跁和r(shí)對(duì) currentTime 進(jìn)行了矯正。這樣,當(dāng)用戶暫停時(shí)進(jìn)行批注,然后再設(shè)置 currentTime查看批注時(shí),就不會(huì)出現(xiàn)畫(huà)面偏差問(wèn)題。通過(guò)這種方式,我們就能保證畫(huà)面在暫停時(shí)和查看批注時(shí)的準(zhǔn)確性。

問(wèn)題二:HLS流中視頻 duration 值變化異常

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

在加載和播放視頻時(shí),瀏覽器會(huì)用Video標(biāo)簽來(lái)追蹤視頻的狀態(tài)。共有五個(gè)狀態(tài),分別是:[1]。

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

在視頻加載和播放過(guò)程中,瀏覽器Video標(biāo)簽的 readyState 會(huì)發(fā)生變化。在這個(gè)過(guò)程中,MP4文件和HLS文件的 duration 變更時(shí)機(jī)是不同的。

MP4

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

HLS

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

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

舉個(gè)例子,ffmpeg截圖如下:

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

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

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

舉個(gè)例子,三次時(shí)長(zhǎng)比較:

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

HLS三次取值時(shí)長(zhǎng)不一致的原因

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

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

舉個(gè)例子,以下是一個(gè)m3u8文件信息:

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

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

舉個(gè)例子,以下是幀信息:

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 :媒體流中的一個(gè)標(biāo)識(shí)符,用于標(biāo)識(shí)每一幀的時(shí)間戳。

pkt_duration_time :媒體流中的一個(gè)標(biāo)識(shí)符,用于標(biāo)識(shí)每一幀的持續(xù)時(shí)間。

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

尾音頻/視頻信息中的 best_effort_timestamp_time 和 pkt_duration_time 可用來(lái)計(jì)算音頻/視頻的結(jié)束時(shí)長(zhǎng)。在這個(gè)案例中,音頻結(jié)束時(shí)長(zhǎng)由 best_effort_timestamp_time 和 pkt_duration_time 相加所得(即 96.230300 + 0.023211 = 96.253511),視頻結(jié)束時(shí)長(zhǎng)也是如此(即 96.229778 + 0.016667 = 96.246445)。

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





審核編輯:劉清

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

    關(guān)注

    20

    文章

    2992

    瀏覽量

    115260
  • javascript
    +關(guān)注

    關(guān)注

    0

    文章

    525

    瀏覽量

    55819
  • HLS
    HLS
    +關(guān)注

    關(guān)注

    1

    文章

    133

    瀏覽量

    25444

原文標(biāo)題:在線視頻協(xié)同:探究畫(huà)面幀的準(zhǔn)確性

文章出處:【微信號(hào):livevideostack,微信公眾號(hào):LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

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

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

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

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

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

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

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

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

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

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

    如何使用運(yùn)行數(shù)據(jù)趨勢(shì)分析驗(yàn)證裝置準(zhǔn)確性

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

    測(cè)縫計(jì)測(cè)量數(shù)據(jù)的準(zhǔn)確性和校準(zhǔn)方法解析

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

    必知!影響手機(jī)氣密檢測(cè)準(zhǔn)確性的重要因素

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

    如何使用POT準(zhǔn)確性檢查器?

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

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

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

    如何提高OTDR測(cè)試的準(zhǔn)確性

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

    如何提高電位測(cè)量準(zhǔn)確性

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

    如何提升ASR模型的準(zhǔn)確性

    提升ASR(Automatic Speech Recognition,自動(dòng)語(yǔ)音識(shí)別)模型的準(zhǔn)確性是語(yǔ)音識(shí)別技術(shù)領(lǐng)域的核心挑戰(zhàn)之一。以下是一些提升ASR模型準(zhǔn)確性的關(guān)鍵方法: 一、優(yōu)化數(shù)據(jù)收集與處理
    的頭像 發(fā)表于 11-18 15:14 ?2774次閱讀

    如何維護(hù)電流互感器的準(zhǔn)確性

    電流互感器是電力系統(tǒng)中不可或缺的組成部分,它們負(fù)責(zé)將高電流轉(zhuǎn)換為低電流,以便進(jìn)行測(cè)量和保護(hù)。為了確保電力系統(tǒng)的穩(wěn)定運(yùn)行,電流互感器的準(zhǔn)確性至關(guān)重要。 1. 電流互感器的工作原理 電流互感器
    的頭像 發(fā)表于 11-05 09:58 ?1325次閱讀