diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
index 2eba5e2..4d3bafd 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
@@ -19,7 +19,7 @@
 package org.apache.openmeetings.core.converter;
 
 import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
-import static org.apache.openmeetings.util.OmFileHelper.JPG_EXTENTION;
+import static org.apache.openmeetings.util.OmFileHelper.JPG_EXTENSION;
 import static org.apache.openmeetings.util.OmFileHelper.WB_VIDEO_FILE_PREFIX;
 import static org.apache.openmeetings.util.OmFileHelper.getStreamsHibernateDir;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
@@ -104,8 +104,8 @@
 
 			returnLog.add(returnMapConvertFLV);
 
-			String hashFileFullNameJPEG = WB_VIDEO_FILE_PREFIX + fileExplorerItem.getId() + JPG_EXTENTION;
-			File outPutJpeg = new File(getStreamsHibernateDir(), name + JPG_EXTENTION);
+			String hashFileFullNameJPEG = WB_VIDEO_FILE_PREFIX + fileExplorerItem.getId() + JPG_EXTENSION;
+			File outPutJpeg = new File(getStreamsHibernateDir(), name + JPG_EXTENSION);
 
 			fileExplorerItem.setPreviewImage(hashFileFullNameJPEG);
 
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateImage.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateImage.java
index 26b3246..3f90fe6 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateImage.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateImage.java
@@ -18,7 +18,7 @@
  */
 package org.apache.openmeetings.core.converter;
 
-import static org.apache.openmeetings.util.OmFileHelper.JPG_EXTENTION;
+import static org.apache.openmeetings.util.OmFileHelper.JPG_EXTENSION;
 import static org.apache.openmeetings.util.OmFileHelper.getUploadProfilesUserDir;
 import static org.apache.openmeetings.util.OmFileHelper.profileFileName;
 import static org.apache.openmeetings.util.OmFileHelper.profileImagePrefix;
@@ -76,7 +76,7 @@
 		File[] files = getUploadProfilesUserDir(userId).listFiles(new FileFilter() {
 			@Override
 			public boolean accept(File pathname) {
-				return pathname.getName().endsWith(JPG_EXTENTION);
+				return pathname.getName().endsWith(JPG_EXTENSION);
 			}
 		});
 		if (files != null) {
@@ -85,7 +85,7 @@
 			}
 		}
 		
-		File destinationFile = OmFileHelper.getNewFile(getUploadProfilesUserDir(userId), profileFileName, JPG_EXTENTION);
+		File destinationFile = OmFileHelper.getNewFile(getUploadProfilesUserDir(userId), profileFileName, JPG_EXTENSION);
 		if (!skipConvertion) {
 			returnMap.addItem("processJPG", convertSingleJpg(file.getCanonicalPath(), destinationFile));
 		} else {
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
index 1b0e4c4..90b0602 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
@@ -20,6 +20,7 @@
 
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
+import java.awt.Point;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
@@ -1360,15 +1361,18 @@
 		}
 	}
 	
-	public void sendToWhiteboard(String uid, Long wbId, FileItem fi, String url) {
-		int width = 0, height = 0;
+	private static Point getSize(FileItem fi) {
+		Point result = new Point(0, 0);
 		if (fi.getFlvWidth() != null && fi.getFlvHeight() != null) {
-			width = fi.getFlvWidth();
-			height = fi.getFlvHeight();
+			result.x = fi.getFlvWidth();
+			result.y = fi.getFlvHeight();
 		}
+		return result;
+	}
+	
+	private static List<?> getWbObject(FileItem fi, String url) {
 		String fuid = UUID.randomUUID().toString();
-		Client client = sessionManager.getClientByPublicSIDAnyServer(uid).getRcl();
-		
+		Point size = getSize(fi);
 		String type = "n/a";
 		switch (fi.getType()) {
 			case Image:
@@ -1377,45 +1381,78 @@
 			case Presentation:
 				type = "swf";
 				break;
+			default:
+		}
+		return Arrays.asList(
+				type // 0
+				, url // urlname
+				, "--dummy--" // baseurl
+				, fi.getHash() // fileName //3
+				, "--dummy--" // moduleName //4
+				, "--dummy--" // parentPath //5
+				, "--dummy--" // room //6
+				, "--dummy--" // domain //7
+				, 1 // slideNumber //8
+				, 0 // innerx //9
+				, 0 // innery //10
+				, size.x // innerwidth //11
+				, size.y // innerheight //12
+				, 20 // zoomlevel //13
+				, size.x // initwidth //14
+				, size.y // initheight //15
+				, 100 // currentzoom //16 FIXME TODO
+				, fuid // uniquObjectSyncName //17
+				, fi.getName() // standardFileName //18
+				, true // fullFit //19 FIXME TODO
+				, 1 // zIndex //-8 FIXME TODO
+				, null //-7
+				, 0 // this.counter //-6 FIXME TODO
+				, 0 // posx //-5
+				, 0 // posy //-4
+				, size.x // width //-3
+				, size.y // height //-2
+				, fuid // this.currentlayer.name //-1
+				);
+	}
+	
+	private static List<?> getFlvWbObject(FileItem fi) {
+		String fuid = UUID.randomUUID().toString();
+		Point size = getSize(fi);
+		return Arrays.asList(
+				"flv" // 0: 'flv'
+				, fi.getId() // 1: 7
+				, fi.getName() // 2: 'BigBuckBunny_512kb.mp4'
+				, false // 3: false //playRemote
+				, size.x // 4: 416
+				, size.y // 5: 240
+				, fi.getOwnerId() // 6: 1 
+				, null // 7: null //TODO 
+				, 0 // 8: 0 //TODO
+				, 0 // 9: 0 //TODO
+				, 0 // 10: 0 //TODO
+				, 0 // 11: 749 //TODO
+				, 0 // 12: 739 //TODO
+				, fuid // 13: 'flv_1469602000351' 
+				);
+	}
+	
+	public void sendToWhiteboard(String uid, Long wbId, FileItem fi, String url) {
+		Client client = sessionManager.getClientByPublicSIDAnyServer(uid).getRcl();
+		
+		List<?> wbObject = new ArrayList<>();
+		switch (fi.getType()) {
+			case Image:
+				wbObject = getWbObject(fi, url);
+				break;
+			case Presentation:
+				wbObject = getWbObject(fi, url);
+				break;
 			case Video:
-				type = "flv";
+				wbObject = getFlvWbObject(fi);
 				break;
 			default:
 		}
-		sendToWhiteboard(client, Arrays.asList(
-				"whiteboard"
-				, new Date()
-				, "draw"
-				, Arrays.asList(
-					type // 0
-					, url // urlname
-					, "--dummy--" // baseurl
-					, fi.getHash() // fileName //3
-					, "--dummy--" // moduleName //4
-					, "--dummy--" // parentPath //5
-					, "--dummy--" // room //6
-					, "--dummy--" // domain //7
-					, 1 // slideNumber //8
-					, 0 // innerx //9
-					, 0 // innery //10
-					, width // innerwidth //11
-					, height // innerheight //12
-					, 20 // zoomlevel //13
-					, width // initwidth //14
-					, height // initheight //15
-					, 100 // currentzoom //16 FIXME TODO
-					, fuid // uniquObjectSyncName //17
-					, fi.getName() // standardFileName //18
-					, true // fullFit //19 FIXME TODO
-					, 1 // zIndex //-8 FIXME TODO
-					, null //-7
-					, 0 // this.counter //-6 FIXME TODO
-					, 0 // posx //-5
-					, 0 // posy //-4
-					, width // width //-3
-					, height // height //-2
-					, fuid // this.currentlayer.name //-1
-					)), wbId);
+		sendToWhiteboard(client, Arrays.asList("whiteboard", new Date(), "draw", wbObject), wbId);
 	}
 	
 	private int sendToWhiteboard(Client client, List<?> wbObj, Long wbId) {
diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
index 1ec4668..4cb7fb7 100644
--- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
+++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
@@ -74,7 +74,7 @@
 	public static final String FLV_EXTENSION = ".flv";
 	public static final String MP4_EXTENSION = ".mp4";
 	public static final String OGG_EXTENSION = ".ogg";
-	public static final String JPG_EXTENTION = ".jpg";
+	public static final String JPG_EXTENSION = ".jpg";
 	public static final String WB_VIDEO_FILE_PREFIX = "UPLOADFLV_";
 	public static final String FLV_MIME_TYPE = "video/flv";
 	public static final String JPG_MIME_TYPE = "image/jpeg";
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
index 1bb0f6a..8810a53 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
@@ -19,7 +19,8 @@
 package org.apache.openmeetings.web.room;
 
 import static org.apache.openmeetings.util.OmFileHelper.FLV_MIME_TYPE;
-import static org.apache.openmeetings.util.OmFileHelper.JPG_EXTENTION;
+import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.JPG_EXTENSION;
 import static org.apache.openmeetings.util.OmFileHelper.JPG_MIME_TYPE;
 import static org.apache.openmeetings.util.OmFileHelper.WB_VIDEO_FILE_PREFIX;
 import static org.apache.openmeetings.web.app.Application.getBean;
@@ -105,7 +106,7 @@
 			}
 				break;
 			case Video: {
-				result = new File(OmFileHelper.getStreamsHibernateDir(), String.format("%s%s%s", WB_VIDEO_FILE_PREFIX, r.getId(), preview ? FLV_MIME_TYPE : JPG_EXTENTION));
+				result = new File(OmFileHelper.getStreamsHibernateDir(), String.format("%s%s%s", WB_VIDEO_FILE_PREFIX, r.getId(), preview ? JPG_EXTENSION : FLV_EXTENSION));
 				break;
 			}
 			case Presentation: {
