def METHOD_NAME(self):
    """
    Starts recording video from specified inputs for a specified duration before and after trigger event.
    """
    while True:
        rbt_ids = self.buffers_status['ready']['before_t']
        # Wait until there is at least one ready before trigger buffer
        while not len(rbt_ids):
            time.sleep(0.01)
        rbt_id = rbt_ids.pop(0)
        # Create file for every stream
        buf_name = f'before_t_{rbt_id}'
        subfolder = f'{datetime.now().strftime("%Y-%m-%d_%H-%M-%S")}'
        self.recorder.create_files_for_buffer(subfolder=subfolder, buf_name=buf_name)
        # Write before trigger buffer into file for every stream
        for stream_name in self.stream_names:
            while not self.recorder.is_buffer_empty(stream_name, buf_name):
                self.recorder.write_from_buffer(wr_name=stream_name,
                                                buf_name=buf_name,
                                                n_elems=1)
                time.sleep(0.01)
        # Wait until after trigger buffer with the same id is ready
        while rbt_id not in self.buffers_status['ready']['after_t']:
            time.sleep(0.01)
        # Write after trigger buffer into the same file for every stream
        buf_name = f'after_t_{rbt_id}'
        for stream_name in self.stream_names:
            while not self.recorder.is_buffer_empty(stream_name, buf_name):
                self.recorder.write_from_buffer(wr_name=stream_name,
                                                buf_name=buf_name,
                                                n_elems=1)
                time.sleep(0.01)
        # Close files
        logging.debug(f'Saved to {str(self.path / subfolder)}')
        self.recorder.close_files()
        # Call on_finish_callback if it is specified
        if self.on_finish_callback is not None:
            self.on_finish_callback(str(self.path / subfolder))