如何在C# 中使用 FFmpeg.NET

 更新时间:2021年03月11日 09:18:29   作者:hellodev  
这篇文章主要介绍了如何在C# 中使用 FFmpeg.NET,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下

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的资料请关注脚本之家其它相关文章!

相关文章

  • C#中的GDI+图像编程详解

    C#中的GDI+图像编程详解

    本文详细讲解了C#中的GDI+图像编程,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • C#中字符串分割的多种方式

    C#中字符串分割的多种方式

    在C#编程语言中,字符串处理是日常开发中不可或缺的一部分,字符串分割是处理文本数据时常用的操作,它允许我们将一个长字符串分解成多个子字符串,本文给大家介绍了C#中字符串分割的多种方式,需要的朋友可以参考下
    2025-01-01
  • C#实现拼图小游戏

    C#实现拼图小游戏

    这篇文章主要为大家详细介绍了C#实现拼图小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • C#基于Socket的TCP通信实现聊天室案例

    C#基于Socket的TCP通信实现聊天室案例

    这篇文章主要为大家详细介绍了C#基于Socket的TCP通信实现聊天室案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • C#编程中常见数据结构的比较(Unity3D游戏开发)

    C#编程中常见数据结构的比较(Unity3D游戏开发)

    在本篇内容里我们给大家整理了关于Unity3D游戏开发中C#编程中常见数据结构的比较相关知识点内容,需要的朋友们参考下。
    2019-05-05
  • C#对称加密(AES加密)每次生成的结果都不同的实现思路和代码实例

    C#对称加密(AES加密)每次生成的结果都不同的实现思路和代码实例

    这篇文章主要介绍了C#对称加密(AES加密)每次生成的结果都不同的实现思路和代码实例,每次解密时从密文中截取前16位,这就是实现随机的奥秘,本文同时给出了实现代码,需要的朋友可以参考下
    2015-07-07
  • c#的时间日期操作示例分享(c#获取当前日期)

    c#的时间日期操作示例分享(c#获取当前日期)

    这篇文章主要介绍了c#的时间日期操作示例,在给定时间戳返回指定的时间格式和获取当前时间方法,需要的朋友可以参考下
    2014-03-03
  • Quartz.Net实现原理及使用方法详解

    Quartz.Net实现原理及使用方法详解

    这篇文章主要介绍了Quartz.Net实现原理及使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • C#异步调用示例详解

    C#异步调用示例详解

    这篇文章主要为大家详细介绍了C#异步调用的示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • C#中List用法介绍详解

    C#中List用法介绍详解

    本文详细讲解了C#中List用法介绍,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12

最新评论