diff --git a/src/main/java/org/olat/modules/video/VideoModule.java b/src/main/java/org/olat/modules/video/VideoModule.java
index 2b6ed1bcbe32c2d6c5270a7ec1e9edd46c87bbb3..5de25406d858c347c7fe8bed609aaed191322104 100644
--- a/src/main/java/org/olat/modules/video/VideoModule.java
+++ b/src/main/java/org/olat/modules/video/VideoModule.java
@@ -138,6 +138,7 @@ public class VideoModule extends AbstractSpringModule {
 		log.info("video.coursenode.enabled=" + isCoursenodeEnabled());
 		log.info("video.transcoding.enabled=" + isTranscodingEnabled());
 		log.info("video.transcoding.resolutions=" + Arrays.toString(getTranscodingResolutions()));
+		log.info("video.transcoding.resolution.preferred=" + getPreferredDefaultResolution());
 		log.info("video.transcoding.taskset.cpuconfig=" + getTranscodingTasksetConfig());
 		log.info("video.transcoding.local=" + isTranscodingLocal());
 
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 d9e82d0cf57ea23ff1975a2511d4c09651d68649..f054c21a1f007eaec8667c20ec6db83f6c3103ed 100644
--- a/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java
+++ b/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java
@@ -258,7 +258,7 @@ public class VideoManagerImpl implements VideoManager {
 			ch.close();
 
 			return true;
-		} catch (Exception e) {
+		} catch (Exception | AssertionError e) {
 			log.error("Could not get frame::" + frameNumber + " for video::" + videoFile.getAbsolutePath(), e);
 			return false;
 		} 
@@ -309,7 +309,16 @@ public class VideoManagerImpl implements VideoManager {
 	public VideoMetadata readVideoMetadataFile(OLATResource videoResource){
 		VFSContainer baseContainer= FileResourceManager.getInstance().getFileResourceRootImpl(videoResource);
 		VFSLeaf metaDataFile = VFSManager.resolveOrCreateLeafFromPath(baseContainer, FILENAME_VIDEO_METADATA_XML);
-		return (VideoMetadata) XStreamHelper.readObject(XStreamHelper.createXStreamInstance(), metaDataFile);
+		try {
+			return (VideoMetadata) XStreamHelper.readObject(XStreamHelper.createXStreamInstance(), metaDataFile);
+		} catch (Exception e) {
+			log.error("Error while parsing XStream file for videoResource::" + videoResource, e);
+			// return an empty, so at least it displays something and not an error
+			VideoMetadata meta =  new VideoMetadataImpl();
+			meta.setWidth(800);
+			meta.setHeight(600);
+			return meta;
+		}
 	}
 	
 	@Override
@@ -524,8 +533,8 @@ public class VideoManagerImpl implements VideoManager {
 			metaData.setWidth(videoSize.getWidth());
 			metaData.setHeight(videoSize.getHeight());			
 		} else {
-			metaData.setWidth(600);
-			metaData.setHeight(800);						
+			metaData.setHeight(600);
+			metaData.setWidth(800);						
 		}
 		// calculate video duration
 		long duration = movieService.getDuration(targetFile, FILETYPE_MP4);
diff --git a/src/main/java/org/olat/modules/video/ui/VideoAdminTranscodingController.java b/src/main/java/org/olat/modules/video/ui/VideoAdminTranscodingController.java
index 780b7421d7c11f2b3902b73fdd6394e3794e96ee..91d64738283433991a4070b2aa29c7d7574bfb91 100644
--- a/src/main/java/org/olat/modules/video/ui/VideoAdminTranscodingController.java
+++ b/src/main/java/org/olat/modules/video/ui/VideoAdminTranscodingController.java
@@ -105,18 +105,22 @@ public class VideoAdminTranscodingController extends FormBasicController {
 	}
 	
 	private boolean mayTranscode(int resolution){
+		if (!videoModule.isTranscodingEnabled()) {
+			return false;
+		}
 		int[] transcodingRes = videoModule.getTranscodingResolutions();
 		for (int i = 0; i < transcodingRes.length; i++) {
-			if (resolution == transcodingRes[i] && videoModule.isTranscodingEnabled()){
-				return Boolean.TRUE;
+			if (resolution == transcodingRes[i]){
+				return true;
 			}
 		}
-		return Boolean.FALSE;
+		return false;
 	}
 	
 	private void loadTable(){
 		//Hardcoded same as VideoAdminSetController
 		int[] resolution = {2160, 1080, 720, 480, 360, 240};
+		//FIXME:FK fetch using one single SQL query
 		for (int i = 0; i < resolution.length; i++) {
 			int sizeOfTranscodings = availableTranscodings.get(resolution[i]).size();
 			int counter = 0;
@@ -162,6 +166,7 @@ public class VideoAdminTranscodingController extends FormBasicController {
 	}
 	
 	private void generateStatusOfTranscodings() {
+		//FIXME:FK fetch using one single SQL query
 		availableTranscodings = new HashMap<>();
 		availableTranscodings.put(240, new HashSet<OLATResource>());
 		availableTranscodings.put(360, new HashSet<OLATResource>());
diff --git a/src/main/java/org/olat/modules/video/ui/VideoPosterSelectionForm.java b/src/main/java/org/olat/modules/video/ui/VideoPosterSelectionForm.java
index f0f4ef365f5425b439205d51f83ce9170fa6afaf..2d1af01e0b94d85b46235e5b62bfa64b6eaaa57d 100644
--- a/src/main/java/org/olat/modules/video/ui/VideoPosterSelectionForm.java
+++ b/src/main/java/org/olat/modules/video/ui/VideoPosterSelectionForm.java
@@ -72,7 +72,7 @@ public class VideoPosterSelectionForm extends BasicController {
 		tmp.mkdirs();
 		tmpContainer = new LocalFolderImpl(tmp);
 		
-		long duration =1000;
+		long duration = 1000;
 
 		File videoFile = videoManager.getVideoFile(videoResource);
 		RandomAccessFile accessFile;
@@ -82,7 +82,7 @@ public class VideoPosterSelectionForm extends BasicController {
 			FileChannelWrapper in = new FileChannelWrapper(ch);
 			MP4Demuxer demuxer1 = new MP4Demuxer(in);
 			duration = demuxer1.getVideoTrack().getFrameCount();
-		} catch (Exception e) {
+		} catch (Exception | AssertionError e) {
 			logError("Error while accessing master video::" + videoFile.getAbsolutePath(), e);
 		}
 
@@ -103,7 +103,7 @@ public class VideoPosterSelectionForm extends BasicController {
 				button.setUserObject(fileName);
 				
 				generatedPosters.put(mediaUrl + "/" + fileName,	String.valueOf(x));
-			} catch (Exception e) {
+			} catch (Exception | AssertionError e) {
 				logError("Error while creating poster images for video::" + videoFile.getAbsolutePath(), e);
 			}
 		}