Warning: unlink(/home/wao2023no7/code-chips.com/public_html/wp-content/lolipop-migrator//.htaccess): No such file or directory in /home/wao2023no7/code-chips.com/public_html/wp-content/plugins/lolipop-migrator/includes/class-lolipop-migrator-file.php on line 47

Warning: unlink(/home/wao2023no7/code-chips.com/public_html/wp-content/lolipop-migrator//index.php): No such file or directory in /home/wao2023no7/code-chips.com/public_html/wp-content/plugins/lolipop-migrator/includes/class-lolipop-migrator-file.php on line 74
كيف يمكنني التقاط الأجهزة باستخدام ffmpeg وC#؟ | code chips

كيف يمكنني التقاط الأجهزة باستخدام ffmpeg وC#؟

[ad_1]

أريد التقاط الأجهزة باستخدام ffmpeg.exe. لقد استخدمت فئة العملية والأمر ffmpeg ذي الصلة ولكن لم ينجح

ما حاولت:

لقد استخدمت الكود التالي ولكن الإخراج لا شيء !! أعتقد أن هذا يحدث بسبب إنهاء العملية بمجرد تنفيذ العملية. كيف أقوم بذلك؟

ج#
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#) – Stack Overflow[^]

الحل 2

كان لي نفس القضية. كنت أقوم بإعادة توجيه الإخراج القياسي، لكن FFmpeg يقوم بإخراج رسائل نصية إلى الخطأ القياسي.

ج#
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();
    }
}

نصيحة: استخدم -hide_banner في وسيطة ffmpeg وستكون خطوتك التالية أسهل 🙂

وآمل أن يساعد شخص ما.

[ad_2]

コメント

タイトルとURLをコピーしました