Это должно работать для вас:
string arguments = string.Format("-i \"{0}\" -ar 44100 -ab 160k \"{1}\"", finPath, foutPath);
Process.Start(thePathToExecutable, arguments);
Обязательно укажите путь к исполняемому файлу отдельно от аргументов командной строки.
Редактировать в ответ на комментарии и вопросы редактировать:
Я только что запустил это в консоли, используя следующий код:
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
string RootPath = "C:\\";
string savedFile = "test.avi";
string inputPath = Path.Combine(RootPath, "videoinput");
string ffmpegpath = Path.Combine(RootPath, "ffmpeg.exe"); //ffmpeg path
string outputPath = Path.Combine(RootPath, "videooutput");
//define new extension
string fileext = ".flv";
string namenoextension = Path.GetFileNameWithoutExtension(savedFile);
string newfilename = namenoextension + fileext;
string fileoutPath = Path.Combine(outputPath, newfilename);
string fileinPath = Path.Combine(inputPath, savedFile);
string arguments = string.Format("-i \"{0}\" -ar 44100 -ab 160k \"{1}\"", fileinPath, fileoutPath);
Console.WriteLine(ffmpegpath);
Console.WriteLine(arguments);
Console.ReadKey();
}
}
Это пишет:
C:\ffmpeg.exe
-i "C:\videoinput\test.avi" -ar 44100 -ab 160k "C:\videooutput\test.flv"
Как я сказал - если вы делаете это таким образом, это должно работать. При этом я рекомендую прочитать класс System.IO.Path и использовать Path.Combine (), Path.GetFullPath () и т. Д., Чтобы исправить ваши входные файлы. Это также может помочь вам исправить часть проблемы.