Я использую LIBAV в Ubuntu для сохранения видеопотока пользователя (RTP VP8) на сервере в формате WebM. Проблема в том, что при использовании av_write_frame происходит утечка памяти. Использование памяти постоянно растет (вместе с размером веб-файла) и никогда не освобождается после завершения записи видео. Единственный способ освободить память (ОЗУ) — это последующее удаление файла WebM из хранилища (HD).
У меня есть 2 вопроса:
- Можно ли освободить память, потребляемую
av_write_frame
во время выполнения? Я правильно освобождаюpacket.data
. Использование памяти не увеличивается, когдаav_write_frame
строка закомментирована. Как правильно закрыть файл? Вот что я делаю (память не освобождается):
av_write_trailer(fctx); avcodec_close(vStream->codec); avio_close(fctx->pb); avformat_free_context(fctx);
packet.data
. Проблема вav_write_frame
напрямую или, может быть, косвенно, так как использование моей памяти растет линейно с размером файла .webm. - person golstar   schedule 26.02.2015