1

ffmpeg を使用して c#asp.net にファイルを変換するコードを書きました。実行中に「ファイル名、ディレクトリ名、またはボリューム ラベルの構文が正しくありません」というエラーが表示されますが、パスは正しいです。それで、これに対する解決策は何ですか?

ProcessStartInfo info = new ProcessStartInfo("e:\ffmpeg\bin\ffmpeg.exe", "-i cars1.flv -same_quant intermediate1.mpg");

process.Start();

以下に示す別の方法を試しました。しかし、それもうまくいきません。

ProcessStartInfo info = new ProcessStartInfo("ffmpeg.exe", "-i cars1.flv -same_quant intermediate1.mpg");

c# asp.net で ffmpeg を使用して、あるビデオ ファイル形式を別のビデオ ファイル形式に変換するためのサンプル コードを教えてください。前もって感謝します。

4

3 に答える 3

1

利用可能なラッパーライブラリがあります

http://www.ffmpeg-csharp.com/

こちらも参照

http://www.codeproject.com/Articles/24995/FFMPEG-using-ASP-NET

https://stackoverflow.com/questions/tagged/asp.net+c%23+video

    string apppath = Request.PhysicalApplicationPath; 

    string outf = Server.MapPath(".");

    string fileargs = "-i" + " " + "\"C:/file.mp4 \"" + " " + "\"C:/files/test.flv \"";

    Process myProcess = new Process();

    myProcess.StartInfo.FileName = Server.MapPath(".")+"//ffmpeg.exe";

    myProcess.StartInfo.Arguments = fileargs;

    myProcess.StartInfo.UseShellExecute = false;

    myProcess.StartInfo.CreateNoWindow = false;

    myProcess.StartInfo.RedirectStandardOutput = false;

    myProcess.Start();

    myProcess.WaitForExit(50 * 1000);

ありがとう

ディープ

于 2012-05-03T12:11:35.507 に答える
0

パス内のバックスラッシュ ( ) は、エスケープ シーケンス\の開始と見なされます。これを防ぐには、二重のバックスラッシュ ( ) を使用するか、文字列の前に を付けます。\\@

ProcessStartInfo info = new ProcessStartInfo("e:\\ffmpeg\\bin\\ffmpeg.exe", 
                         "-i cars1.flv -same_quant intermediate1.mpg");

または:

ProcessStartInfo info = new ProcessStartInfo(@"e:\ffmpeg\bin\ffmpeg.exe", 
                         "-i cars1.flv -same_quant intermediate1.mpg");
于 2012-05-03T12:10:20.010 に答える
0

パスにバックスラッシュが必要です。以下を参照してください。これは、ffmpeg.exe を使用してビデオを作成する方法です。

        string sConverterPath = @"C:\ffmpeg.exe";
        string sConverterArguments = @" -i ";
        sConverterArguments += "\"" + sAVIFile + "\"";
        sConverterArguments += " -s " + iVideoWidth.ToString() + "x" + iVideoHeight.ToString() + " ";
        sConverterArguments += " -b " + iVideoBitRate.ToString() + "k -ab " + iAudioBitRate.ToString() + "k -ac 1 -ar 44100 -r 24 -absf remove_extra ";
        sConverterArguments += "\"" + sOutputFile + "\"";


        Process oProcess = new Process();
        oProcess.StartInfo.UseShellExecute = true;
        oProcess.StartInfo.Arguments = sConverterArguments;
        oProcess.StartInfo.FileName = sConverterPath;
于 2012-05-03T12:11:54.073 に答える