Утечка памяти FFmpeg в фрагментированном MP4
При использовании консоли FFmpeg для сохранения потока RTSP в фрагментированный файл MP4 я заметил небольшую утечку памяти. Утечка составляет около 3-4 МБ в час (когда каждый кадр представляет собой фрагмент и 30 кадров в секунду).
Была использована следующая команда:
ffmpeg.exe -i rtsp://10.50.1.16/media/video3 -vcodec copy -an -f mp4 -frag_duration 1000 -movflags empty_moov+default_base_moof+omit_tfhd_offset -loglevel quiet "c:\MemoryLeakTest.mp4"
Вы можете увидеть здесь набор Perfmon более 5 дней
Эта утечка кажется линейной во времени и связана с количеством фрагментов, записанных в файл.
Это было также воспроизводимо также с библиотеками FFmpeg.
Кто-нибудь сталкивался с чем-то подобным?
2 ответа
Укажите skip_trailer
movflag. Смотрите следующий патч. https://patchwork.libav.org/patch/61014/
Чтобы обнаружить утечки памяти, вы можете скомпилировать FFmpeg из источников с символами отладки, а затем начать с некоторой отладки памяти, инструмента обнаружения утечки памяти. Например, взгляните на Valgrind