Commit Graph

160 Commits

Author SHA1 Message Date
Calvin Walton
1390224efc RnP: Use correct dir to find presentation images 2017-08-18 16:39:18 -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
Calvin Walton
321119a79e Create a new 2.0 recording playback directory, revert 0.9.0 to old shapes code.
The new shapes code, required for handling smooth shape updates & multi-user
whiteboard in the 2.0 BigBlueButton, hits a bug in old recordings where
the pencil tool incorrectly used "line" in its shape names, meaning that
there could be both a pencil mark and a line with the same shape name.

The old recording code didn't rely on the shape name to match shapes, since
there was no chance of concurrent shapes. As this is an incompatible playback
change, we need to make a new playback directory for the updated files.
2017-08-18 11:34:15 -04:00
Calvin Walton
d24c8f8af2 RnP: BBB <0.9 also had off-by-one on the undo and clear messages 2017-08-17 15:44:13 -04:00
Calvin Walton
04002f687f Revert to the pre-2.0 capitalization of 'userid' in presenter event 2017-08-17 14:29:54 -04:00
Calvin Walton
50bf20f726 Rewrite recording processing handling of shapes, panzooms, cursor
The old code was very difficult to follow, and I couldn't figure out
a good way to retrofit the BigBlueButton 2.0 undo by shape id and clear
by user id into it - so I rewrote the entire thing instead.

It now generates the shapes.svg, panzooms.xml and cursor.xml all at the
same time during a single pass through the event.xml file. The result
is compatible with the existing recording javascript (at least once a few
minor issues in writing.js were fixed by earlier commits).
2017-08-17 13:33:00 -04:00
Calvin Walton
aac50a077e Fix dot thickness for degenerate pencil shapes 2017-08-09 14:04:17 -04:00
Calvin Walton
005965e4b1 Pencil commands are strings 2017-08-03 12:42:38 -04:00
Calvin Walton
8a36ac5469 Fix typo in 'commands' variable name 2017-08-03 12:40:56 -04:00
Calvin Walton
05d6859170 Shape commands is spelt with an s 2017-08-03 12:24:35 -04:00
Calvin Walton
98fad425aa Add path 'command' handling for BBB 2.0 smooth drawing 2017-08-03 12:17:48 -04:00
Calvin Walton
8f142b9541 Shape thickness is a percentage, not fraction 2017-08-03 11:41:28 -04:00
Calvin Walton
f6c49847fb Use new shape thickness calculation on BBB 2.0
Thickness is now fraction of page width, rather than "pixels" on
an unspecified screen size.
2017-08-03 11:21:51 -04:00
Calvin Walton
f176682abb Move the slide size storage back inside the loop 2017-08-03 10:50:14 -04:00
Calvin Walton
728eb19dc6 Fix name of 'GotoSlideEvent' 2017-08-03 10:47:30 -04:00
Calvin Walton
3f43294dc0 Fix syntax issue in presentation publish script 2017-08-03 10:40:17 -04:00
Calvin Walton
0913534108 Have presentation recording script remember current slide
This fixes recording generation on BBB 2.0, where there is no longer
an automatic GotoSlide sent after every SharePresentation
2017-08-02 17:14:29 -04:00
Pedro Beschorner Marin
15c6420e97 Merge tag 'v1.1.0' into 1.1-transcode
tagging v1.1.0 release

 Conflicts:
	bbb-common-message/src/main/java/org/bigbluebutton/common/messages/RegisterUserMessage.java
	bbb-web-api/src/main/java/org/bigbluebutton/api/messaging/RedisMessagingService.java
	bigbluebutton-client/resources/config.xml.template
	bigbluebutton-client/src/org/bigbluebutton/modules/layout/managers/LayoutManager.as
	bigbluebutton-client/src/org/bigbluebutton/modules/phone/PhoneOptions.as
	bigbluebutton-client/src/org/bigbluebutton/modules/phone/views/components/ToolbarButton.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/view/components/ScreensharePublishWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/view/components/ScreenshareViewWindow.mxml
	record-and-playback/core/scripts/rap-process-worker.rb
2017-06-13 17:44:12 +00: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
alexandre
c75a19d990 function is_video_valid returns true if video is valid 2017-05-23 17:02:26 -03:00
Felipe Cecagno
654fd8c553 fix issue introduced by last commit, in which the full path of the deskshare video file was not provided in order to check if it was a valid video or not 2017-05-16 13:55:48 -03: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
000d0a038e Fixed multiline text annotations in playback 2017-04-27 17:43:35 +00:00
Pedro Beschorner Marin
b52bf09a45 Fixed wrong font sizes and placement in playback so now they match the annotated text from the presentation 2017-04-27 17:31:48 +00:00
Pedro Beschorner Marin
d55f0dddf5 Fixed multiline text annotations in playback 2017-04-26 18:59:55 +00:00
Calvin Walton
da79ecdada Handle BBB 0.81 slide/pageNumber base mismatch
In BBB 0.81, the slide number was base 0, while the shape page number was
base 1. We already have a conditional for checking 0.9+; use that to
add a workaround for old BBB recordings.
2017-04-26 14:02:52 -04:00
Calvin Walton
a5adebd3e0 Use the presentation name/page number to match shapes to pages, not time.
The previous code assumed that if a shape event's timestamp was during the
time when a particular slide was visible, then the shape belonged to that
slide. This isn't always true with the text shapes, since a final close
event can be sent after the slide has switched.

For a more future-proof matching, use the presentation name and page number
fields on the shape events when available to match them with the appropriate
slide image.
2017-04-26 14:02:52 -04:00
Pedro Beschorner Marin
660574fcfa Fixed wrong font sizes and placement in playback so now they match the annotated text from the presentation 2017-04-26 14:18:08 +00:00
Calvin Walton
e77b50d2c6 recording presentation: Reduce the top/bottom margin so bars fit better
gnuplot's auto-margins don't work well on this graph, so manually specify
the top/bottom (actually left/right - the graph is rotated 90°) to make
the bars fit better, particularly when using wide aspect ratio slides.
2017-04-06 18:04:10 -04:00
Calvin Walton
0a1667f293 recording presentation: Correctly calculate width of bar in poll results
The code was previously dividing by the total number of votes rather than
the max number of votes, which meant it was underestimating the width of
the bars. In some cases, this meant that the label for number of votes would
overlap the percentages.

Fixes #3725
2017-04-06 14:35:31 -04: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
Pedro Beschorner Marin
490ecd2157 Reverting some modifications made in presentation publish script for deskshare video 2017-02-24 13:46:32 +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
dfa5a305cc Handling deskshare when closing meeting or stop recording
Closing the room or stopping recording with an active deskshare was producing an incorrect recording
2017-02-01 16:38:39 +00:00
Pedro Beschorner Marin
b89a31bb9a Merge remote-tracking branch 'playback-speedup' into mconf
Conflicts:
	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
	record-and-playback/presentation_export/playback/presentation_export/lib/writing.js
2017-01-26 18:10:20 +00:00
Pedro Beschorner Marin
adbb81e1c5 Cleanup 2016-12-21 18:35:21 +00:00
kreismann
f93114e207 Fixing deskshare panzooms
- Getting slide dimensions to properly set the panzoom event when deskshare stops.
- Sometimes there's a panzoom event with the deskshare image dimension at time=stop_timestamp+0.1. We remove it.
- Little refactoring
2016-12-19 15:11:32 -02:00
Pedro Beschorner Marin
8ca6ecacee Merge remote-tracking branch 'alexandrekreis/mconf' into deskshare-whiteboard 2016-12-15 17:20:08 +00:00
Pedro Beschorner Marin
ac9504fdd2 Annotations over deskshare whiteboard at playback 2016-12-15 17:19:10 +00:00
kreismann
6a29fd832e Handling deskshare on processClearEvents 2016-12-14 14:50:34 -02:00
kreismann
37660e4e13 Fixing some bugs
- Properly inserting deskshare panzoom events. We insert a panzoom event with the deskshare video dimensions and the deskshare start timestamp. Immediately, we insert another panzoom event with the previous slide dimensions and the deskshare stop timestamp, deleting any other panzoom event inside this interval of time.
- Handling when deskshare events occur in timestamp = 0.0
- For now, we are limiting the max dimensions to 1280x720
2016-12-12 16:29:06 -02:00
kreismann
be87eeddbd Creating only one image for deskshare
So we can retrieve deskshare history. Still need to adapt the size of annotations on different deskshare resolutions.
2016-12-02 17:40:50 -02:00
kreismann
6aeabb9293 Correctly handling multiple deskshare events inside a slide interval of time 2016-12-02 15:34:49 -02:00
kreismann
fe9fde2330 Getting flv resolution to set deskshare image and pan/zoom dimensions 2016-11-30 16:31:19 -02:00
kreismann
e27c291ee0 Recording playback shows whiteboard annotations on deskshare video as well
Pending issues:
- Image and ViewBox sizes are hardcoded (1280x720 - a full screen deskshare video). In order to work with region deskshare videos, we must get the flvs resolutions and set shapes.svg and panzooms accordingly.
- We're not considering the deskshare annotations history yet
2016-11-29 15:08:28 -02:00
Pedro Beschorner Marin
c8acfbf65a Getting slides associated text from a single JSON file 2016-11-29 14:00:19 +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
d2a633a27b record-and-playback: Forced alt to be included as part of the image thumbnail element in preview extension 2016-09-27 16:02:20 -04:00