当前位置: 首页 > news >正文

FFMPEG-AAC编码

一、流程图

在这里插入图片描述

二、代码解释

  • avcodec_find_encoder:
    根据指定的AVCodecID查找注册的编码器。
  • avcodec_alloc_context3:
    为AVCodecContext分配内存。()
  • avcodec_open2:
    打开编码器。
  • avcodec_send_frame:
    将AVFrame⾮压缩数据给编码器。
  • avcodec_receive_packet:
    获取到编码后的AVPacket数据,收到的packet需要⾃⼰释放内存。
  • av_frame_get_buffer:
    为⾳频或视频帧分配新的buffer。在调⽤这个函数之前,必须在AVFame上设
    置好以下属性:format(视频为像素格式,⾳频为样本格式)、nb_samples(样本个数,针对⾳频)、
    channel_layout(通道类型,针对⾳频)、width/height(宽⾼,针对视频)。
  • av_frame_make_writable:
    确保AVFrame是可写的,使⽤av_frame_make_writable()的问题是,在
    最坏的情况下,它会在您使⽤encode再次更改整个输⼊frame之前复制它. 如果frame不可写,
    av_frame_make_writable()将分配新的缓冲区,并复制这个输⼊input frame数据,避免和编码器需
    要缓存该帧时造成冲突。
  • av_samples_fill_arrays
    填充⾳频帧

三、结构体介绍

AVCodecContext

1、核心功能

  1. 编解码器管理
    存储与特定编解码器(如 H.264、AAC)相关的参数和状态,包括编解码器类型(codec_type)、编解码器 ID(codec_id)等。通过 avcodec_alloc_conte

相关文章:

  • AI 赋能心理健康预测与干预:智能技术如何成为情绪“守护者”
  • C语言指针详解
  • PCM音频数据的编解码
  • boost之preprocessor
  • 12.LCD、FSMC和ILI9341芯片
  • GitLab-CI简介
  • 深入理解 JavaScript 面向对象编程与 Class
  • git子模块--常见操作
  • c++学习之---stack,queue
  • iOS App启动优化(冷启动、热启动)
  • uni-app学习笔记十二-vue3中创建组件
  • Python实战:轻松连接与高效操作Elasticsearch
  • 【大模型应用开发】Qwen2.5-VL-3B识别视频
  • 解决WPF短暂的白色闪烁(白色闪屏)
  • 免费开源 PDF 阅读器 自带虚拟打印机功能 多格式兼容
  • Acrobat 中 JavaScript 为 PDF 带来的交互
  • Java21 并发处理说明
  • 通过Auto平台与VScode搭建远程开发环境(以Stable Diffusion Web UI为例)
  • 【Python】1. 基础语法(1)
  • 棒球比赛暗号百科·棒球1号位
  • 河池市民政局门户网站建设/百度竞价平台官网
  • 容桂网站制作代理商/网站开发的基本流程
  • 中国神鹰网站建设/app推广拉新一手渠道
  • 做网站好用的cms/百度的人工客服
  • 哈尔滨政府网站建设/app营销策略有哪些
  • 网站二级目录做优化/手机营销软件