簡體   English   中英

使用FFMPEG將NV12原始數據轉換為H264時出現顏色不匹配

[英]Getting color mismatch while converting from NV12 raw data to H264 using FFMPEG

我正在嘗試使用FFMPEG的硬件編碼器將NV12原始數據轉換為H264。

將原始數據傳遞到編碼器我正在使用以下邏輯傳遞AVFrame結構:

    uint8_t * buf;
    buf = (uint8_t *)dequeue();
    frame->data[0] = buf;
    frame->data[1] = buf + size;
    frame->data[2] = buf + size;
    frame->pts = frameCount;
    frameCount++;

但是使用這種邏輯,我得到的是顏色不匹配的H264數據,

有人可以告訴我,如何將緩沖區傳遞給AVFrame數據嗎?

在此先感謝,Harshil

我通過傳遞正確的行大小和AVFrame結構的數據值解決了顏色不匹配的問題。

假設NV12具有用於4x4圖像的YYYYUVUV平面,那么在ffmpeg中,我們需要通過

linesize [0] = y的起始位置

linesize [1] = 4,因為u的位置從4開始,並且由於uv被打包,我們不需要指定linesize [2]。

還有數據

數據[0] = y的起始位置

數據[1] = 4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM