Revision: 2822
Author: seba.wagner
Date: Thu Jan 21 07:19:17 2010
Log: Update Issue 1097
Fixes TRIM time for late/partial users, Debug why some FLVs are missing in
the Post-Process (No Audio Packet was ever send)
http://code.google.com/p/openmeetings/source/detail?r=2822
Added:
/trunk/singlewebapp/conf/debug.txt
Modified:
/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/converter/FlvRecorderConverter.java
/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamAudioListener.java
/trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/flvrecord/FlvRecordingMetaDelta.hbm.xml
/trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/flvrecord/FlvRecordingMetaDelta.java
/trunk/singlewebapp/src/app/org/openmeetings/app/remote/FLVRecorderService.java
=======================================
--- /dev/null
+++ /trunk/singlewebapp/conf/debug.txt Thu Jan 21 07:19:17 2010
@@ -0,0 +1,6 @@
+process-generateFFMPEG<br/>error-FFmpeg version UNKNOWN, Copyright (c)
2000-2007 Fabrice Bellard, et al. configuration: --prefix=/sw
--mandir=/sw/share/man --enable-shared --enable-gpl --enable-pp
--enable-swscaler --enable-pthreads --enable-x11grab --enable-liba52
--enable-libamr-nb --enable-libfaac --enable-libfaad --enable-libgsm
--enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264
--enable-libxvid --disable-mmx --disable-iwmmxt --disable-altivec
libavutil version: 49.6.0 libavcodec version: 51.49.0 libavformat
version: 52.2.0 built on Feb 14 2009 13:01:06, gcc: 4.0.1 (Apple Inc.
build 5465)
+
+/Users/sebastianwagner/Documents/workspaces/workspace_openmeetings/ROOT/dist/red5/./webapps/openmeetings/streams/5/rec_1_stream_18_21_01_2010_15_46_05.flv:
no
such file or directory<br/>
+
+
+command-[ffmpeg, -i,
/Users/sebastianwagner/Documents/workspaces/workspace_openmeetings/ROOT/dist/red5/./webapps/openmeetings/streams/5/rec_1_stream_18_21_01_2010_15_46_05.flv,
/Users/sebastianwagner/Documents/workspaces/workspace_openmeetings/ROOT/dist/red5/./webapps/openmeetings/streams/5/rec_1_stream_18_21_01_2010_15_46_05_WAVE.wav]<br/>exitValue-1<br/>
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/converter/FlvRecorderConverter.java
Tue Jan 19 11:54:27 2010
+++
/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/converter/FlvRecorderConverter.java
Thu Jan 21 07:19:17 2010
@@ -320,11 +320,10 @@
Float startPadding =
Float.parseFloat(deltaTimeStartMilliSeconds.toString()) / 1000;
// Calculate delta at ending
- Long deltaTimeEndMilliSeconds =
flvRecording.getRecordEnd()
- .getTime()
- -
flvRecordingMetaData.getRecordEnd().getTime();
- Float endPadding = Float
-
.parseFloat(deltaTimeEndMilliSeconds.toString()) / 1000;
+ Long deltaTimeEndMilliSeconds =
flvRecording.getRecordEnd().getTime()
+
-
flvRecordingMetaData.getRecordEnd().getTime();
+
+ Float endPadding =
Float.parseFloat(deltaTimeEndMilliSeconds.toString()) / 1000;
String[] argv_sox = new String[] {
this.getPathToSoX(),
outputGapFullWav, outputFullWav,
"pad",
@@ -339,7 +338,7 @@
log.debug("padString :: "+padString);
log.debug("END addAudioToWaves
################# ");
-
returnLog.add(GenerateSWF.executeScript("generateWave",argv_sox));
+
returnLog.add(GenerateSWF.executeScript("addStartEndToAudio",argv_sox));
//Fix for Audio Length - Invalid Audio
Length in Recorded Files
//Audio must match 100% the the Video
@@ -360,7 +359,7 @@
log.debug("audioLength "+audioLength);
- double audioShouldLength = (Math.round(
(flvRecordingMetaData.getRecordEnd().getTime() -
flvRecordingMetaData.getRecordStart().getTime()) / 1000))-2;
+ double audioShouldLength = (Math.round(
(flvRecording.getRecordEnd().getTime() -
flvRecording.getRecordStart().getTime()) / 1000))-2;
log.debug("audioShouldLength
"+audioShouldLength);
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamAudioListener.java
Sun Jan 17 07:43:00 2010
+++
/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamAudioListener.java
Thu Jan 21 07:19:17 2010
@@ -25,7 +25,7 @@
private int startTimeStamp = -1;
- private int lastTimeStamp = -1;
+ private Integer lastTimeStamp = -1;
private int lastStreamPacketTimeStamp = -1;
@@ -243,6 +243,8 @@
} else {
deltaTime = timeStamp - lastTimeStamp;
}
+
+ Long preLastTimeStamp =
Long.parseLong(lastTimeStamp.toString());
lastTimeStamp = timeStamp;
@@ -255,6 +257,7 @@
flvRecordingMetaDelta.setTimeStamp(timeStamp);
flvRecordingMetaDelta.setDebugStatus("RUN
AUDIO");
flvRecordingMetaDelta.setIsStartPadding(false);
+
flvRecordingMetaDelta.setLastTimeStamp(preLastTimeStamp);
flvRecordingMetaDelta.setOffset(this.offset);
flvRecordingMetaDelta.setIsEndPadding(false);
flvRecordingMetaDelta.setDataLengthPacket(data.limit());
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/flvrecord/FlvRecordingMetaDelta.hbm.xml
Sun Jan 17 07:43:00 2010
+++
/trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/flvrecord/FlvRecordingMetaDelta.hbm.xml
Thu Jan 21 07:19:17 2010
@@ -9,6 +9,7 @@
<property name="flvRecordingMetaDataId" type="long"
column="flvrecording_metadata_id"/>
<property name="timeStamp" type="int" column="time_stamp"/>
<property name="deltaTime" type="long" column="delta_time"/>
+ <property name="lastTimeStamp" type="long" column="last_time_stamp"/>
<property name="deltaTimeStamp" type="long" column="delta_time_stamp"/>
<property name="packetTimeStamp" type="int"
column="packet_time_stamp"/>
<property name="offset" type="long" column="offset"/>
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/flvrecord/FlvRecordingMetaDelta.java
Sun Jan 17 07:43:00 2010
+++
/trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/flvrecord/FlvRecordingMetaDelta.java
Thu Jan 21 07:19:17 2010
@@ -14,6 +14,7 @@
private Long flvRecordingMetaDataId;
private Integer timeStamp;
private Long deltaTime;
+ private Long lastTimeStamp;
private Date startTime;
private Date currentTime;
private Long deltaTimeStamp;
@@ -79,6 +80,18 @@
public void setDeltaTime(Long deltaTime) {
this.deltaTime = deltaTime;
}
+
+ /**
+ * @hibernate.property
+ * column="last_time_stamp"
+ * type="long"
+ */
+ public Long getLastTimeStamp() {
+ return lastTimeStamp;
+ }
+ public void setLastTimeStamp(Long lastTimeStamp) {
+ this.lastTimeStamp = lastTimeStamp;
+ }
/**
* @hibernate.property
@@ -270,5 +283,6 @@
public void setReceivedAudioDataLength(Long receivedAudioDataLength) {
this.receivedAudioDataLength = receivedAudioDataLength;
}
+
}
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/app/remote/FLVRecorderService.java
Mon Jan 18 11:06:41 2010
+++
/trunk/singlewebapp/src/app/org/openmeetings/app/remote/FLVRecorderService.java
Thu Jan 21 07:19:17 2010
@@ -131,9 +131,9 @@
return null;
}
- private static String generateFileName(String streamid) throws
Exception{
+ private static String generateFileName(Long flvRecording_id, String
streamid) throws Exception{
String dateString = CalendarPatterns.getTimeForStreamId(new
java.util.Date());
- return streamid+"_"+dateString;
+ return
"rec_"+flvRecording_id+"_stream_"+streamid+"_"+dateString;
}
@@ -178,7 +178,7 @@
if (rcl.getFlvRecordingId() != null &&
rcl.getScreenPublishStarted() != null && rcl.getScreenPublishStarted()) {
- String streamName_Screen =
generateFileName(rcl.getStreamPublishName().toString());
+ String streamName_Screen = generateFileName(flvRecordingId,
rcl.getStreamPublishName().toString());
Long flvRecordingMetaDataId =
this.flvRecordingMetaDataDaoImpl.addFlvRecordingMetaData(flvRecordingId,
rcl.getFirstname()+"
"+rcl.getLastname(), now,
@@ -201,7 +201,7 @@
rcl.getAvsettings().equals("a") ||
rcl.getAvsettings().equals("v")){
- String streamName =
generateFileName(String.valueOf(rcl.getBroadCastID()).toString());
+ String streamName = generateFileName(flvRecordingId,
String.valueOf(rcl.getBroadCastID()).toString());
//Add Meta Data
boolean
isAudioOnly = false;
@@ -292,7 +292,7 @@
stream.addStreamListener(new StreamAudioListener(streamName,
conn.getScope(), flvRecordingMetaDataId, isScreenData));
}
//Just for Debug Purpose
- //stream.saveAs(streamName+"_DEBUG", false);
+ stream.saveAs(streamName+"_DEBUG", false);
} catch (Exception e) {
log.error("Error while saving stream: " + streamName,
e);
}
@@ -366,7 +366,7 @@
}
// Just for Debugging
- //stream.stopRecording();
+ stream.stopRecording();
} catch (Exception err) {
log.error("[stopRecordingShow]",err);
@@ -488,7 +488,7 @@
if (rcl.getFlvRecordingId() != null &&
rcl.getScreenPublishStarted() != null && rcl.getScreenPublishStarted()) {
- String streamName_Screen =
generateFileName(rcl.getStreamPublishName().toString());
+ String streamName_Screen = generateFileName(flvRecordingId,
rcl.getStreamPublishName().toString());
log.debug("############## ADD SCREEN OF
SHARER :: "+rcl.getStreamPublishName());
@@ -513,7 +513,7 @@
rcl.getAvsettings().equals("a") ||
rcl.getAvsettings().equals("v")){
- String streamName =
generateFileName(String.valueOf(rcl.getBroadCastID()).toString());
+ String streamName = generateFileName(flvRecordingId,
String.valueOf(rcl.getBroadCastID()).toString());
//Add Meta Data
boolean isAudioOnly = false;
--
You received this message because you are subscribed to the Google Groups
"OpenMeetings developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/openmeetings-dev?hl=en.