求高手指点,C#调用ffmpeg不能正常退出

「已注销」 2013-05-22 06:50:18
public void CmdProcess(string command)//调用CMD
{
//实例化一个进程类
Process process = new Process();
process.StartInfo.FileName = "cmd.exe";

//将cmd的标准输入和输出全部重定向到.NET的程序中
process.StartInfo.UseShellExecute = false;//此处必须为false,否则引发异常
process.StartInfo.RedirectStandardInput = true;//标准输入
process.StartInfo.RedirectStandardOutput = true;//标准输出
process.StartInfo.CreateNoWindow = false;//不显示命令行窗口界面

process.Start();//启动线程
//process.StartInfo.Arguments = command;
process.StandardInput.WriteLine(command);
process.StandardInput.WriteLine("exit");
process.WaitForExit();//阻塞等待进程结束
process.StandardOutput.ReadToEnd();
process.Close();//关闭进程
process.Dispose();//释放资源
}
commond 是调用ffmpeg的命令行,直接在cmd里执行这个命令行可以,这样调用就不行了,ffmpeg无法退出,无法继续执行下面的命令行.

如果用process.StartInfo.Arguments = command;用这句代码的话命令行秒退,不执行.
求大牛指点.
...全文
805 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
FZfeng 2013-09-12
  • 打赏
  • 举报
回复
引用 6 楼 icfox 的回复:
[quote=引用 4 楼 LYF610400210 的回复:] 首先确保你的ffmpeg在命令行中能正常退出
在命令行中是没问题的,我搜索了下,说ffmpeg是standerror流,几种方法都实验了,没有效果啊.不知道应该如何操作.[/quote] 需要读取完standerror流,才可继续往下执行
yktd26 2013-06-21
  • 打赏
  • 举报
回复
加quiet试试呢,怎么看都像cmd的buffer到上限了
「已注销」 2013-06-20
  • 打赏
  • 举报
回复
引用 4 楼 LYF610400210 的回复:
首先确保你的ffmpeg在命令行中能正常退出
在命令行中是没问题的,我搜索了下,说ffmpeg是standerror流,几种方法都实验了,没有效果啊.不知道应该如何操作.
LYF610400210 2013-06-15
  • 打赏
  • 举报
回复
不要启动cmd,直接运行ffmpeg -I xxxxxx试一试
LYF610400210 2013-06-15
  • 打赏
  • 举报
回复
首先确保你的ffmpeg在命令行中能正常退出
「已注销」 2013-06-14
  • 打赏
  • 举报
回复
求大牛啊!
「已注销」 2013-05-23
  • 打赏
  • 举报
回复
就这么沉了,大牛快出现啊!连续执行两条命令行就会这样,只执行一条就可以正常结束.
「已注销」 2013-05-22
  • 打赏
  • 举报
回复
我把命令行窗口显示出来,执行结果如下:
这时候命令行窗口假死,ctrl+c或者输入文字都无反应.
直接在cmd中输入同样的命令行则正常

111,096

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧