This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

编码出来的结果图像被拉高了一倍,求助。



我用dvrrdk4.0。

我从网络得到1280x720的h264码流,送到videom3解码,再送到vpssm3缩放成cif分辨率的小图,再把cif图送入videom3进行h264编码,

对于cif图,本来应该是352x288的,ffmpeg解码出来却是352x576,图像被拉高一倍,就是说宽是对的,高却是原来的2倍。

对于1280x720的原图,也是如此,ffmpeg解码出来是1280x1440。
有个可能的原因是我在MultiCh_createVdecVdis ()函数里面使用了分场编码,pLinkChPrm->dataLayout = VCODEC_FIELD_SEPARATED; 但是这个参数是所有的编码例子都这么用的,而且注释里面也是这么写的:Only IVIDEO_FIELD_INTERLEAVED and VCODEC_FIELD_SEPARATED are supported 。在此情况下,我在EncLink_codecQueueFramesToChQue ()函数里强制让每个编码通道的场值为0:
EncLink_ChObj *pChObj;
。。。
pChObj = &pObj->chObj[pFrame->channelNum];
。。。
pChObj->nextFid = 0;
因为如果不这样,就会因为后面的条件判断不满足而不编码,即,pChObj->nextFid == pFrame->fid 。
 
我怀疑是这个原因,希望得到解决。谢谢。