美文网首页
AVFrame结构

AVFrame结构

作者: 一川烟草i蓑衣 | 来源:发表于2019-05-14 10:44 被阅读0次

结构体AVFrame的定义的结构体源码(位于libavcodec/avcodec.h)中;AVFrame结构体一般用于存储原始数据(即非压缩数据,例如对视频来说是YUV,RGB,对音频来说是PCM),此外还包含了一些相关的信息。

uint8_t *data[AV_NUM_DATA_POINTERS]:解码后原始数据(对视频来说是YUV,RGB,对音频来说是PCM)

int linesize[AV_NUM_DATA_POINTERS]:data中“一行”数据的大小。注意:未必等于图像的宽,一般大于图像的宽。

int width, height:视频帧宽和高(1920x1080,1280x720...)

int nb_samples:音频的一个AVFrame中可能包含多个音频帧,在此标记包含了几个

int format:解码后原始数据类型(YUV420,YUV422,RGB24...)int key_frame:是否是关键帧enum AVPictureType pict_type:帧类型(I,B,P...)

AVRational sample_aspect_ratio:宽高比(16:9,4:3...)

int64_t pts:显示时间戳int coded_picture_number:编码帧序号int display_picture_number:显示帧序号

int8_t *qscale_table:QP表

QP表指向一块内存,里面存储的是每个宏块的QP值。宏块的标号是从左往右,一行一行的来的。每个宏块对应1个QP。

qscale_table[0]就是第1行第1列宏块的QP值;qscale_table[1]就是第1行第2列宏块的QP值;qscale_table[2]就是第1行第3列宏块的QP值。以此类推...

宏块的个数用下式计算:

注:宏块大小是16x16的。

每行宏块数:int mb_stride = pCodecCtx->width/16+1

宏块的总数:int mb_sum = ((pCodecCtx->height+15)>>4)*(pCodecCtx->width/16+1)

相关文章

  • AVFrame结构

    结构体AVFrame的定义的结构体源码(位于libavcodec/avcodec.h)中;AVFrame结构体一般...

  • ffmpeg学习笔记 二

    AVFrame AVFrame是包含码流参数较多的结构体。本文将会详细分析一下该结构体里主要变量的含义和作用。首先...

  • ffmpeg学习笔记二

    AVFrame AVFrame是包含码流参数较多的结构体。本文将会详细分析一下该结构体里主要变量的含义和作用。首先...

  • FFmpge结构体分析

    FFmpge有几个最重要的结构体比如: AVFrame,AVFormatContext,AVCodecContex...

  • ffmpeg编解码实战_day97

    常用的结构体 AVCodec:编解码结构体 AVCodecContext:编解码上下文 AVFrame:解码后的帧...

  • FFmpeg结构体:AVFrame

    1.描述 AVFrame用来存储解码后的(或原始)音频或视频数据,位于avcodec.h文件中。AVFrame必须...

  • ffmpeg AVFormat结构体主要变量

    AVFrame是包含码流参数较多的结构体。参考结构体理解:http://www.jianshu.com/p/d10...

  • ffmpeg AVFormatContext结构体主要变量

    AVFrame是包含码流参数较多的结构体。参考结构体理解:http://www.jianshu.com/p/d10...

  • FFMpeg入门学习笔记(1)常用变量

    FFmpeg主要构成 常用变量:AVFrame:包含码流参数较多的结构体 AVFormatContext:包含码流...

  • ffmpeg之-AVFrame解析(五)

    前言 AVFrame 位于libavutil/frame.h中,AVpacket一样,是FFmpeg中很重要的结构...

网友评论

      本文标题:AVFrame结构

      本文链接:https://www.haomeiwen.com/subject/srgjaqtx.html