public static CommandStage WithInput <TStreamType>(this FFmpegCommand command, string fileName, SettingsCollection settings)
            where TStreamType : class, IStream
        {
            command.AddInput(fileName, settings);

            return(command.Select(command.LastInputStream <TStreamType>()));
        }
        public static FFmpegCommand AddInput(this FFmpegCommand command, List <string> files)
        {
            if (files == null || files.Count == 0)
            {
                throw new ArgumentException("Files cannot be null or empty.", "files");
            }

            files.ForEach(fileName => command.AddInput(fileName));

            return(command);
        }
        public static CommandStage WithInput <TStreamType>(this FFmpegCommand command, List <string> files)
            where TStreamType : class, IStream
        {
            if (files == null || files.Count == 0)
            {
                throw new ArgumentException("Files cannot be null or empty.", "files");
            }

            var streamIds = files.Select(fileName =>
            {
                command.AddInput(fileName);

                return(command.LastInputStream <TStreamType>());
            }).ToList();

            return(command.Select(streamIds));
        }
 public static FFmpegCommand AddInput(this FFmpegCommand command, string fileName)
 {
     return(command.AddInput(fileName, SettingsCollection.ForInput()));
 }