2013-11-19 2 views
2

В настоящее время мне нужно преобразовать mp4-видео в webm и ogg. Чтобы преобразовать mp4 в webm, я использовал «ffmpeg.exe». Я запускаю следующий код для конвертирования видео mp4 в webm.Преобразование mp4 в webm, ogg-форматы

[DllImport("User32.dll")] 
public static extern bool SetForegroundWindow(IntPtr hWnd); 
public void mciConvertWavMP3(string fileName, bool waitFlag) 
{ 

    string savepath = Server.MapPath(fileName); 
    string destpath = Server.MapPath(fileName); 
    string pworkingDir = Server.MapPath("~/ffmpeg/"); 

// string outfile = "-b:a 16 --resample 24 -m j " + savepath + " " + savepath.Replace(".wav", ".mp3") + ""; //--- lame code 
    // string outfile = "-b 192k -i " + savepath + " " + destpath.Replace(".mp4", ".webm"); 
    // string outfile = "ffmpeg -i " + savepath + " -acodec libvorbis -ac 2 -ab 96k -ar 44100 -b 345k -s 640x360 " + Server.MapPath("output-file.webm"); 

    string outfile = "ffmpeg -i \"test7.mp4\" -c:v libvpx -crf 10 -b:v 1M -c:a libvorbis \"" + Server.MapPath("output-file.webm") + "\""; 
    // string outfile = "ffmpeg -i \""+fileName+"\" -codec:v libvpx -quality good -cpu-used 0 -b:v 600k -qmin 10 -qmax 42 -maxrate 500k -bufsize 1000k -threads 2 -vf scale=-1:480 -an -pass 1 -f webm /dev/null"; 

    System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(); 
    psi.FileName = pworkingDir+"ffmpeg.exe"; 
    psi.Arguments = outfile; 
    psi.UseShellExecute = true; 
    psi.CreateNoWindow = false; 
    System.Diagnostics.Process p = System.Diagnostics.Process.Start(psi); 
    Thread.Sleep(1000);// utput.webm 
    if (waitFlag) 
    { 
     p.WaitForExit(); 
     // wait for exit of called application 
    } 
} 

Я держал папку проекта в D:/привод

Когда я бегу от командования ПРОМТ свой рабочий штраф. Но когда я запускаю этот код, он не работает нормально.

Формальные ошибки, которые я получаю являются:

«не удалось найти подходящий формат вывода для„FFmpeg“» рода ошибок. ТАК, пожалуйста, любой поможет решить эту проблему.

Спасибо & С уважением

ответ

0

удалить "FFmpeg" из

string outfile = "ffmpeg -i \"test7.mp4\" -c:v libvpx -crf 10 -b:v 1M -c:a libvorbis \"" + Server.MapPath("output-file.webm") + "\""; 

вы уже передать имя приложения в переменной psi.FileName.

Смежные вопросы