FFmpeg的H264编码有内存泄漏吗??!!!
来源:互联网 发布:多台网络打印机服务器 编辑:程序博客网 时间:2024/06/06 07:13
原文来自于:
点击打开链接ffmpeg解码H264内存问题
靠,内存泄漏好严重。开始怀疑是自己代码问题,调试了半天,又反复改写和优化代码,还是泄漏严重。
拿网上现成的FFMPEG H264编码的范例来测试,同样泄漏很严重。
百度了一下,有很多人遇到同样的问题,他们说是编码库本身的内存泄漏。。。。, 无语,操,那FFMPEG的H264编码还能用吗!!!! 抓狂!!!!
------此处省略一万字!!!
--------ffmpeg怎么可能解码h264还会内存泄露,肯定是自己用法不当 造成的, 对自己说.......
------------
-----------------
-----------------------唉.不知道问题解决没有......----------------------------先记录再说....
问题起因是.....(我的方案是从rtsp上获取数据转为AVPacket 后)
-----调用这个 函数....avcodec_send_packet -----这个一点问题没有...
于是 ,,我接下来,可是编码得到一帧数据,(即 得到一个 AVFrame),
-----
我开始调用------
avcodec_receive_frame()
--------就是在这里,,,内存一点点 的上升.........
好再我 在网上找到这样一说法,说是这样的......于是 ,,,,呼呼
当我们使用ffmpeg对视频进行解码时,必须注意AVPacket正确用法,否则容易造成内存泄漏。
我们一般会按下列顺序初始化AVPacket
AVPacket avpkt;
av_init_packet(&avpkt);
此处调用av_parser_parse2(Parse a packet)
len = av_parser_parse2(_parser, context, &avpkt.data, &avpkt.size,
inbuf+offset, fullSize,
pts, dts, AV_NOPTS_VALUE);
注意av_parser_parse2每次调用会重新给avpkt->data分配内存,用完后一定要调用
av_packet_unref(&avpkt);//pkt重复使用时,需要调用释放部分内存
也就是说:
解码时,av_init_packet调用一次就够,(avpkt 作为类成员 )av_packet_unref需要av_parser_parse2操作完成不再使用后重复调用。
其中还有个av_free_packet(&avpkt),但这东西如何av_packet_unref执行了再执行av_free_packet会崩溃,搞不懂,干脆就不调用了,也没发现内存异常..
地址链接:点击打开链接
- FFmpeg的H264编码有内存泄漏吗??!!!
- ffmpeg--编码解码h264
- FFMPEG编码h264过程
- ffmpeg h264 编码。。。
- 使用FFMpeg进行H264编码
- 使用FFMpeg进行H264编码
- 使用FFMpeg进行H264编码
- 使用FFMpeg进行H264编码
- 使用FFMpeg进行H264编码
- 使用FFMpeg进行H264编码 .
- 使用FFMpeg进行H264编码
- ffmpeg 编码摄像机H264流
- ffmpeg h264 硬编码 nvenc
- ffmpeg 编码h264 profile如何设置为baseline的问题
- ffmpeg 用 h264库进行编码的编译配置
- ffmpeg 编码h264 profile如何设置为baseline的问题
- ffmpeg 编码h264 profile如何设置为baseline的问题
- ffmpeg封装本公司的h264编码库
- centos7 配置MariaDB
- 2Java注释、标识符、数据类型、类型转换
- 011 在使用https get的时候报Error creating SSL context ()错误
- C语言总述
- arcgis已知坐标点转面(通过excel文件)
- FFmpeg的H264编码有内存泄漏吗??!!!
- 如何实现python3的文件读取
- 012 随机生成n个字节的字符串?
- HttpURLConnection
- Python爬取www.alexa.cn网站上的部分url和相应的等级
- AdvancedInstaller打包工具使用(三)
- 013 QString转QByteArray? sha1算法的使用?
- 皮肤晒黑了怎么快速变白,最好实用的?
- scala编译器的安装