如何使用 ffmpeg 和 C# 捕获设备?

编程

[ad_1]

我想使用 ffmpeg.exe 捕获设备。 我使用了 Process 类和相关的 ffmpeg 命令但没有成功

我尝试过的:

我使用了以下代码,但输出什么都没有! 我认为发生这种情况是因为 process.start() 执行后进程就退出了。 我怎样才能做到这一点?

C#
static void Main(string[] args)
    {
        ProcessStartInfo startInfo = new ProcessStartInfo();
        startInfo.CreateNoWindow = false;
        startInfo.UseShellExecute = false;
        startInfo.FileName = "ffmpeg.exe";
        startInfo.Arguments = "-list_devices true -f dshow -i dummy";
        startInfo.RedirectStandardOutput = false;


        try
        {
            using (Process process = Process.Start(startInfo))
            {
                while (!process.StandardOutput.EndOfStream)
                {
                    string line = process.StandardOutput.ReadLine();
                    Console.WriteLine(line);
                }

                process.WaitForExit();
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

        Console.ReadKey();
    }
}

解决方案1

您想“捕获”输出吗? 这应该回答你的问题: 从.NET应用程序捕获控制台输出(C#) – VoidCC[^]

解决方案2

我遇到过同样的问题。 我正在重定向标准输出,但 FFmpeg 将文本消息输出到标准错误。

C#
static void Main(string[] args)
    {
        ProcessStartInfo startInfo = new ProcessStartInfo();
        startInfo.CreateNoWindow = false;
        startInfo.UseShellExecute = false;
        startInfo.FileName = "ffmpeg.exe";
        startInfo.Arguments = "-hide_banner -list_devices true -f dshow -i dummy";
        startInfo.RedirectStandardError = true;

        try
        {
            using (Process process = Process.Start(startInfo))
            {
                while (!process.StandardError.EndOfStream)
                {
                    string line = process.StandardError.ReadLine();
                    Console.WriteLine(line);
                }

                process.WaitForExit();
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

        Console.ReadKey();
    }
}

提示:在 ffmpeg 参数中使用 -hide_banner ,下一步会更容易:-)

我希望它能帮助某人。

[ad_2]

コメント

标题和URL已复制