arunavachowdhury Ответов: 2

Ffmpeg в выходных данных журнала в текстовый файл с помощью C#


Это простой код для создания вывода журнала ffmpeg в файле вместо консоли.

Но этот код не создает выходной файл журнала, в котором те же самые механизмы при использовании в командной строке он работает. Может ли кто - нибудь помочь в этом? что еще нужно сделать, чтобы получить выходные данные в файле журнала?

С Уважением Арунава

Что я уже пробовал:

<pre>string fullPath = "d:";
        string fileName= "wildlife.wmv";
        string pathfile = "D:";
        process.StartInfo.Arguments = "-i \"" + fullPath + "\" + fileName + +\" 2> \"" + pathfile + "\ffmpeglog.log\"";

        process.StartInfo.UseShellExecute = false;
        process.StartInfo.RedirectStandardError = true;
        process.StartInfo.CreateNoWindow = false;
        process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
        process.Start();
        string output2 = process.StandardError.ReadToEnd();
        process.WaitForExit();
        process.Close();

2 Ответов

Рейтинг:
1

arunavachowdhury

Пробовал с приведенным выше кодом, но он не работает. Когда мы запускаем ffmpeg с тем же кодом, нам нужно удалить окончательный "\" после ffmpeglog.журнал для создания журнала.
Когда я использую

" -i \"d:\\wildlife.wmv 2> \"D:\\ffmpeglog.log\""


Журнал не генерируется, но не может удалить "\" из строки, так как он выбрасывает постоянную ошибку новой строки.

Как я могу использовать

" -i \"d:\\wildlife.wmv 2> \"D:\\ffmpeglog.log""


вместо предыдущего кода. Или нам нужно внести какие - то изменения в конфигурацию? Текущая конфигурация выглядит следующим образом.

startProcess.CreateNoWindow = true;
           startProcess.ErrorDialog = false;
           startProcess.UseShellExecute = false;
           startProcess.RedirectStandardOutput = true;
           //startProcess.RedirectStandardError = false;
           startProcess.RedirectStandardError = true;
           startProcess.RedirectStandardInput = true;


Пожалуйста, посоветуйте.


Рейтинг:
1

Richard MacCutchan

Быстрая проверка с помощью отладчика покажет вам, что ваши параметры неверны, так как в ваших строках есть неэкранированные обратные косые черты. Итак, код:

string fullPath = "d:";
        string fileName= "wildlife.wmv";
        string pathfile = "D:";
        process.StartInfo.Arguments = "-i \"" + fullPath + "\" + fileName + +\" 2> \"" + pathfile + "\ffmpeglog.log\"";

результаты в строке:
process.StartInfo.Arguments =  -i "d:" + fileName + +" 2> "D:fmpeglog.log"

Так и должно быть:
process.StartInfo.Arguments = "-i \"" + fullPath + "\\" + fileName + "\" 2> \"" + pathfile + "\\ffmpeglog.log\"";