新聞中心
使用FFmpeg庫做的項(xiàng)目,調(diào)試項(xiàng)目的時(shí)候發(fā)現(xiàn),連續(xù)解視頻進(jìn)行播放,會(huì)有明顯內(nèi)存增加問題。連續(xù)工作10個(gè)小時(shí)后就會(huì)
為梅河口等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及梅河口網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、梅河口網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
被linux內(nèi)核kill掉。
通過逐步注掉代碼和網(wǎng)上查閱資料。最后發(fā)現(xiàn)內(nèi)存泄漏有一些幾個(gè)地方:
一、av_read_frame的問題
從網(wǎng)上查閱大神們的經(jīng)驗(yàn),主要是av_read_frame有內(nèi)存泄漏風(fēng)險(xiǎn)。
av_read_frame每次循環(huán)后必須執(zhí)行av_packet_unref(pkt)進(jìn)行釋放。
如循環(huán)內(nèi)退出需要釋放,不成立while外也需要釋放。
最后需要執(zhí)行av_packet_free,av_free再進(jìn)行釋放packet的外殼。
while (av_read_frame(pa->fmt_ctx, pkt) >= 0) { int64_t dts; if(pkt->stream_index != pa->videoStream) { av_packet_unref(pkt); continue; } av_packet_unref(pkt); } av_packet_unref(pkt);
網(wǎng)頁名稱:FFmpeg 解碼內(nèi)存泄漏匯總,sws_getContext函數(shù)無法釋放問題
文章起源:http://fisionsoft.com.cn/article/dsoighg.html