In part one of our series, ‘How to Make the Next Big Social Video App,’ CitrusBits Former Director of Product Management, Bradley Jefferson, answered crucial questions on how to approach building the next big social video app like TikTok.
Next up, CitrusBits Engineering Manager Tayyab Mahmood sheds light on prevalent technical questions devs are faced with when building a social video app.
Let’s explore the technologies that go into the creation of a social video app.
1. How do you choose the right video platform for your social video app?
Tayyab: The platform you choose depends on the business goals of your app. You need to ask yourself if your social video app will support short format videos or will it support VOD (video on demand) and live streaming.
Once you have an answer to the mentioned, you will then move onto creating proof of concepts for your app’s requirements to help find out the right video platform.
For instance, typically, if your app supports live streaming or ‘real-time’ streaming, you will be selecting a suitable low latency streaming platform, run an analysis of the protocols it supports to see whether it aligns with your requirements or not.
2. Is it advantageous to use a proprietary video platform over building a platform from scratch?
Tayyab: Well, it depends on your requirements. If you need a go-to-market solution, it is a rule of thumb to go with a proprietary video platform. For instance, we chose the third-party video-hosting solution, Agora, for building Erupt, a news and debate video app CitrusBits created for the Emmy-winning film producer Edward Walson and former ABC News/GMA producer Bryan Keinz.
On the other hand, if you have an abundance of technical resources, expertise, and time, you should definitely consider building a platform from scratch.
3. What are some of the technical challenges to consider in delivering a high-performance social video app?
Tayyab: Segment length and streaming protocols are both applied in transmissions and are two major challenges to be mindful of here. However, low latency streaming services address both of these to ensure smooth delivery of high-quality video at scale.
4. What are some of the ways to deliver the best video experience (i.e. low latency)?
Tayyab: Latency is an important factor that will have a major influence on your user’s streaming experience. Latency is not an issue with video-on-demand however, with real-time or live-streaming it can be rather problematic.
The lower the latency is, the closer to real-time the video will stream on a user’s device. However, lower latency is not without tradeoffs – video quality and buffering issues being some of those tradeoffs. It’s why you get low image quality on communication apps like Skype or WhatsApp video calls.
If your app features VOD or live-streaming then your best option will be to select the standard HLS (HTTP Live Streaming) or DASH (Dynamic Adaptive Streaming over HTTP) protocols. However, this would work best if a higher latency wouldn’t compromise your user’s video streaming experience. In that case, they are perfect – in terms of video quality – for VOD or live-streaming without user interaction.
And if it’s real-time video streaming you are going after then it means that your user is able to stream without any delays or lags. In this case, WebRTC (or web real-time communication) is the protocol you will need for delivering competitive live streams with sub-second latency.
This is an absolute for two-way communication situations such as online meetings and virtual classrooms.
5. What are CDNs and why are they important for video apps?
Tayyab: A video CDN – video content distribution network – is a group of servers spread out across many locations. These networks of servers are responsible for delivering live, and on-demand, high-quality videos to web-connected devices. They help deliver a clean streaming experience for the user of a social video app.
These specialized video streaming server networks accelerate delivery through caching, which stores content temporarily on multiple servers throughout the video CDN. When a viewer submits a request, the server caching content nearest the user’s location delivers the video.
6. What are the things to keep in mind when choosing a cloud hosting provider for video apps?
Tayyab: It’s vital to assess the reliability and capability of a service provider that you plan to entrust with your video platform. Some of the key things to consider:
- business health and processes
- administration support
- technical capabilities & processes
- security practices