Aller au contenu

Guide de déploiement Ubuntu pour les applications SDK VisioForge

Video Capture SDK .NET Video Edit SDK .NET Media Player SDK .NET Media Blocks SDK .NET

Introduction

Le déploiement d'applications .NET avec les SDK VisioForge sur Ubuntu Linux offre de nombreux avantages, notamment la compatibilité multiplateforme, l'accès à du matériel spécifique à Linux et la possibilité d'exécuter vos applications multimédias dans des environnements allant de l'infrastructure serveur aux appareils en périphérie. Ce guide complet vous accompagnera tout au long du processus de configuration de votre environnement Ubuntu, d'installation des dépendances nécessaires et de déploiement de votre application .NET propulsée par VisioForge.

La famille de SDK VisioForge fonctionne sur Ubuntu et d'autres distributions Linux qui prennent en charge les bibliothèques GStreamer. Les plateformes prises en charge incluent également les appareils Nvidia Jetson et Raspberry Pi, ce qui le rend parfaitement adapté à un large éventail d'applications, des logiciels multimédias de bureau aux solutions IoT.

Configuration requise

Avant de déployer votre application, assurez-vous que votre environnement Ubuntu satisfait à ces exigences minimales :

  • Ubuntu 20.04 LTS ou ultérieur (22.04 LTS et ultérieur recommandés)
  • Runtime .NET 7.0 ou ultérieur
  • Au moins 4 Go de RAM (8 Go recommandés pour le traitement vidéo)
  • Architecture x86_64 ou ARM64
  • Connexion Internet pour l'installation des paquets

Installation et configuration

Installation de .NET

Téléchargez le dernier paquet d'installation .NET depuis le site Microsoft et suivez les instructions d'installation.

Installation de GStreamer

GStreamer constitue l'épine dorsale multimédia des SDK VisioForge sur les plateformes Linux. Il fournit des fonctionnalités essentielles pour la capture, le traitement et la lecture audio et vidéo.

Paquets GStreamer requis

Installez les paquets GStreamer suivants à l'aide d'apt-get. Nous exigeons la v1.22.0 ou ultérieure, mais la v1.24.0+ est fortement recommandée pour accéder aux dernières fonctionnalités et optimisations :

  • gstreamer1.0-plugins-base : plugins de base essentiels
  • gstreamer1.0-plugins-good : plugins de haute qualité, bien testés
  • gstreamer1.0-plugins-bad : plugins plus récents de qualité variable
  • gstreamer1.0-alsa : prise en charge audio ALSA
  • gstreamer1.0-gl : prise en charge du rendu OpenGL
  • gstreamer1.0-pulseaudio : intégration PulseAudio
  • libges-1.0-0 : GStreamer Editing Services
  • gstreamer1.0-libav : intégration FFMPEG (FACULTATIF mais recommandée pour une prise en charge étendue des formats)

Script d'installation complet

Les commandes suivantes mettront à jour vos dépôts de paquets et installeront tous les composants GStreamer requis :

sudo apt update
sudo apt install gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-pulseaudio gstreamer1.0-libav libges-1.0-0

Exigences supplémentaires pour Raspberry Pi

Pour Raspberry Pi, vous devez en outre installer les paquets suivants :

sudo apt install gstreamer1.0-libcamera

Vérification de l'installation de GStreamer

Après installation, vérifiez votre configuration GStreamer en exécutant :

gst-inspect-1.0 --version

Cette commande doit afficher la version de GStreamer installée. Assurez-vous qu'elle satisfait à l'exigence minimale (1.22.0+) ou qu'elle affiche idéalement 1.24.0 ou une version plus récente.

Paquets NuGet requis

Lors du déploiement de votre application .NET sur Ubuntu, vous devez inclure des paquets NuGet spécifiques à la plateforme qui fournissent les bibliothèques natives et les bindings nécessaires.

Paquet Linux principal supplémentaire

Le paquet VisioForge.CrossPlatform.Core.Linux.x64 contient les bibliothèques natives et les bindings essentiels pour la plateforme Linux .NET. Ce paquet est obligatoire pour tous les déploiements de SDK VisioForge sur Ubuntu.

Vision par ordinateur avec OpenCV

Pour les blocs OpenCV (VisioForge.Core.MediaBlocks.OpenCV, dont VideoStabilizationBlock), ajoutez aussi le paquet correspondant à votre architecture :

Le paquet copie à côté de votre application un plugin GStreamer dans lequel OpenCV est lié, ainsi que les fichiers de cascade Haar que CVFaceDetectBlock, CVFaceBlurBlock et CVHandDetectBlock chargent par défaut ; le SDK charge le plugin au démarrage. Il fonctionne avec le GStreamer 1.22 ou ultérieur de la distribution : Debian 12, Ubuntu 24.04 et versions ultérieures. Ubuntu 22.04 fournit GStreamer 1.20 et n'est pas pris en charge pour ces blocs. N'utilisez pas le paquet gstreamer1.0-opencv de la distribution à sa place : il ne contient pas vfdeshake, donc VideoStabilizationBlock reste indisponible, et ses autres éléments n'ont pas les corrections du SDK. S'il est tout de même installé, le SDK utilise les éléments de ce paquet à sa place uniquement tant que rien ne charge ce plugin avant l'initialisation du SDK : les deux plugins définissent les mêmes types d'éléments, et celui qui est chargé en premier l'emporte. Ne le chargez pas vous-même (par exemple avec Gst.Plugin.LoadByName("opencv")) ; le désinstaller (sudo apt remove gstreamer1.0-opencv) écarte le conflit.

Environnement de développement

Vous pouvez utiliser Rider pour développer votre projet sous Linux. Consultez la page d'installation de Rider pour plus d'informations.

Déploiement de l'application

Suivez ces étapes pour déployer votre application sur Ubuntu :

Publication de votre application

Pour créer un déploiement autonome qui inclut toutes les dépendances du runtime .NET :

dotnet publish -c Release -r linux-x64 --self-contained true

Pour des déploiements plus légers lorsque la machine cible a déjà .NET installé :

dotnet publish -c Release -r linux-x64 --self-contained false

Structure de déploiement

Votre dossier de déploiement doit contenir :

  • L'exécutable de votre application
  • Les DLL de l'application
  • Les assemblies du SDK VisioForge
  • Les bibliothèques natives Linux issues des paquets NuGet VisioForge

Définition des permissions d'exécution

Assurez-vous que l'exécutable de votre application dispose des permissions appropriées :

chmod +x ./YourApplicationName

Considérations matérielles

Prise en charge des caméras

Ubuntu prend en charge divers types de caméras :

  • Webcams USB : la plupart des webcams USB fonctionnent dès le départ
  • Caméras IP : prises en charge via les flux RTSP et HTTP
  • Caméras professionnelles : de nombreuses caméras professionnelles disposant de pilotes Linux sont prises en charge
  • Périphériques virtuels : v4l2loopback peut être utilisé pour créer une caméra virtuelle

Pour lister les caméras disponibles :

v4l2-ctl --list-devices

Périphériques audio

La capture et la lecture audio sont prises en charge via :

  • ALSA (Advanced Linux Sound Architecture)
  • PulseAudio

Pour lister les périphériques audio disponibles :

arecord -L  # Périphériques d'enregistrement
aplay -L    # Périphériques de lecture

Exécution sous WSL (WSLg)

WSLg est pratique pour le développement, et tout fonctionne de la même manière que sur une installation native — sauf l'aperçu vidéo. C'est la seule exception : lorsque le contrôle VideoView crée sa fenêtre enfant native (HWND sous Windows, X11/XEmbed sous Linux), la pile de fenêtrage de WSLg échoue à l'initialiser et l'application se ferme dès l'arrivée de la première image — typiquement avec des erreurs Mesa telles que ZINK: failed to choose pdev ou failed to create dri2 screen dans la console. C'est une limite de WSLg, pas un défaut de l'application ni du SDK.

Pour développer sous WSL, basculez le VideoView en rendu logiciel avant de démarrer le pipeline — la vidéo se dessine dans l'arbre visuel d'Avalonia, aucune fenêtre enfant native n'est créée et les aperçus fonctionnent sous WSLg :

videoView.SetNativeRendering(false);

Le mode logiciel coûte une copie CPU par image et est destiné au développement et aux scénarios de superposition ; sur une installation Ubuntu native, l'intégration native par défaut reste la voie recommandée. Voir Superposer des contrôles Avalonia sur la vidéo pour plus de détails.

Dépannage

Problèmes de permissions

Les problèmes d'accès à la caméra ou aux périphériques audio peuvent souvent être résolus en ajoutant votre utilisateur aux groupes appropriés :

sudo usermod -a -G video,audio $USER

N'oubliez pas de vous déconnecter puis de vous reconnecter pour que les modifications de groupe prennent effet.

Optimisation des performances

Pour des performances optimales sous Ubuntu :

  • Utilisez la dernière version de GStreamer (1.24.0+)
  • Activez l'accélération matérielle lorsqu'elle est disponible
  • Pour les GPU NVIDIA, installez les paquets CUDA et nvcodec appropriés
  • Ajustez la priorité du processus à l'aide de nice pour les applications gourmandes en ressources

Conclusion

Le déploiement d'applications SDK VisioForge sur Ubuntu fournit un environnement puissant et flexible pour les applications multimédias. En suivant ce guide, vous pouvez vous assurer que votre application .NET tire pleinement parti des capacités de l'écosystème SDK VisioForge sur les plateformes Linux.

Pour des scénarios de déploiement spécifiques ou une assistance au dépannage, consultez la documentation complète disponible sur le site VisioForge ou contactez notre équipe de support technique.


Visitez notre page GitHub pour obtenir plus d'exemples de code.