Merge pull request #15171 from GuiLeme/issue-15051

refactor: Removed all traces of Red5
This commit is contained in:
Anton Georgiev 2022-06-29 12:09:02 -04:00 committed by GitHub
commit 61b269eca8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 4 additions and 54 deletions

View File

@ -46,8 +46,8 @@ object Dependencies {
val apacheLang = "org.apache.commons" % "commons-lang3" % Versions.lang
val bbbCommons = "org.bigbluebutton" % "bbb-common-message_2.13" % Versions.bbbCommons excludeAll (
ExclusionRule(organization = "org.red5"))
val bbbCommons = "org.bigbluebutton" % "bbb-common-message_2.13" % Versions.bbbCommons
val bbbFseslClient = "org.bigbluebutton" % "bbb-fsesl-client" % Versions.bbbFsesl
}

View File

@ -49,7 +49,6 @@ public class MessageSender extends RedisAwareCommunicator {
connectionPool = ConnectionPoolSupport.createGenericObjectPool(() -> redisClient.connectPubSub(),
createPoolingConfig());
log.info("Redis org.bigbluebutton.red5.pubsub.message publisher starting!");
try {
sendMessage = true;
@ -84,7 +83,7 @@ public class MessageSender extends RedisAwareCommunicator {
RedisAsyncCommands<String, String> async = connection.async();
RedisFuture<Long> future = async.publish(channel, message);
} catch (Exception e) {
log.warn("Cannot publish the org.bigbluebutton.red5.pubsub.message to redis", e);
log.warn("Cannot publish the message to redis", e);
}
}
};

View File

@ -49,8 +49,6 @@ case class UsersProp(
case class MetadataProp(metadata: collection.immutable.Map[String, String])
case class ScreenshareProps(screenshareConf: String, red5ScreenshareIp: String, red5ScreenshareApp: String)
case class LockSettingsProps(
disableCam: Boolean,
disableMic: Boolean,

View File

@ -310,7 +310,7 @@ case class UserJoinMeetingAfterReconnectReqMsg(header: BbbClientMsgHeader, body:
case class UserJoinMeetingAfterReconnectReqMsgBody(userId: String, authToken: String, clientType: String)
/**
* Sent from bbb-apps when user disconnects from Red5.
* Sent from client to bbb-akka to notify that a user is leaving
*/
object UserLeaveReqMsg { val NAME = "UserLeaveReqMsg" }
case class UserLeaveReqMsg(header: BbbClientMsgHeader, body: UserLeaveReqMsgBody) extends StandardMsg

View File

@ -327,11 +327,6 @@ module BigBlueButton
# Convert the duration to milliseconds
info[:duration] = (info[:format][:duration].to_r * 1000).to_i
# Red5 writes video files with the first frame often having a pts
# much greater than 0.
# We can compensate for this during decoding if we know the
# timestamp offset, which ffprobe handily finds. Convert the units
# to ms.
info[:start_time] = (info[:format][:start_time].to_r * 1000).to_i
info[:video][:start_time] = (info[:video][:start_time].to_r * 1000).to_i

View File

@ -172,12 +172,10 @@ audio_dir = props['raw_audio_src']
recording_dir = props['recording_dir']
raw_archive_dir = "#{recording_dir}/raw"
deskshare_dir = props['raw_deskshare_src']
screenshare_dir = props['raw_screenshare_src']
redis_host = props['redis_host']
redis_port = props['redis_port']
redis_password = props['redis_password']
presentation_dir = props['raw_presentation_src']
video_dir = props['raw_video_src']
kurento_video_dir = props['kurento_video_src']
kurento_screenshare_dir = props['kurento_screenshare_src']
mediasoup_video_dir = props['mediasoup_video_src']
@ -206,9 +204,6 @@ archive_audio(meeting_id, audio_dir, raw_archive_dir)
archive_notes(meeting_id, notes_endpoint, notes_formats, raw_archive_dir)
# Presentation files
archive_directory("#{presentation_dir}/#{meeting_id}/#{meeting_id}", "#{target_dir}/presentation")
# Red5 media
archive_directory("#{screenshare_dir}/#{meeting_id}", "#{target_dir}/deskshare")
archive_directory("#{video_dir}/#{meeting_id}", "#{target_dir}/video/#{meeting_id}")
# Kurento media
archive_directory("#{kurento_screenshare_dir}/#{meeting_id}", "#{target_dir}/deskshare")
archive_directory("#{kurento_video_dir}/#{meeting_id}", "#{target_dir}/video/#{meeting_id}")
@ -221,11 +216,6 @@ if break_timestamp.nil?
BigBlueButton.logger.info('Deleting originals of archived media files.')
# FreeSWITCH Audio files
delete_audio(meeting_id, audio_dir)
# Red5 media
# TODO: need to figure out how to set permissions used when red5 creates directories
# does this even matter? we're removing red5 soon...
# FileUtils.rm_rf("#{screenshare_dir}/#{meeting_id}")
# FileUtils.rm_rf("#{video_dir}/#{meeting_id}")
# Kurento media
FileUtils.rm_rf("#{kurento_screenshare_dir}/#{meeting_id}")
FileUtils.rm_rf("#{kurento_video_dir}/#{meeting_id}")

View File

@ -1,12 +1,9 @@
bbb_version: '2.1.0'
raw_audio_src: /var/freeswitch/meetings
raw_video_src: /usr/share/red5/webapps/video/streams
kurento_video_src: /var/kurento/recordings
kurento_screenshare_src: /var/kurento/screenshare
mediasoup_video_src: /var/mediasoup/recordings
mediasoup_screenshare_src: /var/mediasoup/screenshare
raw_screenshare_src: /usr/share/red5/webapps/screenshare/streams
raw_webrtc_deskshare_src: /usr/share/red5/webapps/video-broadcast/streams
raw_deskshare_src: /var/bigbluebutton/deskshare
raw_presentation_src: /var/bigbluebutton
notes_endpoint: http://127.0.0.1:9002/p

View File

@ -54,29 +54,6 @@ def check_events_xml(raw_dir,meeting_id)
bad_doc = Nokogiri::XML(File.open(filepath)) { |config| config.options = Nokogiri::XML::ParseOptions::STRICT }
end
def repair_red5_ser(directory)
cp="/usr/share/red5/red5-server.jar:/usr/share/red5/lib/*"
if File.directory?(directory)
FileUtils.cd(directory) do
BigBlueButton.logger.info("Repairing red5 serialized streams")
Dir.glob("*.flv.ser").each do |ser|
BigBlueButton.logger.info("Repairing #{ser}")
ret = BigBlueButton.exec_ret('java', '-cp', cp, 'org.red5.io.flv.impl.FLVWriter', ser, '0', '7')
if ret != 0
BigBlueButton.logger.warn("Failed to repair #{ser}")
next
end
BigBlueButton.logger.info("Cleaning up .flv.ser and .flv.info files")
FileUtils.rm_f(ser)
FileUtils.rm_f("#{ser[0..-5]}.info")
end
end
end
end
# Determine the filenames for the done and fail files
if !break_timestamp.nil?
done_base = "#{meeting_id}-#{break_timestamp}"
@ -96,12 +73,6 @@ begin
logger.info("Checking events.xml")
check_events_xml(raw_archive_dir,meeting_id)
logger.info("Repairing webcam videos")
repair_red5_ser("#{raw_archive_dir}/#{meeting_id}/video/#{meeting_id}")
logger.info("Repairing deskshare videos")
repair_red5_ser("#{raw_archive_dir}/#{meeting_id}/deskshare")
if break_timestamp.nil?
# Either this recording isn't segmented, or we are working on the last
# segment, so go ahead and clean up all the redis data.