VisioForge

Media Blocks SDK .NET

Créez des applications multimédias puissantes facilement et de manière flexible avec Media Blocks SDK .NET — une boîte à outils modulaire qui vous permet de construire des flux de travail vidéo complexes comme un constructeur visuel (caméra → codec → sortie). Il prend en charge l'enregistrement en MP4, MKV et AVI, ainsi que le streaming via HLS, RTMP et RTSP, offrant un riche ensemble d'effets incluant la correction des couleurs, le désentrelacement, les filigranes, la capture d'écran et le traitement audio. Avec la vision par ordinateur intégrée, la reconnaissance de code QR, le suivi de visage et la prise en charge complète des périphériques Blackmagic et ONVIF, il apporte des fonctionnalités de qualité professionnelle à tout projet. Le SDK fonctionne de manière transparente avec WinForms, WPF, MAUI, Xamarin et Avalonia, facilitant l'intégration de capacités multimédias avancées dans les applications de bureau et mobiles.

Installation

Installation rapide avec NuGet

Installez le SDK directement dans votre projet à l'aide de la console du gestionnaire de packages :

Install-Package VisioForge.DotNet.MediaBlocks

Or search for VisioForge.DotNet.MediaBlocks in Visual Studio's NuGet Package Manager. View installation guide →

Avantages Clés

Architecture modulaire

Plus de 200 blocs de traitement qui se connectent comme des briques pour créer des pipelines multimédias personnalisés

Multiplateforme

Fonctionne sur Windows, macOS, Linux, Android et iOS avec tous les principaux frameworks d'interface utilisateur .NET

Accélération matérielle

Encodage/décodage accéléré par GPU avec prise en charge NVIDIA, Intel et AMD pour des performances maximales

Exemples de Pipeline

// Create MediaBlocks pipeline
_pipeline = new MediaBlocksPipeline();

// Add file source
var fileSourceSettings = await UniversalSourceSettings.CreateAsync("video.mp4");
var videoStreamAvailable = fileSourceSettings.GetInfo().VideoStreams.Count > 0;
var audioStreamAvailable = fileSourceSettings.GetInfo().AudioStreams.Count > 0;

var fileSource = new UniversalSourceBlock(fileSourceSettings);

// Add video renderer
if (videoStreamAvailable)
{
    var videoRenderer = new VideoRendererBlock(_pipeline, VideoView1);
    _pipeline.Connect(fileSource, videoRenderer);
}

// Add audio output
if (audioStreamAvailable)
{
    var audioOutputDevice = (await DeviceEnumerator.Shared.AudioOutputsAsync(
        AudioOutputDeviceAPI.DirectSound))[0];
    var audioOutput = new AudioRendererBlock(
        new AudioRendererSettings(audioOutputDevice));
    _pipeline.Connect(fileSource, audioOutput);
}

// Start playback
await _pipeline.StartAsync();

LECTEUR SIMPLE

Le pipeline de lecteur simple utilise le UniversalSourceBlock pour lire et décoder le fichier source, le VideoRendererBlock pour afficher la vidéo et le AudioRendererBlock pour lire l'audio.

Visualisation interactive du pipeline

Loading pipeline diagram...

LECTEUR AVANCÉ

Le pipeline de lecteur avancé comprend le UniversalSourceBlock pour décoder les fichiers ou les flux, les rendus vidéo et audio, et les blocs de traitement d'effets.

// Create MediaBlocks pipeline
_pipeline = new MediaBlocksPipeline();

// Add file source
var fileSourceSettings = await UniversalSourceSettings.CreateAsync(edFilename.Text);
var videoStreamAvailable = fileSourceSettings.GetInfo().VideoStreams.Count > 0;
var audioStreamAvailable = fileSourceSettings.GetInfo().AudioStreams.Count > 0;

var fileSource = new UniversalSourceBlock(fileSourceSettings);

// Add video renderer, text overlay and image overlay
if (videoStreamAvailable)
{
    var videoRenderer = new VideoRendererBlock(_pipeline, VideoView1);
    var textOverlay = new TextOverlayBlock(new TextOverlaySettings("Hello world!"));
    var imageOverlay = new ImageOverlayBlock(new ImageOverlaySettings("logo.png"));

    _pipeline.Connect(fileSource, textOverlay);
    _pipeline.Connect(textOverlay, imageOverlay);
    _pipeline.Connect(imageOverlay, videoRenderer);
}

// Add audio output and equalizer
if (audioStreamAvailable)
{
    var audioOutputDevice = (await DeviceEnumerator.Shared.AudioOutputsAsync(AudioOutputDeviceAPI.DirectSound))[0];
    var audioOutput = new AudioRendererBlock(new AudioRendererSettings(audioOutputDevice));

    var equalizer = new EqualizerParametricBlock();
    // set some equalizer settings

    _pipeline.Connect(fileSource, equalizer);
    _pipeline.Connect(equalizer, audioOutput);
}

// Start playback
await _pipeline.StartAsync();

Pipeline de lecteur avancé avec effets

Loading pipeline diagram...

// Create MediaBlocksPipeline object
_pipeline = new MediaBlocksPipeline();

// Add default video and audio sources
var videoSources = (await DeviceEnumerator.Shared.VideoSourcesAsync()).ToList();
var videoSource = new SystemVideoSourceBlock(new VideoCaptureDeviceSourceSettings(
    videoSources.Find(x => x.Name.Contains("920"))));

var audioSources = (await DeviceEnumerator.Shared.AudioSourcesAsync()).ToList();
var audioSource = new SystemAudioSourceBlock(audioSources[0].CreateSourceSettings());

// Add video renderer
var videoRenderer = new VideoRendererBlock(_pipeline, videoView: VideoView1);

// Add audio renderer
var audioRenderers = (await DeviceEnumerator.Shared.AudioOutputsAsync()).ToList();
var audioRenderer = new AudioRendererBlock(new AudioRendererSettings(audioRenderers[0]));

// Connect everything
_pipeline.Connect(videoSource, videoRenderer);
_pipeline.Connect(audioSource, audioRenderer);

// Start preview
await _pipeline.StartAsync();

APERÇU CAMÉRA

Le pipeline d'aperçu simple caméra/microphone contient des blocs source de périphérique et des blocs de rendu vidéo/audio.

Les périphériques par défaut seront utilisés.

Pipeline d'aperçu caméra

Loading pipeline diagram...

APERÇU RTSP

Le pipeline d'aperçu RTSP, qui comprend le bloc source RTSP (avec décodeurs à l'intérieur), les rendus vidéo et audio.

// Create Media Blocks pipeline
_pipeline = new MediaBlocksPipeline();

// Create video renderer
var videoRenderer = new VideoRendererBlock(_pipeline, VideoView1);

// Add RTSP camera source
var rtsp = await RTSPSourceSettings.CreateAsync(new Uri(edURL.Text), 
    edLogin.Text, edPassword.Text, audioEnabled: cbAudioStream.Checked);
var rtspSource = new RTSPSourceBlock(rtsp);

_pipeline.Connect(rtspSource, videoRenderer);

// Add audio output (if required)
if (cbAudioStream.Checked && rtsp.IsAudioAvailable())
{
    var audioOutputDevice = (await DeviceEnumerator.Shared.AudioOutputsAsync(
        AudioOutputDeviceAPI.DirectSound))[0];
    var audioOutput = new AudioRendererBlock(new AudioRendererSettings(audioOutputDevice));
    _pipeline.Connect(rtspSource, audioOutput);
}

// Start IP camera preview
await _pipeline.StartAsync();

Pipeline de flux RTSP

Loading pipeline diagram...

// Create the pipeline
_pipeline = new MediaBlocksPipeline();

// Add video and audio sources
var videoSources = (await DeviceEnumerator.Shared.VideoSourcesAsync()).ToList();
var videoSource = new SystemVideoSourceBlock(new VideoCaptureDeviceSourceSettings(videoSources[0]));

var audioSources = (await DeviceEnumerator.Shared.AudioSourcesAsync()).ToList();
var audioSource = new SystemAudioSourceBlock(audioSources[0].CreateSourceSettings());

// Add video renderer and specify VideoView control
var videoRenderer = new VideoRendererBlock(_pipeline, videoView: VideoView1);

// Add audio renderer
var audioRenderers = (await DeviceEnumerator.Shared.AudioOutputsAsync()).ToList();
var audioRenderer = new AudioRendererBlock(new AudioRendererSettings(audioRenderers[0]));

// Configure MP4 output
var output = new MP4OutputBlock(Path.Combine(
    Environment.GetFolderPath(Environment.SpecialFolder.MyVideos), "output.mp4"));

// Add video and audio tees
var videoTee = new TeeBlock(2, MediaBlockPadMediaType.Video);
var audioTee = new TeeBlock(2, MediaBlockPadMediaType.Audio);

// Connect everything
_pipeline.Connect(videoSource, videoTee);
_pipeline.Connect(audioSource, audioTee);

_pipeline.Connect(videoTee, videoRenderer);
_pipeline.Connect(audioTee, audioRenderer);

_pipeline.Connect(videoTee, output);
_pipeline.Connect(audioTee, output);

// Start MP4 recording
await _pipeline.StartAsync();

CAPTURE AVEC APERÇU

Le pipeline de capture a deux blocs tee qui sont utilisés pour diviser les flux vidéo et audio, permettant l'aperçu vidéo/audio avec la capture vidéo.

Pipeline de capture avec aperçu

Loading pipeline diagram...

Les fonctionnalités principales de VisioForge Media Blocks SDK .Net incluent :

Fonctionnalités principales

  • Aperçu Audio/Vidéo
  • Capture Vidéo et Audio vers une large gamme de formats
  • Capture d'image vers la classe Bitmap, fichiers BMP, JPEG et PNG
  • Traitement vidéo et effets (CPU/GPU)
  • Contrôle du périphérique de capture vidéo
  • Streaming réseau
  • Détection de mouvement
  • Prise en charge des interfaces personnalisées
  • API de vision par ordinateur
  • PIP (Picture-In-Picture)
  • Capture d'écran/Capture de fenêtre
  • Détection de visage et suivi d'objets
  • Prise en charge de plusieurs écrans de sortie
  • Capture audio à partir des haut-parleurs
  • Prise en charge de la lecture et de l'écriture des balises de fichiers Audio/Vidéo

Périphériques d'entrée pris en charge

  • Webcams USB et périphériques de capture (y compris 4K)
  • Caméras/Serveurs IP JPEG/MJPEG, MPEG-4 et H.264 HTTP/RTSP/RTMP
  • Caméscopes MPEG-2 DV et HDV
  • Cartes de capture PCI
  • Tuners TV (avec/sans encodeur MPEG interne)
  • Format HD pris en charge pour les caméras IP
  • Caméras IP ONVIF avec prise en charge PTZ
  • Périphériques Blackmagic Decklink
  • Périphériques de capture audio et cartes son
  • Périphériques ASIO

Matériel professionnel

  • Prise en charge des entrées/sorties Blackmagic Decklink
  • Caméras FLIR/Teledyne (USB3Vision/GigE)
  • Caméras Basler (USB3Vision/GigE)
  • Caméscopes MPEG-2 DV et HDV
  • Cartes de capture PCI
  • Tuners TV (avec/sans encodeur MPEG intégré)
  • Caméras IP ONVIF avec prise en charge PTZ
  • Périphériques ASIO

Sources

  • Caméras Allied Vision
  • GIF animé
  • Caméras Basler (USB3Vision/GigE)
  • Karaoké CDG
  • Commutateur de repli
  • GenICam (Caméras industrielles)
  • HTTP
  • HTTP MJPEG
  • Séquence d'images
  • Fichier local
  • Tampon mémoire
  • NDI
  • PulseAudio
  • Caméra Raspberry Pi
  • RTMP
  • RTSP
  • RTSP RAW
  • Capture d'écran
  • SRT
  • Audio système
  • Vidéo système
  • Signal de test
  • UDP/RTP
  • URI (Fichier/Réseau)

Traitement Audio

  • Amplifier
  • Balance
  • Convertisseur de format d'échantillon
  • Normaliseur de charge
  • Mixeur
  • Rééchantillonneur
  • Captureur d'échantillons
  • Correcteur d'horodatage
  • Rejet de bande passante Chebyshev
  • Limite Chebyshev
  • Compresseur/Expanseur
  • Filtre Csound
  • Niveau EBU R128
  • Écho
  • Égaliseur (10 bandes)
  • Égaliseur (Paramétrique)
  • Rendu HRTF
  • Karaoké
  • Supprimer le silence
  • Réverbération
  • Échelle/Tempo
  • Volume
  • VU-mètre
  • Stéréo large

Lecteur de codes-barres

  • Code QR
  • UPC-A, UPC-E
  • EAN-8, EAN-13
  • Code 39
  • Code 93
  • Code 128
  • Codabar
  • ITF
  • RSS-14
  • Data Matrix
  • Aztec
  • PDF-417

Encodeurs Audio

  • AAC
  • ADPCM
  • ALAW
  • AptX
  • FLAC
  • MP2
  • MP3
  • OPUS
  • Speex
  • Vorbis
  • WAV
  • Wavpack
  • WMA (Windows Media Audio)

Encodeurs Vidéo (CPU/GPU)

  • AV1
  • DV
  • GIF
  • H.264
  • H.265/HEVC
  • MJPEG
  • MPEG-2
  • MPEG-4
  • PNG
  • Theora
  • VP8/VP9 (VPX)
  • WMV (Windows Media Video)
  • Prise en charge des encodeurs matériels NVENC, AMD, Intel
  • Prise en charge des encodeurs matériels iOS/macOS/Android

Traitement Vidéo

  • Vieillissement
  • Combinaison Alpha
  • Désentrelacement automatique
  • Bayer vers RGB
  • Incrustation chromatique
  • Démultiplexage Alpha Codec
  • Effets de couleur
  • Désentrelacement
  • Dés
  • Détection de contour
  • Fish Eye
  • Retourner/Pivoter
  • Gamma
  • Flou gaussien
  • Niveaux de gris
  • Superposition d'image
  • Superposition d'image Cairo
  • Entrelacement
  • Détecteur d'image clé
  • Processeur LUT
  • Miroir
  • Flou de mouvement
  • Écho de mouvement
  • Écho de zoom de mouvement
  • Animation optique N&B
  • Gestionnaire de superposition
  • Perspective
  • Pincement
  • Pseudo 3D
  • Superposition de code QR
  • Redimensionner
  • Captureur d'échantillons
  • Contour Sobel
  • Sphère
  • Carré
  • Étirement
  • Superposition de texte
  • Tunnel
  • Tourbillon
  • Balance vidéo
  • Convertisseur de format de pixel
  • Mixeur vidéo
  • Miroir déformé
  • Ondulation de l'eau
  • Boîte de zoom

Destinations de fichiers

  • ASF
  • AVI
  • DASH
  • HLS
  • HTTP MJPEG Live
  • MKV (Matroska)
  • MOV (QuickTime)
  • MP4
  • MPEG-PS
  • MPEG-TS
  • MXF
  • OGG
  • WAV
  • WebM

Streaming réseau

  • Facebook Live
  • HLS
  • NDI
  • RTMP
  • RTSP
  • Shoutcast
  • SRT
  • YouTube Live

Blackmagic Decklink

  • Destination Audio
  • Source Audio
  • Destination Vidéo
  • Source Vidéo

Visualiseurs Audio

  • Bumpscope
  • Corona
  • Infinite
  • Jakdaw
  • Jess
  • LV Analyzer
  • LV Scope
  • Oinksie
  • Spacescope
  • Spectrascope
  • Synaescope
  • Wavescope

Décodeurs Vidéo

  • Décodeur AV1
  • Décodeur H.264
  • Décodeur HEVC
  • Décodeur JPEG
  • Décodeur VP8
  • Décodeur VP9
  • Décodeurs accélérés NVIDIA, Intel et AMD
  • Décodeurs matériels Android
  • Décodeurs matériels iOS

Blocs Spéciaux

  • Détecteur de codes-barres
  • Processeur de données
  • Captureur d'échantillons de données
  • Horodatage de débogage
  • Déchiffreur
  • Chiffreur
  • File d'attente multiple
  • Rendu nul
  • File d'attente
  • Déchiffreur SRTP
  • Chiffreur SRTP
  • Tee (Séparateur)

Tarification

Choisissez entre un abonnement annuel ou une licence à vie

Licence Régulière

€500/ an
  • Mises à jour mineures et majeures gratuites pendant un an
  • Le SDK continue de fonctionner après la fin de l'abonnement
  • Support prioritaire
  • Renouvellement automatique annuel (annulable à tout moment)
  • Tous les 200+ blocs de traitement inclus
MEILLEURE VALEUR

Licence à Vie

€1,500/ unique
Acheter la Licence à Vie
  • Mises à jour illimitées pour toujours
  • Support prioritaire et correctifs
  • Paiement unique
  • Toutes les fonctionnalités futures incluses
  • Tous les 200+ blocs de traitement inclus

Gratuit pour une utilisation non commerciale. Veuillez nous contacter pour obtenir une licence gratuite.

Toutes les licences incluent des droits de distribution libres de droits.

Configuration Requise

Exigences minimales pour le développement et le déploiement sur les plateformes

Systèmes d'Exploitation
  • Windows 10 / 11 (32 bits et 64 bits)
  • Windows 8/8.1, Windows 7 SP1
  • Windows Server 2016 et ultérieur
  • macOS 12 ou ultérieur
  • Ubuntu 22.04 / 24.04
  • Android 8 et ultérieur
  • iOS 12 et ultérieur
.NET Framework
  • .NET Framework 4.6.1 ou ultérieur
  • .NET Core 3.1
  • .NET 5/6/7/8/9/10
Matériel
  • Minimum 2 Go de RAM (4 Go recommandés)
  • Processeur Intel Core i5 ou équivalent AMD
  • Prise en charge de l'accélération GPU facultative (NVIDIA/Intel/AMD)
Frameworks UI
  • WinForms
  • WPF
  • WinUI 3 pour Desktop
  • Avalonia
  • GTK#
  • MAUI
  • Xamarin.Android/iOS/Mac

Documentation et Ressources

Tout ce dont vous avez besoin pour commencer avec Media Blocks SDK

Prêt à Commencer ?

Téléchargez l'essai gratuit et commencez à construire votre pipeline multimédia dès aujourd'hui