This document discusses streaming video to HTML. It begins with introducing the speaker and their background in building video applications. The rest of the document covers: an overview of video traffic on the internet; how HTTP adaptive streaming works; the different streaming protocols like HLS, Smooth Streaming, and DASH; browser support for streaming; MediaSource Extensions; what DASH is and how it works; building a DASH player using dash.js; and resources for learning more about streaming video.
The document discusses building a desktop video player for MPEG-DASH formatted video using Adobe Flash, covering topics like HTTP streaming standards, the structure of DASH manifests and video segments, and how to extract video bytes from DASH segments and append them to a Flash NetStream for playback. It promotes using the Open Source Media Framework (OSMF) to build the player as it supports DASH and provides classes to work with HTTP streaming technologies.
Live streaming of video and subtitles with MPEG-DASHCyril Concolato
This presentation was made at the MPEG meeting in Shanghai, China, in October 2012, related to the input contribution M26906. It gives the details about the demonstration made during the meeting. This demonstration showed the use of the Google Chrome browser to display synchronized video and subtitles, using the Media Source Extension draft specification and the WebVTT subtitle format. The video and DASH content was prepared using GPAC MP4Box tool.
Dynamic Adaptive Streaming over HTTP: From Content Creation to ConsumptionAlpen-Adria-Universität
Dynamic Adaptive Streaming over HTTP (DASH) is an adaptive bitrate streaming technique that enables high-quality streaming of media content over the Internet delivered from conventional HTTP web servers. It works by breaking the media content into a sequence of small HTTP-based file segments, each segment containing a short interval of playback time of the overall content. The presentation is described through a MPD manifest file that contains information about the available adaptations sets and representations of the media content. The client can then select the most appropriate representation based on available bandwidth, device capabilities, and user preferences.
Our presentation from the media web symposium 2013 in Berlin on the open source landscape around MPEG-DASH as well as on cloud-based services for MPEG-DASH
Comments on carriage of timed text and visual overlays in MP4Cyril Concolato
This document discusses proposals for representing timed text streams in the ISO Base Media File Format (ISOBMFF). It addresses issues related to parsing WebVTT files, splitting cues that overlap, and sample entry types for different types of timed text tracks. It proposes adding a CueDurationBox to simplify cue splitting. It also discusses questions around sample entry design and placement of configuration strings. The overall aim is to define a conservative round-trip between WebVTT files and ISOBMFF that avoids forward compatibility issues.
The document summarizes Cyril Concolato's presentation on the latest developments in SVG 2 and his research related to SVG. It discusses his work at Telecom ParisTech researching streaming technologies and advanced gradients for SVG. Some key points:
- Telecom ParisTech focuses on telecommunications education and research, with missions in education, research, and entrepreneurship.
- Concolato's research focuses on streaming and delivering multimedia content, including representing Flash animations in SVG and fragmenting SVG animations to control memory usage during playback.
- SVG 2 aims to improve graphical features, color management, and harmonize with other web standards. It also addresses streaming SVG animations and handling long animations.
This document discusses various Azure Platform Services including storage, caching, relaying, queuing, and topics. Storage in Azure provides blobs, drives, tables and queues for structured storage needs. Caching services improve application performance. Service Bus provides relaying for connectivity between applications and queuing/topics for messaging with publish/subscribe capabilities. Platform as a Service (PaaS) allows building and hosting applications on Azure's scalable infrastructure.
This document provides an overview of Apache ActiveMQ and messaging with JMS. It discusses what JMS is and how it abstracts message brokers. It then describes what ActiveMQ is and its goals as open source message-oriented middleware. The document outlines examples, configurations, transports, topologies and high availability options for ActiveMQ. It also discusses security, monitoring, visualization and integration with Apache Camel.
This document provides an overview of lightweight messaging and remote procedure call (RPC) systems in distributed systems. It discusses messaging systems, typical peer-to-peer and broker-based messaging topologies, characteristics and features of messaging systems, main classes of messaging systems including enterprise service buses (ESBs), JMS implementations, AMQP implementations, and lightweight modern systems. It also covers RPC, serialization libraries, differences between messaging and RPC, examples of ZeroMQ for peer-to-peer messaging, Apache Kafka for broker-based messaging, and Twitter Finagle for scalable RPC.
This document provides an overview and summary of ActiveMQ features for message-oriented middleware including messaging domains, durability vs persistence, message acknowledgement vs transactions, synchronous vs asynchronous message consumption, broker clustering, master/slave configurations, security options, wire formats for non-Java clients, handling disconnected producers/consumers, consumer options, slow consumer strategies, monitoring broker statistics, and an introduction to Apache Camel for integration.
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013mumrah
Apache Kafka is a distributed publish-subscribe messaging system that allows both publishing and subscribing to streams of records. It uses a distributed commit log that provides low latency and high throughput for handling real-time data feeds. Key features include persistence, replication, partitioning, and clustering.
This document provides an overview and agenda for a presentation on Apache ActiveMQ and Apache ServiceMix. The presentation covers installing and configuring ActiveMQ, using ActiveMQ with Spring JMS, ActiveMQ features like message routing and topologies, an introduction to Apache ServiceMix for enterprise service buses and message routing, and options for using ActiveMQ like directly, with message-driven beans, or with Spring message listeners.
The venerable Servlet Container still has some performance tricks up its sleeve - this talk will demonstrate Apache Tomcat's stability under high load, describe some do's (and some don'ts!), explain how to performance test a Servlet-based application, troubleshoot and tune the container and your application and compare the performance characteristics of the different Tomcat connectors. The presenters will share their combined experience supporting real Tomcat applications for over 20 years and show how a few small changes can make a big, big difference.
This document discusses scaling PostgreSQL databases using open-source tools from Skype including pgBouncer, PGQ, Londiste, and PL/Proxy. It describes how these tools can be used to improve concurrency, add read replicas, replicate data changes, and shard queries across multiple databases. Configuration files and SQL functions are shown as examples of setting up and using these tools to horizontally scale a PostgreSQL deployment.
Like many other messaging systems, Kafka has put limit on the maximum message size. User will fail to produce a message if it is too large. This limit makes a lot of sense and people usually send to Kafka a reference link which refers to a large message stored somewhere else. However, in some scenarios, it would be good to be able to send messages through Kafka without external storage. At LinkedIn, we have a few use cases that can benefit from such feature. This talk covers our solution to send large message through Kafka without additional storage.
Apache ActiveMQ - Enterprise messaging in actiondejanb
This document provides an overview of Apache ActiveMQ, an open source messaging platform. It discusses key ActiveMQ concepts like topics, queues, and messaging protocols. It also covers ActiveMQ enterprise features such as high availability, clustering, security, and monitoring. The document concludes by discussing ActiveMQ performance tuning, scaling, and future plans.
This document discusses Janus, a WebRTC server, and its deployment using Docker containers. It begins by providing background on microservices and Docker. It then describes issues that can arise with Docker's default networking modes for Janus due to network-related WebRTC failures. Specifically, Docker's NAT functionality does not always behave predictably for ICE negotiations. The document recommends using dedicated IP addresses for containers to avoid these issues. It provides examples of complex Docker-based architectures for deploying Janus at IETF meetings and for recording production using Docker Swarm.
Kafka is a real-time, fault-tolerant, scalable messaging system.
It is a publish-subscribe system that connects various applications with the help of messages - producers and consumers of information.
How To Build A Scalable Storage System with OSS at TLUG Meeting 2008/09/13Gosuke Miyashita
The document discusses Gosuke Miyashita's goal of building a scalable storage system for his company's web hosting service. He is exploring the use of several open source technologies including cman, CLVM, GFS2, GNBD, DRBD, and DM-MP to create a storage system that provides high availability, flexible I/O distribution, and easy extensibility without expensive hardware. He outlines how each technology works and shows some example configurations, but notes that integrating many components may introduce issues around complexity, overhead, performance, stability and compatibility with non-Red Hat Linux.
This document discusses scaling MQTT with Kafka to support more than 2 million connected publishers sending over 65,000 messages per second to a single subscriber. It outlines problems with directly scaling MQTT, including load balancing brokers and handling a single subscriber. The document proposes using Kafka as a backend for MQTT brokers to allow for horizontal scaling, load balancing of subscribers, and guaranteed delivery. Results were linear scaling for high throughput to a single subscriber. Remaining areas are security and configuration. The overall discussion is about using Kafka to enable MQTT to meet large IoT deployments of millions of devices and high message rates.
This document provides an overview of implementing high availability in Exchange Server. It covers configuring highly available mailbox databases using database availability groups (DAGs), deploying highly available client access and hub transport servers, and implementing site resilience across multiple locations. Key topics include DAG components like continuous replication and the active manager, monitoring and managing DAG health, and the switchover process during a failure. The document also includes a lab scenario for hands-on practice configuring a DAG and other highly available server roles.
In Apache Pulsar Beijing Meetup, Sijie Guo and Yong Zhang gave a preview of transaction support in Pulsar 2.5.0. Sijie Guo started with the current state of messaging semantics in Pulsar and talked about the implementation of message deduplication introduced by PIP-6. Then he went into the details of why do we need transaction and how do we implement transaction in Pulsar. Finally Yong walked through the whole transaction execution flow.
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard WolffJAX London
2011-11-02 | 05:45 PM - 06:35 PM
The JMS standard is 9 years old - but outside the Java community innovation is happening. The AMQP standard with implementations like RabbitMQ is gaining more and more traction. This session explains the standard and its advantages. It will also show how an AMQP application can be implemented using Java.
Using OpenStack in a traditional hosting environment posed scaling challenges that required automating provisioning across multiple data centers. OpenStack was chosen for its support, scalability, and ability to support future cloud offerings. Bluehost implemented optimizations like using MySQL slaves, custom schedulers, and replacing Qpid with ZeroMQ to address scalability issues with messaging, databases, and APIs under heavy load. The enhanced OpenStack deployment now supports over 10,000 physical servers being added daily.
This document provides tips and rules for writing good Flex code to avoid being fired or facing other negative consequences. It begins with introductions of the author and intended audience. Next, it defines what constitutes bad code and why developers write it. The bulk of the document provides examples of bad Flex code snippets and explains what is wrong with each in terms of maintainability, performance, or separation of concerns. It concludes by listing rules for writing good code and inviting questions.
FlexUnit 4 is a testing framework for Flex and ActionScript 3 that supports JUnit 4 features like metadata tags for tests, exceptions, async support, and Hamcrest matching. It allows running test suites with different runners and supports theories with data points to run a single test with different data. The first beta version was recently released publicly on Adobe's site.
The document discusses Flex 4 skinning best practices. It explains that components handle logic, layouts handle positioning of children, and skins are responsible for the entire look and feel. Skins use skin parts and states to communicate with components. Two examples are provided: a shopping list component with labels, buttons and a data group in its skin, and a clock component with digital and analog skins providing different clock faces through a skin part.
This document provides an overview of Apache ActiveMQ and messaging with JMS. It discusses what JMS is and how it abstracts message brokers. It then describes what ActiveMQ is and its goals as open source message-oriented middleware. The document outlines examples, configurations, transports, topologies and high availability options for ActiveMQ. It also discusses security, monitoring, visualization and integration with Apache Camel.
This document provides an overview of lightweight messaging and remote procedure call (RPC) systems in distributed systems. It discusses messaging systems, typical peer-to-peer and broker-based messaging topologies, characteristics and features of messaging systems, main classes of messaging systems including enterprise service buses (ESBs), JMS implementations, AMQP implementations, and lightweight modern systems. It also covers RPC, serialization libraries, differences between messaging and RPC, examples of ZeroMQ for peer-to-peer messaging, Apache Kafka for broker-based messaging, and Twitter Finagle for scalable RPC.
This document provides an overview and summary of ActiveMQ features for message-oriented middleware including messaging domains, durability vs persistence, message acknowledgement vs transactions, synchronous vs asynchronous message consumption, broker clustering, master/slave configurations, security options, wire formats for non-Java clients, handling disconnected producers/consumers, consumer options, slow consumer strategies, monitoring broker statistics, and an introduction to Apache Camel for integration.
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013mumrah
Apache Kafka is a distributed publish-subscribe messaging system that allows both publishing and subscribing to streams of records. It uses a distributed commit log that provides low latency and high throughput for handling real-time data feeds. Key features include persistence, replication, partitioning, and clustering.
This document provides an overview and agenda for a presentation on Apache ActiveMQ and Apache ServiceMix. The presentation covers installing and configuring ActiveMQ, using ActiveMQ with Spring JMS, ActiveMQ features like message routing and topologies, an introduction to Apache ServiceMix for enterprise service buses and message routing, and options for using ActiveMQ like directly, with message-driven beans, or with Spring message listeners.
The venerable Servlet Container still has some performance tricks up its sleeve - this talk will demonstrate Apache Tomcat's stability under high load, describe some do's (and some don'ts!), explain how to performance test a Servlet-based application, troubleshoot and tune the container and your application and compare the performance characteristics of the different Tomcat connectors. The presenters will share their combined experience supporting real Tomcat applications for over 20 years and show how a few small changes can make a big, big difference.
This document discusses scaling PostgreSQL databases using open-source tools from Skype including pgBouncer, PGQ, Londiste, and PL/Proxy. It describes how these tools can be used to improve concurrency, add read replicas, replicate data changes, and shard queries across multiple databases. Configuration files and SQL functions are shown as examples of setting up and using these tools to horizontally scale a PostgreSQL deployment.
Like many other messaging systems, Kafka has put limit on the maximum message size. User will fail to produce a message if it is too large. This limit makes a lot of sense and people usually send to Kafka a reference link which refers to a large message stored somewhere else. However, in some scenarios, it would be good to be able to send messages through Kafka without external storage. At LinkedIn, we have a few use cases that can benefit from such feature. This talk covers our solution to send large message through Kafka without additional storage.
Apache ActiveMQ - Enterprise messaging in actiondejanb
This document provides an overview of Apache ActiveMQ, an open source messaging platform. It discusses key ActiveMQ concepts like topics, queues, and messaging protocols. It also covers ActiveMQ enterprise features such as high availability, clustering, security, and monitoring. The document concludes by discussing ActiveMQ performance tuning, scaling, and future plans.
This document discusses Janus, a WebRTC server, and its deployment using Docker containers. It begins by providing background on microservices and Docker. It then describes issues that can arise with Docker's default networking modes for Janus due to network-related WebRTC failures. Specifically, Docker's NAT functionality does not always behave predictably for ICE negotiations. The document recommends using dedicated IP addresses for containers to avoid these issues. It provides examples of complex Docker-based architectures for deploying Janus at IETF meetings and for recording production using Docker Swarm.
Kafka is a real-time, fault-tolerant, scalable messaging system.
It is a publish-subscribe system that connects various applications with the help of messages - producers and consumers of information.
How To Build A Scalable Storage System with OSS at TLUG Meeting 2008/09/13Gosuke Miyashita
The document discusses Gosuke Miyashita's goal of building a scalable storage system for his company's web hosting service. He is exploring the use of several open source technologies including cman, CLVM, GFS2, GNBD, DRBD, and DM-MP to create a storage system that provides high availability, flexible I/O distribution, and easy extensibility without expensive hardware. He outlines how each technology works and shows some example configurations, but notes that integrating many components may introduce issues around complexity, overhead, performance, stability and compatibility with non-Red Hat Linux.
This document discusses scaling MQTT with Kafka to support more than 2 million connected publishers sending over 65,000 messages per second to a single subscriber. It outlines problems with directly scaling MQTT, including load balancing brokers and handling a single subscriber. The document proposes using Kafka as a backend for MQTT brokers to allow for horizontal scaling, load balancing of subscribers, and guaranteed delivery. Results were linear scaling for high throughput to a single subscriber. Remaining areas are security and configuration. The overall discussion is about using Kafka to enable MQTT to meet large IoT deployments of millions of devices and high message rates.
This document provides an overview of implementing high availability in Exchange Server. It covers configuring highly available mailbox databases using database availability groups (DAGs), deploying highly available client access and hub transport servers, and implementing site resilience across multiple locations. Key topics include DAG components like continuous replication and the active manager, monitoring and managing DAG health, and the switchover process during a failure. The document also includes a lab scenario for hands-on practice configuring a DAG and other highly available server roles.
In Apache Pulsar Beijing Meetup, Sijie Guo and Yong Zhang gave a preview of transaction support in Pulsar 2.5.0. Sijie Guo started with the current state of messaging semantics in Pulsar and talked about the implementation of message deduplication introduced by PIP-6. Then he went into the details of why do we need transaction and how do we implement transaction in Pulsar. Finally Yong walked through the whole transaction execution flow.
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard WolffJAX London
2011-11-02 | 05:45 PM - 06:35 PM
The JMS standard is 9 years old - but outside the Java community innovation is happening. The AMQP standard with implementations like RabbitMQ is gaining more and more traction. This session explains the standard and its advantages. It will also show how an AMQP application can be implemented using Java.
Using OpenStack in a traditional hosting environment posed scaling challenges that required automating provisioning across multiple data centers. OpenStack was chosen for its support, scalability, and ability to support future cloud offerings. Bluehost implemented optimizations like using MySQL slaves, custom schedulers, and replacing Qpid with ZeroMQ to address scalability issues with messaging, databases, and APIs under heavy load. The enhanced OpenStack deployment now supports over 10,000 physical servers being added daily.
This document provides tips and rules for writing good Flex code to avoid being fired or facing other negative consequences. It begins with introductions of the author and intended audience. Next, it defines what constitutes bad code and why developers write it. The bulk of the document provides examples of bad Flex code snippets and explains what is wrong with each in terms of maintainability, performance, or separation of concerns. It concludes by listing rules for writing good code and inviting questions.
FlexUnit 4 is a testing framework for Flex and ActionScript 3 that supports JUnit 4 features like metadata tags for tests, exceptions, async support, and Hamcrest matching. It allows running test suites with different runners and supports theories with data points to run a single test with different data. The first beta version was recently released publicly on Adobe's site.
The document discusses Flex 4 skinning best practices. It explains that components handle logic, layouts handle positioning of children, and skins are responsible for the entire look and feel. Skins use skin parts and states to communicate with components. Two examples are provided: a shopping list component with labels, buttons and a data group in its skin, and a clock component with digital and analog skins providing different clock faces through a skin part.
Isep m2 m - iot - course 1 - update 2013 - 09122013 - part 3 - v(0.7)Thierry Lestable
This document provides a 3-part summary of Internet of Things (IoT) topics, including market trends, technology roadmaps and standards, and cloud computing applications. It discusses convergence of WiFi and cellular networks, smart grid and smart vehicle use cases, and cloud-based services like gaming, TV, and storage. Standardization efforts by groups like ETSI, 3GPP, and the GSC are reviewed. Open issues regarding architecture, governance, interoperability, and neutrality are also covered.
LUMA Digital Brief 012 - Market Report Q4 2016LUMA Partners
LUMA provides expertise at the intersection of media, marketing and technology. This includes digital content like online publishers, mobile gaming companies, and video platforms. It also includes advertising technology for display, video, mobile and other formats. Additionally, it includes marketing technology for data, analytics, sales automation and other tools. Mobile proliferation has had a major impact on these industries. In 2016, there was significant consolidation activity across digital media and marketing sectors through mergers and acquisitions. The deal activity was driven by growth in the pool of strategic buyers including telecommunications companies, international firms, and private equity investors.
This document provides an overview of the TV and video advertising ecosystem, mapping out the major players and technologies involved across targeted TV, content networks, OTT platforms, and connected devices. It shows the relationships between platforms, ad servers, agencies, trading desks, data management companies, social networks, and more in the broader video advertising landscape.
The latest LUMA Display Ad Tech Landscape is a living document. While it is impossible to categorize companies across an industry into discrete categories, this is at least an attempt to organize the landscape. If you have constructive suggestions, please email them to me at [email protected].
Save 10% off ANY FITC event with discount code 'slideshare'
See our upcoming events at www.fitc.ca
OVERVIEW
There have been many great improvements to the web in the post-plugin era of the Internet, however, streaming video has had a challenge to keep up. For the past several years, the primary means to stream video consistently across browsers has been through the use of a Flash or Silverlight plugin.
Thankfully the W3C has come up with a solution to stream video to HTML without plugins, “MediaSource Extensions.” In this session Jeff Tapper will explore what MediaSource Extensions are, their state in browsers today, and how we can use them to stream video without plugins.
OBJECTIVE
Learn about MediaSource Extensions, the modern mechanism to stream video directly to HTML without plugins
TARGET AUDIENCE
This session is intended for Web Developers and for those who need to understand the streaming options available for their business.
ASSUMED AUDIENCE KNOWLEDGE
The audience should know what JavaScript and HTML are, and be familiar with Video terminology. This session will be understood by beginners, but audience members with a deeper understanding of JavaScript and Video technologies will be able to get even more from it.
FIVE THINGS AUDIENCE MEMBERS WILL LEARN
What is the state of HTML5 Video in browsers today?
What are Media Source Extensions?
How do I use Media Source Extensions to stream video to HTML?
What is MPEG-DASH?
Are there any open source projects to make this easier?
This document discusses a proof-of-concept for live streaming of video and subtitles within a browser. It uses HTTP Live Streaming to segment video into MP4 files and subtitles into WebVTT text files. A JavaScript player fetches and synchronizes the segments, displaying video using HTML5 video and subtitles via HTML track elements. While functional, the demo has limitations around rendering performance with dense subtitles, lack of seeking support, and HTML5 constraints on cue loading.
Description of Microsoft Silverlight technology.
Advantages over "standard streaming", download and progressive download methods.
Silverlight session description and analysis using wireshark
The document summarizes different techniques for streaming media, including HTTP Live Streaming (HLS) and Real Time Streaming Protocol (RTSP). It then describes the architecture and process of HLS in detail over 4 steps:
1) The media is encoded and segmented by the encoder.
2) The segmenter splits the encoded media into short chunks and encrypts the segments if needed.
3) The distribution system stores the segments and playlists on an HTTP server.
4) The client downloads playlists and segments through HTTP and plays the media.
The document also compares RTSP and HLS, noting advantages of HLS like reliability, firewall traversal, and use on YouTube. It surveys different video-
MPEG-DASH is an adaptive bitrate streaming technology that allows high quality streaming of media content over HTTP. It works by breaking content into small HTTP-based file segments that can be played at different bitrates depending on network conditions. The standard has gained widespread industry support and adoption with major players supporting it in browsers, media players, and streaming platforms. It provides advantages over proprietary protocols by allowing interoperability between servers and clients from different vendors through its open standard.
Media Content Delivery Systems: 2nd Presentationashbyb
The document discusses the development of a media content delivery system (MCDS) as an alternative to Flash-based solutions. It aims to support the latest codecs and containers while allowing for minimal re-encoding. The project includes a video streaming component and database for managing metadata. A demonstration website was created at http://anime.myrpi.org to showcase streaming videos from the database and gathering user votes on which videos to watch. Future goals include utilizing a server-side database and improving compatibility and delivery methods.
All the content of this website is informative and non-commercial, does not imply a commitment to develop, launch or schedule delivery of any feature or functionality, should not rely on it in making decisions, incorporate or take it as a reference in a contract or academic matters. Likewise, the use, distribution and reproduction by any means, in whole or in part, without the authorization of the author and / or third-party copyright holders, as applicable, is prohibited.
The document provides an agenda and overview of key technologies for internet delivered media, including:
- Adaptive streaming standards like DASH, HLS, and CMAF for encoding and delivering video over HTTP.
- Encryption technologies like CENC for multi-DRM encryption and EME for decrypting encrypted media in browsers.
- Web media APIs that enable advanced media playback like MSE for adaptive streaming in HTML5 video and controlling media streams with JavaScript.
Standards' Perspective - MPEG DASH overview and related effortsIMTC
This document provides an overview of MPEG DASH (Dynamic Adaptive Streaming over HTTP):
- MPEG DASH is an open standard for streaming media over HTTP that allows clients to choose the quality of the media stream based on available bandwidth.
- Key features include using HTTP for delivery, client-driven streaming using byte-range requests, support for live and on-demand streaming, and seamless switching between representations of different quality levels.
- The standard defines media presentation descriptions that describe available representations and segments, as well as segment formats based on ISO BMFF and MPEG-2 TS containers.
- Profiles restrict features to enable deployment, and the DASH Promoters Group is working
An Evaluation of Dynamic Adaptive Streaming over HTTP in Vehicular EnvironmentsAlpen-Adria-Universität
This document summarizes an evaluation of various HTTP streaming technologies, including Microsoft Smooth Streaming, Adobe HTTP Dynamic Streaming, Apple HTTP Live Streaming, and MPEG-DASH, in vehicular environments. The evaluation found that Microsoft Smooth Streaming had the highest average bitrate with few switches, while Adobe HTTP Dynamic Streaming had many stalls and re-buffering periods. Apple HTTP Live Streaming and the authors' MPEG-DASH implementation achieved good average bitrates with stable buffers and few switches. The evaluation provides insights into the performance and quality of experience of different HTTP streaming methods in mobile networks.
This document discusses different types of multimedia streaming including RTP/RTSP streaming, HTTP progressive download, and adaptive HTTP streaming. It provides details on each type such as protocols used, advantages, and requirements. Adaptive HTTP streaming generates multiple versions of content at different bitrates and resolutions, chops them into segments, and allows the client to adaptively switch between versions based on available bandwidth. The document also discusses quality of service (QoS) versus quality of experience (QoE) for streaming and how adaptation techniques can help improve streaming quality.
Windows Azure Media Services June 2013 updateMingfei Yan
This is a update presentation for Windows Azure Media Services June 2013 update. It showcases dynamic packaging, MPEG-DASH release and Live streaming sneak peek. You could view session video here: https://channel9.msdn.com/Events/Build/2013/3-549
The document discusses adaptive media streaming over emerging protocols like HTTP/2.0 and Content-Centric Networking (CCN). It summarizes the benefits of these new protocols for streaming video over the internet, such as improved throughput and support for caching. The document also introduces potential integrations between Dynamic Adaptive Streaming over HTTP (DASH) and CCN, called DASC, and outlines open source libraries and tools that support experimenting with these new adaptive streaming techniques.
This document discusses various media content delivery systems for presenting video over the web. It explores different video file formats and containers, as well as streaming technologies like Flash, HTTP pseudo streaming, RTMP, and HTML5. The authors researched options for minimizing re-encoding, supporting latest codecs, and adapting delivery for different bandwidths and audiences. Their project involved building a video streaming system and database to manage metadata. They demonstrated early scripts for storing file data and outputs. The goal was to create a community-driven website where users can vote on videos to watch from a streaming library.
On-demand & Live Streaming with Amazon CloudFront in the Post-PC World (MED30...Amazon Web Services
Learn how AWS customers are using Amazon CloudFront to deliver their video content to users over HTTP(S) using a number of modern streaming protocols such as Smooth Streaming, HLS, DASH, etc. You also learn about options for end-to-end security of your video content—through both encryption and preventing access from unauthorized users based on their location. Finally, we demonstrate how easy it is to use CloudFront to deliver both your on-demand and live video to a global audience with great performance.
This document provides an overview of the history and development of HTTP Adaptive Streaming (HAS). It discusses early solutions for internet video in the late 1990s and 2000s. HAS was then developed as a standard using HTTP to deliver video in a stateless and dynamic way. The document outlines the different variants of HAS that were developed by Microsoft, Apple, and Adobe in 2008. It then discusses the standardization of HAS through 3GPP and MPEG-DASH in 2009-2012. Finally, it provides a high-level diagram of the end-to-end delivery chain for DASH.
This document describes the serverless media workflow built by the speaker for adding video capabilities to Vingle. It discusses ingesting videos from clients into S3 using transfer acceleration, processing videos with AWS services like Elastic Transcoder and Elemental MediaConvert, and delivering videos via S3 and CloudFront. The architecture evolved over two versions to support features like parallel encoding and bypassing processing when possible to improve performance and reduce costs.
Building A Streaming Apple TV App (CocoaConf DC, Sept 2016)Chris Adamson
Apple TV offers a friendly SDK, full of familiar view controllers and Foundation classes, with everything an iOS developer needs to develop their own streaming channel. Except for… you know… the streaming part. In this session, we'll look at how Apple's HTTP Live Streaming video works -- from flat files or live sources -- and how to get it from your computer to a streaming server and then to an Apple TV. We'll also look at common challenges for building streaming channel apps, like serving metadata, protecting content, and supporting single sign-on.
The document provides an introduction and overview of transcoding including:
- Transcoding converts media formats to facilitate distribution across different platforms and ecosystems.
- Codecs, profiles, containers, and platforms are key terminology. H.264 is a widely used and patented codec.
- Formats combine containers and codecs with parameters for playback.
- Transcoding allows content to be optimized and customized for different destinations and viewer requirements.
The document discusses MPEG-DASH reference software and conformance. It describes how the reference software serves to validate the specification, clarify ambiguities, and test for interoperability. Components include an MPD validator, segment conformance checker, dynamic service validator, DASH access client software, and sample players and encoding tools. The reference software provides a comprehensive toolset for conformance testing and verification of the DASH specification.
"Zero-sales lost — Incident Management", Igor DrozdFwdays
In my presentation, I will discuss the key aspects of the Zero Sales Lost strategy, focusing on incident management in the context of E-commerce development and the "Silpo" ecosystem. I will share our experience in building an incident management process, the specifics of monitoring and alerting system architecture, and how we scaled these processes across 19 products and 41 teams.
Additionally, we will explore the role of DevOps culture and team responsibility in product development. Using real case studies, we will analyze whether critical failures can be prevented and how to achieve that effectively.
SB7 Mobile Ltd: Simplified & Secure ServicesReuben Jasper
SB7 Mobile Ltd is enhancing customer experience by improving support accessibility, billing transparency, and security. The company has strengthened payment authorization, simplified unsubscription, and expanded customer service channels to address common concerns.
AI Trends and Fun Demos – Sotheby’s Rehoboth PresentationEthan Holland
Ethan B. Holland explores the impact of artificial intelligence on real estate and digital transformation. Covering key AI trends such as multimodal AI, agency, co-pilots, and AI-powered computer usage, the document highlights how emerging technologies are reshaping industries. It includes real-world demonstrations of AI in action, from automated real estate insights to AI-generated voice and video applications. With expertise in digital transformation, Ethan shares insights from his work optimizing workflows with AI tools, automation, and large language models. This presentation is essential for professionals seeking to understand AI’s role in business, automation, and real estate.
The Constructor's Digital Transformation Playbook: Reducing Risk With TechnologyAggregage
https://www.professionalconstructorcentral.com/frs/27678427/the-constructor-s-digital-transformation-playbook--reducing-risk-with-technology
Reduce risk and boost efficiency with digital transformation in construction. Join us to explore how AI, automation, and data-driven insights can improve project safety and streamline operations.
Caching for Performance Masterclass: The In-Memory DatastoreScyllaDB
Understanding where in-memory data stores help most and where teams get into trouble.
- Where in the stack to cache
- Memcached as a tool
- Modern cache primitives
Getting Started with AWS - Enterprise Landing Zone for Terraform Learning & D...Chris Wahl
Recording: https://youtu.be/PASG0NTKUQA?si=1Ih7O9z0Lk0IzX9n
Welcome innovators! In this comprehensive tutorial, you will learn how to get started with AWS Cloud and Terraform to build an enterprise-like landing zone for a secure, low-cost environment to develop with Terraform. We'll guide you through setting up AWS Control Tower, Identity and Access Management, and creating a sandbox account, ensuring you have a safe and controlled area for learning and development. You'll also learn about budget management, single sign-on setup, and using AWS organizations for policy management. Plus, dive deep into Terraform basics, including setting up state management, migrating local state to remote state, and making resource modifications using your new infrastructure as code skills. Perfect for beginners looking to master AWS and Terraform essentials!
This is a comprehensive guide explaining how blockchain technology works, its key features, and real-world applications in industries like finance, supply chain, and retail. Learn about different blockchain networks (public, private, and consortium) and the challenges businesses face in adopting blockchain. Discover how blockchain consulting can help businesses implement secure, transparent, and efficient solutions, reducing risks and optimizing operations. This guide is ideal for businesses exploring blockchain adoption and seeking expert guidance.
"Building Trust: Strengthening Your Software Supply Chain Security", Serhii V...Fwdays
The talk focuses on developing and integrating automation tools to enhance Supply Chain security. It addresses reproducible security practices with tools like Renovate and Wiz, as well as GitLab and JFrog Artifactory, to enforce consistent security scans seamlessly within existing workflows.
We will cover centralized artifact management for improved oversight and consistency. Furthermore, we will discuss the seamless integration of security scans into deployment tooling, featuring automatic deployment blocks for vulnerabilities and a controlled override option for flexibility.
The talk also examines tactics to keep the source code secure and up to date. We will explore the integration of runtime monitoring systems with detection capabilities and SLAs to manage and resolve issues on time.
Caching for Performance Masterclass: Caching StrategiesScyllaDB
Exploring the tradeoffs of common caching strategies – and a look at the architectural differences.
- Which strategies exist
- When to apply different strategies
- ScyllaDB cache design
Artificial Intelligence Quick Research Guide by Arthur MorganArthur Morgan
This is a Quick Research Guide (QRG).
QRGs include the following:
- A brief, high-level overview of the QRG topic.
- A milestone timeline for the QRG topic.
- Links to various free online resource materials to provide a deeper dive into the QRG topic.
- Conclusion and a recommendation for at least two books available in the SJPL system on the QRG topic.
QRGs planned for the series:
- Artificial Intelligence QRG
- Quantum Computing QRG
- Big Data Analytics QRG (coming 2025)
- Spacecraft Guidance, Navigation & Control QRG (coming 2026)
- UK Home Computing & The Birth of ARM QRG (coming 2027)
Any questions or comments?
- Please contact Arthur Morgan at [email protected].
100% human made.
16 KALALU🕉️🏇🪓🪈🏹👑👑👑👑👑🤴🦁💿✈️🛸🚀🪩🥏🍥 APARAMAHASAHASRA SIMHAMAHANKALKIADIPARASAKTIBH...IT Industry
🕉️🕺🌎🌌🦸👑👑👑👑👑🤴💝🎉🏆✈️🛸🚀🪩🥏💿🍥🏹🪈🪓🏇 BHAGWAN SRI RAMA SIMHA OMKARAM SRI SRI KING VISNU KALKI SRI KRISNA PARAMATMA SRI SRI KING VISNU SARAT KRISNA PARAMATMA SRI SRI KING ADISIMHA APARAMAHASAHASRA SAHASRASAMASTA SAHASRA SAMASTA APARAMAHASAHASRA BHARGAVA SIMHA TRINETRA APARAMAHASAHASRA SIMHAMAHANKALI ADIPARASAKTI KVADIPARASAKTI ANEKASAHASRA MAHA INFINITY SIMHA SAHASRA AVATARAMULU SRI SRI KING VISNU SUPREME GODS HEADS KING VISNU SUPREME ALFAONKA SAHASRA SAMASTA APARAMAHASAHASRA BHARGAVA SIMHA TRINETRA APARAMAHASAHASRA SIMHAMAHANKALI ADIPARASAKTI KVADIPARASAKTI VAARE SRI SRI KING VISNU KAVERI VEERA BHARAT BHUSHAN MR.KALKIKINGSUPREMEGODSHEADS MEGA KALKI ROBO ALIENS KING SUPREME GODS HEADS KING ALFA SUPREMO 16 KALALU !! 🪓🏇🪈🏹🍥💿🥏🪩🚀🛸✈️🏆🎉💝🤴👑👑👑👑👑🦸🕺🌌🌎🕉️
TrustArc Webinar: State of State Privacy LawsTrustArc
The U.S. data privacy landscape is rapidly proliferating, with 20 states enacting comprehensive privacy laws as of November 2024. These laws cover consumer rights, data collection and use including for sensitive data, data security, transparency, and various enforcement mechanisms and penalties for non-compliance.
Navigating this patchwork of state-level laws is crucial for businesses to ensure compliance and requires a combination of strategic planning, operational adjustments, and technology to be proactive.
Join leading experts from TrustArc, the Future of Privacy Forum, and Venable for an insightful webinar exploring the evolution of state data privacy laws and practical strategies to maintain compliance in 2025.
This webinar will review:
- A comprehensive overview of each state’s privacy regulations and the latest updates
- Practical considerations to help your business achieve regulatory compliance across multiple states
- Actionable insights to future-proof your business for 2025
Webinar: LF Energy GEISA: Addressing edge interoperability at the meterDanBrown980551
This webinar will introduce the Grid Edge Security and Interoperability Alliance, or GEISA, an effort within LF Energy to address application interoperability at the very edge of the utility network: meters and other distribution automation devices. Over the last decade platform manufacturers have introduced the ability to run applications on electricity meters and other edge devices. Unfortunately, while many of these efforts have been built on Linux, they haven’t been interoperable. APIs and execution environment have varied from one manufacturer to the next making it impossible for utilities to obtain applications that they can run across a fleet of different devices. For utilities that want to minimize their supply chain risk by obtaining equipment from multiple suppliers, they are forced to run and maintain multiple separate management systems. Applications available for one device may need to be ported to run on another, or they may not be available at all.
GEISA addresses this by creating a vendor neutral specification for utility edge computing environments. This webinar will discuss why GEISA is important to utilities, the specific issues GEISA will solve and the new opportunities it creates for utilities, platform vendors, and application vendors.
Caching for Performance Masterclass: Caching at ScaleScyllaDB
Weighing caching considerations for use cases with different technical requirements and growth expectations.
- Request coalescing
- Negative sharding
- Rate limiting
- Sharding and scaling
"10 Pitfalls of a Platform Team", Yura RochniakFwdays
There are many obstacles and pitfalls on the path towards operational zen. Many routes could lead to dead ends and many detours could end up being loops.
In this semi-comedy talk I share some examples of how processes fail for engineering teams that I observed through my career, using two pillars of the Internet culture - memes and numbered lists.
Leadership u automatizaciji: RPA priče iz prakse!UiPathCommunity
Dobrodošli na "AI Powered Automation Leadership Talks", online događaj koji okuplja senior lidere i menadžere iz različitih industrija kako bi podelili svoja iskustva, izazove i strategije u oblasti RPA (Robotic Process Automation). Ovaj događaj pruža priliku da zavirite u način razmišljanja ljudi koji donose ključne odluke u automatizaciji i liderstvu.
📕 Kroz panel diskusiju sa tri izuzetna stručnjaka, istražićemo:
Kako uspešno započeti i skalirati RPA projekte u organizacijama.
Koji su najveći izazovi u implementaciji RPA-a i kako ih prevazići.
Na koje načine automatizacija menja radne procese i pomaže timovima da ostvare više.
Bez obzira na vaše iskustvo sa UiPath-om ili RPA uopšte, ovaj događaj je osmišljen kako bi bio koristan svima – od menadžera do tehničkih lidera, i svima koji žele da unaprede svoje razumevanje automatizacije.
Pridružite nam se i iskoristite ovu jedinstvenu priliku da naučite od onih koji vode automatizaciju u svojim organizacijama. Pripremite svoja pitanja i inspiraciju za sledeće korake u vašoj RPA strategiji!
UiPath Automation Developer Associate Training Series 2025 - Session 1DianaGray10
Welcome to UiPath Automation Developer Associate Training Series 2025 - Session 1.
In this session, we will cover the following topics:
Introduction to RPA & UiPath Studio
Overview of RPA and its applications
Introduction to UiPath Studio
Variables & Data Types
Control Flows
You are requested to finish the following self-paced training for this session:
Variables, Constants and Arguments in Studio 2 modules - 1h 30m - https://academy.uipath.com/courses/variables-constants-and-arguments-in-studio
Control Flow in Studio 2 modules - 2h 15m - https:/academy.uipath.com/courses/control-flow-in-studio
⁉️ For any questions you may have, please use the dedicated Forum thread. You can tag the hosts and mentors directly and they will reply as soon as possible.
2. Who am I?
• Senior Consultant at Digital Primates
– Building next generation client applications
• Built video applications for many of the most
attended streaming events.
• Developing Internet applications for 17 years
• Author of 12 books on Internet technologies
3. Agenda
• Video and the Internet today
• Understanding HTTP Streaming
• What are the Streaming options without a
plugin?
• Understanding MediaSource Extensions (MSE)
• What is DASH
• Making it work in a browser
• Questions
4. Video is dominating the Internet
• Desktop: Video makes up 50% of traffic at peak periods
– notably 30% from Netflix and 11% from YouTube
• Mobile: Video traffic is growing exponentially
Fixed Internet Mobile Internet
5. HTTP Adaptive Streaming
Media Capture & Encoding
Media Origin Servers HTTP Cache Servers Client Devices
0010101000
01010
0101010100
01110
0111010001
1010101
0010101000
01010
0101010100
01110
0111010001
1010101
0010101000
01010
0101010100
01110
0111010001
1010101
0010101000010
10
0101010100011
10
0111010001101
0101
Encode each segment
at multiple bitrates
2 Split the video into
small segments
1
Make each segment
addressable via a HTTP-URL3
Client makes decision
on which segment to
download
4
Client splices together
and plays back5
6. HTTP Streaming Landscape
• Apple’s HTTP Live Streaming (HLS)
• Microsoft’s Smooth Streaming
• Adobe’s HTTP Dynamic Streaming (HDS)
• And many more…
7. The challenge
• Most agree that HTTP Streaming is the most
efficient choice
• Different devices support different streaming
protocols
• No one standard is currently supported
ubiquitously
• Results in media being served in several
different formats to support the broadest
range of devices
8. What do browsers support?
• Unfortunately, Progressive Download is the only
ubiquity supported option
• Different Browsers support different video
codec’s
– H.264
– webM
– Etc.
• Safari (iOs and MacOS only) natively supports HLS
• MediaSource Extensions in Chrome (and soon
others)
9. MediaSource Extensions (MSE)
• MSE allow for pieces (segments) of media to
be handed to the HTML5 video tag’s buffer
directly.
• This enables HTTP Streaming in HTML
• Not universally supported, yet.
10. What is MPEG-DASH
DASH – Dynamic Adaptive Streaming via HTTP
International open standard, developed and
published by ISO
Addresses both simple and advanced use cases
Enables highest-quality multiscreen distribution
and efficient dynamic adaptive switching
Enables reuse of existing content, devices and
infrastructure
Attempts to unify to a single standard for HTTP
Streaming
11. DASH and codecs
• The DASH specification is codec agnostic
• Any existing or future codec can work with
DASH
• DASH manifest describes which codec is used
– Different codecs store the actual video data
differently
12. DASH264
• H.264 is dominant format today
• Many vendors and service providers are
committed to supporting/enabling DASH264
• Provides support for today’s requirements
such as DRM
• H.264 is backed by rigorous testing and
conformance
13. DASH Industry Forum
• Addressing the dramatic growth of broadband
video by recommending a universal delivery
format that provides end users with the best
possible media experience by dynamically
adapting to changing network conditions.
14. DASH Industry Forum
• Objectives:
– promote and catalyze market adoption of MPEG-DASH
– publish interoperability and deployment guidelines
– facilitate interoperability tests
– collaborate with standard bodies and industry
consortia in aligning ongoing DASH standards
development and the use of common profiles across
industry organizations
• Over 65 members
• Visit http://dashif.org for more information
• Released the DASH/264 standard
15. Building a DASH player
• We have built DASH players for several
different platforms
– Flash
– Android
– HTML5/JavaScript (dash.js)
• DASH.js is available as an open source project
(bsd3) on github
• DASH.js is the reference player for the DASH
Industry Forum (dashif.org)
16. How to play a DASH Stream
• Download Manifest
• Parse Manifest
• Determine optimal bandwidth for client
• Initialize for bandwidth
• Download Segment
• Hand segment to MSE
• Check Bandwidth to determine if change is
necessary
17. Understanding DASH structure
• Three types of files
– Manifest (.mpd)
• XML file describing the segments
– Initialization file
• Contains headers needed to decode bytes in segments
– Segment Files
• Contains playable media
• Includes:
– 0…many video tracks
– 0…many audio tracks
18. DASH Manifest
• Manifest contains:
– Root node
– 1 or more periods
• Periods contain 1 adaptation set per video stream and
• Periods contain 1 adaptation set per audio stream
• Adaptation Sets contain:
– Content Composition nodes (for each video or audio track)
– 1 or more Representation node
» Each representation describes a single bitrate
» Representations contain data on finding the actual segments
» Different ways a representation can describe segments
19. Describing Representations
• SegmentBase
– Describes a stream with only a single Segment per bitrate
– Can be used for Byte Range Requests
• SegmentList
– A SegmentList will contain a specific list of each
SegmentURL (individual HTTP packet with media data)
– Can be used for Byte Range Requests
• SegmentTemplate
– Defines a known url for the fragment with wildcards
resolved at runtime to request a segments (see bbb.mpd)
– Alternatively, can specify a list of segments based on
duration
24. Tools used by dash.js
Core Player
• Q – Asynchronous handling with promises
• Dijon – DI / IOC
• Jasmine – unit tests
Web Site
• JQuery – DOM manipulation
• Flat-ui – UI elements
• Flot – Charting
• Kendo - Components
25. Class Structure
• The player is divided into two main packages.
• streaming – Contains the classes responsible
for creating and populating the MediaSource
buffers. These classes are intended to be
abstract enough for use with any segmented
stream (such as DASH, HLS, HDS and MSS).
• dash – Contains the classes responsible for
making decisions specifically related to Dash.
27. MediaPlayer.js
• Exposes the top level functions and properties
to the developer (play, autoPlay, isLive, abr
quality, and metrics).
• The manifest URL and the HTML Video object
as passed to the MediaPlayer.
28. Context.js
• The dependency mapping for the stream
package.
• The context is passed into the MediaPlayer
object allowing for different MediaPlayer
instances to use different mappings.
29. Stream.js
• Loads/refreshes the manifest.
• Create SourceBuffers from MediaSource.
• Create BufferManager classes to manage
SourceBuffers.
• Responds to events from HTML Video object.
• For a live stream, the live edge is calculated
and passed to the BufferController instances.
30. Debug.js
• Convenience class for logging methods.
• Default implementation is to just use
console.log().
• Extension point for tapping into logging
messages.
31. BufferController.js
• Responsible for loading fragments and
pushing the bytes into the SourceBuffer.
• Once play() has been called a timer is
started to check the status of the bytes in the
buffer.
• If the amount of time left to play is less than
Manifest.minBufferTime the next fragment
is loaded.
• Records metrics related to playback.
32. FragmentLoader.js
• Responsible for loading fragments.
• Loads requests sequentially.
ManifestLoader.js
• Responsible for loading manifest files.
• Returns the parsed manifest object.
33. AbrController.js
• Responsible for deciding if the current quality
should be changed.
• The stream metrics are passed to a set of
‘rules’.
• Methods:
getPlaybackQuality(type, data)
type – The type of the data
(audio/video).
data – The stream data.
34. DownloadRatioRule.js
• Validates that fragments are being
downloaded in a timely manner.
• Compares the time it takes to download a
fragment to how long it takes to play out a
fragment.
• If the download time is considered a
bottleneck the quality will be lowered.
35. InsufficientBufferRule.js
• Validates that the buffer doesn’t run dry
during playback.
• If the buffer is running dry continuously it
likely means that the player has a processing
bottleneck (video decode time is longer than
playback time).
36. LimitSwitchesRule.js
• Watches for competing rules to avoid constant
bitrate switches.
• If two or more rules are causing switches too
often this rule will limit the switches to give a
better overall playback experience.
39. DashParser.js
• Converts the manifest to a JSON object.
• Converts duration and datetime strings into
number/date objects.
• Manages inheritance fields.
– Many fields are inherited from parent to child
nodes in DASH.
– For example, a BaseURL can be defined in the
<MPD> node and all <Representation> nodes
inherit that value.
40. DashHandler.js
• Responsible for deciding which fragment URL should be
loaded.
• Methods:
getInitRequest(quality) – Returns an initialization
request for a given quality, if available.
getSegmentRequestForTime(time, quality) – Returns
a fragment URL to load for a given quality and a given
time. Returns a Stream.vo.SegmentRequest object.
getNextSegmentRequest(quality) – Returns the next
fragment URL to load. Assumes that
getSegmentRequestForTime() has already been called.
getCurrentTime (quality) – Returns the time for the
last loaded fragment index.
41. DashHandler.js (cont’d)
• Uses available information in the manifest
(SegmentList, SegmentTemplate, SegmentBase).
• When using a single, non-fragmented mp4 file the SIDX box
will be loaded to determine byte ranges for segments.
42. Flow
1. Create the Context and MediaPlayer instances.
var context = new Dash.di.DashContext(),
player = new MediaPlayer(context);
2. Initialize MediaPlayer and set manifest URL.
player.startup();
player.setIsLive(false);
player.attachSource(manifest_url);
3. Attach HTML Video element.
video = document.querySelector(".dash-video-player
video"),
player.autoPlay = true;
player.attachView(video);
43. 2. Call play()on the MediaPlayer (if autoPlay =
false).
3. The Stream object will be created and initialized with the
manifest URL.
4. The manifest is loaded and then parsed.
5.MediaSource, SourceBuffers, and
BufferControllers are created.
– Create one BufferController per stream type (usually
video and audio).
6. Set the duration of the MediaSource to the duration of the
manifest (or infinity for a live stream).
7. If the stream is live, calculate the live edge.
8. Call play() on the HTML video element.
9. The BufferManager instances create a timer. When the
timer ticks the state of the buffers is checked.
44. BufferManager.validate()
1. Check to see if the buffers need more data.
• Must be in a playing state.
• Must not already be loading data.
• Must require more data to be buffered.
amountBuffered < manifest.minBufferTime
2. If automatic ABR is enabled check to see if the bitrate
should be changed.
• Ask AbrController for the new quality.
• Rules will determine which bitrate to change to.
3. If initial playback, seeking, or the bitrate has changed load
the initialization fragment (if available).
45. 4. Ask the IndexHandler for the next fragment request.
• If seeking pass the seek time to the IndexHandler.
• Otherwise ask for the ‘next’ fragment.
• Pass the bitrate to the IndexHandler.
6. The IndexHandler returns a SegmentRequest indicating
what action the BufferManager should take next.
• “download” – Download and append the fragment to the buffer.
• “stall” – Wait because the IndexHandler is not ready.
• “complete” – Signal that the stream has completed playback.
7. Repeat.
46. Resources
• GPAC
– http://gpac.wp.mines-telecom.fr
– Provides baseline test streams
– Provides baseline player
• MP4Parser
– http://code.google.com/p/mp4parser/
– Open Source java project
– Allows for display of contents within boxes
• DASH Industry Forum
– http://www.dashif.org
– Test Vectors
– Reference Player