J'ai essayé de créer un environnement où vous pouvez avoir une réunion Zoom amusante avec Linux (Ubuntu) + Zoom + OBS Studio + effets sonores

Ce que je voulais faire

J'ai essayé de créer un environnement dans lequel vous pouvez faire ce qui suit afin que vous puissiez avoir une réunion Zoom amusante avec le télétravail à domicile.

--Construction d'un environnement de réunion Zoom sur Linux (Ubuntu)

Tout ce dont vous avez besoin est une caméra virtuelle pour Zoom, OBS Studio, OBS Studio et une application Web pour créer des effets sonores. Aucun matériel supplémentaire tel qu'un mélangeur n'est requis autre que la webcam.

[Supplément] Dans mon environnement, j'ai arrêté de créer des microphones virtuels dans la seconde moitié. En effet, l'écho n'a pas pu être complètement effacé à la destination.

Installer Zoom

  1. Télécharger le zoom

Accédez à https://zoom.us/download. dl.png

  1. Installez Zoom

Lorsque le téléchargement est terminé, le message «Cliquez pour installer Zoom» apparaîtra, alors cliquez dessus. inst.png

  1. Exécutez le programme d'installation

Le programme d'installation démarre, alors cliquez sur "Installer". inst2.png

  1. Installation terminée Si vous voyez l'icône Zoom bleue, l'installation est terminée. icon.png

Installez OBS Studio

Vous pouvez l'installer avec la commande apt en extrayant le référentiel. Puisque mon environnement est 18.04, ignorez l'installation de FFmpeg et exécutez la commande suivante. Pour les autres versions et détails, veuillez vous référer aux références suivantes.

sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt update
sudo apt install obs-studio

Référence: instructions d'installation de projet OBS

Installation de la caméra virtuelle

J'ai fait référence à l'article sur le site suivant ici, et à quelques exceptions près, j'ai pu l'introduire avec succès si je le faisais de cette façon. Il est expliqué en détail avec un accrochage d'écran, il vaut donc mieux voir ici. Article original: [Day of Speed] Obs-v4l2sink est utilisé pour diffuser la vidéo synthétisée par OBS Studio sur Linux vers Skype et Zoom Voici les commandes lorsqu'elles sont installées dans mon environnement.

  1. Installez v4l2loopback
sudo apt install v4l2loopback-dkms v4l2loopback-utils
  1. Chargement de v4l2loopback
sudo modprobe v4l2loopback devices=1 video_nr=10 card_label="OBS Cam" exclusive_caps=1
  1. Téléchargez le plug-in obs-v4l2sink Téléchargez le package obs-v4l2sink.deb à partir de ce qui suit.

https://github.com/CatxFish/obs-v4l2sink/releases

  1. Installez le plug-in obs-v4l2sink Accédez au répertoire téléchargé et installez avec la commande suivante.
sudo apt install ./obs-v4l2sink.deb
  1. Créer un lien symbolique pour le plug-in obs-v4l2sink La destination d'installation et la destination de référence d'OBS Studio étant différentes, il est nécessaire de créer un lien symbolique avec la commande suivante (voir l'article d'origine).
cd /usr/lib/x86_64-linux-gnu/obs-plugins
sudo ln -s /usr/lib/obs-plugins/v4l2sink.so 
  1. Paramètres du côté OBS Studio

Il est nécessaire de cliquer sur «Paramètres» dans «Contrôle» en bas à droite de l'écran d'OBS Studio, sélectionnez «Vidéo» à gauche de la boîte de dialogue qui apparaît, et faites correspondre la résolution de base et la résolution de la caméra. Veuillez vous référer à l'article original pour une explication détaillée avec un accrochage d'écran.

  1. Activer la caméra virtuelle

Active la caméra virtuelle, c'est-à-dire vous permet de sélectionner la caméra virtuelle comme caméra à partir de Zoom. Si les commandes et les paramètres ci-dessus réussissent, * v4l2sink * devrait apparaître dans le menu "Outils" d'OBS Studio, alors cliquez dessus.

obsmenu.png

La boîte de dialogue suivante apparaîtra.

v4l2sink_dlg.png

Appuyez sur "Démarrer" pour activer la caméra virtuelle. Si vous cochez "Démarrage automatique", la caméra virtuelle sera automatiquement activée au démarrage d'OBS Studio, même si vous ne la définissez pas à chaque fois.

Cette fois, sélectionnez la caméra virtuelle comme caméra du côté Zoom. Une fois la réunion Zoom commencée, cliquez sur la flèche vers le haut à côté de * Démarrer la vidéo * en bas à gauche de l'écran de la réunion et vous devriez voir * OBS Cam * dans vos choix de caméra, sélectionnez-la. Le nom de la caméra virtuelle sera celui spécifié par l'option * card_label = "OBS Cam" * donnée lors du chargement de v4l2loopback ci-dessus.

obscam.png

Persistance de la caméra virtuelle

La caméra virtuelle peut être utilisée ci-dessus, mais le module n'est pas automatiquement chargé lorsque le système d'exploitation est redémarré, vous devez donc entrer une commande à chaque fois. Par conséquent, rendez le chargement du module persistant. J'ai utilisé /etc/modules-load.d, mais si vous êtes familier avec Linux lui-même, il y a peut-être une meilleure façon de le faire.

  1. Créez un fichier de configuration dans /etc/modules-load.d

Si vous créez un fichier de configuration dans modules-load.d, le module de noyau spécifié sera chargé au démarrage. Dans mon cas, j'ai créé un nouveau fichier appelé obs.conf et l'ai mis dans /etc/modules-load.d comme suit.

/etc/modules-load.d/obs.conf


v4l2loopback

Créez-le en tant que super utilisateur par sudo.

  1. Créez un fichier de configuration dans /etc/modprobe.d

Afin de passer les options qui étaient attachées lors du chargement du module du noyau avec * modprobe * à partir de la ligne de commande au moment du chargement au démarrage, décrivez les options dans /etc/modprobe.d. Dans mon cas, j'ai créé un nouveau fichier appelé obs_opt.conf et l'ai placé dans /etc/modprobe.d comme suit.

/etc/modprobe.d/obs_opt.conf


options v4l2loopback devices=1 video_nr=10 card_label="OBS Cam" exclusive_caps=1

L'ordre dans la ligne est * options *, ce qui signifie l'ajout d'options, suivi du nom du module auquel cette option est attachée, et de l'option à ajouter après cela.

Créez-le en tant que super utilisateur par sudo.

Créez un microphone virtuel pour lire des effets sonores et de la musique

Comme OBS Studio est équipé d'un mélangeur audio, il est possible de superposer la musique lue sur le PC sur l'audio du microphone et de la diffuser. Cependant, cela est efficace lors de la diffusion depuis OBS Studio sur YouTube, etc., mais le son de la table de mixage ne passe pas vers Zoom même s'il est projeté sur Zoom avec une caméra virtuelle. Ce serait bien d'avoir un plug-in de diffusion virtuelle, mais malheureusement je ne l'ai pas trouvé.

À propos, si vous souhaitez couvrir le son sur le PC tout en utilisant l'écran de partage, vous pouvez le faire sans microphone virtuel (décrit plus loin). Cette section décrit les paramètres requis pour couvrir la voix envoyée en tant que participant à la réunion.

Ici, un microphone virtuel est créé et le son de lecture sur le PC et le son du microphone sont mixés et lus. Concernant la création du microphone virtuel, je me suis référé au post suivant (ou plutôt, c'est tout).

Article original: Redirection du récepteur Pulseaudio vers une source virtuelle La dernière réponse de l'article est la méthode de création elle-même. La commande * pactl * est utilisée dans l'article, mais elle semble maintenant avoir été remplacée par * pacmd *.

Ceci est réalisé en créant un microphone virtuel à l'aide de Pulse Audio, qui est la couche supérieure du mécanisme de gestion du son de Linux, et en définissant le son joué par l'application et le son du microphone pour y circuler.

  1. Générez un puits pour mélanger le son du microphone et le son de lecture sur le PC

Générez un Sink avec le nom mix-for-virtual-mic.

pacmd load-module module-null-sink sink_name=mix-for-virtual-mic sink_properties=device.description=Mix-for-Virtual-Microphone
  1. Générez un puits qui mélange le son de lecture sur le PC et le son du microphone
pacmd load-module module-combine-sink sink_name=virtual-microphone-and-speakers slaves=mix-for-virtual-mic,alsa_output.pci-0000_00_1b.0.analog-stereo
  1. Revenez sur Sink pour mixer l'audio du micro
pacmd load-module module-loopback source=alsa_input.pci-0000_00_1b.0.analog-stereo sink=mix-for-virtual-mic latency_msec=20
  1. Annulation d'écho factice Génération de puits

Puisque la sortie de l'annuleur d'écho n'est pas utilisée, préparez un puits nul.

pacmd load-module module-null-sink sink_name=silence sink_properties=device.description=silent-sink-for-echo-cancel
  1. Créez un microphone virtuel

Créez un microphone virtuel (Virtual-Microphone) à l'aide du module d'annulation d'écho. Utilisez ceci à partir de Zoom.

pacmd load-module module-echo-cancel sink_name=virtual-microphone source_name=virtual-microphone source_master=mix-for-virtual-mic.monitor sink_master=silence aec_method=null source_properties=device.description=Virtual-Microphone sink_properties=device.description=Virtual-Microphone
  1. Paramètres de zoom

S'il n'y a pas d'erreurs lors de l'exécution de chaque commande jusqu'à présent, le paramétrage est réussi. Chaque évier que vous créez sera visible dans Zoom. Du côté Zoom, sélectionnez le microphone et le haut-parleur comme suit.

mix.png

Désormais, par exemple, si vous écoutez de la musique sur votre PC et parlez avec un microphone, la musique et votre voix atteindront les participants à la réunion Zoom.

Persistance des microphones virtuels

Vous pouvez utiliser le microphone virtuel ci-dessus, mais comme avec la caméra virtuelle, il disparaîtra lorsque vous redémarrerez le système d'exploitation, alors rendez-le permanent.

Tous les paramètres jusqu'à ce point sont exécutés sur PulseAudio, donc si vous les écrivez dans le script de démarrage PulseAudio, Sink démarrera automatiquement au démarrage du système d'exploitation. Le script de démarrage peut être l'un des suivants: J'ai fait les réglages du système.

Lorsque vous ouvrez /etc/pulse/default.pa, divers paramètres sont déjà inclus, alors ajoutez ce qui suit à la toute fin

/etc/pulse/default.Ajout à pa


load-module module-null-sink sink_name=mix-for-virtual-mic sink_properties=device.description=Mix-for-Virtual-Microphone
load-module module-combine-sink sink_name=virtual-microphone-and-speakers slaves=mix-for-virtual-mic,alsa_output.pci-0000_00_1b.0.analog-stereo
load-module module-loopback source=alsa_input.pci-0000_00_1b.0.analog-stereo sink=mix-for-virtual-mic latency_msec=20
load-module module-null-sink sink_name=silence sink_properties=device.description=silent-sink-for-echo-cancel
load-module module-echo-cancel sink_name=virtual-microphone source_name=virtual-microphone source_master=mix-for-virtual-mic.monitor sink_master=silence aec_method=null source_properties=device.description=Virtual-Microphone sink_properties=device.description=Virtual-Microphone

Jouer des effets sonores

Vous pouvez télécharger un son gratuit approprié et le lire sur le lecteur, mais j'ai une application Web utile, donc je l'utilise. Si vous avez tout cela, vous n'aurez pas d'ennuis. Je suis très reconnaissant de l'utiliser.

Sound effect lab pon out https://soundeffect-lab.info/pon/app.html pon.png

[Supplément] Partagez la scène OBS Studio avec Zoom et partagez l'audio sur votre PC.

Il peut y avoir d'autres moyens, mais la distribution des scènes OBS Studio avec une caméra virtuelle n'apparaît pas dans le partage d'écran tel quel, j'ai donc essayé la méthode suivante.

  1. Affichage à l'écran avec le projecteur de fenêtre de la scène d'OBS Studio

Sélectionnez la scène que vous souhaitez partager à partir des scènes OBS Studio, cliquez avec le bouton droit et sélectionnez le projecteur de fenêtre.

winprj.png

Le résultat combiné de la scène s'ouvrira alors sous forme de fenêtre.

  1. Partagez le projecteur de fenêtre en tant que partage d'application sur Partager l'écran

Si vous sélectionnez Partager l'écran, une boîte de dialogue apparaîtra, alors partagez le projecteur de fenêtre que vous venez d'ouvrir.

sharescreen.png

À ce stade, si vous cochez Partager le son de l'ordinateur en bas à gauche de la boîte de dialogue, vous pouvez lire des effets sonores, de la musique, etc. sur Zoom (même si c'était une fonction uniquement pour la version Windows jusqu'à la version précédente de Zoom). , Maintenant, il est également disponible en version Linux).

Recommended Posts

J'ai essayé de créer un environnement où vous pouvez avoir une réunion Zoom amusante avec Linux (Ubuntu) + Zoom + OBS Studio + effets sonores
J'ai essayé de créer un environnement avec WSL + Ubuntu + VS Code dans un environnement Windows
J'ai essayé de créer un environnement de MkDocs sur Amazon Linux
J'ai essayé de créer un environnement Ubuntu 20.04 LTS + ROS2 avec Raspberry Pi 4
Quand j'ai essayé de créer un environnement virtuel avec Python, cela n'a pas fonctionné
J'ai essayé de créer un environnement à vérifier régulièrement en utilisant Selenium avec AWS Fargate
J'ai essayé de créer un environnement d'apprentissage amélioré pour Othello avec Open AI gym
Vous pouvez boire Zoom! !! J'ai essayé de créer un jeu de devinettes de thème coopératif à un seul style avec Flask + Heroku
J'ai essayé de créer automatiquement un rapport avec la chaîne de Markov
J'ai essayé de créer un article dans Wiki.js avec SQL Alchemy
J'ai trouvé un moyen de créer un modèle 3D à partir de photos Partie 01 Créer un environnement
J'ai essayé de créer un environnement serveur qui fonctionne sous Windows 10
Essayez de créer un environnement python avec Visual Studio Code et WSL
J'ai essayé de créer une liste de nombres premiers avec python
J'ai fait un tampon LINE où vous pouvez étudier les commandes Linux
J'ai essayé de créer des taureaux et des vaches avec un programme shell
J'ai essayé de créer un programme qui convertit les nombres hexadécimaux en nombres décimaux avec python
J'ai essayé de créer un plug-in avec HULFT IoT Edge Streaming [Development] (2/3)
J'ai essayé de créer un plug-in avec HULFT IoT Edge Streaming [Execution] (3/3)
[Outlook] J'ai essayé de créer automatiquement un e-mail de rapport quotidien avec Python
J'ai essayé de créer un plug-in avec HULFT IoT Edge Streaming [Setup] (1/3)
J'ai essayé de créer un environnement de développement Mac Python avec pythonz + direnv
Je souhaite créer un profil utilisateur Ubuntu Chrome avec Colab uniquement
J'ai essayé de créer un linebot (implémentation)
J'ai essayé de créer un linebot (préparation)
J'ai essayé de créer une classe qui peut facilement sérialiser Json en Python
J'ai essayé de créer facilement un système de présence entièrement automatique avec Selenium + Python
[Azure] J'ai essayé de créer une machine virtuelle Linux avec Azure de Microsoft Learn
J'ai essayé d'extraire le dessin au trait de l'image avec Deep Learning
J'ai essayé de créer un bouton pour Slack avec Raspeye + Tact Switch
J'ai essayé de créer un modèle avec l'exemple d'Amazon SageMaker Autopilot
J'ai essayé de créer facilement une image 3D de haute précision avec une seule photo [1]. (La profondeur peut maintenant être modifiée en PNG.)
Vous pouvez facilement créer une interface graphique même avec Python
J'ai essayé de détecter un objet avec M2Det!
J'ai essayé d'utiliser Linux avec Discord Bot
J'ai essayé de faire une simulation de séparation de source sonore en temps réel avec l'apprentissage automatique Python
Comment mettre Pyenv sur Amazon Linux et Ubuntu pour créer un environnement Python 3.6.0
[Python] J'ai essayé de créer automatiquement un rapport quotidien de YWT avec la messagerie Outlook
J'ai essayé de créer une classe pour rechercher des fichiers avec la méthode Glob de Python dans VBA
J'ai essayé de créer un cadre de données pandas en grattant les informations de rappel d'aliments avec Python
J'ai essayé de créer un environnement d'apprentissage automatique avec Python (Mac OS X)
J'ai essayé de créer un environnement dans lequel le travail dans le conteneur Docker sur le serveur distant peut être effectué directement à partir du code VS local avec une connexion SSH