感谢:
(4条消息) Ffmpeg中AVFrame数据保存成YUV--讨论AVFrame的linesize_小葫芦写代码的博客-CSDN博客_avframe yuv数据
由于计算机字节对齐特性,会导致 AvFrame->linesize[0] 和 视频实际宽会不一致,就会导致AvFrame->data[0]数据会填充0数据,因此具体保存代码如下:
// w、h是视频的实际宽高
for(int i=0; i<h; i++){
fwrite(yuvFrame->data[0]+i*yuvFrame->linesize[0],1,w,fp);//y
}
for(int i=0; i<h/2; i++){
fwrite(yuvFrame->data[1]+i*yuvFrame->linesize[1],1,w/2,fp);//u
}
for(int i=0; i<h/2; i++){
fwrite(yuvFrame->data[2]+i*yuvFrame->linesize[2],1,w/2,fp);//v
}