Проблема запуска FFmpeg внутри C # - PullRequest
0 голосов
/ 19 мая 2011

Я вызываю FFmpeg через ProcessStartInfo внутри моего приложения на C #, однако я не могу продолжать получать ошибку;

Файл для предустановки 'lossless_slow' отсутствует найдены

Вот мой код C #;

var processinfo = new ProcessStartInfo();
processinfo.FileName = "FFmpeg\\bin\\ffmpeg.exe";
processinfo.Arguments = "-i C:\Temp\input.mp4 -y -acodec aac -strict experimental -ab 96k -vcodec libx264 -vpre lossless_slow -crf 22 -threads 0 C:\Temp\output.mp4"
processinfo.RedirectStandardOutput = true;
processinfo.RedirectStandardError = true;
processinfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
processinfo.UseShellExecute = false;
processinfo.LoadUserProfile = true;
processinfo.EnvironmentVariables.Add("HOME", @"C:\Users\wonea\.ffmpeg");

var reg = System.Diagnostics.Process.Start(processinfo);

string output = string.Empty;
string error = string.Empty;

using (System.IO.StreamReader myOutput = reg.StandardOutput)
{
    output = myOutput.ReadToEnd();
}
using (System.IO.StreamReader myError = reg.StandardError)
{
    error = myError.ReadToEnd();
}

Теперь я положил свои пресеты в папку

C: \ Users \ wonea \ .ffmpeg

и включил это в пользовательскую переменную пути Windows HOME. Это прекрасно работает при запуске FFmpeg из командной строки, но не работает, когда команды выполняются внутри моего приложения C #, почему !? Спасибо за любую помощь ...!

Также следует отметить, что я запускаю службу как «Сетевая служба».

Ответы [ 2 ]

0 голосов
/ 19 мая 2011

В подобных ситуациях я всегда запускаю инструмент procmon , который может показать вам все файловые операции вашего приложения. Вы можете настроить фильтр на основе имени файла предустановки и посмотреть, где ffmpeg пытается его найти.

0 голосов
/ 19 мая 2011

Настройка переменной HOME выглядит хорошо здесь.

Единственное, что я вижу, это то, что в коде вы устанавливаете HOME как @ "C: \ Users \ wonea.ffmpeg", а в упомянутом вами тексте файл находится по адресу: C: \ Users \ wonea.ffmpeg

Является ли один из них опечаткой?

...