無法控制MediaCodec輸出關(guān)鍵幀解決方案

在做視頻錄制時(shí),發(fā)現(xiàn)使用MediaCodec做硬解碼時(shí),即使設(shè)置了MediaFormat的MediaFormat.KEY_I_FRAME_INTERVAL屬性也無法控制輸出Buffer中關(guān)鍵幀的輸出數(shù)量。
后來發(fā)現(xiàn)原來是真正的原因是在于視頻的輸入源,如果是通過Camera的PreviewCallback的方式來獲取視頻數(shù)據(jù)再喂給MediaCodec的方式是無法控制輸出關(guān)鍵幀的數(shù)量的。
想要控制輸出輸出關(guān)鍵幀數(shù)量就必須通過調(diào)用MediaCodec.createInputSurface()方法獲取輸入Surface,再通過Opengl渲染后喂給MediaCodec才能真正控制關(guān)鍵幀的數(shù)量(至于為什么會(huì)這樣我也沒搞明白,希望有明白的能指教一下)。

判斷輸出數(shù)據(jù)是否為關(guān)鍵幀的方法:
boolean keyFrame = (bufferInfo.flags & MediaCodec.BUFFER_FLAG_KEY_FRAME) != 0;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 原文:https://developer.android.com/reference/android/media/...
    thebestofrocky閱讀 6,363評(píng)論 0 6
  • 本篇文章是基于谷歌有關(guān)Graphic的一篇概覽文章的翻譯:http://source.android.com/de...
    lee_3do閱讀 7,433評(píng)論 2 21
  • FFmpeg X264編碼參數(shù) 目錄 碼率控制 1 X264的preset和tune 2 編碼延時(shí)建議...
    古則閱讀 30,989評(píng)論 1 15
  • 林美熙: 性別:MM。 性格:絕對(duì)是冷血無情。 年齡:16。 學(xué)校:尚德學(xué)院。 特長:文武雙全的天才少女。 身份:...
    草莓珍珠奶茶閱讀 758評(píng)論 0 0
  • 當(dāng)市場或者是某一只個(gè)股出現(xiàn)回調(diào)現(xiàn)象的時(shí)候,相信投資者們地腦海里都會(huì)有這樣一個(gè)問題,這個(gè)時(shí)候到底該不該抄底了呢?事實(shí)...
    谷壬峻閱讀 511評(píng)論 0 1

友情鏈接更多精彩內(nèi)容