Commit Graph

203 Commits

Author SHA1 Message Date
Calvin Walton
c44d94b498 Workaround video sync issue due to red5 timestamp offset
Red5 sometimes writes webcam video files with a large offset in the
video frame offsets, sometimes up to 30 or even 60 seconds. However,
the start event in the events.xml file corresponds to the time at
which red5 received the first keyframe (recorded frame) in the video.

The end result is that the video will sometimes appear to be
delayed (out of sync) in the processed recording.

The correction is simple: We're already reading video metadata,
including the timestamp of the first frame, so we just have to apply
a correction during video processing to undo the frame timestamp
offsets in the video file.
2018-02-12 10:22:36 -08:00
Calvin Walton
d35dd90530 Applying segment breaks after recording marks doesn't work
The timestamps no longer line up after applying one edit, so these
have to be all done at the same time in one step.
2017-11-09 13:48:27 -05:00
Calvin Walton
eeb171cfc8 Add helper function that applies chapter breaks to record start/stop
This allows re-using some existing start/stop supporting processing
scripts to generate chapter recordings.
2017-11-08 13:49:24 -05:00
Calvin Walton
e2b40cc5bd Rework a bunch of the code to avoid repeatedly reparsing the events.xml 2017-11-08 10:12:25 -05:00
Calvin Walton
35f7f425e2 Fix break detection in events 2017-11-07 09:52:50 -05:00
Calvin Walton
9add60d81b Fix a bunch of bugs found when testing the archive code 2017-11-06 15:22:43 -05:00
Calvin Walton
5bb5cbcd0e Have archive script check whether a particular segment is recorded
It previously checked whether any part of the entire meeting was recorded.
Helper functions are added to look up the time of segment start and end
(which handle non-segmented recordings correctly too).
Part of the events handling code was rewritten to reduce the number of times
that the events.xml file gets parsed.
2017-11-03 16:12:05 -04:00
Calvin Walton
f9c4843f28 Cleanups, initial work on checking for segment recorded status. 2017-11-03 15:17:04 -04:00
Calvin Walton
f5cd1628e0 Trim events list after archive, make archive fail block future segments 2017-11-03 11:16:44 -04:00
Calvin Walton
2c4cadf459 Delete event data from redis after archive writes xml
Todo: we also need to remove the events from the meeting event list
2017-11-03 10:27:52 -04:00
Calvin Walton
a78997d1a1 Work in progress on segment archiving 2017-11-01 12:31:07 -04:00
Calvin Walton
0affb6a36e Make progressive archiving of media files work.
Switch to using rsync to archive video directories, with the -t option
so it'll only update modified/new files.
2017-10-30 15:04:30 -04:00
Calvin Walton
e37db34eb4 Correctly handle a recording start being the last event in a recording.
In some unusual cases, the recording start can be the last event in the
events file, or at least have the same timestamp as such.

Add some code to check the array bounds and break if needed, so we
don't check the timestamp on the (non-existant) event after the last
event.
2017-10-02 12:31:31 -04:00
Calvin Walton
3f1fb1dc31 Handle recordings that have an unmatched DeskshareStartedEvent
The previous code looked for stop events and tried to find their
associated start event. This obviously doesn't work if there was
no stop event. But if there was a start event, we need to show the
deskshare… so rework to code to try to find the matching stop to each
start instead, and use the end of the meeting if no matching stop was
found.
2017-09-13 17:17:17 -04:00
Calvin Walton
399b1cb543 RnP: Don't fail processing if an image can't be converted to png 2017-09-05 11:21:16 -04:00
Calvin Walton
dba5cd9196 Various recording script fixes & cleanups
This is just a bundle of a few things I've been fixing up in the past
while.

= Workaround for BBB 1.1 beta deskshare timestamp bug

This is unlikely to be used, but I have the code for it, might as
well merge it in.

= Rework video tiling code for ffmpeg

Render video using the 'hstack' and 'vstack' filters rather than the
'overlay' filter. This is somewhat faster, particularly with lots of
videos.

= Etc.

- Remove usage of the streamio-ffmpeg gem.
  The video rendering code has some stuff to directly read 'ffprobe'
  output, so re-use that instead of this gem (which is kind of old and
  has issues with newer ffmpeg versions).

- Don't hardcode the deskshare video area size, pull it from the
  properties file

- Remove some code that worked around missing video end events.
  In some cases this could cause flickering or strange video issues.
  It's no longer strictly needed, the new tiling code doesn't break if
  the seekpoint is after the end of the video.
2017-08-18 15:24:54 -04:00
Pedro Beschorner Marin
719ef1377a Merge remote-tracking branch 'mconf' into merging-into-bbb-1.1
Conflicts:
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/MeetingActor.scala
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/api/ValueObjects.scala
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/UsersApp.scala
	bbb-video/src/main/java/org/bigbluebutton/app/video/VideoApplication.java
	bbb-video/src/main/java/org/bigbluebutton/app/video/converter/VideoRotator.java
	bigbluebutton-client/locale/en_US/bbbResources.properties
	bigbluebutton-client/locale/pt_BR/bbbResources.properties
	bigbluebutton-client/resources/prod/MconfLive.html
	bigbluebutton-client/src/org/bigbluebutton/common/Images.as
	bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/utils/BrowserCheck.as
	bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/utils/JavaCheck.as
	bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/view/components/DesktopPublishWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/PresentationWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/users/views/UsersWindow.mxml
	bigbluebutton-config/bin/bbb-conf
	record-and-playback/core/lib/recordandplayback/generators/audio_processor.rb
	record-and-playback/core/lib/recordandplayback/generators/video.rb
	record-and-playback/core/scripts/rap-worker.rb
	record-and-playback/presentation/playback/presentation/0.9.0/lib/writing.js
	record-and-playback/presentation/scripts/process/presentation.rb
	record-and-playback/presentation/scripts/publish/presentation.rb
2017-06-07 19:31:15 +00:00
Felipe Cecagno
9f6ef49847 check if the deskshare video file is valid before processing it 2017-05-07 19:12:34 -03:00
Pedro Beschorner Marin
cab466e926 Merge pull request #399 from fcecagno/fix-deskshare-ser
recording: Run the 'ser' fixup tool on deskshare videos, too
2017-04-17 13:59:11 -03:00
Calvin Walton
d00024d569 recording: also archive .flv.ser files from deskshare directory 2017-04-16 17:28:37 -03:00
alexandre
f8c976fd54 Certifying that we process the audio before getting it in AudioProcessor 2017-04-13 17:23:13 -03:00
alexandre
cf176a6990 Saving processed audio and using it to process webcam videos
Webcam videos processing was processing the audio again.
2017-04-13 15:58:17 -03:00
Pedro Beschorner Marin
f59e42bb02 Merge remote-tracking branch 'bigbluebutton/master' into merging-into-bbb-1.1 2017-04-04 20:42:15 +00:00
Pedro Beschorner Marin
0592568ac8 Adding back some methods that were excluded from master but we were using for screenshare's playback annotations 2017-03-22 17:31:35 +00:00
Pedro Beschorner Marin
0ab207c997 Merge remote-tracking branch 'mconf/mconf' 2017-03-21 19:47:11 +00:00
Pedro Beschorner Marin
c74cc682c4 Merge remote-tracking branch 'mconf/mconf' 2017-03-20 19:45:59 +00:00
Richard Alam
72c42f9d70 - build get recordings api response 2017-03-13 21:43:39 +00:00
Richard Alam
4e59521268 - store breakout metadata and breakout rooms in events.xml only if they are present. 2017-03-10 19:39:20 +00:00
Richard Alam
71bcd779b7 - process breakout rooms in events.xml and metadata.xml 2017-03-09 23:01:15 +00:00
Pedro Beschorner Marin
3e43602b33 Changed deskshare start/stop matching method 2017-02-23 20:17:16 +00:00
Pedro Beschorner Marin
6787915e0e Refactored deskshare video recording 2017-02-23 18:21:10 +00:00
alexandre
f39874ac9b Returning number of users that participated in each meeting in getRecordings call
Resolves #3623
2017-02-10 16:19:32 -02:00
Calvin Walton
c885fc3ec4 recording: also archive .flv.ser files from deskshare directory 2017-01-20 13:34:16 -05:00
Calvin Walton
b2c1f00356 Merge pull request #3472 from jfederico/fix-recording-preview-alt-error
record-and-playback: Fixed issue with text gathered from slids used o…
2016-12-07 11:30:59 -05:00
Calvin Walton
bd8baed660 Fix typo in recording sanity script.
This caused it to think all video files were corrupt.
2016-11-21 15:01:54 -05:00
jfederico
161cab8234 record-and-playback: Fixed issue with text gathered from slids used on preview 2016-11-17 15:59:07 -05:00
Fred Dixon
0b9fc8b143 Merge pull request #3434 from kepstin/recording-cleanup
RnP: Improve error handling in video_info, audio_info functions
2016-11-11 12:14:55 -05:00
jfederico
737697968c record-and-playback: Removed preview extension (thumbnails) from recordings when only has default presentation 2016-11-07 18:50:28 +00:00
jfederico
64a4f4dc08 record-and-playback: Encoded text coming from the slide for being used in thumbnails 2016-10-27 17:35:58 -04:00
Richard Alam
ece6edcb12 - fix check for breakout room
- insert breakout metadata into events.xml
 - delete breakout metadata from redis
2016-10-21 19:05:30 +00:00
kreismann
73603d5d68 Presentation area of the recording playback also shows deskshare video
This is a demo. Some issues:

- When sharing desktop, cursor is still relative to slides, and not to deskshare video;
- Need to show whiteboard canvas on top of deskshare video as well;
- Need more testing (audio/video sync, playback perfomance, multiple presenters and multiple deskshare events).
2016-10-20 17:39:35 -02:00
jfederico
1a4438d459 record-and-playback: Fixed issue with presentations containing less than 3 slides 2016-09-27 15:19:53 -04:00
jfederico
78cb599a5b record-and-playback: removed text element from extension preview 2016-09-22 13:11:01 -04:00
jfederico
e0b6a9ebf8 recording-and-playback: Removed log used for debugging 2016-09-21 17:31:40 -04:00
jfederico
59c67809d0 recording-and-playback: Added alt text to the preview per slide 2016-09-21 16:39:32 -04:00
Pedro Beschorner Marin
694c9564a5 Added record_id to redis recording events 2016-09-21 20:12:57 +00:00
Pedro Beschorner Marin
49d5f9c41c Refactored redis recording events 2016-09-21 16:32:11 +00:00
jfederico
8adf729e0f recording-and-playback: Added general text to the preview 2016-09-20 16:46:45 -04:00
jfederico
45ba7d85c2 record-and-playback: Filtered presentation files to provide only the first thumbnail for default.pdf 2016-09-20 14:10:28 -04:00
Calvin Walton
ef607f0e44 RnP: Improve error handling in video_info, audio_info functions 2016-09-20 13:22:50 -04:00