3

FFMPEGを使用してソースファイルを変換および削除しようとしています。ビデオファイルをある形式から別の形式に変換し、アップロードされた最初のファイルを削除することはソースファイルを意味します。変換後に&&演算子を使用すると、コマンドは正常に機能します構文と write del コマンドを使用すると、コマンド ラインではうまく機能しますが、c# を使用しようとすると、「&&」の適切な出力形式が見つかりませんというエラーが表示されます。デバッガーで確認しました。コマンドライン、コマンドラインは問題ありません。c# の問題点は何ですか?

ffmpeg.StartInfo.Arguments = " -i \"" + v.FilePath + "\" -r 20 -ar 44100 -ab 196 -b 300k -aspect 4:3 -s 800x600 \"" + convertToMp4 + "\" && del \"" + v.FilePath + "\"";
                                ffmpeg.StartInfo.FileName = Server.MapPath("ffmpeg/ffmpeg.exe");
                                //ffmpeg.StartInfo.UseShellExecute = false;
                                ffmpeg.StartInfo.CreateNoWindow = false;
                                ffmpeg.BeginErrorReadLine();
                                ffmpeg.Start();
                                if (b == false)
                                {
                                    ffmpeg.WaitForExit();
                                }
4

1 に答える 1

0

問題は、 convertToMp4 変数が nil になるため、 && が出力ファイル名であると考えていることです

編集:これはシェルの実行につながりますか? && は bash シェルに属しているためです。そのため、ffmpeg が中間の bash シェルなしで C# から直接実行されている場合、&& がどのように機能するかわかりません。これが、 && がシェルに対してここで解釈されないため、ffmpeg が && が望ましい出力ファイルであると考える理由です。次に、2 つの別々のコマンドを実行する必要があります。

于 2012-08-28T11:43:14.663 に答える