Esempio n. 1
0
        private void SaveVideo(ref VFMFVideoEncoderSettings video)
        {
            // Main settings
            switch (cbMP4Mode.SelectedIndex)
            {
            case 0:
                //  v11 (CPU) H264
                video.Codec = VFMFVideoEncoder.MS_H264;
                break;

            case 1:
                //  v11 nVidia NVENC H264
                video.Codec = VFMFVideoEncoder.NVENC_H264;
                break;

            case 2:
                //  v11 Intel QuickSync H264
                video.Codec = VFMFVideoEncoder.QSV_H264;
                break;

            case 3:
                //  v11 AMD Radeon H264
                video.Codec = VFMFVideoEncoder.AMD_H264;
                break;

            case 4:
                //  v11 nVidia NVENC H265
                video.Codec = VFMFVideoEncoder.NVENC_H265;
                break;

            case 5:
                //  v11 AMD Radeon H265
                video.Codec = VFMFVideoEncoder.AMD_H265;
                break;
            }

            // Video H264 settings
            switch (cbMFProfile.SelectedIndex)
            {
            case 0:
                video.Profile = VFMFH264Profile.Base;
                break;

            case 1:
                video.Profile = VFMFH264Profile.Main;
                break;

            case 2:
                video.Profile = VFMFH264Profile.High;
                break;
            }

            switch (cbMFLevel.SelectedIndex)
            {
            case 0:
                video.Level = VFMFH264Level.Level1;
                break;

            case 1:
                video.Level = VFMFH264Level.Level11;
                break;

            case 2:
                video.Level = VFMFH264Level.Level12;
                break;

            case 3:
                video.Level = VFMFH264Level.Level13;
                break;

            case 4:
                video.Level = VFMFH264Level.Level2;
                break;

            case 5:
                video.Level = VFMFH264Level.Level21;
                break;

            case 6:
                video.Level = VFMFH264Level.Level22;
                break;

            case 7:
                video.Level = VFMFH264Level.Level3;
                break;

            case 8:
                video.Level = VFMFH264Level.Level31;
                break;

            case 9:
                video.Level = VFMFH264Level.Level32;
                break;

            case 10:
                video.Level = VFMFH264Level.Level4;
                break;

            case 11:
                video.Level = VFMFH264Level.Level41;
                break;

            case 12:
                video.Level = VFMFH264Level.Level42;
                break;

            case 13:
                video.Level = VFMFH264Level.Level5;
                break;

            case 14:
                video.Level = VFMFH264Level.Level51;
                break;

            case 15:
                video.Level = VFMFH264Level.Level52;
                break;
            }

            video.RateControl = (VFMFCommonRateControlMode)cbMFRateControl.SelectedIndex;

            video.CABAC          = cbMFCABAC.Checked;
            video.LowLatencyMode = cbMFLowLatency.Checked;

            int.TryParse(edMFBFramesCount.Text, out var tmp);
            video.DefaultBPictureCount = tmp;

            int.TryParse(edMFKeyFrameSpacing.Text, out tmp);
            video.MaxKeyFrameSpacing = tmp;

            int.TryParse(edMFBitrate.Text, out tmp);
            video.AvgBitrate = tmp;

            int.TryParse(edMFMaxBitrate.Text, out tmp);
            video.MaxBitrate = tmp;

            int.TryParse(edMFQuality.Text, out tmp);
            video.Quality = tmp;
        }
Esempio n. 2
0
        private void LoadVideo(VFMFVideoEncoderSettings video)
        {
            // Main settings
            switch (video.Codec)
            {
            case VFMFVideoEncoder.MS_H264:
                cbMP4Mode.SelectedIndex = 0;
                break;

            case VFMFVideoEncoder.QSV_H264:
                cbMP4Mode.SelectedIndex = 2;
                break;

            case VFMFVideoEncoder.NVENC_H264:
                cbMP4Mode.SelectedIndex = 1;
                break;

            case VFMFVideoEncoder.AMD_H264:
                cbMP4Mode.SelectedIndex = 3;
                break;

            case VFMFVideoEncoder.NVENC_H265:
                cbMP4Mode.SelectedIndex = 4;
                break;

            case VFMFVideoEncoder.AMD_H265:
                cbMP4Mode.SelectedIndex = 5;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            // Video H264 settings
            switch (video.Profile)
            {
            case VFMFH264Profile.Simple:
                cbMFProfile.SelectedIndex = 0;
                break;

            case VFMFH264Profile.Main:
                cbMFProfile.SelectedIndex = 1;
                break;

            case VFMFH264Profile.High:
                cbMFProfile.SelectedIndex = 2;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            switch (video.Level)
            {
            case VFMFH264Level.Level1:
                cbMFLevel.SelectedIndex = 0;
                break;

            case VFMFH264Level.Level1b:
                cbMFLevel.SelectedIndex = 1;
                break;

            case VFMFH264Level.Level12:
                cbMFLevel.SelectedIndex = 2;
                break;

            case VFMFH264Level.Level13:
                cbMFLevel.SelectedIndex = 3;
                break;

            case VFMFH264Level.Level2:
                cbMFLevel.SelectedIndex = 4;
                break;

            case VFMFH264Level.Level21:
                cbMFLevel.SelectedIndex = 5;
                break;

            case VFMFH264Level.Level22:
                cbMFLevel.SelectedIndex = 6;
                break;

            case VFMFH264Level.Level3:
                cbMFLevel.SelectedIndex = 7;
                break;

            case VFMFH264Level.Level31:
                cbMFLevel.SelectedIndex = 8;
                break;

            case VFMFH264Level.Level32:
                cbMFLevel.SelectedIndex = 9;
                break;

            case VFMFH264Level.Level4:
                cbMFLevel.SelectedIndex = 10;
                break;

            case VFMFH264Level.Level41:
                cbMFLevel.SelectedIndex = 11;
                break;

            case VFMFH264Level.Level42:
                cbMFLevel.SelectedIndex = 12;
                break;

            case VFMFH264Level.Level5:
                cbMFLevel.SelectedIndex = 13;
                break;

            case VFMFH264Level.Level51:
                cbMFLevel.SelectedIndex = 14;
                break;

            case VFMFH264Level.Level52:
                cbMFLevel.SelectedIndex = 15;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            cbMFRateControl.SelectedIndex = (int)video.RateControl;
            cbMFCABAC.Checked             = video.CABAC;
            cbMFLowLatency.Checked        = video.LowLatencyMode;
            edMFBFramesCount.Text         = video.DefaultBPictureCount.ToString();
            edMFKeyFrameSpacing.Text      = video.MaxKeyFrameSpacing.ToString();
            edMFBitrate.Text    = video.AvgBitrate.ToString();
            edMFMaxBitrate.Text = video.MaxBitrate.ToString();
            edMFQuality.Text    = video.Quality.ToString();
        }