3

我正在尝试使用 FFMPEG 转换和删除源文件,我想要的是将视频文件从一种格式转换为另一种格式,并删除第一个上传的意味着源文件,如果我们在转换后使用 && 运算符,该命令可以正常工作语法和编写 del 命令,它在命令行上运行良好,但是当我们尝试使用 c# 时,它给出了错误 Unable to find a proper output format for '&&' I have check with debugger,它与我们正在写的同一行命令行,命令行没有任何问题。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 变量结果为零,因此它认为 && 是输出文件名

编辑:这会导致 shell 执行吗?因为 && 属于 bash shell。因此,如果 ffmpeg 直接从 C# 执行而没有中间 bash shell,我不确定 && 将如何工作。这就是为什么 ffmpeg 认为 && 是所需的输出文件的原因,因为 && 在这里没有为 shell 解释。然后,您应该执行两个单独的命令。

于 2012-08-28T11:43:14.663 回答