diff --git a/modules/rtp_rtcp/source/rtp_dependency_descriptor_extension.cc b/modules/rtp_rtcp/source/rtp_dependency_descriptor_extension.cc
index 3b09818..fd42b79 100644
--- a/modules/rtp_rtcp/source/rtp_dependency_descriptor_extension.cc
+++ b/modules/rtp_rtcp/source/rtp_dependency_descriptor_extension.cc
@@ -23,7 +23,6 @@
 namespace webrtc {
 
 constexpr RTPExtensionType RtpDependencyDescriptorExtension::kId;
-constexpr char RtpDependencyDescriptorExtension::kUri[];
 constexpr std::bitset<32> RtpDependencyDescriptorExtension::kAllChainsAreActive;
 
 bool RtpDependencyDescriptorExtension::Parse(
diff --git a/modules/rtp_rtcp/source/rtp_dependency_descriptor_extension.h b/modules/rtp_rtcp/source/rtp_dependency_descriptor_extension.h
index 5a89fae..a2aedb8 100644
--- a/modules/rtp_rtcp/source/rtp_dependency_descriptor_extension.h
+++ b/modules/rtp_rtcp/source/rtp_dependency_descriptor_extension.h
@@ -13,7 +13,6 @@
 #include <bitset>
 #include <cstdint>
 
-#include "absl/base/attributes.h"
 #include "absl/strings/string_view.h"
 #include "api/array_view.h"
 #include "api/rtp_parameters.h"
@@ -28,9 +27,6 @@
 class RtpDependencyDescriptorExtension {
  public:
   static constexpr RTPExtensionType kId = kRtpExtensionGenericFrameDescriptor02;
-  static constexpr ABSL_DEPRECATED("Use Uri()") char kUri[] =
-      "https://aomediacodec.github.io/av1-rtp-spec/"
-      "#dependency-descriptor-rtp-header-extension";
   static constexpr absl::string_view Uri() {
     return RtpExtension::kDependencyDescriptorUri;
   }
diff --git a/modules/rtp_rtcp/source/rtp_generic_frame_descriptor_extension.cc b/modules/rtp_rtcp/source/rtp_generic_frame_descriptor_extension.cc
index 49ec4a1..8a0810f 100644
--- a/modules/rtp_rtcp/source/rtp_generic_frame_descriptor_extension.cc
+++ b/modules/rtp_rtcp/source/rtp_generic_frame_descriptor_extension.cc
@@ -57,7 +57,6 @@
 //      |      ...      |
 //      +-+-+-+-+-+-+-+-+
 constexpr RTPExtensionType RtpGenericFrameDescriptorExtension00::kId;
-constexpr char RtpGenericFrameDescriptorExtension00::kUri[];
 
 bool RtpGenericFrameDescriptorExtension00::Parse(
     rtc::ArrayView<const uint8_t> data,
diff --git a/modules/rtp_rtcp/source/rtp_generic_frame_descriptor_extension.h b/modules/rtp_rtcp/source/rtp_generic_frame_descriptor_extension.h
index f260a48..93ca690 100644
--- a/modules/rtp_rtcp/source/rtp_generic_frame_descriptor_extension.h
+++ b/modules/rtp_rtcp/source/rtp_generic_frame_descriptor_extension.h
@@ -13,7 +13,6 @@
 #include <stddef.h>
 #include <stdint.h>
 
-#include "absl/base/attributes.h"
 #include "absl/strings/string_view.h"
 #include "api/array_view.h"
 #include "api/rtp_parameters.h"
@@ -26,9 +25,6 @@
  public:
   using value_type = RtpGenericFrameDescriptor;
   static constexpr RTPExtensionType kId = kRtpExtensionGenericFrameDescriptor00;
-  static constexpr ABSL_DEPRECATED("Use Uri()") char kUri[] =
-      "http://www.webrtc.org/experiments/rtp-hdrext/"
-      "generic-frame-descriptor-00";
   static constexpr absl::string_view Uri() {
     return RtpExtension::kGenericFrameDescriptorUri00;
   }
diff --git a/modules/rtp_rtcp/source/rtp_header_extensions.cc b/modules/rtp_rtcp/source/rtp_header_extensions.cc
index 12359a4..32edd63 100644
--- a/modules/rtp_rtcp/source/rtp_header_extensions.cc
+++ b/modules/rtp_rtcp/source/rtp_header_extensions.cc
@@ -41,7 +41,6 @@
 //   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 constexpr RTPExtensionType AbsoluteSendTime::kId;
 constexpr uint8_t AbsoluteSendTime::kValueSizeBytes;
-constexpr const char AbsoluteSendTime::kUri[];
 
 bool AbsoluteSendTime::Parse(rtc::ArrayView<const uint8_t> data,
                              uint32_t* time_24bits) {
@@ -98,7 +97,6 @@
 constexpr uint8_t AbsoluteCaptureTimeExtension::kValueSizeBytes;
 constexpr uint8_t AbsoluteCaptureTimeExtension::
     kValueSizeBytesWithoutEstimatedCaptureClockOffset;
-constexpr const char AbsoluteCaptureTimeExtension::kUri[];
 
 bool AbsoluteCaptureTimeExtension::Parse(rtc::ArrayView<const uint8_t> data,
                                          AbsoluteCaptureTime* extension) {
@@ -164,7 +162,6 @@
 
 constexpr RTPExtensionType AudioLevel::kId;
 constexpr uint8_t AudioLevel::kValueSizeBytes;
-constexpr const char AudioLevel::kUri[];
 
 bool AudioLevel::Parse(rtc::ArrayView<const uint8_t> data,
                        bool* voice_activity,
@@ -210,7 +207,6 @@
 // Sample Audio Level Encoding Using the Two-Byte Header Format
 constexpr RTPExtensionType CsrcAudioLevel::kId;
 constexpr uint8_t CsrcAudioLevel::kMaxValueSizeBytes;
-constexpr const char CsrcAudioLevel::kUri[];
 
 bool CsrcAudioLevel::Parse(rtc::ArrayView<const uint8_t> data,
                            std::vector<uint8_t>* csrc_audio_levels) {
@@ -259,7 +255,6 @@
 //   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 constexpr RTPExtensionType TransmissionOffset::kId;
 constexpr uint8_t TransmissionOffset::kValueSizeBytes;
-constexpr const char TransmissionOffset::kUri[];
 
 bool TransmissionOffset::Parse(rtc::ArrayView<const uint8_t> data,
                                int32_t* rtp_time) {
@@ -285,7 +280,6 @@
 //  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 constexpr RTPExtensionType TransportSequenceNumber::kId;
 constexpr uint8_t TransportSequenceNumber::kValueSizeBytes;
-constexpr const char TransportSequenceNumber::kUri[];
 
 bool TransportSequenceNumber::Parse(rtc::ArrayView<const uint8_t> data,
                                     uint16_t* transport_sequence_number) {
@@ -323,7 +317,6 @@
 constexpr uint8_t TransportSequenceNumberV2::kValueSizeBytes;
 constexpr uint8_t
     TransportSequenceNumberV2::kValueSizeBytesWithoutFeedbackRequest;
-constexpr const char TransportSequenceNumberV2::kUri[];
 constexpr uint16_t TransportSequenceNumberV2::kIncludeTimestampsBit;
 
 bool TransportSequenceNumberV2::Parse(
@@ -385,7 +378,6 @@
 //   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 constexpr RTPExtensionType VideoOrientation::kId;
 constexpr uint8_t VideoOrientation::kValueSizeBytes;
-constexpr const char VideoOrientation::kUri[];
 
 bool VideoOrientation::Parse(rtc::ArrayView<const uint8_t> data,
                              VideoRotation* rotation) {
@@ -423,7 +415,6 @@
 //  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 constexpr RTPExtensionType PlayoutDelayLimits::kId;
 constexpr uint8_t PlayoutDelayLimits::kValueSizeBytes;
-constexpr const char PlayoutDelayLimits::kUri[];
 
 bool PlayoutDelayLimits::Parse(rtc::ArrayView<const uint8_t> data,
                                VideoPlayoutDelay* playout_delay) {
@@ -465,7 +456,6 @@
 //   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 constexpr RTPExtensionType VideoContentTypeExtension::kId;
 constexpr uint8_t VideoContentTypeExtension::kValueSizeBytes;
-constexpr const char VideoContentTypeExtension::kUri[];
 
 bool VideoContentTypeExtension::Parse(rtc::ArrayView<const uint8_t> data,
                                       VideoContentType* content_type) {
@@ -508,7 +498,6 @@
 
 constexpr RTPExtensionType VideoTimingExtension::kId;
 constexpr uint8_t VideoTimingExtension::kValueSizeBytes;
-constexpr const char VideoTimingExtension::kUri[];
 constexpr uint8_t VideoTimingExtension::kFlagsOffset;
 constexpr uint8_t VideoTimingExtension::kEncodeStartDeltaOffset;
 constexpr uint8_t VideoTimingExtension::kEncodeFinishDeltaOffset;
@@ -618,7 +607,6 @@
 
 constexpr RTPExtensionType ColorSpaceExtension::kId;
 constexpr uint8_t ColorSpaceExtension::kValueSizeBytes;
-constexpr const char ColorSpaceExtension::kUri[];
 
 bool ColorSpaceExtension::Parse(rtc::ArrayView<const uint8_t> data,
                                 ColorSpace* color_space) {
@@ -822,16 +810,10 @@
   return true;
 }
 
-// Constant declarations for string RTP header extension types.
-
+// Constant declarations for RTP header extension types.
 constexpr RTPExtensionType RtpStreamId::kId;
-constexpr const char RtpStreamId::kUri[];
-
 constexpr RTPExtensionType RepairedRtpStreamId::kId;
-constexpr const char RepairedRtpStreamId::kUri[];
-
 constexpr RTPExtensionType RtpMid::kId;
-constexpr const char RtpMid::kUri[];
 
 // An RTP Header Extension for Inband Comfort Noise
 //
@@ -888,7 +870,6 @@
 
 constexpr RTPExtensionType VideoFrameTrackingIdExtension::kId;
 constexpr uint8_t VideoFrameTrackingIdExtension::kValueSizeBytes;
-constexpr const char VideoFrameTrackingIdExtension::kUri[];
 
 bool VideoFrameTrackingIdExtension::Parse(rtc::ArrayView<const uint8_t> data,
                                           uint16_t* video_frame_tracking_id) {
diff --git a/modules/rtp_rtcp/source/rtp_header_extensions.h b/modules/rtp_rtcp/source/rtp_header_extensions.h
index ee97ec9..ffbdafd 100644
--- a/modules/rtp_rtcp/source/rtp_header_extensions.h
+++ b/modules/rtp_rtcp/source/rtp_header_extensions.h
@@ -16,7 +16,6 @@
 #include <string>
 #include <vector>
 
-#include "absl/base/attributes.h"
 #include "absl/strings/string_view.h"
 #include "api/array_view.h"
 #include "api/rtp_headers.h"
@@ -34,8 +33,6 @@
   using value_type = uint32_t;
   static constexpr RTPExtensionType kId = kRtpExtensionAbsoluteSendTime;
   static constexpr uint8_t kValueSizeBytes = 3;
-  static constexpr ABSL_DEPRECATED("Use Uri()") const char kUri[] =
-      "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time";
   static constexpr absl::string_view Uri() {
     return RtpExtension::kAbsSendTimeUri;
   }
@@ -56,8 +53,6 @@
   static constexpr uint8_t kValueSizeBytes = 16;
   static constexpr uint8_t kValueSizeBytesWithoutEstimatedCaptureClockOffset =
       8;
-  static constexpr ABSL_DEPRECATED("Use Uri()") const char kUri[] =
-      "http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time";
   static constexpr absl::string_view Uri() {
     return RtpExtension::kAbsoluteCaptureTimeUri;
   }
@@ -73,8 +68,6 @@
  public:
   static constexpr RTPExtensionType kId = kRtpExtensionAudioLevel;
   static constexpr uint8_t kValueSizeBytes = 1;
-  static constexpr ABSL_DEPRECATED("Use Uri()") const
-      char kUri[] = "urn:ietf:params:rtp-hdrext:ssrc-audio-level";
   static constexpr absl::string_view Uri() {
     return RtpExtension::kAudioLevelUri;
   }
@@ -94,8 +87,6 @@
  public:
   static constexpr RTPExtensionType kId = kRtpExtensionCsrcAudioLevel;
   static constexpr uint8_t kMaxValueSizeBytes = 15;
-  static constexpr ABSL_DEPRECATED("Use Uri()") const
-      char kUri[] = "urn:ietf:params:rtp-hdrext:csrc-audio-level";
   static constexpr absl::string_view Uri() {
     return RtpExtension::kCsrcAudioLevelsUri;
   }
@@ -112,8 +103,6 @@
   using value_type = int32_t;
   static constexpr RTPExtensionType kId = kRtpExtensionTransmissionTimeOffset;
   static constexpr uint8_t kValueSizeBytes = 3;
-  static constexpr ABSL_DEPRECATED("Use Uri()") const
-      char kUri[] = "urn:ietf:params:rtp-hdrext:toffset";
   static constexpr absl::string_view Uri() {
     return RtpExtension::kTimestampOffsetUri;
   }
@@ -128,9 +117,6 @@
   using value_type = uint16_t;
   static constexpr RTPExtensionType kId = kRtpExtensionTransportSequenceNumber;
   static constexpr uint8_t kValueSizeBytes = 2;
-  static constexpr ABSL_DEPRECATED("Use Uri()") const char kUri[] =
-      "http://www.ietf.org/id/"
-      "draft-holmer-rmcat-transport-wide-cc-extensions-01";
   static constexpr absl::string_view Uri() {
     return RtpExtension::kTransportSequenceNumberUri;
   }
@@ -150,8 +136,6 @@
       kRtpExtensionTransportSequenceNumber02;
   static constexpr uint8_t kValueSizeBytes = 4;
   static constexpr uint8_t kValueSizeBytesWithoutFeedbackRequest = 2;
-  static constexpr ABSL_DEPRECATED("Use Uri()") const char kUri[] =
-      "http://www.webrtc.org/experiments/rtp-hdrext/transport-wide-cc-02";
   static constexpr absl::string_view Uri() {
     return RtpExtension::kTransportSequenceNumberV2Uri;
   }
@@ -178,8 +162,6 @@
   using value_type = VideoRotation;
   static constexpr RTPExtensionType kId = kRtpExtensionVideoRotation;
   static constexpr uint8_t kValueSizeBytes = 1;
-  static constexpr ABSL_DEPRECATED("Use Uri()") const
-      char kUri[] = "urn:3gpp:video-orientation";
   static constexpr absl::string_view Uri() {
     return RtpExtension::kVideoRotationUri;
   }
@@ -197,8 +179,6 @@
   using value_type = VideoPlayoutDelay;
   static constexpr RTPExtensionType kId = kRtpExtensionPlayoutDelay;
   static constexpr uint8_t kValueSizeBytes = 3;
-  static constexpr ABSL_DEPRECATED("Use Uri()") const char kUri[] =
-      "http://www.webrtc.org/experiments/rtp-hdrext/playout-delay";
   static constexpr absl::string_view Uri() {
     return RtpExtension::kPlayoutDelayUri;
   }
@@ -222,8 +202,6 @@
   using value_type = VideoContentType;
   static constexpr RTPExtensionType kId = kRtpExtensionVideoContentType;
   static constexpr uint8_t kValueSizeBytes = 1;
-  static constexpr ABSL_DEPRECATED("Use Uri()") const char kUri[] =
-      "http://www.webrtc.org/experiments/rtp-hdrext/video-content-type";
   static constexpr absl::string_view Uri() {
     return RtpExtension::kVideoContentTypeUri;
   }
@@ -240,8 +218,6 @@
   using value_type = VideoSendTiming;
   static constexpr RTPExtensionType kId = kRtpExtensionVideoTiming;
   static constexpr uint8_t kValueSizeBytes = 13;
-  static constexpr ABSL_DEPRECATED("Use Uri()") const
-      char kUri[] = "http://www.webrtc.org/experiments/rtp-hdrext/video-timing";
   static constexpr absl::string_view Uri() {
     return RtpExtension::kVideoTimingUri;
   }
@@ -277,8 +253,6 @@
   static constexpr RTPExtensionType kId = kRtpExtensionColorSpace;
   static constexpr uint8_t kValueSizeBytes = 28;
   static constexpr uint8_t kValueSizeBytesWithoutHdrMetadata = 4;
-  static constexpr ABSL_DEPRECATED("Use Uri()") const
-      char kUri[] = "http://www.webrtc.org/experiments/rtp-hdrext/color-space";
   static constexpr absl::string_view Uri() {
     return RtpExtension::kColorSpaceUri;
   }
@@ -330,16 +304,12 @@
 class RtpStreamId : public BaseRtpStringExtension {
  public:
   static constexpr RTPExtensionType kId = kRtpExtensionRtpStreamId;
-  static constexpr ABSL_DEPRECATED("Use Uri()") const
-      char kUri[] = "urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id";
   static constexpr absl::string_view Uri() { return RtpExtension::kRidUri; }
 };
 
 class RepairedRtpStreamId : public BaseRtpStringExtension {
  public:
   static constexpr RTPExtensionType kId = kRtpExtensionRepairedRtpStreamId;
-  static constexpr ABSL_DEPRECATED("Use Uri()") const
-      char kUri[] = "urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id";
   static constexpr absl::string_view Uri() {
     return RtpExtension::kRepairedRidUri;
   }
@@ -348,8 +318,6 @@
 class RtpMid : public BaseRtpStringExtension {
  public:
   static constexpr RTPExtensionType kId = kRtpExtensionMid;
-  static constexpr ABSL_DEPRECATED("Use Uri()") const
-      char kUri[] = "urn:ietf:params:rtp-hdrext:sdes:mid";
   static constexpr absl::string_view Uri() { return RtpExtension::kMidUri; }
 };
 
@@ -377,8 +345,6 @@
   using value_type = uint16_t;
   static constexpr RTPExtensionType kId = kRtpExtensionVideoFrameTrackingId;
   static constexpr uint8_t kValueSizeBytes = 2;
-  static constexpr ABSL_DEPRECATED("Use Uri()") const char kUri[] =
-      "http://www.webrtc.org/experiments/rtp-hdrext/video-frame-tracking-id";
   static constexpr absl::string_view Uri() {
     return RtpExtension::kVideoFrameTrackingIdUri;
   }
diff --git a/modules/rtp_rtcp/source/rtp_video_layers_allocation_extension.cc b/modules/rtp_rtcp/source/rtp_video_layers_allocation_extension.cc
index 1463cf4..6816a62 100644
--- a/modules/rtp_rtcp/source/rtp_video_layers_allocation_extension.cc
+++ b/modules/rtp_rtcp/source/rtp_video_layers_allocation_extension.cc
@@ -21,7 +21,6 @@
 namespace webrtc {
 
 constexpr RTPExtensionType RtpVideoLayersAllocationExtension::kId;
-constexpr const char RtpVideoLayersAllocationExtension::kUri[];
 
 namespace {
 
diff --git a/modules/rtp_rtcp/source/rtp_video_layers_allocation_extension.h b/modules/rtp_rtcp/source/rtp_video_layers_allocation_extension.h
index a698634..3f1603b 100644
--- a/modules/rtp_rtcp/source/rtp_video_layers_allocation_extension.h
+++ b/modules/rtp_rtcp/source/rtp_video_layers_allocation_extension.h
@@ -11,7 +11,6 @@
 #ifndef MODULES_RTP_RTCP_SOURCE_RTP_VIDEO_LAYERS_ALLOCATION_EXTENSION_H_
 #define MODULES_RTP_RTCP_SOURCE_RTP_VIDEO_LAYERS_ALLOCATION_EXTENSION_H_
 
-#include "absl/base/attributes.h"
 #include "absl/strings/string_view.h"
 #include "api/rtp_parameters.h"
 #include "api/video/video_layers_allocation.h"
@@ -25,8 +24,6 @@
  public:
   using value_type = VideoLayersAllocation;
   static constexpr RTPExtensionType kId = kRtpExtensionVideoLayersAllocation;
-  static constexpr ABSL_DEPRECATED("Use Uri()") const char kUri[] =
-      "http://www.webrtc.org/experiments/rtp-hdrext/video-layers-allocation00";
   static constexpr absl::string_view Uri() {
     return RtpExtension::kVideoLayersAllocationUri;
   }
