cmd命令无法识别为>内部或外部命令,可操作程序或批处理文件

时间:2015-11-30 09:39:06

标签: c# cmd

当我运行此代码时。

public void WaterMarkingUsingCommandLine(string videopath, string imagepath)
{
    string OutputFolder = AppDomain.CurrentDomain.BaseDirectory + "Output\\" + System.IO.Path.GetFileNameWithoutExtension(videopath) + "_Output.mp4";
    string ffmpegPath = @""""+AppDomain.CurrentDomain.BaseDirectory + @"ffmpeg.exe""";
    string ffmpegParams = @"-i """+videopath+@""" -i """+imagepath+@""" -filter_complex ""overlay=10:10"" """+OutputFolder+@"""";

    Process ffmpeg = new Process();
    ffmpeg.StartInfo.FileName = "cmd.exe";
    ffmpeg.StartInfo.Arguments = "/k " + ffmpegPath + " " + ffmpegParams;
    ffmpeg.Start();
}

我在cmd中看到了这一点。

  

'c:\ users \ jafar.baltidynamolog \ documents \ visual'无法识别为   内部或外部命令,可操作程序或批处理文件。

     

C:\用户\ jafar.baltidynamolog \画\视频>

问题似乎是由于空间问题。正如其他问题所述,我在文件名周围添加了逗号,但它仍无效。

更新

通过调试我发现了

的值

ffmpeg.StartInfo.Arguments =

  

“/ k \”c:\ users \ jafar.baltidynamolog \ documents \ visual studio   2010 \项目\ VideoProjectBilal \ VideoProjectBilal \ BIN \调试\ ffmpeg.exe \”   -i \“C:\ Users \ jafar.baltidynamolog \ Videos \ videos \ SampleVideo_360x240_2mb.mp4 \”   -i \“C:\ Users \ jafar.baltidynamolog \ Videos \ images \ 2.png \”-filter_complex \“overlay = 10:10 \”\“c:\ users \ jafar.baltidynamolog \ documents \ visual studio   2010 \项目\ VideoProjectBilal \ VideoProjectBilal \ BIN \调试\输出\ SampleVideo_360x240_2mb_Output.mp4 \ “”

1 个答案:

答案 0 :(得分:0)

尝试更改此行:
string ffmpegPath = @""""+AppDomain.CurrentDomain.BaseDirectory + @"ffmpeg.exe""";
为此:
string ffmpegPath = @"""" + AppDomain.CurrentDomain.BaseDirectory + "ffmpeg.exe";

<强>更新
试试这个:

string OutputFolder = AppDomain.CurrentDomain.BaseDirectory + "Output\\" + System.IO.Path.GetFileNameWithoutExtension(videopath) + "_Output.mp4";
string ffmpegPath =AppDomain.CurrentDomain.BaseDirectory + "ffmpeg.exe";
string ffmpegParams = "-i " + videopath + " -i " + imagepath + " -filter_complex overlay=10:10 " + OutputFolder ;