国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【音視頻】ffplay解析-音視頻同步

這篇具有很好參考價(jià)值的文章主要介紹了【音視頻】ffplay解析-音視頻同步。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

音視頻同步

主要解析:以音頻為基準(zhǔn),讓視頻同步音頻


思路

  • 視頻慢了則丟掉部分視頻幀(視覺->畫?跳幀)

  • 視頻快了則繼續(xù)渲染上?幀文章來源地址http://www.zghlxwxcb.cn/news/detail-730877.html


具體實(shí)現(xiàn)

一個(gè)國際標(biāo)準(zhǔn):音頻幀-視頻幀時(shí)間戳的差值在-100ms~25ms內(nèi)流暢
1.差值=音頻播放時(shí)間戳-視頻播放時(shí)間戳----diff=pts_audio-pts_video(注意區(qū)分?。。?2.判斷邏輯:
	(無法感知區(qū)間:min=-125ms,max=45ms)
	- max<diff:畫后音前,視頻落后了,丟幀不渲染(趕進(jìn)度),直接下一幀
	- min<diff<max:正常渲染
	- diff<min:畫前音后,視頻超前了,持續(xù)顯示當(dāng)前幀,
			   視頻播放線程先睡會(huì)_阻塞:sleep(diff-max)
			   然后繼續(xù)渲染當(dāng)前視頻幀

ffplay具體源碼

 /* if video is slave, we try to correct big delays by
    duplicating or deleting a frame
    通過重復(fù)幀或者刪除幀來糾正延遲*/
 diff = get_clock(&is->vidclk) - get_master_clock(is);

 /* skip or repeat frame. We take into account the
    delay to compute the threshold. I still don't know
    if it is the best guess */
 sync_threshold = FFMAX(AV_SYNC_THRESHOLD_MIN,
                        FFMIN(AV_SYNC_THRESHOLD_MAX, delay));
 if (!isnan(diff) && fabs(diff) < is->max_frame_duration) { // diff在最大幀duration內(nèi)
     if (diff <= -sync_threshold) {      // 視頻已經(jīng)落后了
         delay = FFMAX(0, delay + diff); // 上一幀持續(xù)的時(shí)間往小的方向去調(diào)整
     }
     else if (diff >= sync_threshold && delay > AV_SYNC_FRAMEDUP_THRESHOLD) {
         // 視頻超前
         delay = delay + diff; // 上一幀持續(xù)時(shí)間往大的方向去調(diào)整
         av_log(NULL, AV_LOG_INFO, "video: delay=%0.3f A-V=%f\n",
                delay, -diff);
     }
     else if (diff >= sync_threshold) {
         // 上一幀持續(xù)時(shí)間往大的方向去調(diào)整
         delay = 2 * delay; // 保持在 2 * AV_SYNC_FRAMEDUP_THRESHOLD內(nèi), 即是2*0.1 = 0.2秒內(nèi)
     } else {
         // 音視頻同步精度在 -sync_threshold ~ +sync_threshold
         // 其他條件就是 delay = delay; 維持原來的delay, 依靠frame_timer+duration和當(dāng)前時(shí)間進(jìn)行對(duì)比
     }
 }

到了這里,關(guān)于【音視頻】ffplay解析-音視頻同步的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 音視頻 ffplay簡單過濾器

    視頻旋轉(zhuǎn) 視頻反轉(zhuǎn) 視頻旋轉(zhuǎn)和反轉(zhuǎn) 音頻變速播放 視頻變速播放 音視頻同時(shí)變速 推薦一個(gè)零聲學(xué)院項(xiàng)目課,個(gè)人覺得老師講得不錯(cuò),分享給大家: 零聲白金學(xué)習(xí)卡(含基礎(chǔ)架構(gòu)/高性能存儲(chǔ)/golang云原生/音視頻/Linux內(nèi)核) https://xxetb.xet.tech/s/VsFMs

    2024年02月10日
    瀏覽(34)
  • ffplay播放器剖析(7)----音視頻暫停模塊分析

    1.通過SDL觸發(fā)事件調(diào)用toggle_pause 2.toggle_pause調(diào)用stream_toggle_pause 3.stream_toggle_pause修改暫停變量 這個(gè)函數(shù)可以知道,如果當(dāng)前狀態(tài)是暫停的話,那么就會(huì)進(jìn)入if函數(shù) 看一下if函數(shù)流程,首先我們知道我們 is-frame_timer += av_gettime_relative() / 1000000.0 - is-vidclk.last_updated; 這個(gè)就是在之前的基

    2024年02月16日
    瀏覽(26)
  • 音視頻開發(fā):ffplay使用ffmpeg濾鏡實(shí)現(xiàn)倍速播放

    曾經(jīng)為實(shí)現(xiàn)倍速播放使用過ffmpeg,對(duì)音頻使用atempo濾鏡即可實(shí)現(xiàn)變速不變調(diào)。但是當(dāng)時(shí)效果并不是特別好,和soundtouch相比處理后的音質(zhì)有明顯的區(qū)別。最近用新版本的ffmpeg濾鏡重新實(shí)現(xiàn)了倍速播放,發(fā)現(xiàn)效果變好,已經(jīng)達(dá)到可接受的程度,所以在此分享具體實(shí)現(xiàn)。 ffmpeg倍速

    2024年02月03日
    瀏覽(72)
  • 【音視頻流媒體】 3、ffmpeg、ffplay、ffprobe 超詳細(xì)介紹

    【音視頻流媒體】 3、ffmpeg、ffplay、ffprobe 超詳細(xì)介紹

    ffmpeg中文文檔 常見測(cè)試視頻 ffmpeg 大神筆記 ffmpeg 的 release 是 Linux Static Build ,即靜態(tài)庫(各庫已被打包到可執(zhí)行程序中),而不是動(dòng)態(tài)鏈接庫(共享機(jī)器上的 so),所以非常方便部署(sqlite 也是這樣),這是ffmpeg官網(wǎng)下載地址 rtsp-simple-server用法 注意,該命令會(huì)找時(shí)間點(diǎn)附近

    2024年02月08日
    瀏覽(94)
  • 音視頻同步

    音視頻同步

    音視頻同步的目的是為了使播放的聲音和顯示的畫面保持一致。 視頻按幀播放,圖像顯示設(shè)備每次顯示一幀畫面,視頻播放速度由幀率確定,幀率指示每秒顯示多少幀; 音頻按采樣點(diǎn)播放,聲音播放設(shè)備每次播放一個(gè)采樣點(diǎn),聲音播放速度由采樣率確定,采樣率指示每秒播

    2023年04月09日
    瀏覽(22)
  • Qt/C++音視頻開發(fā)46-音視頻同步保存到MP4

    用ffmpeg單獨(dú)做視頻保存不難,單獨(dú)做音頻保存也不難,難的是音視頻同步保存到MP4中,重點(diǎn)是音視頻要同步,其實(shí)這也不難,只要播放那邊音視頻同步后的數(shù)據(jù),寫入到文件即可。最難的是在播放過程中不斷隨機(jī)的切換播放進(jìn)度,而且還會(huì)暫停播放、暫停錄制的情況出現(xiàn),這

    2024年02月17日
    瀏覽(39)
  • 抖音視頻解析,無水印解析下載抖音視頻

    抖音視頻解析,無水印解析下載抖音視頻

    抖音視頻解析,你是否經(jīng)常遇到這樣的情況,看到一些非常精彩的抖音視頻,想要保存下來,但因?yàn)橄螺d速度慢或者視頻帶有水印而感到困擾?那么,這款(抖音無水印解析工具)將是你的得力助手!它可以輕松解決這些問題,使你能夠更輕松、更便捷地批量解析和下載抖音

    2024年01月20日
    瀏覽(42)
  • 音視頻FAQ(三):音畫不同步

    音視頻FAQ(三):音畫不同步

    本文介紹了音畫不同步問題的五個(gè)因素:編碼和封裝階段、網(wǎng)絡(luò)傳輸階段、播放器中的處理階段、源內(nèi)容產(chǎn)生的問題以及轉(zhuǎn)碼和編輯。針對(duì)這些因素,提出了相應(yīng)的解決方案,如使用標(biāo)準(zhǔn)化工具、選擇強(qiáng)大的傳輸協(xié)議、自適應(yīng)緩沖等。此外,介紹了第三方音視頻服務(wù)商如即構(gòu)

    2024年02月12日
    瀏覽(17)
  • FFMPEG開發(fā)快速入坑——附錄一:音視頻同步

    FFMPEG開發(fā)快速入坑——附錄一:音視頻同步

    本章節(jié)主要以本地音視頻播放為例,簡要描述講解一個(gè)基本的播放器中,音視頻播放如何實(shí)現(xiàn)同步的。 通用媒體播放器框架 其中各個(gè)組件模塊: 1、Media Demux: 進(jìn)行媒體文件的解析,分別解析出音頻流數(shù)據(jù)包和視頻流數(shù)據(jù)包。主要使用? libavformat 庫中的函數(shù)。 2、Video Decoder:

    2024年01月19日
    瀏覽(27)
  • FFmpeg 播放器實(shí)現(xiàn)音視頻同步的三種方式

    FFmpeg 播放器實(shí)現(xiàn)音視頻同步的三種方式

    我們基于 FFmpeg 利用 OpenGL ES 和 OpenSL ES 分別實(shí)現(xiàn)了對(duì)解碼后視頻和音頻的渲染,本文將實(shí)現(xiàn)播放器的最后一個(gè)重要功能:音視頻同步。 老人們經(jīng)常說, 播放器對(duì)音頻和視頻的播放沒有絕對(duì)的靜態(tài)的同步,只有相對(duì)的動(dòng)態(tài)的同步,實(shí)際上音視頻同步就是一個(gè)“你追我趕”的過

    2024年02月06日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包