diff --git a/src/main/java/org/olat/modules/video/manager/VideoTranscodingJob.java b/src/main/java/org/olat/modules/video/manager/VideoTranscodingJob.java
index 59156408225231943a96c0421a52953aaa06e3b3..bb642daa53c1503c3f331a654951188266b15675 100644
--- a/src/main/java/org/olat/modules/video/manager/VideoTranscodingJob.java
+++ b/src/main/java/org/olat/modules/video/manager/VideoTranscodingJob.java
@@ -54,10 +54,6 @@ import org.quartz.JobExecutionException;
 public class VideoTranscodingJob extends JobWithDB {
 	private ArrayList<String> resolutionsWithProfile = new ArrayList<>(Arrays.asList("1080", "720", "480"));
 
-	/**
-	 * 
-	 * @see org.olat.core.commons.services.scheduler.JobWithDB#executeWithDB(org.quartz.JobExecutionContext)
-	 */
 	@Override
 	public void executeWithDB(JobExecutionContext context) throws JobExecutionException {
 		// uses StatefulJob interface to prevent concurrent job execution
@@ -80,11 +76,24 @@ public class VideoTranscodingJob extends JobWithDB {
 		// Find first one to work with
 		boolean allOk = true;
 		for(VideoTranscoding videoTranscoding = getNextVideo(); videoTranscoding != null;  videoTranscoding = getNextVideo()) {
+			if(cancelTranscoding()) {
+				break;
+			}
 			allOk &= forkTranscodingProcess(videoTranscoding);
 		}
 		return allOk;
 	}
 	
+	private boolean cancelTranscoding() {
+		try {
+			VideoModule videoModule = CoreSpringFactory.getImpl(VideoModule.class);
+			return (!videoModule.isTranscodingLocal() || !videoModule.isTranscodingEnabled());
+		} catch (Exception e) {
+			log.error("", e);
+			return true;
+		}
+	}
+	
 	private VideoTranscoding getNextVideo() {
 		VideoManager videoManager = CoreSpringFactory.getImpl(VideoManager.class);
 		List<VideoTranscoding> videoTranscodings = videoManager.getVideoTranscodingsPendingAndInProgress();
@@ -170,7 +179,7 @@ public class VideoTranscodingJob extends JobWithDB {
 			ProcessBuilder builder = new ProcessBuilder(cmd);
 			process = builder.start();
 			return updateVideoTranscodingFromProcessOutput(process, videoTranscoding, transcodedFile);
-		} catch (IOException e) {
+		} catch (Exception e) {
 			log.error ("Could not spawn convert sub process", e);
 			return false;
 		} finally {