使用ffmpeg将图片将图片合成视频或者取视频帧作为视频封面

首先需要下载ffmpeg.exe将exe文件放入资金的程序bin目录,然后通过命令行的方式调用ffmpeg是完成想要做的事情, 这里举两个最简单的例子:将图片合成视频或者取视频帧作为视频封面

string pathString = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
Process p = new Process();
p.StartInfo.FileName = pathString + “ffmpeg.exe”;

		// 将图片合成视频
        **p.StartInfo.Arguments = @"-y -r 5 -i " + @"pic\%d.jpg " +@"-vcodec libx264 " + @"out.mp4";**		
        // 取视频帧作为视频封面
        **p.StartInfo.Arguments = @"-i " + @"tmp.mp4 " + @"-y -f image2 -s 960x540 " + @"D:\6d.jpg";**
        p.StartInfo.UseShellExecute = false;//不使用操作系统外壳程序启动线程(一定为FALSE,详细的请看MSDN)
        p.StartInfo.RedirectStandardError = true;//把外部程序错误输出写到StandardError流中(这个一定要注意,FFMPEG的所有输出信息,都为错误输出流,用StandardOutput是捕获不到任何消息的...)
        p.StartInfo.CreateNoWindow = false;//不创建进程窗口
        //p.ErrorDataReceived += new DataReceivedEventHandler((s, message) => { Response.Write(message.Data); });//外部程序(这里是FFMPEG)输出流时候产生的事件,这里是把流的处理过程转移到下面的方法中,详细请查阅MSDN
        p.ErrorDataReceived += new DataReceivedEventHandler(Output);//外部程序(这里是FFMPEG)输出流时候产生的事件,这里是把流的处理过程转移到下面的方法中,详细请查阅MSDN
        p.Start();//启动线程
        p.BeginErrorReadLine();//开始异步读取
        p.WaitForExit();//阻塞等待进程结束
        p.Close();//关闭进程
        p.Dispose();//释放资源

注意:参数之间要以空格隔开, 否则命令行无效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值