diff --git a/record-and-playback/core/lib/recordandplayback/deskshare_archiver.rb b/record-and-playback/core/lib/recordandplayback/deskshare_archiver.rb index 2b85c699504a551cb00ddf48c4fc5aced8b9996d..ee880067ac4486972a72ef390c63fe1a0860901e 100755 --- a/record-and-playback/core/lib/recordandplayback/deskshare_archiver.rb +++ b/record-and-playback/core/lib/recordandplayback/deskshare_archiver.rb @@ -29,7 +29,7 @@ module BigBlueButton raise MissingDirectoryException, "Directory not found #{to_dir}" if not BigBlueButton.dir_exists?(to_dir) raise FileNotFoundException, "No recording for #{meeting_id} in #{from_dir}" if Dir.glob("#{from_dir}").empty? - Dir.glob("#{from_dir}/#{meeting_id}-*.flv").each { |file| + Dir.glob("#{from_dir}/#{meeting_id}-*").each { |file| puts "deskshare #{file} to #{to_dir}" FileUtils.cp(file, to_dir) } diff --git a/record-and-playback/core/scripts/sanity/sanity.rb b/record-and-playback/core/scripts/sanity/sanity.rb index 0dc2889b2fe4baf7dbbc5ee4ba5133ed0c1ae853..cf11b5e8aa7f860cf8347c065c2d86e06b7274e9 100755 --- a/record-and-playback/core/scripts/sanity/sanity.rb +++ b/record-and-playback/core/scripts/sanity/sanity.rb @@ -105,6 +105,22 @@ def check_webcam_files(raw_dir, meeting_id) end def check_deskshare_files(raw_dir, meeting_id) + meeting_dir = "#{raw_dir}/#{meeting_id}" + + BigBlueButton.logger.info("Repairing red5 serialized streams") + cp="/usr/share/red5/red5-server.jar:/usr/share/red5/lib/*" + if File.directory?("#{meeting_dir}/deskshare") + FileUtils.cd("#{meeting_dir}/deskshare") do + 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}") + end + end + end + end + desktops = BigBlueButton::Events.get_start_deskshare_events("#{raw_dir}/#{meeting_id}/events.xml") desktops.each do |desktop| raw_desktop_file = "#{raw_dir}/#{meeting_id}/deskshare/#{desktop[:stream]}"