{"id":504,"date":"2026-01-13T03:03:12","date_gmt":"2026-01-13T03:03:12","guid":{"rendered":"https:\/\/blog.mozilla.org\/webrtc\/?p=504"},"modified":"2026-01-15T17:40:47","modified_gmt":"2026-01-15T17:40:47","slug":"firefox-webrtc-2025","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/webrtc\/firefox-webrtc-2025\/","title":{"rendered":"Firefox WebRTC 2025"},"content":{"rendered":"<p>In an increasingly siloed internet landscape, WebRTC directly connects human voices and faces. The technology powers Audio\/Video calling, conferencing, live streaming, telehealth, and more. We strive to make Firefox the client that best serves humans during those experiences.<\/p>\n<h2>Expanding Simulcast Support<\/h2>\n<p>Simulcast allows a single WebRTC video to be simultaneously transmitted at differing qualities. Some codecs can efficiently encode the streams simultaneously. Each viewer can receive the video stream that gives them the best experience for their viewing situation, whether that be using a phone with a small screen and shaky cellular link, or a desktop with a large screen and wired broadband connection. While Firefox has supported a more limited set of simulcast scenarios for some time, this year we put a lot of effort into making sure that even more of our users using even more services can get those great experiences.<\/p>\n<p>We have added simulcast capabilities for <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1210175\">H.264 <\/a>and <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1932065\">AV1<\/a>. This along with adding support for the <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1945261\">dependency descriptor header<\/a> (<a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1947115\">and H.264 support<\/a>), increases the number of services that can take advantage of simulcast while using Firefox.<\/p>\n<h2>Codec Support<\/h2>\n<p>Dovetailing the simulcast support, we now support more codecs doing more things on more platforms! This includes turning on <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1944878\">AV1 support by default<\/a>, and adding <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1936052\">temporal layer support for H.264<\/a>. Additionally there were a number of behind the scenes changes made. For our users, this means that they have a <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1938047\">more<\/a> <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1953985\">uniform<\/a> <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1942245\">experience<\/a> across devices.<!--more--><\/p>\n<h2>Media Capture<\/h2>\n<p>We have improved <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1286945\">camera resolution and frame-rate<\/a> adaptation on all platforms, as well as OS-integrated improved <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1914196\">screen capture on macOS<\/a>. Users will have a smoother experience when joining calls with streams that are better suited to their devices. This means having smoother video and a <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1433480\">consistent aspect ratio<\/a>.<\/p>\n<h2>DataChannel<\/h2>\n<p>Improving reliability, performance, and compatibility of our <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/RTCDataChannel\">DataChannel<\/a> implementation has been a focus this year. DataChannels can now be run on <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1969293\">workers<\/a> keeping data processing off of the main thread. This was enabled by a major refactoring effort, migrating our implementation to <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1927886\">dcsctp<\/a>.<\/p>\n<h2>Web Compatibility<\/h2>\n<p>We targeted a number of areas where we could improve compatibility with the broad web of services that our users rely on.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1329847\">Bug 1329847<\/a> Implement RTCDegradationPreference related functions<\/p>\n<p><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1894137\">Bug 1894137<\/a> Implement RTCRtpEncodingParameters.codec<\/p>\n<p><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1371391\">Bug 1371391<\/a> Implement remaining mandatory fields in RTCIceCandidatePairStats<\/p>\n<p><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1525241\">Bug 1525241<\/a> Implement RTCCertificate.getFingerprints method<\/p>\n<p><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1835077\">Bug 1835077<\/a> Support RTCEncodedAudioFrameMetadata.contributingSources<\/p>\n<p><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1972657\">Bug 1972657<\/a> SendKeyFrameRequest Should Not Reject Based on Transceiver State<\/p>\n<p>&nbsp;<\/p>\n<h2>Summary<\/h2>\n<p>2025 has been an exciting and busy year for WebRTC in Firefox. We have broadly improved web compatibility throughout the WebRTC technology stack, and we are looking forward to another impactful year in 2026.<\/p>\n","protected":false},"excerpt":{"rendered":"In an increasingly siloed internet landscape, WebRTC directly connects human voices and faces. The technology powers Audio\/Video calling, conferencing, live streaming, telehealth, and more. We strive to make Firefox the client that best serves humans during those experiences. Expanding Simulcast Support Simulcast allows a single WebRTC video to be simultaneously transmitted at differing qualities. Some [&hellip;]","protected":false},"author":1551,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"coauthors":[301113],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Firefox WebRTC 2025 - Advancing WebRTC<\/title>\n<meta name=\"description\" content=\"2025 was a busy year at Firefox. Here are the major improvements to Firefox WebRTC in 2025.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.mozilla.org\/webrtc\/firefox-webrtc-2025\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Firefox WebRTC 2025 - Advancing WebRTC\" \/>\n<meta property=\"og:description\" content=\"2025 was a busy year at Firefox. Here are the major improvements to Firefox WebRTC in 2025.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.mozilla.org\/webrtc\/firefox-webrtc-2025\/\" \/>\n<meta property=\"og:site_name\" content=\"Advancing WebRTC\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-13T03:03:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-15T17:40:47+00:00\" \/>\n<meta name=\"author\" content=\"ngrunbaum@mozilla.com\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"ngrunbaum@mozilla.com\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.mozilla.org\/webrtc\/firefox-webrtc-2025\/\",\"url\":\"https:\/\/blog.mozilla.org\/webrtc\/firefox-webrtc-2025\/\",\"name\":\"Firefox WebRTC 2025 - Advancing WebRTC\",\"isPartOf\":{\"@id\":\"https:\/\/blog.mozilla.org\/webrtc\/#website\"},\"datePublished\":\"2026-01-13T03:03:12+00:00\",\"dateModified\":\"2026-01-15T17:40:47+00:00\",\"author\":{\"@id\":\"https:\/\/blog.mozilla.org\/webrtc\/#\/schema\/person\/5ef2d1a597cc1b1bbd43d05e9c820305\"},\"description\":\"2025 was a busy year at Firefox. Here are the major improvements to Firefox WebRTC in 2025.\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.mozilla.org\/webrtc\/firefox-webrtc-2025\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.mozilla.org\/webrtc\/firefox-webrtc-2025\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.mozilla.org\/webrtc\/firefox-webrtc-2025\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.mozilla.org\/webrtc\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Firefox WebRTC 2025\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.mozilla.org\/webrtc\/#website\",\"url\":\"https:\/\/blog.mozilla.org\/webrtc\/\",\"name\":\"Advancing WebRTC\",\"description\":\"Committed to moving Firefox and WebRTC forward\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.mozilla.org\/webrtc\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.mozilla.org\/webrtc\/#\/schema\/person\/5ef2d1a597cc1b1bbd43d05e9c820305\",\"name\":\"ngrunbaum@mozilla.com\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.mozilla.org\/webrtc\/#\/schema\/person\/image\/fa294091d69caedd030a4abe720dfa1d\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e49c6f6d2a2296f8ff216adbd0a60fe5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e49c6f6d2a2296f8ff216adbd0a60fe5?s=96&d=mm&r=g\",\"caption\":\"ngrunbaum@mozilla.com\"},\"url\":\"https:\/\/blog.mozilla.org\/webrtc\/author\/ngrunbaummozilla-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Firefox WebRTC 2025 - Advancing WebRTC","description":"2025 was a busy year at Firefox. Here are the major improvements to Firefox WebRTC in 2025.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.mozilla.org\/webrtc\/firefox-webrtc-2025\/","og_locale":"en_US","og_type":"article","og_title":"Firefox WebRTC 2025 - Advancing WebRTC","og_description":"2025 was a busy year at Firefox. Here are the major improvements to Firefox WebRTC in 2025.","og_url":"https:\/\/blog.mozilla.org\/webrtc\/firefox-webrtc-2025\/","og_site_name":"Advancing WebRTC","article_published_time":"2026-01-13T03:03:12+00:00","article_modified_time":"2026-01-15T17:40:47+00:00","author":"ngrunbaum@mozilla.com","twitter_card":"summary_large_image","twitter_misc":{"Written by":"ngrunbaum@mozilla.com","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.mozilla.org\/webrtc\/firefox-webrtc-2025\/","url":"https:\/\/blog.mozilla.org\/webrtc\/firefox-webrtc-2025\/","name":"Firefox WebRTC 2025 - Advancing WebRTC","isPartOf":{"@id":"https:\/\/blog.mozilla.org\/webrtc\/#website"},"datePublished":"2026-01-13T03:03:12+00:00","dateModified":"2026-01-15T17:40:47+00:00","author":{"@id":"https:\/\/blog.mozilla.org\/webrtc\/#\/schema\/person\/5ef2d1a597cc1b1bbd43d05e9c820305"},"description":"2025 was a busy year at Firefox. Here are the major improvements to Firefox WebRTC in 2025.","breadcrumb":{"@id":"https:\/\/blog.mozilla.org\/webrtc\/firefox-webrtc-2025\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.mozilla.org\/webrtc\/firefox-webrtc-2025\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.mozilla.org\/webrtc\/firefox-webrtc-2025\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.mozilla.org\/webrtc\/"},{"@type":"ListItem","position":2,"name":"Firefox WebRTC 2025"}]},{"@type":"WebSite","@id":"https:\/\/blog.mozilla.org\/webrtc\/#website","url":"https:\/\/blog.mozilla.org\/webrtc\/","name":"Advancing WebRTC","description":"Committed to moving Firefox and WebRTC forward","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.mozilla.org\/webrtc\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.mozilla.org\/webrtc\/#\/schema\/person\/5ef2d1a597cc1b1bbd43d05e9c820305","name":"ngrunbaum@mozilla.com","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.mozilla.org\/webrtc\/#\/schema\/person\/image\/fa294091d69caedd030a4abe720dfa1d","url":"https:\/\/secure.gravatar.com\/avatar\/e49c6f6d2a2296f8ff216adbd0a60fe5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e49c6f6d2a2296f8ff216adbd0a60fe5?s=96&d=mm&r=g","caption":"ngrunbaum@mozilla.com"},"url":"https:\/\/blog.mozilla.org\/webrtc\/author\/ngrunbaummozilla-com\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/webrtc\/wp-json\/wp\/v2\/posts\/504"}],"collection":[{"href":"https:\/\/blog.mozilla.org\/webrtc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mozilla.org\/webrtc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/webrtc\/wp-json\/wp\/v2\/users\/1551"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/webrtc\/wp-json\/wp\/v2\/comments?post=504"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/webrtc\/wp-json\/wp\/v2\/posts\/504\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/webrtc\/wp-json\/wp\/v2\/media?parent=504"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webrtc\/wp-json\/wp\/v2\/categories?post=504"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webrtc\/wp-json\/wp\/v2\/tags?post=504"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webrtc\/wp-json\/wp\/v2\/coauthors?post=504"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}