Exemple #1
0
        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;
        }
Exemple #2
0
        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));
        }
Exemple #4
0
        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;
        }