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

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

http://www.xdnf.cn/news/8831.html

相关文章:

  • 《分布式年夜》解析
  • 【Linux学习笔记】深入理解ELF和动静态库加载原理
  • c++学习之---stack,queue
  • Java 流程控制 switch:从实际场景出发掌握选择艺术
  • 详解Mysql redo log与binlog的两阶段提交(2PC)
  • 上海医日健集团社区 + 写字楼全域覆盖便民服务网
  • 如何在Windows右键菜单中添加“在此处以管理员身份打开Powershell窗口”的选项(含图标设置)
  • 论文阅读:arxiv 2024 SmoothLLM: Defending LLMs Against Jailbreaking Attacks
  • NNG和DDS
  • Ubuntu 22.04 高效Python依赖管理指南
  • 小程序使用web-view 修改顶部标题 安全认证文件部署在nginx
  • 疫情社区管理登记系统
  • 基于点标注的弱监督目标检测方法研究
  • springboot中拦截器配置使用
  • NeuralRecon技术详解:从单目视频中实现三维重建
  • 「OC」源码学习——KVO底层原理探究
  • 批量获取电商商品数据的解决方案|API接口自动化商品采集|item_get 接口详解
  • Vue.js教学第十五章:深入解析Webpack与Vue项目实战
  • 消息队列的使用
  • ClickHouse讲解
  • Qwen2.5 VL 自定义模型的回复数量
  • 基于文本挖掘与情感分析的B站《唐探1900》弹幕研究
  • Qt for Android 安卓低功耗蓝牙(BLE)开发环境搭建
  • 打卡day36
  • HUAWEI交换机配置镜像口验证(eNSP)
  • --legacy-peer-deps 是什么意思
  • 【不背八股】1.if __name__ == “__main__“ 有什么作用?
  • 【redis】redis和hiredis的基本使用
  • RabbitMQ 可靠性保障:消息确认与持久化机制(一)
  • day01