Last updated: Janvier 2026
Media Player SDK .NET vs Medialooks MFormats SDK
Framework de lecture dédié vs SDK broadcast basé sur les frames
Choisir entre VisioForge Media Player SDK .NET et Medialooks MFormats SDK est une décision entre un framework de lecture multimédia dédié et un moteur orienté broadcast basé sur les frames. Media Player SDK offre une lecture à double moteur avec navigation DVD/Blu-ray, plus de 40 effets audio, mesure VU et sortie caméra virtuelle. MFormats récupère les frames des sources et les envoie au matériel SDI selon un calendrier. Ce guide compare l'architecture, les fonctionnalités, le support des plateformes, les tarifs et le code réel pour vous aider à choisir le bon SDK pour votre projet de lecteur vidéo .NET ou de playout broadcast.
Résumé exécutif
| Aspect | Media Player SDK .NET | MFormats SDK |
|---|---|---|
| Objectif principal | Lecture multimédia professionnelle | Playout broadcast |
| Architecture | Double moteur (DirectShow + GStreamer) | Basé sur les frames (capture → rendu) |
| Support des plateformes | Windows, macOS, Linux, iOS, Android (5 plateformes) | Windows uniquement |
| Tarifs | 250 €–500 €/an ou 750 €–1 500 € à vie | ~4 508 $/développeur/an |
| Idéal pour | Apps de lecteurs, bornes, visionneurs de surveillance | Automatisation de playout broadcast |
Analyse approfondie de l'architecture
Architecture de Media Player SDK .NET
Media Player SDK utilise une conception de pipeline à double moteur. Le moteur DirectShow fournit la navigation DVD/Blu-ray, les effets audio et le support des formats hérités sous Windows. Le moteur multiplateforme basé sur GStreamer (MediaPlayerCoreX) offre la lecture sur Windows, macOS, Linux, Android et iOS avec rendu accéléré par GPU, détection de mouvement et sortie caméra virtuelle.
- ▶Double moteur : DirectShow pour DVD/hérité + GStreamer pour multiplateforme
- ▶Plus de 40 effets audio en temps réel avec mesure VU et spectre FFT
- ▶Navigation des menus DVD/Blu-ray avec sélection de chapitres et d'angles
- ▶Sortie caméra virtuelle pour l'intégration avec Zoom, Teams et OBS
- ▶API async/await événementielle avec gestion automatique des threads
- ▶PiP, superpositions OSD et affichage multi-écran
Architecture de MFormats SDK
MFormats utilise un modèle basé sur les frames capture-traitement-sortie construit sur des objets COM. Vous créez un MFReader pour capturer les frames, appliquer des transformations et les envoyer à MFRenderer pour la prévisualisation ou MFWriter pour l'enregistrement. Ce modèle est optimisé pour le playout broadcast où les frames circulent vers le matériel SDI selon un calendrier fixe.
- ▶Boucle basée sur les frames : capturer le frame de MFReader, traiter, envoyer à la sortie
- ▶Architecture basée sur COM avec wrappers d'interopérabilité .NET
- ▶Gestion manuelle des threads et du timing des frames requise
- ▶Sortie SDI multi-fournisseurs vers matériel AJA, BlueFish et DELTACAST
- ▶Générateur de caractères HTML5 pour les graphiques à l'antenne
- ▶Playout intégré et planification de playlists pour les flux de travail broadcast
Différences architecturales clés
| Aspect | Media Player SDK | MFormats SDK |
|---|---|---|
| Modèle de programmation | Haut niveau : configurer les propriétés, appeler PlayAsync() | Bas niveau : capturer, traiter, rendre par frame |
| Threading | Gestion automatique interne des threads | Le développeur gère le threading de la boucle de capture |
| Pipeline audio | Plus de 40 effets, VU-mètre, FFT, mapping des canaux | Normalisation basique uniquement |
| Lecture de disques | DVD/Blu-ray complet avec navigation des menus | Aucun support de disques |
| Plateforme | Multiplateforme (.NET 6-10, 5 cibles OS) | Windows uniquement (basé sur COM) |
| Modèle d'objets | API .NET managée pure | Interopérabilité COM avec wrappers .NET |
Comparaison fonctionnalité par fonctionnalité
Lecture
| Fonctionnalité | Media Player SDK | MFormats SDK |
|---|---|---|
| Lecture de fichiers (MP4, MKV, AVI...) | ✅ | ✅(Via MFReaderClass) |
| Flux réseau (RTSP, RTMP, HLS) | ✅ | ✅ |
| Lecture DVD avec navigation des menus | ✅ | ❌ |
| Lecture Blu-ray | ✅ | ❌ |
| Lecture à vitesse variable | ✅ | ⚠️(Contrôle du taux de frames) |
| Avance image par image | ✅ | ✅ |
| Rendu des sous-titres | ✅ | ❌ |
| Pistes audio multiples | ✅ | ✅ |
| Boucle / répétition A-B | ✅ | ⚠️(Via playlist) |
| Gestion des playlists | ✅ | ✅(Playlist broadcast) |
Traitement audio
| Fonctionnalité | Media Player SDK | MFormats SDK |
|---|---|---|
| Effets audio (40+) | ✅ | ❌(Normalisation uniquement) |
| VU-mètre + spectre FFT | ✅ | ❌ |
| Améliorateur audio (normalisation, gain, noise gate) | ✅ | ⚠️(Normalisation basique) |
| Mappeur de canaux | ✅ | ❌ |
Traitement vidéo
| Fonctionnalité | Media Player SDK | MFormats SDK |
|---|---|---|
| Effets vidéo en temps réel | ✅ | ⚠️(Basique (mise à l'échelle, conversion)) |
| PiP (Image dans l'image) | ✅ | ⚠️(Via mixeur GPU) |
| Superpositions OSD | ✅ | ✅ |
| Superposition HTML5 CG | ❌ | ✅ |
| Chroma key | ✅ | ❌ |
Sortie
| Fonctionnalité | Media Player SDK | MFormats SDK |
|---|---|---|
| Sortie caméra virtuelle | ✅ | ❌ |
| Sortie NDI | ✅ | ✅ |
| Affichage multi-écran | ✅ | ⚠️(Via plusieurs renderers) |
| Capture d'écran | ✅ | ✅ |
Détection
| Fonctionnalité | Media Player SDK | MFormats SDK |
|---|---|---|
| Détection de mouvement | ✅ | ❌ |
| Détection de visages | ✅ | ❌ |
| Scan de codes-barres/QR | ✅ | ❌ |
Fonctionnalités broadcast
| Fonctionnalité | Media Player SDK | MFormats SDK |
|---|---|---|
| Sortie SDI (AJA, BlueFish, DELTACAST) | ❌ | ✅ |
| Générateur de caractères HTML5 | ❌ | ✅ |
| Automatisation de playlist broadcast | ❌ | ✅ |
Support des plateformes
Systèmes d'exploitation
| Plateforme | Media Player SDK | MFormats SDK |
|---|---|---|
| Windows | ✅ | ✅ |
| macOS | ✅ | ❌ |
| Linux | ✅ | ❌ |
| Android | ✅ | ❌ |
| iOS | ✅ | ❌ |
Frameworks UI
| Framework | Media Player SDK | MFormats SDK |
|---|---|---|
| WinForms | ✅ | ✅ |
| WPF | ✅ | ✅ |
| WinUI 3 | ✅ | ❌ |
| .NET MAUI | ✅ | ❌ |
| Avalonia | ✅ | ❌ |
| Uno Platform | ✅ | ❌ |
Comparaison des tarifs
Media Player SDK .NET
1 développeur — lecture de fichiers/flux, sous-titres, effets en temps réel
1 développeur — + RTSP/RTMP/HLS/NDI, détection de mouvement, décodage GPU
1 développeur — + vidéo VR/360°, suite complète d'effets
Développeurs illimités, perpétuelle, équipe entière
Développeurs illimités, perpétuelle, équipe entière
Développeurs illimités, perpétuelle, équipe entière
All licenses include:
- ✓ Distribution sans redevances
- ✓ Accès complet au code source (niveaux à vie)
- ✓ Toutes les mises à jour futures pendant la période de licence
- ✓ Support technique prioritaire
- ✓ Fonctionne après expiration (licences à vie)
MFormats SDK
Abonnement annuel, renouvellement obligatoire
Abonnement annuel
Abonnement annuel par poste
Avertissement d'expiration d'abonnement MFormats
MFormats utilise un modèle d'abonnement annuel obligatoire. Si votre abonnement expire :
- ⚠Un filigrane est ajouté à toutes les sorties — votre application de production est affectée
- ⚠Aucune option perpétuelle/à vie disponible — vous devez continuer à payer
- ⚠Les tarifs par poste se multiplient avec la croissance de l'équipe — 5 développeurs = 5x le coût
- ⚠Aucun délai de grâce — le filigrane apparaît immédiatement à l'expiration
Les licences à vie de Media Player SDK continuent de fonctionner indéfiniment après l'achat — sans filigrane, sans expiration.
Comparaison de code
Lecture de flux RTSP avec détection de mouvement
Media Player SDK
C#var player = new MediaPlayerCoreX(videoView);
// Open an RTSP network stream
var source = await UniversalSourceSettingsV2.CreateAsync(
new Uri("rtsp://camera.local:554/live"));
await player.OpenAsync(source);
// Enable motion detection on the live stream
player.Motion_Detection_Enabled = true;
player.OnMotionDetected += (s, e) =>
LogAlert($"Motion in zone {e.ZoneIndex}, level: {e.Level:P0}");
await player.PlayAsync();MFormats SDK
C#var reader = new MFReaderClass();
reader.ReaderOpen("rtsp://camera.local:554/live", "");
var renderer = new MFRendererClass();
renderer.RendererSet("", 0, panelHandle);
MFFrame frame;
while (playing)
{
reader.SourceFrameGet(-1, out frame, "");
renderer.RenderPut(frame, -1, "");
Marshal.ReleaseComObject(frame);
}
// No motion detection — requires external CV libraryEffets audio pendant la lecture
Media Player SDK
C#var player = new MediaPlayerCoreX(videoView);
var source = await UniversalSourceSettingsV2.CreateAsync(new Uri("podcast.mp4"));
await player.OpenAsync(source);
// 10-band graphic equalizer — boost voice clarity
var eq = new Equalizer10AudioEffect(new double[]
{ 0, 0, 0, 0, 4.5, 0, 3.0, 0, 0, 0 });
player.Audio_Effects_AddOrUpdate(eq);
// Reverb for spatial depth
var reverb = new ReverberationAudioEffect();
reverb.RoomSize = 0.25f;
reverb.Level = 0.1f;
player.Audio_Effects_AddOrUpdate(reverb);
// Enable VU meter for real-time level monitoring
player.Audio_VU_Meter_Enabled = true;
player.OnAudioVUMeter += (s, e) =>
UpdateMeter(e.MeterData);
await player.PlayAsync();MFormats SDK
C#// No audio effects pipeline — normalization only
// No VU meter or FFT spectrum analysis
// No equalizer, reverb, or any real-time audio processingNavigation DVD (Media Player SDK uniquement)
Media Player SDK
C#var player = new MediaPlayerCore(videoView);
// Configure for DVD playback
player.Source_Mode = MediaPlayerSourceMode.DVD_DS;
await player.PlayAsync();
// Navigate chapters and menus during playback
await player.DVD_Chapter_NextAsync();
await player.DVD_Menu_ShowAsync(DVDMenu.Title);
await player.DVD_Menu_ResumePlaybackAsync();
// Select audio language and subtitles
await player.DVD_Select_AudioStreamAsync(1); // e.g., French
await player.DVD_Select_SubpictureStreamAsync(0); // e.g., English subtitles
// Control playback speed and direction
await player.DVD_SetSpeedAsync(2.0, false); // 2x forwardMFormats SDK
C#// No DVD playback capability
// No menu navigation, chapter control, or disc support
// MFormats is designed for file/stream playout, not disc mediaCas d'utilisation idéaux
Choisissez Media Player SDK
- ✓Applications de lecteur multimédia interactif avec contrôles utilisateur
- ✓Lecture DVD et Blu-ray avec navigation des menus
- ✓Apps de traitement audio avec EQ, reverb et mesure VU
- ✓Visionneurs de surveillance avec détection de mouvement et de visages
- ✓Lecture multiplateforme sur Windows, macOS, Linux, Android, iOS
- ✓Sortie caméra virtuelle pour Zoom, Teams et OBS
- ✓Bornes et affichage dynamique avec support des sous-titres
- ✓Équipes soucieuses du budget nécessitant des licences à vie
Choisissez MFormats SDK
- ✓Playout broadcast automatisé avec planification 24/7
- ✓Sortie SDI multi-fournisseurs vers matériel AJA, BlueFish et DELTACAST
- ✓Superpositions de générateur de caractères HTML5 pour graphiques à l'antenne
- ✓Flux de travail d'ingestion et de playout broadcast centrés sur MXF
Matrice de décision
| Exigence | Media Player SDK | MFormats SDK | Gagnant |
|---|---|---|---|
| Application de lecteur multimédia | Media Player SDK | ||
| Lecture DVD / Blu-ray | Media Player SDK | ||
| Effets audio pendant la lecture | Media Player SDK | ||
| VU-mètre / FFT professionnel | Media Player SDK | ||
| Lecture multiplateforme | Media Player SDK | ||
| Sortie caméra virtuelle | Media Player SDK | ||
| Détection mouvement / visages / codes-barres | Media Player SDK | ||
| Budget inférieur à 2 000 € | Media Player SDK | ||
| Automatisation de playout broadcast | MFormats SDK | ||
| Sortie SDI (AJA, BlueFish, DELTACAST) | MFormats SDK | ||
| Superpositions HTML5 CG | MFormats SDK |
Conclusion
Choisissez Media Player SDK .NET si vous avez besoin de
Lecture multimédia interactive avec navigation DVD/Blu-ray, déploiement multiplateforme sur 5 systèmes d'exploitation, plus de 40 effets audio en temps réel avec mesure VU, sortie caméra virtuelle pour les outils de conférence, détection de mouvement/visages/codes-barres pendant la lecture, et licences perpétuelles pour équipes à une fraction du coût par poste de MFormats.
Choisissez MFormats SDK si vous avez besoin de
Playout broadcast automatisé avec planification et fonctionnement 24/7, sortie SDI multi-fournisseurs vers matériel AJA, BlueFish et DELTACAST, et superpositions de générateur de caractères HTML5 pour graphiques à l'antenne.
The Reality
La distinction est simple : Media Player SDK est fait pour construire des visionneurs interactifs — des applications où un utilisateur regarde, navigue et contrôle les médias. MFormats est fait pour construire des moteurs de playout automatisés — des systèmes qui envoient des frames au matériel SDI selon un calendrier sans interaction de l'utilisateur. Si votre projet place une fenêtre vidéo devant une personne, Media Player SDK est le bon outil. Si votre projet alimente un émetteur broadcast, c'est MFormats.
