Media Blocks SDK .Net

v15.9
Mit dem SDK können Sie Ihre Multimedia-Anwendung aus einzelnen Blöcken wie ein Backsteinhaus aufbauen. Um beispielsweise ein Video von einer Kamera aufzunehmen, fügen Sie den Block "Camera", den Block "H264 encoder" und den Block "MP4 sink" hinzu, um das Video in eine MP4-Datei aufzunehmen.


Unsere Software bietet eine unbegrenzte Nutzung ohne störende Bildschirme und gewährleistet eine nahtlose Erfahrung. Wir bieten einen 30-tägigen Testzeitraum, damit Sie alle alle Funktionen erkunden können, bevor Sie sich festlegen.

Mit einer regulären Lizenz erhalten Sie erhalten Sie für ein Jahr kostenlose Minor- und Major-Upgrades; nach diesem Zeitraum funktioniert das SDK weiter wie bisher.

Alternativ dazu bietet die Lifetime-Lizenz unbegrenzte Updates auf unbestimmte Zeit zur Verfügung. Zusätzlich, bieten wir vorrangigen Support und Fehlerbehebungen. Die reguläre Lizenz wird jährlich abgerechnet jährlich abgerechnet und automatisch verlängert, aber Sie können Ihr Abonnement Abonnement jederzeit kündigen.
Das SDK ist für die nicht-kommerzielle Nutzung kostenlos. Bitte kontaktieren Sie uns, um eine kostenlose Lizenz zu erhalten.
simple player diagram

// 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();
view raw media-player.cs hosted with ❤ by GitHub

EINFACHER SPIELER

Die einfache Player-Pipeline verwendet den UniversalSourceBlock zum Lesen und Dekodieren der Quelldatei, den VideoRendererBlock zur Anzeige von Video und den AudioRendererBlock zur Wiedergabe von Audio.

FORTGESCHRITTENER SPIELER

Die erweiterte Player-Pipeline umfasst den UniversalSourceBlock zur Dekodierung von Dateien oder Streams, Video- und Audio-Renderer sowie Blöcke zur Effektverarbeitung.
advanced player diagram

// 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();

camera preview 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();

KAMERA VORSCHAU

Die einfache Kamera-/Mikrofonvorschau-Pipeline enthält Gerätequellblöcke und Video-/Audio-Renderer-Blöcke.

Es werden die Standardgeräte verwendet.

RTSP VORSCHAU

Die RTSP-Vorschau-Pipeline, die den RTSP-Quellblock (mit den darin enthaltenen Decodern) sowie Video- und Audio-Renderer umfasst.
RTSP preview diagram

// 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();

capture with preview 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();

AUFNAHME MIT VORSCHAU

The capture pipeline has two tee blocks that are used to split video and audio streams, allowing video/audio preview along with video capture.

Die wichtigsten Funktionen von VisioForge Media Blocks SDK .Net sind:

  • Audio/Video-Vorschau
  • Video- und Audioerfassung in einer Vielzahl von Formaten
  • Frame-Erfassung in Bitmap-Klasse, BMP-, JPEG- und PNG-Dateien
  • Videoverarbeitung und Effekte (CPU/GPU)
  • Steuerung des Videoaufnahmegeräts
  • Netzwerk-Streaming
  • Bewegungserkennung
  • Barcode-Leser (QR-Code, UPC-A, UPC-E, EAN-8, EAN-13, Code 39, Code 93, Code 128, Codabar, ITF, RSS-14, Data Matrix, Aztec, PDF-417)
  • Unterstützung benutzerdefinierter Schnittstellen
  • Computer Vision API
  • PIP (Bild-im-Bild)
  • Bildschirmaufnahme/Fensteraufnahme
  • Gesichtserkennung und Objektverfolgung
  • Unterstützung der Multiplikation von Ausgabebildschirmen
  • Audioaufnahme von Lautsprechern
  • Unterstützung der Ein- und Ausgabe der Blackmagic Decklink-Karte
  • Unterstützung für das Lesen und Schreiben von Audio-/Videodatei-Tags
  • Unterstützung von FLIR/Teledyne-Kameras (USB3Vision/GigE)
  • Unterstützung von Basler Kameras (USB3Vision/GigE)

Audio-Encoder

  • AAC
  • FLAC
  • MP3
  • OPUS
  • Vorbis
  • WMA (Windows Media Audio)
  • Speex

Audioverarbeitung

  • Verstärken Sie
  • Audio-Mischpult
  • Audio-Sample-Grabber
  • Bilanz
  • Kompressor/Expander
  • Echo
  • Equalizer
  • Skala/Tempo
  • Audio-Lautstärke

Blackmagic Decklink

  • Audio-Senke
  • Audioquelle
  • Video-Spülbecken
  • Quelle: Video

Datei-Spülbecken

  • MP4
  • WebM
  • MOV
  • AVI
  • MPEG-TS
  • MKV
  • OGG

Netzwerk-Streaming

  • HLS
  • RTMP
  • RTSP
  • UDP

Videoverarbeitung

  • Farbeffekte
  • Deinterlace
  • Fischauge
  • Spiegeln/Drehen
  • Gamma
  • Gaußscher Weichzeichner
  • Bild-Overlay
  • Spiegel
  • Blickwinkel
  • Kneifen
  • Größe ändern
  • Drehen Sie
  • Probenehmer
  • Sphäre
  • Platz
  • Dehnen
  • Text-Overlay
  • Tunnel
  • Wirbel
  • Video-Balance
  • Videomischer
  • Wasserplätschern

Video-Encoder (CPU/GPU)

  • H264
  • H265/HEVC
  • VP8/VP9
  • WMV (Windows Media Video)
  • MJPEG
  • AV1

Quellen

  • Quelle der Datei
  • RTSP-Quelle
  • Quelle: Bildschirm
  • System-Videoquelle
  • System-Audioquelle
  • Virtuelle Videoquelle
  • Virtuelle Audioquelle

Besonderes

  • Null-Renderer
  • Tee
  • VU-Meter

Unterstützte Eingabegeräte:

  • DV- und HDV-MPEG-2-Camcorder
  • USB-Webkameras und andere Aufnahmegeräte (einschließlich 4K-Geräte)
  • PCI-Erfassungskarten
  • TV-Tuner (mit und ohne internen MPEG-Encoder)
  • JPEG/MJPEG, MPEG-4 und H264 HTTP/RTSP/RTMP IP-Kameras/Server, unterstützt HD-Format
  • ONVIF-IP-Kameras mit PTZ-Unterstützung
  • Blackmagic Decklink-Geräte
  • Audioaufnahmegeräte und Soundkarten
  • ASIO-Geräte

IDE

  • Visual Studio 2019 und höher: Visual C#, Visual C++, Visual Basic .NET
  • Visual Studio Code
  • JetBrains-Reiter
  • SDK kann mit anderen .Net-kompatiblen Anwendungen wie Microsoft Access, Word und Excel verwendet werden.

UI-Frameworks

  • WinForms
  • WPF
  • WinUI 3 for Desktop
  • Avalonia
  • GTK#
  • MAUI
  • Xamarin.Android
  • Xamarin.Mac
  • Xamarin.iOS

.Net-Versionen

  • .Net Framework 4.6.1 und höher
  • .Net Core 3.1
  • .Net 5 - .Net 9

Systemanforderungen

  • Windows 10 oder Windows 11
  • Ubuntu 22+
  • macOS 12+

Zielplattformen

  • Windows 11, Windows 10, Windows 8/8.1, Windows 7 SP1
  • Windows Server 2016 und höher
  • Android 8 und höher
  • Linux (Ubuntu)
  • macOS
  • iOS

Vertriebsrechte

Lizenzfreie Verbreitung.

Das SDK enthält GStreamer-Bibliotheken, die unter der LGPL v2.1 lizenziert sind.

logo
VisioForge © 2006 - 2025
discord