diff --git a/test/fuzzers/utils/BUILD.gn b/test/fuzzers/utils/BUILD.gn
index e821e2f..5f9ea4c 100644
--- a/test/fuzzers/utils/BUILD.gn
+++ b/test/fuzzers/utils/BUILD.gn
@@ -25,6 +25,7 @@
     "../../../media:rtc_internal_video_codecs",
     "../../../rtc_base:checks",
     "../../../rtc_base:rtc_base_approved",
+    "../../../rtc_base:rtc_base_tests_utils",
     "../../../rtc_base:rtc_json",
     "../../../system_wrappers",
     "../../../test:call_config_utils",
diff --git a/test/fuzzers/utils/rtp_replayer.cc b/test/fuzzers/utils/rtp_replayer.cc
index 4a9712a..af03be2 100644
--- a/test/fuzzers/utils/rtp_replayer.cc
+++ b/test/fuzzers/utils/rtp_replayer.cc
@@ -18,7 +18,6 @@
 #include "api/task_queue/default_task_queue_factory.h"
 #include "rtc_base/strings/json.h"
 #include "system_wrappers/include/clock.h"
-#include "system_wrappers/include/sleep.h"
 #include "test/call_config_utils.h"
 #include "test/encoder_settings.h"
 #include "test/fake_decoder.h"
@@ -43,6 +42,13 @@
     std::vector<VideoReceiveStream::Config> receive_stream_configs,
     const uint8_t* rtp_dump_data,
     size_t rtp_dump_size) {
+  rtc::ScopedBaseFakeClock fake_clock;
+
+  // Work around: webrtc calls webrtc::Random(clock.TimeInMicroseconds())
+  // everywhere and Random expects non-zero seed. Let's set the clock non-zero
+  // to make them happy.
+  fake_clock.SetTime(webrtc::Timestamp::ms(1));
+
   // Attempt to create an RtpReader from the input file.
   auto rtp_reader = CreateRtpReader(rtp_dump_data, rtp_dump_size);
   if (rtp_reader == nullptr) {
@@ -64,7 +70,7 @@
     receive_stream->Start();
   }
 
-  ReplayPackets(call.get(), rtp_reader.get());
+  ReplayPackets(&fake_clock, call.get(), rtp_reader.get());
 
   for (const auto& receive_stream : stream_state->receive_streams) {
     call->DestroyVideoReceiveStream(receive_stream);
@@ -127,7 +133,9 @@
   return rtp_reader;
 }
 
-void RtpReplayer::ReplayPackets(Call* call, test::RtpFileReader* rtp_reader) {
+void RtpReplayer::ReplayPackets(rtc::FakeClock* clock,
+                                Call* call,
+                                test::RtpFileReader* rtp_reader) {
   int64_t replay_start_ms = -1;
   int num_packets = 0;
   std::map<uint32_t, int> unknown_packets;
@@ -145,8 +153,10 @@
 
     int64_t deliver_in_ms = replay_start_ms + packet.time_ms - now_ms;
     if (deliver_in_ms > 0) {
-      // Set an upper limit on sleep to prevent timing out.
-      SleepMs(std::min(deliver_in_ms, static_cast<int64_t>(100)));
+      // StatsCounter::ReportMetricToAggregatedCounter is O(elapsed time).
+      // Set an upper limit to prevent waste time.
+      clock->AdvanceTime(webrtc::TimeDelta::ms(
+          std::min(deliver_in_ms, static_cast<int64_t>(100))));
     }
 
     ++num_packets;
diff --git a/test/fuzzers/utils/rtp_replayer.h b/test/fuzzers/utils/rtp_replayer.h
index 3217fc3..c79a17e 100644
--- a/test/fuzzers/utils/rtp_replayer.h
+++ b/test/fuzzers/utils/rtp_replayer.h
@@ -23,6 +23,7 @@
 #include "api/video_codecs/video_decoder.h"
 #include "call/call.h"
 #include "media/engine/internal_decoder_factory.h"
+#include "rtc_base/fake_clock.h"
 #include "rtc_base/time_utils.h"
 #include "test/null_transport.h"
 #include "test/rtp_file_reader.h"
@@ -78,7 +79,9 @@
       size_t rtp_dump_size);
 
   // Replays each packet to from the RtpDump.
-  static void ReplayPackets(Call* call, test::RtpFileReader* rtp_reader);
+  static void ReplayPackets(rtc::FakeClock* clock,
+                            Call* call,
+                            test::RtpFileReader* rtp_reader);
 };  // class RtpReplayer
 
 }  // namespace test
