Justin Hartman • March 03, 2019
It seems like everything in video is now 4K—TVs, cameras, and even my iPhone can shoot 4K video. I’m sure I could record some unbelievable footage of my family, my bands, and my church. But how would all of this 4K talk translate to the world of live streaming?
It seems that everyone wants to stream in the highest resolution possible. Not long ago, that meant 1080p60; with the increasing availability and affordability of 4K products, more and more people hope to provide 4Kp60 content to viewers. And why not? More pixels means a better experience for the viewer, right?
Not necessarily. The viewer’s experience with high-resolution content is affected by a number of factors; some are in the viewer’s control and some are in the broadcaster’s control.
Let’s consider the process of streaming live content to viewers, beginning with encoding, through transmission to the streaming server, service, or CDN, transcoding the content before sending it to viewers for playback. We can ask ourselves a number of important questions about each stage.
If you'd like a refresher on what 4K streaming is and why it's a superior resolution, read the What Does 4K Actually Mean? blog post. Or, check out this quick video:
While this question may sound simple, it can actually be quite complicated to answer. For example, do you intend to use a hardware encoder or a software (computer-based) encoder? I generally recommend people use a hardware encoder, as they are purpose-built for the task and will generally provide a more consistent, reliable output.
However, if you are using a software encoder, you’ll need to ensure that your computer is capable of acquiring, scaling, processing, mixing, and encoding the video at your desired frame rate and video bit rate. If going the software encoder path, I strongly recommend you dedicate the computer to this task and move other tasks (e.g. slides, lyrics, media presentation, lighting, sound, etc.) to other computers.
Three factors that will drastically affect your encoder’s ability to provide high-quality content are resolution, frame rate, and bit rate. The higher each of those values, the more work your encoder will have to do. Your choice of encoder hardware or software may limit your ability to provide the highest-quality video content. (Have a look at the BoxCaster Pro if you’re interested in the highest-quality 4Kp60 streaming!)
One final consideration: If your streaming server or service does not transcode for you, and if you want your viewers to have a smooth playback experience using adaptive streaming, your encoder will need to do even more work to provide all the playback levels in parallel. For example, to stream a 1080p30 broadcast, you’ll more than likely need to encode at 1080p30, 720p30, 480p30, 360p30, and maybe more. This is why I strongly recommend you utilize a streaming platform like BoxCast that provides cloud transcoding.
The majority of the streaming world still utilizes H.264 (also known as MPEG-4 AVC) to encode their video content for streaming. This is mostly because this codec is very widely supported by both streaming services and playback devices—it will work almost anywhere.
However, newer codecs, such as HEVC (also known as H.265) are promising significant improvements in quality and efficiency. While some encoders and streaming services support HEVC, support is still not widespread. The BoxCaster Pro utilizes HEVC in conjunction with the BoxCast Platform to provide significantly improved video quality at lower bit rates.
Curious about the differences between AVC (H.264) and HEVC (H.265)? Check out our other post comparing them:
Even with good compression, video content still requires a significant amount of bandwidth. Here’s a summary of video bit rates that several different streaming services recommend (obtained from pages at YouTube, Facebook, and Ustream):
In addition to the bandwidth required for video, you will need to add audio (typically in the 128-320 kbps range) and some small amount for overhead. Then double it, as you should plan to always stay at 50% of less of available bandwidth in case of disruptions.
So, for example, if you’re planning to stream a 1080p60 broadcast to YouTube, you might use 6 Mbps (in the recommended range of 4.5-9 Mbps) for video, 128 kbps for audio (YouTube’s recommended audio setting), and ~50 kbps for overhead; doubling this means you need at least 12.356 Mbps of total available bandwidth. (If you’re using the BoxCaster Pro with HEVC, you can get even better quality and need only 8.356 Mbps!)
Also, remember that if your streaming service does not provide cloud transcoding, you’ll need to add those up for every level you wish to provide to viewers. Here's more on upload speeds for 4K live streaming.
Not ready for 4K, but still need a high quality stream, this post covers the differences in 1080p and 720p HD streams:
In order for viewers to have a smooth playback experience across different devices with different capabilities in varying network conditions, you should provide several quality levels through adaptive streaming. One option is to encode and stream each of these levels from your on-premise encoder. This utilizes a lot of processing power and network bandwidth.
Another option is to send one high-quality stream from your on-premise encoder, and transcode to multiple quality levels in your streaming service.
Many streaming services (including free options like Facebook and YouTube) transcode in the cloud. The BoxCast Platform was one of the first streaming platforms to do so. I highly recommend you transcode in the cloud to conserve encoding power and network utilization while maintaining smooth playback for viewers.
The common belief is that more pixels means a higher-quality picture for viewers. But this isn’t necessarily true, thanks to the video compression process. When encoding for streaming, hardware and software encoders compress raw video using techniques like chroma subsampling, spatial image compression, and temporal motion compensation to reduce the bandwidth of the original video to about 1/1000th of its original size.
For a given encoded video bit rate, the compression algorithm will be able to achieve a better encoded video on a smaller video than on a larger video. In other words, the number of “encoded bits per pixel” is higher for lower resolutions.
What this means is that, depending on your video content (is it very static, like a conference speaker, or more dynamic, like a basketball game?) and video bit rate, your video may actually look better to viewers at 720p than at 1080p.
Here’s one example: we took the very popular “Jellyfish” video (commonly used in the industry for video testing) and encoded it to 4 Mbps at both 1080 and 720. We then used a tool from Netflix called VMAF (Video Multi-Method Assessment Fusion) to compare the encoded video to the original. The VMAF tool is essentially an algorithm for asking how an actual human would perceive the quality of an encoded video, providing scores from 100 (“exactly identical”) to 0 (“completely different/unwatchable”). While the 1080p video received a score of 73.1, the 720p video received a score of 76.8—meaning human viewers would actually prefer to watch the 720p video rather than the 1080p video.
We performed the same experiment (using H.264) across four different kinds of videos and found that on average, for bit rates less than 7 Mbps, 720p videos had a higher perceptual quality than 1080p videos.
If you take nothing else away from this article, remember this: unless you’re using HEVC, or both you and your viewers have very high internet bandwidth, your perceptual video quality will almost certainly be better at 720p than at 1080p.
Remember our chart above when deciding if we had enough bandwidth to stream? Your viewers will face a similar issue while downloading your stream’s content. While internet speeds do continue to improve globally, you’ll still have many viewers that are unable to download high-resolution, high-frame-rate content; all the more reason to ensure you’re providing adaptive streaming. Consider your audience and their internet—if the majority will not have the bandwidth to watch high-quality content, it may not yet be worth the investment.
Just like we can use HEVC on the ingest side to more efficiently use bandwidth, we can use HEVC on the viewer’s side to more efficiently use their bandwidth. Believe it or not, most viewers won’t be able to watch 4K content using AVC—it’s just too big. But many devices don’t yet support HEVC decoding. Consider where your viewers watch—OTT devices, mobile devices, Smart TVs, laptops and computers—to decide if they’ll be able to decode your high-quality content.
While we’ve stressed the importance of providing adaptive playback support for our streams, ultimately it is only as good as the device on which it’s playing. Some devices (I’m looking at you, Android!) just make poor choices about when to play higher-quality video rather than switch down to a lower level for smoother playback.
It’s important to consider your equipment, your content, your internet capabilities, your streaming service’s features, and your audience when deciding whether or not to provide higher-quality content for streaming. If you’re ready to take your live streaming to the next level, talk with a BoxCast live streaming specialist to find the perfect solution for you!
Here's some further reading you might find interesting: