FFMpegCore 5.5.0
dotnet add package FFMpegCore --version 5.5.0
NuGet\Install-Package FFMpegCore -Version 5.5.0
<PackageReference Include="FFMpegCore" Version="5.5.0" />
<PackageVersion Include="FFMpegCore" Version="5.5.0" />
<PackageReference Include="FFMpegCore" />
paket add FFMpegCore --version 5.5.0
#r "nuget: FFMpegCore, 5.5.0"
#:package FFMpegCore@5.5.0
#addin nuget:?package=FFMpegCore&version=5.5.0
#tool nuget:?package=FFMpegCore&version=5.5.0
FFMpegCore
A .NET Standard FFMpeg/FFProbe wrapper for easily integrating media analysis and conversion into your .NET applications. Supports both synchronous and asynchronous calls
API
FFProbe
Use FFProbe to analyze media files:
var mediaInfo = await FFProbe.AnalyseAsync(inputPath);
or
var mediaInfo = FFProbe.Analyse(inputPath);
FFMpeg
Use FFMpeg to convert your media files. Easily build your FFMpeg arguments using the fluent argument builder:
Convert input file to h264/aac scaled to 720p w/ faststart, for web playback
FFMpegArguments
.FromFileInput(inputPath)
.OutputToFile(outputPath, false, options => options
.WithVideoCodec(VideoCodec.LibX264)
.WithConstantRateFactor(21)
.WithAudioCodec(AudioCodec.Aac)
.WithVariableBitrate(4)
.WithVideoFilters(filterOptions => filterOptions
.Scale(VideoSize.Hd))
.WithFastStart())
.ProcessSynchronously();
Convert to and/or from streams
await FFMpegArguments
.FromPipeInput(new StreamPipeSource(inputStream))
.OutputToPipe(new StreamPipeSink(outputStream), options => options
.WithVideoCodec("vp9")
.ForceFormat("webm"))
.ProcessAsynchronously();
Helper methods
The provided helper methods makes it simple to perform common operations.
Easily capture snapshots from a video file:
// persist the image on the drive
FFMpeg.Snapshot(inputPath, outputPath, new Size(200, 400), TimeSpan.FromMinutes(1));
// or process the snapshot in-memory using one of the image extension packages
// (FFMpegCore.Extensions.System.Drawing.Common or FFMpegCore.Extensions.SkiaSharp)
var bitmap = FFMpegImage.Snapshot(inputPath, new Size(200, 400), TimeSpan.FromMinutes(1));
You can also capture GIF snapshots from a video file:
FFMpeg.GifSnapshot(inputPath, outputPath, new Size(200, 400), TimeSpan.FromSeconds(10));
// or async
await FFMpeg.GifSnapshotAsync(inputPath, outputPath, new Size(200, 400), TimeSpan.FromSeconds(10));
// you can also supply -1 to either one of Width/Height Size properties if you'd like FFMPEG to resize while maintaining the aspect ratio
await FFMpeg.GifSnapshotAsync(inputPath, outputPath, new Size(480, -1), TimeSpan.FromSeconds(10));
Join video parts into one single file:
FFMpeg.Join(@"..\joined_video.mp4",
@"..\part1.mp4",
@"..\part2.mp4",
@"..\part3.mp4"
);
Create a sub video
FFMpeg.SubVideo(inputPath,
outputPath,
TimeSpan.FromSeconds(0),
TimeSpan.FromSeconds(30)
);
Join images into a video:
FFMpeg.JoinImageSequence(@"..\joined_video.mp4", frameRate: 1,
@"..\1.png",
@"..\2.png",
@"..\3.png"
);
Mute the audio of a video file:
FFMpeg.Mute(inputPath, outputPath);
Extract the audio track from a video file:
FFMpeg.ExtractAudio(inputPath, outputPath);
Add or replace the audio track of a video file:
FFMpeg.ReplaceAudio(inputPath, inputAudioPath, outputPath);
Combine an image with audio file, for youtube or similar platforms
FFMpeg.PosterWithAudio(inputImagePath, inputAudioPath, outputPath);
// or using one of the image extension packages
var image = Image.FromFile(inputImagePath);
image.AddAudio(inputAudioPath, outputPath);
Other available arguments could be found in FFMpegCore.Arguments namespace.
Input piping
With input piping it is possible to write video frames directly from program memory without saving them to jpeg or png and then passing path to input of ffmpeg. This feature also allows for converting video on-the-fly while frames are being generated or received.
An object implementing the IPipeSource interface is used as the source of data. Currently, the IPipeSource interface has three
implementations; StreamPipeSource for streams, RawVideoPipeSource for raw video frames, and RawAudioPipeSource for raw audio samples.
Working with raw video frames
Method for generating bitmap frames:
IEnumerable<IVideoFrame> CreateFrames(int count)
{
for(int i = 0; i < count; i++)
{
yield return GetNextFrame(); //method that generates of receives the next frame
}
}
Then create a RawVideoPipeSource that utilises your video frame source
var videoFramesSource = new RawVideoPipeSource(CreateFrames(64))
{
FrameRate = 30 //set source frame rate
};
await FFMpegArguments
.FromPipeInput(videoFramesSource)
.OutputToFile(outputPath, false, options => options
.WithVideoCodec(VideoCodec.LibVpx))
.ProcessAsynchronously();
Both image extension packages provide a BitmapVideoFrameWrapper that adapts a System.Drawing.Bitmap or SKBitmap to IVideoFrame.
Binaries
Runtime Auto Installation
The FFMpegCore.Extensions.Downloader package can install ffmpeg and ffprobe at runtime into the configured BinaryFolder:
GlobalFFOptions.Configure(options => options.BinaryFolder = "./bin");
await FFMpegDownloader.DownloadBinaries();
This feature uses the api from ffbinaries.
Manual Installation
If you prefer to manually download them, visit ffbinaries or the official ffmpeg download page.
Windows (using choco)
command: choco install ffmpeg -y
location: C:\ProgramData\chocolatey\lib\ffmpeg\tools\ffmpeg\bin
Mac OSX
command: brew install ffmpeg
location: /opt/homebrew/bin (Apple Silicon) or /usr/local/bin (Intel)
Ubuntu
command: sudo apt-get install -y ffmpeg
location: /usr/bin
Path Configuration
Option 1
The default value of an empty string (expecting ffmpeg to be found through PATH) can be overwritten via the FFOptions class:
// setting global options
GlobalFFOptions.Configure(new FFOptions { BinaryFolder = "./bin", TemporaryFilesFolder = "/tmp" });
// or
GlobalFFOptions.Configure(options => options.BinaryFolder = "./bin");
// on some systems the absolute path may be required, in which case
GlobalFFOptions.Configure(new FFOptions { BinaryFolder = Server.MapPath("./bin"), TemporaryFilesFolder = Server.MapPath("/tmp") });
// or individual, per-run options
await FFMpegArguments
.FromFileInput(inputPath)
.OutputToFile(outputPath)
.ProcessAsynchronously(true, new FFOptions { BinaryFolder = "./bin", TemporaryFilesFolder = "/tmp" });
// or combined, setting global defaults and adapting per-run options
GlobalFFOptions.Configure(new FFOptions { BinaryFolder = "./bin", TemporaryFilesFolder = "./globalTmp", WorkingDirectory = "./" });
await FFMpegArguments
.FromFileInput(inputPath)
.OutputToFile(outputPath)
.Configure(options => options.WorkingDirectory = "./CurrentRunWorkingDir")
.Configure(options => options.TemporaryFilesFolder = "./CurrentRunTmpFolder")
.ProcessAsynchronously();
Option 2
The root and temp directory for the ffmpeg binaries can be configured via the ffmpeg.config.json file, which will be read on first use
only.
{
"BinaryFolder": "./bin",
"TemporaryFilesFolder": "/tmp"
}
Supporting both 32 and 64 bit processes
If you wish to support multiple client processor architectures, you can do so by creating two folders, x64 and x86, in the
BinaryFolder directory.
Both folders should contain the binaries (ffmpeg.exe and ffprobe.exe) built for the respective architectures.
By doing so, the library will attempt to use either /{BinaryFolder}/{ARCH}/(ffmpeg|ffprobe).exe.
If these folders are not defined, it will try to find the binaries in /{BinaryFolder}/(ffmpeg|ffprobe.exe).
(.exe is only appended on Windows)
Compatibility
Older versions of ffmpeg might not support all ffmpeg arguments available through this library. CI runs the test suite against
ffmpeg 8.1.
Code contributors
<a href="https://github.com/rosenbjerg/ffmpegcore/graphs/contributors"> <img src="https://contrib.rocks/image?repo=rosenbjerg/ffmpegcore" /> </a>
Other contributors
<a href="https://github.com/tiesont"><img src="https://avatars3.githubusercontent.com/u/420293?v=4" title="tiesont" width="80" height="80"></a>
License
Copyright © 2023
Released under MIT license
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Instances (>= 3.1.0)
- System.Text.Json (>= 9.0.10)
NuGet packages (50)
Showing the top 5 NuGet packages that depend on FFMpegCore:
| Package | Downloads |
|---|---|
|
GroupDocs.Total
GroupDocs.Total for .NET is a document processing SDK for .NET developers. It consolidates all GroupDocs .NET document processing SDKs into one NuGet package, so you can manage licenses and dependencies with minimal overhead. This package includes: * GroupDocs.Annotation for .NET – 26.6 * GroupDocs.Assembly for .NET – 26.6 * GroupDocs.Comparison for .NET – 26.5 * GroupDocs.Conversion for .NET – 26.6 * GroupDocs.Editor for .NET – 26.6.1 * GroupDocs.Merger for .NET – 26.4 * GroupDocs.Metadata for .NET – 26.6 * GroupDocs.Parser for .NET – 25.12.1 * GroupDocs.Redaction for .NET – 26.6 * GroupDocs.Search for .NET – 26.6.1 * GroupDocs.Signature for .NET – 26.6 * GroupDocs.Viewer for .NET – 26.6 * GroupDocs.Watermark for .NET – 26.6 * GroupDocs.Markdown for .NET – 26.3 Check the documentation at: https://docs.groupdocs.com/total/net/ Free support at our free support forum: https://forum.groupdocs.com/ Priority support provided at paid support helpdesk: https://helpdesk.groupdocs.com/ |
|
|
SIL.Media
SIL.Media contains Windows Forms UI elements and classes for processing audio on Windows and Linux. |
|
|
Fsel.Core
Fsel Core Package |
|
|
FFMpegCore.Extensions.System.Drawing.Common
Image extension for FFMpegCore using System.Common.Drawing |
|
|
JXIPS.Infrastructure
基础设施层 |
GitHub repositories (22)
Showing the top 20 popular GitHub repositories that depend on FFMpegCore:
| Repository | Stars |
|---|---|
|
PixiEditor/PixiEditor
PixiEditor is a Universal Editor for all your 2D needs
|
|
|
Squidex/squidex
Headless CMS and Content Managment Hub
|
|
|
xiaoyaocz/biliuwp-lite
哔哩哔哩UWP Lite
|
|
|
swharden/Csharp-Data-Visualization
Resources for visualizing data using C# and the .NET platform
|
|
|
trueai-org/midjourney-proxy
🦄 The world's largest Midjourney drawing API, generating over 1 million drawings daily, supporting Discord Youchuan Midjourney 🐂!
|
|
|
dorisoy/Dorisoy.Pan
Dorisoy.Pan 是基于 .NET 10 的跨平台文档管理系统,使用 MS SQL 2012 / MySQL 8.0(或更高版本)后端数据库,您可以在 Windows、Linux 或 Mac 上运行它。项目中的所有方法都是异步的,支持 JWT 令牌身份验证,项目体系结构遵循 CQRS + MediatR 模式和最佳安全实践。源代码完全可定制,热插拔且清晰的体系结构,使开发定制功能和遵循任何业务需求变得容易。
|
|
|
ww-rm/SpineViewer
一个简单好用的 spine 文件查看&导出&壁纸工具。A simple and easy-to-use spine file viewer & exporter & wallpaper.
|
|
|
h4lfheart/FortnitePorting
The ultimate toolkit for creating with Fortnite assets.
|
|
|
withsalt/BilibiliLiveTools
Bilibili(B站)无人值守直播工具。自动登录,自动获取直播推流地址,自动推流(使用ffmpeg),可以用于电脑、树莓派等设备无人值守直播。
|
|
|
kabiiQ/BeatmapExporter
osu! Lazer file exporter utility. Enables mass export of beatmaps from the new osu! Lazer file storage back into .osz files, in addition to replays, skins, and collections.
|
|
|
ncatlin/rgat
An instruction trace visualisation tool for dynamic program analysis
|
|
|
onionware-github/OnionMedia
Open-Source Mediaconverter and -downloader
|
|
|
8212369/WPR
WP7-8 APP 运行器
|
|
|
kaybi-gh/K7
Self-hosted media server for a small circle of family and friends.
|
|
|
f-shake/RemoteFFmpegGUI
使用 Vue.js + ASP.NET + WPF 搭建的 FFmpeg 的 Web + Windows GUI 应用,支持视频转码、拼接等功能
|
|
|
MuNET-OSS/MaiChartManager
某八个键音游谱面管理工具
|
|
|
Forgot-Dream/STS-Bcut
使用必剪API,语音转字幕,支持输入声音文件,也支持输入视频文件自动提取音频。
|
|
|
Kuschel-code/JellyfinUpscalerPlugin
JellyfinUpscalerPlugin
|
|
|
HeBianGu/WPF-Control
WPF-Control 是一个基于 .NET 8+ 的高性能 WPF 控件库,提供丰富的轻量级 UI 组件、多套现代化 皮肤主题,并整合了精选的 第三方开源控件,同时内置 数据库仓储模型 和 模块化封装 的通用功能,包含完整桌面应用程序的解决方案,适用于企业级应用开发,帮助开发者快速构建高效、美观的桌面应用程序。
|
|
|
WhiskeySockets/BaileysCSharp
Lightweight full-featured C# WhatsApp Web API
|
| Version | Downloads | Last Updated |
|---|---|---|
| 5.5.0 | 24 | 9/20/2026 |
| 5.4.0 | 1,480,316 | 10/27/2025 |
| 5.3.0 | 51,299 | 10/17/2025 |
| 5.2.0 | 1,224,987 | 3/5/2025 |
| 5.1.0 | 3,420,442 | 3/15/2023 |
| 5.0.2 | 109,579 | 2/21/2023 |
| 5.0.1 | 4,589 | 2/16/2023 |
| 5.0.0 | 68,569 | 2/4/2023 |
| 4.8.0 | 434,056 | 4/15/2022 |
| 4.7.0 | 152,495 | 1/8/2022 |
| 4.6.0 | 117,820 | 11/1/2021 |
| 4.5.0 | 47,450 | 8/12/2021 |
| 4.4.0 | 21,428 | 7/15/2021 |
| 4.3.0 | 39,159 | 6/8/2021 |
| 4.2.0 | 19,451 | 5/14/2021 |
| 4.1.0 | 102,242 | 3/15/2021 |
| 4.0.0 | 14,292 | 3/6/2021 |
| 3.4.0 | 7,721 | 2/3/2021 |
| 3.3.0 | 9,815 | 12/19/2020 |
| 3.2.4 | 39,526 | 12/9/2020 |
## What's Changed
* [Bugfix] Handle joining of non png images by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/397
* Add PackageOutputPath by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/398
* Only upload to codecov on windows by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/406
* Sub video function by @slugger7 in https://github.com/rosenbjerg/FFMpegCore/pull/403
* Add FFMpegCore.Extensions.SkiaSharp by @drasive in https://github.com/rosenbjerg/FFMpegCore/pull/396
* Bump nuget version and cleanup by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/407
* Add a helper method to generate GIF Snapshots by @rpaschoal in https://github.com/rosenbjerg/FFMpegCore/pull/419
* fix: readme minor mistakes. by @NaBian in https://github.com/rosenbjerg/FFMpegCore/pull/433
* Update SaveM3U8Stream method to use "-codec copy" argument by @rpaschoal in https://github.com/rosenbjerg/FFMpegCore/pull/445
* Bugfix/fix null ref exception with tags container by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/477
* Fix issue where ffmpeg can't be found if x64/x86 folders exist withithout ffmpeg in there by @devedse in https://github.com/rosenbjerg/FFMpegCore/pull/443
* Add chapters to FFProbe by @phillipfisher in https://github.com/rosenbjerg/FFMpegCore/pull/416
* Feature: custom ffprob arguments by @vfrz in https://github.com/rosenbjerg/FFMpegCore/pull/431
* Add support for multiple outputs and tee muxer. by @duggaraju in https://github.com/rosenbjerg/FFMpegCore/pull/473
* Fix: Changed "Chapter" Modell by @vortex852456 in https://github.com/rosenbjerg/FFMpegCore/pull/478
* Add HDR color properties support in FFProbe analysis by @Tomiscout in https://github.com/rosenbjerg/FFMpegCore/pull/498
* Bump system.text.json by @kaybi-gh in https://github.com/rosenbjerg/FFMpegCore/pull/543
* Add video-stream level to FFProbe analysis by @kaybi-gh in https://github.com/rosenbjerg/FFMpegCore/pull/542
* >24hr Duration handling added in FFMpegArgumentProcessor by @techtel-pstevens in https://github.com/rosenbjerg/FFMpegCore/pull/527
* Feat: add av1 support for smaller snapshots and videos by @BenediktBertsch in https://github.com/rosenbjerg/FFMpegCore/pull/523
* fix: Snapshots from rotated videos should have correct width/height by @Hagfjall in https://github.com/rosenbjerg/FFMpegCore/pull/510
* Add Copy option to Audio Codec. Add Crop option to Arguments by @brett-baker in https://github.com/rosenbjerg/FFMpegCore/pull/546
* Add Multiple Input files by @AddyMills in https://github.com/rosenbjerg/FFMpegCore/pull/505
* Deterministic .NET builds by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/409
* Bump packages by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/551
* Bump Instances by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/552
* docs: update nuget badge by @WeihanLi in https://github.com/rosenbjerg/FFMpegCore/pull/572
* CI: Install ffmpeg using brew if running on arm64 macos by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/576
* FEAT: added more extensions for snapshot(jpg, bmp, webp) by @GorobVictor in https://github.com/rosenbjerg/FFMpegCore/pull/566
* Update nuget dependencies by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/577
* Clean up unit tests by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/578
* Cleanup tests by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/579
* Ability to install ffmpeg suite at runtime added with FFMpegDownloader by @yuqian5 in https://github.com/rosenbjerg/FFMpegCore/pull/442
* Fixed race condition on Named pipe dispose/disconnect by @techtel-pstevens in https://github.com/rosenbjerg/FFMpegCore/pull/571
* Include more guid chars in pipe path by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/581
* Fix GetCreationTime by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/583
* Improve cancellation handling by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/584
* Ensure TestContext.CancellationToken is used by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/587
* Improve test for percentage progress events by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/586
* Fix fps handling in JoinImageSequence by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/585
* Add metadata builder class by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/596
* Do not throw unexpected FFMpegException on FFProbe cancallation. Fixes #594 by @snechaev in https://github.com/rosenbjerg/FFMpegCore/pull/595
* Improve tests usage of cancellation token by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/597
* Add cancellation token support for the [Gif]SnapshotAsync by @snechaev in https://github.com/rosenbjerg/FFMpegCore/pull/593
* Fix changing of output extension in BaseSubVideo by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/601
* Throw if CancellationToken passed to CancellableThrough is not already cancelled by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/600
* Delegate to WithChapter with long argument overload by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/599
* Add more missing tests by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/602
* Cleanup and test coverage by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/620
* Publish to NuGet via trusted publishing by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/621
* Release on version bump by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/622
* Add side data and field_order to FFProbe stream and frame analysis by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/623
* Add disable channel argument cases for subtitle and data streams by @RudyTheDev in https://github.com/rosenbjerg/FFMpegCore/pull/609
* Fix stale README details by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/625
* Force ffmpeg stats output when progress is requested by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/626
* Stop cache and binary checks from starving the thread pool by @rosenbjerg in https://github.com/rosenbjerg/FFMpegCore/pull/627
## New Contributors
* @slugger7 made their first contribution in https://github.com/rosenbjerg/FFMpegCore/pull/403
* @drasive made their first contribution in https://github.com/rosenbjerg/FFMpegCore/pull/396
* @NaBian made their first contribution in https://github.com/rosenbjerg/FFMpegCore/pull/433
* @devedse made their first contribution in https://github.com/rosenbjerg/FFMpegCore/pull/443
* @phillipfisher made their first contribution in https://github.com/rosenbjerg/FFMpegCore/pull/416
* @vfrz made their first contribution in https://github.com/rosenbjerg/FFMpegCore/pull/431
* @duggaraju made their first contribution in https://github.com/rosenbjerg/FFMpegCore/pull/473
* @vortex852456 made their first contribution in https://github.com/rosenbjerg/FFMpegCore/pull/478
* @Tomiscout made their first contribution in https://github.com/rosenbjerg/FFMpegCore/pull/498
* @kaybi-gh made their first contribution in https://github.com/rosenbjerg/FFMpegCore/pull/543
* @techtel-pstevens made their first contribution in https://github.com/rosenbjerg/FFMpegCore/pull/527
* @BenediktBertsch made their first contribution in https://github.com/rosenbjerg/FFMpegCore/pull/523
* @Hagfjall made their first contribution in https://github.com/rosenbjerg/FFMpegCore/pull/510
* @brett-baker made their first contribution in https://github.com/rosenbjerg/FFMpegCore/pull/546
* @AddyMills made their first contribution in https://github.com/rosenbjerg/FFMpegCore/pull/505
* @yuqian5 made their first contribution in https://github.com/rosenbjerg/FFMpegCore/pull/442
* @snechaev made their first contribution in https://github.com/rosenbjerg/FFMpegCore/pull/595
* @RudyTheDev made their first contribution in https://github.com/rosenbjerg/FFMpegCore/pull/609
**Full Changelog**: https://github.com/rosenbjerg/FFMpegCore/compare/v1.0.11...v5.5.0