private static void InitialiseTestPattern() { _testPattern = new Bitmap(TEST_PATTERN_IMAGE_PATH); FFmpegInit.Initialise(FfmpegLogLevelEnum.AV_LOG_DEBUG); _ffmpegEncoder = new FFmpegVideoEncoder(); Console.WriteLine($"Codec name {_ffmpegEncoder.GetCodecName()}."); _videoFrameConverter = new VideoFrameConverter( _testPattern.Width, _testPattern.Height, AVPixelFormat.AV_PIX_FMT_BGRA, _testPattern.Width, _testPattern.Height, AVPixelFormat.AV_PIX_FMT_YUV420P); }
public void Setup(VideoEncoderSettings encPars, NetworkSettings networkParams) { logger.Debug("VideoHttpStreamer::Setup(...) " + encPars.Resolution.Width + "x" + encPars.Resolution.Height + " " + encPars.EncoderId); if (State != MediaState.Closed) { throw new InvalidOperationException("Invalid state " + State); } try { this.networkParams = networkParams; httpStreamer = new Networks.HttpStreamer(); encoder = new FFmpegVideoEncoder(); encoder.Open(encPars); encoder.DataEncoded += Encoder_DataEncoded; state = MediaState.Initialized; } catch (Exception ex) { logger.Error(ex); errorCode = 100503; if (encoder != null) { encoder.DataEncoded -= Encoder_DataEncoded; encoder.Close(); encoder = null; } state = MediaState.Closed; throw; } }