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.MediaBlocksOr 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
- 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
Lifetime License
- 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 |
|
| .NET Framework |
|
| Sprzęt |
|
| Frameworki UI |
|
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ś
