How to use Zoom Video Conferencing with pkgsrc/www/firefox-88.0 under NetBSD/amd64 9.99.82

Zoom Video Conferencing supports Mozilla Firefox after 76.0 release The pkgsrc has Mozilla Firefox package as pkgsrc/www/firefox. And it is 88.0 as of 2021-04-26. You can install pkgsrc/www/firefox under NetBSD/amd64 9.99.82. The latest NetBSD/amd64-current (for example, 9.99.82) support XHCI isochronous transfer and you can use USB webcam with uviceo(4) device driver. And you can send and receive voices with pulseaudio option of pkgsrc/www/firefox. I will explain how to setup Zoom ready environment with pkgsrc/www/firefox-88.0 under NetBSD/amd64 9.99.82.

Update your NetBSD/amd64-current to the latest

uvideo(4) device driver for USB Video Class (UVC) webcams uses USB isochronous transfer. The latest NetBSD supports XHCI isochronous transfer and you should update your NetBSD/amd64-current environment to the latest. pkgsrc/www/firefox-88.0 should be built for NetBSD/evbarm64-current too. If your aarch64 machine has USB host controller that supports isochronous transfer, you can use the host controller to connect your UVC webcam.

If your machine has EHCI as host controller, you can connect UVC webcam to the ports that are controllerd by EHCI. As far as I understand correctly, NetBSD 9.1's ehci(4) device driver for USB EHCI supports isochronous transfer. If you use EHCI, it is not required to update your NetBSD to the latest current.

I tests UVC webcam on my Toshiba dynabook R63/PS laptop. Logitech Webcam C300 (VendorID/ProductID=0x056d/0x0805) and dynabook's internal UVC webcam (VendorID/ProductID=0x04f2/0xb3b2) work fine. The laptop has VendorID/ProductID=0x8086/0x9cb1 as XHCI and it works fine for USB isochronous transfer with uvideo(4) and uaudio(4). I have another laptop, Dell XPS 13 9300 and it has two XHCIs, VendorID/ProductID=0x8086/0x8a13 and 0x8086/0x34ed. The XHCIs do not work for uvideo(4) and works for uaudio(4). I do not figure out why NetBSD-current's XHCI USB isochronous support does not work for Dell XPS 13 9300 yet. If your UVC webcam displays camera image in very low frame-per-second (for example, 1/120 fps or lower), you encountered the same problem with my Dell XPS 13 9300.

Prepare pkgsrc packages

By default, pkgsrc/www/firefox-88.0 does not use PulseAudio audio backend and I cannot send my voice via WebRTC. pkgsrc/www/firefox under NetBSD uses Sun audio backend by default. I do not investigate deeper however I cannot send my voice with Sun audio backend. Of course I can receive and play the other's voice. I should identify why Sun audio backend does not work for audio capture, however I could not find a time.

Anyway, prebuit package (binary package) of pkgsrc/www/firefox does not have pulseaudio support and you must build and install pkgsrc/www/firefox from the source code tarball. If you have up-to-date pkgsrc tree in your /usr/pkgsrc, you can build and install pkgsrc/www/firefox as follows:

# cd /usr/pkgsrc/www/firefox
# make PKG_OPTIONS.firefox=pulseaudio install

After some hours, you can get PulseAudio ready Mozilla Firefox web browser for your NetBSD environment.

Set fake user-agent string for your Mozilla Firefox

The Firefox under NetBSD/amd64 has the following user-agent sting by default.

Mozilla/5.0 (X11; NetBSD amd64; rv:88.0) Gecko/20100101 Firefox/88.0 

Zoom Video Conferencing's web client checks the user-agent string and it rejects the web browser because my environment is not supported. Firefox add-on market has many user-agent switchers. I am usindg User-Agent Switcher by Linder to change my user-agent string to Linux. You must set your user-agent sting to Firefox under Linux. However its user-agent string indicates very old Firefox user-agent string (Firefox 31.0's). You must update your Firefox under Linux user-agent string as follows, for example:

Mozilla/5.0 (X11; Linux i586; rv:31.0) Gecko/20100101 Firefox/81.0

Of course this is strange and inconsistent, however Zoom does not check rv value (31.0) and you should update the last number to newer (81.0).

Start your video conferencing with Zoom web client

Follow Quick start guide for the Zoom web client instructions to connect to Zoom with the Firefox. I have no idea that Zoom video conferencing uses WebRTC. However video and audio captures use WebRTC interface at least. You can select video and audio sources in WebRTC source selection user interface of Firefox.

If your have problems to capture video, WebRTC samples getUserMedia: select resolution will help you to debug your situation. If you have problems in audio capture, WebRTC samples Audio stream volume is useful.

For audio capture, you should check your audio mixer settings with mixerctl(1) command. In my case, input source (laptop's internal microphone) is set as muted by default. I have the following /etc/mixerctl.conf file.

$ cat /etc/mixerctl.conf
inputs.reclvl.mute=off

0 件のコメント:

コメントを投稿

NetBSDでCreative BT-W3を使ってみる

この記事は、 NetBSD Advent Calendar 2021 の2日目の記事です。 2日目から遅刻してすみません。 はじめに Bluetooth Audio on OpenBSD with the Creative BT-W3 という記事を読む前では...