diff --git a/src/main/java/org/olat/core/gui/control/controller/BasicController.java b/src/main/java/org/olat/core/gui/control/controller/BasicController.java
index 55cb8d22691b642dd05dbdf7b8e7176f1c206dff..eff380ec3b74a1407fd8bfc624772e98b1a6a577 100644
--- a/src/main/java/org/olat/core/gui/control/controller/BasicController.java
+++ b/src/main/java/org/olat/core/gui/control/controller/BasicController.java
@@ -187,6 +187,7 @@ public abstract class BasicController extends DefaultController {
 	 * convenience method: registers a mapper which will be automatically
 	 * deregistered upon dispose of the controller
 	 * 
+	 * @param ureq The user request object
 	 * @param m
 	 *            the mapper that delivers the resources
 	 * @return The mapper base URL
@@ -200,6 +201,8 @@ public abstract class BasicController extends DefaultController {
 	 * convenience method: registers a cacheable mapper which will be
 	 * automatically deregistered upon dispose of the controller
 	 * 
+	 * @param ureq The user request object
+	 * 
 	 * @param cacheableMapperID
 	 *            the mapper ID that is used in the url to identify this mapper.
 	 *            Should be something that is derived from the context or
diff --git a/src/main/java/org/olat/course/nodes/VideoCourseNode.java b/src/main/java/org/olat/course/nodes/VideoCourseNode.java
index a049b34a9e8b0c3aaed04632cf70ebc3399e5a36..bc859caaaa537fbf8f357ae95243cfdbe8c7a6b3 100644
--- a/src/main/java/org/olat/course/nodes/VideoCourseNode.java
+++ b/src/main/java/org/olat/course/nodes/VideoCourseNode.java
@@ -154,9 +154,7 @@ public class VideoCourseNode extends AbstractAccessableCourseNode {
 	@Override
 	public Controller createPeekViewRunController(UserRequest ureq, WindowControl wControl, UserCourseEnvironment userCourseEnv,
 			NodeEvaluation ne) {
-		VideoManager videoManager = CoreSpringFactory.getImpl(VideoManager.class);
-		VFSContainer masterFolder = videoManager.getMasterContainer(getReferencedRepositoryEntry().getOlatResource());
-		Controller controller = new VideoPeekviewController(ureq, wControl, masterFolder);
+		Controller controller = new VideoPeekviewController(ureq, wControl, getReferencedRepositoryEntry().getOlatResource());
 		return controller;
 	}
 }
diff --git a/src/main/java/org/olat/course/nodes/video/VideoPeekviewController.java b/src/main/java/org/olat/course/nodes/video/VideoPeekviewController.java
index a735aa33ec96495d40516fbc1ba9493de1d61452..452b0483bb3e830fa498e3c42b3e44a0e5e2f96a 100644
--- a/src/main/java/org/olat/course/nodes/video/VideoPeekviewController.java
+++ b/src/main/java/org/olat/course/nodes/video/VideoPeekviewController.java
@@ -27,7 +27,10 @@ import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.controller.BasicController;
 import org.olat.core.util.vfs.VFSContainer;
+import org.olat.modules.video.VideoManager;
 import org.olat.modules.video.manager.VideoMediaMapper;
+import org.olat.resource.OLATResource;
+import org.springframework.beans.factory.annotation.Autowired;
 
 /**
  * peekviewcontroller of videomodule
@@ -37,10 +40,15 @@ import org.olat.modules.video.manager.VideoMediaMapper;
  */
 public class VideoPeekviewController  extends BasicController implements Controller{
 
-	public VideoPeekviewController(UserRequest ureq, WindowControl wControl,  VFSContainer posterFolder) {
+	@Autowired
+	private VideoManager videoManager;
+
+	public VideoPeekviewController(UserRequest ureq, WindowControl wControl,  OLATResource videoResource) {
 		super(ureq, wControl);
 		VelocityContainer peekviewVC = createVelocityContainer("peekview");
-		String mediaUrl = registerMapper(ureq, new VideoMediaMapper(posterFolder));
+		VFSContainer posterFolder = videoManager.getMasterContainer(videoResource);
+		String masterMapperId = "master-" + videoResource.getResourceableId();
+		String mediaUrl = registerCacheableMapper(ureq, masterMapperId, new VideoMediaMapper(posterFolder));
 		peekviewVC.contextPut("mediaUrl", mediaUrl);
 		peekviewVC.contextPut("nodeLink", posterFolder);
 		putInitialPanel(peekviewVC);
diff --git a/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java b/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java
index e7375986749d08d0fbd223d7a597395e7cd2684b..9473c6df14f9eaccb1dd1805a8c33a952515fb5e 100644
--- a/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java
+++ b/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java
@@ -117,11 +117,13 @@ public class VideoDisplayController extends BasicController {
 			mainVC.contextPut("autoplay", autoplay);
 	
 			// Mapper for Video
-			String masterUrl = registerMapper(ureq, new VideoMediaMapper(videoManager.getMasterContainer(entry.getOlatResource())));
+			String masterMapperId = "master-" + entry.getOlatResource().getResourceableId();
+			String masterUrl = registerCacheableMapper(ureq, masterMapperId, new VideoMediaMapper(videoManager.getMasterContainer(entry.getOlatResource())));
 			mainVC.contextPut("masterUrl", masterUrl);
-			// mapper for versions specific because not in same base as the resource itself
+			// Mapper for versions specific because not in same base as the resource itself
+			String transcodingMapperId = "transcoding-" + entry.getOlatResource().getResourceableId();
 			VFSContainer transcodedContainer = videoManager.getTranscodingContainer(entry.getOlatResource());
-			String transcodedUrl = registerMapper(ureq, new VideoMediaMapper(transcodedContainer));
+			String transcodedUrl = registerCacheableMapper(ureq, transcodingMapperId, new VideoMediaMapper(transcodedContainer));
 			mainVC.contextPut("transcodedUrl", transcodedUrl);
 			
 			if ((showComments || showRating) && !ureq.getUserSession().getRoles().isGuestOnly()) {