Проблема с запуском FFmpeg внутри C#

#c# #command-line #ffmpeg #processstartinfo

#c# #командная строка #ffmpeg #processstartinfo

Вопрос:

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

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

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

 var processinfo = new ProcessStartInfo();
processinfo.FileName = "FFmpeg\bin\ffmpeg.exe";
processinfo.Arguments = "-i C:Tempinput.mp4 -y -acodec aac -strict experimental -ab 96k -vcodec libx264 -vpre lossless_slow -crf 22 -threads 0 C:Tempoutput.mp4"
processinfo.RedirectStandardOutput = true;
processinfo.RedirectStandardError = true;
processinfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
processinfo.UseShellExecute = false;
processinfo.LoadUserProfile = true;
processinfo.EnvironmentVariables.Add("HOME", @"C:Userswonea.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:Userswonea .ffmpeg

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

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

Комментарии:

1. > файл для предустановки lossless_slow без потерь … Вы знаете, существует ли / где этот файл в иерархии каталогов ffmpeg? Требуется ли для этого дополнительный каталог в вашем PATH? Удачи!

Ответ №1:

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

Комментарии:

1. Спасибо, я понял, что он искал C:.FFmpeg . FFmpeg bizarre но Procmon выделил проблему.

Ответ №2:

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

Единственное, что я вижу, это то, что в коде вы установили значение HOME равным @»C:Userswonea.ffmpeg «и в тексте, который вы упоминаете, файл находится по адресу: C:Userswonea.ffmpeg

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

Комментарии:

1. Спасибо за ответ, на самом деле это была ошибка в stackoverflow, из-за которой моя косая черта удалялась непреднамеренно.

2. Я думал, что это, вероятно, что-то подобное. Спасибо!