Amazon Web Services (AWS) has made Lambda available at the Edge. By edge they mean the edge nodes of their CloudFront (CF) content distribution network (CDN). This mash-up of the two services allows for processing of final data all the way out to the point where it is almost reaching the client and allows for processing requests and the information passing through from the origin to the client / browser that made the request, but I am getting ahead of myself. For those of you who are not aware of what AWS, CF, or Lambda is, let’s start with what they are…
I built this new WordPress plugin, RequireWP, to help speed up the web. It extends WordPress’s WP_Scripts class to write your script requirements out with Require.js syntax. I have seen a ~20% speed increase (decline in load time) on this site which is using the plugin as well. After installing I just had to modify the theme’s required scripts since a few were not set correctly.
Today the Google-owned YouTube video-on-demand (VOD) and live streaming service that brought you kittens in teacups has switched to using the HTML5 native video tag by default. What does this mean? Up till now the majority of videos on YouTube have required the Adobe-produced Shockwave Flash plugin to play videos. However, over the years browser standards have evolved and now support playing video directly through the browser. Playing video through the browser without using a plugin is generally faster to load and faster to play. They have also introduced a few new standards to the mix to allow for encryption, protection, and streaming of content directly in the browser.
Google bought On2 Technologies, the company that produced the VP9 video codec (and likely using Google’s WebM wrapper), back in 2009. Since then they have open-sourced it and have been pushing all browser developers to support it. VP9 is able to get similar visual quality to the popular H.264 codec while reducing file size moderately. The codec is also able to be loaded very quickly, especially within the browser. YouTube claims a 15-80% decrease in start-up time over using Flash and H.264 (note that the vast majority of the load time would be starting up the Flash plugin). YouTube also claims it will enable them to start delivering 4K video at 60FPS.
Encryption & Content Protection
YouTube is also using Encrypted Media Extensions and Common Encryption standards to deliver content securely and behind a pay-wall where necessary. Unlike alternatives such as Flash and Silverlight, these content protection standards are completly separate from the content. Which means you don’t need costly proprietary software to rewrite all or part of the content to create and store it. It is also not limited to one or two pieces of content protection software. Anyone can develop their own protection schemes using the standards and offer it for free or sell it on the open market. It will be interesting to see what happens as this becomes the de facto standard over time.
Within the same announcement, YouTube engineers also hint at the possibility of using the WebRTC (Web Real-Time Communication) standard built into most modern browsers as part of a live video streaming stack (should OBS and XSplit be worried?). WebRTC is already being used in part by Google Hangouts and it is already known that YouTube has wanted to expand it’s live streaming video offerings. Could this be a foreshadowing? Very likely. We will have to wait and find out.
Native Adaptive Bitrate
Most video streaming is done using a couple of proprietary technologies and one standard. Software like Adobe’s Streaming Media Server deliver content using Real Time Messaging Protocol (RTMP) and Real Time Streaming Protocol (RTSP) which have become outdated and unsupported. They also cause problems with corporate firewalls that block unknown protocols for security reasons. Microsoft’s Smooth Streaming is a more recent entry but is meant specifically for their proprietary Internet Information Server (IIS) and for their Silverlight browser plugin. Adoption by anyone except large media conglomerates looking to protect their content while making it near-impossible to view on any other devices (and thereby pissing off their customers) has been lackluster at best. The HLS standard created by Adobe is the most popular and easiest to implement solution so far. It provides a specific layout for playlist files and how videos should be broken into pieces that can be downloaded more quickly and allows proper management software to determine the best bitrate to use depending on the user’s bandwidth limits.
Obviously these new standards a fresh-off-the-press having just been released this month so they will undergo a number of months of commenting, scrutiny, and alterations before they are finalized.
Lastly, YouTube is changing over their embed codes. Gone are the old <object> tags that dominated the landscape. They are now replaced with shiny new iframe embeds. The “page-within-a-page” design of iframes allows them to load the technology that is needed for each user – be it HTML5 or Adobe’s Flash plugin.