Top Banner
1
22

Approaches to Building Media Streaming Applications

Apr 16, 2017

Download

Software

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Approaches to Building Media Streaming Applications

1

Page 2: Approaches to Building Media Streaming Applications

2

Approaches to Building Media Streaming ApplicationsNazariy Mamrokha15/09/2016

Page 3: Approaches to Building Media Streaming Applications

3

Confidential

1. Introduction2. Main components of a streaming app3. Approaches to building streaming apps

Agenda

Page 4: Approaches to Building Media Streaming Applications

4

1. Introduction

Page 5: Approaches to Building Media Streaming Applications

5

Confidential

Wikipedia: Streaming media is multimedia that is constantly received by and presented to an end-user while being delivered by a provider.

What is streaming?

Page 6: Approaches to Building Media Streaming Applications

6

• Netfix states that 42.5 billion hours of video was streamed in 2015.

• In 2014, 'only' 29 billion hours were streamed

Why should we care?

Page 7: Approaches to Building Media Streaming Applications

7

• SVOD:- Netflix- HBO Now- Showtime- Vudu

• AVOD- Hulu- Crackle

• TVOD - iTunes- Amazon Instant Video

Most popular OTT streaming services

Page 8: Approaches to Building Media Streaming Applications

8

• Apple TV (2015)• Roku 4• Amazon Fire TV• Google Chromecast • Xbox• Playstation• Nvidia Shield Android TV

CNET Best media streamers 2016

Page 9: Approaches to Building Media Streaming Applications

9

2. Main components of a streaming app

Page 10: Approaches to Building Media Streaming Applications

10

Highlevel architecture of streaming service

Page 11: Approaches to Building Media Streaming Applications

11

• Content discovery and presentation• Content playback• Language and captions selections• Ads• Authentication and Payments• Analytics

Main components of a streaming app

Page 12: Approaches to Building Media Streaming Applications

12

•Free browsing•Smooth and Fast UX•Video in 1-2 clicks•Content

categorization: featured, most popular, genres, filtering, search

•Internationalization

Content presentation

•Content Posters•Title and

description•Bookmarking•Quality/rating

badges•More info (authors)•Recommendations

•User Entitlements•Various schemes:

OAuth/OAuth2.0, Adobe Pass, Akamai TVE

•Billing and purchases

Discovery Details Authorization Ads and Analytics

•Ad delivery formats: VAST2.0/3.0, SmartXML, server stitched

•Pre/mid/post rolls, interactive

•Ad capping and Resume playback

•Page and video tracking (GA/Omniture/DW/Conviva/Comscore)

Page 13: Approaches to Building Media Streaming Applications

13

• Adaptive to bandwidth- SD >2 Mbit/s  (480p)- HD >5 Mbit/s (720p, 1080i, 1080p)- UHD >9 Mbit/s (4K, 8K)

• User Controls: - Pause/Resume/Exit- FF/RW (1x,2x,4x,8x)- Seek, Instant replay- For audio: next/prev, shuffle/repeat- Progress bar

• Closed Captions (SMPTE-TT/EIA-608 /WebVTT/SRT)

• Audio track selection• Pre-buffering

Content Playback

Page 14: Approaches to Building Media Streaming Applications

14

3. Approaches to building streaming apps

Page 15: Approaches to Building Media Streaming Applications

15

Wikipedia: Adaptive streaming is a process that adjusts the quality of a video being delivered based on changing network conditions to ensure the best possible viewer experience.

What is Adaptive streaming?

Page 16: Approaches to Building Media Streaming Applications

16

• Http Based:- Adobe HTTP Dynamic Streaming- Apple HTTP Live Streaming - MPEG-DASH- Microsoft Media Server

• Transport protocols- RTSP- RTP

Adaptive Streaming Protocols

Page 17: Approaches to Building Media Streaming Applications

17

Confidential

Comparison of HTTP streaming technologies

Feature Adobe HDS Apple HLS Microsoft Smooth

MPEG–DASH

Deployment on Ordinary HTTP Servers

Official International Standard (e.g., ISO/IEC MPEG)

Multiple Audio Channels (e.g., Languages, Comments, etc.)

Flexible Content Protection with Common Encryption (DRM)

Closed Captions / Subtitles

Efficent Ad Insertion

Fast Channel Switching

Page 18: Approaches to Building Media Streaming Applications

18

#EXTM3U#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=232370,CODECS="mp4a.40.2,

avc1.4d4015"gear1/prog_index.m3u8#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=649879,CODECS="mp4a.40.2, avc1.4d401e"gear2/prog_index.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=991714,CODECS="mp4a.40.2, avc1.4d401e"gear3/prog_index.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1927833,CODECS="mp4a.40.2, avc1.4d401f"gear4/prog_index.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=41457,CODECS="mp4a.40.2"gear0/prog_index.m3u8

HLS Sample

Page 19: Approaches to Building Media Streaming Applications

19

• GStreamer – cross-platform multimedia framework. Supports HTTP/RTSP/MMS

• DirectsShow – windows based framework to perform operations with media files or streams.

• libVLC – cross-platform, GPL, core engine and the interface to the multimedia framework. VLC is build upon in.

• LIVE555 Streaming Media - RTP/RTCP/RTSP/SIP multimedia streaming• FFMPEG – cross-platform universal framework for media processing

C++ SDKS for streaming

Page 20: Approaches to Building Media Streaming Applications

20

Pipeline Based Architecture

Page 21: Approaches to Building Media Streaming Applications

21

• Qt based – cross platform, LGPL. Complete and consistent framework.• GIMP Toolkit – cross platform, LGPL. GUI toolkit only.• HTML5/JS based – rendering using Qt Port of WebKit. Platform dependant.

• Platform based, using capabilities of streaming platform.

Approaches to building UX/UI

Page 22: Approaches to Building Media Streaming Applications

22

Thank you!Q/A?