当asp.net运行ffmpag进程时,IIS工作进程内存不断增加

时间:2016-03-27 19:30:12

标签: c# asp.net iis ffmpeg

我每4秒运行一次这段代码

protected string output = string.Empty;
protected Process process;
protected StreamReader sr;

protected void Page_Load(object sender, EventArgs e)
{
    process = new Process();
    process.StartInfo.Arguments = "-an -flv_metadata 1 -analyzeduration 1 -i \"rtmp://localhost/test/testStream live=1\" -s 700*394 -r 5 -vframes 10 -f image2pipe -";
    process.StartInfo.FileName = Page.MapPath("ffmpeg.exe");
    process.StartInfo.UseShellExecute = false;
    process.StartInfo.RedirectStandardOutput = true;
    process.StartInfo.CreateNoWindow = true;
    process.EnableRaisingEvents = true;
    process.Start();

    sr = process.StandardOutput;
    output = sr.ReadToEnd();
    process.WaitForExit();

    if (output.Length > 200)
    {
        process.Close();
        if (process != null)
        {
            process.Dispose();
            if (process != null)
            {
                try { process.Kill(); }
                catch { }
                process = null;
            }
        }
    }
}

我使用asp.net c#运行FFmpeg进程以获取图像数据 来自rtmp stream 代码工作正常,但问题是 IIS工作进程内存不断增加。

我尝试使用using语句 和: 关, 处置, 杀, process = null 但没有任何帮助

如何阻止这种记忆增加? 有没有更好的方法来控制IIS工作进程内存 来自asp.net c#code?

0 个答案:

没有答案