Keeping Audio and Video in Sync
Common causes of audio / video sync issues in live streaming.
One thing that can ruin any live streaming production is having audio and video out of sync. This generally manifests itself in two ways:
1. Audio and video slowly drift out of sync over time
2. Audio and video are out of sync by a fixed amount of time
In the second case, the fix is generally pretty straight forward. If you are working with a audio engineer or technician using a digital mixing board, the audio engineer can typically dial-in a little bit of audio delay so that the audio and video are back in sync before the signal ever hits the encoder. If you don't have an audio engineer or an audio mixing board that can apply audio delay, some software streaming applications, such as Wirecast and OBS, have settings that allow you to add audio delay as part of the encoding process.
In an upcoming blog post, we'll post instructions for setting audio delay in both Wirecast and OBS.
The first case, however, can be a bit more tricky to troubleshoot.
In general, there are two fairly common causes for audio to slowly drift out of sync over time. The first is a frame rate mismatch between what is coming into your live streaming encoder and what is being sent out. Here in the United States, the most common broadcast standard frame rate is 29.97 frames per second. In the world of live streaming, most streaming platforms stream at 30 frames per second. If the stream encoding doesn't take into account the frames per second mismatch between the incoming signal at 29.97 fps and the outgoing stream at 30fps, then over time, the audio will become out of sync. To solve this, you can either convert the signal going into your live streaming encoder to 30fps or set the frame rate within your streaming encoder to 29.97fps.
Another fairly common cause for audio and video to slowly drift out of sync, particularly when using a software-based live stream encoder running on a Mac or PC, is using a computer that doesn't meet the minimum hardware requirements for your stream. The higher the resolution or bit rate of your stream, the more computing power you need. So make sure that if you're trying to transmit a 1920x1080 stream at 4Mbps that your computer is up to the task. If it's not, then consider lowing your stream output to, say 1280x720 at 2Mbps or upgrade to a more powerful computer.
Now, even if your computer is powerful enough for the stream you're trying to encode, there are a wide range of other computer issues that could impact audio / video sync. Background processes, such as syncing with Google Cloud, iCloud, or other online platforms, can take up important compute resources on your system, causing issues with your live stream. Buggy software, network backups, other applications, video card drivers, and a whole host of other factors can all impact your software application's ability to transcode incoming audio and video and deliver them in sync to your viewers.
You can, of course, avoid many of these issues by using a dedicated hardware encoder for your live streams, but that's a topic for another blog post!