I will explain how to share the screen of an iPad Pro (I) in a BigBlueButton session (BBB) having only a Linux PC (L) and an Android Phone (A).

Note that it is also possible to stream live handwriting to BBB using a digitizer board or a simple document camera connected to (L). In the first case one can use the whiteboard app Xournal on (L) to save the notes in the form of a PDF afterwards.

I encountered the following problems while trying to share the screen of (I) in (BBB):

  1. Although BBB offers a collaborative whiteboard, it is currently not possible to download it together with the writing in the end.
  2. Although it is possible to join a BBB session from (I), it is currently not possible to share the screen.
  3. One can currenly share the screen of (I) only in the following two scenarions: either via AirPlay to machines running an AirPlay receiver which are connected to the same ‘‘friendly’’ WiFi network (Eduroam does not work), or to a Mac via cable.

Prerequisities

  1. Install scrcpy on (L).
  2. Install AirReceiver on (A). Unfortunately, this is a commercial product (currently costs 3€).
  3. Allow USB-debugging in the developer’s options of (A).

Steps

  1. Create a WiFi mobile hotspot on (A) and connect to it with (I).
  2. Connect (A) to (L) via USB and switch the connection type on (A) to USB-tethering (also disable all sounds and notifications or better put it in the plane mode).
  3. Run AirReceiver on (A), click share screen on (I), and select (A) as the target. The screen of (A) should now mirror the screen of (I).
  4. Run scrcpy on (L), so that a window with the screen of (A) appears. This screen can be now streamed in BBB (if you are using a tiling manager, put the BBB and scrpy window on the the same virtual desktop and switch to the monocycle mode).

Example

  • (A): Samsung A71 with screen resolution 2400x1080 in the horizontal position with the bottom part to the rigt.
  • (I): iPad Pro 12.9’ with screen resolution 2732x2048.
  • Commands to start scrcpy:
      % iPad in portrait position
      scrcpy --lock-video-orientation=1 -w --disable-screensaver -S --crop 1080:902:0:794
    
      % iPad in landscape position
      scrcpy --lock-video-orientation=1 -w --disable-screensaver -S --crop 1080:1680:0:400
    

    Here --lock-video-orientation=1 assures that the screen of (A) is mirrored horizontally independently of its rotation, -w prevents (A) from falling asleep, -S turns off the screen of (A), --crop 1080:902:0:794 crops the mirrored window.

Other ideas

  • Create a virtual video device using v4l2loopback or akvcam and redirect the scrcpy window there.
  • Run a free Airplay server RPiPlay or shairplay on (L) directly and bypass scrcpy and AirReceiver. It should work if (A) is connected via USB tethering but needs to be properly configured. In case that it doesn’t work, get an USB WiFi adapter and create a hotspot on (L).
  • Buy an HDMI/USB-A video grabber for (L) and an USB-C/HDMI adapter for (I) to connect them, bypass (A) completely. However, the quality will depend on the grabber and the HDMI bandwidth.
  • There is a BBB app for Android and iOS under development which will hopefully implement the screen sharing.