C#调用外部程序

本文介绍了一种使用C#语言调用FFmpeg工具进行视频格式转换的方法。具体实现了通过创建外部进程的方式传递FFmpeg命令及参数,并设置进程的各项属性确保能够正确接收FFmpeg的输出信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public void ConvertVideo()    {             

   Process p = new Process();//建立外部调用线程            

 p.StartInfo.FileName = @"c:/ffmpeg.exe";//要调用外部程序的绝对路径             p.StartInfo.Arguments = "-i XXXXXXXXXXXXXX";//参数(这里就是FFMPEG的参数了)             p.StartInfo.UseShellExecute = false;//不使用操作系统外壳程序启动线程(一定为FALSE,详细的请看MSDN)             p.StartInfo.RedirectStandardError = true;//把外部程序错误输出写到StandardError流中(这个一定要注意,FFMPEG的所有输出信息,都为错误输出流,用StandardOutput是捕获不到任何消息的...这是我耗费了2个多月得出来的经验...mencoder就是用standardOutput来捕获的)             p.StartInfo.CreateNoWindow = false;//不创建进程窗口             p.ErrorDataReceived += new DataReceivedEventHandler(Output);//外部程序(这里是FFMPEG)输出流时候产生的事件,这里是把流的处理过程转移到下面的方法中,详细请查阅MSDN             p.Start();//启动线程             p.BeginErrorReadLine();//开始异步读取             p.WaitForExit();//阻塞等待进程结束             p.Close();//关闭进程             p.Dispose();//释放资源 }    private void Output(object sendProcess, DataReceivedEventArgs output)    {    if (!String.IsNullOrEmpty(output.Data))           {    //处理方法...         }    } 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值