雷神FFMpeg源码学习笔记

雷神FFMpeg源码学习笔记

读取编码并依据编码初始化内容结构

  1. 在开始编解码视频的时候首先第一步需要注册一个编解码器 :av_register_all();
  2. avformat_open_input来打开这个文件并给AVformartcontext赋值 ,在其中会去查找当前缓存文件的格式 avformat_open_input 来打开这个文件并给AVformartcontext 赋值 ,在其中会去查找当前缓存文件的格式
  3. avformat_find_stream_info使用该方法给每个视频/音频流的AVStream 结构体进行赋值并得到,这个参数在里面实现了一定的解码过程
  4. AVstream 有值了以后我们需要拿到当前当前的avcodecContext和其对应的AVcodeC(使用avcodec_find_decoder)
  5. avcodec_open2,初始化一个视音频编解码器的AVCodecContext,,调用AVCodeC的初始化到具体的解码器 AVCodeC init() 所以是在avcodec_open2在开始真正的初始化avcodecContext
  6. 在得到了初始化的AVcodecContext之后我们就可以开始为解码之后的AVframe分配空间(使用(unsigned char *)av_mallocz(av_image_get_buffer_size(AV_PIX_FMT_YUV420P, pCodecContex->width, pCodecContex->height, 1))) av_image_fill_arrays():为AVframe 的像素点分配空间
    sws_getContext:使用源图像的高和宽得到目标图像的高和宽,flag 为设定图像拉伸的算法

每一帧的视频解码处理

  1. av_read_frame 在解码之前来获取一帧的视频帧压缩数据 或者是多帧的音频帧压缩数据 及我们得到的只是AVpacket
  2. avcodec_decode_video2使用该函数来解码得到的AVpacket,输出一个下一帧的AVframe 函数
  3. 使用sws_scale来对下一帧的AVframe 进行拉伸变化 ,输出想要得到的AVframe
  4. 释放上述的AVformartcontextAVstreamavcodecContext.

下面是代码的具体处理操作:

1.首先需要注册所有的编解码器
//1.注册所有的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值