返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >如何在C# 中使用 FFmpeg.NET
  • 848
分享到

如何在C# 中使用 FFmpeg.NET

2024-04-02 19:04:59 848人浏览 泡泡鱼
摘要

FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用 LGPL 或 GPL 许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非

FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用 LGPL 或 GPL 许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库 libavcodec,为了保证高可移植性和编解码质量,libavcodec 里很多 code 都是从头开发的。

这篇文章主要介绍如何在 C# 中使用 FFmpeg。

项目中使用包管理器控制台安装 nuget 包:


PM> Install-Package xFFmpeg.net

1、从视频中抓取缩略图


var inputFile = new MediaFile (@"C:\Path\To_Video.flv");
var outputFile = new MediaFile (@"C:\Path\To_Save_Image.jpg");
 
var ffmpeg = new Engine("C:\\ffmpeg\\ffmpeg.exe");
// 保存位于视频第 15 秒的帧。
var options = new ConversionOptions { Seek = TimeSpan.FromSeconds(15) };
await ffmpeg.GetThumbnailAsync(inputFile, outputFile, options);

2、获取视频元数据


var inputFile = new MediaFile (@"C:\Path\To_Video.flv");
 
var ffmpeg = new Engine("C:\\ffmpeg\\ffmpeg.exe");
var metadata = await ffmpeg.GetMetadataAsync(inputFile);
 
Console.WriteLine(metadata.Duration);

3、基本转换


var inputFile = new MediaFile (@"C:\Path\To_Video.flv");
var outputFile = new MediaFile (@"C:\Path\To_Save_New_Video.mp4");
 
var ffmpeg = new Engine("C:\\ffmpeg\\ffmpeg.exe");
await ffmpeg.ConvertAsync(inputFile, outputFile);

4、将 Flash 视频转换为 DVD


var inputFile = new MediaFile (@"C:\Path\To_Video.flv");
var outputFile = new MediaFile (@"C:\Path\To_Save_New_DVD.vob");
 
var conversionOptions = new ConversionOptions
{
    Target = Target.DVD,
    TargetStandard = TargetStandard.PAL
};
 
var ffmpeg = new Engine("C:\\ffmpeg\\ffmpeg.exe");
await ffmpeg.ConvertAsync(inputFile, outputFile, conversionOptions);

5、将 FLV 转换为 MP4


var inputFile = new MediaFile (@"C:\Path\To_Video.flv");
var outputFile = new MediaFile (@"C:\Path\To_Save_New_Video.mp4");
 
var conversionOptions = new ConversionOptions
{
    MaxVideoDuration = TimeSpan.FromSeconds(30),
    VideoAspectRatio = VideoAspectRatio.R16_9,
    VideoSize = VideoSize.Hd1080,
    AudiOSampleRate = AudioSampleRate.Hz44100
};
 
var ffmpeg = new Engine("C:\\ffmpeg\\ffmpeg.exe");
await ffmpeg.ConvertAsync(inputFile, outputFile, conversionOptions);

6、截取视频


var inputFile = new MediaFile (@"C:\Path\To_Video.flv");
var outputFile = new MediaFile (@"C:\Path\To_Save_ExtractedVideo.flv");
 
var ffmpeg = new Engine("C:\\ffmpeg\\ffmpeg.exe");
var options = new ConversionOptions();
 
options.CutMedia(TimeSpan.FromSeconds(30), TimeSpan.FromSeconds(25));
await ffmpeg.ConvertAsync(inputFile, outputFile, options);

以上就是 FFmpeg.NET 类库才常用操作。

项目地址:https://GitHub.com/cmxl/FFmpeg.NET

以上就是如何在C# 中使用 FFmpeg.NET的详细内容,更多关于C# 使用FFmpeg.NET的资料请关注编程网其它相关文章!

--结束END--

本文标题: 如何在C# 中使用 FFmpeg.NET

本文链接: https://lsjlt.com/news/121419.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何在C# 中使用 FFmpeg.NET
    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用 LGPL 或 GPL 许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非...
    99+
    2024-04-02
  • 如何在C#中使用Filewatcher
    要在C#中使用FileWatcher,首先需要创建一个FileWatcher对象,并设置所需的属性和事件处理程序。以下是一个简单的示...
    99+
    2023-09-27
    C#
  • 如何在C#中使用Dapper ORM
    目录使用 Visual Studio 安装 Dapper ORM使用 Dapper ORM 进行增删查改在 Dapper ORM 中使用 存储过程对象关系映射(ORM)这个概念已经存...
    99+
    2024-04-02
  • 如何在C#中使用Image控件
    这篇文章给大家介绍如何在C#中使用Image控件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。首先是View层,比较简单:<Grid Grid.Row="1"> &n...
    99+
    2023-06-06
  • 如何在c++中使用map结构
    如何在c++中使用map结构?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。map的常用用法map 表示映射,可以将任何基本类型(包括 STL 容器)映射到任何基本类型(包括 S...
    99+
    2023-06-14
  • top-level如何在C#9 中使用
    本篇文章为大家展示了top-level如何在C#9 中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。顶级程序在 C# 9.0 之前,下面的写法在 Console 程序中已经是最小化的了。usin...
    99+
    2023-06-14
  • Polly如何在c#项目中使用
    今天就跟大家聊聊有关Polly如何在c#项目中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Polly是一个C#实现的弹性瞬时错误处理库它可以帮助我们做一些容错模式处理,比如:超...
    99+
    2023-06-14
  • 如何在C#中使用foreach语句
    今天就跟大家聊聊有关如何在C#中使用foreach语句,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C# foreach语句不仅仅只是do...while或者for循环语句的一个变体...
    99+
    2023-06-17
  • 如何在C# 中使用listBox控件
    本篇文章给大家分享的是有关如何在C# 中使用listBox控件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。原理:运用switch语句,根据不同选中值,实现不同内容 priva...
    99+
    2023-06-17
  • 如何在C++中正确使用ostringstream
    在C++中,ostringstream 是一个输出流类,可以用于将数据转换为字符串。下面是一个示例,展示如何在C++中正确使用ost...
    99+
    2023-09-27
    C++
  • memset在c语言中如何使用
    在C语言中,`memset`函数用于将内存块的内容设置为指定的值。`memset`函数的原型如下:```cvoid *memset(...
    99+
    2023-09-28
    memset c语言
  • return在c语言中如何使用
    在C语言中,return语句用于将函数的执行结果返回给调用函数。它的一般语法如下所示:```creturn 表达式;```其中,`表...
    99+
    2023-09-08
    c语言 return
  • scanf在c语言中如何使用
    scanf 函数用于从标准输入读取数据,根据指定的格式字符串,将数据存储到相应变量中。具体步骤包括:指定格式字符串,定义读取数据的格式和变量类型。提供变量指针,传递变量地址以存储读取的数...
    99+
    2024-04-29
    c语言
  • 如何在c#中使用opencv函数库
    这个demo用c#实现图片裁剪和半透明融合的功能演示程序。功能挺简单的,就是把一张固定大小的图片先做边缘羽化,然后贴到一个圆形泡泡形状的底图上,最后把结果半透明融合到一张背景图上。 ...
    99+
    2024-04-02
  • 如何在C#中使用只读的 Collections
    目录三大只读类型介绍使用 IReadOnlyList 替换 List使用 IEnumberable 接口集合 表示一组可用于获取和存储的对象,在 C# 中提供了两种类型的集合。 ...
    99+
    2024-04-02
  • virtual虚函数 如何在C++ 中使用
    这篇文章给大家介绍virtual虚函数 如何在C++ 中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。有无虚函数的对比C++ 中的虚函数用于解决动态多态问题,虚函数的作用是允许在派生类中重新定义与积累同名的函数,并...
    99+
    2023-06-14
  • 如何在C#项目中使用继承
    如何在C#项目中使用继承?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。声明一个抽象类//基类    abstract clas...
    99+
    2023-06-15
  • 如何在C#中使用RulesEngine规则引擎
    今天就跟大家聊聊有关如何在C#中使用RulesEngine规则引擎,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。简介RulesEngine是微软推出的规则引擎,规则引擎在很多企业开发...
    99+
    2023-06-06
  • 如何在C++中使用 STL 顺序容器
    今天就跟大家聊聊有关如何在C++中使用 STL 顺序容器,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C++ 标准模板库 STL 顺序容器容器数据结构顺序性重复性支持迭代器vecto...
    99+
    2023-06-15
  • 如何在C++中调用Python
    目录Python的安装VSCode配置HelloWorld测试调用Python函数string.split()第一次尝试第二次尝试第三次尝试总结概要Python的安装 为了使用Py...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作