【发布时间】:2014-01-03 11:35:29
【问题描述】:
我在我的应用程序中使用 ffmpeg 来旋转视频,但问题是当我开始转换时,ffmpeg 只显示它的版本信息而不开始实际的转换,但是当我关闭我的应用程序时,ffmpeg 进程仍然在任务栏中的运行进程中并开始转换文件。
ffmpeg 输出
这是我的代码,请告诉我哪里做错了。
void ConvertVideo(object[] arr) {
string Argument = (string)arr[0];
string OutputFolder = (string)arr[1];
string ConvertedFile = (string)arr[2];
UpdateStatus("Converting! Please wait...");
ffmpeg = new Process();
ffmpeg.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
ffmpeg.StartInfo.FileName = "ffmpeg.exe";
ffmpeg.StartInfo.UseShellExecute = false;
ffmpeg.StartInfo.RedirectStandardError = true;
ffmpeg.StartInfo.RedirectStandardOutput = true;
ffmpeg.StartInfo.CreateNoWindow = true;
ffmpeg.StartInfo.Arguments = Argument;
ffmpeg.Start();
myStreamReader = ffmpeg.StandardError;
outputLine = myStreamReader.ReadLine();
UpdateRTB(outputLine);//Write line to ritchtextbox
do
{
if (outputLine.Contains("muxing overhead"))
{
UpdateStatus("Muxing video");
}
if (outputLine.StartsWith("frame"))
{
UpdateStatus("Converting video");
}
}
while (!(ffmpeg.HasExited & (string.Compare(outputLine, "") == 0 | outputLine == null)));
ffmpeg.Close();
myStreamReader.Close();
UpdateStatus("Convertion completed successfully");
}
【问题讨论】: