diff --git a/record-and-playback/core/lib/recordandplayback/generators/audio_processor.rb b/record-and-playback/core/lib/recordandplayback/generators/audio_processor.rb
index 4c83edbc435831ae2d65a9e34f451e3a1b0ea6d7..4baca76ce8c183ad564e4b45f07a557720b7cf6b 100755
--- a/record-and-playback/core/lib/recordandplayback/generators/audio_processor.rb
+++ b/record-and-playback/core/lib/recordandplayback/generators/audio_processor.rb
@@ -45,8 +45,10 @@ module BigBlueButton
       BigBlueButton::EDL::Audio.dump(audio_edl)
 
       BigBlueButton.logger.info("Applying recording start stop events:")
+      start_time = BigBlueButton::Events.first_event_timestamp(events)
+      end_time = BigBlueButton::Events.last_event_timestamp(events)
       audio_edl = BigBlueButton::Events.edl_match_recording_marks_audio(
-                      audio_edl, events)
+                      audio_edl, events, start_time, end_time)
       BigBlueButton::EDL::Audio.dump(audio_edl)
 
       @audio_file = BigBlueButton::EDL::Audio.render(audio_edl, "#{audio_dir}/recording")
diff --git a/record-and-playback/core/lib/recordandplayback/generators/events.rb b/record-and-playback/core/lib/recordandplayback/generators/events.rb
index 371ef60cae96e72aa937fd31922b235c64f9c39f..9fa9a64f6af2dd1a779df7e722fdfa7123ae7cbe 100755
--- a/record-and-playback/core/lib/recordandplayback/generators/events.rb
+++ b/record-and-playback/core/lib/recordandplayback/generators/events.rb
@@ -293,19 +293,11 @@ module BigBlueButton
       end
     end
 
-    def self.edl_match_recording_marks_audio(edl, events)
+    def self.edl_match_recording_marks_audio(edl, events, start_time, end_time)
       edl_entry_offset = BigBlueButton::Events.edl_entry_offset_audio
       edl_empty_entry = BigBlueButton::Events.edl_empty_entry_audio
       return BigBlueButton::Events.edl_match_recording_marks(edl, events,
-                      edl_entry_offset, edl_empty_entry)
-    end
-
-    def self.edl_trim_segment_audio(edl, start_timestamp, end_timestamp)
-      edl_entry_offset = BigBlueButton::Events.edl_entry_offset_audio
-      edl_empty_entry = BigBlueButton::Events.edl_empty_entry_audio
-      return BigBlueButton::Events.edl_trim_segment(edl,
-                      edl_entry_offset, edl_empty_entry,
-                      start_timestamp, end_timestamp)
+                      edl_entry_offset, edl_empty_entry, start_time, end_time)
     end
 
     def self.edl_entry_offset_video
@@ -330,19 +322,11 @@ module BigBlueButton
       end
     end
 
-    def self.edl_match_recording_marks_video(edl, events)
+    def self.edl_match_recording_marks_video(edl, events, start_time, end_time)
       edl_entry_offset = BigBlueButton::Events.edl_entry_offset_video
       edl_empty_entry = BigBlueButton::Events.edl_empty_entry_video
       return BigBlueButton::Events.edl_match_recording_marks(edl, events,
-                      edl_entry_offset, edl_empty_entry)
-    end
-
-    def self.edl_trim_segment_video(edl, start_timestamp, end_timestamp)
-      edl_entry_offset = BigBlueButton::Events.edl_entry_offset_video
-      edl_empty_entry = BigBlueButton::Events.edl_empty_entry_video
-      return BigBlueButton::Events.edl_trim_segment(edl,
-                      edl_entry_offset, edl_empty_entry,
-                      start_timestamp, end_timestamp)
+                      edl_entry_offset, edl_empty_entry, start_time, end_time)
     end
 
     def self.edl_apply_start_stop_events(edl, edl_entry_offset, edl_empty_entry, start_stop_events)
@@ -414,10 +398,16 @@ module BigBlueButton
       return new_edl
     end
 
-    def self.edl_match_recording_marks(edl, events, edl_entry_offset, edl_empty_entry)
+    def self.edl_match_recording_marks(edl, events,
+                                       edl_entry_offset, edl_empty_entry,
+                                       start_time, end_time)
       initial_timestamp = BigBlueButton::Events.first_event_timestamp(events)
       start_stop_events = BigBlueButton::Events.match_start_and_stop_rec_events(
               BigBlueButton::Events.get_start_and_stop_rec_events(events))
+      start_stop_events = BigBlueButton::Events.trim_start_and_stop_rec_events(
+                        start_stop_events, start_time, end_time)
+
+      # Convert to 0-based timestamps to match the edl entries
       start_stop_events.each do |record_event|
         record_event[:start_timestamp] -= initial_timestamp
         record_event[:stop_timestamp] -= initial_timestamp
@@ -426,20 +416,6 @@ module BigBlueButton
       return BigBlueButton::Events.edl_apply_start_stop_events(edl, edl_entry_offset, edl_empty_entry, start_stop_events)
     end
 
-    def self.edl_trim_segment(video_edl, edl_entry_offset, edl_empty_entry, start_timestamp, stop_timestamp)
-      # The logic required here is already implemented in the
-      # match_recording_marks function, so just create a fake recording
-      # start/stop event list and run that.
-      start_stop_events = [
-        {
-          start_timestamp: start_timestamp,
-          stop_timestamp: stop_timestamp
-        }
-      ]
-
-      return BigBlueButton::Events.edl_apply_start_stop_events(edl, edl_entry_offset, edl_empty_entry, start_stop_events)
-    end
-
     def self.linkify( text )
       generic_URL_regexp = Regexp.new( '(^|[\n ])([\w]+?://[\w]+[^ \"\n\r\t<]*)', Regexp::MULTILINE | Regexp::IGNORECASE )
       starts_with_www_regexp = Regexp.new( '(^|[\n ])((www)\.[^ \"\t\n\r<]*)', Regexp::MULTILINE | Regexp::IGNORECASE )
diff --git a/record-and-playback/core/lib/recordandplayback/generators/video.rb b/record-and-playback/core/lib/recordandplayback/generators/video.rb
index 0b4af24167b5d1d8baa20ac8933885f007b8285f..a320337ae4194a695ea5d05dfb053fcb45097ea9 100755
--- a/record-and-playback/core/lib/recordandplayback/generators/video.rb
+++ b/record-and-playback/core/lib/recordandplayback/generators/video.rb
@@ -33,10 +33,12 @@ module BigBlueButton
     events = Nokogiri::XML(File.open("#{temp_dir}/#{meeting_id}/events.xml"))
 
     # Process user video (camera)
+    start_time = BigBlueButton::Events.first_event_timestamp(events)
+    end_time = BigBlueButton::Events.last_event_timestamp(events)
     webcam_edl = BigBlueButton::Events.create_webcam_edl(
                     events, "#{temp_dir}/#{meeting_id}")
     user_video_edl = BigBlueButton::Events.edl_match_recording_marks_video(
-                    webcam_edl, events)
+                    webcam_edl, events, start_time, end_time)
     BigBlueButton::EDL::Video.dump(user_video_edl)
 
     user_video_layout = {
@@ -73,10 +75,12 @@ module BigBlueButton
 
     events = Nokogiri::XML(File.open("#{temp_dir}/#{meeting_id}/events.xml"))
 
+    start_time = BigBlueButton::Events.first_event_timestamp(events)
+    end_time = BigBlueButton::Events.last_event_timestamp(events)
     deskshare_edl = BigBlueButton::Events.create_deskshare_edl(
                     events, "#{temp_dir}/#{meeting_id}")
     deskshare_video_edl = BigBlueButton::Events.edl_match_recording_marks_video(
-                    deskshare_edl, events)
+                    deskshare_edl, events, start_time, end_time)
 
     return if not BigBlueButton.video_recorded?(deskshare_video_edl)