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();


Reply via email to