You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2014/01/04 08:04:19 UTC

svn commit: r1555326 - /openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/converter/FlvInterviewConverter.java

Author: solomax
Date: Sat Jan  4 07:04:19 2014
New Revision: 1555326

URL: http://svn.apache.org/r1555326
Log:
[OPENMEETINGS-337] Audio-only recording creation is improved;
Logs are improved

Modified:
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/converter/FlvInterviewConverter.java

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/converter/FlvInterviewConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/converter/FlvInterviewConverter.java?rev=1555326&r1=1555325&r2=1555326&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/converter/FlvInterviewConverter.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/converter/FlvInterviewConverter.java Sat Jan  4 07:04:19 2014
@@ -173,11 +173,11 @@ public class FlvInterviewConverter exten
 
 			final int flvWidth = 640;
 			final int flvHeight = 260;
+			final int frameRate = 25;
 			// Merge Audio with Video / Calculate resulting FLV
 
-			int frameRate = 25;
-
 			String[] pods = new String[2];
+			boolean found = false;
 			for (FlvRecordingMetaData meta : metaDataList) {
 				File flv = new File(streamFolder, meta.getStreamName() + ".flv");
 
@@ -190,6 +190,7 @@ public class FlvInterviewConverter exten
 					 */ 
 					String[] args = new String[] {getPathToFFMPEG()
 							, "-i", path
+							, "-an" // only input files with video will be treated as video sources
 							, "-v", "error"
 							, "-f", "null"
 							, "file.null"};
@@ -198,9 +199,10 @@ public class FlvInterviewConverter exten
 					if ("".equals(r.getError())) {
 						pods[pod - 1] = path;
 					}
+					found = true;
 				}
 			}
-			if (pods[0] == null && pods[1] == null) {
+			if (!found) {
 				ConverterProcessResult r = new ConverterProcessResult();
 				r.setProcess("CheckFlvFilesExists");
 				r.setError("No valid pods found");
@@ -220,41 +222,34 @@ public class FlvInterviewConverter exten
 				 */
 				if (pods[i] == null) {
 					shortest = true;
-					args.add("-loop");
-					args.add("1");
-					args.add("-i");
-					args.add(defaultInterviewImageFile.getCanonicalPath());
+					args.add("-loop"); args.add("1");
+					args.add("-i"); args.add(defaultInterviewImageFile.getCanonicalPath());
 				} else {
-					args.add("-i");
-					args.add(pods[i]);
+					args.add("-i"); args.add(pods[i]);
 				}
 			}
+			args.add("-i"); args.add(outputFullWav);
+			args.add("-ar"); args.add("22050");
+			args.add("-ab"); args.add("32k");
 			args.add("-filter_complex");
 			args.add(String.format("[0:v]scale=%1$d:%2$d,pad=2*%1$d:%2$d[left];[1:v]scale=%1$d:%2$d[right];[left][right]overlay=main_w/2:0", flvWidth, flvHeight));
 			if (shortest) {
 				args.add("-shortest");
 			}
+			args.add("-vcodec"); args.add("flv");
+			args.add("-r"); args.add("" + frameRate);
+			args.add("-qmax"); args.add("1");
+			args.add("-qmin"); args.add("1");
 			args.add("-y");
-			String inputScreenFullFlv = new File(streamFolder
-					, "COMPLETE_INTERVIEW_" + flvRecording.getFlvRecordingId() + ".flv").getCanonicalPath();
-			args.add(inputScreenFullFlv);
+			String hashFileFullNameFlv = "flvRecording_" + flvRecording.getFlvRecordingId() + ".flv";
+			String outputFullFlv = new File(streamFolderGeneral, hashFileFullNameFlv).getCanonicalPath();
+			args.add(outputFullFlv);
 			// TODO additional flag to 'quiet' output should be added
 			returnLog.add(ProcessHelper.executeScript("generateFullBySequenceFLV", args.toArray(new String[]{})));
 
 			flvRecording.setFlvWidth(flvWidth);
 			flvRecording.setFlvHeight(flvHeight);
 
-			String hashFileFullNameFlv = "flvRecording_" + flvRecording.getFlvRecordingId() + ".flv";
-			String outputFullFlv = new File(streamFolderGeneral, hashFileFullNameFlv).getCanonicalPath();
-			String[] argv_fullFLV = new String[] { getPathToFFMPEG(), //
-					"-i", inputScreenFullFlv, "-i", outputFullWav, "-ar", "22050", //
-					"-ab", "32k", //
-					"-s", flvWidth + "x" + flvHeight, //
-					"-vcodec", "flv", //
-					"-r", "" + frameRate, "-qmax", "1", "-qmin", "1", "-y", outputFullFlv};
-
-			returnLog.add(ProcessHelper.executeScript("generateFullFLV", argv_fullFLV));
-
 			flvRecording.setFileHash(hashFileFullNameFlv);
 
 			// Extract first Image for preview purpose
@@ -276,15 +271,6 @@ public class FlvInterviewConverter exten
 					"-s", flvWidth + "x" + flvHeight, //
 					outPutJpeg };
 
-			log.debug("START previewFullFLV ################# ");
-			log.debug(argv_previewFLV.toString());
-			String kString = "";
-			for (int i = 0; i < argv_previewFLV.length; i++) {
-				kString += argv_previewFLV[i] + " ";
-			}
-			log.debug(kString);
-			log.debug("END previewFullFLV ################# ");
-
 			returnLog.add(ProcessHelper.executeScript("generateFullFLV", argv_previewFLV));
 
 			String alternateDownloadName = "flvRecording_" + flvRecording.getFlvRecordingId() + ".avi";
@@ -294,15 +280,6 @@ public class FlvInterviewConverter exten
 			String[] argv_alternateDownload = new String[] { getPathToFFMPEG(), "-i", outputFullFlv,
 					alternateDownloadFullName };
 
-			log.debug("START alternateDownLoad ################# ");
-			log.debug(argv_previewFLV.toString());
-			String sString = "";
-			for (int i = 0; i < argv_alternateDownload.length; i++) {
-				sString += argv_alternateDownload[i] + " ";
-			}
-			log.debug(sString);
-			log.debug("END alternateDownLoad ################# ");
-
 			returnLog.add(ProcessHelper.executeScript("alternateDownload", argv_alternateDownload));
 
 			flvRecording.setAlternateDownload(alternateDownloadName);