SlideShare a Scribd company logo
OTT STREAMING PROTOCOLS AND
DIGITAL RIGHTS MANAGEMENT (DRM)
MUHAMMED ASIM YILDIZ
WHAT IS A STREAMING PROTOCOL?
 A Streaming Protocol is:
 A standardized delivery method for breaking video into chunks
 Sending it to the viewer
 Reassembling it on the viewer
WHY NEED STREAMING PROTOCOLS?
 Most digital video is designed for:
 Storage (small file sizes)
 Playback (universal playback)
 Most standart video formats are not designed for streaming
 In order to stream a video:
 Video needs to be converted to a streamable file
 A streamable file consists of chunks
 These chunks arrive sequentially and playback as recevied
STREAMING PROTOCOLS ADVANTAGES
 Streaming protocols can get much more complex
 Many are “adaptive bitrate” protocols
 Deliver the best quality that a viewer can support at any given time
 Some protocols focus on “reducing latency”
 Some protocols “delay” between an event and viewer
 Some protocols focus on “DRM”
 Some protocols work only on certain systems
PROTOCOL – CODEC – CONTAINER FORMAT
 Codec refers to “Video Compression Technology”
 Different codecs are used for different purposes
 For example:
 Apple ProRes is often used for video editing
 H.264 is widely used for online video
PROTOCOL – CODEC – CONTAINER FORMAT
 Format simply refers to container format of a video file
 .mp4, .m4v, .avi, .mkv
 A container format is like a “box” that contains:
 A video file
 An audio file
 Metadata
 Container format isn’t a central concept for live streamers
STREAMING IN REAL-LIFE
 Imagine that you’re a merchant, and you’re transporting clothing in bulk
 The clothing represents the video content
 The streaming codec is the machine that compresses the clothing into a bundle to save space
 The container format is the boxcar that these bundles are packed inside
 The streaming protocol is analogous to the railroad tracks, signals, and drivers who deliver it to the
destination
STREAMING IN OTT
 Generate multiple versions of the same content (e.g. different bitrates, spatial resolutions)
 Chop these versions into segments (e.g. two seconds)
 The segments are stored in a web-server and can be downloaded with HTTP GET requests
 The relationships between different versions is described by a manifest file
 The manifest file is provided to the client prior to the streaming session
 Manifest represents different qualities of the media content
 Manifest has individual segments of each quality with URLs
 This structure allows to bind to segments to the bitrate, among others (start time, duration of segments)
STREAMING PROTOCOLS
 HTTP LIVE STREAMING (HLS)
 DYNAMIC ADAPTIVE STREAMING over HTTP (MPEG-DASH)
 MICROSOFT SMOOTH STREAMING (MSS)
 REAL-TIME MESSAGING PROTOCOL (RTMP)
 WEB-RTC
 SECURE RELIABLE TRANSPORT (SRT)
 REAL-TIME STREAMING PROTOCOL (RTSP)
HTTP LIVE STREAMING
HLS
 Apple created it in 2009
 Built to drop Flash from iPhones
 Supported by:
 Desktop browsers
 Smart TVs
 Android and iOS mobile devices
 HTML5 players also natively supports
HTTP LIVE STREAMING
HLS
 HLS supports:
 Adaptive-bitrate streaming (High Quality)
 Supports the common H.264 codec
 Supports latest H.265 codec
 Secure streaming
 The major downside is high latency
DYNAMIC ADAPTIVE STREAMING OVER HTTP
MPEG-DASH
 The only international standardized solution
 Created in 2012
 Currently adopted by YouTube, Netflix etc.
 Most big companies have contributed to standardization
DYNAMIC ADAPTIVE STREAMING OVER HTTP
MPEG-DASH
 MPEG-DASH supports:
 Adaptive-bitrate streaming (High Quality)
 Codec agnostic (can be used with almost any streaming encoding)
 It supports standards-based APIs for browser based DRMs:
 Encrypted Media Extensions (EME)
 Media Source Extensions (MSE)
 The major downside is no compatibility with Apple Devices/iOS
MICROSOFT SMOOTH STREAMING
MSS
 Microsoft created it in 2008
 Targeting the smooth delivery of HD contents over IIS
 Based on fragmented MP4 files
MICROSOFT SMOOTH STREAMING
MSS
 MSS supports:
 Adaptive-bitrate streaming (High Quality)
 Includes CPU utilization for adaptive-bitrate streaming
 Supports the common H.264 codec
 The major downside is MSS limits the use of Smooth Streaming to CDNs using Microsoft Products
STREAMING
COMPARISO
N
STREAMING
COMPARISO
N
STREAMING
COMPARISO
N
DIGITAL RIGHTS MANAGEMENT
DRM
 DRM refers to the algorithms and processes
 DRM enforces copyright compliance when consuming video content
 Without DRM, content can be easily copied
 DRM is not visible to the consumers
 DRM is also used offline to provide copyright protection for CDs, DVDs, and BluRays
DRM TECHNOLOGIES
 Fairplay: Cipher Block Chaining encryption
 The only option for Safari and is only used by Apple devices
 Widevine: Developed by Widevine Technologies, bought by Google
 Used on Android Devices natively, in Chrome, Edge (soon), Roku, Smart TVs
 PlayReady: developed and maintained by Microsoft
 Supported on Windows, most set-top boxes and TVs
DRM
TECHNOLOGIES
DRM
TECHNOLOGIES
DRM IN REAL
LIFE?
DRM IN OTT?
DRM ENCRYPTION KEYWORDS
COMMON MEDIA APPLICATION FORMAT (CMAF)
 There are primarily two protocols in use today – MPEG-DASH and HLS
 MPEG-DASH uses the mp4 container and HLS uses the MPEG-TS (ts) container for its video files
 Duplicate contents (doubled storage size)
 When also adding DRM
 If we use the 3 hypothetical DRM providers with 3 different encryption standard, then we need 2*3=6 copies of
the video
 The CMAF specification was created
 Store files in the fragmented mp4 container format (fmp4)
 With support from both MPEG-DASH and HLS, we now create only one set of videos, store it in fmp4 format
DRM ENCRYPTION KEYWORDS
COMMON ENCRYPTION SPECIFICATION (CENC)
 If different DRM technologies use different encryption standards
 We still need to store multiple copies of each file
 For this purpose, the MPEG developed the CNEC
 Videos can be encrypted using either CENC (AES-128 Counter-CTR) or CBCS (AES-128 Cipher Block Chaining-CBC)
 The implication of CENC
 A content provider needs to encrypt videos only once and any decryption module can decrypt it
 Note: Exposing the encryption algorithm is not a problem as long as the keys are strongly protected.
DRM ENCRYPTION KEYWORDS
ADVANCED ENCRYPTION STANDARD (AES)
 AES is a symmetric-key algorithm: encryption and decryption are performed using the same key
 It has three variants based on the key-length:
 128, 192, and 256 bits. The longer the key, the harder it is to crack.
 Cracking the AES-128 without the key would require a “billion times a billion years” and a super-
computer
HOW DRM WORKS?
ENCRYPTION
 Communications between the requesting playback software and the license server are encrypted
 Each segment is encrypted according to the MPEG Common Encryption (CENC) specification
 The MPEG-CENC standard is comprised of XML style formats
 The MPEG-CENC standard requires a minimum of a key and key id to run
 Standard content encryption is done according to the Advanced Encryption Standard (AES)
 Using 128-bit keys and a Cipher Block
 Cipher block is either Counter Mode (CTR) or Cipher Block Chaining (CBC)
 Only the audio and video data within a segment is encrypted
DRM DECRYPTION KEYWORDS
ENCRYPTED MEDIA EXTENSIONS (EME)
 Encrypted Media Extensions (EME) is a JavaScript API
 EME is an extension to the HTMLMediaElement specification
 EME provides an API that enables web applications to interact with content protection systems
 EME allows playback of encrypted audio and video
 EME is designed to enable the same app and encrypted files to be used in any browser, regardless of the
underlying protection system
DRM DECRYPTION KEYWORDS
CONTENT DECRYPTION MODULE (CDM)
 Content Decryption Module (CDM) is a software that decrypts and optionally, decodes + displays the
video.
 Every DRM provider provides its own:
 Mechanism to create a license request (using the KeyID, device identifier, signing the request, etc.)
 Mechanism to understand the license response received from the DRM License Server (the response is encrypted
too) and extract the decryption key
 Rules around storing the license locally on the client, license renewal, expiry, etc
 CDMs (Content Decryption Modules) is built into browsers such as Chrome, Firefox, Microsoft Edge,
Safari
DRM FLOW
 Obtain the movie & its manifest from the CDN
 Extract the KeyID from the manifest
 Create the license request
 Send the license request to the license server
 Wait, listen, and receive the response from the license server.
 Use the decryption key from the server to decrypt the content
 Decode the decrypted content
 Display the decoded movie
HOW DRM WORKS?
DECRYPTION
 When a web player identifies protected content:
 It calls on processes and interfaces defined by Encrypted Media Extensions (EME)
 Browsers will initiate a license request process
 License requests are generated by Content Decryption Module (CDM )(all of the decryption is done by
CDM)
 Passed to the players through the EME (EME is just simply an interface)
 The player calls the appropriate function on the EME interface
 Then the sessions are updated by the CDM
 The EME interfaces with the CDM handles the decryption of the segments on browser or OS level
HOW DRM WORKS?
CLIENT-SIDE
 The license acquisition using the EME starts from the playback client
 Creating a key session unique to the client, device, and the metadata found in the segments
 The CDM then generates a signed key message.
 The client then sends then secured message to the license server
 The license server returns the requested license
 With the resulting decision of whether or not the client is granted playback rights to the requested content
 If not, playback is halted and an error is shown.
 In successful communications scenarios, the client updates the session data with a returned license
 The content decryption is handled fully by the CDM
 In some circumstances, the license is cached for a set time and can be used to playback protected content offline
 The license and the decrypted data must not be accessible to clients other than the licensed content requester
 Therefore, the private keys and decrypted data are kept in a secure environment within the browser, operating system, and hardware
(if supported), like Trusted Execution Environments.
THANK YOU MUHAMMED ASIM YILDIZ

More Related Content

What's hot

How Netflix Tunes Amazon EC2 Instances for Performance - CMP325 - re:Invent 2017
How Netflix Tunes Amazon EC2 Instances for Performance - CMP325 - re:Invent 2017How Netflix Tunes Amazon EC2 Instances for Performance - CMP325 - re:Invent 2017
How Netflix Tunes Amazon EC2 Instances for Performance - CMP325 - re:Invent 2017
Amazon Web Services
 
What Linux can learn from Solaris performance and vice-versa
What Linux can learn from Solaris performance and vice-versaWhat Linux can learn from Solaris performance and vice-versa
What Linux can learn from Solaris performance and vice-versa
Brendan Gregg
 
Android's HIDL: Treble in the HAL
Android's HIDL: Treble in the HALAndroid's HIDL: Treble in the HAL
Android's HIDL: Treble in the HAL
Opersys inc.
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅
NAVER D2
 
Blazing Performance with Flame Graphs
Blazing Performance with Flame GraphsBlazing Performance with Flame Graphs
Blazing Performance with Flame Graphs
Brendan Gregg
 
より高品質なメディアサービスを目指す ABEMA の技術進化
より高品質なメディアサービスを目指す ABEMA の技術進化より高品質なメディアサービスを目指す ABEMA の技術進化
より高品質なメディアサービスを目指す ABEMA の技術進化
Yusuke Goto
 
Grafana.pptx
Grafana.pptxGrafana.pptx
Grafana.pptx
Bhushan Rane
 
A deep dive into Android OpenSource Project(AOSP)
A deep dive into Android OpenSource Project(AOSP)A deep dive into Android OpenSource Project(AOSP)
A deep dive into Android OpenSource Project(AOSP)
Siji Sunny
 
Nginx performance monitoring with Dynatrace
Nginx performance monitoring with DynatraceNginx performance monitoring with Dynatrace
Nginx performance monitoring with DynatraceHarald Zeitlhofer
 
Deep Dive into the AOSP
Deep Dive into the AOSPDeep Dive into the AOSP
Deep Dive into the AOSP
Dr. Ketan Parmar
 
import rdma: zero-copy networking with RDMA and Python
import rdma: zero-copy networking with RDMA and Pythonimport rdma: zero-copy networking with RDMA and Python
import rdma: zero-copy networking with RDMA and Pythongroveronline
 
LISA2019 Linux Systems Performance
LISA2019 Linux Systems PerformanceLISA2019 Linux Systems Performance
LISA2019 Linux Systems Performance
Brendan Gregg
 
I/O仮想化最前線〜ネットワークI/Oを中心に〜
I/O仮想化最前線〜ネットワークI/Oを中心に〜I/O仮想化最前線〜ネットワークI/Oを中心に〜
I/O仮想化最前線〜ネットワークI/Oを中心に〜
Ryousei Takano
 
DPDK
DPDKDPDK
DPDK
ymtech
 
eBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to UserspaceeBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to Userspace
SUSE Labs Taipei
 
The Android graphics path, in depth
The Android graphics path, in depthThe Android graphics path, in depth
The Android graphics path, in depth
Chris Simmonds
 
kubernetes를 부탁해~ Prometheus 기반 Monitoring 구축&활용기
kubernetes를 부탁해~ Prometheus 기반 Monitoring 구축&활용기kubernetes를 부탁해~ Prometheus 기반 Monitoring 구축&활용기
kubernetes를 부탁해~ Prometheus 기반 Monitoring 구축&활용기
Jinsu Moon
 
Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...
Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...
Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...
Christian Posta
 
Android media codec 사용하기
Android media codec 사용하기Android media codec 사용하기
Android media codec 사용하기Taehwan kwon
 
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
VMware Tanzu
 

What's hot (20)

How Netflix Tunes Amazon EC2 Instances for Performance - CMP325 - re:Invent 2017
How Netflix Tunes Amazon EC2 Instances for Performance - CMP325 - re:Invent 2017How Netflix Tunes Amazon EC2 Instances for Performance - CMP325 - re:Invent 2017
How Netflix Tunes Amazon EC2 Instances for Performance - CMP325 - re:Invent 2017
 
What Linux can learn from Solaris performance and vice-versa
What Linux can learn from Solaris performance and vice-versaWhat Linux can learn from Solaris performance and vice-versa
What Linux can learn from Solaris performance and vice-versa
 
Android's HIDL: Treble in the HAL
Android's HIDL: Treble in the HALAndroid's HIDL: Treble in the HAL
Android's HIDL: Treble in the HAL
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅
 
Blazing Performance with Flame Graphs
Blazing Performance with Flame GraphsBlazing Performance with Flame Graphs
Blazing Performance with Flame Graphs
 
より高品質なメディアサービスを目指す ABEMA の技術進化
より高品質なメディアサービスを目指す ABEMA の技術進化より高品質なメディアサービスを目指す ABEMA の技術進化
より高品質なメディアサービスを目指す ABEMA の技術進化
 
Grafana.pptx
Grafana.pptxGrafana.pptx
Grafana.pptx
 
A deep dive into Android OpenSource Project(AOSP)
A deep dive into Android OpenSource Project(AOSP)A deep dive into Android OpenSource Project(AOSP)
A deep dive into Android OpenSource Project(AOSP)
 
Nginx performance monitoring with Dynatrace
Nginx performance monitoring with DynatraceNginx performance monitoring with Dynatrace
Nginx performance monitoring with Dynatrace
 
Deep Dive into the AOSP
Deep Dive into the AOSPDeep Dive into the AOSP
Deep Dive into the AOSP
 
import rdma: zero-copy networking with RDMA and Python
import rdma: zero-copy networking with RDMA and Pythonimport rdma: zero-copy networking with RDMA and Python
import rdma: zero-copy networking with RDMA and Python
 
LISA2019 Linux Systems Performance
LISA2019 Linux Systems PerformanceLISA2019 Linux Systems Performance
LISA2019 Linux Systems Performance
 
I/O仮想化最前線〜ネットワークI/Oを中心に〜
I/O仮想化最前線〜ネットワークI/Oを中心に〜I/O仮想化最前線〜ネットワークI/Oを中心に〜
I/O仮想化最前線〜ネットワークI/Oを中心に〜
 
DPDK
DPDKDPDK
DPDK
 
eBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to UserspaceeBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to Userspace
 
The Android graphics path, in depth
The Android graphics path, in depthThe Android graphics path, in depth
The Android graphics path, in depth
 
kubernetes를 부탁해~ Prometheus 기반 Monitoring 구축&활용기
kubernetes를 부탁해~ Prometheus 기반 Monitoring 구축&활용기kubernetes를 부탁해~ Prometheus 기반 Monitoring 구축&활용기
kubernetes를 부탁해~ Prometheus 기반 Monitoring 구축&활용기
 
Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...
Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...
Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...
 
Android media codec 사용하기
Android media codec 사용하기Android media codec 사용하기
Android media codec 사용하기
 
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
 

Similar to Ott Streaming Protocols and DRM

Digital Rights Management in Websites.pptx
Digital Rights Management in Websites.pptxDigital Rights Management in Websites.pptx
Digital Rights Management in Websites.pptx
Lahiru Jayakody
 
1_MWS2018_Tutorial1_Pham_Internet Delivered Media.pdf
1_MWS2018_Tutorial1_Pham_Internet Delivered Media.pdf1_MWS2018_Tutorial1_Pham_Internet Delivered Media.pdf
1_MWS2018_Tutorial1_Pham_Internet Delivered Media.pdf
AliIssa53
 
Videostream compression in iOS
Videostream compression in iOSVideostream compression in iOS
Videostream compression in iOS
*instinctools
 
4 multimedia elements - video
4   multimedia elements - video4   multimedia elements - video
4 multimedia elements - videoKelly Bauer
 
Windows7: Video Improvements
Windows7: Video ImprovementsWindows7: Video Improvements
Windows7: Video Improvementswonderu
 
FMS 3.5
FMS 3.5FMS 3.5
FMS 3.5
Daniel Ramos
 
Codecs
CodecsCodecs
Codecs
Arpan Patel
 
An Introduction to castLabs
An Introduction to castLabs An Introduction to castLabs
An Introduction to castLabs
JamesHynard1
 
Video Streaming - 4.ppt
Video Streaming - 4.pptVideo Streaming - 4.ppt
Video Streaming - 4.pptVideoguy
 
CommTech Talks: Challenges for Video on Demand (VoD) services
CommTech Talks: Challenges for Video on Demand (VoD) servicesCommTech Talks: Challenges for Video on Demand (VoD) services
CommTech Talks: Challenges for Video on Demand (VoD) services
Antonio Capone
 
DRM Basics With Irdeto and Bitmovin
DRM Basics With Irdeto and BitmovinDRM Basics With Irdeto and Bitmovin
DRM Basics With Irdeto and Bitmovin
Bitmovin Inc
 
Azure media services
Azure media servicesAzure media services
Azure media services
Raju Kumar
 
Media Encoding
Media Encoding Media Encoding
Media Encoding
Phillip Doyle
 
Video compression
Video compressionVideo compression
Video compression
DarkNight14
 
Azure Media Services Step-by-Step Tutorial Docs Series - Part 6
Azure Media Services   Step-by-Step Tutorial Docs Series - Part 6Azure Media Services   Step-by-Step Tutorial Docs Series - Part 6
Azure Media Services Step-by-Step Tutorial Docs Series - Part 6
Shige Fukushima
 

Similar to Ott Streaming Protocols and DRM (20)

Slide
SlideSlide
Slide
 
Digital Rights Management in Websites.pptx
Digital Rights Management in Websites.pptxDigital Rights Management in Websites.pptx
Digital Rights Management in Websites.pptx
 
1_MWS2018_Tutorial1_Pham_Internet Delivered Media.pdf
1_MWS2018_Tutorial1_Pham_Internet Delivered Media.pdf1_MWS2018_Tutorial1_Pham_Internet Delivered Media.pdf
1_MWS2018_Tutorial1_Pham_Internet Delivered Media.pdf
 
Videostream compression in iOS
Videostream compression in iOSVideostream compression in iOS
Videostream compression in iOS
 
4 multimedia elements - video
4   multimedia elements - video4   multimedia elements - video
4 multimedia elements - video
 
Windows7: Video Improvements
Windows7: Video ImprovementsWindows7: Video Improvements
Windows7: Video Improvements
 
WEEK 1
WEEK 1WEEK 1
WEEK 1
 
FMS 3.5
FMS 3.5FMS 3.5
FMS 3.5
 
Codecs
CodecsCodecs
Codecs
 
An Introduction to castLabs
An Introduction to castLabs An Introduction to castLabs
An Introduction to castLabs
 
Video Streaming - 4.ppt
Video Streaming - 4.pptVideo Streaming - 4.ppt
Video Streaming - 4.ppt
 
CommTech Talks: Challenges for Video on Demand (VoD) services
CommTech Talks: Challenges for Video on Demand (VoD) servicesCommTech Talks: Challenges for Video on Demand (VoD) services
CommTech Talks: Challenges for Video on Demand (VoD) services
 
DRM Basics With Irdeto and Bitmovin
DRM Basics With Irdeto and BitmovinDRM Basics With Irdeto and Bitmovin
DRM Basics With Irdeto and Bitmovin
 
Mips track a
Mips   track aMips   track a
Mips track a
 
Azure media services
Azure media servicesAzure media services
Azure media services
 
Media Encoding
Media Encoding Media Encoding
Media Encoding
 
Video compression
Video compressionVideo compression
Video compression
 
Azure Media Services Step-by-Step Tutorial Docs Series - Part 6
Azure Media Services   Step-by-Step Tutorial Docs Series - Part 6Azure Media Services   Step-by-Step Tutorial Docs Series - Part 6
Azure Media Services Step-by-Step Tutorial Docs Series - Part 6
 
video compression2
video compression2video compression2
video compression2
 
video compression2
video compression2video compression2
video compression2
 

More from ASIMYILDIZ

Javascript on Server-Side
Javascript on Server-SideJavascript on Server-Side
Javascript on Server-Side
ASIMYILDIZ
 
Software Design Principles (SOLID)
Software Design Principles (SOLID)Software Design Principles (SOLID)
Software Design Principles (SOLID)
ASIMYILDIZ
 
Redux Thunk
Redux ThunkRedux Thunk
Redux Thunk
ASIMYILDIZ
 
React Native
React NativeReact Native
React Native
ASIMYILDIZ
 
Major Programming Paradigms
Major Programming ParadigmsMajor Programming Paradigms
Major Programming Paradigms
ASIMYILDIZ
 
Temiz Kod
Temiz KodTemiz Kod
Temiz Kod
ASIMYILDIZ
 

More from ASIMYILDIZ (6)

Javascript on Server-Side
Javascript on Server-SideJavascript on Server-Side
Javascript on Server-Side
 
Software Design Principles (SOLID)
Software Design Principles (SOLID)Software Design Principles (SOLID)
Software Design Principles (SOLID)
 
Redux Thunk
Redux ThunkRedux Thunk
Redux Thunk
 
React Native
React NativeReact Native
React Native
 
Major Programming Paradigms
Major Programming ParadigmsMajor Programming Paradigms
Major Programming Paradigms
 
Temiz Kod
Temiz KodTemiz Kod
Temiz Kod
 

Recently uploaded

GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 

Recently uploaded (20)

GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 

Ott Streaming Protocols and DRM

  • 1. OTT STREAMING PROTOCOLS AND DIGITAL RIGHTS MANAGEMENT (DRM) MUHAMMED ASIM YILDIZ
  • 2. WHAT IS A STREAMING PROTOCOL?  A Streaming Protocol is:  A standardized delivery method for breaking video into chunks  Sending it to the viewer  Reassembling it on the viewer
  • 3. WHY NEED STREAMING PROTOCOLS?  Most digital video is designed for:  Storage (small file sizes)  Playback (universal playback)  Most standart video formats are not designed for streaming  In order to stream a video:  Video needs to be converted to a streamable file  A streamable file consists of chunks  These chunks arrive sequentially and playback as recevied
  • 4. STREAMING PROTOCOLS ADVANTAGES  Streaming protocols can get much more complex  Many are “adaptive bitrate” protocols  Deliver the best quality that a viewer can support at any given time  Some protocols focus on “reducing latency”  Some protocols “delay” between an event and viewer  Some protocols focus on “DRM”  Some protocols work only on certain systems
  • 5. PROTOCOL – CODEC – CONTAINER FORMAT  Codec refers to “Video Compression Technology”  Different codecs are used for different purposes  For example:  Apple ProRes is often used for video editing  H.264 is widely used for online video
  • 6. PROTOCOL – CODEC – CONTAINER FORMAT  Format simply refers to container format of a video file  .mp4, .m4v, .avi, .mkv  A container format is like a “box” that contains:  A video file  An audio file  Metadata  Container format isn’t a central concept for live streamers
  • 7. STREAMING IN REAL-LIFE  Imagine that you’re a merchant, and you’re transporting clothing in bulk  The clothing represents the video content  The streaming codec is the machine that compresses the clothing into a bundle to save space  The container format is the boxcar that these bundles are packed inside  The streaming protocol is analogous to the railroad tracks, signals, and drivers who deliver it to the destination
  • 8. STREAMING IN OTT  Generate multiple versions of the same content (e.g. different bitrates, spatial resolutions)  Chop these versions into segments (e.g. two seconds)  The segments are stored in a web-server and can be downloaded with HTTP GET requests  The relationships between different versions is described by a manifest file  The manifest file is provided to the client prior to the streaming session  Manifest represents different qualities of the media content  Manifest has individual segments of each quality with URLs  This structure allows to bind to segments to the bitrate, among others (start time, duration of segments)
  • 9. STREAMING PROTOCOLS  HTTP LIVE STREAMING (HLS)  DYNAMIC ADAPTIVE STREAMING over HTTP (MPEG-DASH)  MICROSOFT SMOOTH STREAMING (MSS)  REAL-TIME MESSAGING PROTOCOL (RTMP)  WEB-RTC  SECURE RELIABLE TRANSPORT (SRT)  REAL-TIME STREAMING PROTOCOL (RTSP)
  • 10. HTTP LIVE STREAMING HLS  Apple created it in 2009  Built to drop Flash from iPhones  Supported by:  Desktop browsers  Smart TVs  Android and iOS mobile devices  HTML5 players also natively supports
  • 11. HTTP LIVE STREAMING HLS  HLS supports:  Adaptive-bitrate streaming (High Quality)  Supports the common H.264 codec  Supports latest H.265 codec  Secure streaming  The major downside is high latency
  • 12. DYNAMIC ADAPTIVE STREAMING OVER HTTP MPEG-DASH  The only international standardized solution  Created in 2012  Currently adopted by YouTube, Netflix etc.  Most big companies have contributed to standardization
  • 13. DYNAMIC ADAPTIVE STREAMING OVER HTTP MPEG-DASH  MPEG-DASH supports:  Adaptive-bitrate streaming (High Quality)  Codec agnostic (can be used with almost any streaming encoding)  It supports standards-based APIs for browser based DRMs:  Encrypted Media Extensions (EME)  Media Source Extensions (MSE)  The major downside is no compatibility with Apple Devices/iOS
  • 14. MICROSOFT SMOOTH STREAMING MSS  Microsoft created it in 2008  Targeting the smooth delivery of HD contents over IIS  Based on fragmented MP4 files
  • 15. MICROSOFT SMOOTH STREAMING MSS  MSS supports:  Adaptive-bitrate streaming (High Quality)  Includes CPU utilization for adaptive-bitrate streaming  Supports the common H.264 codec  The major downside is MSS limits the use of Smooth Streaming to CDNs using Microsoft Products
  • 19. DIGITAL RIGHTS MANAGEMENT DRM  DRM refers to the algorithms and processes  DRM enforces copyright compliance when consuming video content  Without DRM, content can be easily copied  DRM is not visible to the consumers  DRM is also used offline to provide copyright protection for CDs, DVDs, and BluRays
  • 20. DRM TECHNOLOGIES  Fairplay: Cipher Block Chaining encryption  The only option for Safari and is only used by Apple devices  Widevine: Developed by Widevine Technologies, bought by Google  Used on Android Devices natively, in Chrome, Edge (soon), Roku, Smart TVs  PlayReady: developed and maintained by Microsoft  Supported on Windows, most set-top boxes and TVs
  • 25.
  • 26.
  • 27. DRM ENCRYPTION KEYWORDS COMMON MEDIA APPLICATION FORMAT (CMAF)  There are primarily two protocols in use today – MPEG-DASH and HLS  MPEG-DASH uses the mp4 container and HLS uses the MPEG-TS (ts) container for its video files  Duplicate contents (doubled storage size)  When also adding DRM  If we use the 3 hypothetical DRM providers with 3 different encryption standard, then we need 2*3=6 copies of the video  The CMAF specification was created  Store files in the fragmented mp4 container format (fmp4)  With support from both MPEG-DASH and HLS, we now create only one set of videos, store it in fmp4 format
  • 28. DRM ENCRYPTION KEYWORDS COMMON ENCRYPTION SPECIFICATION (CENC)  If different DRM technologies use different encryption standards  We still need to store multiple copies of each file  For this purpose, the MPEG developed the CNEC  Videos can be encrypted using either CENC (AES-128 Counter-CTR) or CBCS (AES-128 Cipher Block Chaining-CBC)  The implication of CENC  A content provider needs to encrypt videos only once and any decryption module can decrypt it  Note: Exposing the encryption algorithm is not a problem as long as the keys are strongly protected.
  • 29. DRM ENCRYPTION KEYWORDS ADVANCED ENCRYPTION STANDARD (AES)  AES is a symmetric-key algorithm: encryption and decryption are performed using the same key  It has three variants based on the key-length:  128, 192, and 256 bits. The longer the key, the harder it is to crack.  Cracking the AES-128 without the key would require a “billion times a billion years” and a super- computer
  • 30. HOW DRM WORKS? ENCRYPTION  Communications between the requesting playback software and the license server are encrypted  Each segment is encrypted according to the MPEG Common Encryption (CENC) specification  The MPEG-CENC standard is comprised of XML style formats  The MPEG-CENC standard requires a minimum of a key and key id to run  Standard content encryption is done according to the Advanced Encryption Standard (AES)  Using 128-bit keys and a Cipher Block  Cipher block is either Counter Mode (CTR) or Cipher Block Chaining (CBC)  Only the audio and video data within a segment is encrypted
  • 31.
  • 32. DRM DECRYPTION KEYWORDS ENCRYPTED MEDIA EXTENSIONS (EME)  Encrypted Media Extensions (EME) is a JavaScript API  EME is an extension to the HTMLMediaElement specification  EME provides an API that enables web applications to interact with content protection systems  EME allows playback of encrypted audio and video  EME is designed to enable the same app and encrypted files to be used in any browser, regardless of the underlying protection system
  • 33. DRM DECRYPTION KEYWORDS CONTENT DECRYPTION MODULE (CDM)  Content Decryption Module (CDM) is a software that decrypts and optionally, decodes + displays the video.  Every DRM provider provides its own:  Mechanism to create a license request (using the KeyID, device identifier, signing the request, etc.)  Mechanism to understand the license response received from the DRM License Server (the response is encrypted too) and extract the decryption key  Rules around storing the license locally on the client, license renewal, expiry, etc  CDMs (Content Decryption Modules) is built into browsers such as Chrome, Firefox, Microsoft Edge, Safari
  • 34. DRM FLOW  Obtain the movie & its manifest from the CDN  Extract the KeyID from the manifest  Create the license request  Send the license request to the license server  Wait, listen, and receive the response from the license server.  Use the decryption key from the server to decrypt the content  Decode the decrypted content  Display the decoded movie
  • 35.
  • 36.
  • 37. HOW DRM WORKS? DECRYPTION  When a web player identifies protected content:  It calls on processes and interfaces defined by Encrypted Media Extensions (EME)  Browsers will initiate a license request process  License requests are generated by Content Decryption Module (CDM )(all of the decryption is done by CDM)  Passed to the players through the EME (EME is just simply an interface)  The player calls the appropriate function on the EME interface  Then the sessions are updated by the CDM  The EME interfaces with the CDM handles the decryption of the segments on browser or OS level
  • 38. HOW DRM WORKS? CLIENT-SIDE  The license acquisition using the EME starts from the playback client  Creating a key session unique to the client, device, and the metadata found in the segments  The CDM then generates a signed key message.  The client then sends then secured message to the license server  The license server returns the requested license  With the resulting decision of whether or not the client is granted playback rights to the requested content  If not, playback is halted and an error is shown.  In successful communications scenarios, the client updates the session data with a returned license  The content decryption is handled fully by the CDM  In some circumstances, the license is cached for a set time and can be used to playback protected content offline  The license and the decrypted data must not be accessible to clients other than the licensed content requester  Therefore, the private keys and decrypted data are kept in a secure environment within the browser, operating system, and hardware (if supported), like Trusted Execution Environments.
  • 39. THANK YOU MUHAMMED ASIM YILDIZ

Editor's Notes

  1. Basically, protocols are technical processes that facilitate the transfer of data from one program to another. In streaming, this means the transfer of your video files to and from your encoder, streaming host, and eventually, the video player where your audience views your stream.
  2. As a consequence, each client will first request the manifest that contains the temporal and structural information for the media content, and based on that information it will request the individual segments that fit best for its requirements. The adaptation to the bitrate or spatial resolution is done on the client-side for each segment, e.g., the client can switch to a higher bitrate – if bandwidth permits – on a per-segment basis, or to a lower bitrate – if bandwidth decreases.  This has several advantages because the client knows its capabilities such as the received throughput, delay, device capabilities (e.g., screen resolution), etc. best.
  3.  H.265 codec, which delivers twice the video quality at the same file size as H.264.
  4. Microsoft, Adobe, Apple, Samsung, Akamai, Cisco, Dolby, Ericsson, Qualcomm, Intel, Bitmovin
  5. Microsoft also includes the CPU utilization as an indicator for the stream switching decision which is especially valuable for mobile devices such as smartphones and tablets. This means that if the CPU utilization is high, the client reduces the stream quality and resolution which furthermore reduces the CPU performance needs of the decoding process and guarantees a continuous decoding without stalls.
  6. Adaptive bitrate technology on DRM
  7. Encryption is a technique used to keep data confidential and prevent unauthorized people from reading it. Encryption uses a “key” to convert input data (plaintext) into an alternate form called ciphertext. It is almost impossible to convert the ciphertext back to plaintext without the key. However, practically speaking, decryption without the key is possible, and encryption algorithms are designed make reverse-engineering extremely expensive – in terms of time, money, and computing resources needed. Apple FairPlay supports only AES-CBC cbcs mode. HLS supports only AES-CBC cbcs mode (irrespective of CMAF) Widevine and PlayReady support both AES-128 CTR cenc or AES-128 CBC cbcs modes. MPEG-DASH with CMAF supports both AES-128 CTR cenc or AES-128 CBC cbcs modes. MPEG-DASH without CMAF supports only AES-128 CTR cenc mode. Similarly, when we encrypt a movie with a particular key, we need to create that association and provide that to the DRM license server (our receptionist, if you will). In DRM, a “KeyID” provides the association between an encryption key and a movie. It is a unique string of characters generated at the time of creating an encryption key for a particular movie. The Encryption Key and the KeyID are stored in a secure server (Key Store) that works alongside a DRM license server. When a client needs to play an encrypted movie, it requests the DRM license server for the decryption key by providing that particular movie’s KeyID. If the DRM license server is happy with the request (authentic request), it will ask the Key Store to provide the decryption key associated with that KeyID.
  8. DRM vendors test and certify these CDMs to ensure that the license requests are formed correctly and as per specifications. they do not leak the decryption keys they do not leak the decrypted and decoded movies they securely store the decryption keys based on the license specifications (store the key for X days, for example) safely transport the video to the screen without leaking it For the above reasons, CDMs in browsers are closed-source, and this is a source of contention in the industry and public. They are not-trusted because the public cannot see what’s inside the CDM’s source code.
  9. The player takes care of obtaining the movie, parsing the manifest, extracting the KeyID, making the requests to the DRM License Server, etc. A separate module (called the CDM or Content Decryption Module) takes care of creating the license request, decrypting & decoding the content. The video player is a JavaScript program that uses the EME APIs to transmit messages between the CDM and the License Server.
  10. The player takes care of obtaining the movie, parsing the manifest, extracting the KeyID, making the requests to the DRM License Server, etc. A separate module (called the CDM or Content Decryption Module) takes care of creating the license request, decrypting & decoding the content. The video player is a JavaScript program that uses the EME APIs to transmit messages between the CDM and the License Server.
  11. From the perspective of the content requester –..;....