approaches to building media streaming applications

22
1

Upload: globallogic-ukraine

Post on 16-Apr-2017

432 views

Category:

Software


2 download

TRANSCRIPT

1

2

Approaches to Building Media Streaming ApplicationsNazariy Mamrokha15/09/2016

3

Confidential

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

Agenda

4

1. Introduction

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?

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?

7

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

• AVOD- Hulu- Crackle

• TVOD - iTunes- Amazon Instant Video

Most popular OTT streaming services

8

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

CNET Best media streamers 2016

9

2. Main components of a streaming app

10

Highlevel architecture of streaming service

11

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

Main components of a streaming app

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)

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

14

3. Approaches to building streaming apps

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?

16

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

• Transport protocols- RTSP- RTP

Adaptive Streaming Protocols

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

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

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

20

Pipeline Based Architecture

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

22

Thank you!Q/A?