Apple M1 Max + mimoLive + MS Teams + Zoom = win!

Guys, thought I’d share my latest experience for a virtual event design that I wouldn’t have thought possible a few months ago…

Presenters: 6 people (all remote), 1 also sharing slides

  • Platform: Microsoft Teams - couldn’t use mimoCall as two of them had to use a corporate device which were also stuck behind a corporate firewall - so all six were in a Teams meeting.
  • NDI streaming enabled in Teams
  • Speaker device: headphones (for a Teams’ specific monitor, the speaker device is not sent to mimoLive)
  • Mic device: Blackhole16 (I don’t need all 16 channels, but Blackhole2 is in use elsewhere, see below)
  • Camera device: turned off (they didn’t need to see me)

The mix:

  • Platform: mimoLive (v6.0b10), FullHD project at 25fps
  • Presenter sources: NDI cameras. Each participant in the Teams meeting has their own specific video and audio NDI source, presented as an NDI camera in mimoLive
  • Layers and other sources: aprox 50 layers (inc. variants) and a bunch of supporting media sources (music, head-shots, titles, etc.), of note there are:
    • two sets of audio layers for presenters: one for PGM (when ‘live’), one for monitor
    • Mic source for a return from Zoom: Blackhole2
  • Recording: 1 x ProRes422 (992MB/min, Linear PCM) recording of Program Out
  • Audio mixes:
    • Program - everything except the monitor layers
    • Teams foldback - engineering monitor (so they can hear me), Zoom foldback (in case an attendee speaks), reduced volume on the music
    • Local monitor - so the local engineer (me) can hear them, even when not ‘live’
    • Zoom PGM - everything except the monitor layers and the Zoom foldback
  • Outputs:
    • Virtual camera: Program Output + Zoom PGM Mix
    • Audio: local monitor mix going to cans
    • Audio: Teams foldback mix going to Blackhole16

Distribution:

  • Platform: Zoom Webinar - bunch of reasons for this choice, most significant being the ability to constrain registrations by devices
    • HD sharing and HD for attendees turned on
  • Speaker device: Blackhole2 (for the return back to mimoLive)
  • Mic device: mimoLive virtual mic
  • Camera device: mimoLive virtual camera

All of that running on a single MacbookPro M1 MAX 64 with three screens attached and an APC Mini (for control).

Total CPU load toped out around 70%, total GPU was around 60%. Render time in mimoLive never went above 14ms and spend most of it’s time at 8ms.

Mind: blown.
Current mood: totally impressed.

oh yeah, I should probably point out that there isn’t an Apple silicon version of Microsoft Teams yet - so that was running in Rosetta.

Wow… just wow.

4 Likes

Hi @Keith_4914 We’re so happy to hear that it works this well for you! Thanks for sharing!

I’m happy and a bit surprised teams NDI worked for you with 6 presenters. Six months ago I tried something similar (still on an intel at that time) and I had major audio/visual sync issues with the NDI out of teams. I’m going to test this again on my M1 max!

Let us know how it went!

impressive. how did you get a seperate NDI channel out for each panelist from Teams? is that in the a rock standard Teams software?

Yes, it’s a standard feature, but it is disabled by default. Here is how you enable it:

== Teams Admin (do this once) ==

  1. Either be a, or find your, Teams admin user
  2. Login to the Teams Admin Center: https://admin.teams.microsoft.com/
  3. From the dashboard go to: Meetings → Meeting Policy
  4. Add the ‘NDI Usage’ policy (set to ‘Yes’) to your global policy (or a custom policy that is assigned to your user if your Teams admin wants it that way)
  5. Save the policy
  6. Wait until the next day. Seriously - the policies are applied overnight or something

== Teams Client (may need to be redone after software update) ==
7. Open your local Teams client app (NB: must be the app - not the web client) and select ‘Settings and more’ (that’s the three dots next to your profile picture at the top right of Teams), and choose ‘Settings’ from the drop down
8. Select ‘App permissions’ and turn on the toggle next to ‘Production Capabilities’. NB: If you do not see the option ‘Production Capabilities’ you need to wait longer.

== Teams Meeting (needed for every meeting you want NDI enabled) ==
9. Go into the meeting’s controls, in the Teams app (once the meeting has started), and go into ‘more actions’ (the three dots next to the camera, mic, and share icons)
10. At the bottom of the drop down (just below ‘start recording’) there is an option called ‘Broadcast over NDI’, select it.

You should now see a number of NDI sources from Teams. One for every participant in the meeting, one for the main view (usually a follow-me view), and one for any content being shared (no matter who is sharing it).

1 Like