Media Blocks SDK .Net

v15.9
L'SDK consente di costruire la propria applicazione multimediale partendo da singoli blocchi, come una casa di mattoni. Ad esempio, per registrare un video da una telecamera, si aggiunge il blocco "Camera", il blocco "H264 encoder" e il blocco "MP4 sink" per registrare il video in un file MP4.


Il nostro software offre un utilizzo illimitato, senza nag-screen, garantendo un'esperienza esperienza senza soluzione di continuità. Forniamo un periodo di prova di 30 giorni, in modo che possiate esplorare tutte le funzionalità prima di tutte le funzionalità prima di impegnarsi.

Con una licenza regolare, l'utente riceve aggiornamenti minori e maggiori gratuiti per un anno; dopo tale periodo, l'SDK continuerà a funzionare come prima.

In alternativa, la licenza a vita fornisce aggiornamenti illimitati a tempo indeterminato. Inoltre, offriamo assistenza e correzioni prioritarie. La licenza regolare viene fatturata annualmente e si rinnova automaticamente ogni anno, ma è possibile annullare la abbonamento in qualsiasi momento.
L'SDK è gratuito per uso non commerciale. Contattateci per ottenere una licenza gratuita.
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

GIOCATORE SEMPLICE

La pipeline del lettore semplice utilizza il blocco UniversalSourceBlock per leggere e decodificare il file sorgente, il blocco VideoRendererBlock per visualizzare il video e il blocco AudioRendererBlock per riprodurre l'audio.

GIOCATORE AVANZATO

La pipeline avanzata del lettore comprende l'UniversalSourceBlock per la decodifica di file o flussi, i rendering video e audio e i blocchi di elaborazione degli effetti.
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();

ANTEPRIMA DELLA TELECAMERA

La pipeline di anteprima semplice della telecamera/microfono contiene blocchi di origine del dispositivo e blocchi di rendering video/audio.

Verranno utilizzati i dispositivi predefiniti.

ANTEPRIMA RTSP

La pipeline di anteprima RTSP, che comprende il blocco sorgente RTSP (con i decodificatori al suo interno), i rendering video e audio.
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();

ACQUISIZIONE CON ANTEPRIMA

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

Le principali caratteristiche di VisioForge Media Blocks SDK .Net includono:

  • Anteprima audio/video
  • Acquisizione di video e audio in un'ampia gamma di formati
  • Acquisizione di fotogrammi in file di classe Bitmap, BMP, JPEG e PNG
  • Elaborazione video ed effetti (CPU/GPU)
  • Video capture controllo del dispositivo
  • Streaming di rete
  • Rilevamento del movimento
  • Lettore di codici a barre (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)
  • Supporto di interfacce personalizzate
  • API di visione artificiale
  • PIP (Immagine nell'immagine)
  • Cattura schermo/cattura finestra
  • Rilevamento dei volti e tracciamento degli oggetti
  • Supporto di schermi di uscita multipli
  • Acquisizione audio dagli altoparlanti
  • Supporto di ingressi e uscite della scheda Blackmagic Decklink
  • Supporto per la lettura e la scrittura di tag di file audio/video
  • Supporto delle telecamere FLIR/Teledyne (USB3Vision/GigE)
  • Supporto delle telecamere Basler (USB3Vision/GigE)

Codificatori audio

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

Elaborazione audio

  • Amplificare
  • Mixer audio
  • Acquisizione di campioni audio
  • Equilibrio
  • Compressore/Espansore
  • Eco
  • Equalizzatore
  • Scala/Tempo
  • Volume dell'audio

Blackmagic Decklink

  • Lavello audio
  • Fonte audio
  • Lavello video
  • Fonte video

Lavandini per file

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

Streaming di rete

  • HLS
  • RTMP
  • RTSP
  • UDP

Elaborazione video

  • Effetti cromatici
  • Deinterlacciamento
  • Occhio di pesce
  • Capovolgere/Rotare
  • Gamma
  • Sfocatura gaussiana
  • Sovrapposizione di immagini
  • Specchio
  • Prospettiva
  • Pizzico
  • Ridimensionamento
  • Ruotare
  • Acquisizione di campioni
  • Sfera
  • Quadrato
  • Stretch
  • Sovrapposizione di testo
  • Tunnel
  • Girotondo
  • Equilibrio video
  • Mixer video
  • Ondulazione dell'acqua

Codificatori video (CPU/GPU)

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

Fonti

  • Fonte del file
  • Fonte RTSP
  • Fonte dello schermo
  • Sorgente video del sistema
  • Sorgente audio del sistema
  • Sorgente video virtuale
  • Sorgente audio virtuale

Speciale

  • Renderer nullo
  • Tee
  • Misuratore VU

Dispositivi di input supportati:

  • Videocamere DV e HDV MPEG-2
  • Webcam USB e altri dispositivi di acquisizione (compresi i dispositivi 4K)
  • Schede di acquisizione PCI
  • Sintonizzatori TV (con e senza codificatore MPEG interno)
  • JPEG/MJPEG, MPEG-4 e H.264 Telecamere/server IP HTTP/RTSP/RTMP, formato HD supportato
  • Telecamere IP ONVIF con supporto PTZ
  • Dispositivi Blackmagic Decklink
  • Dispositivi di acquisizione audio e schede audio
  • Dispositivi ASIO

IDE

  • Visual Studio 2019 e successivi: Visual C#, Visual C++, Visual Basic .NET
  • Visual Studio Code
  • Cavaliere JetBrains
  • L'SDK può essere utilizzato con altre applicazioni compatibili con .Net, come Microsoft Access, Word, Excel.

Quadri UI

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

Versioni .Net

  • .Net Framework 4.6.1 e versioni successive
  • .Net Core 3.1
  • .Net 5 - .Net 9

Requisiti di sistema

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

Piattaforme target

  • Windows 11, Windows 10, Windows 8/8.1, Windows 7 SP1
  • Windows Server 2016 e successivi
  • Android 8 e successivi
  • Linux (Ubuntu)
  • macOS
  • iOS

Diritti di distribuzione

Distribuzione gratuita.

L'SDK contiene librerie GStreamer con licenza LGPL v2.1.

logo
VisioForge © 2006 - 2025
discord