c#.net程序中使用ffmpeg.exe来处理视频并生成上传视频的截


[.NET]c#.net程序中使用ffmpeg.exe来处理视频并生成上传视频的截图,注意:1、startInfo.Arguments中的3个字符串参数中不能出现空格,否则生成图片失败
  
  
  1. 添加如下前台代码: 
  2.  
  3. <asp:FileUpload ID="FileUpload1" runat="server" /> 
  4. <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上传视频" /> 
  5.  
  6. .cs中代码: 
  7.  
  8. protected void Button1_Click(object sender, EventArgs e)    //按钮事件 
  9.     { 
  10.         string imgfileExp = this.FileUpload1.PostedFile.FileName.Substring (this.FileUpload1.PostedFile.FileName.LastIndexOf(".") + 1); 
  11.         string filename = "11223344"
  12.         if (imgfileExp.ToLower() == "flv") 
  13.         { 
  14.             this.FileUpload1.PostedFile.SaveAs(Server.MapPath("~/uploadfile") + "\\"  + filename + "." + imgfileExp); 
  15.             string ffmpeg = Server.MapPath("ffmpeg.exe");   //ffmpeg执行文件的路径 
  16.             string filenames = Server.MapPath("uploadfile") + "\\" + filename + "."  + imgfileExp;   //上传文件存放路径 
  17.  
  18.             string catchImg = CatchImg("uploadfile/" + filename + "." + imgfileExp); 
  19.         } 
  20.     } 
  21.  
  22. public string CatchImg(string vFileName) 
  23.     { 
  24.         try 
  25.         { 
  26.             string ffmpeg = "ffmpeg.exe"
  27.             ffmpeg = Server.MapPath(ffmpeg); 
  28.  
  29.             if ((!System.IO.File.Exists(ffmpeg)) ||  (!System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath(vFileName)))) 
  30.             { 
  31.                 return ""; 
  32.             } 
  33.             //获得图片相对路径/最后存储到数据库的路径,如:uploadfile/11223344.jpg 
  34.             string flv_img = System.IO.Path.ChangeExtension(vFileName, ".jpg"); 
  35.  
  36.             //图片绝对路径,如:D:\Video\Web\FlvFile\User1\0001.jpg 
  37.             string flv_img_p = Server.MapPath("uploadfile/1.jpg"); 
  38.            
  39.             //截图的尺寸大小,配置在Web.Config中,如:<add key="CatchFlvImgSize" value="140x110" /> 
  40.             string FlvImgSize = "140*110"
  41.             System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics. ProcessStartInfo(ffmpeg); 
  42.             startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
  43.             
  44.             //此处组合成ffmpeg.exe文件需要的参数即可,此处命令在ffmpeg 0.4.9调试通过 
  45.             startInfo.Arguments = " -i " + Server.MapPath(vFileName) + "  -y -f image2 -t 0.1 -s " + FlvImgSize + " " + flv_img_p; 
  46.            
  47.             try 
  48.             { 
  49.                 System.Diagnostics.Process.Start(startInfo); 
  50.             } 
  51.             catch 
  52.             { 
  53.                 return ""; 
  54.             } 
  55.             System.Threading.Thread.Sleep(4000); 
  56.  
  57.             return ""; 
  58.         } 
  59.         catch 
  60.         { 
  61.             return ""; 
  62.         } 
  63.     } 


注意:1、startInfo.Arguments中的3个字符串参数中不能出现空格,否则生成图片失败。

        2、在web.config中的 <system.web>里添加 <httpRuntime maxRequestLength="2097151" executionTimeout="60"/>.

        3、需要下载的东西有ffmpeg.exe和pthreadGC2.dll.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值