• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#实现通过ffmpeg从flv视频文件中截图的方法

C#实现通过ffmpeg从flv视频文件中截图的方法

作者:niuniu 字体:[增加 减小] 来源:互联网 时间:2017-05-28

niuniu 通过本文主要向大家介绍了c#调用ffmpeg,c#ffmpeg,c#使用ffmpeg,ffmpeg flv 转mp4,ffmpeg flv等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了C#实现通过ffmpeg从flv视频文件中截图的方法。分享给大家供大家参考。具体分析如下:

需要先下载ffmpeg,这是开源的,代码如下所示:
using System.Configuration;
public class PublicMethod:System.Web.UI.Page
{
    public PublicMethod()
    {
    }
    //文件路径
    public static string ffmpegtool = "ffmpeg/ffmpeg.exe";        
    public static string mencodertool = "mencoder/mencoder.exe";
    public static string flvtool = "flvtool/flvtool2.exe";//flv标记工具
    public static string upFile = "UpFiles" + "/";//上传文件夹
    public static string imgFile = "ImgFile" + "/";//图片文件夹
    public static string playFile = "PlayFiles" + "/";//flv文件夹
    public static string xmlFile = "xmlFiles" + "/";//xml文件夹
    public static string sizeOfImg = "240x180";//图片的宽与高
    public static string widthOfFile = "400";//flv文件的宽度
    public static string heightOfFile = "350";//flv文件的高度
    //public static string ffmpegtool = ConfigurationManager.AppSettings["ffmpeg"];
    //public static string mencodertool = ConfigurationManager.AppSettings["mencoder"];
    //public static string upFile = ConfigurationManager.AppSettings["upfile"] + "/";
    //public static string imgFile = ConfigurationManager.AppSettings["imgfile"] + "/";
    //public static string playFile = ConfigurationManager.AppSettings["playfile"] + "/";
    //文件图片大小
    //public static string sizeOfImg = ConfigurationManager.AppSettings["CatchFlvImgSize"];
    //文件大小
    //public static string widthOfFile = ConfigurationManager.AppSettings["widthSize"];
    //public static string heightOfFile = ConfigurationManager.AppSettings["heightSize"];
    //   // //获取文件的名字
    private System.Timers.Timer myTimer = new System.Timers.Timer(3000);//记时器
    public static string flvName = "";
    public static string imgName = "";
    public static string flvXml = "";
    public static int pId = 0;
    public static string GetFileName(string fileName)
    {
        int i = fileName.LastIndexOf("\") + 1;
        string Name = fileName.Substring(i);
        return Name;
    }
    //获取文件扩展名
    public static string GetExtension(string fileName)
    {
        int i = fileName.LastIndexOf(".")+1;
        string Name = fileName.Substring(i);
        return Name;
    }
    //
    #region //运行FFMpeg的视频解码,(这里是绝对路径)
    /// <summary>
    /// 转换文件并保存在指定文件夹下面(这里是绝对路径)
    /// </summary>
    /// <param name="fileName">上传视频文件的路径(原文件)</param>
    /// <param name="playFile">转换后的文件的路径(网络播放文件)</param>
    /// <param name="imgFile">从视频文件中抓取的图片路径</param>
    /// <returns>成功:返回图片虚拟地址;   失败:返回空字符串</returns>
    public void ChangeFilePhy(string fileName, string playFile, string imgFile)
    {
        //取得ffmpeg.exe的路径,路径配置在Web.Config中,如:<add   key="ffmpeg"   value="E:aspx1ffmpeg.exe"   /> 
        string ffmpeg = Server.MapPath(PublicMethod.ffmpegtool);
        if ((!System.IO.File.Exists(ffmpeg)) || (!System.IO.File.Exists(fileName)))
        {
            return;
        }
        //获得图片和(.flv)文件相对路径/最后存储到数据库的路径,如:/Web/User1/00001.jpg 
        string flv_file = System.IO.Path.ChangeExtension(playFile, ".flv");
        //截图的尺寸大小,配置在Web.Config中,如:<add   key="CatchFlvImgSize"   value="240x180"   /> 
        string FlvImgSize = PublicMethod.sizeOfImg;
        System.Diagnostics.ProcessStartInfo FilestartInfo = new System.Diagnostics.ProcessStartInfo(ffmpeg);
        FilestartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
        FilestartInfo.Arguments = " -i " + fileName + " -ab 56 -ar 22050 -b 500 -r 15 -s " + widthOfFile + "x" + heightOfFile + " " + flv_file;
        //ImgstartInfo.Arguments = "   -i   " + fileName + "   -y   -f   image2   -t   0.05   -s   " + FlvImgSize + "   " + flv_img;
        try
        {
            //转换
            System.Diagnostics.Process.Start(FilestartInfo);
            //截图
            CatchImg(fileName, imgFile);
            //System.Diagnostics.Process.Start(ImgstartInfo);
        }
        catch
        {
        }
    }
    #endregion
    #region 截图
    public string CatchImg(string fileName,string imgFile)
    {
        //
        string ffmpeg = Server.MapPath(PublicMethod.ffmpegtool);
        //
        string flv_img =imgFile+".jpg";
        //
        string FlvImgSize = PublicMethod.sizeOfImg;
        //
        System.Diagnostics.ProcessSt

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#实现通过ffmpeg从flv视频文件中截图的方法

相关文章

  • 2017-05-28C#中值类型和引用类型的区别深度分析
  • 2017-05-28C#滚动字幕的实现方法
  • 2017-05-28关于C# Math 处理奇进偶不进的实现代码
  • 2017-05-28C#实现插入排序算法实例
  • 2017-05-28C#编程自学之数据类型和变量二
  • 2017-05-28轻松学习C#的String类
  • 2017-05-28C#使用jQuery实现无刷新评论提交的方法
  • 2017-05-28C# readnodefile()不能读取带有文件名为汉字的osg文件解决方法
  • 2017-05-28C#中foreach原理以及模拟的实现
  • 2017-05-28C#使用itextsharp生成PDF文件的实现代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#实现鼠标移动到曲线图上显示值的方法
    • C#实现SMTP邮件发送程序实例
    • C#实现将汉字转化为2位大写的16进制Unicode的方法
    • C#实现对Json字符串处理实例
    • 分享C#操作内存读写方法的主要实现代码
    • C#获取进程或线程相关信息的方法
    • C#实现对用户输入数据进行校验的类实例
    • C#利用原图和水印图的重叠简单实现水印的方法
    • C#中自定义高精度Timer定时器的实例教程
    • C# 获取属性名的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有