public string Cut(string ffmpegPath, string videoPath, string savePath, string imgSize, int sleepTime = 0xbb8)
        {
            if (File.Exists(ffmpegPath) && File.Exists(videoPath))
            {
                string str = savePath;
                string str2 = imgSize;
                string path = savePath.Substring(0, savePath.LastIndexOf(@"\"));
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                ProcessStartInfo startInfo = new ProcessStartInfo(ffmpegPath)
                {
                    WindowStyle = ProcessWindowStyle.Hidden,
                    Arguments = " -i " + videoPath + " -y -f image2 -t 0.001 -s " + str2 + " " + savePath
                };
                try
                {
                    Process.Start(startInfo);
                    Thread.Sleep(sleepTime);
                }
                catch
                {
                    return string.Empty;
                }
                if (File.Exists(savePath))
                {
                    return savePath;
                }
            }
            return string.Empty;
        }
 
        public string Cut(string ffmpegPath, string videoPath, string savePath, string imgSize, int sleepTime = 0xbb8, float startPos = 10, float cutTime = 1)
        {
            if (File.Exists(ffmpegPath) && File.Exists(videoPath))
            {
                string str = savePath;
                string str2 = imgSize;
                string path = savePath.Substring(0, savePath.LastIndexOf(@"\"));
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                ProcessStartInfo startInfo = new ProcessStartInfo(ffmpegPath)
                {
                    WindowStyle = ProcessWindowStyle.Hidden,
                    Arguments = string.Format(" -i {0} -t {1} -ss {2} -s {3} {4}", new object[] { videoPath, cutTime, startPos, str2, savePath })
                };
                try
                {
                    Process.Start(startInfo);
                    Thread.Sleep(sleepTime);
                }
                catch
                {
                    return string.Empty;
                }
                if (File.Exists(savePath))
                {
                    return savePath;
                }
            }
            return string.Empty;
        }
 
        protected void btnFetch_Click(object sender, EventArgs e)
        {
            try
            {
                string imgDir = Server.MapPath(@"ffmpeg\\");
                string ffmpegPath = imgDir + "ffmpeg.exe";
                string imgSize = txtImgSize.Text.Trim();
                int sleepTime = 500;
                string ret = string.Empty;
                float startPos = Convert.ToSingle(txtStartPos.Text.Trim());
                float cutTime = Convert.ToSingle(txtCutTime.Text.Trim());
 
                string temp = @"" + System.Configuration.ConfigurationManager.AppSettings["filepath"] + @"" + txtDownloadUrl.Text.Trim().Replace(@"/", @"\");
                temp = temp.Replace(@"\\", @"\");
                if (System.IO.File.Exists(temp))
                {
                    ret = Cut(ffmpegPath, temp, imgDir + "img\\" + DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".jpg", imgSize, sleepTime);
 
                    if (string.IsNullOrEmpty(ret))
                    {
                        ret = Cut(ffmpegPath, temp, imgDir + "img\\" + DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".jpg", imgSize, sleepTime, startPos, cutTime);
                    }
 
                }
                litMsg.Text = ret;
                imgDiagram.ImageUrl = ret.Replace(@"D:\site\20150914\", "/").Replace(@"\", "/");
            }
            catch (Exception ex) {
                litMsg.Text = ex.Message;
            }
        }
 

.net c# 视频剪切抓取缩略图的更多相关文章

  1. javaCV开发详解之6:本地音频(话筒设备)和视频(摄像头)抓取、混合并推送(录制)到服务器(本地)

    javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...

  2. 玩转FPGA边缘视觉——4k视频图像抓取

    随着现代图像及视频处理技术的不断发展,人们对图像处理提出了新的要求,最近几年,图像的分辨率和扫描频率都有了较大范围的提升,1080P分辨率的视频已经非常流行,2K甚至4K分辨率的图像也在火热发展中. ...

  3. 新视觉影院yy6080.org视频的抓取

    用fiddler 分析了一下, 从点连接 到 视频播放的过程 http://yy6080.org/v/103390 http://id.jiathis.com/id.php?u=http%3A%2F% ...

  4. 手把手教你用python打造网易公开课视频下载软件3-对抓取的数据进行处理

    上篇讲到抓取的数据保存到rawhtml变量中,然后通过编码最终保存到html变量当中,那么html变量还会有什么问题吗?当然会有了,例如可能html变量中的保存的抓取的页面源代码可能有些标签没有关闭标 ...

  5. php远程图片抓取存放到本地路径并生成缩略图

    private function _getcontent($content)    {               $img_dir='../Public/Img/Ycimg'; //远程图片抓取存放 ...

  6. android实现视频图片取缩略图

    取缩略图不等同于缩放图片. 缩放图片是保持不失真的情况下缩放处理,并进行平滑处理. 缩略图则不然,允许失真,目的只是取出图片的轮廓. 保存Bitmap图片 private void saveBitma ...

  7. 手把手视频:万能开源Hawk抓取动态网站

    Hawk是沙漠之鹰历时五年开发的开源免费网页抓取工具(爬虫),无需编程,全部可视化. 自从上次发布Hawk 2.0过了小半年,可是还是有不少朋友通过邮件或者微信的方式询问如何使用.看文档还是不如视频教 ...

  8. 基于Emgu CV+百度人脸识别,实现视频动态 人脸抓取与识别

    背景 目前AI 处于风口浪尖,作为 公司的CTO,也作为自己的技术专研,开始了AI之旅,在朋友圈中也咨询 一些大牛对于AI 机器学习框架的看法,目前自己的研究方向主要开源的 AI 库,如:Emgu C ...

  9. 摄像头脸部识别 (1)opencv 抓取视频数据并保存

    摄像头脸部识别 (1)opencv 抓取视频数据并保存 基于python 和 opencv 3.4.0 (兼容 opencv 2.X 参考注释),详细如代码 import numpy as np im ...

随机推荐

  1. Angular从0到1:function(上)

    1.前言 Angular作为最流行的前端MV*框架,在WEB开发中占据了重要的地位.接下来,我们就一步一步从官方api结合实践过程,来学习一下这个强大的框架吧. Note:每个function描述标题 ...

  2. eclipse中断点调试debug

    几乎没有用过debug模式,每次想要知道结果都是sysou一下.记得曾经问乱码问题,jfinal说打断点调试看在哪里出错.简单记下普通调试. 1.在需要查看的地方打断点,方法是在行号右侧双击. 2.运 ...

  3. laravel吐槽系列之一

    最近项目中经常使用到了laravel框架,对于这个框架之前只是弱弱地接触了一点,没有深入接触,这下有时间好好研究它了(主要是不得不研究了).说实话,laravel让我打开眼界了,之前对框架的使用一直停 ...

  4. Qt实现小功能之列表无限加载

    概念介绍 无限加载与瀑布流的结合在Web前端开发中的效果非常新颖,对于网页内容具备较好的表现形式.无限加载并没有一次性将内容全部加载进来,而是通过监听滚动条事件来刷新内容的.当用户往下拖动滚动条或使用 ...

  5. SQL--使用NewID函数,创建GUID列

    USE master GO IF EXISTS (SELECT * FROM sysdatabases WHERE name='DB_Temp') DROP DATABASE DB_Temp GO C ...

  6. orleans/Documentation

    福利 奥尔良的主要好处是︰开发人员工作效率,甚至为非专家程序员;和默认的透明可伸缩性与程序员没有特别努力.我们扩大每个下面这些好处. 开发人员的生产力 奥尔良的编程模型通过提供以下关键的抽象. 担保和 ...

  7. Windows Server 2016正式版14393英文版ISO镜像下载:_X64FRE_ZH-CN.ISO

    http://care.dlservice.microsoft.com/dl/download/F/8/3/F83C7D26-787A-4F43-82B0-7C7BF8A12791/14393.0.1 ...

  8. Node.js系列之ubuntu环境搭建

    ctrl+alt+t打开终端(命令行) 一.准备Node.js所依赖的包(g++,curl,python等) sudo apt-get install g++ curl libssl-dev apac ...

  9. c# datetime 格式化

    //c datetime 格式化 DateTime dt = DateTime.Now; Label1.Text = dt.ToString();//2005-11-5 13:21:25 Label2 ...

  10. iOS阶段学习第30天笔记( UIViewController—Delegate(代理) )

    iOS学习(UI)知识点整理 一.UIViewController的介绍 1)概念:UIViewController 即视图控制器,用来管理和控制页面跳转的一个类 ,iOS里面采用了MVC的体系结构, ...