Video streaming applications stand among the top telecom businesses in 2020: the use of streaming services has grown by 43% in the US, 50% in the UK, and 60% in Germany. We researched the video streaming market and talked to Anatolii Zavialov, an iOS developer at CuriosityStream, to provide you with the most relevant insights for live video streaming app development.
For successful video streaming application development, learn how to:
How Does Video Streaming Work?
The videos you watch on streaming platforms are in fact composed of specifically-sized chunks that are rendered one after another. The size of each chunk depends on the video streaming protocol. There are two core video streaming protocols: MPEG-DASH, used for Android, and HLS, used for iOS.
MPEG-DASH segments videos into 2–4 second long chunks, while HLS by default splits videos into 10 second long chunks. Smaller chunks allow for better accommodation to the internet speed, which increases the quality of the end user's experience.
Adaptive bitrate has now become an indispensable feature in streaming application development. Each video segment is encoded at various quality levels, which ensures uninterrupted playback regardless of network fluctuations.
Consequently, when you have a poor internet connection, the chunk of the video you're currently watching is displayed with a lower bitrate. When the internet connection restores, the next chunk will come back to a high quality mode. That's the technology that is currently used by all video streaming giants like YouTube, Netflix, Apple, etc.
How to Build a Successful Video Streaming Service?
Core elements for the success of a video streaming service:
Choose the right server for your app
Develop an application with comfortable UI/UX
Continuously add useful features
Grow your content base relying on the needs of your subscribers
Technically, it all starts with a reliable CDN service. CDN is a global content delivery network of proxy servers and information centers. There's a host that distributes parts of videos to CDNs based on your geographic location.
As we're in Ukraine, it wouldn't be efficient to use an American server. We would have to continuously request a stream from the USA, which could potentially lead to speed delays. Instead of using the American server, we use the ones that are located in Europe.
If you don't need to implement some extraordinary features while you develop a live streaming app, using a ready-to-go standard player won't harm the success of your streaming app. We use such players daily, yet don't ever wonder about it.
For example, if you open any video from the Apple official website on your Mac, you'll see a standard player without any additional functional elements. However, if you need to develop a custom UI, you'll have to put effort into creating your own player.
The simplest solution for streaming application development is applying FFmpeg — a command-line tool for handling video operations. Basically, you send orders, and the system responds to your requests.
It’s also the most cost-efficient technology for implementing video streaming solutions. With the help of this software you can create, split, and organize a video into a playlist consisting of small chunks.
For sure, there are other ways to build a video streaming service, for example, provide a direct link to a video. However, in this case, your hardware should have a very high capacity, otherwise caching won't be possible.
There's a source (a server), where the videos are stored, and a CDN (in CuriosityStream's case). Chunks of videos are distributed to the CDN, and each user essentially requests chunks of videos. There are several players (solutions), and each streaming service decides which one to choose. CuriosityStream uses an AVplayer, which performs the majority of the tasks independently.
There are also video streaming protocols, which are methods for delivery of multimedia content over the internet. Apple has its own technology, HLS streaming. There are also other solutions, like RTMP and MPEG-DASH, which are used on Android and other OSs.
In 2019, Apple presented a low latency HLS. The renewed protocol transfers information more efficiently and allows to decrease the number of requests to the master server.
Technically, the video streaming process goes as follows — you request videos chunk by chunk, and the CDN in its turn delivers your requests to the master server, which then allows all other clients to collaborate with cached data. With the optimized version of HLS, there are multiple techniques to equalize the time delta.
iOS Developer at CuriosityStream
"The main prerequisite of success for a streaming service is not the choice of the right player or technology, but the availability of versatile and unique content to meet your every need. In my opinion, a high quality UI and UX also play an important part in the success of a streaming service."
There are several video streaming protocols to choose from:
- HTTP Live Streaming (HLS)
- Dynamic Adaptive Streaming over HTTP (MPEG-DASH)
- Real-Time Messaging Protocol (RTMP)
- Real-Time Streaming Protocol (RTSP)
- Microsoft Smooth Streaming (MSS)
- HTTP Dynamic Streaming (HDS)
Each of the listed protocols has its own specifics. For example, MPEG-DASH is used for Android, supports almost any format of encoding, and enables the use of adaptive bitrate streaming. HLS was presented by Apple and now supports the latest currently operating codec H.265, which allows for a quality twice greater than the one provided by the previous H.264 version.
A video streaming technology stack doesn't end with the above listed protocols — there's also a Web RTC protocol, which is more about online audio-visual communication. Online video communication and online data sharing and learning are possible with the help of this technology.
Background playback is the opportunity to preserve audio playing while you hide the application. On the iPad, there's a function that is called picture in picture — you press the button to turn the minimized player mode on, which means you can watch the video on any of your screens while also being busy handling other tasks on your iPad.
Such features are available on a variety of streaming services, but they may differ from service to service. For example, YouTube has its own technology for premium subscribers, which is available on iPhones and iPads. If you close the app, you don't have the opportunity to proceed watching the video, but you'll be able to listen to the audio.
Screen sharing is another must-have feature in streaming application development. To share a screen on Android gadgets, you can use Chrome cast, and for AppleTV you can turn on Airplay to watch a video on TV.
DRM (digital rights management) is another core feature for protection of the content owners' rights. It’s essential to introduce it in the process of live video streaming app development.
After the video has been adapted to a video streaming format, it gets encrypted with the help of media keys. The player communicates with the DRM server to make sure the license is relevant. The main license providers are Irdeto, EZDRM, Expressplay, and Axinom.
Individual recommendations and saving options
Some audio streaming services use machine learning and provide useful recommendations based on the customer's preferences automatically.
The preservation of the running status is another useful feature. It saves the place where you stopped watching the video last time. This means you can open the app on any of your devices (for example, start on AppleTV and then switch to your iPhone) and instantly continue watching the video from where you left off.
Extra functionality for people with reduced capabilities
Availability of translations and subtitles promotes your video streaming service and makes it accessible to a broader audience. Successful streaming application development must also include comfortable functionality for people with special needs.
For this purpose, CuriosityStream has recently added a VoiceOver to ensure people with poor eyesight can hear audio information accompanying what's currently going on on their screen.
iOS developer at CuriosityStream
"Each video streaming service has a different model. That's why all of them try to create a player with an incredibly useful UX. A lot depends on the server. It plays a huge role — how it's tuned, which CDNs are used, etc."
From the user’s standpoint, it's convenient to have a video streaming app offer the opportunity to watch at least a small part of content without registration. This helps them understand whether they want to proceed with the app.
The majority of video streaming applications use subscription models for monetization. Users generally pay monthly or yearly. This is the most popular model among streaming services. Your subscription is linked to your account and will work on all gadgets.
However, each video streaming service has its peculiarities. For example, Netflix works a bit differently — you have to visit the website, register, and buy a subscription. There's also AppleTV, which has their own-produced content, including TV series.
Apart from subscription, there's an option to buy a specific video on AppleTV. The majority of movies on AppleTV have a price per unit, while TV series can be watched as part of the subscription. There are also free streaming platforms — but in this case you'll have to watch tons of ads before the video starts.
You can either develop your own hosting or use one of the currently available options. In any case, it's better to use a CDN. This way, you'll have your data copied in multiple locations, which will ensure efficient content distribution.
It's more comfortable to interact with a server that is closer to you, as large distance will bring about considerable delays. For example, if you're having a video call between Ukraine and the US and the server is located on one of the sides, you can expect substantial delays, connection losses, and low quality of the video connection.
Depending on live video streaming app development timeframes and budget, you can decide whether to develop a custom hosting or use an existing one. Either option is costly, though the development of custom hosting will take much more time and effort.
You'll have to think through each aspect, from protocols and connections to database organization. So if you have a lot of time and money, you can build your own server.
Concerning the use of ready-to-go severs, you'll have to continuously pay for using them. It will eventually entail hefty expenditures if you have a large customer base. There are different types of currently available video streaming servers: for calls, video streaming, etc.
How Did the Quarantine Influence Video Streaming Services?
With the shift to work from home, the number of subscribers on video streaming services began to grow. People started to search for information on the internet more actively. As a result, all streaming and game platforms showed that the number of their online users has grown several fold.
CuriosityStream isn't an exception and has also grown online. In fact, their secret of success is simple — provide users with the content they want to watch in good supply. If you have content that a person can watch within a couple of days, they won't stay interested in your service after they finish up watching your content. Thus, the more content, the better for the end user.
With the increased number of customers, the back end development team's scope of work has also increased. They have to optimize the existing system to ensure users have a high quality experience while watching their favourite documentaries.
The number of subscribers increases, thus, the capacity has to grow too. Optimization is also crucial, because it helps to decrease expenditures on hostings.
The number of bugs has grown, and users started noticing them. Obviously, the absence of app crashes is one of the prerequisites of a successful video streaming application.
The main advice for businesses that are about to start streaming application development is to keep in step with the times. As for the current tendency — everything goes into the cloud, even cinemas, because people always want to watch something new.