博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[.NET]c#.net程序中使用ffmpeg.exe来处理视频并生成上传视频的截图
阅读量:5785 次
发布时间:2019-06-18

本文共 1990 字,大约阅读时间需要 6 分钟。

添加如下前台代码: 

  •  
  • <asp:FileUpload ID="FileUpload1" runat="server" /> 
  • <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上传视频" /> 
  •  
  • .cs中代码: 
  •  
  • protected void Button1_Click(object sender, EventArgs e)    //按钮事件 
  •     { 
  •         string imgfileExp = this.FileUpload1.PostedFile.FileName.Substring (this.FileUpload1.PostedFile.FileName.LastIndexOf(".") + 1); 
  •         string filename = "11223344"; 
  •         if (imgfileExp.ToLower() == "flv") 
  •         { 
  •             this.FileUpload1.PostedFile.SaveAs(Server.MapPath("~/uploadfile") + "\\"  + filename + "." + imgfileExp); 
  •             string ffmpeg = Server.MapPath("ffmpeg.exe");   //ffmpeg执行文件的路径 
  •             string filenames = Server.MapPath("uploadfile") + "\\" + filename + "."  + imgfileExp;   //上传文件存放路径 
  •  
  •             string catchImg = CatchImg("uploadfile/" + filename + "." + imgfileExp); 
  •         } 
  •     } 
  •  
  • public string CatchImg(string vFileName) 
  •     { 
  •         try 
  •         { 
  •             string ffmpeg = "ffmpeg.exe"; 
  •             ffmpeg = Server.MapPath(ffmpeg); 
  •  
  •             if ((!System.IO.File.Exists(ffmpeg)) ||  (!System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath(vFileName)))) 
  •             { 
  •                 return ""; 
  •             } 
  •             //获得图片相对路径/最后存储到数据库的路径,如:uploadfile/11223344.jpg 
  •             string flv_img = System.IO.Path.ChangeExtension(vFileName, ".jpg"); 
  •  
  •             //图片绝对路径,如:D:\Video\Web\FlvFile\User1\0001.jpg 
  •             string flv_img_p = Server.MapPath("uploadfile/1.jpg"); 
  •            
  •             //截图的尺寸大小,配置在Web.Config中,如:<add key="CatchFlvImgSize" value="140x110" /> 
  •             string FlvImgSize = "140*110"; 
  •             System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics. ProcessStartInfo(ffmpeg); 
  •             startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
  •             
  •             //此处组合成ffmpeg.exe文件需要的参数即可,此处命令在ffmpeg 0.4.9调试通过 
  •             startInfo.Arguments = " -i " + Server.MapPath(vFileName) + "  -y -f image2 -t 0.1 -s " + FlvImgSize + " " + flv_img_p; 
  •            
  •             try 
  •             { 
  •                 System.Diagnostics.Process.Start(startInfo); 
  •             } 
  •             catch 
  •             { 
  •                 return ""; 
  •             } 
  •             System.Threading.Thread.Sleep(4000); 
  •  
  •             return ""; 
  •         } 
  •         catch 
  •         { 
  •             return ""; 
  •         } 
  •     } 

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

        2、在web.config中的 <system.web>里添加 <httpRuntime maxRequestLength="2097151" executionTimeout="60"/>.
        3、需要下载的东西有ffmpeg.exe和pthreadGC2.dll.

转载地址:http://lyvyx.baihongyu.com/

你可能感兴趣的文章
一起谈.NET技术,你应该知道的15个Silverlight诀窍
查看>>
商教助手!解析夏普液晶高清宽屏投影机系列
查看>>
云南去年有望实现151万贫困人口净脱贫
查看>>
Java架构师面试题系列整理(大全)
查看>>
延伸产业链 中国产粮大省向“精深”问发展
查看>>
消费贷用户70%月收入低于5000元 80、90后是主要人群
查看>>
2018年内蒙古外贸首次突破1000亿元
查看>>
CTOR有助于BCH石墨烯技术更上一层楼
查看>>
被遗忘的CSS
查看>>
Webpack中的sourcemap以及如何在生产和开发环境中合理的设置sourcemap的类型
查看>>
做完小程序项目、老板给我加了6k薪资~
查看>>
java工程师linux命令,这篇文章就够了
查看>>
关于React生命周期的学习
查看>>
webpack雪碧图生成
查看>>
搭建智能合约开发环境Remix IDE及使用
查看>>
Spring Cloud构建微服务架构—服务消费基础
查看>>
RAC实践采坑指北
查看>>
runtime运行时 isa指针 SEL方法选择器 IMP函数指针 Method方法 runtime消息机制 runtime的使用...
查看>>
LeetCode36.有效的数独 JavaScript
查看>>
Scrapy基本用法
查看>>