四:RV1126的VI和VENC綁定并采集碼流

  1. 項(xiàng)目介紹:

本章節(jié)講的是RV1126通過(guò)VI模塊和VENC的綁定獲取VENC碼流。視頻編碼流程主要分三步:VI的初始化、VENC的初始化綁定VI和VENC節(jié)點(diǎn)、開(kāi)啟VENC線程進(jìn)行視頻編碼的采集。

  1. VI和VENC的流程圖:
image.png

2.1. VI設(shè)備的初始化

image.png
image.png

VI設(shè)備的初始化,需要用到以下參數(shù):pcVideoNode(設(shè)備節(jié)點(diǎn))、u32Width(寬度)、u32Height(高度)、enPixFmt(圖片格式)、u32BufCnt(buf的數(shù)量)、enWorkMode(工作模式)。設(shè)置完成之后,則調(diào)用RK_MPI_VI_SetChnAttr設(shè)置VI的屬性,并使能VI設(shè)備(RK_MPI_VI_EnableChn)

RV1126視頻設(shè)備節(jié)點(diǎn):

image.png

2.2. VENC模塊的初始化

image.png
image.png

VENC模塊的初始化,下面有幾個(gè)重要參數(shù):enType(編碼類(lèi)型)、imageType(圖片格式)、u32VirWidth(圖片虛寬)、u32VirHeight(圖片虛高)、u32Profile(編碼等級(jí))、bByFrame(預(yù)留參數(shù)默認(rèn)0)****、u32PicWidth(圖片寬度)、u32PicHeight(圖片高度)、enRotation(是否旋轉(zhuǎn))。設(shè)置完成之后,使用RK_MPI_VENC_CreateChn創(chuàng)建VENC編碼器。

2.3. 綁定VI和VENC節(jié)點(diǎn)

image.png

使用RK_MPI_SYS_Bind把VI節(jié)點(diǎn)和VENC進(jìn)行綁定,其中enModId是模塊ID號(hào)、s32ChnId是通道號(hào)。VI_CHN的enModId是RK_ID_VI,通道ID則是從VI_CONTAINER容器獲取。

VENC_CHN的enModId是RK_ID_VENC,通道ID則是從VENC_CONTAINER容器獲取

2.4. 開(kāi)啟VENC線程采集每一幀視頻編碼數(shù)據(jù)并存儲(chǔ)到視頻隊(duì)列

image.png

在這個(gè)camera_venc_thread線程里面,利用RK_MPI_SYS_GetMediaBuffer的API采集VENC的數(shù)據(jù),并把數(shù)據(jù)賦值到video_data_packet_t結(jié)構(gòu)體里面(這個(gè)結(jié)構(gòu)體里面主要存儲(chǔ)編碼后視頻的緩沖區(qū)數(shù)據(jù)和長(zhǎng)度)。并且把這個(gè)結(jié)構(gòu)體的數(shù)據(jù)入到video_packet_queue隊(duì)列里面(具體操作:putVideoPacketQueue)。

注意:RK_MPI_SYS_GetMediaBuffer只是拿到一個(gè)整體的緩沖區(qū)數(shù)據(jù),這個(gè)緩沖區(qū)數(shù)據(jù)包含緩沖區(qū)指針數(shù)據(jù)和緩沖區(qū)長(zhǎng)度。如果我們需要真正獲取緩沖區(qū)指針的數(shù)據(jù),就要用RK_MPI_MB_GetPtr去獲取。若要拿到緩沖區(qū)長(zhǎng)度則需要調(diào)用RK_MPI_MB_GetSize去獲取。

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

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

  • 項(xiàng)目介紹: 本章節(jié)講的是RV1126視頻編碼的流程,在整個(gè)項(xiàng)目之中視頻編碼功能是核心之一。視頻編碼流程主要分三步:...
    野唱閱讀 1,497評(píng)論 0 1
  • 一.RV1126項(xiàng)目中VENC基礎(chǔ)屬性的配置 二. RV1126基礎(chǔ)屬性具體參數(shù)講解: RV1126編碼器參數(shù)結(jié)構(gòu)...
    野唱閱讀 1,797評(píng)論 0 0
  • VI模塊指的是,視頻輸入模塊的參數(shù)配置。一般而言,視頻輸入模塊的參數(shù)和外設(shè)攝像頭和外設(shè)視頻設(shè)備的參數(shù)是一致的。 一...
    野唱閱讀 2,511評(píng)論 0 0
  • 開(kāi)發(fā)中用到的單詞 Java 常用類(lèi)以及它的用法 character 類(lèi): isLetter():判斷是不是字母 i...
    YancyJiang閱讀 1,302評(píng)論 0 0
  • 一、MPP 簡(jiǎn)介 Media Process Platform(簡(jiǎn)稱 MPP) 是適用于瑞芯微芯片系列的通用媒體處...
    Mr_Michael閱讀 12,224評(píng)論 1 3

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