diff --git a/audio/audio_send_stream.cc b/audio/audio_send_stream.cc
index 8157e6a..d3ec157 100644
--- a/audio/audio_send_stream.cc
+++ b/audio/audio_send_stream.cc
@@ -569,9 +569,7 @@
 
   // If a bitrate has been specified for the codec, use it over the
   // codec's default.
-  if (stream->allocation_settings_.UpdateAudioTargetBitrate(
-          TransportSeqNumId(new_config)) &&
-      spec.target_bitrate_bps) {
+  if (spec.target_bitrate_bps) {
     encoder->OnReceivedTargetAudioBitrate(*spec.target_bitrate_bps);
   }
 
@@ -646,9 +644,7 @@
       new_config.send_codec_spec->target_bitrate_bps;
   // If a bitrate has been specified for the codec, use it over the
   // codec's default.
-  if (stream->allocation_settings_.UpdateAudioTargetBitrate(
-          TransportSeqNumId(new_config)) &&
-      new_target_bitrate_bps &&
+  if (new_target_bitrate_bps &&
       new_target_bitrate_bps !=
           old_config.send_codec_spec->target_bitrate_bps) {
     stream->channel_send_->CallEncoder([&](AudioEncoder* encoder) {
diff --git a/rtc_base/experiments/audio_allocation_settings.cc b/rtc_base/experiments/audio_allocation_settings.cc
index a505357..a601cce 100644
--- a/rtc_base/experiments/audio_allocation_settings.cc
+++ b/rtc_base/experiments/audio_allocation_settings.cc
@@ -22,7 +22,6 @@
     : audio_send_side_bwe_("Enabled"),
       allocate_audio_without_feedback_("Enabled"),
       force_no_audio_feedback_("Enabled"),
-      audio_feedback_to_improve_video_bwe_("Enabled"),
       send_side_bwe_with_overhead_("Enabled"),
       default_min_bitrate_("min", DataRate::bps(kOpusMinBitrateBps)),
       default_max_bitrate_("max", DataRate::bps(kOpusBitrateFbBps)),
@@ -33,9 +32,6 @@
                   field_trial::FindFullName("WebRTC-Audio-ABWENoTWCC"));
   ParseFieldTrial({&force_no_audio_feedback_},
                   field_trial::FindFullName("WebRTC-Audio-ForceNoTWCC"));
-  ParseFieldTrial(
-      {&audio_feedback_to_improve_video_bwe_},
-      field_trial::FindFullName("WebRTC-Audio-SendSideBwe-For-Video"));
 
   ParseFieldTrial({&send_side_bwe_with_overhead_},
                   field_trial::FindFullName("WebRTC-SendSideBwe-WithOverhead"));
@@ -73,19 +69,6 @@
          transport_seq_num_extension_header_id != 0;
 }
 
-bool AudioAllocationSettings::UpdateAudioTargetBitrate(
-    int transport_seq_num_extension_header_id) const {
-  // If other side does not support audio TWCC and WebRTC-Audio-ABWENoTWCC is
-  // not enabled, do not update target audio bitrate if we are in
-  // WebRTC-Audio-SendSideBwe-For-Video experiment
-  if (allocate_audio_without_feedback_ ||
-      transport_seq_num_extension_header_id != 0)
-    return true;
-  if (audio_feedback_to_improve_video_bwe_)
-    return false;
-  return true;
-}
-
 bool AudioAllocationSettings::IncludeAudioInAllocationOnStart(
     int min_bitrate_bps,
     int max_bitrate_bps,
diff --git a/rtc_base/experiments/audio_allocation_settings.h b/rtc_base/experiments/audio_allocation_settings.h
index f05b4a3..32e11df 100644
--- a/rtc_base/experiments/audio_allocation_settings.h
+++ b/rtc_base/experiments/audio_allocation_settings.h
@@ -34,12 +34,6 @@
   // configured.
   bool ShouldSendTransportSequenceNumber(
       int transport_seq_num_extension_header_id) const;
-  // Returns true if target bitrate for audio streams should be updated.
-  // |transport_seq_num_extension_header_id| the extension header id for
-  // transport sequence numbers. Set to 0 if not the extension is not
-  // configured.
-  bool UpdateAudioTargetBitrate(
-      int transport_seq_num_extension_header_id) const;
   // Returns true if audio should be added to rate allocation when the audio
   // stream is started.
   // |min_bitrate_bps| the configured min bitrate, set to -1 if unset.
@@ -83,7 +77,6 @@
   FieldTrialFlag audio_send_side_bwe_;
   FieldTrialFlag allocate_audio_without_feedback_;
   FieldTrialFlag force_no_audio_feedback_;
-  FieldTrialFlag audio_feedback_to_improve_video_bwe_;
   FieldTrialFlag send_side_bwe_with_overhead_;
   int min_overhead_bps_ = 0;
   // Default bitrates to use as range if there's no user configured
diff --git a/sdk/objc/api/peerconnection/RTCFieldTrials.h b/sdk/objc/api/peerconnection/RTCFieldTrials.h
index cf648d3..61443e8 100644
--- a/sdk/objc/api/peerconnection/RTCFieldTrials.h
+++ b/sdk/objc/api/peerconnection/RTCFieldTrials.h
@@ -14,7 +14,6 @@
 
 /** The only valid value for the following if set is kRTCFieldTrialEnabledValue. */
 RTC_EXTERN NSString * const kRTCFieldTrialAudioSendSideBweKey;
-RTC_EXTERN NSString * const kRTCFieldTrialAudioSendSideBweForVideoKey;
 RTC_EXTERN NSString * const kRTCFieldTrialAudioForceNoTWCCKey;
 RTC_EXTERN NSString * const kRTCFieldTrialAudioForceABWENoTWCCKey;
 RTC_EXTERN NSString * const kRTCFieldTrialSendSideBweWithOverheadKey;
diff --git a/sdk/objc/api/peerconnection/RTCFieldTrials.mm b/sdk/objc/api/peerconnection/RTCFieldTrials.mm
index 127ce6f..4a30db2 100644
--- a/sdk/objc/api/peerconnection/RTCFieldTrials.mm
+++ b/sdk/objc/api/peerconnection/RTCFieldTrials.mm
@@ -17,7 +17,6 @@
 #include "system_wrappers/include/field_trial.h"
 
 NSString * const kRTCFieldTrialAudioSendSideBweKey = @"WebRTC-Audio-SendSideBwe";
-NSString * const kRTCFieldTrialAudioSendSideBweForVideoKey = @"WebRTC-Audio-SendSideBwe-For-Video";
 NSString * const kRTCFieldTrialAudioForceNoTWCCKey = @"WebRTC-Audio-ForceNoTWCC";
 NSString * const kRTCFieldTrialAudioForceABWENoTWCCKey = @"WebRTC-Audio-ABWENoTWCC";
 NSString * const kRTCFieldTrialSendSideBweWithOverheadKey = @"WebRTC-SendSideBwe-WithOverhead";
