如何在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#查看/写入日志到Windows事件查看器的操作方法

    C#查看/写入日志到Windows事件查看器的操作方法

    Windows 操作系统将与计算机的系统性能、应用程序和安全方面相关的每个事件记录在 C:\WINDOWS\system32\winevt 的日志中,事件查看器从这些原始事件日志中读取信息,然后以可读格式呈现信息,本文介绍了C#如何查看/写入日志到Windows事件查看器,需要的朋友可以参考下
    2024-09-09
  • C#使用Data Annotations进行手动数据验证

    C#使用Data Annotations进行手动数据验证

    这篇文章介绍了C#使用Data Annotations进行手动数据验证的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C#开发的人脸左右相似度计算软件源码分析

    C#开发的人脸左右相似度计算软件源码分析

    这篇文章主要介绍了C#开发的人脸左右相似度计算软件,较为详细的分析了相似度计算的相关原理与具体实现技巧,需要的朋友可以参考下
    2015-04-04
  • C#图像识别 微信跳一跳机器人

    C#图像识别 微信跳一跳机器人

    这篇文章主要为大家详细介绍了C#图像识别,微信跳一跳机器人,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • 浅析JAVA中过滤器、监听器、拦截器的区别

    浅析JAVA中过滤器、监听器、拦截器的区别

    本文通过代码分析和文字说明的方式给大家浅析JAVA中过滤器、监听器、拦截器的区别,感兴趣的朋友一起看下吧
    2015-09-09
  • C# DataGridView绑定数据源的方法

    C# DataGridView绑定数据源的方法

    这篇文章主要为大家详细介绍了C# DataGridView绑定数据源的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • c#读取xml文件到datagridview实例

    c#读取xml文件到datagridview实例

    c#读取xml文件到datagridview实例,需要的朋友可以参考一下
    2013-03-03
  • 详解c# 强制转换和类型转换

    详解c# 强制转换和类型转换

    这篇文章主要介绍了c# 强制转换和类型转换的相关资料,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下
    2020-10-10
  • C#集合之队列的用法

    C#集合之队列的用法

    这篇文章介绍了C#集合之队列的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • C#中实现多继承的方法

    C#中实现多继承的方法

    这篇文章主要介绍了C#中实现多继承的方法,本文通过给接口添加扩展的方法实现了C#的多继承,需要的朋友可以参考下
    2014-08-08

最新评论