Installation
This guide covers the complete installation process for MediaMatic.
Prerequisites
.NET SDK
MediaMatic requires .NET 8.0 or later.
# Check your .NET version
dotnet --versionFFmpeg (Optional)
FFmpeg is required only for video processing features. Skip this if you only need image processing.
TIP
If you don't install FFmpeg, all image processing features will work normally. Video processing methods will throw an exception if FFmpeg is not available.
Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y ffmpegmacOS (Homebrew)
brew install ffmpegWindows
Chocolatey:
choco install ffmpegScoop:
scoop install ffmpegManual Installation:
- Download from ffmpeg.org
- Extract to a folder (e.g.,
C:\ffmpeg) - Add to PATH:
C:\ffmpeg\bin
Docker
FROM mcr.microsoft.com/dotnet/aspnet:8.0
RUN apt-get update && apt-get install -y ffmpeg && rm -rf /var/lib/apt/lists/*Verify Installation
ffmpeg -version
ffprobe -versionNuGet Packages
Core Library
The core library provides all media processing functionality:
dotnet add package MJCZone.MediaMaticOr via Package Manager:
Install-Package MJCZone.MediaMaticASP.NET Core Integration
For web applications, add the ASP.NET Core integration package:
dotnet add package MJCZone.MediaMatic.AspNetCoreThis package includes:
- Dependency injection extensions
- Browser detection middleware
- Minimal API endpoints
- Format negotiation
Storage Provider Packages
MediaMatic uses FluentStorage for storage abstraction. Install the providers you need:
# AWS S3 (also covers MinIO, B2, DigitalOcean Spaces)
dotnet add package FluentStorage.AWS
# Google Cloud Storage
dotnet add package FluentStorage.GCP
# SFTP
dotnet add package FluentStorage.SFTPPackage References
For SDK-style projects, add to your .csproj:
<ItemGroup>
<!-- Core library -->
<PackageReference Include="MJCZone.MediaMatic" Version="0.1.*" />
<!-- ASP.NET Core integration (optional) -->
<PackageReference Include="MJCZone.MediaMatic.AspNetCore" Version="0.1.*" />
<!-- Storage providers -->
<PackageReference Include="FluentStorage.AWS" Version="5.6.*" />
</ItemGroup>Platform Support
Operating Systems
| OS | Image Processing | Video Processing |
|---|---|---|
| Windows x64 | ✅ | ✅ |
| Linux x64 | ✅ | ✅ |
| macOS x64 | ✅ | ✅ |
| macOS ARM64 | ✅ | ✅ |
| Linux ARM64 | ✅ | ✅ |
SkiaSharp Native Dependencies
SkiaSharp requires native libraries that are automatically included via NuGet. If you encounter issues:
Linux:
# Install dependencies
sudo apt-get install -y libfontconfig1 libfreetype6Alpine Linux:
RUN apk add --no-cache fontconfig freetypeVerifying Installation
Create a simple test to verify everything is working:
using MJCZone.MediaMatic.Processors;
// Test image processing
var imageProcessor = new ImageProcessor();
Console.WriteLine("Image processor initialized successfully");
// Test video processing (requires FFmpeg)
try
{
var videoProcessor = new VideoProcessor();
Console.WriteLine("Video processor initialized successfully");
}
catch (Exception ex)
{
Console.WriteLine($"Video processor requires FFmpeg: {ex.Message}");
}Troubleshooting
SkiaSharp Initialization Errors
If you see errors about libSkiaSharp:
- Ensure you have the correct runtime package for your platform
- On Linux, install
libfontconfig1andlibfreetype6 - On Docker, use a base image with these libraries
FFmpeg Not Found
If video processing fails with "FFmpeg not found":
- Verify FFmpeg is installed:
ffmpeg -version - Ensure it's in your PATH
- Restart your application after installing
- On Windows, you may need to restart your terminal
Memory Issues
For large media files, ensure adequate memory:
// Use streaming to avoid loading entire files into memory
using var stream = File.OpenRead(path);
var result = await processor.ProcessAsync(stream, options);Next Steps
- Getting Started - Quick start guide
- Configuration - Configure MediaMatic options
- Storage Providers - Set up storage backends