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/06/08 10:51:11 UTC
svn commit: r1601201 - in /openmeetings:
branches/3.0.x/src/main/java/org/apache/openmeetings/converter/
branches/3.0.x/src/main/java/org/apache/openmeetings/remote/
trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/conver...
Author: solomax
Date: Sun Jun 8 08:51:10 2014
New Revision: 1601201
URL: http://svn.apache.org/r1601201
Log:
Additional logging is added to track possible issues with recordings in interview room
Modified:
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/BaseConverter.java
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvExplorerConverter.java
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvInterviewConverter.java
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvRecorderConverter.java
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/FLVRecorderService.java
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvInterviewConverter.java
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvRecorderConverter.java
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/FLVRecorderService.java
Modified: openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/BaseConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/BaseConverter.java?rev=1601201&r1=1601200&r2=1601201&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/BaseConverter.java (original)
+++ openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/BaseConverter.java Sun Jun 8 08:51:10 2014
@@ -142,6 +142,17 @@ public abstract class BaseConverter {
return argv;
}
+ public static void printMetaInfo(FlvRecordingMetaData metaData, String prefix) {
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("### %s:: stream with id %s; current status: %s ", prefix, metaData.getFlvRecordingMetaDataId(), metaData.getStreamStatus()));
+ File metaDir = getStreamsSubDir(metaData.getFlvRecording().getRoom_id());
+ File metaFlv = new File(metaDir, metaData.getStreamName() + ".flv");
+ File metaSer = new File(metaDir, metaData.getStreamName() + ".flv.ser");
+ log.debug(String.format("### %:: Flv file [%s] exists ? %s; size: %s, lastModified: %s ", prefix, metaFlv.getPath(), metaFlv.exists(), metaFlv.length(), metaFlv.lastModified()));
+ log.debug(String.format("### %:: Ser file [%s] exists ? %s; size: %s, lastModified: %s ", prefix, metaSer.getPath(), metaSer.exists(), metaSer.length(), metaSer.lastModified()));
+ }
+ }
+
protected FlvRecordingMetaData waitForTheStream(long metaId) throws InterruptedException {
FlvRecordingMetaData metaData = metaDataDao.get(metaId);
if (metaData.getStreamStatus() != Status.STOPPED) {
@@ -154,15 +165,11 @@ public abstract class BaseConverter {
metaData = metaDataDao.get(metaId);
if (metaData.getStreamStatus() == Status.STOPPED) {
- log.debug("### Stream now written Thread continue - " );
+ printMetaInfo(metaData, "Stream now written");
+ log.debug("### Thread continue ... " );
doWait = false;
} else if (++counter % 1000 == 0) {
- log.debug(String.format("### Still waiting for the stream with id %s; current status: %s ", metaId, metaData.getStreamStatus()));
- File metaDir = getStreamsSubDir(metaData.getFlvRecording().getRoom_id());
- File metaFlv = new File(metaDir, metaData.getStreamName() + ".flv");
- File metaSer = new File(metaDir, metaData.getStreamName() + ".flv.ser");
- log.debug(String.format("### Still waiting:: Flv file [%s] exists ? %s; size: %s, lastModified: %s ", metaFlv.getPath(), metaFlv.exists(), metaFlv.length(), metaFlv.lastModified()));
- log.debug(String.format("### Still waiting:: Ser file [%s] exists ? %s; size: %s, lastModified: %s ", metaSer.getPath(), metaSer.exists(), metaSer.length(), metaSer.lastModified()));
+ printMetaInfo(metaData, "Still waiting");
}
Thread.sleep(100L);
@@ -202,7 +209,7 @@ public abstract class BaseConverter {
metaData.setAudioIsValid(false);
if (inputFlvFile.exists()) {
- String[] argv = new String[] {getPathToFFMPEG(), "-async", "1", "-i", inputFlvFile.getCanonicalPath(), outputWav};
+ String[] argv = new String[] {getPathToFFMPEG(), "-y", "-async", "1", "-i", inputFlvFile.getCanonicalPath(), outputWav};
returnLog.add(ProcessHelper.executeScript("stripAudioFromFLVs", argv));
@@ -301,7 +308,7 @@ public abstract class BaseConverter {
String path = file.getCanonicalPath();
String mp4path = path + MP4_EXTENSION;
String[] argv = new String[] {
- getPathToFFMPEG(), //
+ getPathToFFMPEG(), "-y",
"-i", path,
"-c:v", "libx264",
"-crf", "24",
@@ -316,7 +323,7 @@ public abstract class BaseConverter {
returnLog.add(ProcessHelper.executeScript("generate MP4", argv));
argv = new String[] {
- getPathToFFMPEG(), //
+ getPathToFFMPEG(), "-y",
"-i", mp4path,
"-vcodec", "libtheora",
"-acodec", "libvorbis",
Modified: openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvExplorerConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvExplorerConverter.java?rev=1601201&r1=1601200&r2=1601201&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvExplorerConverter.java (original)
+++ openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvExplorerConverter.java Sun Jun 8 08:51:10 2014
@@ -85,7 +85,7 @@ public class FlvExplorerConverter extend
fileExplorerItem.setIsVideo(true);
- String[] argv_fullFLV = new String[] { getPathToFFMPEG(), "-i", moviePath,
+ String[] argv_fullFLV = new String[] { getPathToFFMPEG(), "-y", "-i", moviePath,
"-ar", "22050", "-acodec", "libmp3lame", "-ab", "32k",
"-vcodec", "flv",
outputFullFlv.getCanonicalPath() };
@@ -110,7 +110,7 @@ public class FlvExplorerConverter extend
fileExplorerItem.setPreviewImage(hashFileFullNameJPEG);
- String[] argv_previewFLV = new String[] { getPathToFFMPEG(), "-i",
+ String[] argv_previewFLV = new String[] { getPathToFFMPEG(), "-y", "-i",
outputFullFlv.getCanonicalPath(), "-vcodec", "mjpeg", "-vframes", "1", "-an",
"-f", "rawvideo", "-s", flvWidth + "x" + flvHeight,
outPutJpeg.getCanonicalPath() };
Modified: openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvInterviewConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvInterviewConverter.java?rev=1601201&r1=1601200&r2=1601201&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvInterviewConverter.java (original)
+++ openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvInterviewConverter.java Sun Jun 8 08:51:10 2014
@@ -182,7 +182,7 @@ public class FlvInterviewConverter exten
* CHECK FILE:
* ffmpeg -i rec_316_stream_567_2013_08_28_11_51_45.flv -v error -f null file.null
*/
- String[] args = new String[] {getPathToFFMPEG()
+ String[] args = new String[] {getPathToFFMPEG(), "-y"
, "-i", path
, "-an" // only input files with video will be treated as video sources
, "-v", "error"
@@ -206,6 +206,7 @@ public class FlvInterviewConverter exten
boolean shortest = false;
List<String> args = new ArrayList<String>();
args.add(getPathToFFMPEG());
+ args.add("-y");
for (int i = 0; i < 2; ++i) {
/*
* INSERT BLANK INSTEAD OF BAD PAD:
@@ -260,7 +261,7 @@ public class FlvInterviewConverter exten
flvRecording.setPreviewImage(hashFileFullNameJPEG);
String[] argv_previewFLV = new String[] { //
- getPathToFFMPEG(), //
+ getPathToFFMPEG(), "-y", //
"-i", outputFullFlv, //
"-vcodec", "mjpeg", //
"-vframes", "100", "-an", //
@@ -274,7 +275,7 @@ public class FlvInterviewConverter exten
String alternateDownloadFullName = new File(streamFolderGeneral, alternateDownloadName).getCanonicalPath();
deleteFileIfExists(alternateDownloadFullName);
- String[] argv_alternateDownload = new String[] { getPathToFFMPEG(), "-i", outputFullFlv, alternateDownloadFullName };
+ String[] argv_alternateDownload = new String[] { getPathToFFMPEG(), "-y", "-i", outputFullFlv, alternateDownloadFullName };
returnLog.add(ProcessHelper.executeScript("alternateDownload", argv_alternateDownload));
Modified: openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvRecorderConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvRecorderConverter.java?rev=1601201&r1=1601200&r2=1601201&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvRecorderConverter.java (original)
+++ openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/converter/FlvRecorderConverter.java Sun Jun 8 08:51:10 2014
@@ -135,7 +135,7 @@ public class FlvRecorderConverter extend
flvRecording.setFlvWidth(flvWidth);
flvRecording.setFlvHeight(flvHeight);
- String[] argv_fullFLV = new String[] { getPathToFFMPEG(), //
+ String[] argv_fullFLV = new String[] { getPathToFFMPEG(), "-y",//
"-itsoffset", getDifference(screenMetaData.getRecordStart(), screenMetaData.getFlvRecording().getRecordStart()),
"-i", inputScreenFullFlv, "-i", outputFullWav, "-ar", "22050", //
"-acodec", "libmp3lame", //
@@ -160,7 +160,7 @@ public class FlvRecorderConverter extend
flvRecording.setPreviewImage(hashFileFullNameJPEG);
String[] argv_previewFLV = new String[] { //
- getPathToFFMPEG(), //
+ getPathToFFMPEG(), "-y",//
"-i", outputFullFlv, //
"-vcodec", "mjpeg", //
"-vframes", "1", "-an", //
@@ -173,7 +173,7 @@ public class FlvRecorderConverter extend
String alternateDownloadName = "flvRecording_" + flvRecording.getFlvRecordingId() + ".avi";
String alternateDownloadFullName = streamFolderGeneralName + alternateDownloadName;
- String[] argv_alternateDownload = new String[] { getPathToFFMPEG(), "-i", outputFullFlv, "-vcodec",
+ String[] argv_alternateDownload = new String[] { getPathToFFMPEG(), "-y", "-i", outputFullFlv, "-vcodec",
"copy", alternateDownloadFullName };
returnLog.add(ProcessHelper.executeScript("alternateDownload", argv_alternateDownload));
Modified: openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/FLVRecorderService.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/FLVRecorderService.java?rev=1601201&r1=1601200&r2=1601201&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/FLVRecorderService.java (original)
+++ openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/FLVRecorderService.java Sun Jun 8 08:51:10 2014
@@ -25,6 +25,7 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
+import org.apache.openmeetings.converter.BaseConverter;
import org.apache.openmeetings.data.flvrecord.converter.FlvInterviewConverterTask;
import org.apache.openmeetings.data.flvrecord.converter.FlvInterviewReConverterTask;
import org.apache.openmeetings.data.flvrecord.converter.FlvRecorderConverterTask;
@@ -317,6 +318,13 @@ public class FLVRecorderService implemen
}
}
+ FlvRecordingMetaData metaData = metaDataDao.get(flvRecordingMetaDataId);
+ BaseConverter.printMetaInfo(metaData, "Stopping the stream");
+ // Manually call finish on the stream so that there is no endless loop waiting in the FlvRecorderConverter waiting for the stream to finish
+ // this would normally happen in the Listener
+ metaData.setStreamStatus(listenerAdapter == null && metaData.getStreamStatus() == Status.STARTED ? Status.STOPPED : Status.STOPPING);
+ log.debug("Stopping the stream :: New status == " + metaData.getStreamStatus());
+ metaDataDao.update(metaData);
if (listenerAdapter == null) {
log.debug("Stream Not Found :: " + flvRecordingMetaDataId);
log.debug("Available Streams :: " + streamListeners.size());
@@ -324,20 +332,7 @@ public class FLVRecorderService implemen
for (Long entryKey : streamListeners.keySet()) {
log.debug("Stored flvRecordingMetaDataId in Map: " + entryKey);
}
-
- // Manually call finish on the stream so that there is no endless loop waiting
- // in the FlvRecorderConverter waiting for the stream to finish
- // this would normally happen in the Listener
- FlvRecordingMetaData metaData = metaDataDao.get(flvRecordingMetaDataId);
- if (metaData.getStreamStatus() == Status.STARTED) {
- metaData.setStreamStatus(Status.STOPPED);
- metaDataDao.update(metaData);
- }
throw new IllegalStateException("Could not find Listener to stop! flvRecordingMetaDataId " + flvRecordingMetaDataId);
- } else {
- FlvRecordingMetaData metaData = metaDataDao.get(flvRecordingMetaDataId);
- metaData.setStreamStatus(Status.STOPPING);
- metaDataDao.update(metaData);
}
listenerAdapter.closeStream();
Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java?rev=1601201&r1=1601200&r2=1601201&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java Sun Jun 8 08:51:10 2014
@@ -142,6 +142,17 @@ public abstract class BaseConverter {
return argv;
}
+ public static void printMetaInfo(FlvRecordingMetaData metaData, String prefix) {
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("### %s:: stream with id %s; current status: %s ", prefix, metaData.getFlvRecordingMetaDataId(), metaData.getStreamStatus()));
+ File metaDir = getStreamsSubDir(metaData.getFlvRecording().getRoom_id());
+ File metaFlv = new File(metaDir, metaData.getStreamName() + ".flv");
+ File metaSer = new File(metaDir, metaData.getStreamName() + ".flv.ser");
+ log.debug(String.format("### %:: Flv file [%s] exists ? %s; size: %s, lastModified: %s ", prefix, metaFlv.getPath(), metaFlv.exists(), metaFlv.length(), metaFlv.lastModified()));
+ log.debug(String.format("### %:: Ser file [%s] exists ? %s; size: %s, lastModified: %s ", prefix, metaSer.getPath(), metaSer.exists(), metaSer.length(), metaSer.lastModified()));
+ }
+ }
+
protected FlvRecordingMetaData waitForTheStream(long metaId) throws InterruptedException {
FlvRecordingMetaData metaData = metaDataDao.get(metaId);
if (metaData.getStreamStatus() != Status.STOPPED) {
@@ -154,15 +165,11 @@ public abstract class BaseConverter {
metaData = metaDataDao.get(metaId);
if (metaData.getStreamStatus() == Status.STOPPED) {
- log.debug("### Stream now written Thread continue - " );
+ printMetaInfo(metaData, "Stream now written");
+ log.debug("### Thread continue ... " );
doWait = false;
} else if (++counter % 1000 == 0) {
- log.debug(String.format("### Still waiting for the stream with id %s; current status: %s ", metaId, metaData.getStreamStatus()));
- File metaDir = getStreamsSubDir(metaData.getFlvRecording().getRoom_id());
- File metaFlv = new File(metaDir, metaData.getStreamName() + ".flv");
- File metaSer = new File(metaDir, metaData.getStreamName() + ".flv.ser");
- log.debug(String.format("### Still waiting:: Flv file [%s] exists ? %s; size: %s, lastModified: %s ", metaFlv.getPath(), metaFlv.exists(), metaFlv.length(), metaFlv.lastModified()));
- log.debug(String.format("### Still waiting:: Ser file [%s] exists ? %s; size: %s, lastModified: %s ", metaSer.getPath(), metaSer.exists(), metaSer.length(), metaSer.lastModified()));
+ printMetaInfo(metaData, "Still waiting");
}
Thread.sleep(100L);
@@ -202,7 +209,7 @@ public abstract class BaseConverter {
metaData.setAudioIsValid(false);
if (inputFlvFile.exists()) {
- String[] argv = new String[] {getPathToFFMPEG(), "-async", "1", "-i", inputFlvFile.getCanonicalPath(), outputWav};
+ String[] argv = new String[] {getPathToFFMPEG(), "-y", "-async", "1", "-i", inputFlvFile.getCanonicalPath(), outputWav};
returnLog.add(ProcessHelper.executeScript("stripAudioFromFLVs", argv));
@@ -301,7 +308,7 @@ public abstract class BaseConverter {
String path = file.getCanonicalPath();
String mp4path = path + MP4_EXTENSION;
String[] argv = new String[] {
- getPathToFFMPEG(), //
+ getPathToFFMPEG(), "-y",
"-i", path,
"-c:v", "libx264",
"-crf", "24",
@@ -316,7 +323,7 @@ public abstract class BaseConverter {
returnLog.add(ProcessHelper.executeScript("generate MP4", argv));
argv = new String[] {
- getPathToFFMPEG(), //
+ getPathToFFMPEG(), "-y",
"-i", mp4path,
"-vcodec", "libtheora",
"-acodec", "libvorbis",
Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java?rev=1601201&r1=1601200&r2=1601201&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java Sun Jun 8 08:51:10 2014
@@ -85,7 +85,7 @@ public class FlvExplorerConverter extend
fileExplorerItem.setIsVideo(true);
- String[] argv_fullFLV = new String[] { getPathToFFMPEG(), "-i", moviePath,
+ String[] argv_fullFLV = new String[] { getPathToFFMPEG(), "-y", "-i", moviePath,
"-ar", "22050", "-acodec", "libmp3lame", "-ab", "32k",
"-vcodec", "flv",
outputFullFlv.getCanonicalPath() };
@@ -110,7 +110,7 @@ public class FlvExplorerConverter extend
fileExplorerItem.setPreviewImage(hashFileFullNameJPEG);
- String[] argv_previewFLV = new String[] { getPathToFFMPEG(), "-i",
+ String[] argv_previewFLV = new String[] { getPathToFFMPEG(), "-y", "-i",
outputFullFlv.getCanonicalPath(), "-vcodec", "mjpeg", "-vframes", "1", "-an",
"-f", "rawvideo", "-s", flvWidth + "x" + flvHeight,
outPutJpeg.getCanonicalPath() };
Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvInterviewConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvInterviewConverter.java?rev=1601201&r1=1601200&r2=1601201&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvInterviewConverter.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvInterviewConverter.java Sun Jun 8 08:51:10 2014
@@ -182,7 +182,7 @@ public class FlvInterviewConverter exten
* CHECK FILE:
* ffmpeg -i rec_316_stream_567_2013_08_28_11_51_45.flv -v error -f null file.null
*/
- String[] args = new String[] {getPathToFFMPEG()
+ String[] args = new String[] {getPathToFFMPEG(), "-y"
, "-i", path
, "-an" // only input files with video will be treated as video sources
, "-v", "error"
@@ -206,6 +206,7 @@ public class FlvInterviewConverter exten
boolean shortest = false;
List<String> args = new ArrayList<String>();
args.add(getPathToFFMPEG());
+ args.add("-y");
for (int i = 0; i < 2; ++i) {
/*
* INSERT BLANK INSTEAD OF BAD PAD:
@@ -260,7 +261,7 @@ public class FlvInterviewConverter exten
flvRecording.setPreviewImage(hashFileFullNameJPEG);
String[] argv_previewFLV = new String[] { //
- getPathToFFMPEG(), //
+ getPathToFFMPEG(), "-y", //
"-i", outputFullFlv, //
"-vcodec", "mjpeg", //
"-vframes", "100", "-an", //
@@ -274,7 +275,7 @@ public class FlvInterviewConverter exten
String alternateDownloadFullName = new File(streamFolderGeneral, alternateDownloadName).getCanonicalPath();
deleteFileIfExists(alternateDownloadFullName);
- String[] argv_alternateDownload = new String[] { getPathToFFMPEG(), "-i", outputFullFlv, alternateDownloadFullName };
+ String[] argv_alternateDownload = new String[] { getPathToFFMPEG(), "-y", "-i", outputFullFlv, alternateDownloadFullName };
returnLog.add(ProcessHelper.executeScript("alternateDownload", argv_alternateDownload));
Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvRecorderConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvRecorderConverter.java?rev=1601201&r1=1601200&r2=1601201&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvRecorderConverter.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvRecorderConverter.java Sun Jun 8 08:51:10 2014
@@ -135,7 +135,7 @@ public class FlvRecorderConverter extend
flvRecording.setFlvWidth(flvWidth);
flvRecording.setFlvHeight(flvHeight);
- String[] argv_fullFLV = new String[] { getPathToFFMPEG(), //
+ String[] argv_fullFLV = new String[] { getPathToFFMPEG(), "-y",//
"-itsoffset", getDifference(screenMetaData.getRecordStart(), screenMetaData.getFlvRecording().getRecordStart()),
"-i", inputScreenFullFlv, "-i", outputFullWav, "-ar", "22050", //
"-acodec", "libmp3lame", //
@@ -160,7 +160,7 @@ public class FlvRecorderConverter extend
flvRecording.setPreviewImage(hashFileFullNameJPEG);
String[] argv_previewFLV = new String[] { //
- getPathToFFMPEG(), //
+ getPathToFFMPEG(), "-y",//
"-i", outputFullFlv, //
"-vcodec", "mjpeg", //
"-vframes", "1", "-an", //
@@ -173,7 +173,7 @@ public class FlvRecorderConverter extend
String alternateDownloadName = "flvRecording_" + flvRecording.getFlvRecordingId() + ".avi";
String alternateDownloadFullName = streamFolderGeneralName + alternateDownloadName;
- String[] argv_alternateDownload = new String[] { getPathToFFMPEG(), "-i", outputFullFlv, "-vcodec",
+ String[] argv_alternateDownload = new String[] { getPathToFFMPEG(), "-y", "-i", outputFullFlv, "-vcodec",
"copy", alternateDownloadFullName };
returnLog.add(ProcessHelper.executeScript("alternateDownload", argv_alternateDownload));
Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/FLVRecorderService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/FLVRecorderService.java?rev=1601201&r1=1601200&r2=1601201&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/FLVRecorderService.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/FLVRecorderService.java Sun Jun 8 08:51:10 2014
@@ -24,6 +24,7 @@ import java.util.Date;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
+import org.apache.openmeetings.core.converter.BaseConverter;
import org.apache.openmeetings.core.data.flvrecord.converter.FlvInterviewConverterTask;
import org.apache.openmeetings.core.data.flvrecord.converter.FlvInterviewReConverterTask;
import org.apache.openmeetings.core.data.flvrecord.converter.FlvRecorderConverterTask;
@@ -314,6 +315,13 @@ public class FLVRecorderService implemen
}
}
+ FlvRecordingMetaData metaData = metaDataDao.get(flvRecordingMetaDataId);
+ BaseConverter.printMetaInfo(metaData, "Stopping the stream");
+ // Manually call finish on the stream so that there is no endless loop waiting in the FlvRecorderConverter waiting for the stream to finish
+ // this would normally happen in the Listener
+ metaData.setStreamStatus(listenerAdapter == null && metaData.getStreamStatus() == Status.STARTED ? Status.STOPPED : Status.STOPPING);
+ log.debug("Stopping the stream :: New status == " + metaData.getStreamStatus());
+ metaDataDao.update(metaData);
if (listenerAdapter == null) {
log.debug("Stream Not Found :: " + flvRecordingMetaDataId);
log.debug("Available Streams :: " + streamListeners.size());
@@ -321,20 +329,7 @@ public class FLVRecorderService implemen
for (Long entryKey : streamListeners.keySet()) {
log.debug("Stored flvRecordingMetaDataId in Map: " + entryKey);
}
-
- // Manually call finish on the stream so that there is no endless loop waiting
- // in the FlvRecorderConverter waiting for the stream to finish
- // this would normally happen in the Listener
- FlvRecordingMetaData metaData = metaDataDao.get(flvRecordingMetaDataId);
- if (metaData.getStreamStatus() == Status.STARTED) {
- metaData.setStreamStatus(Status.STOPPED);
- metaDataDao.update(metaData);
- }
throw new IllegalStateException("Could not find Listener to stop! flvRecordingMetaDataId " + flvRecordingMetaDataId);
- } else {
- FlvRecordingMetaData metaData = metaDataDao.get(flvRecordingMetaDataId);
- metaData.setStreamStatus(Status.STOPPING);
- metaDataDao.update(metaData);
}
listenerAdapter.closeStream();