diff --git a/src/main/java/org/olat/modules/video/VideoManager.java b/src/main/java/org/olat/modules/video/VideoManager.java
index 3bffd0556968ef404fca488bda92e78449dcb7a8..c144865fde4173d57a783a1fd49a48e4d26248a7 100644
--- a/src/main/java/org/olat/modules/video/VideoManager.java
+++ b/src/main/java/org/olat/modules/video/VideoManager.java
@@ -289,4 +289,12 @@ public interface VideoManager {
 	 * @param olatResource the video resource
 	 */
 	public abstract void saveChapters(List<VideoChapterTableRow> chapters, OLATResource olatResource);	
+	
+	/**
+	 * Gets the video duration.
+	 * 
+	 * @param OLATResource videoResource 
+	 * @return the video duration
+	 */
+	public abstract long getVideoDuration(OLATResource videoResource);
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java b/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java
index 49c4ced576aba0127e2dc994cafbc542d4dcd04d..c73b6b6e3b0f56ad281f5565f734162657d997a9 100644
--- a/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java
+++ b/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java
@@ -722,5 +722,13 @@ public class VideoManagerImpl implements VideoManager {
 			}
 		}
 	}
+	
+	@Override
+	public long getVideoDuration (OLATResource videoResource){
+		VFSContainer masterContainer = getMasterContainer(videoResource);
+		VFSLeaf video = (VFSLeaf) masterContainer.resolve(FILENAME_VIDEO_MP4);	
+		long duration = movieService.getDuration(video, FILETYPE_MP4);
+		return duration;
+	}
 
 }
diff --git a/src/main/java/org/olat/modules/video/ui/VideoChapterEditController.java b/src/main/java/org/olat/modules/video/ui/VideoChapterEditController.java
index a5afae527f28b3bd945f98b285329c92c3d73021..5cf4ebaa2a649f68b7aeea0485798b9a9dffd1b3 100644
--- a/src/main/java/org/olat/modules/video/ui/VideoChapterEditController.java
+++ b/src/main/java/org/olat/modules/video/ui/VideoChapterEditController.java
@@ -253,9 +253,15 @@ public class VideoChapterEditController extends FormBasicController {
 				previousChapter.setEnd(currentChapter.getBegin());				
 			} else {
 				long durationLong = duration != null ? (long) Float.parseFloat(duration) * 1000 : 0;
-				Date durationDate = new Date(durationLong);
-				//if duration of the resource is not yet available, set end of last chapter equal to begin 				
-				previousChapter.setEnd(durationLong != 0 ? durationDate : previousChapter.getBegin());
+				// duration may hold no value, backup ask videoManager
+				if (durationLong == 0){
+					Date endOfMovie = new Date(videoManager.getVideoDuration(entry.getOlatResource()));
+					previousChapter.setEnd(endOfMovie);
+				}else{
+					Date durationDate = new Date(durationLong);
+					previousChapter.setEnd(durationDate);					
+				}
+				
 			}
 		}
 	}
diff --git a/src/main/java/org/olat/modules/video/ui/VideoResourceEditController.java b/src/main/java/org/olat/modules/video/ui/VideoResourceEditController.java
index 595cced8494c7f29ae0ce7d447522d7f7e6cf47c..1d4edda4201b464b858418e67005494ac0d463e6 100644
--- a/src/main/java/org/olat/modules/video/ui/VideoResourceEditController.java
+++ b/src/main/java/org/olat/modules/video/ui/VideoResourceEditController.java
@@ -24,6 +24,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
+import org.olat.core.commons.services.video.MovieService;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.form.flexible.FormItemContainer;
 import org.olat.core.gui.components.form.flexible.elements.FileElement;
@@ -33,6 +34,7 @@ import org.olat.core.gui.components.form.flexible.impl.FormEvent;
 import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
+import org.olat.core.util.Formatter;
 import org.olat.core.util.vfs.VFSContainer;
 import org.olat.core.util.vfs.VFSLeaf;
 import org.olat.core.util.vfs.VFSManager;
@@ -60,11 +62,14 @@ public class VideoResourceEditController extends FormBasicController {
 	
 	private VFSContainer vfsContainer;
 	private OLATResource videoResource;
+	private RepositoryEntry entry;
 	
 	@Autowired
 	private VideoManager videoManager;
 	@Autowired
 	private VideoModule videoModule;
+	@Autowired
+	private MovieService movieService;
 	
 	private StaticTextElement typeEl;
 	private FileElement uploadFileEl;
@@ -72,6 +77,7 @@ public class VideoResourceEditController extends FormBasicController {
 	
 	public VideoResourceEditController(UserRequest ureq, WindowControl wControl, RepositoryEntry entry){
 		super(ureq, wControl);
+		this.entry = entry;
 		this.videoResource = entry.getOlatResource();
 		vfsContainer = videoManager.getMasterContainer(videoResource);
 
@@ -108,7 +114,12 @@ public class VideoResourceEditController extends FormBasicController {
 		if (uploadFileEl.getUploadSize() > 0 && uploadFile.exists()){
 			video.delete();
 			VFSLeaf uploadVideo = vfsContainer.createChildLeaf(VIDEO_RESOURCE);
-			VFSManager.copyContent(uploadFile, uploadVideo);				
+			VFSManager.copyContent(uploadFile, uploadVideo);
+			// update video duration
+			long duration = movieService.getDuration(uploadVideo, "mp4");
+			if (duration != -1) {
+				entry.setExpenditureOfWork(Formatter.formatTimecode(duration));
+			}
 		} 
 	}