It’s no secret that video loading times on the app are a bit slow, so I wanted to let you know why it’s happening, how we’re fixing it, and some of the necessary tradeoffs.
Why some videos load slow
Right now we download the entire video before starting to play it. This is essentially the same method that we used in Vine, and is part of the reason that we have been able to achieve seamless looping. When paired with a little bit of preloading, this method works pretty well with short videos (6 seconds) because the file size is low enough that loading isn’t usually very apparent.
But this also means that the longer a video gets, the longer it will take to load. This was slightly apparent with the move to 8 seconds, and far more apparent with the move to 16 seconds. That’s why loading times are quite slow on some videos. If we were to allow longer lengths, it would be basically unusable.
How we’re fixing it
We’re moving to a new format that allows us to play videos before they’re fully downloaded. For those if you that care, this format is called HLS (https://en.wikipedia.org/wiki/HTTP_Live_Streaming) and is the same format used on most streaming apps (Netflix, etc) along with many other video apps.
The net effect of using HLS will be extreme improvements in loading times — hopefully nearly instantaneous in good network conditions. The quality of videos should not be affected, but we will of course need to test this and adjust accordingly based on feedback. (We are working on other ways to make video quality even better but this is a separate thing.)
Unfortunately, the one issue with any sort of progressive download is that breaks the current way we implement seamless looping. This is why there is a slight “hiccup” in the looping implementation of basically every other app besides Byte and Vine. We don’t love this, but the speed improvements are obviously very important. So we’re currently building the current tradeoff in mind:
- Short videos are quick to download, so they will use the old implementation and support seamless looping
- Longer videos take longer to download, so they will use the new implementation and will have a slight hiccup when looping
We haven’t determined what the length cutoffs are going to be yet, but it’s probably something like 8s and below is “short”, and everything else is considered long. We will experiment with this and would like to hear your feedback.
The possible miracle
We have one person on our team, who I will call The Looping King. This person is responsible for the near seamless looping on our website (something no other company, including Vine, has achieved) and basically knows way more about this than anyone.
Anyway, The Looping King (TLK) is currently investigating ways we can build a custom implementation on our apps that allows both HLS and seamless looping. This is a pretty large effort, and is unproven, so it remains to be seen if we can pull it off. But we’re very hopeful.
That’s where we are now. We’re not too far off from being able to test the new format and will post another update when we get there. We’ll also keep you posted on TLK’s efforts.
P.S. Since the miracle scenario is something we all want to see, I encourage anyone who wants to let TLK know how much we appreciate their hard work.