Процесс не принимает аргументы - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь запустить ffmpeg.exe как процесс и дать ему несколько аргументов.Процесс на самом деле запускается, я вижу, что открывается окно ffmpeg, но потом ничего не происходит.Я также пытался использовать @ffmpeg в аргументах, но не повезло.Поэтому я думаю, что аргументы не проходят на это.Я вручную запустил ffmpeg.exe из cmd и использовал эти аргументы, и он работал отлично.Вот код,

public void ConvertVideo()
{
    var dir = Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName + "\\FFMpeg";
    var ffmpeg = dir + "\\ffmpeg.exe";
    var args = "ffmpeg -i 20180906194502.mp4 -ar 44100 -ac 2 -c:a aac -strict -2 -b:a 128k -c:v libx264 -preset veryslow -crf 20  output.mp4";

    var process = new Process();
    process.StartInfo.UseShellExecute = false;
    process.StartInfo.FileName = ffmpeg;
    process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
    process.StartInfo.WorkingDirectory = dir;
    process.EnableRaisingEvents = true;
    process.StartInfo.RedirectStandardInput = true;
    process.Start();
    process.StandardInput.WriteLine(args);
    process.StandardInput.Flush();
    process.StandardInput.Close();
    process.WaitForExit();
}  

Итак, суть в том, что если я запускаю этот код, я просто вижу это окно, а затем ничего не происходит.ffmpeg window

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

В StartInfo доступно свойство "Аргументы".Можете ли вы попробовать следующим образом ..

Process p= new Process();
p.StartInfo.FileName = ffmpeg ;
p.StartInfo.Arguments = args;
p.Start();
0 голосов
/ 11 сентября 2018

Вы не передаете переменную 'args': process.StartInfo.Arguments = args;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...