Live Streaming to iOS, tvOS and Android Devices
Overview:
To stream live content to iOS and Android devices and HLS (HTTP Live Stream) is needed. This stream may either originate from a hardware encoder or software / cloud transcoder.
HLS is the only format supported by both platforms, and is the only format supported by iOS for live streaming.
https://developer.apple.com/streaming/
https://developer.android.com/guide/topics/media/media-formats.html#network
HLS is an Adaptive bitrate format, which means the stream must include several qualities at once. These secondary streams may either originate from the hardware encoder, or by created by software / cloud services.
Important note: At the end of this document, a short summary of “what to do” is offered.
Bitrates
For SD streams, the source should be no lesser than 2Mbps (5Mbps recommended) and no smaller than 720x576px (4:3) or 704x576 (16:9).
The lowest bitrate should always be an audio-only stream, that may be accompanied by a graphic slide like this:
It will usually be with a Logo of the client.
Normally a hardware encoder will allow for the addition of this slide. The total size of the audio only stream should be less than 64kbps, including this slide.
Uplink and selecting the profiles:
The stream must be uploaded to a compliant CDN, we recommend Akamai or Amazon.
In most countries, uplinks to the internet are expensive. Therefor it would be wise to consider uplinking a single stream and using a cloud transcoder (see compliant solutions section). In which case, they can take any file format the broadcast room or encoder can originate (it would not have to be HLS when uploading, the cloud solution would make that conversion in real time).
As mentioned previously, SD source streams should be no less than 2-3Mbps, and HD 5-8Mbps. 4k streams should be 10-15Mbps+. We recommend a dedicated uplink line, and pending how mission critical the stream is - having a redundant connection with two different ISPs.
An example for a recommended configuration profile:
Such profiles may be configured on a hardware encoder, in which case the dedicated uplink will have to be the sum of all the bitrates (in this example north of 25Mbps), or, alternately - just the top HD bitrate, then have a cloud service take care of creating the lower quality streams. In most cases that would be more cost-effective, as the uplink quite often is the most expensive element.
Compliant Solutions:
Cloud Solutions (you will need a link to your stream in any format to use these):
AWS Elemental, Akamai, Encoding.com ….
Hardware Encoders (if you do not have a link to a digital stream):
CiscoAnyRes Elemental, ATEME, Wirecast.
DIY (Do It Yourself) - if you already have an RTMP solution and you have high devops abilities in the organization:
Adobe Flash Media Live , Apple Segmenter tools
Geoblocking:
To block the display of the channel in the app (not the stream), you may do so through the Applicaster CMS. Applicaster uses MaxMind (https://www.maxmind.com/) Geoblocking, approved by all major studios.
In order to achieve protection of the content and not just the UX to access it, customer must block the stream itself through the CDN. We recommend Akamai and Amazon.
What the app needs:
In order to display a live channel in an app, the Applicaster CMS expects a valid HLS link, such as the streams (.m3u8 extension files) found in this document: https://developer.apple.com/streaming/examples/
http://developer.applicaster.com/docs/public/epg-ingestion
Short version: Do you have a stream of any digital format?
- If Yes: Pick Akamai Video or Amazon Elemental cloud services, enter the link to your stream, and export an multi-bitrate HLS manifest link (.m3u8) and stream it to the app.
- If Not: Acquire a hardware encoder, lease a dedicated and guaranteed 5Mbps upload connection (not download) to the internet from your ISP, and export to Akamai Video or Amazon cloud. Export an multi-bitrate HLS manifest link (.m3u8) and stream it to the app.
Comments
0 comments
Please sign in to leave a comment.