Ejemplo n.º 1
0
        public void ReadInfo(IContainer resource, LoaderFlags flags)
        {
            var ffprobeCommand = FFprobeCommand.Create(resource)
                                 .AddSetting(new PrintFormat(PrintFormat.JsonFormat));

            if (flags.HasFlag(LoaderFlags.ShowFormat))
            {
                ffprobeCommand.AddSetting(new ShowFormat());
            }

            if (flags.HasFlag(LoaderFlags.ShowStreams))
            {
                ffprobeCommand.AddSetting(new ShowStreams());
            }

            if (flags.HasFlag(LoaderFlags.ShowFrames))
            {
                ffprobeCommand.AddSetting(new ShowFrames());
            }

            var commandProcessor = ffprobeCommand.Execute();

            var containerMetadata = FFprobeSerializer.Serialize(commandProcessor);

            HasAudio  = containerMetadata.Streams != null && containerMetadata.Streams.OfType <AudioStreamMetadata>().Any();
            HasVideo  = containerMetadata.Streams != null && containerMetadata.Streams.OfType <VideoStreamMetadata>().Any();
            HasData   = containerMetadata.Streams != null && containerMetadata.Streams.OfType <DataStreamMetadata>().Any();
            HasFrames = containerMetadata.Frames != null && containerMetadata.Frames.Any();
            BaseData  = containerMetadata;
        }
Ejemplo n.º 2
0
        public void ReadInfo(IContainer resource)
        {
            var ffprobeCommand = FFprobeCommand.Create(resource)
                                 .Register(new FFprobeStreamSerializer())
                                 .Register(new FFprobeFormatSerializer())
                                 .Execute();

            var ffprobeSerializerResult = FFprobeSerializer.Serialize(ffprobeCommand);

            HasAudio = ffprobeSerializerResult.GetCount(FFprobeCodecTypes.Audio) > 0;
            HasVideo = ffprobeSerializerResult.GetCount(FFprobeCodecTypes.Video) > 0;

            ReadGeneral(ffprobeSerializerResult);

            if (HasAudio)
            {
                ReadAudio(ffprobeSerializerResult);
            }

            if (HasVideo)
            {
                ReadVideo(ffprobeSerializerResult);
            }
        }