VisioForge

Media Blocks SDK .NET

Twórz potężne aplikacje multimedialne łatwo i elastycznie dzięki Media Blocks SDK .NET — modułowemu zestawowi narzędzi, który pozwala budować złożone przepływy pracy wideo jak wizualny konstruktor (kamera → kodek → wyjście). Obsługuje nagrywanie do MP4, MKV i AVI, a także przesyłanie strumieniowe przez HLS, RTMP i RTSP, oferując bogaty zestaw efektów, w tym korekcję kolorów, usuwanie przeplotu, znaki wodne, przechwytywanie ekranu i przetwarzanie dźwięku. Dzięki wbudowanemu widzeniu komputerowemu, rozpoznawaniu kodów QR, śledzeniu twarzy i pełnej obsłudze urządzeń Blackmagic i ONVIF, wnosi profesjonalne funkcje do każdego projektu. Pakiet SDK bezproblemowo współpracuje z WinForms, WPF, MAUI, Xamarin i Avalonia, ułatwiając integrację zaawansowanych możliwości multimedialnych z aplikacjami desktopowymi i mobilnymi.

Instalacja

Szybka instalacja za pomocą NuGet

Zainstaluj pakiet SDK bezpośrednio w swoim projekcie za pomocą konsoli menedżera pakietów:

Install-Package VisioForge.DotNet.MediaBlocks

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

Kluczowe korzyści

Architektura modułowa

Ponad 200 bloków przetwarzania, które łączą się jak klocki, tworząc niestandardowe potoki multimedialne

Wieloplatformowość

Działa na Windows, macOS, Linux, Android i iOS ze wszystkimi głównymi frameworkami UI .NET

Akceleracja sprzętowa

Kodowanie/dekodowanie akcelerowane przez GPU z obsługą NVIDIA, Intel i AMD dla maksymalnej wydajności

Przykłady potoków

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

PROSTY ODTWARZACZ

Potok prostego odtwarzacza wykorzystuje UniversalSourceBlock do odczytu i dekodowania pliku źródłowego, VideoRendererBlock do wyświetlania wideo i AudioRendererBlock do odtwarzania dźwięku.

Interaktywna wizualizacja potoku

Loading pipeline diagram...

ZAAWANSOWANY ODTWARZACZ

Potok zaawansowanego odtwarzacza zawiera UniversalSourceBlock do dekodowania plików lub strumieni, renderery wideo i audio oraz bloki przetwarzania efektów.

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

Potok zaawansowanego odtwarzacza z efektami

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

PODGLĄD KAMERY

Potok prostego podglądu kamery/mikrofonu zawiera bloki źródłowe urządzeń oraz bloki renderowania wideo/audio.

Zostaną użyte domyślne urządzenia.

Potok podglądu kamery

Loading pipeline diagram...

PODGLĄD RTSP

Potok podglądu RTSP, który zawiera blok źródłowy RTSP (z dekoderami wewnątrz), renderery wideo i 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();

Potok strumienia 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();

PRZECHWYTYWANIE Z PODGLĄDEM

Potok przechwytywania ma dwa bloki rozgałęziające (tee), które służą do rozdzielania strumieni wideo i audio, umożliwiając podgląd wideo/audio wraz z przechwytywaniem wideo.

Potok przechwytywania z podglądem

Loading pipeline diagram...

Główne funkcje VisioForge Media Blocks SDK .Net obejmują:

Podstawowe funkcje

  • Podgląd audio/wideo
  • Przechwytywanie wideo i audio do szerokiej gamy formatów
  • Przechwytywanie klatek do klasy Bitmap, plików BMP, JPEG i PNG
  • Przetwarzanie wideo i efekty (CPU/GPU)
  • Sterowanie urządzeniami do przechwytywania wideo
  • Strumieniowanie sieciowe
  • Wykrywanie ruchu
  • Obsługa niestandardowych interfejsów
  • API widzenia komputerowego
  • PIP (Obraz w obrazie)
  • Przechwytywanie ekranu/okna
  • Wykrywanie twarzy i śledzenie obiektów
  • Obsługa wielu ekranów wyjściowych
  • Przechwytywanie dźwięku z głośników
  • Obsługa odczytu i zapisu tagów plików audio/wideo

Obsługiwane urządzenia wejściowe

  • Kamery internetowe USB i urządzenia przechwytujące (w tym 4K)
  • Kamery/serwery IP JPEG/MJPEG, MPEG-4 i H.264 HTTP/RTSP/RTMP
  • Kamery DV i HDV MPEG-2
  • Karty przechwytujące PCI
  • Tunery TV (z/bez wewnętrznego enkodera MPEG)
  • Obsługa formatu HD dla kamer IP
  • Kamery IP ONVIF z obsługą PTZ
  • Urządzenia Blackmagic Decklink
  • Urządzenia do przechwytywania dźwięku i karty dźwiękowe
  • Urządzenia ASIO

Profesjonalny sprzęt

  • Obsługa wejścia/wyjścia Blackmagic Decklink
  • Kamery FLIR/Teledyne (USB3Vision/GigE)
  • Kamery Basler (USB3Vision/GigE)
  • Kamery DV i HDV MPEG-2
  • Karty przechwytujące PCI
  • Tunery TV (z/bez enkodera MPEG)
  • Kamery IP ONVIF z obsługą PTZ
  • Urządzenia ASIO

Źródła

  • Kamery Allied Vision
  • Animowany GIF
  • Kamery Basler (USB3Vision/GigE)
  • Karaoke CDG
  • Przełącznik awaryjny
  • GenICam (Kamery przemysłowe)
  • HTTP
  • HTTP MJPEG
  • Sekwencja obrazów
  • Plik lokalny
  • Bufor pamięci
  • NDI
  • PulseAudio
  • Kamera Raspberry Pi
  • RTMP
  • RTSP
  • RTSP RAW
  • Przechwytywanie ekranu
  • SRT
  • Dźwięk systemowy
  • Wideo systemowe
  • Sygnał testowy
  • UDP/RTP
  • URI (Plik/Sieć)

Przetwarzanie audio

  • Wzmocnienie
  • Balans
  • Konwerter formatu próbek
  • Normalizator obciążenia
  • Mikser
  • Resampler
  • Sample Grabber
  • Korektor znaczników czasu
  • Filtr pasmowo-zaporowy Czebyszewa
  • Limit Czebyszewa
  • Kompresor/Ekspander
  • Filtr Csound
  • Poziom EBU R128
  • Echo
  • Korektor (10-pasmowy)
  • Korektor (parametryczny)
  • Renderowanie HRTF
  • Karaoke
  • Usuwanie ciszy
  • Pogłos
  • Skala/Tempo
  • Głośność
  • Miernik VU
  • Szerokie stereo

Czytnik kodów kreskowych

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

Enkodery audio

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

Enkodery wideo (CPU/GPU)

  • AV1
  • DV
  • GIF
  • H.264
  • H.265/HEVC
  • MJPEG
  • MPEG-2
  • MPEG-4
  • PNG
  • Theora
  • VP8/VP9 (VPX)
  • WMV (Windows Media Video)
  • Obsługa enkoderów sprzętowych NVENC, AMD, Intel
  • Obsługa enkoderów sprzętowych iOS/macOS/Android

Przetwarzanie wideo

  • Starzenie
  • Łączenie alfa
  • Automatyczne usuwanie przeplotu
  • Bayer do RGB
  • Kluczowanie kolorem
  • Demultipleksowanie alfa kodeka
  • Efekty kolorystyczne
  • Usuwanie przeplotu
  • Kostka
  • Wykrywanie krawędzi
  • Rybie oko
  • Odbicie/Obrót
  • Gamma
  • Rozmycie Gaussa
  • Skala szarości
  • Nakładka obrazu
  • Nakładka obrazu Cairo
  • Przeplot
  • Wykrywacz klatek kluczowych
  • Procesor LUT
  • Lustro
  • Ruchome rozmycie
  • Ruchome echo
  • Ruchome echo powiększenia
  • Animacja optyczna czarno-biała
  • Menedżer nakładek
  • Perspektywa
  • Uszczypnięcie
  • Pseudo 3D
  • Nakładka kodu QR
  • Zmiana rozmiaru
  • Sample Grabber
  • Krawędź Sobela
  • Kula
  • Kwadrat
  • Rozciąganie
  • Nakładka tekstowa
  • Tunel
  • Skręt
  • Balans wideo
  • Konwerter formatu pikseli
  • Mikser wideo
  • Zniekształcone lustro
  • Fala wodna
  • Pudełko powiększenia

Zapis do plików

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

Strumieniowanie sieciowe

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

Blackmagic Decklink

  • Wyjście audio
  • Wejście audio
  • Wyjście wideo
  • Wejście wideo

Wizualizatory audio

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

Dekodery wideo

  • Dekoder AV1
  • Dekoder H.264
  • Dekoder HEVC
  • Dekoder JPEG
  • Dekoder VP8
  • Dekoder VP9
  • Akcelerowane dekodery NVIDIA, Intel i AMD
  • Sprzętowe dekodery Android
  • Sprzętowe dekodery iOS

Bloki specjalne

  • Wykrywacz kodów kreskowych
  • Przetwarzanie danych
  • Pobieranie próbek danych
  • Znacznik czasu debugowania
  • Deszyfrator
  • Szyfrator
  • Wielokolejka
  • Pusty renderer
  • Kolejka
  • Deszyfrator SRTP
  • Szyfrator SRTP
  • Tee (Rozdzielacz)

Cennik

Wybierz między subskrypcją roczną a licencją dożywotną

Regular License

€500/ rok
  • Darmowe drobne i główne aktualizacje przez rok
  • SDK działa po zakończeniu subskrypcji
  • Priorytetowe wsparcie
  • Automatyczne odnawianie co rok (można anulować w dowolnym momencie)
  • Wszystkie ponad 200 bloków przetwarzania w zestawie
NAJLEPSZA WARTOŚĆ

Lifetime License

€1,500/ jednorazowo
Kup licencję dożywotnią
  • Nieograniczone aktualizacje na zawsze
  • Priorytetowe wsparcie i poprawki
  • Płatność jednorazowa
  • Wszystkie przyszłe funkcje w zestawie
  • Wszystkie ponad 200 bloków przetwarzania w zestawie

Bezpłatne do użytku niekomercyjnego. Skontaktuj się z nami, aby uzyskać bezpłatną licencję.

Wszystkie licencje obejmują prawa do dystrybucji bez opłat licencyjnych.

Wymagania systemowe

Minimalne wymagania dotyczące rozwoju i wdrażania na różnych platformach

Systemy operacyjne
  • Windows 10 / 11 (32-bitowy i 64-bitowy)
  • Windows 8/8.1, Windows 7 SP1
  • Windows Server 2016 i nowsze
  • macOS 12 lub nowszy
  • Ubuntu 22.04 / 24.04
  • Android 8 i nowsze
  • iOS 12 i nowsze
.NET Framework
  • .NET Framework 4.6.1 lub nowszy
  • .NET Core 3.1
  • .NET 5/6/7/8/9/10
Sprzęt
  • Minimum 2 GB RAM (zalecane 4 GB)
  • Procesor Intel Core i5 lub odpowiednik AMD
  • Opcjonalna obsługa akceleracji GPU (NVIDIA/Intel/AMD)
Frameworki UI
  • WinForms
  • WPF
  • WinUI 3 dla Desktop
  • Avalonia
  • GTK#
  • MAUI
  • Xamarin.Android/iOS/Mac

Dokumentacja i zasoby

Wszystko, czego potrzebujesz, aby zacząć korzystać z Media Blocks SDK

Gotowy, aby zacząć?

Pobierz darmową wersję próbną i zacznij budować swój potok multimedialny już dziś