Data bandwidth for live streaming video

All these live streaming methods are easily accessible via my Python program that lightly wraps FFmpeg. It generates a command line that you can use directly, or copy/paste for future reference.


All the Periscope streaming types are tractable even with prepaid cellular plans, depending on how much you stream. The data bandwidth depends on the video content (lots of motion vs. talking head). I use Mbyte/minute as data plans are typically priced by the Megabyte, and we typically video stream for minutes not seconds.

1 Mbyte/minute = 133 kbps, so non-360 Periscope uses about 500 - 900 kbps data bandwidth.

Stream typemean (Mbyte/minute)median (Mbyte/minute)
Horiz #16.35.6
Horiz #25.24.3
Vert #14.34.1

SD: 960x540 resolution @ 30 fps

The specified bandwidth of SD Periscope is 896 kbps (800 kbps video + 96 kbps audio) or 6.7 Mbyte/minute max. My measurements below are within these limits.

HD: 1280x720 resolution @ 30 fps

HD streaming is available for Periscope Producer API. The total bandwidth is still limited to 896 kbps like standard definition streaming, so HD Periscope is intended for “talking head” type broadcasts, or those with slow motion.

360 video

For those with the proper 360 camera, 1440x720 resolution @ 30fps leads to 2.1 Mbps. This is more than twice the data bandwidth consumption of other Periscope modes, owing to the high spatiotemporal entropy typical of 360 videos.

YouTube Live

YouTube Live has several streaming modes from 240p to 4K @ 60 fps. I would recommend considering 360p to start, as many livestream viewers are on mobile, where more than 480p streaming is often redirected by the carrier to 480p (for those on cellular). YouTube Live 360p: 640x360 @ 30fps resolution, with data bandwidth of 400 - 1,000 kbps corresponding to 7.5 Mbyte/minute. Notice that despite the resolution of Periscope SD being higher, the video quality at 360p of YouTube Live is typically substantially higher than Periscope due to the higher bitrate for the resolution.