VisioForge

Last updated: Janvier 2026

Video Capture SDK .NET vs Medialooks MFormats SDK

Moteur pipeline vs Comparaison de capture basée sur les frames

Choisir entre VisioForge Video Capture SDK .NET et Medialooks MFormats SDK est une décision entre deux modèles architecturaux fondamentalement différents. Le Video Capture SDK utilise un moteur basé sur un pipeline où vous configurez les sources, le traitement et les sorties de manière déclarative, tandis que MFormats suit un modèle basé sur les frames de type capture-traitement-sortie où vous récupérez manuellement chaque frame et le routez. Ce guide compare l'architecture, les fonctionnalités, le support des plateformes, les tarifs et le code réel pour vous aider à faire le bon choix pour votre projet.

Résumé exécutif

AspectVideo Capture SDK .NETMFormats SDK
ArchitectureDouble moteur : DirectShow/Media Foundation natif + pipelines FFmpeg intégréesBoucle capture-traitement-sortie basée sur les frames avec objets COM
Support des plateformesWindows, macOS, Linux, Android, iOS (5 plateformes)Windows uniquement
Tarifs250-500 EUR/an (abonnement) ou 1 500 EUR équipe/perpétuelle~4 508 $/développeur/an (abonnement obligatoire)
Idéal pourApps de capture multiplateforme, pipelines multi-sorties, effets vidéo, détectionSDI broadcast multi-vendeurs, overlays HTML5 CG, workflows playlist/playout
Matériel SDISupport Blackmagic DeckLinkBlackmagic, AJA, Bluefish444, Deltacast SDI multi-vendeurs
Frameworks UIWinForms, WPF, MAUI, Avalonia, Uno, Console, BlazorWinForms, WPF, Console
Modèle de licencePerpétuelle ou abonnement annuel ; fonctionne après expirationAbonnement annuel uniquement ; filigrane ajouté si l'abonnement expire
SupportSystème de tickets dédié, SLA prioritaireSupport par email, forum

Analyse approfondie de l'architecture

Architecture du Video Capture SDK .NET

Le Video Capture SDK utilise une conception basée sur un pipeline. Vous configurez la source, les étapes de traitement et les sorties de manière déclarative. Le moteur assemble automatiquement le graphe de filtres interne, gérant le threading, la synchronisation et la gestion des tampons. Un double moteur encapsule DirectShow/Media Foundation pour l'accès natif aux appareils et un pipeline FFmpeg intégré pour les codecs avancés et l'ingestion de caméras IP.

  • Configuration déclarative du pipeline : définir les propriétés, appeler StartAsync()
  • Double moteur : APIs de capture natives du système + FFmpeg intégré
  • Aperçu accéléré par GPU via les moteurs de rendu Direct3D / OpenGL
  • Architecture événementielle avec support .NET async/await
  • Modèle à processus unique avec gestion automatique des threads
  • Multi-sortie depuis un pipeline : enregistrement + streaming + capture d'écran simultanément

Architecture du MFormats SDK

MFormats utilise un modèle basé sur les frames de type capture-traitement-sortie construit sur des objets COM. Vous créez un MFReader pour capturer les frames, traitez chaque frame via des objets MFTransform, et les envoyez aux sorties MFWriter ou MFRenderer. Cela offre un contrôle granulaire par frame mais nécessite d'écrire la boucle de capture, de gérer le threading et de gérer le timing des frames manuellement.

  • Boucle basée sur les frames : capturer le frame depuis MFReader, traiter, envoyer à MFWriter
  • Architecture basée sur COM avec wrappers d'interopérabilité .NET
  • Gestion manuelle du threading et du timing des frames requise
  • Contrôle par frame permettant une logique de routage personnalisée
  • Objets séparés pour chaque étape du pipeline (Reader, Transform, Writer, Renderer)
  • Playout et planification de playlists intégrés pour les workflows de broadcast

Différences architecturales clés

AspectVideo Capture SDKMFormats SDK
Modèle de programmationPipeline déclaratif : configurer et démarrerBoucle impérative : capturer, traiter, sortir par frame
ThreadingGestion automatique interne des threadsLe développeur gère le threading de la boucle de capture
Routage des framesAutomatique via la configuration du pipelineRoutage manuel par frame dans le code
Multi-sortieSorties simultanées intégrées depuis un pipelineLe développeur clone les frames et les route vers plusieurs writers
PlateformeMultiplateforme (.NET 6-10, MAUI)Windows uniquement (basé sur COM)
Modèle d'objetsAPI managée .NET pureInteropérabilité COM avec wrappers .NET

Comparaison fonctionnalité par fonctionnalité

Sources de capture

FonctionnalitéVideo Capture SDKMFormats SDK
Webcams USB
Capture d'écran / bureau
Caméras IP (RTSP/ONVIF)
Blackmagic DeckLink SDI
Cartes SDI AJA
Cartes SDI Bluefish444
Cartes SDI Deltacast
Tuners TV (BDA/DVB)
Sources NDI
Caméras industrielles (GenICam/GigE Vision)
Caméras virtuelles (OBS Virtual Cam)⚠️(Via DirectShow)

Enregistrement et sortie

FonctionnalitéVideo Capture SDKMFormats SDK
MP4 (H.264 / H.265)
Conteneur MXF⚠️(MFormats performant en MXF broadcast)
Conteneur MKV
WebM (VP8 / VP9 / AV1)
AVI
MOV (ProRes)
WMV / ASF
MPEG-TS
GIF animé
Audio uniquement (MP3, AAC, WAV, FLAC)⚠️
Enregistrement Pré-Événement (Buffer Circulaire)

Multi-sortie

FonctionnalitéVideo Capture SDKMFormats SDK
Enregistrement + streaming simultanés
Sorties d'enregistrement multiples indépendantes⚠️(Nécessite le clonage manuel des frames)
Contrôle de sortie indépendant (démarrer/arrêter/pause chacune)⚠️(Contrôle manuel par writer)
Codecs différents par sortie
Capture d'image pendant l'enregistrement

Streaming

FonctionnalitéVideo Capture SDKMFormats SDK
RTMP Push
Serveur RTSP
Streaming SRT
Sortie HLS⚠️
Sortie NDI
UDP / TCP Multicast

Traitement vidéo et effets

FonctionnalitéVideo Capture SDKMFormats SDK
Redimensionnement / recadrage en temps réel
Désentrelacement
Ajustement des couleurs
Overlays texte / image
Overlays HTML5 CG
Chroma Key (fond vert)
Effets vidéo accélérés par GPU (40+)⚠️(Effets intégrés limités)
Image dans l'image
Transitions et volets

Audio

FonctionnalitéVideo Capture SDKMFormats SDK
Capture de périphérique audio
Mixage audio (entrées multiples)
Effets audio (40+ intégrés : EQ, compresseur, réverbération, etc.)
VU-mètre / surveillance de niveau
Capture audio système (loopback)⚠️
Routage audio intégré (SDI)

Détection et analyse

FonctionnalitéVideo Capture SDKMFormats SDK
Détection de mouvement
Détection de visages
Lecture de codes-barres / QR
Suivi d'objets
Détection de niveau audio

Broadcast et playout

FonctionnalitéVideo Capture SDKMFormats SDK
Planification de playlist / playout
Sortie SDI multi-vendeurs⚠️(MFormats supporte les sorties AJA, Bluefish, Deltacast)
Overlays HTML5 CG (générateur de caractères)
Sortie caméra virtuelle
Genlock / synchronisation de référence

Support des plateformes

Compatibilité des systèmes d'exploitation

PlateformeVideo Capture SDKMFormats SDK
Windows x64
Windows ARM64
macOS (Apple Silicon + Intel)
Linux x64 (Ubuntu, Debian, Fedora)
Linux ARM64 (Raspberry Pi)
Android (via .NET MAUI)
iOS (via .NET MAUI)

Compatibilité des frameworks UI

FrameworkVideo Capture SDKMFormats SDK
WinForms
WPF
.NET MAUI
Avalonia UI
Uno Platform
Console / Service
Blazor (Server-Side)

Comparaison des tarifs

Tarifs du Video Capture SDK .NET

Développeur (Annuel)250-500 EUR/an

1 développeur, usage commercial, mises à jour et support annuels

Équipe perpétuelle1 500 EUR

Jusqu'à 3 développeurs, licence perpétuelle, 1 an de mises à jour inclus

Équipe perpétuelle1 500 EUR

Jusqu'à 8 développeurs, licence perpétuelle, 1 an de mises à jour inclus

All licenses include:

  • Distribution sans redevances
  • Tous les exemples de code source
  • Support prioritaire par tickets
  • Toutes les cibles de plateforme incluses
  • Option perpétuelle : continuez à utiliser après l'expiration de l'abonnement (sans filigrane)

Tarifs du MFormats SDK

MFormats SDK (1 développeur)~4 508 $/an

Abonnement annuel, développeur unique, Windows uniquement

5 développeurs / 3 ans~67 620 $

5 postes développeur, engagement d'abonnement de 3 ans

Licence d'exécutionCoût supplémentaire

Peut nécessiter des frais d'exécution par déploiement selon la configuration

Avertissement d'expiration d'abonnement

MFormats SDK utilise un modèle d'abonnement annuel obligatoire. Si votre abonnement expire ou n'est pas renouvelé :

  • Un filigrane est automatiquement ajouté à toutes les sorties vidéo
  • Vous ne pouvez pas continuer à utiliser le SDK en production sans abonnement actif
  • Il n'existe pas d'option de licence perpétuelle de secours
  • Vos applications déployées afficheront des filigranes si le serveur de licences ne peut pas valider

Le Video Capture SDK offre des licences perpétuelles qui continuent de fonctionner indéfiniment après l'achat, sans pénalités de filigrane pour les renouvellements expirés.

Exemples de code

Exemple 1 : Capture webcam en MP4

Video Capture SDK .NET

C#
using VisioForge.Core.VideoCapture;
using VisioForge.Core.Types.Output;

// Create the capture engine
var capture = new VideoCaptureCore();

// Set video source (first available webcam)
var devices = await capture.Video_CaptureDevice_ListAsync();
capture.Video_CaptureDevice = devices[0];

// Set audio source
var audioDevices = await capture.Audio_CaptureDevice_ListAsync();
capture.Audio_CaptureDevice = audioDevices[0];

// Configure MP4 output with H.264
capture.Output_Format = new MP4Output
{
    Video = new H264EncoderSettings
    {
        Bitrate = 4000,
        Profile = H264Profile.Main
    },
    Audio = new AACEncoderSettings
    {
        Bitrate = 192
    }
};
capture.Output_Filename = "recording.mp4";

// Enable preview
capture.Video_Preview_Enabled = true;

// Start recording with preview
await capture.StartAsync();

MFormats SDK

C#
// MFormats: Frame-based capture loop
MFDeviceClass devClass = new MFDeviceClass();
MFReaderClass reader = new MFReaderClass();
MFWriterClass writer = new MFWriterClass();
MFRendererClass renderer = new MFRendererClass();

// Configure video device
reader.DeviceSet(eMFDeviceType.eMFDT_Video, 0, "");
reader.DeviceSet(eMFDeviceType.eMFDT_Audio, 0, "");

// Configure writer output
writer.WriterSet("recording.mp4", 0, "");

// You must run the capture loop yourself
while (capturing)
{
    MFFrame frame;
    reader.SourceFrameGet(-1, out frame, "");

    if (frame != null)
    {
        // Preview
        renderer.RenderSet("preview", frame, "");

        // Write to file
        writer.WriterPut(frame, "");

        // Release frame manually
        Marshal.ReleaseComObject(frame);
    }

    Thread.Sleep(1); // Manual timing
}

Exemple 2 : Caméra IP avec overlay + streaming

Video Capture SDK .NET

C#
using VisioForge.Core.VideoCapture;
using VisioForge.Core.Types.Output;

var capture = new VideoCaptureCore();

// IP camera source
capture.IP_Camera_Source = new IPCameraSourceSettings
{
    URL = "rtsp://192.168.1.100:554/stream",
    Type = IPCameraType.RTSP
};

// Add text overlay
capture.Video_Overlays.Add(new VideoOverlayText
{
    Text = "{timestamp} - Camera 1",
    Position = new System.Drawing.Point(10, 10),
    Font = new System.Drawing.Font("Arial", 14),
    Color = System.Drawing.Color.White
});

// Stream to RTMP
capture.Network_Streaming_Enabled = true;
capture.Network_Streaming_Format = new RTMPOutput
{
    URL = "rtmp://streaming-server/live",
    StreamKey = "stream_key",
    Video = new H264EncoderSettings { Bitrate = 4500 },
    Audio = new AACEncoderSettings { Bitrate = 128 }
};

// Also record locally
capture.Output_Filename = "backup.mp4";
capture.Output_Format = new MP4Output();

await capture.StartAsync();

MFormats SDK

C#
// MFormats: Manual frame loop with overlay + streaming
MFReaderClass reader = new MFReaderClass();
MFWriterClass localWriter = new MFWriterClass();
MFWriterClass rtmpWriter = new MFWriterClass();
MFRendererClass renderer = new MFRendererClass();

// Configure RTSP source
reader.ReaderOpen("rtsp://192.168.1.100:554/stream", "");

// Configure outputs
localWriter.WriterSet("backup.mp4", 0, "");
rtmpWriter.WriterSet("rtmp://streaming-server/live/stream_key", 0, "");

while (capturing)
{
    MFFrame frame;
    reader.SourceFrameGet(-1, out frame, "");

    if (frame != null)
    {
        // Add overlay manually via MFTransform
        MFOverlayClass overlay = new MFOverlayClass();
        overlay.OverlayTextSet(frame,
            DateTime.Now.ToString() + " - Camera 1",
            10, 10, 14, "Arial", 0xFFFFFF, 0, "");

        // Clone frame for second output
        MFFrame clone;
        frame.MFClone(out clone, eMFrameClone.eMFC_Full, eMFCC.eMFCC_Default);

        // Write to local file
        localWriter.WriterPut(frame, "");

        // Write to RTMP stream
        rtmpWriter.WriterPut(clone, "");

        Marshal.ReleaseComObject(clone);
        Marshal.ReleaseComObject(frame);
    }
}

Quand choisir chaque solution

Choisissez Video Capture SDK quand vous avez besoin de

  • Applications de capture multiplateforme (Windows, macOS, Linux, mobile)
  • Architecture basée sur un pipeline avec gestion automatique des threads et des tampons
  • 40+ effets vidéo et audio accélérés par GPU intégrés
  • Détection de mouvement, de visages et lecture de codes-barres pendant la capture
  • Sortie caméra virtuelle pour intégration OBS, Zoom, Teams
  • Licence économique avec option de licence perpétuelle
  • Sorties multiples indépendantes avec contrôle individuel de démarrage/arrêt
  • Support de caméras industrielles (GenICam, GigE Vision)
  • Support de tuner TV et capture DVB

Choisissez MFormats SDK quand vous avez besoin de

  • Support SDI multi-vendeurs : AJA, Bluefish444, Deltacast en plus de Blackmagic
  • Playout broadcast avec planification de playlists et automatisation
  • Overlays CG (générateur de caractères) HTML5 pour le broadcast en direct
  • Genlock et synchronisation de référence pour les environnements de studio broadcast
  • Contrôle manuel par frame sur chaque étape de traitement
  • Format conteneur MXF avec support complet des métadonnées broadcast
  • Intégration avec l'infrastructure broadcast existante et les routeurs SDI

Matrice de décision

ExigenceVideo Capture SDKMFormats SDKGagnant
Support multiplateformeVideo Capture SDK
Multi-sortie avec contrôle indépendantVideo Capture SDK
Effets audio (40+ intégrés)Video Capture SDK
Effets vidéo GPUVideo Capture SDK
Détection mouvement / visages / codes-barresVideo Capture SDK
Sortie caméra virtuelleVideo Capture SDK
Budget inférieur à 2 000 EURVideo Capture SDK
Option de licence perpétuelleVideo Capture SDK
Caméras industrielles (GenICam)Video Capture SDK
Tuner TV / capture DVBVideo Capture SDK
SDI multi-vendeurs (AJA, Bluefish444)MFormats SDK
Overlays HTML5 CG pour broadcastMFormats SDK

Conclusion

Video Capture SDK .NET

Le Video Capture SDK excelle en tant que moteur de capture multiplateforme basé sur un pipeline pour les développeurs .NET qui ont besoin d'un traitement vidéo riche, de fonctionnalités de détection, de sorties multiples indépendantes et d'un large support d'appareils. Son API déclarative, ses 40+ effets GPU et sa licence perpétuelle en font le choix le plus rentable pour la plupart des applications de capture, du bureau au mobile.

MFormats SDK

MFormats SDK est un choix solide pour les workflows centrés sur le broadcast nécessitant un support matériel SDI multi-vendeurs (AJA, Bluefish444, Deltacast), des overlays HTML5 CG et une automatisation de playout basée sur des playlists. Son architecture basée sur les frames offre un contrôle granulaire par frame adapté aux environnements broadcast professionnels. Cependant, il est limité à Windows, nettement plus cher et ajoute des filigranes si l'abonnement expire.

The Reality

Pour la majorité des projets de capture vidéo .NET — en particulier ceux nécessitant un support multiplateforme, des fonctionnalités de détection ou un modèle de licence économique — le Video Capture SDK est le choix évident. MFormats trouve sa place spécifiquement dans les studios broadcast SDI multi-vendeurs où l'intégration matérielle AJA/Bluefish et les workflows d'overlay CG sont essentiels.

Frequently Asked Questions

Que se passe-t-il pour mon application MFormats si je ne renouvelle pas l'abonnement ?
MFormats utilise un modèle d'abonnement annuel obligatoire. Si votre abonnement expire, un filigrane est automatiquement ajouté à toutes les sorties vidéo de vos applications déployées. Il n'existe pas d'option de licence perpétuelle de secours. Le Video Capture SDK, en revanche, offre des licences perpétuelles qui continuent de fonctionner indéfiniment après l'achat sans pénalités de filigrane.
Le Video Capture SDK supporte-t-il les cartes SDI AJA ou Bluefish444 ?
Actuellement, le Video Capture SDK supporte les cartes SDI Blackmagic DeckLink mais ne supporte pas le matériel AJA ou Bluefish444. Si votre projet nécessite un support SDI multi-vendeurs avec AJA, Bluefish et Deltacast en plus de Blackmagic, MFormats est le meilleur choix pour cette exigence spécifique.
Le Video Capture SDK peut-il fonctionner sur macOS et Linux ?
Oui. Le Video Capture SDK supporte Windows, macOS (Apple Silicon et Intel), Linux x64, Linux ARM64, Android et iOS. MFormats est limité à Windows en raison de son architecture basée sur COM.
Comment les modèles tarifaires se comparent-ils pour une équipe de 5 développeurs sur 3 ans ?
Pour 5 développeurs sur 3 ans, MFormats coûte environ 67 620 $. La licence perpétuelle équipe du Video Capture SDK coûte 1 500 EUR en achat perpétuel unique pour jusqu'à 8 développeurs. C'est un paiement unique contre 67 620 $ — environ 97 % de moins que MFormats.
MFormats dispose-t-il de détection de mouvement ou de visages intégrée ?
Non. MFormats n'inclut pas de fonctionnalités de détection intégrées. Vous devriez intégrer des bibliothèques tierces pour la détection de mouvement, la détection de visages ou la lecture de codes-barres. Le Video Capture SDK inclut toutes ces fonctionnalités en tant que fonctions intégrées avec des callbacks événementiels.
Quel SDK est le meilleur pour les applications de playout broadcast ?
MFormats est spécifiquement conçu pour les workflows de playout broadcast. Il inclut la planification de playlists, les overlays HTML5 CG, le support genlock et la sortie SDI multi-vendeurs. Si votre cas d'utilisation principal est l'automatisation du playout broadcast, MFormats est le choix le plus solide.
Puis-je migrer de MFormats vers le Video Capture SDK ?
Oui, mais les modèles de programmation sont différents. MFormats utilise une boucle basée sur les frames de type capture-traitement-sortie, tandis que le Video Capture SDK utilise un pipeline déclaratif. La migration implique généralement le remplacement de la boucle manuelle de frames par une configuration de pipeline et des gestionnaires d'événements. La plupart des équipes constatent que le code du SDK est nettement plus court et plus facile à maintenir. Prévoyez 1 à 3 semaines pour la migration selon la complexité du projet.

Commencer

Related Comparisons