Calvin Walton
e034b9c7ae
Fix handling webcam videos that end early in recording processing
...
In some cases (due to network issues), the webcam video can be shorter
than the time between the start/stop events. Pad the input video with a
blank video to make sure that there's input to the video tiling filters,
to fix a problem where the video won't render correctly with ffmpeg v3.4
and later.
2018-05-07 13:21:11 -04:00
Felipe Cecagno
77d620a721
Fix recording events when there's screenshare AND webcams together
2018-04-26 01:24:41 +00:00
Lucas Fialho Zawacki
80562ac25c
Merge branch 'webrtc-webcams' of https://github.com/kepstin/bigbluebutton into html5-video-recording
2018-04-25 20:02:45 +00:00
Calvin Walton
954ee4fc18
Events code doesn't know where archive dir is
2018-04-25 15:08:35 -04:00
Calvin Walton
9ada59d1c4
Fix more variable references in screenshare events
2018-04-25 15:04:01 -04:00
Lucas Fialho Zawacki
419adcf926
Merge branch 'webrtc-webcams' of https://github.com/kepstin/bigbluebutton into html5-video-recording
2018-04-25 18:30:43 +00:00
Calvin Walton
cd3e28a08c
Fix some errors in screenshare archive/sanity
2018-04-25 14:28:37 -04:00
Lucas Fialho Zawacki
c0b3003918
Merge branch 'webrtc-webcams' of https://github.com/kepstin/bigbluebutton into html5-video-recording
2018-04-25 16:02:30 +00:00
Calvin Walton
ca0156d423
Support WebRTC screenshare in get events functions
2018-04-25 11:55:02 -04:00
Calvin Walton
39e981a7f2
Include webrtc screenshare streams in edl for video rendering
2018-04-25 11:44:23 -04:00
Fred Dixon
7f0d8db451
Merge pull request #5392 from kepstin/recording-webcam-fix
...
Fix handling webcam videos that end early in recording processing
2018-04-24 17:01:47 -04:00
Calvin Walton
8e0a79014f
Fix handling webcam videos that end early in recording processing
...
In some cases (due to network issues), the webcam video can be shorter
than the time between the start/stop events. Pad the input video with a
blank video to make sure that there's input to the video tiling filters,
to fix a problem where the video won't render correctly with ffmpeg v3.4
and later.
2018-04-24 16:58:14 -04:00
Calvin Walton
ce84c5517b
Include webrtc webcams in recording processing
2018-04-24 15:20:35 -04:00
Calvin Walton
cafa9fd822
Rework audio processing to avoid seeking past end of file
...
In some cases when there is a slight mismatch between audio file
duration and event timestamp difference, and we have a record
status or chapter break event in a certain location, it could
trigger a seek past the end of an audio file. Detect this
condition and just render silence instead.
Also adjust the thresholds for the audio length scaling - they
were being triggered on short recordings that should be correct.
2018-02-13 12:45:58 -08:00
Calvin Walton
e30d5e3940
Rework audio processing to avoid seeking past end of file
...
In some cases when there is a slight mismatch between audio file
duration and event timestamp difference, and we have a record
status or chapter break event in a certain location, it could
trigger a seek past the end of an audio file. Detect this
condition and just render silence instead.
Also adjust the thresholds for the audio length scaling - they
were being triggered on short recordings that should be correct.
2018-02-12 16:33:37 -05:00
Richard Alam
bca27c4838
Merge pull request #5136 from kepstin/segmented-recording
...
Archive events.xml file in a concurrency-friendly way.
2018-02-12 14:28:37 -05:00
Calvin Walton
c1258ed387
Archive events.xml file in a concurrency-friendly way.
...
With the current segment processing, we might be processing one segment
while archiving a different segment from the same recording. To avoid
that the processing scripts see an incomplete events.xml file, write to
a temp file then rename.
2018-02-12 14:04:46 -05:00
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
0701bf87a8
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 11:54:18 -05: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
ab1019bf14
Set up rap publish/process scripts for segments
2017-11-07 11:50:28 -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
Leonardo Crauss Daronco
af87bc2d3f
Merge remote-tracking branch 'upstream/master' into v1.1.0-rap-on-resque
2017-10-09 16:37:28 -03: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
Leonardo Crauss Daronco
5aeeee25fd
Move rap archive to resque, first step on moving all steps to resque
...
For now the differences are that the archive worker will run inside
resque (it is a resque worker now) and there is a "rap-trigger" file that
is executed by systemd to detect recordings that need to be archived and
add a job on resque to archive them.
The process os scheduling jobs still needs to be reviewed, but for now will
be done by rap-trigger.
2017-07-13 14:36:43 -03: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
Calvin Walton
c730681183
Improve detection of corrupt videos via ffprobe
2016-09-06 18:15:31 -04:00
Calvin Walton
f112be7638
Fix errors in recording scripts.
...
Logger was apparently imported by the matterhorn stuff ?! so move that
to the main library.
Fix a variable reference in sanity.
2016-09-03 16:08:32 -04:00
Calvin Walton
8ede6d06ee
Remove a few matterhorn references that were missed.
2016-09-02 17:45:10 -04:00
Calvin Walton
2cd9565d52
Improve wave length guessing
...
Instead of assuming that wav files have 44 byte headers (they usually
don't - freeswitch adds some metadata tags), add a super-simple wave
file parser that just finds the offset where the audio data actually
starts.
2016-09-02 16:40:27 -04:00
Calvin Walton
f815fd0d70
Remove a bunch of unused/old audio processing code.
...
The sanity check script was using one of the functions; it's been
changed to use a function from the EDL audio code instead.
2016-09-02 16:40:27 -04:00
Calvin Walton
b4d902cd9a
Drop old/broken matterhorn script, and old video processing code.
2016-09-02 16:40:27 -04:00
Calvin Walton
ab0dac1192
Don't appy recording marks twice to audio
2016-08-12 15:53:56 -04:00
Calvin Walton
e4735a12b3
Various updates to the rnp edl handling
...
Main change is to rewrite the start/stop event handling to do fewer
passes and use simpler logic (it no longer has to track durations).
The temporary work audio codec is switched to flac; slightly lower hard
drive use and it avoids the 4-hour length limit of wav.
Some improvements to the video seeking when processing deskshare and
webcam videos, to avoid video dropouts.
Tweaks to the audio encoding quality settings.
Remove an unused function.
2016-08-12 14:17:51 -04:00
Calvin Walton
bfb987dc01
Make shape rendering in presentation recordings closer to live BBB
2016-08-12 11:53:01 -04:00
Calvin Walton
b589c25831
Fix reference to deleted 'webrtc_deskshare_archiver'
2016-08-02 14:31:20 -04:00
Calvin Walton
d4e7605f42
RnP: Fix use of deprecated IO#lines in logging functions
2016-08-02 10:58:42 -04:00
Anton Georgiev
c2e6fb9a72
undo some of the webrtc ds record changes
2016-05-18 17:34:30 +00:00
Anton Georgiev
92d6351c55
undo some of the webrtc ds record changes
2016-05-18 17:21:15 +00:00
Felipe Cecagno
de75b79eab
changed the method of pack and unpack the encrypted format, from zip to tar, and making it by an external command instead of doing it in ruby (more efficient)
2015-12-15 16:45:22 -02:00
Felipe Cecagno
7a182e67b6
Merge branch 'feature-1734' into mconf-live0.7.3 (refs #1734 )
2015-10-23 12:47:08 -02:00
Felipe Cecagno
c3c4a9c64c
extracted the custom hash class to a different file, loaded by recordandplayback.rb; removed the hardcoded path to /var/bigbluebutton/published/presentation because it can change, and it's always different depending on the playback format (refs #1734 )
2015-10-23 12:46:26 -02:00
Anton Georgiev
8e407df405
Merge branch 'master' of github.com:bigbluebutton/bigbluebutton into webrtc-desktop-temp-1
...
Conflicts:
akka-bbb-apps/build.sbt
akka-bbb-fsesl/build.sbt
bbb-common-message/build.sbt
bigbluebutton-apps/build.gradle
2015-10-22 20:46:30 +00:00
Felipe Cecagno
83ae244485
Merge branch 'mconf-live0.7.1-ssl' into mconf-live0.7.3
2015-10-19 11:49:36 -02:00
Felipe Cecagno
7069a4a6d7
Recording: Also tell ffmpeg to ignore the length of the intermediate wav file
2015-10-16 14:09:32 -04:00
Felipe Cecagno
762d1e9a56
another patch to fix the long wav files problem
2015-10-16 14:53:20 -03:00
Calvin Walton
fe8cf13b11
Convert audio_size to a number before subtracting header size
2015-10-15 15:11:45 -03:00
Calvin Walton
43e943d61d
Need to convert bit_rate to an integer
2015-10-15 15:11:44 -03:00
Calvin Walton
30e6a98a8b
Fix some reference errors in wav detection
2015-10-15 15:11:44 -03:00
Calvin Walton
8332daf093
record-and-playback: Handle FreeSWITCH wav files >4GB
...
FreeSWITCH writes wav files >4GB long with incorrect values in the length
field in the header. Recalculate the length based on file size, and ensure
that ffmpeg reads the complete audio file rather than stopping.
2015-10-15 15:11:44 -03:00
Anton Georgiev
6b8626d40f
cleaning up and reverting unnecessary config
2015-09-29 16:03:40 +00:00
Anton Georgiev
1d1c8a421b
deskshare edl for webrtc
2015-09-28 20:49:24 +00:00
Calvin Walton
a6d6001040
Convert audio_size to a number before subtracting header size
2015-09-25 14:11:25 -04:00
Calvin Walton
d44b458b49
Need to convert bit_rate to an integer
2015-09-25 14:08:17 -04:00
Anton Georgiev
366b01fff7
webrtc deskshare work on recording scripts
2015-09-25 18:05:54 +00:00
Calvin Walton
530799776d
Fix some reference errors in wav detection
2015-09-25 14:01:30 -04:00
Calvin Walton
1dcd49e180
record-and-playback: Handle FreeSWITCH wav files >4GB
...
FreeSWITCH writes wav files >4GB long with incorrect values in the length
field in the header. Recalculate the length based on file size, and ensure
that ffmpeg reads the complete audio file rather than stopping.
2015-09-24 15:54:20 -04:00
Felipe Cecagno
ed366e6b21
Merge branch '090-recordings-size' into mconf-live0.7.3
...
Conflicts:
bigbluebutton-web/src/java/org/bigbluebutton/api/MeetingService.java
bigbluebutton-web/src/java/org/bigbluebutton/api/domain/Recording.java
2015-09-08 17:43:20 -03:00
Felipe Cecagno
32957898f6
refactored part of the bbb-0.9-recording-size code in order to include the size on the download size for mconf_encrypted and the playback size for the others; included raw_size for all available formats
2015-09-08 17:18:02 -03:00
Pedro Beschorner Marin
cbfe8b8859
Added an update script for sizes injection in old recordings metadata and some refactoring
2015-06-10 17:07:11 +00:00
Pedro Beschorner Marin
9932a4c4fe
Fixing metadata.xml identation
2015-06-10 00:39:55 +00:00
Pedro Beschorner Marin
f8ff4a6725
Injecting format size in metadata.xml
2015-06-09 21:06:57 +00:00
Pedro Beschorner Marin
6ef2bf6b27
Getting playback and full meeting published sizes
2015-06-09 14:39:35 +00:00
Pedro Beschorner Marin
4225a87abd
Refactoring and cleanup
2015-06-04 16:03:20 +00:00
Felipe Cecagno
7cb12f8b49
Merge branch 'mconf-live0.6.3' into bigbluebutton/bigbluebutton@v0.9.0-release
...
Conflicts:
bbb-api-demo/src/main/webapp/demo10_helper.jsp
bbb-video/build.gradle
bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/BigBlueButtonApplication.java
bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/BigBlueButtonSession.java
bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/meeting/messaging/red5/ConnectionInvokerService.java
bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/service/participants/ParticipantsApplication.java
bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/service/participants/ParticipantsHandler.java
bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/service/participants/ParticipantsListener.java
bigbluebutton-apps/src/main/java/org/bigbluebutton/core/api/IBigBlueButtonInGW.java
bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/api/ValueObjects.scala
bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/apps/users/UsersApp.scala
bigbluebutton-apps/src/main/webapp/WEB-INF/red5-web.xml
bigbluebutton-client/locale/bg_BG/bbbResources.properties
bigbluebutton-client/locale/cs_CZ/bbbResources.properties
bigbluebutton-client/locale/cy_GB/bbbResources.properties
bigbluebutton-client/locale/de_DE/bbbResources.properties
bigbluebutton-client/locale/en_US/bbbResources.properties
bigbluebutton-client/locale/es_419/bbbResources.properties
bigbluebutton-client/locale/es_ES/bbbResources.properties
bigbluebutton-client/locale/et_EE/bbbResources.properties
bigbluebutton-client/locale/fa_IR/bbbResources.properties
bigbluebutton-client/locale/fr_CA/bbbResources.properties
bigbluebutton-client/locale/fr_FR/bbbResources.properties
bigbluebutton-client/locale/hu_HU/bbbResources.properties
bigbluebutton-client/locale/hy_AM/bbbResources.properties
bigbluebutton-client/locale/it_IT/bbbResources.properties
bigbluebutton-client/locale/ms_MY/bbbResources.properties
bigbluebutton-client/locale/no_NO/bbbResources.properties
bigbluebutton-client/locale/pl_PL/bbbResources.properties
bigbluebutton-client/locale/pt_BR/bbbResources.properties
bigbluebutton-client/locale/ru_RU/bbbResources.properties
bigbluebutton-client/locale/sk_SK/bbbResources.properties
bigbluebutton-client/locale/tr_TR/bbbResources.properties
bigbluebutton-client/locale/uk_UA/bbbResources.properties
bigbluebutton-client/locale/zh_CN/bbbResources.properties
bigbluebutton-client/resources/config.xml.template
bigbluebutton-client/resources/prod/MconfLive.html
bigbluebutton-client/resources/prod/bbb-deskshare-applet-0.9.0.jar
bigbluebutton-client/resources/prod/bbb-deskshare-applet-unsigned-0.9.0.jar
bigbluebutton-client/resources/prod/lib/bbb_api_bridge.js
bigbluebutton-client/resources/prod/lib/bbb_webrtc_bridge_sip.js
bigbluebutton-client/resources/prod/lib/deployJava.js
bigbluebutton-client/src/org/bigbluebutton/main/api/ExternalApiCallbacks.as
bigbluebutton-client/src/org/bigbluebutton/main/model/modules/ModulesDispatcher.as
bigbluebutton-client/src/org/bigbluebutton/main/model/users/NetConnectionDelegate.as
bigbluebutton-client/src/org/bigbluebutton/main/views/AudioSelectionWindow.mxml
bigbluebutton-client/src/org/bigbluebutton/main/views/CameraDisplaySettings.mxml
bigbluebutton-client/src/org/bigbluebutton/main/views/MainApplicationShell.mxml
bigbluebutton-client/src/org/bigbluebutton/main/views/VideoHolder.mxml
bigbluebutton-client/src/org/bigbluebutton/main/views/WebRTCEchoTest.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/deskshare/view/components/DesktopPublishWindow.mxml
bigbluebutton-client/src/org/bigbluebutton/modules/layout/views/LayoutsCombo.mxml
bigbluebutton-client/src/org/bigbluebutton/modules/phone/PhoneOptions.as
bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/FlashCallManager.as
bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/WebRTCCallManager.as
bigbluebutton-client/src/org/bigbluebutton/modules/phone/views/components/ToolbarButton.mxml
bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/FileUploadWindow.mxml
bigbluebutton-client/src/org/bigbluebutton/modules/users/services/MessageReceiver.as
bigbluebutton-client/src/org/bigbluebutton/modules/users/views/MediaItemRenderer.mxml
bigbluebutton-client/src/org/bigbluebutton/modules/users/views/UsersWindow.mxml
bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/business/VideoWindowItf.as
bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/ToolbarButton.mxml
bigbluebutton-client/src/org/bigbluebutton/modules/videodock/views/VideoDock.mxml
bigbluebutton-config/web/index.html
bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy
bigbluebutton-web/src/java/org/bigbluebutton/api/MeetingService.java
2015-05-17 19:25:26 -03:00
Calvin Walton
c96f9f0cfe
Add a function to compare BBB version numbers
...
This can be used to check if e.g. recording is from a 0.9.0 or newer server
2015-04-14 17:33:49 -04:00
Calvin Walton
694213cf9b
Recording: Fix video EDL merge function on EDLs with recording marks applied
...
If the video EDL merge function is applied to an EDL that has already
been edited to apply recording marks, the merge function will change the
video start times to incorrect values on edit points during the timestamp
recalculation.
The fix is pretty simple; just pull in the timestamps from the entry that's
being merged in and apply them to the relevant videos.
This bug doesn't currently cause any issues in the BigBlueButton recording
scripts, since the existing code does the merge before the start/stop marks
are applied. But to avoid surprises later, it would be good to fix this.
2015-03-23 11:10:43 -04: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
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
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
Richard Alam
8f38fa1f30
- find audio wav files even if they are located in sub dirs
2014-10-08 13:50:41 -07: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
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
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
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
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
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
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
Calvin Walton
de0bac6f76
Skip corrupt/empty audio files when processing recording.
...
Now when an empty/corrupt audio file is detected, it will be replaced
with silence.
2013-10-18 11:39:03 -04:00
Calvin Walton
8facc0899e
Check for corrupt video files, don't attempt to render them
...
A corrupt video file is defined as one where ffprobe either finds no
video stream, or it finds a video stream but cannot read any frames.
2013-10-11 11:19:40 -04:00
Richard Alam
92a31599f9
Merge pull request #270 from kepstin/presentation-resiliance
...
Make generation of png images for pdf pages more resiliant.
2013-10-04 12:50:22 -07:00
Calvin Walton
420b0b5573
Make generation of png images for pdf pages more resiliant.
...
We now use ghostscript to output pngs directly from the original pdf,
rather than using convert on the split pages. This should make corrupt
or strange pdfs less likely to cause issues.
As well, if a pdf page conversion fails (for any reason, including that
the original pdf is missing...) it will be logged, and a blank page
generated, and processing will continue.
2013-10-04 15:25:13 -04:00
Felipe Cecagno
8830951ac0
to specify the duration on ffmpeg we use -t instead of -to
2013-10-04 11:04:21 -03:00
Felipe Cecagno
00d0eb7b43
we only to the match between the video events and the record status events AFTER the webcam and deskshare merge
2013-10-04 11:03:49 -03:00
Gustavo Salazar
5dff55fb13
remove audio extension in webcam processing for matterhorn
2013-10-03 13:50:31 -05:00
Felipe Cecagno
d8b3375f48
we don't want to archive recordings in which there's no mark to start the recording; it would be the same as if the meeting would be created with record=false - the only difference is that the events are archived to recordings/raw/meeting_id/events.xml, and the recorded .done flag is created as well
2013-10-02 14:18:26 -03:00
Gustavo Salazar
ca6e32bc93
separate scaling and padding commands for deskshare
2013-10-01 17:11:23 -05:00
Gustavo Salazar
cfc6b3385b
set sample rate
2013-10-01 17:05:55 -05:00
Gustavo Salazar
5d5d135557
set video quality
2013-10-01 16:53:39 -05:00
Felipe Cecagno
9a2c605866
Merge branch 'master' into multicamera-0.81
...
Conflicts:
bigbluebutton-client/branding/default/style/css/BBBDefault.css
bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/maps/VideoEventMapDelegate.as
2013-09-29 21:19:29 -03:00
Guilherme Augusto Dias
00d4c69f78
Fix audio processing issue
...
Fix an issue that occurs on processing recordings with no audio
2013-09-27 19:26:33 +00:00
Felipe Cecagno
32b52fefb8
start and stop recording marks are being considered in all medias (audio, video and deskshare); still needs to figure out the inconsistency when the last participant leaves the conference while it's being recorded, but couple of seconds later another participant joins the meeting; the problem is that after the last user leaves the conference, the scope is deleted so the recording flag is lost, and when the scope is created again, the recording flag has the default value, that is false; also, what should we do if the user doesn't click on the recording button? how to differentiate recordings made in a version with or without the recording button?
2013-09-25 00:34:15 -03:00
Felipe Cecagno
cf8b31591c
this commit is an unfinished work; the new code that generates the audio and video files in the recording is being adapted to take into account the recording marks; the audio is done, but video and desktop sharing is still missing
2013-09-24 18:03:12 -03:00
Felipe Cecagno
aa597fe985
Merge branch 'master' of https://github.com/bigbluebutton/bigbluebutton into record-button-client
...
Conflicts:
bigbluebutton-client/branding/default/style/css/BBBDefault.css
bigbluebutton-client/src/org/bigbluebutton/main/views/MainToolbar.mxml
record-and-playback/core/lib/recordandplayback.rb
record-and-playback/core/lib/recordandplayback/generators/audio_processor.rb
record-and-playback/core/lib/recordandplayback/generators/events.rb
record-and-playback/core/lib/recordandplayback/generators/video.rb
record-and-playback/presentation/scripts/publish/presentation.rb
2013-09-24 15:03:44 -03:00
Felipe Cecagno
33d98bbff2
implemented the record button both client-side and server-side; still needs more work on the processing scripts; still needs to update the record button icons
2013-09-23 18:33:30 -03:00
Felipe Cecagno
54a34b4475
Merge branch 'record-button' of github.com:fcecagno/bigbluebutton into record-button
...
Conflicts:
record-and-playback/core/lib/recordandplayback/generators/events.rb
2013-09-18 18:02:18 -03:00
Calvin Walton
ca9a4c2b92
Bump the max difference for audio stretch up to 5%
2013-08-26 13:33:23 -04:00
Calvin Walton
c2884bdb9d
Add missing license header to edl.rb
2013-08-26 11:44:22 -04:00
Calvin Walton
42e195bbe8
Rewrite the audio/video encoding components for BigBlueButton.
...
I've been working on this for a while, and it's adapted from code that
has been fairly well-tested on a wide variety of recordings. I've found
it to do a more accurate job of combining multiple webcam files, and it
should be more accurate in the audio as well.
Another key feature is that it does fewer re-encoding steps during video
processing, which should both speed it up and hopefully improve quality.
The settings on the VP8 encoder have been tuned somewhat as well.
2013-08-26 11:20:33 -04:00
Calvin Walton
0fa60e2bc3
Use the old sox trim syntax for the version on ubuntu lucid
2013-08-15 13:36:52 -04:00
Calvin Walton
6b56c4103d
Correct variable name to refer to original audio length
2013-08-15 13:34:19 -04:00
Calvin Walton
d2afbe9383
Convert timestamps to numbers for subtraction
2013-08-15 13:30:36 -04:00
Calvin Walton
acbd0e5b7e
Stretch freeswitch audio to match event timing
...
This helps maintain audio sync with video and events when freeswitch's
internal timing differs from red5's.
2013-08-14 17:25:10 -04:00
Guilherme Augusto Dias
daa32dab41
Fix slicing process
...
Fix events timestamp and duration
2013-08-01 13:59:02 +00:00
Guilherme Augusto Dias
dc249bf347
Slice timeline
...
Slice timeline according to START/STOP record events
2013-07-29 16:45:56 +00:00
Calvin Walton
a5091ba3e8
RaP: Remove the ffmpeg version check, hardcode arguments for 0.11+
...
For BigBlueButton 0.81, we just require that you install ffmpeg 0.11.x
for recordings to function correctly. I'll also add a check to bbb-conf
to verify that the correct ffmpeg is available.
2013-07-23 15:46:47 -04:00
Guilherme Augusto Dias
04ff2f2074
Slicing audio events list
...
The event processing method slices the audio events list according to record events
2013-07-18 14:53:33 +00:00
Guilherme Augusto Dias
f0a86a8ae9
Changed trim audio method
...
The old audio file is kept and it's possible to set the start mark
2013-07-18 13:41:29 +00:00
Guilherme Augusto Dias
d402f95776
Handling START/STOP record events
...
Changed Events module: possible to retrieve and match record events
2013-07-18 13:15:09 +00:00
Calvin Walton
ecfe8b7db4
RaP: Adjust the 'convert' command to make opaque images
...
This forces a background colour of white on the generated png images for
slides in the slides and presentation recording formats. Fixes Issue
1588.
2013-07-17 18:08:51 -04:00
Felipe Cecagno
6f7baabc3c
starting to develop the record button using part of guga's code ( https://github.com/gugat/bbb-record-button )
2013-06-17 14:23:45 -03:00
Felipe Cecagno
80a8792597
Merge branch 'master' of github.com:bigbluebutton/bigbluebutton into sync-playback
2013-07-12 22:23:52 -03:00
Gustavo Salazar
9b5e42223f
Accept meeting id to create manifest.xml
2013-07-03 15:42:21 -05:00
Felipe Cecagno
e8b9ffab4d
Merge branch 'master' of git://github.com/bigbluebutton/bigbluebutton into sync-playback
2013-07-01 15:33:09 -03:00
Felipe Cecagno
b176ef090f
fixing the incorrect handling of the last timeline event on video processing
2013-07-01 15:32:25 -03:00
Gustavo Salazar
d63fbac298
Create missing start events for webcam streams fix #1561
2013-06-20 15:45:26 -05:00
Felipe Cecagno
fea7486ae3
implemented the possibility to include the desktop sharing streams to the presentation playback; it composes the presentation video file just like the other video streams, with the difference that while the screen is being sharing, it appears as the unique video stream in the presentation video - when the presenter stops sharing his screen, the other videos populate the video display;
...
also, the output video resolution is modified to the highest screen resolution shared during the conference, independently on the output video resolution set by the user; it was done to preserve the quality of the desktop sharing image; if there's no desktop sharing, the output video resolution is respected
2013-06-14 17:50:39 -03:00
Felipe Cecagno
fda4e203f9
extracted FFMPEG_LOG_LEVEL to a module constant, and use it in all FFmpeg commands; now it's easy to increase the log level during development
2013-06-14 17:44:10 -03:00
Felipe Cecagno
8ca4e949aa
modified the BigBlueButton.execute method so it can raise an exception when the command passed didn't finish successfully; you can optionally pass fail_on_error=false so it won't raise an exception
2013-06-14 17:39:29 -03:00
Felipe Cecagno
53c071ddc3
ref #1516
...
Refactored the code that generates the video file used in the presentation playback. The problem with the sync of video sources was related to problems of precision inside FFmpeg (sometimes the script runs FFmpeg to trim video files, and the output video file trimmed sometimes was 3+ seconds bigger or smaller than the requested).
Also it's a little more modular, so it will be easier to expand functionality. The processing steps are more explicit now, and the logs are better now to understand the final output.
A new parameter on presentation.yml was added to enable the admin to add an offset for the audio stream - this is mainly useful when the session ran with h264, because the video takes longer for the client to encode, and then in the recording we can see the huge gap between audio and video.
2013-06-13 17:10:52 -03:00
Gustavo Salazar
0aa1c9867c
support ingest for matterhorn 1.4
2013-06-07 16:27:14 -05:00
Gustavo Salazar
4c60948ae0
Merge pull request #77 from fcecagno/fixing-video-processing
...
fixing the start-stop camera events matches, so now even if there's no s...
2013-04-28 17:40:50 -07:00
Gustavo Salazar
0166939205
use the 'Crop Box' of pdf page
2013-04-05 14:00:13 -05:00
Felipe Cecagno
213b9793a8
updating record-and-playback from master
2013-02-28 16:45:09 -03:00
Gustavo Salazar
406e467c8b
set audio sample rate according to the recorded audio file
2013-02-13 14:42:23 -05:00
Felipe Cecagno
d8734f6606
fixing identation
2013-02-08 16:22:09 -02:00
Felipe Cecagno
ee1bfee1fb
changed the behavior of BigBlueButton.execute so the caller can check if the execution was successfully or not
2013-02-08 16:07:52 -02:00
Felipe Cecagno
420f5c976b
adding a patch waiting to be pulled on BigBlueButton master ( https://github.com/bigbluebutton/bigbluebutton/pull/77 )
2013-02-06 17:44:07 -02:00
Felipe Cecagno
8531534bc7
copied the entire record-and-playback module of BigBlueButton master (pre 0.81) to the v0.8 tag; the only file merged is record-and-playback/core/lib/recordandplayback.rb
2013-02-04 15:34:54 -02:00
Gilson Souza
e1207b60e4
corrected some issues
2013-02-04 13:34:00 -02:00
Gilson Souza
c7d4146c25
Adding mconf scripts to process and publish records.
2013-02-04 13:31:57 -02:00
Gustavo Salazar
c761ef0bf1
generate tail padding when processing audio
2013-01-23 12:44:20 -05:00
Felipe Cecagno
5176e508dd
fixing the start-stop camera events matches, so now even if there's no stop video event, the video processing will run smoothly
2012-12-06 21:28:13 -02:00
Gustavo Salazar
5d53bdfd4a
Send one video stream(webcam OR deskshare) to Matterhorn server
2012-10-24 13:40:41 -05:00
Gustavo Salazar
ac32c59029
Extract pdf page in a temp dir
2012-10-23 13:53:43 -05:00
Gustavo Salazar
f3c8477b27
Fixed frame rate in mpg file
2012-09-28 11:52:35 -05:00
Gustavo Salazar
aa3350115d
Ask for ffmpeg version before using loop parameter.
2012-09-25 20:08:52 -05:00
Gustavo Salazar
2462802d54
Change ffmpeg commands to support version 0.11.2
2012-09-21 17:27:11 -05:00
Gustavo Salazar
f5ee8b6cbf
Update license.
2012-09-04 16:42:13 -05:00
Markos Calderon
5bb870b385
Merge branch 'master' of https://github.com/bigbluebutton/bigbluebutton into add-sanity-check
2012-08-30 16:13:44 -05:00
Gustavo Salazar
a8fae3bbf9
Ask if duration of video is 0.
2012-08-28 14:38:23 -05:00