You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openmeetings.apache.org by "seba.wagner@gmail.com" <se...@gmail.com> on 2012/04/08 13:53:23 UTC

Re: [jira] [Resolved] (OPENMEETINGS-138) Errors and quality of Recording with screensharing application

Hi Maxim,

will test 1) and 2) soon :)

About Point No 2):
I did not debug yet if this time is the duration that is read from the
database or the value that is read from the FLV file.

I think it is from the database. If that is the case we have wrong duration
in the database for recordings. That could have its root in wrong
timeStamps in the FLV packets while recording. That couild be a real issue
because the audio files that are mixed in the stream rely on those time
stamps.

Lets make an example scenario:
2 users in room (UserA UserB),
UserA startes the recording (audio and video already turned on)
UserB arrives in the room at: 2:00 min (time of recording) and starts audio
and video
UserB leaves at room at: 3:00 min (time of recording)
UserA stops recording at: 4:00 min (time of recording)

We need now 2 audio-only streams with exactly 4:00 minutes of length and
mix those using SoX into a single audio stream (we use WAVE format
internally for those temp audio files)
This is neccessary as you can only merge a single audio and a single video
file to a final recording with FFMPEG.

UserA has an audio file of 4:00 minutes, as he had his audio/video turned
on during the whole meeting [audio_wave_userA]
UserB has an audio file of 1:00 minute, we now add 2:00 minutes of silent
in the beginning and 1:00 min of silent at the end of this audio file using
SoX [audio_wave_userB]

Now we use sox to merge audio_wave_userA with audio_wave_userB to have the
final WAVE of exactly 4:00 minutes and merge that using FFMPEG to the final
Recording FLV and AVI.

My example scenario needs a test ... and then we will have to check if the
audio/video of UserB is still in sync or not by looking at the recording
and see if there is mismatch.

Sebastian

2012/4/8 Maxim Solodovnik (Resolved) (JIRA) <ji...@apache.org>

>
>     [
> https://issues.apache.org/jira/browse/OPENMEETINGS-138?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel]
>
> Maxim Solodovnik resolved OPENMEETINGS-138.
> -------------------------------------------
>
>    Resolution: Fixed
>      Assignee: SebastianWagner
>
> I have fixed everything except for 2). Hope it will fix automatically
> after ScreenSharing codec modified to be more memory efficient.
>
> Sebastian, can you take a look, how good it is now?
>
> > Errors and quality of Recording with screensharing application
> > --------------------------------------------------------------
> >
> >                 Key: OPENMEETINGS-138
> >                 URL:
> https://issues.apache.org/jira/browse/OPENMEETINGS-138
> >             Project: Openmeetings
> >          Issue Type: Bug
> >            Reporter: SebastianWagner
> >            Assignee: SebastianWagner
> >             Fix For: 2.0 Apache Incubator Release
> >
> >         Attachments: flvRecording_3.avi, flvRecording_3.flv
> >
> >
> > Settings in the screensharer is "High"
> > 1) The quality of the AVI is really bad. FLV is good. The AVI recording
> gets bad after roughly 15 seconds. It starts good but then gets uggly.
> > Attached a sample recording avi and flv.
> > 2) The recordings have the wrong length (both AVI and FLV) show 2:13 as
> overall length, while the movie actually is only ~ 1:16 (which is right! I
> did not record more then that)
> > 3) Sometimes you can see those logs in the Java Console of the
> Screensharing app.
> > It _seems_ to have no actual effect to the data.
> > java.nio.BufferOverflowException
> >       at java.nio.HeapByteBuffer.put(Unknown Source)
> >       at
> org.apache.mina.core.buffer.AbstractIoBuffer.put(AbstractIoBuffer.java:637)
> >       at
> org.apache.mina.core.buffer.AbstractIoBuffer.put(AbstractIoBuffer.java:1340)
> >       at
> org.openmeetings.screen.webstart.CoreScreenShare.pushVideo(CoreScreenShare.java:1113)
> >       at
> org.openmeetings.screen.webstart.CoreScreenShare$CaptureScreen.run(CoreScreenShare.java:1198)
> >       at java.lang.Thread.run(Unknown Source)
> > java.nio.BufferOverflowException
> >       at java.nio.HeapByteBuffer.put(Unknown Source)
> >       at
> org.apache.mina.core.buffer.AbstractIoBuffer.put(AbstractIoBuffer.java:637)
> >       at
> org.apache.mina.core.buffer.AbstractIoBuffer.put(AbstractIoBuffer.java:1340)
> >       at
> org.openmeetings.screen.webstart.CoreScreenShare.pushVideo(CoreScreenShare.java:1113)
> >       at
> org.openmeetings.screen.webstart.CoreScreenShare$CaptureScreen.run(CoreScreenShare.java:1198)
> >       at java.lang.Thread.run(Unknown Source)
> > java.nio.BufferOverflowException
> >       at java.nio.HeapByteBuffer.put(Unknown Source)
> >       at
> org.apache.mina.core.buffer.AbstractIoBuffer.put(AbstractIoBuffer.java:637)
> >       at
> org.apache.mina.core.buffer.AbstractIoBuffer.put(AbstractIoBuffer.java:1340)
> >       at
> org.openmeetings.screen.webstart.CoreScreenShare.pushVideo(CoreScreenShare.java:1113)
> >       at
> org.openmeetings.screen.webstart.CoreScreenShare$CaptureScreen.run(CoreScreenShare.java:1198)
> >       at java.lang.Thread.run(Unknown Source)
> > java.nio.BufferOverflowException
> >       at java.nio.HeapByteBuffer.put(Unknown Source)
> >       at
> org.apache.mina.core.buffer.AbstractIoBuffer.put(AbstractIoBuffer.java:637)
> >       at
> org.apache.mina.core.buffer.AbstractIoBuffer.put(AbstractIoBuffer.java:1340)
> >       at
> org.openmeetings.screen.webstart.CoreScreenShare.pushVideo(CoreScreenShare.java:1113)
> >       at
> org.openmeetings.screen.webstart.CoreScreenShare$CaptureScreen.run(CoreScreenShare.java:1198)
> >       at java.lang.Thread.run(Unknown Source)
> > java.nio.BufferOverflowException
> >       at java.nio.HeapByteBuffer.put(Unknown Source)
> >       at
> org.apache.mina.core.buffer.AbstractIoBuffer.put(AbstractIoBuffer.java:637)
> >       at
> org.apache.mina.core.buffer.AbstractIoBuffer.put(AbstractIoBuffer.java:1340)
> >       at
> org.openmeetings.screen.webstart.CoreScreenShare.pushVideo(CoreScreenShare.java:1113)
> >       at
> org.openmeetings.screen.webstart.CoreScreenShare$CaptureScreen.run(CoreScreenShare.java:1198)
> >       at java.lang.Thread.run(Unknown Source)
> > java.nio.BufferOverflowException
> >       at java.nio.HeapByteBuffer.put(Unknown Source)
> >       at
> org.apache.mina.core.buffer.AbstractIoBuffer.put(AbstractIoBuffer.java:637)
> >       at
> org.apache.mina.core.buffer.AbstractIoBuffer.put(AbstractIoBuffer.java:1340)
> >       at
> org.openmeetings.screen.webstart.CoreScreenShare.pushVideo(CoreScreenShare.java:1113)
> >       at
> org.openmeetings.screen.webstart.CoreScreenShare$CaptureScreen.run(CoreScreenShare.java:1198)
> >       at java.lang.Thread.run(Unknown Source)
>
> --
> This message is automatically generated by JIRA.
> If you think it was sent incorrectly, please contact your JIRA
> administrators:
> https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
> For more information on JIRA, see: http://www.atlassian.com/software/jira
>
>
>


-- 
Sebastian Wagner
https://twitter.com/#!/dead_lock
http://www.openmeetings.de
http://www.webbase-design.de
http://www.wagner-sebastian.com
seba.wagner@gmail.com