def save_settings(self, widget=None, userdata=None): """Saves settings changed in this window to the stream_settings module, followed by a commit to the config file.""" config = stream_settings.get_config() config['remember_me'] = self.remember_me.get_active() if self.remember_me.get_active(): config['username'] = self.username_entry.get_text() config['stream_key'] = self.stream_key_entry.get_text() config['frame_rate'] = self.fps_adjustment.get_value() config['output_width'] = self.output_width.get_text() config['output_height'] = self.output_height.get_text() config['capture_x'] = self.capture_x.get_text() config['capture_y'] = self.capture_y.get_text() config['capture_width'] = self.capture_width.get_text() config['capture_height'] = self.capture_height.get_text() config['audio_file'] = self.audio_custom_file.get_filename() config['audio_youtube_url'] = self.audio_youtube_url.get_text() config['audio_source_id'] = self.audio_source_box.get_active_id() config['overlays'] = [] # Save overlay items for overlay_row in self.overlay_store: overlay = {'file': overlay_row[0], 'x': overlay_row[1], 'y': overlay_row[2], 'gravity': overlay_row[3]} config['overlays'].append(overlay) stream_settings.save()
def get_command(self): config = stream_settings.get_config() substituted = FFMpegManager.command % { 'INPUT_WIDTH': int(config['capture_width']), 'INPUT_HEIGHT': int(config['capture_height']), 'FPS': int(config['frame_rate']), 'DISPLAY': getenv('DISPLAY'), 'INPUT_X': int(config['capture_x']), 'INPUT_Y': int(config['capture_y']), 'OUTPUT_WIDTH': int(config['output_width']), 'OUTPUT_HEIGHT': int(config['output_height']), 'STREAM_KEY': config['stream_key'] } if config['audio_source_id'] == 'microphone': substituted += FFMpegManager.audio_pulse # TODO add support for ALSA, input source selection elif config['audio_source_id'] == 'file': substituted += FFMpegManager.audio_custom_file % {'AUDIO_FILE': config['audio_file'] } if len(config['overlays']) > 0: for overlay in config['overlays']: substituted += FFMpegManager.input_file % { 'INPUT_FILE': overlay['file'] } substituted += " -filter_complex \"" for i, overlay in enumerate(config['overlays']): substituted += FFMpegManager.video_overlay % {'OVERLAY_X': overlay['x'], 'OVERLAY_Y': overlay['y'] } if i < len(config['overlays'])-1: substituted += "," substituted += "\"" return substituted
def load_settings(self): config = stream_settings.get_config() self.username_entry.set_text(config['username']) self.stream_key_entry.set_text(config['stream_key']) self.remember_me.set_active(config['remember_me']) self.fps_adjustment.set_value(config['frame_rate']) self.output_width.set_text(str(config['output_width'])) self.output_height.set_text(str(config['output_height'])) self.capture_x.set_text(str(config['capture_x'])) self.capture_y.set_text(str(config['capture_y'])) self.capture_width.set_text(str(config['capture_width'])) self.capture_height.set_text(str(config['capture_height'])) self.audio_source_box.set_active_id(config['audio_source_id']) self.audio_youtube_url.set_text(config['audio_youtube_url']) self.audio_custom_file.set_filename(config['audio_file']) # Add overlay items for overlay in config['overlays']: self.overlay_store.append([overlay['file'], overlay['x'], overlay['y'], overlay['gravity']])