I describe my solution for online lecturing amid the COVID-19 crisis using youtube livestreams and PINGO.

Although I kind of saw it coming after reading this excellent data analysis (on March 12, before things got really crazy), things did get hectic: The official decision of University of Liverpool to move all face-to-face classes online with immediate effect came on Saturday evening (March 14), with my class due on Monday, March 16. So what follows is not the well-thought out, technically sophisticated and educationally up-to-date mode of online teaching I (and you) might dream of, but it is what allowed me to deliver an (according to isolated feedback) effective online lecture with less than one day of prep time.

Where I started: Good old screencasts …

I have been recording screencasts of my lectures for COMP526 and posting them on youtube all term. The methodology for that (on Ubuntu) is basically still as described here, only with an update of my laptop (now an HP Elitebook x360) and Xournal++.

So a reasonable mic, screencasting software (SimpleScreenRecorder) and a website to post videos and lecture notes were already set up.

… and in-class formative assessments (aka clicker questions)

What I also came to like as an effective tool, is an in-class response system to quickly ask for opinions, prior knowledge, to recap definitions, and to test understanding. (I have been using PINGO for that.)

So my initial contingency plan was to record the lectures at home and upload them. But what was missing, was a way to keep the clicker questions; and – I know how these things go first hand – I was afraid that had there been no incentive for students to keep on track with watching the videos, it all too easily happens that some fall behind.

I was determined to not let that happen (quite so easily).

Going live!

My solution was to use youtube livestreams for the lectures; how to do that is explained below. That way, we (the students and myself that is) would be seeing the same screen (almost – more on that later) in real time, and I could simply continue with the clicker questions.

Youtube also has a “live chat” that offers a (limited) backchannel for students to ask questions (which quite a few did!), signal technical problems (none yet, luckily!), or give a quick “hands” on who is still following.

Quick how-to for youtube livestreams

(Here is youtube’s detailed manual on that; you want the “encoder streaming”.)

After signing into your youtube account, click on CREATE → Go Live (top right). There you pick “Stream” (the middle tab at the top). I did change the defaults, except for setting the stream latency to “ultra low”. In the top right, you can get a link that you can share with students even ahead of time.

Now, to stream your screen content (or part of it), you need an encoder. I had good experiences with SimpleScreenRecorder, and indeed you can use it for this, too. The screenshot below shows the settings I used; what goes into the “Save as” box is shown in the youtube stream settings as “Stream URL” and “Stream key”; the entry simply is <Stream URL>/<Stream key>.

Selecting AAC as audio codec is vital! The mp3 encoder (selected by default) does not work with youtube, but the error messages don’t tell you that.

Settings for streaming to youtube.

Then you click Continue and simple start your recording. The youtube stream settings site should now show your screen content (with a few seconds delay).

Clicking on “GO LIVE” (top right) starts the actual livestream.

On my (fairly new) laptop, downscaling the 4K display to 1080p and encoding as x264 did put considerable load on the machine, but I did not experience severe problems, so I did not try to play with the encoder settings at all. Your mileage may vary.

As for all youtube videos, you can configure the visibility of the stream as “unlisted”, then only students with the link can view the video, but no-one can find it through search; “public” videos appear in searches. If you choose “private”, people have to be signed in, and I did not want to force students to do that.

Phone for backchannel

During the lecture, I kept the youtube app on my Android open to see messages coming on the live chat. (This is also a great way to test if your stream works.)


For consistency, I split the recorded livestream into individual videos for each subsection, using the youtube studio editor, but also keep the livestream itself (as an unlisted video). (Pretend to trim the live stream, but then instead of “SAVE” click the three dots and “SAVE AS NEW”). The nicely cut videos are then linked to from my course website, e.g., here.

Cutting videos takes a few extra minutes that I did not need when locally recording in class, where I could easily start a new recording with one click. But it makes the recordings much easier to navigate and use later on.

First impressions

After using this setup for 3 hours of lectures, I am overall fairly happy. It does not cost much more preparation for me (although a bit extra time for cutting videos) and is clearly superior to only uploading videos. The livestream always had well below 10s of delay, which is totally fine for the interactive questions, and sound and video quality are excellent.

Compared to (my experiences with) video conferencing solutions Cisco WebEx, Skype, and Microsoft Teams, the stream is clearly superior in quality and stability, and the resulting recordings are essentially indistinguishable from the ones I recorded in face-to-face lectures.

A clear downside of my approach is the missing instant feedback from looking around the audience’s faces. (I usually have 30-50 students in class, so this was very doable.) I used to look around for this instant feedback very frequently – I’m lecturing facing the audience in the lecture rooms – so there is no way to replace this with the same number of PINGO questions.

Ideally, I’d like to have an additional (informal, anonymous) “quick-emotions” backchannel with buzzers for “I’m lost”, “I got it”, and “I need a break” (or so) that students could continuously push (as opposed to questions I have to trigger). So far, I have not found a service for that.