private void UnregisterHardwareEncoder(FFMpegEncoderHandler.EncoderHandler encoder)
 {
     _ffMpegEncoderHandler.UnregisterEncoder(encoder);
 }
        public static string GetVideoCodec(VideoCodec codec, FFMpegEncoderHandler.EncoderHandler encoder)
        {
            switch (codec)
            {
            case VideoCodec.H265:
                if (encoder == FFMpegEncoderHandler.EncoderHandler.HardwareIntel)
                {
                    return("hevc_qsv");
                }
                else if (encoder == FFMpegEncoderHandler.EncoderHandler.HardwareNvidia)
                {
                    return("hevc_nvenc");
                }
                else
                {
                    return("libx265");
                }

            case VideoCodec.H264:
                if (encoder == FFMpegEncoderHandler.EncoderHandler.HardwareIntel)
                {
                    return("h264_qsv");
                }
                else if (encoder == FFMpegEncoderHandler.EncoderHandler.HardwareNvidia)
                {
                    return("nvenc_h264");
                }
                else
                {
                    return("libx264");
                }

            case VideoCodec.H263:
                return("h263");

            case VideoCodec.Vc1:
                return("vc1");

            case VideoCodec.Mpeg4:
                return("mpeg4");

            case VideoCodec.MsMpeg4:
                return("msmpeg4");

            case VideoCodec.Mpeg2:
                if (encoder == FFMpegEncoderHandler.EncoderHandler.HardwareIntel)
                {
                    return("mpeg2_qsv");
                }
                else
                {
                    return("mpeg2video");
                }

            case VideoCodec.Wmv:
                return("wmv1");

            case VideoCodec.Mpeg1:
                return("mpeg1video");

            case VideoCodec.MJpeg:
                return("mjpeg");

            case VideoCodec.Flv:
                return("flv");

            case VideoCodec.Vp8:
                return("libvpx");

            case VideoCodec.Vp9:
                return("libvpx-vp9");

            case VideoCodec.Theora:
                return("libtheora");

            case VideoCodec.DvVideo:
                return("dvvideo");

            case VideoCodec.Real:
                return("rv10");
            }
            return("copy");
        }
 private bool RegisterHardwareEncoder(FFMpegEncoderHandler.EncoderHandler encoder)
 {
     _ffMpegEncoderHandler.RegisterEncoder(encoder);
     return(true);
 }