【问题标题】:Kill all ffmpeg processes which open repeatedly c#杀死所有重复打开的ffmpeg进程c#
【发布时间】:2018-06-29 21:05:54
【问题描述】:

我是 C# 新手,我正在尝试创建一个基于 ffmpeg 的工具来转换视频。 作为标题,我做了谷歌搜索并找到了许多杀死 ffmpeg 进程的方法,但就我而言,例如我有 10 个视频,这意味着将一个一个创建 10 个 ffmpeg 进程。如果我在第一个视频期间关闭表单,将在后台依次创建另外 9 个。

有没有什么有效的方法可以阻止ffmpeg创建进程?

【问题讨论】:

    标签: c# ffmpeg process


    【解决方案1】:

    我不太明白你的问题,但我希望这两种方法中的一种可能会有所帮助。

    方法一:

    Here我找到了如何停止本地机器上所有ffmpeg进程的解决方案。

    /// <summary>
    /// Stops all ffmpeg processes on the local machine
    /// </summary>
    private void StopCapturing()
    {
        Process process = new Process
        {
            StartInfo = new ProcessStartInfo
            {
                FileName = "taskkill",
                Arguments = "/F /IM ffmpeg.exe",
                UseShellExecute = false,
                CreateNoWindow = true
            }
        };
        process.Start();
    }
    

    方法2:

    对于您启动的每个 ffmpeg.exe 进程,您可以保存PID。使用 PID,您可以杀死之前启动的每个 ffmpeg.exe 实例。

    /// <summary>
    /// Starts a new process on the local machine. Returns the PID of the started process
    /// </summary>
    /// <param name="processName"></param>
    /// <param name="arguments"></param>
    private int StartProcess(string processName, string arguments)
    {
        // Initializes the process
        Process process = new Process
        {
            StartInfo = new ProcessStartInfo
            {
                FileName = processName,
                Arguments = arguments,
                UseShellExecute = false,
                CreateNoWindow = true
            }
        };
    
        // Starts the process
        process.Start();
    
        return process.Id;
    }
    
    /// <summary>
    /// Kills the process that equals the passed PID
    /// </summary>
    /// <param name="pid"></param>
    private void KillProcess(int pid)
    {
        Process process = Process.GetProcessById(pid);
        process.Kill();
    }
    

    【讨论】:

      【解决方案2】:

      我不确定我是否理解您想要完成的任务,但这是用于在 C# 中终止进程的方法: https://msdn.microsoft.com/en-us/library/system.diagnostics.process.kill(v=vs.110).aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-10-28
        • 1970-01-01
        • 2018-10-25
        • 2011-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-30
        相关资源
        最近更新 更多