FFmpeg 中级开发内容介绍

中级开发内容

  • FFmpeg H264 解码
  • FFmpeg H264 编码
  • FFmpeg AAC 解码
  • FFmpeg AAC 编码

FFmpeg 编解码头文件

  • include<libavcodec/avcodec.h>

常用数据结构

  • AVCodec 编码器结构体
  • AVCodecContext 编码器上下文
  • AVFrame 解码后的帧
  • SwsContext 执行高度优化的图像比例缩放、图像颜色空间/像素格式转换

结构体内存的分配与释放

  • av_frame_alloc() :利用此函数给 AVFrame分配内存空间
  • av_frame_free() : 释放 AVFrame
  • avcodec_alloc_context3() :分配一个编解码器的上下文
  • avcodec_free_context3() :释放上下文

解码步骤

  • 查找解码器(acodec_find_decoder)by codecId
  • 打开解码器(avcodec_open2)
  • 将原始数据流发送到解码器(avcodec_send_packet)
  • 从解码器获取解码后的数据(avcodec_receive_frame)

H264 编码

  • 查找编码器(avcodec_find_encoder_by_name)
  • 设置编码参数, 并打开编码器(avcodec_open2)
  • 将压缩数据送入编码器(avcodec_send_frame)
  • 从编码器获取编码好的数据(avcodec_receive_packet)

视频转图片

  • sws_getContext(参数初始化SwsContext结构体)
  • sws_freeContext(释放SwsContext结构体)
  • av_image_fill_arrays(存储一帧像素数据缓冲区)
  • sws_scale(转换一帧图像,进行图像色彩空间转换)

AAC编码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值