ffmpeg解码数据保存为yuv格式
来源:互联网 发布:北大青鸟软件开发 编辑:程序博客网 时间:2024/06/05 20:39
将ffmpeg解码的数据保存为yuv格式:
Q_UNUSED(width);
Q_UNUSED(height);
BroadCastManager *ptr = (BroadCastManager *)receiver;
int frame_finished;
memset(&ptr->client_info.packet,0,sizeof(ptr->client_info.packet));
ptr->client_info.packet.data=pData;
ptr->client_info.packet.size=size;
unsigned int consumed_bytes = avcodec_decode_video2(ptr->client_info.pCodecCtx,ptr->client_info.pFrame,&frame_finished,&ptr->client_info.packet);
unsigned char *DisplayBuf;
DisplayBuf = (unsigned char *)malloc(sizeof(unsigned char)*(3 * (ptr->client_info.width) * (ptr->client_info.height)));
if(DisplayBuf == NULL)
{
qInfo() << "the displaybuf is null";
return NULL;
}
if(consumed_bytes > 0)
{
memset(DisplayBuf,0,3 *(ptr->client_info.width) * (ptr->client_info.height));
int p=0;
for(int i=0; i<ptr->client_info.height; i++)
{
memcpy(DisplayBuf+p,ptr->client_info.pFrame->data[0] + i * ptr->client_info.pFrame->linesize[0], ptr->client_info.width);
p += ptr->client_info.width;
}
for(int i=0; i<ptr->client_info.height/2; i++)
{
memcpy(DisplayBuf+p,ptr->client_info.pFrame->data[1] + i * ptr->client_info.pFrame->linesize[1], ptr->client_info.width/2);
p+=ptr->client_info.width/2;
}
for(int i=0; i<ptr->client_info.height/2; i++)
{
memcpy(DisplayBuf+p,ptr->client_info.pFrame->data[2] + i * ptr->client_info.pFrame->linesize[2], ptr->client_info.width/2);
p+=ptr->client_info.width/2;
}
return DisplayBuf;
}
阅读全文
0 0
- ffmpeg解码数据保存为yuv格式
- ffmpeg实战教程(一)Mp4,mkv等格式解码为h264和yuv数据
- 使用ffmpeg实现解码并保存为yuv文件
- ffmpeg最简单的解码保存YUV数据
- ffmpeg最简单的解码保存YUV数据
- ffmpeg最简单的解码保存YUV数据
- FFmpeg视频解码为YUV像素数据文件
- ffmpeg中获取yuv解码后数据
- ffmpeg解码后存YUV数据
- 多线程解码并保存为yuv
- FFmpeg解析视频保存为yuv
- ios 解码H264为YUV格式
- ffmpeg缩放和格式转换yuv数据
- ffmpeg解码视频保存为BMP文件
- ffmpeg解码音频保存为PCM
- 在Andorid中使用FFmpeg实现YUV解码为BMP
- 使用ffmpeg接口解封装解码为YUV
- 使用ffmpeg接口将h.264解码为YUV
- Spire.XLS 教程:在Excel中合并单元格
- [笔记2]---廖雪峰老师的Git教程
- Hopcroft-Karp算法
- ie7下z-index失效问题解决方法(详细分析)
- Excel COUNTIF函数解决列包含判断问题
- ffmpeg解码数据保存为yuv格式
- Union, Union All, Intersect, Minus 摘记
- 关于swift迁移
- MTK NVRam添加Lid,以及读、写、备份
- Opencv+Kdtree在C++和Python下的使用
- Vue 折腾记
- angularJS 中html 标签绑定样式,ng-class的使用
- QT与菜鸟的opengl贴图
- (HDU