Witaj na Forum Linuxiarzy
Zanim zalogujesz się, by pisać na naszym forum, zapoznaj się z kilkoma zasadami savoir-vivre'u w wątku Administracja.
Wątki z problemami zamieszczone w dziale "Przywitaj się" oraz wszelkie reklamy na naszym forum będą usuwane.

Autor Wątek: Niedziałające kamery USB w Microsoft Teams  (Przeczytany 722 razy)

Offline mirekc

  • Jr. Member
  • **
  • Wiadomości: 68
  • Reputacja: 1
Niedziałające kamery USB w Microsoft Teams
« dnia: Wrzesień 06, 2021, 07:51:41 pm »
Na laptopie Acer Extensa 5630EZ (Pentium Dual Core 2GHz, 2GB RAM) mam zainstalowany MX Linux 19.4 64-bity, a na nim Microsoft Teams w wersji 1.4.00.13653 (64 bity). Niestety laptop nie ma wbudowanej kamery.

Mam dwie kamery USB, niestety dość (żeby nie powiedzieć bardzo) stare, jednak po podłączeniu obie są wykrywane przez system:
lsusb
...
Bus 005 Device 002: ID 0c45:6007 Microdia VideoCAM Eye
....
Bus 004 Device 004: ID 041e:4028 Creative Technology, Ltd Vista Plus cam [VF0090]

Po uruchomieniu VLC i wybraniu urządzenia przechwytującego obie kamery działają i dają jakiś tam obraz (do jakości nie mam pretensji, to w końcu stary sprzęt).

Jednakże w Teams, chociaż kamery są rozpoznawane w menu konfiguracji urządzeń, jedna jako USB Camera, a druga – Creative WebCam Vista PLus, to na podglądzie nie ma żadnego obrazu (czarne pole), a po podłączeniu do rozmowy testowej pojawia się komunikat „Wideo nie działa. Nie udało nam się użyć twojej kamery internetowej do przekazu wideo".

Da się jakoś „ożywić” te kamery w Teams? Jak podejść do diagnostyki tego problemu? A może Teams ma jakieś specjalne wymagania odnośnie kamery?

Offline mirekc

  • Jr. Member
  • **
  • Wiadomości: 68
  • Reputacja: 1
Odp: Niedziałające kamery USB w Microsoft Teams
« Odpowiedź #1 dnia: Listopad 06, 2021, 01:05:27 pm »
[...]Jednakże w Teams, chociaż kamery są rozpoznawane w menu konfiguracji urządzeń, jedna jako USB Camera, a druga – Creative WebCam Vista PLus, to na podglądzie nie ma żadnego obrazu (czarne pole), a po podłączeniu do rozmowy testowej pojawia się komunikat „Wideo nie działa. Nie udało nam się użyć twojej kamery internetowej do przekazu wideo".

Da się jakoś „ożywić” te kamery w Teams? Jak podejść do diagnostyki tego problemu? A może Teams ma jakieś specjalne wymagania odnośnie kamery?
Skoro nikt nie odpowiada, to podzielę się częściowym rozwiązaniem, które udało mi się znaleźć w tym wątku: https://docs.microsoft.com/en-us/answers/questions/149852/teams-for-linux-sees-camera-but-can-not-use-it.html – odpowiedź użytkownika FlorianWidder-8830. Zacznę jednak od końca: tak, najwyraźniej Microsoft Teams ma specjalne wymagania odnośnie kamer, w szczególności „nie lubi” starych kamer o niskiej rozdzielczości. Wydaje mi się również, że generalnie „nie lubi” kamer z proporcjami obrazu 4:3, o czym dalej.

Tak więc częściowym obejściem problemu okazało się wykorzystanie ffmpeg do skonfigurowania wirtualnej kamery z obrazem przeskalowanym do wyższej rozdzielczości. Nie miałem wcześniej zainstalowanego pakietu ffmpeg, więc zrobiłem tak:
sudo apt install ffmpeg
sudo apt install v4l2loopback-dkms
sudo modprobe v4l2loopback
ffmpeg -f v4l2 -i /dev/video0 -vf format=yuv420p,scale=1280x720 -f v4l2 /dev/video1

Teams widzi taką kamerę jako „Dummy video device (0x0000)” i wyświetla obraz. Problem w tym, że oryginalny obraz z kamery ma proporcję boków 4:3, a przeskalowany – 16:9, wskutek czego wyświetlany obraz jest rozciągnięty w poziomie. Nie lubię tego, chciałbym żeby moja gęba na obrazie miała oryginalne proporcje, jednak kiedy próbowałem zmieniać parametry skalowania w taki sposób żeby mieć proporcje 4:3 – w Teamsach otrzymywałem niepoprawny obraz (fragment, ciemny ekran albo jakaś „kasza”). Stąd wywnioskowałem (nie wiem czy słusznie), że Teams „nie lubi” proporcji 4:3.

W opisany powyżej sposób udało mi się „ożywić” kamerę Microdia VideoCAM Eye, ale nie udało się to z Creative Vista Plus cam. Otrzymałem następujące komunikaty:
[video4linux2,v4l2 @ 0x556e8e3d8780] Cannot find a proper format for codec 'none' (id 0), pixel format 'none' (id -1)
Assertion *codec_id != AV_CODEC_ID_NONE failed at src/libavdevice/v4l2.c:811
Wie ktoś może jak do tego podejść?
« Ostatnia zmiana: Listopad 06, 2021, 01:09:11 pm wysłana przez mirekc »