ASP.NET下调用ffmpeg与mencoder实现视频转换截屏
最近要做一个视频播放的系统,用到了ffmpeg和mencoder两个工具,查了一些资料,发现这方面的资料还挺多的,但是就是乱了一点,我自己从头整理了一下,和大家分享一下:
1、ffmpeg实现视频(avi,wmv等格式)转换为flv格式:
//视频截图,fileName视频地址,imgFile图片地址 public string CatchImg(string fileName, string imgFile) { //使用ffmpeg抓图 string ffmpeg = Server.MapPath(PublicMethod.ffmpegtool); //图片名称 string flv_img = imgFile + ".jpg"; //图片大小 string FlvImgSize = PublicMethod.sizeOfImg; //建立ffmpeg进程 System.Diagnostics.ProcessStartInfo ImgstartInfo = new System.Diagnostics.ProcessStartInfo(ffmpeg); //后台运行 ImgstartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; //进程参数 //ffmpeg -i input.flv -y -f image2 -ss 10.11 -t 0.001 -s 240x180 catchimg.jpg; ImgstartInfo.Arguments = " -i " + fileName + " -y -f image2 -ss 2 -vframes 1 -s " + FlvImgSize + " " + flv_img; try { //开始抓图 System.Diagnostics.Process.Start(ImgstartInfo); //睡眠一下,等待截图完成,按需设置 System.Threading.Thread.Sleep(5000); } catch { return ""; } // if (System.IO.File.Exists(flv_img)) { return flv_img; } return ""; }原理很简单,其实就是使用System.Diagnostics.Process调用ffmpeg和mencoder这两个现成的工具来进行工作,关键是参数传递,主要还是看咱对ffmpeg和mencoder使用的熟悉程度。