Author: solomax Date: Fri Aug 12 03:35:19 2016 New Revision: 1756075 URL: http://svn.apache.org/viewvc?rev=1756075&view=rev Log: [OPENMEETINGS-652] wb video being converted to mp4
Modified: openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateImage.java openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/whiteboardVideoPlayer.lzx openmeetings/application/branches/3.1.x/openmeetings-server/src/site/xdoc/BuildInstructions.xml openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.java openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/Mp4RecordingResourceReference.java Modified: openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java?rev=1756075&r1=1756074&r2=1756075&view=diff ============================================================================== --- openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java (original) +++ openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java Fri Aug 12 03:35:19 2016 @@ -18,7 +18,9 @@ */ package org.apache.openmeetings.core.converter; -import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION; +import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION; +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; @@ -40,6 +42,7 @@ import org.springframework.beans.factory public class FlvExplorerConverter extends BaseConverter { private static final Logger log = Red5LoggerFactory.getLogger(FlvExplorerConverter.class, webAppRootKey); + private static final Pattern p = Pattern.compile("\\d{2,4}(x)\\d{2,4}"); // Spring loaded Beans @Autowired @@ -77,16 +80,13 @@ public class FlvExplorerConverter extend private List<ConverterProcessResult> convertToFLV(FileExplorerItem fileExplorerItem, String moviePath) { List<ConverterProcessResult> returnLog = new ArrayList<ConverterProcessResult>(); try { - String name = "UPLOADFLV_" + fileExplorerItem.getId(); - File outputFullFlv = new File(getStreamsHibernateDir(), name + FLV_EXTENSION); + String name = WB_VIDEO_FILE_PREFIX + fileExplorerItem.getId(); + File outputFullFlv = new File(getStreamsHibernateDir(), name + MP4_EXTENSION); fileExplorerItem.setType(Type.Video); String[] argv_fullFLV = new String[] { getPathToFFMPEG(), "-y", "-i", moviePath, - "-ar", "22050", "-acodec", "libmp3lame", "-ab", "32k", - "-vcodec", "flv", - outputFullFlv.getCanonicalPath() }; - // "-s", flvWidth + "x" + flvHeight, + "-codec:a", "mp3", "-codec:v", "mpeg4", outputFullFlv.getCanonicalPath() }; ConverterProcessResult returnMapConvertFLV = ProcessHelper.executeScript("uploadFLV ID :: " + fileExplorerItem.getId(), argv_fullFLV); @@ -102,13 +102,13 @@ public class FlvExplorerConverter extend returnLog.add(returnMapConvertFLV); - String hashFileFullNameJPEG = "UPLOADFLV_" + fileExplorerItem.getId() + ".jpg"; - File outPutJpeg = new File(getStreamsHibernateDir(), name + ".jpg"); + String hashFileFullNameJPEG = WB_VIDEO_FILE_PREFIX + fileExplorerItem.getId() + JPG_EXTENSION; + File outPutJpeg = new File(getStreamsHibernateDir(), name + JPG_EXTENSION); fileExplorerItem.setPreviewImage(hashFileFullNameJPEG); String[] argv_previewFLV = new String[] { getPathToFFMPEG(), "-y", "-i", - outputFullFlv.getCanonicalPath(), "-vcodec", "mjpeg", "-vframes", "1", "-an", + outputFullFlv.getCanonicalPath(), "-codec:v", "mjpeg", "-vframes", "1", "-an", "-f", "rawvideo", "-s", flvWidth + "x" + flvHeight, outPutJpeg.getCanonicalPath() }; @@ -128,18 +128,14 @@ public class FlvExplorerConverter extend } private static FlvDimension getFlvDimension(String txt) throws Exception { - Pattern p = Pattern.compile("\\d{2,4}(x)\\d{2,4}"); - Matcher matcher = p.matcher(txt); while (matcher.find()) { String foundResolution = txt.substring(matcher.start(), matcher.end()); - String[] resultions = foundResolution.split("x"); - return new FlvDimension(Integer.valueOf(resultions[0]).intValue(), Integer.valueOf(resultions[1]).intValue()); } - throw new Exception("Failed to get FLV dimension: " + txt); + return new FlvDimension(100, 100); // will return 100x100 for non-video to be able to play } } Modified: openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateImage.java URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateImage.java?rev=1756075&r1=1756074&r2=1756075&view=diff ============================================================================== --- openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateImage.java (original) +++ openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateImage.java Fri Aug 12 03:35:19 2016 @@ -21,7 +21,7 @@ package org.apache.openmeetings.core.con import static org.apache.openmeetings.util.OmFileHelper.bigImagePrefix; import static org.apache.openmeetings.util.OmFileHelper.chatImagePrefix; import static org.apache.openmeetings.util.OmFileHelper.getUploadProfilesUserDir; -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.profileFileName; import static org.apache.openmeetings.util.OmFileHelper.profileImagePrefix; import static org.apache.openmeetings.util.OmFileHelper.thumbImagePrefix; @@ -78,7 +78,7 @@ public class GenerateImage extends BaseC 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) { @@ -87,7 +87,7 @@ public class GenerateImage extends BaseC } } - 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 { Modified: openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java?rev=1756075&r1=1756074&r2=1756075&view=diff ============================================================================== --- openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java (original) +++ openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java Fri Aug 12 03:35:19 2016 @@ -18,7 +18,8 @@ */ package org.apache.openmeetings.core.remote; -import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION; +import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION; +import static org.apache.openmeetings.util.OmFileHelper.WB_VIDEO_FILE_PREFIX; import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey; import java.io.File; @@ -64,7 +65,7 @@ public class ConferenceLibrary implement @Autowired private ISessionManager sessionManager; @Autowired - private SessiondataDao sessiondataDao; + private SessiondataDao sessionDao; @Autowired private UserDao userDao; @Autowired @@ -76,7 +77,7 @@ public class ConferenceLibrary implement public LibraryPresentation getPresentationPreviewFileExplorer(String SID, String parentFolder) { try { - Long users_id = sessiondataDao.check(SID); + Long users_id = sessionDao.check(SID); log.debug("#############users_id : " + users_id); @@ -111,7 +112,7 @@ public class ConferenceLibrary implement */ public Long saveAsObject(String SID, Long room_id, String fileName, Object tObjectRef) { try { - Long users_id = sessiondataDao.check(SID); + Long users_id = sessionDao.check(SID); if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) { // LinkedHashMap tObject = (LinkedHashMap)t; // ArrayList tObject = (ArrayList)t; @@ -156,7 +157,7 @@ public class ConferenceLibrary implement @SuppressWarnings({ "rawtypes", "unchecked" }) public void loadWmlObject(String SID, Long room_id, Long fileId, Long whiteboardId) { try { - Long users_id = sessiondataDao.check(SID); + Long users_id = sessionDao.check(SID); if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) { IConnection current = Red5.getConnectionLocal(); @@ -225,7 +226,7 @@ public class ConferenceLibrary implement @SuppressWarnings("rawtypes") public ArrayList loadChartObject(String SID, Long room_id, String fileName) { try { - Long users_id = sessiondataDao.check(SID); + Long users_id = sessionDao.check(SID); if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) { return LibraryChartLoader.getInstance().loadChart(OmFileHelper.getUploadRoomDir(room_id.toString()), fileName); } @@ -237,12 +238,12 @@ public class ConferenceLibrary implement /** * @param SID - * @param flvFileExplorerId + * @param fileId * @return 1 in case of success, -1 otherwise */ - public Long copyFileToCurrentRoom(String SID, Long flvFileExplorerId) { + public Long copyFileToCurrentRoom(String SID, Long fileId) { try { - Long users_id = sessiondataDao.check(SID); + Long users_id = sessionDao.check(SID); if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) { @@ -251,14 +252,14 @@ public class ConferenceLibrary implement Client currentClient = sessionManager.getClientByStreamId(streamid, null); - Long room_id = currentClient.getRoomId(); + Long roomId = currentClient.getRoomId(); - if (room_id != null) { - File outputFullFlvFile = new File(OmFileHelper.getStreamsHibernateDir(), "UPLOADFLV_" + flvFileExplorerId + FLV_EXTENSION); + if (roomId != null) { + File outputFullFlvFile = new File(OmFileHelper.getStreamsHibernateDir(), WB_VIDEO_FILE_PREFIX + fileId + MP4_EXTENSION); - File targetFolder = OmFileHelper.getStreamsSubDir(room_id); + File targetFolder = OmFileHelper.getStreamsSubDir(roomId); - File targetFullFlvFile = new File(targetFolder, "UPLOADFLV_" + flvFileExplorerId + FLV_EXTENSION); + File targetFullFlvFile = new File(targetFolder, WB_VIDEO_FILE_PREFIX + fileId + MP4_EXTENSION); if (outputFullFlvFile.exists() && !targetFullFlvFile.exists()) { FileHelper.copy(outputFullFlvFile, targetFullFlvFile); } Modified: openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/whiteboardVideoPlayer.lzx URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/whiteboardVideoPlayer.lzx?rev=1756075&r1=1756074&r2=1756075&view=diff ============================================================================== --- openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/whiteboardVideoPlayer.lzx (original) +++ openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/base/whiteboardVideoPlayer.lzx Fri Aug 12 03:35:19 2016 @@ -37,7 +37,7 @@ <handler name="oninit"> if ($debug) Debug.write("whiteboardVideoPlayer :: ",this.fileId); - this.recordingName = "UPLOADFLV_" + this.fileId + ".flv"; + this.recordingName = "UPLOADFLV_" + this.fileId + ".mp4"; calcVideoWidthHeight(); this.copyFileToCurrentRoom.doCall(); </handler> Modified: openmeetings/application/branches/3.1.x/openmeetings-server/src/site/xdoc/BuildInstructions.xml URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-server/src/site/xdoc/BuildInstructions.xml?rev=1756075&r1=1756074&r2=1756075&view=diff ============================================================================== --- openmeetings/application/branches/3.1.x/openmeetings-server/src/site/xdoc/BuildInstructions.xml (original) +++ openmeetings/application/branches/3.1.x/openmeetings-server/src/site/xdoc/BuildInstructions.xml Fri Aug 12 03:35:19 2016 @@ -65,25 +65,25 @@ <p>To compile only client you can run following command: </p> <source> <![CDATA[ -mvn package -pl openmeetings-flash # compiles a complete package into the folder openmeetings-flash/target +mvn install -pl openmeetings-flash # compiles a complete package into the folder openmeetings-flash/target ]]> </source> <p>In case you would like to develop Openmeetings you need to run <i>"unpacked"</i> build: </p> <source> <![CDATA[ -mvn clean package -Dunpacked=true -DskipTests=true -Dold-backups.dwnd.skip=true -Ddb=mysql -Dwicket.mode=DEVELOPMENT +mvn clean install -Dunpacked=true -DskipTests=true -Dold-backups.dwnd.skip=true -Ddb=mysql -Dwicket.mode=DEVELOPMENT ]]> </source> <p>After modifications are made you can run <i>"quick"</i> build: </p> <source> <![CDATA[ -mvn package -pl openmeetings-web -pl openmeetings-server -Dquick=true -Ddb=mysql -Dwicket.mode=DEVELOPMENT +mvn install -pl openmeetings-web -pl openmeetings-server -Dquick=true -Ddb=mysql -Dwicket.mode=DEVELOPMENT ]]> </source> <p>Any number of projects can be specified during build: </p> <source> <![CDATA[ -mvn package -pl openmeetings-util -pl openmeetings-db -pl openmeetings-core -pl openmeetings-install -pl openmeetings-service -pl openmeetings-web -pl openmeetings-server -pl openmeetings-webservice -Dquick=true -Ddb=mysql -Dwicket.mode=DEVELOPMENT +mvn install -pl openmeetings-util -pl openmeetings-db -pl openmeetings-core -pl openmeetings-install -pl openmeetings-service -pl openmeetings-web -pl openmeetings-server -pl openmeetings-webservice -Dquick=true -Ddb=mysql -Dwicket.mode=DEVELOPMENT ]]> </source> <p> Modified: openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java?rev=1756075&r1=1756074&r2=1756075&view=diff ============================================================================== --- openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java (original) +++ openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java Fri Aug 12 03:35:19 2016 @@ -73,10 +73,22 @@ public class OmFileHelper { public static final String bigImagePrefix = "_big_"; public static final String thumbImagePrefix = "_thumb_"; public static final String dashboardFile = "dashboard.xml"; - 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 EXTENSION_WML = "wml"; + public static final String EXTENSION_FLV = "flv"; + public static final String EXTENSION_MP4 = "mp4"; + public static final String EXTENSION_AVI = "avi"; + public static final String EXTENSION_OGG = "ogg"; + public static final String EXTENSION_JPG = "jpg"; + public static final String EXTENSION_SWF = "swf"; + public static final String WML_EXTENSION = "." + EXTENSION_WML; + public static final String FLV_EXTENSION = "." + EXTENSION_FLV; + public static final String MP4_EXTENSION = "." + EXTENSION_MP4; + public static final String OGG_EXTENSION = "." + EXTENSION_OGG; + public static final String JPG_EXTENSION = "." + EXTENSION_JPG; + public static final String WB_VIDEO_FILE_PREFIX = "UPLOADFLV_"; + public static final String FLV_MIME_TYPE = "video/" + EXTENSION_FLV; + public static final String MP4_MIME_TYPE = "video/" + EXTENSION_MP4; + public static final String JPG_MIME_TYPE = "image/jpeg"; public static void setOmHome(File omHome) { OmFileHelper.OM_HOME = omHome; Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.java URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.java?rev=1756075&r1=1756074&r2=1756075&view=diff ============================================================================== --- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.java (original) +++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.java Fri Aug 12 03:35:19 2016 @@ -19,6 +19,7 @@ package org.apache.openmeetings.web.user.record; import static org.apache.openmeetings.util.OmFileHelper.getMp4Recording; +import static org.apache.openmeetings.util.OmFileHelper.MP4_MIME_TYPE; import org.apache.openmeetings.db.entity.record.Recording; import org.apache.openmeetings.web.util.Mp4RecordingResourceReference; @@ -51,7 +52,7 @@ public class VideoPlayer extends Panel { super(id); add(container.setOutputMarkupPlaceholderTag(true)); mp4.setDisplayType(true); - mp4.setType("video/mp4"); + mp4.setType(MP4_MIME_TYPE); ogg.setDisplayType(true); ogg.setType("video/ogg"); player.add(mp4, ogg); Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/Mp4RecordingResourceReference.java URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/Mp4RecordingResourceReference.java?rev=1756075&r1=1756074&r2=1756075&view=diff ============================================================================== --- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/Mp4RecordingResourceReference.java (original) +++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/Mp4RecordingResourceReference.java Fri Aug 12 03:35:19 2016 @@ -19,6 +19,7 @@ package org.apache.openmeetings.web.util; import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION; +import static org.apache.openmeetings.util.OmFileHelper.MP4_MIME_TYPE; import static org.apache.openmeetings.util.OmFileHelper.getMp4Recording; import java.io.File; @@ -34,7 +35,7 @@ public class Mp4RecordingResourceReferen @Override public String getMimeType() { - return "video/mp4"; + return MP4_MIME_TYPE; } @Override