diff --git a/video/screenshare_loopback.cc b/video/screenshare_loopback.cc
index a51274b..09a7d73 100644
--- a/video/screenshare_loopback.cc
+++ b/video/screenshare_loopback.cc
@@ -11,6 +11,7 @@
 #include <stdio.h>
 
 #include "gflags/gflags.h"
+#include "webrtc/base/stringencode.h"
 #include "webrtc/test/field_trial.h"
 #include "webrtc/test/gtest.h"
 #include "webrtc/test/run_test.h"
@@ -214,6 +215,16 @@
   return static_cast<int>(FLAGS_scroll_duration);
 }
 
+DEFINE_string(slides,
+              "",
+              "Comma-separated list of *.yuv files to display as slides.");
+std::vector<std::string> Slides() {
+  std::vector<std::string> slides;
+  std::string slides_list = FLAGS_slides;
+  rtc::tokenize(slides_list, ',', &slides);
+  return slides;
+}
+
 }  // namespace flags
 
 void Loopback() {
@@ -249,7 +260,7 @@
                   flags::EncodedFramePath(),
                   ""};
   params.screenshare = {true, flags::SlideChangeInterval(),
-      flags::ScrollDuration()};
+                        flags::ScrollDuration(), flags::Slides()};
   params.analyzer = {"screenshare", 0.0, 0.0, flags::DurationSecs(),
       flags::OutputFilename(), flags::GraphTitle()};
   params.pipe = pipe_config;
diff --git a/video/video_quality_test.cc b/video/video_quality_test.cc
index cea8af1..565506c 100644
--- a/video/video_quality_test.cc
+++ b/video/video_quality_test.cc
@@ -1505,12 +1505,13 @@
     // Setup frame generator.
     const size_t kWidth = 1850;
     const size_t kHeight = 1110;
-    std::vector<std::string> slides;
-    slides.push_back(test::ResourcePath("web_screenshot_1850_1110", "yuv"));
-    slides.push_back(test::ResourcePath("presentation_1850_1110", "yuv"));
-    slides.push_back(test::ResourcePath("photo_1850_1110", "yuv"));
-    slides.push_back(test::ResourcePath("difficult_photo_1850_1110", "yuv"));
-
+    std::vector<std::string> slides = params_.screenshare.slides;
+    if (slides.size() == 0) {
+      slides.push_back(test::ResourcePath("web_screenshot_1850_1110", "yuv"));
+      slides.push_back(test::ResourcePath("presentation_1850_1110", "yuv"));
+      slides.push_back(test::ResourcePath("photo_1850_1110", "yuv"));
+      slides.push_back(test::ResourcePath("difficult_photo_1850_1110", "yuv"));
+    }
     if (params_.screenshare.scroll_duration == 0) {
       // Cycle image every slide_change_interval seconds.
       frame_generator_ = test::FrameGenerator::CreateFromYuvFile(
diff --git a/video/video_quality_test.h b/video/video_quality_test.h
index 9e851f0..fac5e7c 100644
--- a/video/video_quality_test.h
+++ b/video/video_quality_test.h
@@ -62,6 +62,7 @@
       bool enabled;
       int32_t slide_change_interval;
       int32_t scroll_duration;
+      std::vector<std::string> slides;
     } screenshare;
     struct Analyzer {
       std::string test_label;
