如何在C# 中使用 FFmpeg.NET
FFmpeg 是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計算機程序。采用 LGPL 或 GPL 許可證。它提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案。它包含了非常先進的音頻/視頻編解碼庫 libavcodec,為了保證高可移植性和編解碼質(zhì)量,libavcodec 里很多 code 都是從頭開發(fā)的。
這篇文章主要介紹如何在 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、獲取視頻元數(shù)據(jù)
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、基本轉(zhuǎn)換
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 視頻轉(zhuǎn)換為 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 轉(zhuǎn)換為 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的詳細內(nèi)容,更多關(guān)于C# 使用FFmpeg.NET的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C#編程中常見數(shù)據(jù)結(jié)構(gòu)的比較(Unity3D游戲開發(fā))
在本篇內(nèi)容里我們給大家整理了關(guān)于Unity3D游戲開發(fā)中C#編程中常見數(shù)據(jù)結(jié)構(gòu)的比較相關(guān)知識點內(nèi)容,需要的朋友們參考下。2019-05-05
C#對稱加密(AES加密)每次生成的結(jié)果都不同的實現(xiàn)思路和代碼實例
這篇文章主要介紹了C#對稱加密(AES加密)每次生成的結(jié)果都不同的實現(xiàn)思路和代碼實例,每次解密時從密文中截取前16位,這就是實現(xiàn)隨機的奧秘,本文同時給出了實現(xiàn)代碼,需要的朋友可以參考下2015-07-07

