public void Setup(VideoEncoderSettings encoderSettings, VideoEncoderDescription descr) { this.EncoderSettings = encoderSettings; LoadEncoderProfilesItems(); LoadRateModeItems(); LoadAspectRatioItems(); this.Text = descr.Name; this.formatTextBox.Text = EncoderSettings.EncoderFormat.ToString(); this.encProfileComboBox.SelectedItem = EncoderSettings.Profile; this.bitrateModeComboBox.SelectedItem = EncoderSettings.BitrateMode; this.MaxBitrateNumeric.Value = EncoderSettings.MaxBitrate; this.bitrateNumeric.Value = EncoderSettings.Bitrate; this.fpsNumeric.Value = EncoderSettings.FrameRate.Num; this.latencyModeCheckBox.Checked = EncoderSettings.LowLatency; this.qualityNumeric.Value = EncoderSettings.Quality; this.gopSizeNumeric.Value = EncoderSettings.GOPSize; var aspectRatio = EncoderSettings.AspectRatio ?? AspectRatio.AspectRatio_1_1; var aspectItem = aspectRatios.FirstOrDefault(i => i.Den == aspectRatio.Den && i.Num == aspectRatio.Num); if (aspectItem == null) { aspectItem = aspectRatios.FirstOrDefault(); } this.aspectRatioComboBox.SelectedItem = aspectItem; }
private VideoEncoderDescription GetEncoderDescr() { VideoEncoderDescription encoderDescr = null; var item = encoderComboBox.SelectedItem as ComboBoxItem; if (item != null) { var tag = item.Tag; if (tag != null) { encoderDescr = (VideoEncoderDescription)tag; } } return(encoderDescr); }
public static List <EncoderItem> GetVideoEncoders(bool ForceUpdate = false) { // List<EncoderItem> items = new List<EncoderItem>(); if (encoderItems == null || ForceUpdate) { encoderItems = new List <EncoderItem>(); var encoders = MediaToolkit.MediaFoundation.MfTool.FindVideoEncoders(); foreach (var enc in encoders) { if (enc.Activatable && enc.Format == VideoCodingFormat.H264 && enc.IsHardware) { var item = new EncoderItem { Name = enc.Name, Id = enc.Id, }; encoderItems.Add(item); } } VideoEncoderDescription libx264Description = new VideoEncoderDescription { Id = "libx264", Name = "libx264 (CPU)", Format = VideoCodingFormat.H264, IsHardware = false, Activatable = true, }; encoderItems.Add(new EncoderItem { Name = libx264Description.Name, Id = libx264Description.Id, }); } return(new List <EncoderItem>(encoderItems)); }
private void LoadEncoderItems() { encoderItems.Clear(); var encoders = MediaToolkit.MediaFoundation.MfTool.FindVideoEncoders(); foreach (var enc in encoders) { if (enc.Activatable && enc.Format == VideoCodingFormat.H264) { var item = new ComboBoxItem { Name = enc.Name, Tag = enc, }; encoderItems.Add(item); } } VideoEncoderDescription libx264Description = new VideoEncoderDescription { Id = "libx264", Name = "libx264", Format = VideoCodingFormat.H264, IsHardware = false, Activatable = true, }; encoderItems.Add(new ComboBoxItem { Name = libx264Description.Name, Tag = libx264Description, }); encoderComboBox.DisplayMember = "Name"; encoderComboBox.ValueMember = "Tag"; encoderComboBox.DataSource = encoderItems; }