ffmpeg编程

AVFormatContext

ffmpeg的文件描述符(或文件句柄),当一个文件打开之后,这个结构用于保存这个文件的信息参数。

AVInputFormat

输入格式的方法,其实是函数指针,这些函数指针在av_register_all中呗初始化。

AVStream

描述容器中的流

AVCodecContext

描述编解码参数

AVCodec

保存编解码方法,也是函数指针,

在avcode_register_all() 中被初始化。

AVFrame

保存已经解码的数据

AVPacket

保存编码后的数据

SwsContext

保存图像格式转换的参数

内存释放

由于播放器一直在不断循环,所以出现一点的内存泄露,可能会很严重。

  1. 带context的在播放视频结束都需要释放(是以一对有context和没有context同时出现的结构体)。
  2. AVPacket的内存释放
av_packet_unref(); //将packet里面保存编码数据的内存释放 整个每次循环都需要执行
av_packet_free(); //将整个packet内存释放 执行一次即可。
  1. AVFrame的内存释放
av_frame_unref(); //释放frame保存已经解码数据的内存释放,理论需要每次循环之后执行,但是由于frame大小一样
                  //为了增加效率,每次重新写进去就可以了,没必要每次释放
av_frame_free();  //释放整个frame结构体内存,执行一次即可。

results matching ""

    No results matching ""