Commit Graph

730 Commits

Author SHA1 Message Date
Calvin Walton
eedbafa94f Adjust recording system to archive, but not process, recordings with no marks
This allows them to be preserved for a period of time, rather than be
deleted immediately. Useful for recovering recordings when someone forgot
to press the record button during the session.
2015-03-11 13:40:56 -04:00
Felipe Cecagno
9edb77fff1 Merge branch '090-encrypted-recording' into mconf-live0.6.2 2015-02-05 14:33:21 -02:00
Felipe Cecagno
91067c5172 handling the case when the getRecordings url for the mconf-decrypter is not set 2015-02-05 14:32:48 -02:00
Felipe Cecagno
e8f4e55d5f updating the mconf logo on presentation_export 2015-02-02 20:50:12 -02:00
Felipe Cecagno
c6c3122afa Merge branch '090-presentation-export' into mconf-live0.6.2 2015-02-02 20:36:15 -02:00
Felipe Cecagno
4f46e37727 changing permissions of the presentation export zipped file 2015-02-02 20:36:06 -02:00
Felipe Cecagno
cb50a8a304 Merge branch '090-presentation-export' into mconf-live0.6.2 2015-02-02 14:06:40 -02:00
Felipe Cecagno
ad25125b19 reverted back the previous implementation of presentation_export as process/publish scripts instead of just one publish script; now rap-worker cleans the workspace when the presentation format is published, so presentation dependet formats can execute in the next run 2015-02-02 14:06:20 -02:00
Felipe Cecagno
d1bcfe9189 do not run the publish script if the process script failed 2015-02-02 13:59:29 -02:00
Felipe Cecagno
1de10b2339 protect rap-worker to write the processing_time file when the directory isn't there yet 2015-02-02 13:58:57 -02:00
Calvin Walton
c90e5f8990 Skip the 'ser' repair if there are no webcam videos
This was causing the sanity check to fail.
2015-01-30 10:11:44 -05:00
Calvin Walton
c6f976db4b Attempt to repair red5 'ser' files in sanity script 2015-01-27 14:01:29 -05:00
Felipe Cecagno
a7e286ae33 Merge branch '090-mconf-branding' into mconf-live0.6.2 2015-01-25 12:00:59 -02:00
Felipe Cecagno
0843ec1361 Merge branch '090-mconf-branding' into HEAD
Conflicts:
	bigbluebutton-client/locale/ru_RU/bbbResources.properties
	bigbluebutton-config/web/default.pdf
2015-01-25 11:59:45 -02:00
Felipe Cecagno
38e27ecfca Merge branch '090-presentation-export' into mconf-live0.6.2
Conflicts:
	record-and-playback/deploy.sh
2015-01-23 14:50:06 -02:00
Felipe Cecagno
871705d38a cleanup 2015-01-23 14:17:07 -02:00
Felipe Cecagno
1255f4520f made presentation_export a post_publish script 2015-01-23 14:11:45 -02:00
Felipe Cecagno
b3daaf72b3 Merge branch 'presentation-export' into 090-presentation-export 2015-01-22 15:58:16 -02:00
Felipe Cecagno
2761c31e52 Merge branch '090-encrypted-recording' into mconf-live0.6.2
Conflicts:
	bbb-video/build.gradle
	bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/meeting/messaging/redis/MeetingMessageHandler.java
	bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/service/participants/ParticipantsListener.java
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/CollectorActor.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/MeetingActor.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/api/InMessages.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/api/MessageNames.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/api/OutMessages.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/api/ValueObjects.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/apps/users/UsersApp.scala
	bigbluebutton-client/branding/default/style/css/BBBDefault.css
	bigbluebutton-client/locale/de_DE/bbbResources.properties
	bigbluebutton-client/locale/en_US/bbbResources.properties
	bigbluebutton-client/locale/pt_BR/bbbResources.properties
	bigbluebutton-client/src/org/bigbluebutton/main/views/LoadingBar.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatBox.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatView.mxml
	bigbluebutton-config/web/index.html
	bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy
	bigbluebutton-web/grails-app/services/org/bigbluebutton/web/services/PresentationService.groovy
2015-01-21 18:11:56 -02:00
Felipe Cecagno
8e12c909c5 Merge branch '090-encrypted-recording' into HEAD
Conflicts:
	bigbluebutton-web/src/java/org/bigbluebutton/api/MeetingService.java
	record-and-playback/core/Gemfile
	record-and-playback/deploy.sh
2015-01-21 15:51:29 -02:00
Felipe Cecagno
12f7aacf4b Merge remote-tracking branch 'bigbluebutton/master' into mconf-live0.6.1
Conflicts:
	bigbluebutton-client/locale/fr_CA/bbbResources.properties
	bigbluebutton-client/resources/config.xml.template
	bigbluebutton-client/src/org/bigbluebutton/main/views/RecordButton.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/chat/maps/ChatEventMap.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/chat/model/ChatConversation.as
	bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatBox.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatView.mxml
2014-12-09 16:52:43 -02:00
Calvin Walton
65bb9ce47e recording: Strip out the 'event:' from the beginning of urls in chat 2014-12-08 11:43:26 -05:00
Felipe Cecagno
f077cc1f98 do not generate a .fail file during the archive phase if no recording marks were detected 2014-11-26 15:37:19 -02:00
Felipe Cecagno
6b863595b2 removing the keys during the archive phase if there's no recording marks in the recording 2014-11-26 12:06:15 -02:00
ern
7bf4a81039 checkUrl returns true for only 200 status 2014-11-25 13:11:57 -05:00
Felipe Cecagno
a3acb00893 Merge remote-tracking branch 'bigbluebutton/master' into mconf-live0.6.1
Conflicts:
	bbb-video/build.gradle
	bbb-video/src/main/java/org/bigbluebutton/app/video/VideoApplication.java
	bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/business/VideoProxy.as
	bigbluebutton-config/web/default.pdf
2014-11-22 20:28:39 -02:00
ern
8c023cbebd Any 200 status in checkUrl should be valid 2014-11-18 09:00:27 -05:00
Calvin Walton
213dc07c19 Merge pull request #428 from mconf/rap-publish-events
Rap publish events
2014-11-14 12:08:44 -02:00
Felipe Cecagno
1c143c74a1 refactored rap-worker so variable names make more sense than before 2014-11-13 23:10:22 -02:00
Calvin Walton
3e8019f5a0 Delete the 'slides' processing scripts
The slides processing scripts have never been updated for 0.9.0 events,
and probably never will be. They're still using older video/audio
processing apis that have poor sync, too. Just remove them.

The playback support files will still be installed, to allow recordings
from old BigBlueButton servers to be copied to a 0.9.0 server.
2014-11-13 11:15:43 -02:00
Felipe Cecagno
0cefee5534 now the rap scripts publish to redis pubsub (channel bigbluebutton:from-rap) when a rap phase begins and ends - it includes archive, sanity, post_archive, process, post_process, publish and post_publish; if there's more than one workflow, it should work without any modification 2014-11-12 17:28:33 -02:00
Felipe Cecagno
f52a0299a6 fixed the deploy script used to deploy the rap dev environment 2014-11-12 17:21:54 -02:00
Felipe Cecagno
b451b4cf84 removed god code on the record scripts 2014-11-12 17:20:10 -02:00
Fred Dixon
9cdc47d16d Merge pull request #426 from kepstin/recording-updates-2
Load bigbluebutton.yml from current path
2014-11-12 16:30:34 -02:00
Calvin Walton
30fdd13af8 Load bigbluebutton.yml from current path 2014-11-12 16:25:52 -02:00
Fred Dixon
48b9c5a01d Merge pull request #403 from kepstin/recording-updates-2
Version the playback files for the presentation recording format
2014-11-12 16:02:13 -02:00
Calvin Walton
98efa28316 Add a script to handle updating links in existing recordings
This adds the version number to the playback links so that
recordings select the correct version-specific playback support
files.

This script may be run automatically during upgrade; in that
case it should be run like

.../bbb-0.9-beta-recording-update --quiet

After copying recordings from an old BigBlueButton server, you
may want to manually re-run the script, and it takes the option
--force to recheck all recordings even if it has previously been
run.
2014-11-12 15:54:45 -02:00
Fred Dixon
fd06539c43 Merge pull request #423 from kepstin/recording-updates
Add delay before recording archiving to workaround Red5 race
2014-11-12 12:18:32 -02:00
Calvin Walton
961898c1e9 Add delay before recording archiving to workaround Red5 race
Right now there is a possibility that the rap-worker process might
see the recording.done file (written by bbb-web) prior to Red5 having
completed writing the video files to disk.

This happens most often when a meeting end api request is sent while a
webcam is visible.

Add a delay (currently 2 minutes) before the archive scripts are run
to work around the issue. Real fix is far more complicated...
2014-11-12 11:13:57 -02:00
Felipe Cecagno
3db4ead6e4 Merge branch '090-listen-only-by-default' into mconf-live0.6.1
Conflicts:
	bigbluebutton-client/locale/ru_RU/bbbResources.properties
	bigbluebutton-client/src/org/bigbluebutton/main/views/AudioSelectionWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/main/views/MainApplicationShell.mxml
2014-10-15 00:22:27 -03:00
Richard Alam
8f38fa1f30 - find audio wav files even if they are located in sub dirs 2014-10-08 13:50:41 -07:00
Calvin Walton
49b66d6eb6 Fix publish step failing when multiple recordings processed in one run
The logic for deleting the process done files was wrong, resulting in
the script (attempting and failing) deleting all of the done files for
all of the processed recordings after the publish completes for one of
them.

Fix the logic to only delete the process done file for the recording that
just completed publishing.
2014-10-08 11:08:22 -04:00
Calvin Walton
1078aef49d Add a note to the nginx config to tell 0.9.0 beta users of a possible upgrade path 2014-10-06 17:30:32 -04:00
Calvin Walton
630ef4c72c Move 0.81 files to a subdir, add nginx redirect for them.
Now the 0.81 presentation playback files are in an appropriate versioned
directory. If desired, the recording metadata can be updated to reference
the versioned files directly, but an nginx redirect has been added so
that unmodified recordings will also work.
2014-10-06 17:17:20 -04:00
Calvin Walton
8673d353bb Use the directory presentation/0.9.0 instead of presentation2
This makes it a bit more obvious how the versioning can work going
forwards, and makes it so that we do not need to update the nginx
config each time we have a new version of the playback files.

The 0.81 files remain at the top level of the presentation directory
for compatibility reasons.
2014-10-06 16:46:55 -04:00
Calvin Walton
852ea7b822 Revert 'presentation' dir to 0.81 code, add 'presentation2' for 0.9
This fixes an issue where recordings copied from a 0.81 server might
not play back correctly on a 0.9 server.

This changes the 0.9 recording scripts to use playback support files
from a different subdirectory, 'presentation2', while existing 0.81
recordings continue to use the 'presentation' directory.

If the raw files from an old recording are reprocessed, it will
switch to using the newer playback support files.
2014-10-06 16:15:25 -04:00
Felipe Cecagno
59debc5d1e Merge branch '090-mconf-branding' into mconf-live0.6.1 2014-10-05 23:32:43 -03:00
Felipe Cecagno
015d708d7c Merge branch 'mconf-branding-0.81' into 090-mconf-branding
Used the following command to comment the default copyright label for all languages except en_US
find -name bbbResources.properties | xargs sed -i "s:^\(bbb.mainshell.copyrightLabel2.*\):# \1:g"

Conflicts:
	bigbluebutton-client/resources/prod/MconfLive.html
	bigbluebutton-client/src/BigBlueButton.mxml
	record-and-playback/presentation/playback/presentation/playback.html
2014-10-05 19:36:43 -03:00
Felipe Cecagno
56f20fa5d3 Merge branch '090-encrypted-recording' into HEAD
Conflicts:
	bigbluebutton-web/src/java/org/bigbluebutton/api/MeetingService.java
2014-09-10 17:27:47 -03:00
Felipe Cecagno
c1f3b2c5c7 a few tweaks to fit the new rap worker 2014-09-10 17:23:17 -03:00
Calvin Walton
72fc36caef Actually fix slide indexes.
While the page numbers from BigBlueButton are zero-based, the slide images
are generated as 1-based.
2014-09-09 17:15:57 -04:00
Calvin Walton
c7967810b2 Revert the presentation publish page index altering
This was added because BigBlueButton 0.9 started using 1-based page
numbers in the events.xml file. That change has been reverted, so as
to avoid behaviour changes from 0.81 in places where it's unnecessary.
2014-09-02 15:46:52 -04:00
Felipe Cecagno
f68b0e4a16 cleanup 2014-09-01 17:53:57 -03:00
Felipe Cecagno
dd97b8f80c Merge branch 'encrypted-recording' into 090-encrypted-recording
Conflicts:
	bigbluebutton-web/src/groovy/org/bigbluebutton/api/RecordingServiceHelperImp.groovy
	bigbluebutton-web/src/java/org/bigbluebutton/api/MeetingService.java
2014-09-01 16:46:03 -03:00
Calvin Walton
15fe621523 Use the timestamp from the meeting ID to calculate the real start time
With the switch to a different clock source in red5, the timestamps
in the events file are no longer real-time, but are rather in
seconds since computer boot.

The timestamp in the meeting id is still realtime, so use that as
the start time. Calculate the end time by adding the meeting length
to the start time.
2014-08-29 11:19:59 -04:00
Calvin Walton
913f4a59a0 Switch recording processing to use poppler instead of ghostscript 2014-08-28 14:52:23 -04:00
Calvin Walton
b03dbfe577 RaP: video processing robustness improvements
Makes it handle possibly corrupted video files with less chance of
breakage. Use features from newer ffmpeg release to simplify the video
trimming - in particular, using -ss as an input option is accurate now.
2014-08-28 13:07:26 -04:00
Calvin Walton
614617c2b9 Add the 'mkclean' step for audio-only recordings 2014-08-25 11:22:55 -04:00
Calvin Walton
48735ccc70 Set the audio 'original duration' during initial events parsing
This is the point at which the start/stop events for the audio are
correctly matched up with eachother; doing it later can give
incorrect results if an 'end recording' event was missing from
the events file.
2014-08-25 10:48:17 -04:00
Calvin Walton
c1bb493c10 Fix the 'timestretch' fixup so that seeking is done after stretching
The previous version may have the beginning of the audio off by a bit,
since it was seeking in the audio file to find the start before the
stretch was applied.
2014-08-22 17:07:07 -04:00
Calvin Walton
e5b5b5d49d Increase the audio bitrate in the video generation
Matches the corresponding change in the audio generation.
2014-08-22 16:58:31 -04:00
Calvin Walton
45162ce620 Explicitly use out0 in degenerate concat branch.
There is no i variable here, since there aren't multiple inputs to loop
over.
2014-08-22 16:43:35 -04:00
Calvin Walton
d53e7d21f3 Don't use the ffmpeg concat filter when only one audio segment
The concat filter requires at least 2 segments, it doesn't support
the degenerate case.
2014-08-22 16:41:16 -04:00
Calvin Walton
0841dd4233 Vorbis needs more bitrate for input with higher sample rate/stereo 2014-08-22 16:14:35 -04:00
Calvin Walton
2ac9de71a7 Use the correct timestamp for file start seek 2014-08-22 15:17:10 -04:00
Calvin Walton
7b205bdbf7 Rewrite audio processing to use ffmpeg
There's some fairly major changes here, including:

* All audio is resampled to 48kHz stereo on input, allowing files with
  non-standard or varying rates to be mixed
* The audio processing is now done in a single pass; ffmpeg reads all
  inputs, concatenates them, and outputs one file.
2014-08-22 15:04:14 -04:00
Richard Alam
c56fde0c42 Merge pull request #348 from speakserve/unify-version-number
Unify version number
2014-08-13 14:17:45 -04:00
Ghazi Triki
bb09eb6d75 After checking we bumped projects version and Flex locales to 0.9.0 with some fixes 2014-08-13 12:20:10 +01:00
Ghazi Triki
9a794f854a Bumped projects version and Flex locales to 0.9 2014-08-13 10:28:08 +01:00
Calvin Walton
8f7bf010fd Switch "post" scripts to be a drop-in directory. 2014-08-11 14:57:32 -04:00
Ghazi Triki
ac7af7dfea Manually bumped all application version to the correct actual version 0.9.0-dev 2014-07-31 17:42:38 +01:00
Calvin Walton
c73fe81e50 rap-worker: Add /usr/local/bin to the path. 2014-07-28 11:02:38 -04:00
Calvin Walton
c82a25f700 recording: Add a 'mkclean' step to video generation
The 'mkclean' tool reorganizes the encoded webm file to optimize it for
streaming. In particular, it moves the index to the start of the file.

This fixes streaming in Chrome, which otherwise had a very long delay
before playback started since it downloaded until it saw the index
before it started playback.

This needs a new dependency added to the bbb-record-core package to
pull in the mkclean tool.
2014-07-23 09:55:03 -04:00
Calvin Walton
86e8394e70 rap-worker: Ensure status directories are created
In some cases, it was attempting to create a status file in a directory
that did not exist yet.
2014-07-23 09:50:52 -04:00
Calvin Walton
11045c7f4a rap-worker: Set log level to 'INFO'
I had it on DEBUG temporarily for testing. The old version used ERROR,
but this made it print virtually no output which made diagnosing
issues difficult.
2014-07-21 15:00:29 -04:00
Calvin Walton
b91a54afa0 record core: Remove hardcoded ffmpeg path
The ffmpeg binary should be looked up using the normal PATH mechanism,
it might not always be installed in the same place.
2014-07-21 14:59:33 -04:00
Calvin Walton
efb44c9dd9 Rewrite rap-worker script in an optimized fashion
It now does much less directory reading, and performance should
scale far better with large numbers of recordings.

Semantics should be mostly unchanged, but there's greater use
of '.fail' files to mark errors, and '.done' files are now removed
after all of the following processing steps complete.

The rap worker no longer relies on processing scripts leaving
behind empty directories; those are now removed where appropriate.
2014-07-21 14:58:46 -04:00
Gustavo Salazar
67422a4450 set version in archive 2014-05-06 17:15:10 -05:00
Gustavo Salazar
fb013e751f support bbb_version in events.xml 2014-05-06 14:42:03 -05:00
Gustavo Salazar
ab648a5f73 pass only meeting id to post publish script 2014-05-05 18:27:26 -05:00
Gustavo Salazar
6a47005f34 spinner in playback while loading media 2014-04-30 17:35:53 -05:00
Gustavo Salazar
efda95fed6 delete temp files 2014-04-29 10:33:23 -05:00
Gustavo Salazar
b1e82fe58d post scripts for record and playback 2014-04-24 19:08:06 -05:00
Gustavo Salazar
7d291abcfd delete old raw dir from published recordings 2014-04-14 15:14:14 -07:00
Gustavo Salazar
4989b195f4 set absolute path to ffmpeg 2014-04-07 12:14:47 -07:00
Richard Alam
460dfb52bf - modify scripts so we can run it manually 2014-04-03 20:23:49 +00:00
Gustavo Salazar
ff96b6a97a absolute path to ffmpeg and ffprobe. 2014-03-31 18:13:52 -05:00
Fred Dixon
332824a42c Fixes so rap-worker.rb executes 2014-03-26 23:52:59 +00:00
Calvin Walton
7b48cacb59 Reverse the check for http response code.
There are many codes other than '404' which indicate that the media
file is not present or otherwise unusable. Instead of checking for
a particular failure mode, check for explicit success.

I ran into this on a server that had directory listing disabled, and
returned a 403 (access denied) error on non-existant files.
2014-03-05 14:42:08 -05:00
Gustavo Salazar
99866d43a7 Print audio file name with problems. 2014-01-30 10:45:43 -05:00
Gustavo Salazar
8a32c657d5 Handle negative index in slide number.
Related to issue #1710
2014-01-23 16:36:28 -05:00
Gustavo Salazar
614cbdde92 Fix #1711
Support pdf extension in uppercase https://code.google.com/p/bigbluebutton/issues/detail?id=1711
2014-01-23 14:03:09 -05:00
Felipe Cecagno
98f1d51461 fixing the handling of multiple drawings from a single shape
bug could be easily reproduced typing text, erase part of it and then type again
2014-01-14 18:17:39 -02:00
Felipe Cecagno
3440ed0fe3 Merge branch 'v0.81' into record-button
Conflicts:
	bigbluebutton-client/branding/default/style/css/BBBDefault.css
	bigbluebutton-client/src/org/bigbluebutton/main/views/MainToolbar.mxml
2014-01-14 14:05:41 -02:00
Felipe Cecagno
dab7547014 added a check on presentation publish script to avoid the duplication of thumbnails for a given slide 2013-12-02 15:23:02 -02:00
Felipe Cecagno
955f9edc99 fixing the issue of the whiteboard annotations not being shown in the proper slide; cleaning the environment (events.xml, recorded flag) when the session was recorded but the record button wasn't used 2013-12-02 13:57:05 -02:00
Calvin Walton
1d488e3c56 Last-ditch fix for missing presentation images
We can only get here if all of the files for the presentation are
*completely* missing. One thing that can cause this is if the
presentation filename starts with a '.' character - the presentation
files aren't correctly archived then.
2013-10-31 18:56:09 -02:00
Richard Alam
e220f120cc Merge pull request #280 from kepstin/firefox-audio-seek
Switch the order of the audio formats on firefox playback
2013-10-23 13:59:49 -07:00
Calvin Walton
4a45b3610b Switch the order of the audio formats on firefox playback
Firefox has a bug where it can't seek in the audio-only webm files with
no cues, and it seems like they have no intention of fixing this...
Serve up the ogg files first for them.

Adding cues to audio-only webm files is *hard*, there are no standard
tools that support doing this cleanly.
2013-10-23 16:35:21 -04:00
Calvin Walton
e6fe43f9b6 Fix a logger method call in presentation script
This shouldn't normally be hit... but if it ever is, the processing will
fail with an error, since the Logger class doesn't have a method named
'warning'.
2013-10-23 10:01:02 -04:00