Я использую библиотеку https://github.com/Ruslan-B/FFmpeg.AutoGen для подключения к потоку камеры rtsp и сохранения кадров в формате png.
Тестирование с использованием примера проекта FFMPEG.Autogen, представленного в репозитории GitHub, с без изменений. Я заметил, что использование памяти кажется постоянным. расти бесконечно. Я позаботился о том, чтобы удалить все растровые изображения, указатели и т. д. после использования, но не могу определить источник проблемы.
Похоже, это происходит из их VideoStreamDecoder.TryDecodeNextFrame метод, как показано ниже:
public bool TryDecodeNextFrame(out AVFrame frame)
{
ffmpeg.av_frame_unref(_pFrame);
ffmpeg.av_frame_unref(_receivedFrame);
int error;
do
{
try
{
do
{
error = ffmpeg.av_read_frame(_pFormatContext, _pPacket);
if (error == ffmpeg.AVERROR_EOF)
{
frame = *_pFrame;
return false;
}
else if(error < 0)
{
}
error.ThrowExceptionIfError();
} while (_pPacket->stream_index != _streamIndex);
ffmpeg.avcodec_send_packet(_pCodecContext, _pPacket).ThrowExceptionIfError();
}
finally
{
ffmpeg.av_packet_unref(_pPacket);
}
error = ffmpeg.avcodec_receive_frame(_pCodecContext, _pFrame);
} while (error == ffmpeg.AVERROR(ffmpeg.EAGAIN));
error.ThrowExceptionIfError();
if (_pCodecContext->hw_device_ctx != null)
{
ffmpeg.av_hwframe_transfer_data(_receivedFrame, _pFrame, 0).ThrowExceptionIfError();
frame = *_receivedFrame;
}
else
{
frame = *_pFrame;
}
return true;
}
Подробнее здесь: https://stackoverflow.com/questions/654 ... en-example
Возможная утечка памяти в примере FFMPEGAutogen ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение