Thursday, June 18, 2020

Broadcasting OBS through Zoom webinar field notes

I experimented with a different setup for our final virtual assembly. I knew the final output would be compressed and distorted by the Zoom webinar codecs anyway but it was a good dry run on possible setups for September.

I ran two different camera inputs: one from the front camera off an iPad Pro using NDI HX. It sent a wireless IPcam signal to my Macbook about 20 feet away. It had great quality video up to 4K, or the limits of your iPad camera, a good amount of HUD-enabled settings like exposure and focus lock, zooming and zero noticeable delay. It has an audio function as well, but we did not use it. Battery power was great, about a 10% drop per hour. This camera was set as the main, or 'A', camera as it had a locked-off shot containing all our stage talent.

The other camera was from a Canon 80D DSLR running Canon's new webcam software. This was hardwired to my Macbook using mini-USB. We had a long lens on this camera for close-ups and it ran as a backup 'B' camera. Unfortunately, it had a noticeable delay and would be visibly out of sync with our audio so I couldn't use it. I wasn't too troubled with this and didn't bother troubleshooting but in a test environment it ran lag-free and had great video quality. It could run for about 90 minutes straight on one battery charge.

Our audio was run by our new AV tech. She ran the stage mics to a mixer than routed the output through an M-Track 2x2 that outputted to USB. My Macbook recognized it as another mic input so I didn't have to adjust any settings, thought I did have iShowU installed and setup on my Macbook just in case.

Everything was routed into OBS except audio. Since we were broadcasting in Zoom webinar I just used the M-Track input as the mic input in Zoom. We were also using screen share so made sure to select the "share computer audio" option so our prerecorded videos could output sound to Zoom as well.

We used screen share instead of using OBS as a camera input in Zoom because I found the video quality to a be a bit better. I assume this is because I selected "optimize for video" when screen sharing which convinced Zoom to ease up on the compression compared to a camera input, even with "HD quality" and "original ratio" selected. Because I was screen sharing, I needed to send the OBS output using the "windowed projector" option. I could capture this projected window using the Zoom screen share.

This posed a few problems with Powerpoint. I usually drop all our slides and recorded video and audio into Powerpoint because it runs locally with no lag, allows for preview of previous and future slides, virtually unlimited transition and animation options, and very easy slide control. I setup the slideshow as "browsed by an individual" so it could present the show in a window. I then captured this window in OBS. Unfortunately, this window had to be the active window anytime an animation or video was playing, or else it would pause. That meant I couldn't click anything in OBS while a video was playing which was annoying, but worked with our presentation. I could imagine times this would be difficult in a live setting.

This kind of setup required a second monitor. I ran the Powerpoint and OBS preview windows, and the Zoom meeting controls on one monitor with OBS on the second for the mixing controls. Everything ran well, though since I had to "hack" OBS and run an unsigned Zoom it was a bit anxious at times waiting for something to crash -- which happened many times in test environments. For example, OBS would crash if I tried to resize the projection window too slowly!

We also experienced heavy compression and lag through Zoom. I'm still not 100% sure why since I was outputting 10,000kps bitrate at 1080 from OBS on a wired gigabit-upload ethernet. My test environment at home has significantly slower upload and image quality was much clearer. I'm thinking we'll have to switch to Youtube or Facebook for fall streaming if we can't fix this.  I also did not configure audio output from OBS which we might need if we had background music or cued audio/video files from OBS. However, most of this can be embedded into Powerpoint. Recording in OBS was also slow and unreliable, though I didn't really check the settings. I suspect I had them on maximum which might have eaten up CPU cycles and hard drive space.