Commit Graph

1005 Commits

Author SHA1 Message Date
Calvin Walton
11da0b61e0 Update caption track generation based on feedback
I've had a chance to see how this script behaves with actual live
caption tracks now, and there's room for improvement. In particular,
it often generates cues that overlap - the next one appears before the
previous one disappears. The browser player position handles this
really poorly, and it's nearly unreadable.

The solution is to, if two cues would overlap, merge them into a
single multiline cue that displays for the full time. This is a lot
easier to read.

Some extra code is added to de-overlap any remaining cues (e.g. if
there's a third cue that would also overlap). This will reduce the
time that the earlier cue gets shown below my preferred minimum, but
not really much we can do about that if people are talking/typing
quickly.

The code can easily be tweaked to set a different number of maximum
lines per cue if desired.
2017-06-06 09:24:14 -04:00
alexandre
cbd01875b9 Storing meeting duration
We were getting the duration with a Popcorn temporary instance. This was causing a slowly increase on the cpu usage, which could compromise the performance of long recordings.
2017-06-02 15:45:09 -03:00
Felipe Cecagno
6dd0641de2 disable padding on body to handle the case when the playback is embedded in a third party app with a header 2017-05-31 20:37:57 -03:00
alexandre
fc3c6134a7 Reverting shapes drawing refactoring
There are some cases in which annotations does not appear. It needs more testing.
2017-05-30 14:51:20 -03:00
alexandre
d7b38ced81 Removing deskshare intervals in the slide aspect calculations
Deskshare has it own functions to set its aspect. We were causing wrong annotations positioning as well as wrong slide resizing.
2017-05-30 14:39:55 -03:00
Felipe Cecagno
e45fd8794a Merge branch 'mconf' of github.com:alexandrekreis/bigbluebutton into mconf 2017-05-24 16:54:36 -03:00
alexandre
c75a19d990 function is_video_valid returns true if video is valid 2017-05-23 17:02:26 -03:00
Ghazi Triki
7d283cd154 Merge remote-tracking branch 'bigbluebutton/master' into merge-master-into-2x
# Conflicts:
#	bigbluebutton-client/resources/config.xml.template
#	bigbluebutton-client/src/org/bigbluebutton/modules/phone/PhoneOptions.as
#	bigbluebutton-client/src/org/bigbluebutton/modules/phone/views/components/ToolbarButton.mxml
#	record-and-playback/core/scripts/rap-process-worker.rb
2017-05-22 17:35:24 +01:00
alexandre
155cc4edad Video sync mechanism refactoring
- Created function "seySync( )" which sets the sync logic. Basically, we sync all medias when pausing the master video. We pause the master video when any video receives a waiting event, or when the master video is seeked. If necessary, we resume playing after the sync.

- Refactored when 'media-ready' event is fired.  We fire this event only when the medias receive a 'canplayall' event.
2017-05-18 18:05:49 -03:00
alexandre
81b2242055 Improving playback performance and video sync
- Popcorn "onFrame" method runs around 6 times per second. That was unnecessary , causing the CPU work to significantly increase, and preventing the two videos (deskshare and webcam) to run together smoothly

- We only synchronize the medias if one of them fires a "waiting" event. If the user pauses the playback, we synchronize them as well.
2017-05-16 18:34:10 -03:00
alexandrekreis
6a497c27f8 Merge pull request #4 from pedrobmarin/shapes-drawing
Refactored shapes drawing
2017-05-16 17:31:05 -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
Pedro Beschorner Marin
8ec81f84d4 Refactored shapes drawing 2017-05-15 21:07:42 +00:00
Calvin Walton
da79d1e3b3 rap-process-worker: Write processing_time file only if processing succeeded
If processing didn't succeed, the directory where it is trying to write
the file might not exist, causing an exception in the worker which leads
to it getting stuck in a retry loop.
2017-05-08 16:10:59 -04:00
Felipe Cecagno
9f6ef49847 check if the deskshare video file is valid before processing it 2017-05-07 19:12:34 -03:00
Richard Alam
c733f4eafc Merge branch 'master' of https://github.com/bigbluebutton/bigbluebutton into bbb-2.x-dev-mconf 2017-04-27 14:52:47 -07: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
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
Richard Alam
262c7250c8 Merge branch 'master' with bbb-mconf 2017-04-17 15:57:31 +00:00
Calvin Walton
d00024d569 recording: also archive .flv.ser files from deskshare directory 2017-04-16 17:28:37 -03:00
Calvin Walton
f5731b74c5 recording: Run the 'ser' fixup tool on deskshare videos, too
Since the deskshare videos are saved in flv files by red5, they can
have the same partially written file issue as seen on webcams.
2017-04-16 17:20:43 -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
c45e14e185 Alexandre's fit-to-width height scaling fix 2017-04-11 20:50:53 +00:00
Pedro Beschorner Marin
086ea510c4 Avoid keeping unwanted annotations when seeking over the playback. This fixes a major bug but loses some of the smoothness that I could't avoid 2017-04-11 20:47:30 +00:00
Felipe Cecagno
0253fd5a38 improve readability; fix indentation 2017-04-07 22:16:36 -03:00
Felipe Cecagno
287395454a Merge remote-tracking branch 'alexandre/mconf' into mconf 2017-04-07 22:11:38 -03:00
alexandre
2dd61df1c6 Handling fit-to-width events in recording playback
The playback had no handling for this type of event. The aspect ratio used to calculate the max-width of the slide div has to be the vbox aspect ratio.
2017-04-07 17:09:54 -03: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
f59e42bb02 Merge remote-tracking branch 'bigbluebutton/master' into merging-into-bbb-1.1 2017-04-04 20:42:15 +00:00
Pedro Beschorner Marin
84fd8d4101 Branding back to BigBlueButton and adding back some of the client images we removed. This need to be reviewed to avoid having all this unused images! 2017-04-03 17:06:16 +00:00
Felipe Cecagno
2b9dcc37de process recordings in chronological order 2017-04-01 20:00:37 -03:00
Chad Pilkey
1e4baeaffa fix the recording play button to work with devices that have touch and a mouse 2017-03-23 15:38:28 -04:00
Fred Dixon
cd491c67b6 Moved the recording systemd scripts into the core directory 2017-03-23 10:36:10 -05:00
Calvin Walton
dd23536c84 record-and-playback: Split rap-worker into separate workers per step.
The purpose of this is to ensure that the recording processing with make
visible forwards progress, by ensuring that different steps in the
recording pipeline don't block each-other.

This fixes:
- recordings being processed prevent archiving new recordings from running
- recordings can't be published until all pending recording processing
  completes

It does allow recording archive, sanity, process, publish steps to run in
parallel with each other, but at most one recording will be in each step at
a time. (I.e. while one recording is being processed, a different recording
can be published). This may potentially increase CPU usage for some users.
If you expect this to be a problem, you can set resource controls (see
`man systemd.resource-control`) on the bbb_record_core.slice systemd unit.
2017-03-22 17:20:29 -04:00
Pedro Beschorner Marin
38aef723d7 Updating presentation_export with closed caption feature 2017-03-22 19:20:20 +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
3c397d8d71 - fix copying of meeting element into metadata.xml 2017-03-15 09:45:58 -07: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
Fred Dixon
5eea825e7f Merge pull request #3695 from kepstin/presentation-question-mark
Correctly use jquery to modify links in chat messages.
2017-03-01 14:39:57 -05:00
Calvin Walton
e782709913 Correctly use jquery to modify links in chat messages.
The code was previously passing the message string provided by the user
directly to jQuery - which works okish if the first character is '<' since
it'll parse it as HTML, but the chat messages don't. As a result, it was
sometimes being parsed as a selector, failing, and raising an exception.

The fix is to put the chat message into a DOM node (have the browser parse
the HTML) before doing the jQuery operation to modify the link targets.

Fixes #3670
2017-03-01 10:38:39 -05:00
Pedro Beschorner Marin
d7a0493da4 Updated presentation_export 2017-02-24 20:03:47 +00:00
Felipe Cecagno
c8a91bc6d4 avoid breaking if there's no deskshare.xml in the published presentation recording
Conflicts:
	record-and-playback/presentation/playback/presentation/0.9.0/lib/writing.js
2017-02-24 19:54:40 +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
ccd4bc4268 Removing timeline attribute for deskshare video
We don't need it. This causes duplicate chat messages in recording playback.
2017-02-16 17:24:33 -02:00
Pedro Beschorner Marin
7a4cd67fc3 Adjusting playback to work with old recordings 2017-02-14 13:52:44 +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
Richard Alam
d26c6d5305 Merge pull request #3581 from kepstin/sanity-deskshare-fixup
recording: Run the 'ser' fixup tool on deskshare videos, too
2017-02-02 11:45:36 -05: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
efb9082b9d Hiding deskshare cursor 2017-02-01 14:15:55 +00:00
Pedro Beschorner Marin
b91535741b Refactored canvas handling 2017-01-31 14:06:38 +00:00
Pedro Beschorner Marin
0647cdf3b1 Fixed NPE and did some cursor drawing refactoring at playback 2017-01-31 13:45:43 +00:00
Pedro Beschorner Marin
91092e066a Fixed playback when there is no deskshare canvas 2017-01-27 17:01:59 +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
alexandre
b19ce7f714 In recording playback, chat links open in a new tab
Fixes #3590
2017-01-25 18:21:49 -02:00
Calvin Walton
c885fc3ec4 recording: also archive .flv.ser files from deskshare directory 2017-01-20 13:34:16 -05:00
Calvin Walton
f7f3b79ae4 recording: Run the 'ser' fixup tool on deskshare videos, too
Since the deskshare videos are saved in flv files by red5, they can
have the same partially written file issue as seen on webcams.
2017-01-20 13:23:36 -05:00
alexandre
ac094aa89a Restoring annotations when swapping presentation with video
Fixes #3561
2017-01-13 17:03:05 -02:00
alexandre
dde5f23188 Fixing misalignment when swapping presentation with video
To swap presentation with video we need to retrieve what was the current viewbox size and set it again.

Fixes #3545
2017-01-11 18:05:30 -02:00
Calvin Walton
b077d48644 Drop chrome frame support
Chrome frame has been discontinued for quite a while. The playback code actually
does work in IE if you install an extra codec pack or switch the video format used.
2017-01-06 10:31:29 -05:00
Calvin Walton
dadeb40fa0 Add a callback to sync popcorn initialization after video element is ready.
Due to the extra delays added by setting up the closed captions, it happens more
often that the writing.js code will attempt to initialize popcorn on the video
element before the video element actually exists on the page.

(This was always a problem, it's just worse now)

Add a synchronization point which will delay the popcorn initialization until the
video element is ready.
2017-01-06 10:30:31 -05:00
Calvin Walton
2aa3ebb16b "use strict"; should never be used at top level in a JS file
This can create weird conflicts when using other libraries
2017-01-06 10:19:38 -05:00
Pedro Beschorner Marin
e5f6ce8185 Make sure to create video element before running Popcorn 2017-01-03 13:13:36 +00:00
Pedro Beschorner Marin
adbb81e1c5 Cleanup 2016-12-21 18:35:21 +00:00
Pedro Beschorner Marin
85fdf9c79f Updated presentation_export with new deskshare features 2016-12-21 17:26:11 +00:00
Pedro Beschorner Marin
9646bd4cef Fixed annotations to work with Chrome 2016-12-21 16:47:42 +00:00
kreismann
4e2dc4077a Fixing deskshare video positioning
This also fixes deskshare video/user video swap on playback.
2016-12-20 13:36:02 -02: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
0223faec5a Positioning cursor over deskshare whiteboard on the playback 2016-12-16 12:49:46 +00: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
Jesus Federico
62bd4a587c Merge pull request #3489 from kepstin/gen-webvtt-iterparse
gen_webvtt: Parse entire events file, instead of iterparse
2016-12-07 11:38:14 -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
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
Calvin Walton
fb3a913b5b gen_webvtt: Parse entire events file, instead of iterparse
The iterparse mode doesn't correctly handle long multi-byte UTF-8
characters with some versions of lxml library or libxml version.
2016-12-02 14:33:06 -05:00
kreismann
6aeabb9293 Correctly handling multiple deskshare events inside a slide interval of time 2016-12-02 15:34:49 -02:00
Pedro Beschorner Marin
5563e607fc Changed loading bar theme 2016-12-02 13:50:00 +00:00
Pedro Beschorner Marin
0248d42179 Updated presentation_export with new deskshare features, loading bar and JSON slides text file 2016-12-01 20:04:06 +00:00
Pedro Beschorner Marin
e5c48cb7be Replaced the playback spinner for a loading bar and included a not-found meeting fallback page 2016-12-01 18:13:26 +00:00
kreismann
fe9fde2330 Getting flv resolution to set deskshare image and pan/zoom dimensions 2016-11-30 16:31:19 -02:00
Pedro Beschorner Marin
b762795cc9 Cleanup 2016-11-29 17:33:05 +00: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
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