Microsoft Teams PWA : vidéo indisponible dans Chromium sur openSUSE — causes, diagnostics et correctifs

Sous openSUSE, l’icône « Vidéo » de Microsoft Teams PWA reste grisée dans Chromium ? Voici un guide complet et opérationnel pour comprendre la cause, diagnostiquer rapidement et remettre la vidéo en service en toute sécurité.

Sommaire

Problème : appels vidéo impossibles dans Microsoft Teams PWA sous Chromium

Dans un environnement openSUSE (Leap ou Tumbleweed), la Progressive Web App de Microsoft Teams exécutée dans le navigateur Chromium affiche l’icône « Vidéo » désactivée. Le passage d’un appel audio à un appel vidéo échoue également. Le symptôme est cohérent : Teams détecte que l’environnement navigateur ne remplit pas toutes les conditions techniques nécessaires aux flux WebRTC en H.264/VP9, et masque donc la fonctionnalité vidéo.

Symptômes typiques à l’écran

  • Icône « Activer la vidéo » grisée dès l’entrée dans une réunion ou un appel ;
  • Message furtif du type « Impossible d’activer la caméra » ou aucune info, mais bascule audio→vidéo inopérante ;
  • La caméra fonctionne dans d’autres sites (tests WebRTC génériques, services concurrents), mais pas dans Teams PWA ;
  • La PWA Teams s’installe et s’ouvre correctement, le micro et le partage d’écran peuvent fonctionner, mais pas la vidéo.

Pourquoi cela arrive : les vraies causes techniques

Deux facteurs se combinent le plus souvent dans ce scénario :

  1. Optimisation de la PWA pour Edge/Chrome officiels : Microsoft cible prioritairement les binaires officiels Edge/Chrome. Les compilations Chromium fournies par certaines distributions Linux (dont openSUSE) sont construites sans certains codecs propriétaires et/ou avec des jeux d’API variables (WebCodecs, modules multimédia), ce qui bride la vidéo dans Teams.
  2. Fin du client natif Linux : depuis 2023, l’application Desktop Linux n’est plus maintenue. Reste la PWA, qui dépend des capacités réelles du navigateur hôte. Si ce dernier n’expose pas H.264/VP9/Opus et un pipeline WebRTC complet, Teams neutralise l’option « Vidéo ».

Concrètement, Teams s’appuie sur WebRTC et nécessite à minima le codec H.264 (souvent préféré pour la compatibilité) ou VP9 selon les politiques du tenant. Sur certaines builds Chromium « pures », le greffon FFmpeg n’embarque pas H.264 (décodage/encodage), d’où l’échec silencieux. Dans d’autres cas, l’absence de composants multimédia (p.ex. libwidevine pour DRM — non requise pour WebRTC en soi —, ou un FFmpeg trop minimaliste) empêche d’ouvrir un flux vidéo exploitable pour Teams.

Solutions et contournements recommandés

Voici les options les plus robustes par ordre d’efficacité pratique.

OptionDétailsAvantagesLimites
Basculer sur un navigateur officiellement pris en chargeInstaller Microsoft Edge pour Linux ou Google Chrome (version stable) et utiliser Teams PWA dans ce navigateur.Vidéo et audio pleinement fonctionnels, support de référence pour Teams.Changement d’outil ; binaires propriétaires.
Tester une build Chromium avec codecs propriétairesUtiliser un dépôt tiers fournissant FFmpeg complet (chromium-ffmpeg-extra) ou recompiler Chromium avec H.264/VP9.Reste très proche de Chromium « pur ».Résultats variables ; non supporté par Microsoft ; maintenance à votre charge.
Utiliser un conteneur ou un Flatpak Edge/ChromeExécuter Edge/Chrome en Flatpak/Snap ou via Docker/Podman pour isoler l’environnement propriétaire.Évite d’impacter la racine système.Complexité de déploiement ; bien tester caméra et partage d’écran.
Navigateur alternatif en attendantFirefox assure généralement l’audio et le partage d’écran ; la vidéo peut rester limitée selon les cas.100 % open‑source et disponible nativement.Vidéo souvent indisponible dans Teams PWA.
Remonter le besoin à MicrosoftDans Teams : Aide › Envoyer des commentaires ou via le portail de commentaires.Augmente la visibilité de la demande côté éditeur.Calendrier d’amélioration non garanti.

Diagnostic express : check-list en cinq minutes

Avant de modifier vos navigateurs, passez ces vérifications rapides :

  1. Autorisations du site : dans Chromium/Chrome/Edge, ouvrez les Paramètres du site de Teams PWA et vérifiez Caméra et Micro = Autorisé. Si plusieurs caméras : choisissez explicitement le bon périphérique.
  2. Caméra côté système : confirmez que la webcam fonctionne hors navigateur. sudo zypper install v4l-utils v4l2-ctl --list-devices v4l2-ctl --list-formats-ext -d /dev/video0
  3. Portails de bureau (Wayland) : Teams s’appuie sur xdg-desktop-portal (notamment pour le partage d’écran). Vérifiez que les services utilisateur sont actifs. systemctl --user status pipewire systemctl --user status wireplumber systemctl --user status xdg-desktop-portal journalctl --user -u xdg-desktop-portal -b --no-pager | tail -n 50
  4. WebRTC côté navigateur : dans la barre d’adresse, ouvrez chrome://webrtc-internals (ou équivalent) et vérifiez qu’un getUserMedia vidéo peut s’initialiser sans erreur.
  5. Codecs exposés : inspectez l’implémentation FFmpeg de votre build Chromium (présence H.264/AVC et VP9). # Exemple d’exploration (chemins à adapter selon votre distro) strings /usr/lib64/chromium/libffmpeg.so | egrep -i "avc1|h264|vp9|opus|vp8" | sort -u

Procédures détaillées de résolution

Basculer immédiatement sur Edge ou Chrome (recommandé en production)

C’est la voie la plus courte pour rétablir la vidéo dans Teams PWA. Déployez l’un des navigateurs officiellement pris en charge, puis reconnectez‑vous à Teams via la PWA.

Installation par paquets (schéma générique, adaptez les URL/nom de dépôt à votre politique interne) :

# Google Chrome (exemple générique)
sudo rpm --import <CLE_GPG_GOOGLE>
sudo zypper addrepo -g -f '<URL_DEPOT_CHROME_OFFICIEL>' google-chrome
sudo zypper refresh
sudo zypper install google-chrome-stable

# Microsoft Edge (exemple générique)

sudo rpm --import 
sudo zypper addrepo -g -f '' microsoft-edge
sudo zypper refresh
sudo zypper install microsoft-edge-stable 

Bonnes pratiques :

  • Activez l’accélération matériel (paramètre du navigateur) pour fluidifier la vidéo ;
  • Bloquez la mise à jour automatique sur une version validée si vous administrez un parc ;
  • Sur Wayland, Edge/Chrome récents gèrent correctement PipeWire et le partage d’écran.

Rester sur Chromium et ajouter les codecs propriétaires

Si vous préférez rester au plus près de Chromium « pur », vous pouvez équiper votre système d’un FFmpeg complet et, le cas échéant, du module Widevine (utile pour certains contenus DRM mais pas indispensable à WebRTC). Sur openSUSE, cela passe en général par l’installation de paquets additionnels issus d’un dépôt multimédia.

# Installer les utilitaires et les codecs renforcés (exemples)
sudo zypper refresh
sudo zypper install chromium
sudo zypper install chromium-ffmpeg-extra
sudo zypper install chromium-widevine || true   # selon disponibilité du paquet
sudo zypper install ffmpeg

# Vérifier la présence d’AVC/H.264 côté FFmpeg de Chromium

ldd $(which chromium) | head -n 50  # inspection rapide de dépendances
strings /usr/lib64/chromium/libffmpeg.so | egrep -i "h264|avc1" | head 

Important : l’encodage H.264 côté WebRTC peut s’appuyer sur le CPU si aucun encodeur matériel n’est disponible ; l’essentiel est que le décodage et l’offre SDP de H.264 soient bien exposés au moteur WebRTC. Après installation, videz le cache de la PWA, redémarrez le navigateur et retentez un appel.

Exécuter Edge/Chrome en Flatpak ou en conteneur

Objectif : isoler le navigateur propriétaire de votre base système tout en profitant d’un pipeline WebRTC complet.

Flatpak (Chromium avec extension de codecs) :

# Hypothèse : Flathub déjà configuré dans votre environnement
flatpak install flathub org.chromium.Chromium
flatpak install flathub org.chromium.Chromium.Codecs  # extension de codecs (nom variable selon remotes)

# Caméra/micro et portails (au besoin)

flatpak override --user --talk-name=org.freedesktop.portal.Desktop org.chromium.Chromium
flatpak override --user --device=all org.chromium.Chromium </code></pre>

<p><strong>Conteneur (exemple Podman)</strong> : pour des tests ponctuels, vous pouvez exécuter un Chrome/Edge conteneurisé en donnant accès au GPU, au bus PipeWire et au périphérique vidéo. Le <em>run</em> exact dépend de votre image de référence ; voici une trame à adapter :</p>
<pre><code># Exécution d’un navigateur conteneurisé avec accès vidéo/GPU (adapter selon votre image)
xhost +si:localuser:$(whoami)
podman run --rm -it \
  --device /dev/dri \
  --device /dev/video0 \
  -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix:ro \
  -v $XDG_RUNTIME_DIR/pipewire-0:$XDG_RUNTIME_DIR/pipewire-0 \
  &lt;IMAGE_NAVIGATEUR&gt; --no-sandbox --enable-features=WebRTCPipeWireCapturer
</code></pre>

<h3>Utiliser Firefox en solution d’attente</h3>
<p>Firefox fonctionne bien pour la voix et, selon l’environnement, pour le partage d’écran via PipeWire. La vidéo dans Teams PWA reste toutefois limitée et peut ne pas être disponible selon les paramètres du tenant et la version du navigateur.</p>
<pre><code># Forcer le backend Wayland (si utile)
MOZ_ENABLE_WAYLAND=1 firefox
</code></pre>

<h3>Remonter le besoin produit</h3>
<p>Plus il y a de retours, plus la priorité de la prise en charge de <em>Chromium « pur »</em> sous Linux augmente. Depuis le menu Teams : <em>Aide &gt; Envoyer des commentaires</em>, décrivez votre distribution (openSUSE&nbsp;Leap/Tumbleweed), la version de Chromium et la liste des codecs disponibles.</p>

<h2>Vérifications complémentaires utiles</h2>
<ul>
  <li><strong>Mettre à jour votre navigateur</strong> : Edge/Chrome/Chromium avancent rapidement sur les API WebRTC/WebCodecs. Les PWA Teams sont, elles aussi, mises à jour côté service ;</li>
  <li><strong>Vérifier les flags WebRTC</strong> : les navigateurs permettent d’activer/désactiver des fonctions via <code>chrome://flags</code>. Conservez les réglages par défaut, sauf recommandation explicite ;</li>
  <li><strong>Permissions système</strong> : assurez‑vous que la caméra n’est pas monopolisée par une autre application ; les modules <code>uvcvideo</code> et PipeWire doivent être actifs&nbsp;:
    <pre><code>lsmod | egrep 'uvcvideo|videodev'
pactl info | egrep 'Server Name|Server String'   # PipeWire en service

Cache et stockage de la PWA : effacez les données du site Teams dans Paramètres > Confidentialité > Cookies et autres données, puis reconnectez‑vous.

Tableau de correspondance symptômes → analyse → correctifs

SymptômeIndice techniqueInterprétationAction prioritaire
Icône vidéo grisée dès l’ouverture de la réunionPas de MediaDevice vidéo exploitable dans la pagePermissions site refusées ou caméra non exposéeAutoriser caméra dans Chromium ; vérifier v4l2-ctl
La caméra fonctionne ailleurs mais pas dans TeamsSDP ne propose pas H.264Build Chromium sans H.264 exploitableEdge/Chrome ; ou chromium-ffmpeg-extra
Partage d’écran OK, vidéo KOPipeWire OK, pipeline vidéo KOCodecs WebRTC insuffisantsInstaller codecs propriétaires / changer de navigateur
Vidéo OK en Chrome, KO en ChromiumDifférence de FFmpeg embarquéChromium trop « vanilla »Utiliser Chrome ou muscler FFmpeg de Chromium

Déploiement en entreprise : modèle opérationnel

Si vous administrez un parc, voici une démarche pragmatique et durable :

  1. Standardisez un navigateur de référence (Edge ou Chrome) pour Teams PWA ;
  2. Figez une version validée via vos outils (zypper verrou, dépôt de test, rythme mensuel) ;
  3. Recette fonctionnelle : scénarios audio/vidéo, partage d’écran, changement de périphérique, réunion de 30 min ;
  4. Communication utilisateur : précisez que Teams PWA dans Chromium « vanilla » n’offre pas la parité vidéo ;
  5. Plan B : documentez la solution Firefox (audio + partage) en cas de blocage temporaire.

Annexes : scripts et commandes de vérification

Script d’auto‑diagnostic minimal

Copiez ce script dans un fichier teams-video-check.sh, rendez‑le exécutable (chmod +x) et lancez‑le. Il résume l’état des briques clés côté Linux et navigateur.

#!/usr/bin/env bash
set -euo pipefail

echo "=== Système ==="
cat /etc/os-release | egrep 'PRETTY_NAME|NAME|VERSION'
uname -a

echo -e "\n=== Services utilisateur ==="
for svc in pipewire wireplumber xdg-desktop-portal; do
systemctl --user is-active $svc && echo "OK: $svc actif" || echo "ALERTE: $svc inactif"
done

echo -e "\n=== Périphériques vidéo ==="
command -v v4l2-ctl >/dev/null || echo "TIP: sudo zypper install v4l-utils"
v4l2-ctl --list-devices || true
[ -e /dev/video0 ] && v4l2-ctl --list-formats-ext -d /dev/video0 | head -n 40 || echo "/dev/video0 absent"

echo -e "\n=== Navigateurs ==="
for b in chromium google-chrome-stable microsoft-edge-stable; do
command -v $b && $b --version || echo "$b non trouvé"
done

echo -e "\n=== FFmpeg de Chromium (si présent) ==="
FFMPEG_SO="/usr/lib64/chromium/libffmpeg.so"
[ -f "$FFMPEG_SO" ] && (strings "$FFMPEG_SO" | egrep -i 'h264|avc1|vp9|vp8|opus' | sort -u) || echo "libffmpeg.so introuvable"

echo -e "\n=== Portails et journaux récents ==="
journalctl --user -u xdg-desktop-portal -n 30 --no-pager || true

echo -e "\n=== Conseils ==="
echo "1) Vérifier permissions Caméra/Micro pour Teams dans votre navigateur."
echo "2) Essayer Edge/Chrome si la vidéo reste grisée."
echo "3) Sur Chromium: installer chromium-ffmpeg-extra (et widevine si nécessaire)." 

Tester rapidement WebRTC dans la console du navigateur

Ouvrez un nouvel onglet, affichez la console de développement, puis exécutez :

navigator.mediaDevices.enumerateDevices()
  .then(d =&gt; d.filter(x =&gt; x.kind === 'videoinput'))
  .then(cams =&gt; console.table(cams))
  .catch(console.error);

Vous devez voir au moins un périphérique videoinput. Si la liste est vide, corrigez d’abord les permissions ou le pilote.

Réinitialiser proprement la PWA Teams

  1. Dans le navigateur : Paramètres > Confidentialité > Cookies et autres données ;
  2. Effacez les données du site pour teams.microsoft.com ;
  3. Fermez toutes les fenêtres Teams PWA, relancez le navigateur, reconnectez‑vous.

Points d’attention fréquents

  • Codec H.264 : indispensable dans la majorité des scénarios Teams. L’absence d’AVC est la cause n° 1 d’icône vidéo grisée sous Chromium.
  • Widevine : utile pour contenus protégés, pas requis pour un appel WebRTC classique. Ne mélangez pas les problématiques : si seuls les appels vidéo posent souci, c’est rarement Widevine.
  • Wayland vs X11 : privilégiez Wayland à jour + PipeWire. Si le partage d’écran fonctionne mais pas la vidéo, le problème vient plutôt des codecs que des portails.
  • Politiques réseau : un blocage agressif (TURN/UDP) peut dégrader la qualité, mais n’explique pas le bouton vidéo grisé avant la tentative d’établissement du flux.

Résumé exécutable

Pour retrouver la vidéo dans Teams PWA sous openSUSE, la voie la plus fiable est d’utiliser Microsoft Edge ou Google Chrome. Si vous tenez à Chromium, installez un FFmpeg complet (p.ex. chromium-ffmpeg-extra) afin d’exposer H.264 et, au besoin, VP9 au moteur WebRTC. Contrôlez vos permissions et l’état de PipeWire. En entreprise, standardisez un navigateur de référence, cadrez le cycle de mise à jour et documentez un plan B (Firefox) pour la continuité d’activité.


Informations complémentaires utiles

  • La compatibilité vidéo de Teams est garantie sur les binaires officiels Edge/Chrome (Windows, macOS, Linux).
  • Le sujet est technique : aucune licence Microsoft 365 supplémentaire n’est requise.
  • Maintenez vos navigateurs à jour ; les PWA Teams évoluent mensuellement.
  • Vérifiez localement : autorisations caméra/micro, flags WebRTC (chrome://flags), pilotes UVC et état de xdg-desktop-portal.

Foire aux questions

Q : Pourquoi l’icône vidéo est‑elle grisée alors que ma webcam marche ailleurs ?
R : Parce que Teams PWA ne « voit » pas un codec vidéo compatible (H.264, parfois VP9) dans votre build Chromium. La caméra existe, mais le navigateur n’est pas capable d’ouvrir un flux WebRTC conforme aux prérequis de Teams.

Q : Installer Widevine suffira‑t‑il ?
R : Non, Widevine concerne le décodage de médias protégés (DRM). Pour la vidéo en visio, la priorité est d’exposer un FFmpeg avec H.264 au moteur WebRTC. Widevine n’est pas la clé du problème.

Q : Puis‑je forcer Teams à utiliser VP8 à la place de H.264 ?
R : Les politiques de codecs sont côté service/tenant et côté navigateur. Vous ne pouvez pas forcer Teams PWA à négocier un codec non prévu pour votre environnement. D’où l’intérêt des binaires Edge/Chrome officiels.

Q : Pourquoi Firefox ne règle pas tout ?
R : Firefox peut couvrir l’audio et le partage d’écran, mais la vidéo dans Teams PWA dépend de prises en charge qui ne sont pas systématiquement alignées. C’est une solution d’attente, pas un correctif garanti.

Q : Est‑ce que recompiler Chromium vaut l’effort ?
R : Pour un poste expert, oui, mais en parc cela devient coûteux à maintenir. En production, Edge/Chrome restent plus prévisibles pour Teams PWA.


En bref : l’icône « Vidéo » grisée dans Microsoft Teams PWA sous openSUSE/Chromium n’est pas une fatalité. Soit vous passez à Edge/Chrome (recommandé), soit vous musclez Chromium avec des codecs propriétaires pour rétablir H.264 côté WebRTC. Ajoutez à cela quelques contrôles systèmes (PipeWire, xdg-desktop-portal, permissions) et vous retrouverez la caméra en quelques minutes.

Sommaire