diff --git a/src/libcamera/pipeline/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo.cpp
index 5d2f1c98fa36..9247dff33606 100644
--- a/src/libcamera/pipeline/uvcvideo.cpp
+++ b/src/libcamera/pipeline/uvcvideo.cpp
@@ -91,9 +91,16 @@ PipelineHandlerUVC::streamConfiguration(Camera *camera,
 	UVCCameraData *data = cameraData(camera);
 	CameraConfiguration config;
 	StreamConfiguration cfg{};
+	V4L2DeviceFormat format;
 
-	cfg.pixelFormat = V4L2_PIX_FMT_YUYV;
-	cfg.size = { 640, 480 };
+	format.fourcc = V4L2_PIX_FMT_YUYV;
+	format.size = { 1920, 1080 };
+
+	/* Ask the video device to confirm a suitable default configuration. */
+	data->video_->tryFormat(&format);
+
+	cfg.size = format.size;
+	cfg.pixelFormat = format.fourcc;
 	cfg.bufferCount = 4;
 
 	config[&data->stream_] = cfg;
