Streaming protocols break down video content into small chunks that are delivered sequentially to viewers for reassembly and playback. This overcomes limitations of standard video formats for storage and playback. Common streaming protocols include HTTP Live Streaming (HLS), Dynamic Adaptive Streaming over HTTP (DASH), and Microsoft Smooth Streaming (MSS). These protocols support features like adaptive bitrate streaming and digital rights management (DRM). DRM uses encryption and licenses to restrict playback of protected content and is implemented through standards like Encrypted Media Extensions (EME) and content decryption modules (CDMs).
BPF of Berkeley Packet Filter mechanism was first introduced in linux in 1997 in version 2.1.75. It has seen a number of extensions of the years. Recently in versions 3.15 - 3.19 it received a major overhaul which drastically expanded it's applicability. This talk will cover how the instruction set looks today and why. It's architecture, capabilities, interface, just-in-time compilers. We will also talk about how it's being used in different areas of the kernel like tracing and networking and future plans.
ExoPlayer is an open source, application level media player built on top of Android’s low level media APIs (Mediacodec and MediaExtractor). Google is already using it for Youtube and Movies app. It supports DASH, Smooth Streaming and HLS protocols.
Learn how to addressing medical and industrial challenges with BlackBerry QNX...Qt
The QNX® Neutrino® and its safety variant, the QNX® OS for Safety, are widely regarded as safe and secure operating systems for embedded devices, and Qt is one of the most widely used application and device development frameworks. In this webinar we will explore how solutions from these two embedded powerhouses can be combined for an even more powerful solution when stringent functional safety and security requirements are encountered.
BPF of Berkeley Packet Filter mechanism was first introduced in linux in 1997 in version 2.1.75. It has seen a number of extensions of the years. Recently in versions 3.15 - 3.19 it received a major overhaul which drastically expanded it's applicability. This talk will cover how the instruction set looks today and why. It's architecture, capabilities, interface, just-in-time compilers. We will also talk about how it's being used in different areas of the kernel like tracing and networking and future plans.
ExoPlayer is an open source, application level media player built on top of Android’s low level media APIs (Mediacodec and MediaExtractor). Google is already using it for Youtube and Movies app. It supports DASH, Smooth Streaming and HLS protocols.
Learn how to addressing medical and industrial challenges with BlackBerry QNX...Qt
The QNX® Neutrino® and its safety variant, the QNX® OS for Safety, are widely regarded as safe and secure operating systems for embedded devices, and Qt is one of the most widely used application and device development frameworks. In this webinar we will explore how solutions from these two embedded powerhouses can be combined for an even more powerful solution when stringent functional safety and security requirements are encountered.
How Netflix Tunes Amazon EC2 Instances for Performance - CMP325 - re:Invent 2017Amazon Web Services
At Netflix, we make the best use of Amazon EC2 instance types and features to create a high- performance cloud, achieving near bare-metal speed for our workloads. This session summarizes the configuration, tuning, and activities for delivering the fastest possible EC2 instances, and helps you improve performance, reduce latency outliers, and make better use of EC2 features. We show how to choose EC2 instance types, how to choose between Xen modes (HVM, PV, or PVHVM), and the importance of EC2 features such SR-IOV for bare-metal performance. We also cover basic and advanced kernel tuning and monitoring, including the use of Java and Node.js flame graphs and performance counters.
Delivered as plenary at USENIX LISA 2013. video here: https://www.youtube.com/watch?v=nZfNehCzGdw and https://www.usenix.org/conference/lisa13/technical-sessions/plenary/gregg . "How did we ever analyze performance before Flame Graphs?" This new visualization invented by Brendan can help you quickly understand application and kernel performance, especially CPU usage, where stacks (call graphs) can be sampled and then visualized as an interactive flame graph. Flame Graphs are now used for a growing variety of targets: for applications and kernels on Linux, SmartOS, Mac OS X, and Windows; for languages including C, C++, node.js, ruby, and Lua; and in WebKit Web Inspector. This talk will explain them and provide use cases and new visualizations for other event types, including I/O, memory usage, and latency.
The presentation describes how ABEMA uses video streaming technologies to improve its quality as a public media service. It also discusses technological challenges in the COVID-19 pandemic.
A deep dive into Android OpenSource Project(AOSP)Siji Sunny
A deep dive into Android openSource project presented at
International Centre for Free and Open Source Software (ICFOSS), Kerala's OpenSource Mobile Computing Conference
Talk by Brendan Gregg for USENIX LISA 2019: Linux Systems Performance. Abstract: "
Systems performance is an effective discipline for performance analysis and tuning, and can help you find performance wins for your applications and the kernel. However, most of us are not performance or kernel engineers, and have limited time to study this topic. This talk summarizes the topic for everyone, touring six important areas of Linux systems performance: observability tools, methodologies, benchmarking, profiling, tracing, and tuning. Included are recipes for Linux performance analysis and tuning (using vmstat, mpstat, iostat, etc), overviews of complex areas including profiling (perf_events) and tracing (Ftrace, bcc/BPF, and bpftrace/BPF), and much advice about what is and isn't important to learn. This talk is aimed at everyone: developers, operations, sysadmins, etc, and in any environment running Linux, bare metal or the cloud."
Slides from Android Builder's Summit 2014 in San Jose, CA
In this talk I describe the internal workings of the Android graphics stack from the Application layer down through the stack to pixels on the screen. It is a fairly complex journey, taking in two different 2D rendering engines, applications calling OpenGL ES directory, passing buffers on to the system compositor, SurfaceFlinger, and then down to the display controller or frame buffer.
Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...Christian Posta
If you have an existing Java monolith, you know you must take care making changes to it or altering it in any negative way. Often times these monoliths are very valuable to the business and generate a lot of revenue. At the same time, since it’s difficult to make changes to the monolith it’s desirable to move to a microservices architecture. Unfortunately you cannot just do a big-bang migration to a greenfield architecture and will have to incrementally adopt microservices. In this talk, we’ll look at using Gloo proxy which is based on Envoy Proxy and GraphQL to do surgical, function-level traffic control and API aggregation to safely migrate your monolith to microservices and serverless functions.
Explore the world of Digital Rights Management (DRM) in websites with this informative presentation. Gain insights into the challenges of implementing DRM, the evolution of video playback on the web, and the role of HTML5 in modern video streaming. Discover the basics of using static keys and Apple HLS for content protection, as well as the issues associated with static key DRM. Finally, learn about advanced DRM solutions that address these issues, ensuring secure and efficient content delivery. Dive into this comprehensive guide to DRM in HTML5 websites and enhance your understanding of this crucial aspect of online video streaming.
How Netflix Tunes Amazon EC2 Instances for Performance - CMP325 - re:Invent 2017Amazon Web Services
At Netflix, we make the best use of Amazon EC2 instance types and features to create a high- performance cloud, achieving near bare-metal speed for our workloads. This session summarizes the configuration, tuning, and activities for delivering the fastest possible EC2 instances, and helps you improve performance, reduce latency outliers, and make better use of EC2 features. We show how to choose EC2 instance types, how to choose between Xen modes (HVM, PV, or PVHVM), and the importance of EC2 features such SR-IOV for bare-metal performance. We also cover basic and advanced kernel tuning and monitoring, including the use of Java and Node.js flame graphs and performance counters.
Delivered as plenary at USENIX LISA 2013. video here: https://www.youtube.com/watch?v=nZfNehCzGdw and https://www.usenix.org/conference/lisa13/technical-sessions/plenary/gregg . "How did we ever analyze performance before Flame Graphs?" This new visualization invented by Brendan can help you quickly understand application and kernel performance, especially CPU usage, where stacks (call graphs) can be sampled and then visualized as an interactive flame graph. Flame Graphs are now used for a growing variety of targets: for applications and kernels on Linux, SmartOS, Mac OS X, and Windows; for languages including C, C++, node.js, ruby, and Lua; and in WebKit Web Inspector. This talk will explain them and provide use cases and new visualizations for other event types, including I/O, memory usage, and latency.
The presentation describes how ABEMA uses video streaming technologies to improve its quality as a public media service. It also discusses technological challenges in the COVID-19 pandemic.
A deep dive into Android OpenSource Project(AOSP)Siji Sunny
A deep dive into Android openSource project presented at
International Centre for Free and Open Source Software (ICFOSS), Kerala's OpenSource Mobile Computing Conference
Talk by Brendan Gregg for USENIX LISA 2019: Linux Systems Performance. Abstract: "
Systems performance is an effective discipline for performance analysis and tuning, and can help you find performance wins for your applications and the kernel. However, most of us are not performance or kernel engineers, and have limited time to study this topic. This talk summarizes the topic for everyone, touring six important areas of Linux systems performance: observability tools, methodologies, benchmarking, profiling, tracing, and tuning. Included are recipes for Linux performance analysis and tuning (using vmstat, mpstat, iostat, etc), overviews of complex areas including profiling (perf_events) and tracing (Ftrace, bcc/BPF, and bpftrace/BPF), and much advice about what is and isn't important to learn. This talk is aimed at everyone: developers, operations, sysadmins, etc, and in any environment running Linux, bare metal or the cloud."
Slides from Android Builder's Summit 2014 in San Jose, CA
In this talk I describe the internal workings of the Android graphics stack from the Application layer down through the stack to pixels on the screen. It is a fairly complex journey, taking in two different 2D rendering engines, applications calling OpenGL ES directory, passing buffers on to the system compositor, SurfaceFlinger, and then down to the display controller or frame buffer.
Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...Christian Posta
If you have an existing Java monolith, you know you must take care making changes to it or altering it in any negative way. Often times these monoliths are very valuable to the business and generate a lot of revenue. At the same time, since it’s difficult to make changes to the monolith it’s desirable to move to a microservices architecture. Unfortunately you cannot just do a big-bang migration to a greenfield architecture and will have to incrementally adopt microservices. In this talk, we’ll look at using Gloo proxy which is based on Envoy Proxy and GraphQL to do surgical, function-level traffic control and API aggregation to safely migrate your monolith to microservices and serverless functions.
Explore the world of Digital Rights Management (DRM) in websites with this informative presentation. Gain insights into the challenges of implementing DRM, the evolution of video playback on the web, and the role of HTML5 in modern video streaming. Discover the basics of using static keys and Apple HLS for content protection, as well as the issues associated with static key DRM. Finally, learn about advanced DRM solutions that address these issues, ensuring secure and efficient content delivery. Dive into this comprehensive guide to DRM in HTML5 websites and enhance your understanding of this crucial aspect of online video streaming.
Unique info about videostreaming compression in iOS from our the best iOS specialist Vladimir Predko. He's ready to answer all your questions! Go ahead!
Speaking of experiences web, the one of video in web is one of most popular at the moment. In this session they will see the possibilities of support of those experiences of video with Flash Media Server 3.5.
Codec stands for enCOder/DECoder or COmpressor/DECompressor. It is a software or hardware that compresses and decompresses audio and video data streams.
At castLabs, we aim to be a trusted and reliable partner in the world of video streaming. Our goal is to simplify a range of complex technologies enabling you to distribute content online.
Check our presentation to learn more about the company and what we do exactly.
Premium content protection is key to a successful content monetization strategy and with the recent evolution of streaming formats and standards, it is now easier than ever to create DRM-protected streaming systems. The ability to support all of today’s DRMs - including Widevine, Fairplay and PlayReady – in an efficient and easy-to-manage workflow is crucial for operators who want to enable richer feature sets, such as offline viewing and TVE.
Join Irdeto and Bitmovin for a live webinar as we explore
+ Common approaches for Digital Rights Management in 2018
+ Changes coming to common workflows with CMAF
+ Real-world implementations of simple and complex systems
Watch the webinar! >> https://buff.ly/2ILcSp3
What is React-Native?
Why React-Native?
How React-Native works in detail?
- Metro bundler
- Main Thread
- Shadow Thread
- Javascript Thread
Yoga Engine
Threads Communication in React-Native
Comparison with Flutter and Native
React-Native Components
Introduction to Clean Code in Turkish
Temiz Kod Nedir?
Neden Temiz Kod Yazmalıyız?
Temiz Kod Nasıl Yazılır?
Temiz Kod Yazmaya Giriş
- İsimlendirme Kuralları
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfJay Das
With the advent of artificial intelligence or AI tools, project management processes are undergoing a transformative shift. By using tools like ChatGPT, and Bard organizations can empower their leaders and managers to plan, execute, and monitor projects more effectively.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
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
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.
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.
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.
H.265 codec, which delivers twice the video quality at the same file size as H.264.
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.
Adaptive bitrate technology on DRM
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.
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.
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.
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.
From the perspective of the content requester –..;....