
Media application basics
Working with media often requires changing the characteristics of media files. On this page, you'll learn about the tools used and how to install them quickly.
4,233 articles on Engineering.

Working with media often requires changing the characteristics of media files. On this page, you'll learn about the tools used and how to install them quickly.

Most browsers can get access to the user's camera.

Commands needed to convert a raw mov file to media assets packaged for DASH or HLS.

Enabling HTTPS on your servers is critical to securing your webpages.

You might think that you can take a video from a camera and upload it to the web as is. Preparing a video for serving from your own site is a bit more complicated.

Create the best mobile media experience on the Web by following these best practises.

Find out how this new syntax can streamline media queries.

Most browsers can get access to the user's microphone.

Most browsers can get access to the user's camera.

Web developers can customize media notifications and respond to media related events such as seeking or track changing with the Media Session API.

Media streaming is the method for continuously delivering multimedia content from a server where the content has been split into individual chunks of data that can be joined back together during playback in a specific order through a range request using protocols such as DASH and HLS.

Strategies to migrate your site from relying on the user-agent string to User-Agent Client Hints.





Build custom elements that work like built-in form controls.

A demo using the Web Audio API.


The role of semantics in page navigation

This blog post announces a new collection of patterns for media apps.

A new, six part Progressive Web App training is now available, complete with a new series of codelabs to teach you how to build reliable, installable, and capable PWAs.


Some common recipes to make your app work offline.

Learn how to create a simple offline experience for your app.

Cumulative Layout Shift (CLS) is a metric that quantifies how often users experience sudden shifts in page content. In this guide, we'll cover optimizing common causes of CLS such as images and iframes without dimensions or dynamic content.

Learn how to optimize your website's Interaction to Next Paint.

You've been told "don't block the main thread" and "break up your long tasks", but what does it mean to do those things?

Learn how to optimize for the Time to First Byte metric.

This post explains how to load WebFonts to prevent layout shifts and blank pages when WebFonts are not available when the page loads.



The Lighthouse SEO audit scans your page, tests for things that matter to search engines, and gives you a score so you can see specific areas for improvement. SEO matters because it's how you get more relevant users viewing your content.

These passkey management guidelines help you accomplish an intuitive, secure, and robust experience for your users.

Passkeys make a website's user accounts safer, simpler, easier to use and passwordless. This document discusses how to allow users to create passkeys for your website.

Maximize conversions by helping your users complete address and payment forms as quickly and easily as possible.

Wouldn't it be great if users could search your site using their camera?

Having completed a site audit, you should have accurate review data in a form that makes it easy for developers and other stakeholders to prioritize and justify changes.

Once you've audited a site, make sure to package the results in a digestible form. Be sensitive to the people on the receiving end of your audit, structure your report carefully and present your data in terms of opportunities and solutions.

Follow these best practices when asking users for permission to access sensitive capabilities (such as camera, microphone, and location).

Persistent storage can help protect critical data from eviction, and reduce the chance of data loss.



Learn how gPhoto2 was ported to WebAssembly to control external cameras over USB from a web app.

Learn how code that interacts with external devices can be ported to the web with WebAssembly and Fugu APIs.

Learn how to adjust your prompts to achieve your preferred results across different LLMs, models, and model sizes.

By optimizing rendering cycles, Chrome 83 eliminates layout shifting when preloading optional fonts. Combining with font-display: optional is the most effective way to guarantee jank-free rendering of custom fonts.

In this section you'll learn how to format video for mobile web playback, and how to create multiple files to cover a range of browsers, plus how to encrypt them.

Progressive enhancements ensure your PWA remains useful on all modern browsers, while delivering an advanced experience on browsers that support newer web capabilities.

How to promote installation of Progressive Web Apps and best practices.

A step-by-step interactive tutorial that shows you how to build a client that subscribes the user to push notifications, displays push messages as notifications, and unsubscribes the user from push notifications.

There are right ways of using notifications, and ways of using them better. Learn what makes a good notification. We won't just show you what to do. We'll show you how to do it.







An overview of what push notifications are, why you might use them, and how they work.

A step-by-step interactive tutorial that shows you how to build a server that manages push notification subscriptions and sends web push protocol requests to a push service.