c# 用ffmpeg从视频中截图

 更新时间:2021年03月17日 08:54:01   作者:UP技术控  
这篇文章主要介绍了c# 用ffmpeg从视频中截图的方法,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

概述

之前做了个项目,涉及到上传视频,那么我们知道,一般在界面显示的时候,是需要对视频有个预览的效果,就是显示某一帧视频的画面。

找了下发现http://ffmpeg.org/ 可以实现这个功能。

FFmpeg是一个自由软件,可以运行音频和视频多种格式的录影、转换、流功能,包含了libavcodec——这是一个用于多个项目中音频和视频的解码器库,以及libavformat——一个音频与视频格式转换库。

主要参数

  • -i——设置输入档名。
  • -f——设置输出格式。
  • -y——若输出文件已存在时则覆盖文件。
  • -fs——超过指定的文件大小时则结束转换。
  • -t——指定输出文件的持续时间,以秒为单位。
  • -ss——从指定时间开始转换,以秒为单位。
  • -t从-ss时间开始转换(如-ss 00:00:01.00 -t 00:00:10.00即从00:00:01.00开始到00:00:11.00)。
  • -title——设置标题。
  • -timestamp——设置时间戳。
  • -vsync——增减Frame使影音同步。
  • -c——指定输出文件的编码。
  • -metadata——更改输出文件的元数据。
  • -help——查看帮助信息。

ffmpeg的官网地址是:https://www.ffmpeg.org/

ffmpeg的Github项目地址是:https://github.com/FFmpeg/FFmpeg

下面我们来看下ffmpeg如何实现视频截图的操作。

实现方式

1、下载 ffmpeg http://ffmpeg.org/ ,解压后在 bin 目录下找到 ffmpeg.exe 

2、命令方式

-i 视频地址 -ss 第几帧 -f image2 图片存放地址

用cmd试一下,首先切换到ffmpeg.exe所在目录,输入命令,回车

3、c#代码实现

using (System.Diagnostics.Process process = new System.Diagnostics.Process()){
 process.StartInfo.FileName = @"D:\ffmpeg.exe";
 process.StartInfo.Arguments= @"-i D:\111.mp4 -ss 10 -f image2 D:\test\1.jpg";
 process.Start();}

或者如下

using System.Diagnostics;
.....


   ProcessStartInfo startInfo = new ProcessStartInfo("ffmpeg物理路径");


   startInfo.WindowStyle = ProcessWindowStyle.Hidden;


   startInfo.Arguments = " -i 视频文件路径 -y -f image2 -ss 3 -t 0.001 -s 480*360 截图物理路径";//480*360是图片分辨率

   startInfo.UseShellExecute = false;


   try


   {


    Process.Start(startInfo);


    return true;


   }


   catch


   {


   }

以上就是c# 用ffmpeg从视频中截图的详细内容,更多关于c# 从视频中截图的资料请关注程序员之家其它相关文章!

相关文章

  • c#继承中的函数调用实例

    c#继承中的函数调用实例

    这篇文章主要介绍了c#继承中的函数调用,实例分析了C#继承中的函数调用规律,有助于深入理解C#的继承,需要的朋友可以参考下
    2015-01-01
  • 递归案例分享

    递归案例分享

    一般定义:程序调用自身的编程技巧称为递归( recursion)。
    2014-05-05
  • C# PLINQ 内存列表查询优化历程

    C# PLINQ 内存列表查询优化历程

    这篇文章主要介绍了C# PLINQ 内存列表查询优化历程的相关资料,需要的朋友可以参考下
    2016-03-03
  • C#获取DataTable对象状态DataRowState

    C#获取DataTable对象状态DataRowState

    这篇文章介绍了C#获取DataTable对象状态DataRowState的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • .NET C#利用ZXing生成、识别二维码/条形码

    .NET C#利用ZXing生成、识别二维码/条形码

    ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。这篇文章主要给大家介绍了.NET C#利用ZXing生成、识别二维码/条形码的方法,文中给出了详细的示例代码,有需要的朋友们可以参考借鉴。
    2016-12-12
  • C#高级静态语言效率利器之泛型详解

    C#高级静态语言效率利器之泛型详解

    所谓泛型,就是创建一个函数,对所有数据类型都生效。这篇文章就来带大家深入了解一下C#中高级静态语言效率利器——泛型的使用,需要的可以参考一下
    2023-02-02
  • c#与WMI使用技巧集

    c#与WMI使用技巧集

    c#与WMI使用技巧集...
    2007-03-03
  • 非常实用的C#字符串操作处理类StringHelper.cs

    非常实用的C#字符串操作处理类StringHelper.cs

    这篇文章主要为大家详细介绍了非常实用的C#字符串操作处理类StringHelper.cs,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • C#通过指针读取文件的方法

    C#通过指针读取文件的方法

    这篇文章主要介绍了C#通过指针读取文件的方法,涉及C#针对文件的相关操作技巧,需要的朋友可以参考下
    2015-06-06
  • C#使用Dispose模式实现手动对资源的释放

    C#使用Dispose模式实现手动对资源的释放

    这篇文章主要介绍了C#使用Dispose模式实现手动对资源的释放,涉及C#采用Dispose模式操作资源的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08

最新评论

?


http://www.vxiaotou.com