diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp
index 0c7232d..06fef21 100644
--- a/src/v4l2/v4l2_camera_proxy.cpp
+++ b/src/v4l2/v4l2_camera_proxy.cpp
@@ -628,6 +628,9 @@ int V4L2CameraProxy::vidioc_streamon(V4L2CameraFile *file, int *arg)
 	if (!hasOwnership(file))
 		return -EBUSY;
 
+	if (vcam_->isRunning())
+		return 0;
+
 	currentBuf_ = 0;
 
 	return vcam_->streamOn();
