SDK de pipeline temps réel vs SDK broadcast basé sur les frames
Media Blocks SDK .NET vs Medialooks MFormats SDK
Quel SDK vidéo C# choisir en 2026
Last updated: Janvier 2026
Vous cherchez une alternative à MFormats pour votre projet de broadcast ou de traitement vidéo .NET ? Cette comparaison évalue Media Blocks SDK .NET et Medialooks MFormats SDK sur l'architecture, le support matériel SDI, le déploiement multiplateforme, le streaming en direct, les tarifs et les exemples de code — pour vous aider à choisir le bon SDK vidéo C# pour le broadcast, la capture ou les pipelines multimédia personnalisés.
Résumé exécutif
Media Blocks SDK .NET et Medialooks MFormats SDK ciblent tous deux le traitement et le streaming vidéo professionnel, mais avec des architectures fondamentalement différentes. Media Blocks utilise un modèle de pipeline modulaire — les développeurs connectent des blocs source, transformation et destination comme un graphe de traitement. MFormats utilise un modèle basé sur les frames capture-traitement-sortie — les développeurs gèrent une boucle où chaque frame est un objet avec audio attaché. Les deux supportent le matériel broadcast et le streaming, mais Media Blocks est multiplateforme avec plus de 400 blocs tandis que MFormats est Windows uniquement avec un support SDI multi-vendeurs plus approfondi.
| Aspect | Media Blocks SDK .NET | MFormats SDK |
|---|---|---|
| Architecture | Pipeline modulaire (blocs + pads) | Basé sur les frames (capture → traitement → sortie) |
| Plateforme | Windows, macOS, Linux, iOS, Android | Windows uniquement |
| Tarifs | €500/an ou €500–€1 500 équipe/perpétuelle | ~4 508 $/développeur/an (abonnement) |
| Nombre de blocs | 400+ blocs | N/A (API monolithique) |
| Idéal pour | Pipelines personnalisés, multiplateforme, workflows complexes | Playout broadcast, SDI multi-vendeurs |
Architecture : Pipeline modulaire vs boucle de frames
Media Blocks SDK .NET — Pipeline modulaire
- ✓Construisez des pipelines personnalisés en connectant des blocs réutilisables (source, transformation, destination)
- ✓Le pipeline gère le threading et le flux de données automatiquement
- ✓Plus de 400 blocs disponibles pour la vidéo, l'audio, l'encodage, les effets et la sortie
- ✓Modification dynamique du pipeline — ajouter/supprimer des blocs à l'exécution
- ✓Créez vos propres blocs personnalisés pour un traitement spécialisé
- ✓Multiplateforme : Windows, macOS, Linux, iOS, Android
MFormats SDK — Boucle basée sur les frames
- •Le développeur contrôle la boucle de frames explicitement (capture → traitement → sortie)
- •Chaque frame est un objet COM avec des canaux audio attachés
- •Modèle mental plus simple pour les workflows entrée unique/sortie unique
- •Plus de travail manuel requis pour les pipelines complexes multi-sorties
- •Intégration profonde du matériel SDI multi-vendeurs (AJA, BlueFish444, DELTACAST)
- •Déploiement Windows uniquement
Matrice de comparaison des fonctionnalités
| Fonctionnalité | Media Blocks SDK | MFormats SDK | Gagnant |
|---|---|---|---|
| Pipeline modulaire (connecter des blocs) | ✅ 400+ blocs | ❌ Monolithique | Media Blocks SDK |
| Modification dynamique du pipeline | ✅ Ajouter/supprimer des blocs à l'exécution | ❌ | Media Blocks SDK |
| Développement de blocs personnalisés | ✅ Créez vos propres blocs | ❌ | Media Blocks SDK |
| Traitement basé sur les frames | ✅ Via blocs callback | ✅ Modèle principal | Égalité |
| Webcams USB | ✅ SystemVideoSourceBlock | ✅ | Égalité |
| Caméras IP (RTSP/RTMP/HLS) | ✅ UniversalSourceBlock | ✅ | Égalité |
| Capture d'écran | ✅ ScreenSourceBlock | ✅ | Égalité |
| Blackmagic DeckLink | ✅ DeckLinkSourceBlock | ✅ | Égalité |
| AJA Video Systems | ❌ | ✅ Natif | MFormats |
| Source NDI | ✅ NDISourceBlock | ✅ | Égalité |
| Source virtuelle (pousser des frames) | ✅ VirtualVideoSourceBlock | ✅ Bitmaps | Égalité |
| Caméras industrielles (Basler, FLIR) | ✅ Blocs natifs | ❌ | Media Blocks SDK |
| Effets vidéo (GPU) | ✅ Plusieurs blocs d'effets GPU | ⚠️ Basique (mise à l'échelle, conversion) | Media Blocks SDK |
| Effets audio (40+) | ✅ Blocs d'effets audio | ❌ Normalisation uniquement | Media Blocks SDK |
| Superpositions texte/image | ✅ OverlayBlock | ✅ Texte + graphique | Égalité |
| Superposition HTML5 CG | ❌ | ✅ Character Generator | MFormats |
| Chroma key | ✅ ChromaKeyBlock | ❌ | Media Blocks SDK |
| Mixage / composition vidéo | ✅ VideoMixerBlock | ✅ Mixeur GPU | Égalité |
| Correction colorimétrique | ✅ ColorEffectsBlock | ✅ | Égalité |
| Redimensionner / mettre à l'échelle | ✅ VideoResizeBlock | ✅ Mise à l'échelle GPU | Égalité |
| Désentrelacement | ✅ DeinterlaceBlock | ✅ | Égalité |
| Pipeline d'effets audio | ✅ EQ, réverbération, chorus, 3D | ❌ | Media Blocks SDK |
| Mixage audio | ✅ AudioMixerBlock | ✅ | Égalité |
| Sortie RTMP | ✅ RTMPSinkBlock | ✅ | Égalité |
| Serveur RTSP | ✅ | ✅ | Égalité |
| Sortie HLS | ✅ HLSSinkBlock | ✅ | Égalité |
| Sortie SRT | ✅ SRTSinkBlock | ✅ | Égalité |
| Sortie NDI | ✅ NDISinkBlock | ✅ | Égalité |
| WebRTC | ✅ | ✅ VTConnect | Égalité |
| MP4, MKV, AVI, MOV | ✅ Blocs sink typés | ✅ | Égalité |
| MXF | ✅ | ✅ | Égalité |
| Encodage matériel (NVENC, QSV, AMF) | ✅ Blocs encodeur typés | ✅ NVENC, QSV | Égalité |
| Apple VideoToolbox / MediaCodec | ✅ | ❌ | Media Blocks SDK |
| H.264 | ✅ Plusieurs blocs encodeur | ✅ | Égalité |
| H.265/HEVC | ✅ | ✅ | Égalité |
| AV1 | ✅ | ❌ | Media Blocks SDK |
| VP8/VP9 | ✅ | ❌ | Media Blocks SDK |
| Enregistrement Pré-Événement (Buffer Circulaire) | ✅ | ❌ | Media Blocks SDK |
| Détection de mouvement | ✅ CVMotionCellsBlock | ❌ | Media Blocks SDK |
| Détection de visages | ✅ CVFaceDetectBlock | ❌ | Media Blocks SDK |
| Scan de codes-barres/QR | ✅ BarcodeDetectorBlock | ❌ | Media Blocks SDK |
| Transitions vidéo | ✅ TransitionBlock | ✅ | Égalité |
| Opérations précises à la frame | ✅ Basé sur le pipeline | ✅ Contrôle au niveau frame | Égalité |
| Ingestion 24/7 | ✅ | ✅ Stabilité éprouvée | Égalité |
| Déploiement Docker | ✅ Conteneurs Linux | ✅ Conteneurs Windows | Media Blocks SDK |
| Sortie DeckLink | ✅ DeckLinkSinkBlock | ✅ | Égalité |
| Sortie AJA | ❌ | ✅ | MFormats |
Quand choisir chaque solution
Choisissez Media Blocks SDK .NET quand vous avez besoin de
Déploiement multiplateforme
Votre application doit fonctionner sur Windows, macOS, Linux, Android ou iOS — MFormats est Windows uniquement.
Pipelines modulaires personnalisés
Vous devez construire des workflows complexes en connectant des blocs source, traitement et sortie avec modification dynamique à l'exécution.
Effets audio et vidéo avancés
Votre projet nécessite des effets vidéo GPU, plus de 40 effets audio, chroma key ou étalonnage colorimétrique — des domaines où MFormats offre un support minimal.
Fonctionnalités de vision par ordinateur
Vous avez besoin de détection de mouvement, détection de visages ou scan de codes-barres/QR intégrés sans bibliothèques tierces.
Support des codecs modernes
Votre workflow nécessite l'encodage matériel AV1, VP9 ou Apple VideoToolbox / MediaCodec que MFormats ne supporte pas.
Équipes soucieuses du budget
Votre budget est inférieur à 2 000 € — Media Blocks SDK est 9 à 27 fois moins cher que MFormats pour une équipe de 5 développeurs sur 3 ans.
Choisissez MFormats SDK quand vous avez besoin de
Matériel SDI multi-vendeurs
Votre installation broadcast utilise du matériel AJA, BlueFish444, DELTACAST ou Magewell nécessitant une intégration SDK native.
Superpositions de générateur de caractères HTML5
Vous avez besoin d'un moteur de superposition HTML5 CG intégré pour les graphiques broadcast et les bandeaux.
Modèle de traitement basé sur les frames
Vous préférez le contrôle explicite de la boucle de frames où chaque frame est un objet COM que vous capturez, traitez et envoyez en séquence.
Exemples de code
Pipeline capture + superposition + enregistrement
Media Blocks SDK .NET
C#// Build custom pipeline by connecting blocks
var pipeline = new MediaBlocksPipeline();
var source = new SystemVideoSourceBlock(
new VideoCaptureDeviceSourceSettings(deviceInfo));
var overlay = new TextOverlayBlock(
new TextOverlaySettings("LIVE"));
var tee = new TeeBlock(2, MediaBlockPadMediaType.Video);
var preview = new VideoRendererBlock(pipeline, videoView);
var h264Encoder = new H264EncoderBlock();
var fileOutput = new MP4SinkBlock(
new MP4SinkSettings("output.mp4"));
// Connect: source -> overlay -> tee -> [preview + encoder -> file]
pipeline.Connect(source.Output, overlay.Input);
pipeline.Connect(overlay.Output, tee.Input);
pipeline.Connect(tee.Outputs[0], preview.Input);
pipeline.Connect(tee.Outputs[1], h264Encoder.Input);
pipeline.Connect(h264Encoder.Output,
fileOutput.CreateNewInput(MediaBlockPadMediaType.Video));
await pipeline.StartAsync();MFormats SDK
C#var source = new MFLiveClass();
source.DeviceSet("video", 0, "");
var writer = new MFWriterClass();
writer.WriterSet("output.mp4", 0, "");
MFFrame frame;
while (running)
{
source.SourceFrameGet(-1, out frame, "");
frame.MFOverlayAdd(null, "text=\"LIVE\"", 0);
writer.WriterPut(frame, -1, "");
Marshal.ReleaseComObject(frame);
}Caméra RTSP en direct vers flux HLS
Media Blocks SDK .NET
C#var pipeline = new MediaBlocksPipeline();
var rtspSource = new RTSPSourceBlock(
new RTSPSourceSettings(
new Uri("rtsp://camera.local:554/stream")));
var videoView = new VideoRendererBlock(
pipeline, VideoView1);
var h264Encoder = new H264EncoderBlock(
new OpenH264EncoderSettings { Bitrate = 4000000 });
var aacEncoder = new AACEncoderBlock(
new AACEncoderSettings());
var hlsSink = new HLSSinkBlock(
new HLSSinkSettings("/var/www/stream/") {
SegmentDuration = TimeSpan.FromSeconds(4),
PlaylistLength = 5
});
pipeline.Connect(rtspSource.VideoOutput, videoView.Input);
pipeline.Connect(rtspSource.VideoOutput, h264Encoder.Input);
pipeline.Connect(rtspSource.AudioOutput, aacEncoder.Input);
pipeline.Connect(h264Encoder.Output,
hlsSink.CreateNewInput(MediaBlockPadMediaType.Video));
pipeline.Connect(aacEncoder.Output,
hlsSink.CreateNewInput(MediaBlockPadMediaType.Audio));
await pipeline.StartAsync();MFormats SDK
C#// MFormats requires manual frame loop
// and Windows-only deployment
var source = new MFLiveClass();
source.DeviceSet("video", 0, "");
var writer = new MFWriterClass();
writer.WriterSet(
"rtmp://server/live/stream", 0, "");
MFFrame frame;
while (running)
{
source.SourceFrameGet(-1, out frame, "");
// Process frame...
writer.WriterPut(frame, -1, "");
Marshal.ReleaseComObject(frame);
}
// Note: No cross-platform support.
// No Linux Docker deployment.Tarifs et comparaison du coût total
MFormats SDK utilise un modèle d'abonnement annuel à environ 4 508 $/développeur/an. Media Blocks SDK propose des licences annuelles et perpétuelles à une fraction du coût.
| Scénario | Media Blocks SDK | MFormats SDK |
|---|---|---|
| 1 développeur, 1 an | €500/an (annuel) | ~4 508 $ |
| 1 développeur, perpétuelle | €500–€1 500 (paiement unique) | ~13 524 $ (3 ans) |
| 5 développeurs, 3 ans | €1 500 (Équipe/Perpétuelle) | ~67 620 $ |
| Type de licence | Perpétuelle (à vie) | Abonnement annuel |
| Expiration de l'abonnement | Continue de fonctionner | ⚠️ Filigrane sur la sortie |
| Frais d'exécution | Aucun | Aucun |
Comparaison du support des plateformes
| Plateforme | Media Blocks SDK | MFormats SDK |
|---|---|---|
| Windows | ✅ | ✅ |
| macOS | ✅ | ❌ |
| Linux | ✅ | ❌ |
| Android | ✅ | ❌ |
| iOS | ✅ | ❌ |
| Docker (Linux) | ✅ | ❌ |
| Docker (Windows) | ✅ | ✅ |
Media Blocks SDK est 9 à 27 fois moins cher sur 3 ans pour une équipe de 5 développeurs. MFormats ajoute des filigranes si l'abonnement expire, tandis que les licences perpétuelles Media Blocks continuent de fonctionner indéfiniment.
Limitations et compromis
Limitations de Media Blocks SDK
- ⚠Pas de support matériel AJA Video Systems — MFormats a une intégration AJA native
- ⚠Pas de moteur de superposition HTML5 Character Generator intégré
- ⚠Licence commerciale requise — non adapté aux projets open-source nécessitant une dépendance gratuite
- ⚠SDK binaire à source fermée — impossible d'inspecter ou de modifier les composants internes natifs du pipeline
Limitations de MFormats SDK
- ⚠Windows uniquement — pas de support macOS, Linux, Android ou iOS
- ⚠Pas d'architecture de pipeline modulaire — gestion manuelle de la boucle de frames requise
- ⚠Effets vidéo limités — mise à l'échelle et conversion basiques uniquement, pas de pipeline d'effets GPU
- ⚠Pas de pipeline d'effets audio — normalisation uniquement, pas d'EQ/réverbération/chorus
- ⚠Pas de vision par ordinateur — pas de détection de mouvement, de visages ou de codes-barres
- ⚠Pas de support des codecs AV1 ou VP9
- ⚠L'expiration de l'abonnement entraîne une sortie avec filigrane
- ⚠Coût nettement plus élevé (~4 508 $/développeur/an vs €500/an)
Matrice de décision
Utilisez cette matrice pour faire correspondre vos exigences avec chaque SDK. Les scores vont de 1 à 5 (5 = répond pleinement à l'exigence).
| Exigence | Media Blocks SDK | MFormats SDK | Recommandé |
|---|---|---|---|
| Déploiement multiplateforme | Media Blocks SDK | ||
| Pipelines modulaires personnalisés | Media Blocks SDK | ||
| Effets audio (40+) | Media Blocks SDK | ||
| Effets vidéo GPU | Media Blocks SDK | ||
| Détection mouvement/visages/codes-barres | Media Blocks SDK | ||
| Encodage AV1 / VP9 | Media Blocks SDK | ||
| Caméras industrielles (Basler, FLIR) | Media Blocks SDK | ||
| Budget inférieur à 2 000 € | Media Blocks SDK | ||
| Conteneurs Docker Linux | Media Blocks SDK | ||
| SDI multi-vendeurs (AJA, BlueFish) | MFormats | ||
| Superpositions HTML5 CG | MFormats | ||
| Modèle de traitement basé sur les frames | MFormats |
Approche hybride : utiliser les deux ensemble
Dans certains environnements broadcast, combiner les deux SDK peut tirer parti des forces de chaque produit :
Media Blocks pour le traitement + MFormats pour la sortie SDI
Utilisez Media Blocks SDK pour les effets vidéo, l'encodage et la capture multiplateforme. Utilisez MFormats pour la sortie SDI finale vers le matériel AJA ou BlueFish444 dans une installation broadcast.
Media Blocks pour le cloud + MFormats pour le broadcast sur site
Déployez Media Blocks SDK dans des conteneurs Docker Linux pour le traitement et le streaming dans le cloud. Utilisez MFormats sur les machines Windows pour le playout broadcast sur site avec du matériel SDI multi-vendeurs.
Migration progressive de MFormats vers Media Blocks
Démarrez de nouvelles fonctionnalités multiplateformes avec Media Blocks SDK tout en maintenant les workflows broadcast Windows existants basés sur MFormats. Migrez progressivement à mesure que Media Blocks SDK étend le support SDI.
Conclusion
Media Blocks SDK .NET et Medialooks MFormats SDK servent tous deux le traitement vidéo professionnel, mais leurs architectures et capacités divergent considérablement.
Media Blocks SDK .NET
Media Blocks SDK .NET est le bon choix pour le déploiement multiplateforme (Windows, macOS, Linux, Android, iOS), les workflows de pipeline modulaire avec plus de 400 blocs, les effets vidéo GPU avancés, plus de 40 effets audio, la vision par ordinateur (détection mouvement/visages/codes-barres), les codecs modernes (AV1, VP9, HEVC) et les équipes soucieuses du budget — à un coût 9 à 27 fois inférieur à MFormats sur 3 ans avec licence perpétuelle et distribution sans redevances.
MFormats SDK
MFormats SDK est le bon choix si vous avez besoin d'un support matériel SDI multi-vendeurs (AJA, BlueFish444, DELTACAST, Magewell), d'une architecture basée sur les frames avec contrôle explicite de la boucle de frames, ou de superpositions de générateur de caractères HTML5 dans un environnement broadcast Windows uniquement.
Pour 90 % des applications vidéo multiplateformes, Media Blocks SDK offre nettement plus de capacités à une fraction du coût. Les installations broadcast avec une infrastructure SDI multi-vendeurs peuvent trouver que MFormats vaut son prix premium. Pour tout le reste — pipelines personnalisés, effets, détection, streaming, encodage — Media Blocks SDK est le choix le plus puissant.
