diff --git a/chrome/browser/ash/camera_presence_notifier_unittest.cc b/chrome/browser/ash/camera_presence_notifier_unittest.cc
index 12181dbc..ce7ccdde 100644
--- a/chrome/browser/ash/camera_presence_notifier_unittest.cc
+++ b/chrome/browser/ash/camera_presence_notifier_unittest.cc
@@ -56,8 +56,8 @@
       mojo::PendingReceiver<cros::mojom::CameraAppDeviceBridge> receiver)
       override {}
 
-  void ConnectToDeviceFactory(
-      mojo::PendingReceiver<video_capture::mojom::DeviceFactory> receiver)
+  void BindVideoCaptureDeviceFactory(
+      mojo::PendingReceiver<crosapi::mojom::VideoCaptureDeviceFactory> receiver)
       override {}
 
   void ConnectToVideoSourceProvider(
diff --git a/chrome/browser/ash/crosapi/BUILD.gn b/chrome/browser/ash/crosapi/BUILD.gn
index c398f70..3e64ee1 100644
--- a/chrome/browser/ash/crosapi/BUILD.gn
+++ b/chrome/browser/ash/crosapi/BUILD.gn
@@ -218,12 +218,6 @@
     "translate_proxy_config_to_crosapi.cc",
     "url_handler_ash.cc",
     "url_handler_ash.h",
-    "video_capture_device_ash.cc",
-    "video_capture_device_ash.h",
-    "video_capture_device_factory_ash.cc",
-    "video_capture_device_factory_ash.h",
-    "video_frame_handler_ash.cc",
-    "video_frame_handler_ash.h",
     "virtual_keyboard_ash.cc",
     "virtual_keyboard_ash.h",
     "volume_manager_ash.cc",
@@ -342,8 +336,6 @@
     "//remoting/host/chromeos:remoting_service",
     "//services/data_decoder/public/cpp:cpp",
     "//services/device/wake_lock/power_save_blocker",
-    "//services/video_capture/public/cpp:cpp",
-    "//services/video_capture/public/mojom",
     "//ui/base",
     "//ui/message_center",
     "//ui/message_center/public/cpp",
@@ -366,6 +358,7 @@
     ":browser_util",
     "//media/gpu:buildflags",
     "//printing",
+    "//services/video_capture:video_capture_ash",
   ]
 }
 
diff --git a/chrome/browser/ash/crosapi/DEPS b/chrome/browser/ash/crosapi/DEPS
index 7762da1..b7a068e 100644
--- a/chrome/browser/ash/crosapi/DEPS
+++ b/chrome/browser/ash/crosapi/DEPS
@@ -1,4 +1,7 @@
 specific_include_rules = {
+  "crosapi_ash\.cc": [
+    "+services/video_capture/ash",
+  ],
   "crosapi_ash\.h": [
     "+media/gpu/buildflags.h",
   ],
@@ -16,6 +19,9 @@
     # For remote support functionality.
     "+remoting/host/chromeos",
   ],
+  "screen_manager_ash\.cc": [
+    "+services/video_capture/ash",
+  ],
   "select_file_ash\.cc": [
     # For Chrome OS-specific file manager parameters.
     "+chrome/browser/ui/views/select_file_dialog_extension.h",
diff --git a/chrome/browser/ash/crosapi/crosapi_ash.cc b/chrome/browser/ash/crosapi/crosapi_ash.cc
index a3ffcfc..2022169 100644
--- a/chrome/browser/ash/crosapi/crosapi_ash.cc
+++ b/chrome/browser/ash/crosapi/crosapi_ash.cc
@@ -91,7 +91,6 @@
 #include "chrome/browser/ash/crosapi/task_manager_ash.h"
 #include "chrome/browser/ash/crosapi/time_zone_service_ash.h"
 #include "chrome/browser/ash/crosapi/url_handler_ash.h"
-#include "chrome/browser/ash/crosapi/video_capture_device_factory_ash.h"
 #include "chrome/browser/ash/crosapi/virtual_keyboard_ash.h"
 #include "chrome/browser/ash/crosapi/volume_manager_ash.h"
 #include "chrome/browser/ash/crosapi/vpn_extension_observer_ash.h"
@@ -136,8 +135,11 @@
 #include "components/user_manager/user_manager.h"
 #include "content/public/browser/device_service.h"
 #include "content/public/browser/media_session_service.h"
+#include "content/public/browser/video_capture_service.h"
 #include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "printing/buildflags/buildflags.h"
+#include "services/video_capture/ash/video_capture_device_factory_ash.h"
+#include "services/video_capture/public/mojom/video_capture_service.mojom.h"
 
 #if BUILDFLAG(USE_VAAPI) || BUILDFLAG(USE_V4L2_CODEC)
 #include "content/public/browser/stable_video_decoder_factory.h"
@@ -261,8 +263,6 @@
       time_zone_service_ash_(std::make_unique<TimeZoneServiceAsh>()),
       tts_ash_(std::make_unique<TtsAsh>(g_browser_process->profile_manager())),
       url_handler_ash_(std::make_unique<UrlHandlerAsh>()),
-      video_capture_device_factory_ash_(
-          std::make_unique<VideoCaptureDeviceFactoryAsh>()),
       video_conference_manager_ash_(
           std::make_unique<ash::VideoConferenceManagerAsh>()),
       virtual_keyboard_ash_(std::make_unique<VirtualKeyboardAsh>()),
@@ -816,7 +816,8 @@
 
 void CrosapiAsh::BindVideoCaptureDeviceFactory(
     mojo::PendingReceiver<mojom::VideoCaptureDeviceFactory> receiver) {
-  video_capture_device_factory_ash_->BindReceiver(std::move(receiver));
+  content::GetVideoCaptureService().BindVideoCaptureDeviceFactory(
+      std::move(receiver));
 }
 
 void CrosapiAsh::BindVideoConferenceManager(
diff --git a/chrome/browser/ash/crosapi/crosapi_ash.h b/chrome/browser/ash/crosapi/crosapi_ash.h
index 148b0b7..aca9f6f 100644
--- a/chrome/browser/ash/crosapi/crosapi_ash.h
+++ b/chrome/browser/ash/crosapi/crosapi_ash.h
@@ -111,7 +111,6 @@
 class WebAppServiceAsh;
 class WebPageInfoFactoryAsh;
 class UrlHandlerAsh;
-class VideoCaptureDeviceFactoryAsh;
 class VirtualKeyboardAsh;
 class VolumeManagerAsh;
 class VpnExtensionObserverAsh;
@@ -570,8 +569,6 @@
   std::unique_ptr<TimeZoneServiceAsh> time_zone_service_ash_;
   std::unique_ptr<TtsAsh> tts_ash_;
   std::unique_ptr<UrlHandlerAsh> url_handler_ash_;
-  std::unique_ptr<VideoCaptureDeviceFactoryAsh>
-      video_capture_device_factory_ash_;
   std::unique_ptr<ash::VideoConferenceManagerAsh> video_conference_manager_ash_;
   std::unique_ptr<VirtualKeyboardAsh> virtual_keyboard_ash_;
   std::unique_ptr<VolumeManagerAsh> volume_manager_ash_;
diff --git a/chrome/browser/ash/crosapi/screen_manager_ash.cc b/chrome/browser/ash/crosapi/screen_manager_ash.cc
index efdc6d4..19b8048 100644
--- a/chrome/browser/ash/crosapi/screen_manager_ash.cc
+++ b/chrome/browser/ash/crosapi/screen_manager_ash.cc
@@ -16,12 +16,12 @@
 #include "base/functional/bind.h"
 #include "base/strings/utf_string_conversions.h"
 #include "chrome/browser/ash/crosapi/browser_util.h"
-#include "chrome/browser/ash/crosapi/video_capture_device_ash.h"
 #include "components/exo/shell_surface_util.h"
 #include "content/public/browser/desktop_capture.h"
 #include "content/public/browser/desktop_media_id.h"
 #include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "mojo/public/cpp/bindings/self_owned_receiver.h"
+#include "services/video_capture/ash/video_capture_device_ash.h"
 #include "ui/aura/window_observer.h"
 #include "ui/snapshot/snapshot.h"
 
diff --git a/chromeos/crosapi/mojom/BUILD.gn b/chromeos/crosapi/mojom/BUILD.gn
index 534dea32..a3c749c 100644
--- a/chromeos/crosapi/mojom/BUILD.gn
+++ b/chromeos/crosapi/mojom/BUILD.gn
@@ -96,7 +96,6 @@
     "tts.mojom",
     "ui_constants.mojom",
     "url_handler.mojom",
-    "video_capture.mojom",
     "video_conference.mojom",
     "virtual_keyboard.mojom",
     "volume_manager.mojom",
@@ -111,6 +110,7 @@
   cpp_only = true
 
   public_deps = [
+    ":video_capture",
     "//chromeos/components/remote_apps/mojom",
     "//chromeos/components/sensors/mojom",
     "//chromeos/services/machine_learning/public/mojom",
@@ -118,8 +118,6 @@
     "//components/digital_goods/mojom:mojom",
     "//components/metrics/structured/mojom",
     "//components/tab_groups/public/mojom:mojo_bindings",
-    "//media/capture/mojom:image_capture",
-    "//media/capture/mojom:video_capture_types",
     "//media/mojo/mojom:speech_recognition",
     "//mojo/public/mojom/base",
     "//printing/backend/mojom",
@@ -305,6 +303,20 @@
   ]
 }
 
+# This needs a separate target, because this is also used
+# by the Video Capture Service in Ash and blink bindings
+# are needed.
+mojom("video_capture") {
+  sources = [ "video_capture.mojom" ]
+  public_deps = [
+    "//media/capture/mojom:image_capture",
+    "//media/capture/mojom:video_capture_types",
+    "//mojo/public/mojom/base",
+    "//ui/gfx/geometry/mojom",
+    "//ui/gfx/mojom",
+  ]
+}
+
 source_set("unit_tests") {
   testonly = true
   sources = [
diff --git a/services/video_capture/BUILD.gn b/services/video_capture/BUILD.gn
index 48c1156..89b2644d0 100644
--- a/services/video_capture/BUILD.gn
+++ b/services/video_capture/BUILD.gn
@@ -37,6 +37,7 @@
   configs += [ "//build/config/compiler:wexit_time_destructors" ]
 
   public_deps = [
+    ":video_capture_ash",
     "//base",
     "//media",
     "//media/capture:capture",
@@ -79,6 +80,25 @@
   }
 }
 
+source_set("video_capture_ash") {
+  if (is_chromeos_ash) {
+    sources = [
+      "ash/video_capture_device_ash.cc",
+      "ash/video_capture_device_ash.h",
+      "ash/video_capture_device_factory_ash.cc",
+      "ash/video_capture_device_factory_ash.h",
+      "ash/video_frame_handler_ash.cc",
+      "ash/video_frame_handler_ash.h",
+    ]
+
+    public_deps = [
+      "//base",
+      "//services/video_capture/public/cpp:cpp",
+      "//services/video_capture/public/mojom",
+    ]
+  }
+}
+
 source_set("tests") {
   testonly = true
 
diff --git a/chrome/browser/ash/crosapi/video_capture_device_ash.cc b/services/video_capture/ash/video_capture_device_ash.cc
similarity index 94%
rename from chrome/browser/ash/crosapi/video_capture_device_ash.cc
rename to services/video_capture/ash/video_capture_device_ash.cc
index 98c5b5c..12de446 100644
--- a/chrome/browser/ash/crosapi/video_capture_device_ash.cc
+++ b/services/video_capture/ash/video_capture_device_ash.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/ash/crosapi/video_capture_device_ash.h"
+#include "services/video_capture/ash/video_capture_device_ash.h"
 
 #include <memory>
 #include <utility>
 
-#include "chrome/browser/ash/crosapi/video_frame_handler_ash.h"
 #include "media/capture/mojom/image_capture.mojom.h"
+#include "services/video_capture/ash/video_frame_handler_ash.h"
 
 namespace crosapi {
 
diff --git a/chrome/browser/ash/crosapi/video_capture_device_ash.h b/services/video_capture/ash/video_capture_device_ash.h
similarity index 91%
rename from chrome/browser/ash/crosapi/video_capture_device_ash.h
rename to services/video_capture/ash/video_capture_device_ash.h
index 369097e..c05908d3 100644
--- a/chrome/browser/ash/crosapi/video_capture_device_ash.h
+++ b/services/video_capture/ash/video_capture_device_ash.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_ASH_CROSAPI_VIDEO_CAPTURE_DEVICE_ASH_H_
-#define CHROME_BROWSER_ASH_CROSAPI_VIDEO_CAPTURE_DEVICE_ASH_H_
+#ifndef SERVICES_VIDEO_CAPTURE_ASH_VIDEO_CAPTURE_DEVICE_ASH_H_
+#define SERVICES_VIDEO_CAPTURE_ASH_VIDEO_CAPTURE_DEVICE_ASH_H_
 
 #include "base/functional/callback_forward.h"
 #include "chromeos/crosapi/mojom/video_capture.mojom.h"
@@ -57,4 +57,4 @@
 
 }  // namespace crosapi
 
-#endif  // CHROME_BROWSER_ASH_CROSAPI_VIDEO_CAPTURE_DEVICE_ASH_H_
+#endif  // SERVICES_VIDEO_CAPTURE_ASH_VIDEO_CAPTURE_DEVICE_ASH_H_
diff --git a/chrome/browser/ash/crosapi/video_capture_device_factory_ash.cc b/services/video_capture/ash/video_capture_device_factory_ash.cc
similarity index 78%
rename from chrome/browser/ash/crosapi/video_capture_device_factory_ash.cc
rename to services/video_capture/ash/video_capture_device_factory_ash.cc
index 82d6bfe..14d84dc 100644
--- a/chrome/browser/ash/crosapi/video_capture_device_factory_ash.cc
+++ b/services/video_capture/ash/video_capture_device_factory_ash.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/ash/crosapi/video_capture_device_factory_ash.h"
+#include "services/video_capture/ash/video_capture_device_factory_ash.h"
 
 #include <memory>
 #include <string>
@@ -10,24 +10,17 @@
 
 #include "base/functional/bind.h"
 #include "base/notreached.h"
-#include "chrome/browser/ash/crosapi/video_capture_device_ash.h"
-#include "content/public/browser/video_capture_service.h"
-#include "services/video_capture/public/mojom/video_capture_service.mojom.h"
+#include "services/video_capture/ash/video_capture_device_ash.h"
+#include "services/video_capture/device_factory.h"
 
 namespace crosapi {
 
-VideoCaptureDeviceFactoryAsh::VideoCaptureDeviceFactoryAsh() {
-  content::GetVideoCaptureService().ConnectToDeviceFactory(
-      device_factory_.BindNewPipeAndPassReceiver());
-}
+VideoCaptureDeviceFactoryAsh::VideoCaptureDeviceFactoryAsh(
+    raw_ptr<video_capture::DeviceFactory> device_factory)
+    : device_factory_(device_factory) {}
 
 VideoCaptureDeviceFactoryAsh::~VideoCaptureDeviceFactoryAsh() = default;
 
-void VideoCaptureDeviceFactoryAsh::BindReceiver(
-    mojo::PendingReceiver<crosapi::mojom::VideoCaptureDeviceFactory> receiver) {
-  receivers_.Add(this, std::move(receiver));
-}
-
 void VideoCaptureDeviceFactoryAsh::GetDeviceInfos(
     GetDeviceInfosCallback callback) {
   device_factory_->GetDeviceInfos(std::move(callback));
diff --git a/chrome/browser/ash/crosapi/video_capture_device_factory_ash.h b/services/video_capture/ash/video_capture_device_factory_ash.h
similarity index 77%
rename from chrome/browser/ash/crosapi/video_capture_device_factory_ash.h
rename to services/video_capture/ash/video_capture_device_factory_ash.h
index 127d2bb..87fe4cd 100644
--- a/chrome/browser/ash/crosapi/video_capture_device_factory_ash.h
+++ b/services/video_capture/ash/video_capture_device_factory_ash.h
@@ -2,41 +2,43 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_ASH_CROSAPI_VIDEO_CAPTURE_DEVICE_FACTORY_ASH_H_
-#define CHROME_BROWSER_ASH_CROSAPI_VIDEO_CAPTURE_DEVICE_FACTORY_ASH_H_
+#ifndef SERVICES_VIDEO_CAPTURE_ASH_VIDEO_CAPTURE_DEVICE_FACTORY_ASH_H_
+#define SERVICES_VIDEO_CAPTURE_ASH_VIDEO_CAPTURE_DEVICE_FACTORY_ASH_H_
 
 #include <string>
 
 #include "base/containers/flat_map.h"
+#include "base/memory/raw_ptr.h"
 #include "chromeos/crosapi/mojom/video_capture.mojom.h"
 #include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "mojo/public/cpp/bindings/receiver_set.h"
 #include "mojo/public/cpp/bindings/remote.h"
-#include "services/video_capture/public/mojom/device_factory.mojom.h"
+
+namespace video_capture {
+class DeviceFactory;
+}  // namespace video_capture
 
 namespace crosapi {
 
 class VideoCaptureDeviceAsh;
 
 // This class is the ash-chrome implementation of the VideoCaptureDeviceFactory
-// interface. This class must only be used from the main thread.
+// interface.
 // It is used as a proxy between Lacros-Chrome and actual
 // video_capture::DeviceFactory in Ash-Chrome and also responsible for
 // translating structures between crosapi and other components.
 // (e.g. gfx, media, video_capture)
+// It must be destroyed before the passed video_capture::DeviceFactory.
 class VideoCaptureDeviceFactoryAsh
     : public crosapi::mojom::VideoCaptureDeviceFactory {
  public:
-  VideoCaptureDeviceFactoryAsh();
+  explicit VideoCaptureDeviceFactoryAsh(
+      raw_ptr<video_capture::DeviceFactory> device_factory);
   VideoCaptureDeviceFactoryAsh(const VideoCaptureDeviceFactoryAsh&) = delete;
   VideoCaptureDeviceFactoryAsh& operator=(const VideoCaptureDeviceFactoryAsh&) =
       delete;
   ~VideoCaptureDeviceFactoryAsh() override;
 
-  void BindReceiver(
-      mojo::PendingReceiver<crosapi::mojom::VideoCaptureDeviceFactory>
-          receiver);
-
   // crosapi::mojom::VideoCaptureDeviceFactory:
   void GetDeviceInfos(GetDeviceInfosCallback callback) override;
   void CreateDevice(
@@ -49,7 +51,7 @@
   // video_capture::mojom::Device in Lacros-Chrome is dropped.
   void OnClientConnectionErrorOrClose(const std::string& device_id);
 
-  mojo::Remote<video_capture::mojom::DeviceFactory> device_factory_;
+  raw_ptr<video_capture::DeviceFactory> device_factory_;
 
   // The key is the device id used in blink::MediaStreamDevice.
   base::flat_map<std::string, std::unique_ptr<VideoCaptureDeviceAsh>> devices_;
@@ -59,4 +61,4 @@
 
 }  // namespace crosapi
 
-#endif  // CHROME_BROWSER_ASH_CROSAPI_VIDEO_CAPTURE_DEVICE_FACTORY_ASH_H_
+#endif  // SERVICES_VIDEO_CAPTURE_ASH_VIDEO_CAPTURE_DEVICE_FACTORY_ASH_H_
diff --git a/chrome/browser/ash/crosapi/video_frame_handler_ash.cc b/services/video_capture/ash/video_frame_handler_ash.cc
similarity index 97%
rename from chrome/browser/ash/crosapi/video_frame_handler_ash.cc
rename to services/video_capture/ash/video_frame_handler_ash.cc
index 1102423..ebbe30d 100644
--- a/chrome/browser/ash/crosapi/video_frame_handler_ash.cc
+++ b/services/video_capture/ash/video_frame_handler_ash.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/ash/crosapi/video_frame_handler_ash.h"
+#include "services/video_capture/ash/video_frame_handler_ash.h"
 
 #include <memory>
 #include <string>
@@ -62,8 +62,9 @@
     }
     crosapi_buffer_info->rotation = crosapi_rotation;
   }
-  if (buffer_info->metadata.reference_time.has_value())
+  if (buffer_info->metadata.reference_time.has_value()) {
     crosapi_buffer_info->reference_time = *buffer_info->metadata.reference_time;
+  }
 
   crosapi_buffer->frame_info = std::move(crosapi_buffer_info);
   return crosapi_buffer;
diff --git a/chrome/browser/ash/crosapi/video_frame_handler_ash.h b/services/video_capture/ash/video_frame_handler_ash.h
similarity index 94%
rename from chrome/browser/ash/crosapi/video_frame_handler_ash.h
rename to services/video_capture/ash/video_frame_handler_ash.h
index da19696..2f6edf6 100644
--- a/chrome/browser/ash/crosapi/video_frame_handler_ash.h
+++ b/services/video_capture/ash/video_frame_handler_ash.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_ASH_CROSAPI_VIDEO_FRAME_HANDLER_ASH_H_
-#define CHROME_BROWSER_ASH_CROSAPI_VIDEO_FRAME_HANDLER_ASH_H_
+#ifndef SERVICES_VIDEO_CAPTURE_ASH_VIDEO_FRAME_HANDLER_ASH_H_
+#define SERVICES_VIDEO_CAPTURE_ASH_VIDEO_FRAME_HANDLER_ASH_H_
 
 #include <vector>
 
@@ -87,4 +87,4 @@
 
 }  // namespace crosapi
 
-#endif  // CHROME_BROWSER_ASH_CROSAPI_VIDEO_FRAME_HANDLER_ASH_H_
+#endif  // SERVICES_VIDEO_CAPTURE_ASH_VIDEO_FRAME_HANDLER_ASH_H_
diff --git a/services/video_capture/public/cpp/mock_video_capture_service.cc b/services/video_capture/public/cpp/mock_video_capture_service.cc
index 734ec74..3373e95 100644
--- a/services/video_capture/public/cpp/mock_video_capture_service.cc
+++ b/services/video_capture/public/cpp/mock_video_capture_service.cc
@@ -25,9 +25,9 @@
   DoInjectGpuDependencies(std::move(accelerator_factory));
 }
 
-void MockVideoCaptureService::ConnectToDeviceFactory(
-    mojo::PendingReceiver<video_capture::mojom::DeviceFactory> receiver) {
-  DoConnectToDeviceFactory(std::move(receiver));
+void MockVideoCaptureService::BindVideoCaptureDeviceFactory(
+    mojo::PendingReceiver<crosapi::mojom::VideoCaptureDeviceFactory> receiver) {
+  DoBindVideoCaptureDeviceFactory(std::move(receiver));
 }
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 
diff --git a/services/video_capture/public/cpp/mock_video_capture_service.h b/services/video_capture/public/cpp/mock_video_capture_service.h
index fbbd0b9..6bdab44f 100644
--- a/services/video_capture/public/cpp/mock_video_capture_service.h
+++ b/services/video_capture/public/cpp/mock_video_capture_service.h
@@ -28,8 +28,8 @@
       mojo::PendingRemote<video_capture::mojom::AcceleratorFactory>
           accelerator_factory) override;
 
-  void ConnectToDeviceFactory(
-      mojo::PendingReceiver<video_capture::mojom::DeviceFactory> receiver)
+  void BindVideoCaptureDeviceFactory(
+      mojo::PendingReceiver<crosapi::mojom::VideoCaptureDeviceFactory> receiver)
       override;
 
   MOCK_METHOD1(
@@ -37,9 +37,9 @@
       void(mojo::PendingRemote<video_capture::mojom::AcceleratorFactory>
                accelerator_factory));
 
-  MOCK_METHOD1(DoConnectToDeviceFactory,
-               void(mojo::PendingReceiver<video_capture::mojom::DeviceFactory>
-                        receiver));
+  MOCK_METHOD1(DoBindVideoCaptureDeviceFactory,
+               void(mojo::PendingReceiver<
+                    crosapi::mojom::VideoCaptureDeviceFactory> receiver));
 
   void ConnectToCameraAppDeviceBridge(
       mojo::PendingReceiver<cros::mojom::CameraAppDeviceBridge>) override {}
diff --git a/services/video_capture/public/mojom/BUILD.gn b/services/video_capture/public/mojom/BUILD.gn
index fbcc823..563e9ec 100644
--- a/services/video_capture/public/mojom/BUILD.gn
+++ b/services/video_capture/public/mojom/BUILD.gn
@@ -31,6 +31,7 @@
 
   if (is_chromeos_ash) {
     deps += [
+      "//chromeos/crosapi/mojom:video_capture",
       "//components/chromeos_camera/common",
       "//media/capture/video/chromeos/mojom:cros_camera",
     ]
diff --git a/services/video_capture/public/mojom/video_capture_service.mojom b/services/video_capture/public/mojom/video_capture_service.mojom
index e6fb6bb..79e482b 100644
--- a/services/video_capture/public/mojom/video_capture_service.mojom
+++ b/services/video_capture/public/mojom/video_capture_service.mojom
@@ -13,6 +13,8 @@
 import "components/chromeos_camera/common/mjpeg_decode_accelerator.mojom";
 [EnableIf=is_chromeos_ash]
 import "media/capture/video/chromeos/mojom/camera_app.mojom";
+[EnableIf=is_chromeos_ash]
+import "chromeos/crosapi/mojom/video_capture.mojom";
 
 [EnableIf=is_win]
 import "gpu/ipc/common/luid.mojom";
@@ -52,9 +54,11 @@
   ConnectToCameraAppDeviceBridge(
       pending_receiver<cros.mojom.CameraAppDeviceBridge> receiver);
 
-  // Legacy API. Supports one client per device.
+  // Interface to expose the internal DeviceFactory to be passed from ash
+  // to lacros.
   [EnableIf=is_chromeos_ash]
-  ConnectToDeviceFactory(pending_receiver<DeviceFactory> receiver);
+  BindVideoCaptureDeviceFactory(
+      pending_receiver<crosapi.mojom.VideoCaptureDeviceFactory> receiver);
 
   // Current API. Supports multiple clients per source.
   ConnectToVideoSourceProvider(pending_receiver<VideoSourceProvider> receiver);
diff --git a/services/video_capture/video_capture_service_impl.cc b/services/video_capture/video_capture_service_impl.cc
index bcea0e5..779a21b 100644
--- a/services/video_capture/video_capture_service_impl.cc
+++ b/services/video_capture/video_capture_service_impl.cc
@@ -112,7 +112,8 @@
 
 VideoCaptureServiceImpl::~VideoCaptureServiceImpl() {
 #if BUILDFLAG(IS_CHROMEOS_ASH)
-  factory_receivers_.Clear();
+  factory_receivers_ash_.Clear();
+  device_factory_ash_adapter_.reset();
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
   device_factory_.reset();
 
@@ -139,10 +140,11 @@
       std::move(receiver));
 }
 
-void VideoCaptureServiceImpl::ConnectToDeviceFactory(
-    mojo::PendingReceiver<mojom::DeviceFactory> receiver) {
+void VideoCaptureServiceImpl::BindVideoCaptureDeviceFactory(
+    mojo::PendingReceiver<crosapi::mojom::VideoCaptureDeviceFactory> receiver) {
   LazyInitializeDeviceFactory();
-  factory_receivers_.Add(device_factory_.get(), std::move(receiver));
+  factory_receivers_ash_.Add(device_factory_ash_adapter_.get(),
+                             std::move(receiver));
 }
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 
@@ -193,6 +195,9 @@
               &GpuDependenciesContext::CreateJpegDecodeAccelerator,
               gpu_dependencies_context_->GetWeakPtr()),
           gpu_dependencies_context_->GetTaskRunner()));
+  device_factory_ash_adapter_ =
+      std::make_unique<crosapi::VideoCaptureDeviceFactoryAsh>(
+          device_factory_.get());
 #elif BUILDFLAG(IS_CHROMEOS_LACROS)
   // LacrosService might be null in unit tests.
   auto* lacros_service = chromeos::LacrosService::Get();
diff --git a/services/video_capture/video_capture_service_impl.h b/services/video_capture/video_capture_service_impl.h
index 2af926db..bfeaa24 100644
--- a/services/video_capture/video_capture_service_impl.h
+++ b/services/video_capture/video_capture_service_impl.h
@@ -20,7 +20,9 @@
 #include "services/video_capture/public/mojom/video_capture_service.mojom.h"
 
 #if BUILDFLAG(IS_CHROMEOS_ASH)
+#include "chromeos/crosapi/mojom/video_capture.mojom.h"
 #include "media/capture/video/chromeos/mojom/camera_app.mojom.h"
+#include "services/video_capture/ash/video_capture_device_factory_ash.h"
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 
 namespace video_capture {
@@ -46,8 +48,9 @@
   void ConnectToCameraAppDeviceBridge(
       mojo::PendingReceiver<cros::mojom::CameraAppDeviceBridge> receiver)
       override;
-  void ConnectToDeviceFactory(
-      mojo::PendingReceiver<mojom::DeviceFactory> receiver) override;
+  void BindVideoCaptureDeviceFactory(
+      mojo::PendingReceiver<crosapi::mojom::VideoCaptureDeviceFactory> receiver)
+      override;
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
   void ConnectToVideoSourceProvider(
       mojo::PendingReceiver<mojom::VideoSourceProvider> receiver) override;
@@ -65,15 +68,20 @@
   void LazyInitializeVideoSourceProvider();
   void OnLastSourceProviderClientDisconnected();
 
-#if BUILDFLAG(IS_CHROMEOS_ASH)
-  mojo::ReceiverSet<mojom::DeviceFactory> factory_receivers_;
-#endif
-
   mojo::Receiver<mojom::VideoCaptureService> receiver_;
   std::unique_ptr<VirtualDeviceEnabledDeviceFactory> device_factory_;
   std::unique_ptr<VideoSourceProviderImpl> video_source_provider_;
   std::unique_ptr<GpuDependenciesContext> gpu_dependencies_context_;
 
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+  // Must be destroyed before |device_factory_|.
+  std::unique_ptr<crosapi::VideoCaptureDeviceFactoryAsh>
+      device_factory_ash_adapter_;
+  // Must be destroyed before |device_factory_ash_adapter_|.
+  mojo::ReceiverSet<crosapi::mojom::VideoCaptureDeviceFactory>
+      factory_receivers_ash_;
+#endif
+
   scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner_;
 };
 
