开源项目地址:https://github.com/vladjerca/FFMpegSharp

首先需要在 web.config 或 app.config 中配置

  <appSettings>
<!-- FFMpegSharp 需要的参数 -->
<add key="ffmpegRoot" value="D:\参考资料\C#\FFmpeg_Binary\ffmpeg-20190325-6e42021-win32and64-shared\" /> </appSettings>

代码:

using FFMpegSharp;
using FFMpegSharp.FFMPEG;
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Windows.Forms; namespace UIForms
{
/// <summary>
/// https://github.com/vladjerca/FFMpegSharp
/// </summary>
public partial class ffmpegTest01 : Form
{
public ffmpegTest01()
{
InitializeComponent();
} string _videoFileFullPath = @"D:\Workspace\TestVideo.mp4"; FFMpeg fpeg = new FFMpeg(); private void btnStart_Click(object sender, EventArgs e)
{
string inputFile = _videoFileFullPath;
string outputFileFullPath = string.Format(@"D:\Workspace\TestVideo-mp4-thumb-{0}.png", DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss"));
FileInfo output = new FileInfo(outputFileFullPath); var video = VideoInfo.FromPath(_videoFileFullPath); Bitmap bitImg = fpeg.Snapshot(
video,
output,
//size : new Size(400, 400),
captureTime : TimeSpan.FromMinutes()
);
if (bitImg != null)
{
bitImg.Save(outputFileFullPath, ImageFormat.Png);
MessageBox.Show("save ok");
}
MessageBox.Show("finished");
} private void btnStop_Click(object sender, EventArgs e)
{ } private void btnGetVideoInfo_Click(object sender, EventArgs e)
{
var video = new VideoInfo(_videoFileFullPath);
string output = video.ToString();
MessageBox.Show(output);
}
}
}

运行截图:

小结:这个工具抓图时没有想象中的那么快,据说 FFmpeg 参数的配置顺序也可能导致慢,详细的请看 https://www.cnblogs.com/wanghetao/p/3420788.html

谢谢浏览!

利用开源项目 FFMpegSharp 实现音视频提取、转码、抓图等操作的更多相关文章

  1. 利用开源项目jadx反编译Android应用

    原文转自:http://bbs.itheima.com/thread-200475-1-1.html 利用开源项目jadx反编译Android应用 利用Github开源项目jadx可以直接对 .dex ...

  2. Excel催化剂开源第37波-音视频文件元数据提取(分辨率,时长,采样率等)

    上一篇提到图片元信息Exif的提取,当然还有一类音视频文件,也同样存储着许多宝贵的元数据,那就开源到底呗,虽然自己找寻过程也是蛮艰辛坎坷的,大家看后有收获,只求多多传播下,让前人的工作可以更有价值. ...

  3. 利用开源项目使discus论坛与java应用同步登录和注册

    最近做了一个资源库系统的项目,老师说可以搭建开源论坛替代自己开发社交模块(评论啊,反馈啊)来减轻负担,甚至提到了要给每个资源开一帖的功能..使我十分怀疑到底是减轻负担还是增加负担...不过怀疑归怀疑, ...

  4. 《自拍教程19》ffmpeg_音视频图像转码工具

    ffmpeg命令介绍 ffmpeg.exe(linux/imac一般不带后缀,ffmpeg), 是一款音视频编解码的命令行工具软件, 常用于多媒体测试的文件制作与转码. 我们常用的:格式工厂,Medi ...

  5. TouTiao开源项目 分析笔记18 视频详情页面

    1.效果预览 1.1.需要做到的真实效果 1.2.触发的点击事件 在MediaArticleVideoViewBinder的每一个item点击事件中: VideoContentActivity.lau ...

  6. 基于开源项目的在线网络视频直播项目---一个很好的电视直播开源项目Sopcast

    http://blog.csdn.net/roy_xu/article/details/2216559 http://115.com/?ct=rar&pickcode=ew52634xr2cr ...

  7. 基于开源项目的在线网络视频直播项目---pc端的推流

    https://github.com/winlinvip/simple-rtmp-server/issues/66 https://github.com/justinmakaila/iOS-Frame ...

  8. 一个Python开源项目-腾讯哈勃沙箱源码剖析(上)

    前言 2019年来了,2020年还会远吗? 请把下一年的年终奖发一下,谢谢... 回顾逝去的2018年,最大的改变是从一名学生变成了一位工作者,不敢说自己多么的职业化,但是正在努力往那个方向走. 以前 ...

  9. 了不起的WebRTC:生态日趋完善,或将实时音视频技术白菜化

    本文原文由声网WebRTC技术专家毛玉杰分享. 1.前言 有人说 2017 年是 WebRTC 的转折之年,2018 年将是 WebRTC 的爆发之年,这并非没有根据.就在去年(2017年),WebR ...

随机推荐

  1. js删除html标记 去掉所有html标记

    js删除html标记 去掉所有html标记 function delHtml(str){ return str.replace(/<[^>]+>/g,""); / ...

  2. ios 点击webview获取图片url (js交互)

    加手势 -(void)handleSingleTap:(UITapGestureRecognizer *)sender { CGPoint pt = [sender locationInView:_c ...

  3. 3 测试使用和LogCat日志

    测试概念: 1.根据是否知道源代码分: 黑盒测试:功能测试 白盒测试:编写代码进行测试 2.测试力度划分: 方法测试: 单元测试: 集成测试: 系统测试: 3.暴力程度划分: 压力测试: 冒烟测试:压 ...

  4. 实用的生成二维码API

    推荐一个生成二维码的API网站: 中文 http://www.topscan.com 英文 https://api.qrserver.com/v1/create-qr-code/?size=150x1 ...

  5. jmeter连接并使用mysql数据

    一.下载数据库驱动,放至D:\apache-jmeter-2.13\lib\ext目录下 二.打开jmeter,右键添加->配置文件->JDBC Connection Configurat ...

  6. Redis 使用过程中遇到的具体问题

    1.缓存雪崩和缓存穿透问题 1.1缓存雪崩 简介:缓存同一时间大面积的失效,所以,后面的请求都会落到数据库上,造成数据库短时间内承受大量请求而崩掉. 解决办法:  事前:尽量保证整个 redis 集 ...

  7. Linux 初识Libevent网络库

    初识Libevent libevent是用c写的高并发网络io库,只要有文件描述符,就都可使用libevent. libevent使用回调函数(callback) . 有了libevent,网络编程我 ...

  8. odoo10学习笔记十七:controller

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11189391.html 一:controller简述 odoo里面的controller相似于springM ...

  9. springcloud学习之路: (四) springcloud集成Hystrix服务保护

    Hystrix是一套完善的服务保护组件, 可以实现服务降级, 服务熔断, 服务隔离等保护措施 使用它可以合理的应对高并发的情况 做到保护服务的效果 1. 导入依赖 <dependency> ...

  10. luoguP2882Face The Right Way

    https://www.luogu.org/problem/P2882 题意 你有n头牛,每头牛有个朝向,你每次可以选择连续k头牛翻转,求k为多少时可以用最少的步骤将所有牛朝向变为正向 n≤5000 ...