FFmpeg 内存模型

FFmpeg 内存模型

  • 从现有的Packet拷贝一个新Packet的时候,有两种情况:
    1. 两个Packet的buf引用的是同一数据缓存空间,这时候要注意数据缓存空间的释放问题;
    2. 两个Packet的buf引用不同的数据缓存空间,每个Packet都有数据缓存空间的copy

数据共享 数据独立

引用计数

  • 对于多个AVPacket共享同一个缓存空间,FFmpeg使用的引用计数的机制(reference-count):
    • 初始化引用计数为0,只有真正分配AVBuffer的时候,引用计数初始化为1
    • 当有新的Packet引用共享的缓存空间时,就将引用计数 +1
    • 当释放了引用共享空间的Packet,就将引用计数-1;引用计数为0时,就释放掉引用的缓存空间AVBuffer
  • AVFrame也是采用同样的机制

常用 API

AVPacket 常用 API AVFrame 常用 API


FFmpeg 内存模型
https://irisislove.github.io/2025/06/09/ffmpeg-memory-model/
作者
Iris
发布于
2025年6月9日
许可协议