diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a1abb99 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*.pyc +/1-Preprocessing/NSF/* +/1-Preprocessing/nGramInput/* +/3-Postprocessing/frames/* +/3-Postprocessing/*.mp4 \ No newline at end of file diff --git a/1-Preprocessing/Processor.py b/1-Preprocessing/Processor.py new file mode 100644 index 0000000..5bbf296 --- /dev/null +++ b/1-Preprocessing/Processor.py @@ -0,0 +1,245 @@ +# -*- coding: utf-8 -*- +""" NGramProcessor.py + + The program is run second, after the scraper and before + other WordSarm programs. It reads in the binary (pickle) + file created by the scrapper, and processes by binnning + the articles by dates, then calculates the nGrams for each + bin. The top nGram results are then formatted into a CSV + file to be read by the actual WordWarm.py program + + Original list of words retrieved from + open source software WordCarm from here: + https://wordcram.googlecode.com/svn/javadoc/constant-values.html + + + This file is part of WordSwarm. + + WordSwarm is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + WordSwarm is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + Copyright 2014 Michael Kane + + @author: Michael Kane +""" + +# Import modules +import pickle; # For reading binary file created by scraper +import datetime # For processing dates +import re # Regular expressions for removing black listed words +from WordBlacklist import WordBlacklist # A blacklist of words + # not to include in nGram calculations +import subprocess # For running text2ngram executable +import string # For parsing output string of text2ngram +import operator # For sorting class arrays + +# Options +win = 180; # Days to average articles over +lap = 60; # Overlap in windows +absCount = False # Generate ngrams based on absolute count or relative frequency +topN = 1000; # Number of most frequent words to use in final table +scraperOutFN = 'article_data.out' +createBinFiles = True # Set to false for debugging + +# Classes +class Article: + text = ''; + date = ''; +articles = []; # Array of articles retrieved by scraper + +class nGram: + word = ''; + count = ''; +nGrams = [] # 2-D array of calculated nGrams + # [Date Window][Order in which words were found in window] + #@todo This is not very memory efficient since the word + # string is repeated for each date-window + +# Import scraped date +print('Importing article array from: %s' % scraperOutFN) +pkl_file = open(scraperOutFN, 'rb'); +articles = pickle.load(pkl_file); +pkl_file.close(); +print('Successfully imported %d articles' % len(articles)) + +# Remove blacklisted words from articles +remove = '|'.join(WordBlacklist); +regex = re.compile(r'\b('+remove+r')\b', flags=re.IGNORECASE) + +# Make upper-case and remove non-alphanumeric +# (except apostrophes for contractions) +if createBinFiles: + print('Cleaning blacklist of words from articles') + for aN in range(0,len(articles)): + if (aN % 1000) == 0: + print('Cleaned upto %s' % articles[aN].date.__str__()) + articles[aN].text = re.sub(r'[^\w\']', ' ', articles[aN].text.upper()); + articles[aN].text = regex.sub("", articles[aN].text); + print('Done cleaning articles') + +# Organize articles by date +articles = sorted(articles, key=operator.attrgetter('date')); # Sort list by oldest first +dateS = articles[0].date; # First article date +# dateS = datetime.datetime.strptime('19500101','%Y%m%d'); # Use a different starting date# +dateE = articles[-1].date; # Last article date + +# Prep for separating articles into date-based bins +dateSk = dateS; # Start date in current date-window +dateEk = dateS + datetime.timedelta(win); # End date in current date-window +fName = []; # List of file names for each date-window +fSize = []; # Number of words found in all articles within date-window +fName.append((dateSk + datetime.timedelta(win/2)).\ + strftime('./nGramInput/%Y%m%d.txt')); +fSize.append(0) +print(fName[-1]); +if createBinFiles: f = open(fName[-1],'w'); + +# Put all the articles into date-based bins +print('Creating article bins') +for aN1 in range(0,len(articles)): + # Loop through articles to find first + # article to put into a bin. This requires + # parsing the date in string UTC format + # into a native binary format. + if articles[aN1].date >= dateSk: + + # Write current articles text to bin file + # and count number of words added + if createBinFiles: f.write(articles[aN1].text + '\n'); + fSize[-1] = fSize[-1] + len(articles[aN1].text.split()) + + for aN2 in range(aN1+1,len(articles)): + + # Find rest of articles within current window + if ((articles[aN2].date <= dateEk) + and (aN2 <> len(articles) - 1)): + + # Write current articles text to bin file + # and count number of words added + if createBinFiles: f.write(articles[aN2].text + '\n'); + fSize[-1] = fSize[-1] + len(articles[aN2].text.split()) + + # If the last article has been passed then + # close window file and go to next window + else: + + if createBinFiles: f.close(); + dateSk += datetime.timedelta(lap); + dateEk += datetime.timedelta(lap); + fName.append((dateSk + datetime.timedelta(win/2)).\ + strftime('./nGramInput/%Y%m%d.txt')); + fSize.append(0) + print(fName[-1]); + if createBinFiles: f = open(fName[-1],'w'); + break + +articles = None; # Free memory +if createBinFiles: f.close(); # Close last file + +# Prepare nGram table +dic = {}; # The unsorted dictionary of words found in all nGram runs + # where the definition is the array of counts followed by countSum + +# Run nGram on each date-window +p = None +nResults = 0 +for fN in range(0,len(fName)): + print(fName[fN]) + + # Run the external nGram calculator process, then + # extract output from text2ngram that was returned. + # + # The text2ngram.exe executable is an open source + # project that can be retreived from: + # http://homepages.inf.ed.ac.uk/lzhang10/ngram.html + # + # Options specify find words that show up more than twice (-f2) + # that are between one word (-n1) and two words (-n2) long + if not p is None: # Clean up previous sub-processes + p.stdout.close() + p.stderr.close() + p.terminate() + p.kill() + p = None + + p = subprocess.Popen(["text2ngram", "-n1", "-m1", "-f10", \ + fName[fN]], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + out,err = p.communicate() + out = out.split('\r\n'); + + # Each line (after the first three) of the text2ngram output + # contains the string followed by the number of occurrences + for k in range(3,len(out)): + if not out[k] == '': + + # Remove unprintable characters + out[k] = ''.join(filter(lambda x: x in string.printable, out[k])); + + # Extract word and count + word = re.sub(r' [0-9]*$', '', out[k]); + count = float(re.findall(r'[0-9]*$',out[k])[0]); + + # If word was found add it to output + if len(word) > 1: + try: + + dic[word][fN] = count + dic[word][-1] = dic[word][-1] + count + nResults = nResults + 1 + + except KeyError: + + cntAndSum = [0]*(len(fName) + 1) + cntAndSum[fN] = count + cntAndSum[-1] = cntAndSum[-1] + count + dic[word] = cntAndSum + nResults = nResults + 1 + print('Dictionary has %d words out of %d results' % (len(dic), nResults)) + +if not absCount: + # Convert nGram table from absolute count to + # frequency within each date-window + for word in dic: + dicNCounts = dic[word] + dicNCounts[-1] = dicNCounts[-1] / len(fName) + for winN in range(0, len(fName)): + if fSize[winN] <> 0: + dicNCounts[winN] = dicNCounts[winN] / float(fSize[winN]) + dic[word] = dicNCounts + + +# Create and open output file csv with nGram table +f = open('../2-WordSwarm/nGramOut' + datetime.datetime.now().strftime('%Y%m%d%H%M%S') + '.csv','w'); + +# Write the date row to file +for winN in range(0,len(fName)): + f.write(',%s/%s/%s' % (fName[winN][13:21][4:6], fName[winN][13:21][6:8], fName[winN][13:21][0:4])); + +# Find total count of most common word +for topWordN in range(0, topN): + maxCount = 0 + for word in dic: + if dic[word][-1] > maxCount: + topWord = word + maxCount = dic[word][-1] + + # Write each word as the first column in the row + print(topWord) + f.write('\n' + topWord + ','); + + # Write the counts (or frequency) found within each window + dicNCounts = dic[topWord] + for winN in range(0,len(fName)): + f.write(repr(dicNCounts[winN]) + ','); + + del dic[topWord] + +# Close output CSV file +f.close(); \ No newline at end of file diff --git a/1-Preprocessing/Scraper_MIT_TECH_REVIEW.py b/1-Preprocessing/Scraper_MIT_TECH_REVIEW.py new file mode 100644 index 0000000..557e5fa --- /dev/null +++ b/1-Preprocessing/Scraper_MIT_TECH_REVIEW.py @@ -0,0 +1,77 @@ +# -*- coding: utf-8 -*- +""" Scraper_MIT_TECH_REVIEW.py + + This program is run first, before any of the other + WordSarm programs, to scrape the MIT Tech Review + Energy news feed and save the retrieved articles + to a binary (pickle) file to be read by Processor.py + + This file is part of WordSwarm. + + WordSwarm is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + WordSwarm is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + Copyright 2014 Michael Kane + + @author: Michael Kane +""" + +# Import modules +import urllib2; # For downloading HTML pages +from bs4 import BeautifulSoup # For parsing HTML pages +import pickle; # For saving data to binary file for later nGram processing +from dateutil.parser import * # For parsing timestamps + +# Classes +class Article: + text = ''; # The entire text of the article to process + date = ''; # Formatted as a string in UTC date format +articles = []; + +# Base URL for MIT Technology Review - Energy Archive +baseURL = 'http://www.technologyreview.com/energy/stream/page/'; + +# Process HTML from each page +for k in range(1,245+1): + + # Download HTML and read into Soup + response = urllib2.urlopen(baseURL + '%s' % k); + soup = BeautifulSoup(response); + + # Parse HTML + # All articles are in an 'article' HTML class under a 'ul' + # with a class of type 'stream'. Extract text from the header 'h1' + # and all paragraphs within the 'article' HTML class. A time-stamp + # for the articles can be extracted from the 'time' within the + # HTML 'article' class in a standard UTC format. + articles_raw = \ + soup.find('ul',attrs={'class':'stream'}).find_all('article'); + for a in articles_raw: + articles.append(Article()); + articles[-1].text = a.h1.text; + ps = a.find_all('p'); + for p in ps: + if p.get('class') is None: + articles[-1].text = articles[-1].text + ' ' + p.text; + if '(Week Ending ' in articles[-1].text: + # Ignore summary articles in which the header text + # begins with 'Week Ending ' + articles.pop(); + else: + if ~(a.time.get('datetime') is None): + articles[-1].date = parse(a.time.get('datetime')); + + print(articles[-1].date.__str__()); + +# Save array of articles to binary file for later nGrams processing +filename = 'article_data.out'; +output = open(filename, 'wb'); +pickle.dump(articles, output, -1); +output.close(); \ No newline at end of file diff --git a/1-Preprocessing/Scraper_NSF.py b/1-Preprocessing/Scraper_NSF.py new file mode 100644 index 0000000..06ad48d --- /dev/null +++ b/1-Preprocessing/Scraper_NSF.py @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- +""" Scraper_NSF.py + + This program is run first, before any of the other + WordSarm programs, to scrape the NSF award archive + and save the retrieved title and abstracts + to a binary (pickle) file to be read by Processor.py + + Download and extract all of the archives from the NSF + website (http://www.nsf.gov/awardsearch/download.jsp). + You should have a folder for each year, each containing + XML files for each award. FYI, this is 2.11GB of data. + + Make sure to change the dataPath variable to match + your computer's directory structure. + + + This file is part of WordSwarm. + + WordSwarm is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + WordSwarm is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + Copyright 2014 Michael Kane + + @author: Michael Kane +""" + +# Import modules +import urllib2; # For downloading HTML pages +from bs4 import BeautifulSoup # For parsing HTML pages +import pickle; # For saving data to binary file for later nGram processing +import os # For file and directory handling +from dateutil.parser import * # For parsing timestamps + +# Classes +class Article: + text = ''; # The entire text of the article to process + date = ''; # Formatted as a string in UTC date format +articles = []; + +# Data location +dataPath = './NSF'; + +# Traverse all xml files in subdirectories of the dataPath +for dirname, dirnames, filenames in os.walk(dataPath): + for filename in filenames: + if filename[-4:] == '.xml': + print(dirname, filename) + + data = open(os.getcwd() + dirname + '/' + filename, 'r') + soup = BeautifulSoup(data) + + articles.append(Article()); + articles[-1].text = soup.find('awardtitle').text + soup.find('abstractnarration').text + articles[-1].date = parse(soup.find('awardeffectivedate').text) + +# Save array of articles to binary file for later nGrams processing +filename = 'article_data.out' +output = open(filename, 'wb') +pickle.dump(articles, output, -1) +output.close() + \ No newline at end of file diff --git a/1-Preprocessing/WordBlacklist.py b/1-Preprocessing/WordBlacklist.py new file mode 100644 index 0000000..eb355c9 --- /dev/null +++ b/1-Preprocessing/WordBlacklist.py @@ -0,0 +1,1208 @@ +# -*- coding: utf-8 -*- +""" WordBlacklist.py + + This file lists all the words that should be + ignored when populating the word swarm and + when calculating word frequency. + Used by Processor.py + + Original list of words retrieved from + open source software WordCarm from here: + https://wordcram.googlecode.com/svn/javadoc/constant-values.html#wordcram.text.StopWords.ENGLISH + + Also includes common word list from: + http://www.bckelk.ukfsn.org/words/uk1000n.html + + This file is part of WordSwarm. + + WordSwarm is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + WordSwarm is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + Copyright 2014 Michael Kane + + @author: Michael Kane +""" + +WordBlacklist = [ \ + "a",\ + "about",\ + "above",\ + "after",\ + "again",\ + "against",\ + "all",\ + "am",\ + "an",\ + "and",\ + "any",\ + "are",\ + "aren\'t",\ + "as",\ + "at",\ + "be",\ + "because",\ + "been",\ + "before",\ + "being",\ + "below",\ + "between",\ + "both",\ + "but",\ + "by",\ + "can\'t",\ + "cannot",\ + "could",\ + "couldn\'t",\ + "did",\ + "didn\'t",\ + "do",\ + "does",\ + "doesn\'t",\ + "doing",\ + "don\'t",\ + "down",\ + "during",\ + "each",\ + "few",\ + "for",\ + "from",\ + "further",\ + "had",\ + "hadn\'t",\ + "has",\ + "hasn\'t",\ + "have",\ + "haven\'t",\ + "having",\ + "he",\ + "he\'d",\ + "he\'ll",\ + "he\'s",\ + "her",\ + "here",\ + "here\'s",\ + "hers",\ + "herself",\ + "him",\ + "himself",\ + "his",\ + "how",\ + "how\'s",\ + "i",\ + "i\'d",\ + "i\'ll",\ + "i\'m",\ + "i\'ve",\ + "if",\ + "in",\ + "into",\ + "is",\ + "isn\'t",\ + "it",\ + "it\'s",\ + "its",\ + "itself",\ + "let\'s",\ + "me",\ + "more",\ + "most",\ + "mustn\'t",\ + "my",\ + "myself",\ + "no",\ + "nor",\ + "not",\ + "of",\ + "off",\ + "on",\ + "once",\ + "only",\ + "or",\ + "other",\ + "ought",\ + "our",\ + "ours",\ + "ourselves",\ + "out",\ + "over",\ + "own",\ + "same",\ + "shan\'t",\ + "she",\ + "she\'d",\ + "she\'ll",\ + "she\'s",\ + "should",\ + "shouldn\'t",\ + "so",\ + "some",\ + "such",\ + "than",\ + "that",\ + "that\'s",\ + "the",\ + "their",\ + "theirs",\ + "them",\ + "themselves",\ + "then",\ + "there",\ + "there\'s",\ + "these",\ + "they",\ + "they\'d",\ + "they\'ll",\ + "they\'re",\ + "they\'ve",\ + "this",\ + "those",\ + "through",\ + "to",\ + "too",\ + "under",\ + "until",\ + "up",\ + "very",\ + "was",\ + "wasn\'t",\ + "we",\ + "we\'d",\ + "we\'ll",\ + "we\'re",\ + "we\'ve",\ + "were",\ + "weren\'t",\ + "what",\ + "what\'s",\ + "when",\ + "when\'s",\ + "where",\ + "where\'s",\ + "which",\ + "while",\ + "who",\ + "who\'s",\ + "whom",\ + "why",\ + "why\'s",\ + "with",\ + "won\'t",\ + "would",\ + "wouldn\'t",\ + "you",\ + "you\'d",\ + "you\'ll",\ + "you\'re",\ + "you\'ve",\ + "your",\ + "yours",\ + "yourself",\ + "yourselves",\ + "the",\ + "and",\ + "to",\ + "of",\ + "a",\ + "I",\ + "in",\ + "was",\ + "he",\ + "that",\ + "it",\ + "his",\ + "her",\ + "you",\ + "as",\ + "had",\ + "with",\ + "for",\ + "she",\ + "not",\ + "at",\ + "but",\ + "be",\ + "my",\ + "on",\ + "have",\ + "him",\ + "is",\ + "said",\ + "me",\ + "which",\ + "by",\ + "so",\ + "this",\ + "all",\ + "from",\ + "they",\ + "no",\ + "were",\ + "if",\ + "would",\ + "or",\ + "when",\ + "what",\ + "there",\ + "been",\ + "one",\ + "could",\ + "very",\ + "an",\ + "who",\ + "them",\ + "Mr",\ + "we",\ + "now",\ + "more",\ + "out",\ + "do",\ + "are",\ + "up",\ + "their",\ + "your",\ + "will",\ + "little",\ + "than",\ + "then",\ + "some",\ + "into",\ + "any",\ + "well",\ + "much",\ + "about",\ + "time",\ + "know",\ + "should",\ + "man",\ + "did",\ + "like",\ + "upon",\ + "such",\ + "never",\ + "only",\ + "good",\ + "how",\ + "before",\ + "other",\ + "see",\ + "must",\ + "am",\ + "own",\ + "come",\ + "down",\ + "say",\ + "after",\ + "think",\ + "made",\ + "might",\ + "being",\ + "Mrs",\ + "again",\ + "great",\ + "two",\ + "can",\ + "go",\ + "over",\ + "too",\ + "here",\ + "came",\ + "old",\ + "thought",\ + "himself",\ + "where",\ + "our",\ + "may",\ + "first",\ + "way",\ + "has",\ + "though",\ + "without",\ + "went",\ + "us",\ + "away",\ + "day",\ + "make",\ + "these",\ + "young",\ + "nothing",\ + "long",\ + "shall",\ + "sir",\ + "back",\ + "don't",\ + "house",\ + "ever",\ + "yet",\ + "take",\ + "every",\ + "hand",\ + "most",\ + "last",\ + "eyes",\ + "its",\ + "miss",\ + "having",\ + "off",\ + "looked",\ + "even",\ + "while",\ + "dear",\ + "look",\ + "many",\ + "life",\ + "still",\ + "mind",\ + "quite",\ + "another",\ + "those",\ + "just",\ + "head",\ + "tell",\ + "better",\ + "always",\ + "saw",\ + "seemed",\ + "put",\ + "face",\ + "let",\ + "took",\ + "poor",\ + "place",\ + "why",\ + "done",\ + "herself",\ + "found",\ + "through",\ + "same",\ + "going",\ + "under",\ + "enough",\ + "soon",\ + "home",\ + "give",\ + "indeed",\ + "left",\ + "get",\ + "once",\ + "mother",\ + "heard",\ + "myself",\ + "rather",\ + "love",\ + "knew",\ + "got",\ + "lady",\ + "room",\ + "something",\ + "yes",\ + "thing",\ + "father",\ + "perhaps",\ + "sure",\ + "heart",\ + "oh",\ + "right",\ + "against",\ + "three",\ + "men",\ + "night",\ + "people",\ + "door",\ + "told",\ + "round",\ + "because",\ + "woman",\ + "till",\ + "felt",\ + "between",\ + "both",\ + "side",\ + "seen",\ + "morning",\ + "began",\ + "whom",\ + "however",\ + "asked",\ + "things",\ + "part",\ + "almost",\ + "moment",\ + "looking",\ + "want",\ + "far",\ + "hands",\ + "gone",\ + "world",\ + "few",\ + "towards",\ + "gave",\ + "friend",\ + "name",\ + "best",\ + "word",\ + "turned",\ + "kind",\ + "cried",\ + "since",\ + "anything",\ + "next",\ + "find",\ + "half",\ + "hope",\ + "called",\ + "nor",\ + "words",\ + "hear",\ + "brought",\ + "set",\ + "each",\ + "replied",\ + "wish",\ + "voice",\ + "whole",\ + "together",\ + "manner",\ + "new",\ + "believe",\ + "course",\ + "least",\ + "years",\ + "answered",\ + "among",\ + "stood",\ + "sat",\ + "speak",\ + "leave",\ + "work",\ + "keep",\ + "taken",\ + "end",\ + "less",\ + "present",\ + "family",\ + "often",\ + "wife",\ + "whether",\ + "master",\ + "coming",\ + "mean",\ + "returned",\ + "evening",\ + "light",\ + "money",\ + "cannot",\ + "whose",\ + "boy",\ + "days",\ + "near",\ + "matter",\ + "suppose",\ + "gentleman",\ + "used",\ + "says",\ + "really",\ + "rest",\ + "business",\ + "full",\ + "help",\ + "child",\ + "sort",\ + "passed",\ + "lay",\ + "small",\ + "behind",\ + "girl",\ + "feel",\ + "fire",\ + "care",\ + "alone",\ + "open",\ + "person",\ + "call",\ + "given",\ + "I'll",\ + "sometimes",\ + "making",\ + "short",\ + "else",\ + "large",\ + "within",\ + "chapter",\ + "TRUE",\ + "country",\ + "times",\ + "ask",\ + "answer",\ + "air",\ + "kept",\ + "hour",\ + "letter",\ + "happy",\ + "reason",\ + "pretty",\ + "husband",\ + "certain",\ + "others",\ + "ought",\ + "does",\ + "known",\ + "it's",\ + "bed",\ + "table",\ + "that's",\ + "ready",\ + "read",\ + "already",\ + "pleasure",\ + "either",\ + "means",\ + "spoke",\ + "taking",\ + "friends",\ + "talk",\ + "hard",\ + "walked",\ + "turn",\ + "strong",\ + "thus",\ + "yourself",\ + "high",\ + "along",\ + "above",\ + "feeling",\ + "glad",\ + "children",\ + "doubt",\ + "nature",\ + "themselves",\ + "black",\ + "hardly",\ + "town",\ + "sense",\ + "saying",\ + "deal",\ + "account",\ + "use",\ + "white",\ + "bad",\ + "everything",\ + "can't",\ + "neither",\ + "wanted",\ + "mine",\ + "close",\ + "return",\ + "dark",\ + "fell",\ + "subject",\ + "bear",\ + "appeared",\ + "fear",\ + "state",\ + "thinking",\ + "also",\ + "point",\ + "therefore",\ + "fine",\ + "case",\ + "doing",\ + "held",\ + "certainly",\ + "walk",\ + "lost",\ + "question",\ + "company",\ + "continued",\ + "fellow",\ + "truth",\ + "water",\ + "possible",\ + "hold",\ + "afraid",\ + "bring",\ + "honour",\ + "low",\ + "ground",\ + "added",\ + "five",\ + "remember",\ + "except",\ + "power",\ + "seeing",\ + "dead",\ + "I'm",\ + "usual",\ + "able",\ + "second",\ + "arms",\ + "late",\ + "opinion",\ + "window",\ + "brother",\ + "live",\ + "four",\ + "none",\ + "death",\ + "arm",\ + "road",\ + "hair",\ + "sister",\ + "entered",\ + "sent",\ + "married",\ + "longer",\ + "immediately",\ + "god",\ + "women",\ + "hours",\ + "ten",\ + "understand",\ + "son",\ + "horse",\ + "wonder",\ + "cold",\ + "beyond",\ + "please",\ + "fair",\ + "became",\ + "sight",\ + "met",\ + "afterwards",\ + "eye",\ + "year",\ + "show",\ + "general",\ + "itself",\ + "silence",\ + "lord",\ + "wrong",\ + "turning",\ + "daughter",\ + "stay",\ + "forward",\ + "O",\ + "interest",\ + "thoughts",\ + "followed",\ + "won't",\ + "different",\ + "opened",\ + "several",\ + "idea",\ + "received",\ + "change",\ + "laid",\ + "strange",\ + "nobody",\ + "fact",\ + "during",\ + "feet",\ + "tears",\ + "run",\ + "purpose",\ + "character",\ + "body",\ + "ran",\ + "past",\ + "order",\ + "need",\ + "pleased",\ + "trouble",\ + "whatever",\ + "dinner",\ + "happened",\ + "sitting",\ + "getting",\ + "there's",\ + "besides",\ + "soul",\ + "ill",\ + "early",\ + "rose",\ + "aunt",\ + "hundred",\ + "minutes",\ + "across",\ + "carried",\ + "sit",\ + "observed",\ + "suddenly",\ + "creature",\ + "conversation",\ + "worse",\ + "six",\ + "quiet",\ + "chair",\ + "doctor",\ + "tone",\ + "standing",\ + "living",\ + "sorry",\ + "stand",\ + "meet",\ + "instead",\ + "wished",\ + "ah",\ + "lived",\ + "try",\ + "red",\ + "smile",\ + "sound",\ + "expected",\ + "silent",\ + "common",\ + "meant",\ + "tried",\ + "until",\ + "mouth",\ + "distance",\ + "occasion",\ + "cut",\ + "marry",\ + "likely",\ + "length",\ + "story",\ + "visit",\ + "deep",\ + "seems",\ + "street",\ + "remained",\ + "become",\ + "led",\ + "speaking",\ + "natural",\ + "giving",\ + "further",\ + "struck",\ + "week",\ + "loved",\ + "drew",\ + "seem",\ + "church",\ + "knows",\ + "object",\ + "ladies",\ + "marriage",\ + "book",\ + "appearance",\ + "pay",\ + "I've",\ + "obliged",\ + "particular",\ + "pass",\ + "thank",\ + "form",\ + "knowing",\ + "lips",\ + "knowledge",\ + "former",\ + "blood",\ + "sake",\ + "fortune",\ + "necessary",\ + "presence",\ + "feelings",\ + "corner",\ + "beautiful",\ + "talking",\ + "spirit",\ + "ago",\ + "foot",\ + "circumstances",\ + "wind",\ + "presently",\ + "comes",\ + "attention",\ + "wait",\ + "play",\ + "easy",\ + "real",\ + "clear",\ + "worth",\ + "cause",\ + "send",\ + "spirits",\ + "chance",\ + "didn't",\ + "view",\ + "pleasant",\ + "party",\ + "beginning",\ + "horses",\ + "stopped",\ + "notice",\ + "duty",\ + "he's",\ + "age",\ + "figure",\ + "leaving",\ + "sleep",\ + "entirely",\ + "twenty",\ + "fall",\ + "promise",\ + "months",\ + "broken",\ + "heavy",\ + "secret",\ + "thousand",\ + "happiness",\ + "comfort",\ + "minute",\ + "act",\ + "human",\ + "fancy",\ + "strength",\ + "showed",\ + "pounds",\ + "nearly",\ + "probably",\ + "captain",\ + "piece",\ + "school",\ + "write",\ + "laughed",\ + "reached",\ + "repeated",\ + "walking",\ + "father's",\ + "heaven",\ + "beauty",\ + "shook",\ + "sun",\ + "waiting",\ + "moved",\ + "bit",\ + "desire",\ + "news",\ + "front",\ + "effect",\ + "laugh",\ + "uncle",\ + "fit",\ + "miles",\ + "handsome",\ + "caught",\ + "hat",\ + "regard",\ + "gentlemen",\ + "supposed",\ + "easily",\ + "impossible",\ + "glass",\ + "resolved",\ + "grew",\ + "consider",\ + "green",\ + "considered",\ + "unless",\ + "stop",\ + "forth",\ + "expect",\ + "perfectly",\ + "altogether",\ + "surprise",\ + "sudden",\ + "free",\ + "exactly",\ + "grave",\ + "carriage",\ + "believed",\ + "service",\ + "angry",\ + "putting",\ + "carry",\ + "everybody",\ + "mentioned",\ + "looks",\ + "scarcely",\ + "society",\ + "affection",\ + "exclaimed",\ + "dress",\ + "die",\ + "earth",\ + "latter",\ + "garden",\ + "step",\ + "perfect",\ + "countenance",\ + "liked",\ + "dare",\ + "pain",\ + "companion",\ + "journey",\ + "paper",\ + "opportunity",\ + "makes",\ + "honest",\ + "arrived",\ + "you'll",\ + "bright",\ + "pity",\ + "directly",\ + "cry",\ + "trust",\ + "fast",\ + "ye",\ + "warm",\ + "danger",\ + "trees",\ + "breakfast",\ + "rich",\ + "engaged",\ + "proper",\ + "talked",\ + "respect",\ + "fixed",\ + "hill",\ + "wall",\ + "determined",\ + "wild",\ + "shut",\ + "top",\ + "plain",\ + "scene",\ + "sweet",\ + "especially",\ + "public",\ + "acquaintance",\ + "forget",\ + "history",\ + "pale",\ + "pray",\ + "books",\ + "afternoon",\ + "man's",\ + "otherwise",\ + "mention",\ + "position",\ + "speech",\ + "gate",\ + "'em",\ + "boys",\ + "yours",\ + "drink",\ + "slowly",\ + "broke",\ + "clothes",\ + "fond",\ + "pride",\ + "watch",\ + "sooner",\ + "settled",\ + "paid",\ + "reply",\ + "tea",\ + "lie",\ + "running",\ + "died",\ + "gentle",\ + "particularly",\ + "allowed",\ + "outside",\ + "placed",\ + "joy",\ + "hearing",\ + "note",\ + "condition",\ + "follow",\ + "begin",\ + "neck",\ + "serious",\ + "hurt",\ + "kindness",\ + "mere",\ + "farther",\ + "changed",\ + "o'clock",\ + "passing",\ + "girls",\ + "force",\ + "situation",\ + "greater",\ + "expression",\ + "eat",\ + "reading",\ + "spoken",\ + "raised",\ + "anybody",\ + "started",\ + "following",\ + "although",\ + "sea",\ + "proud",\ + "future",\ + "quick",\ + "safe",\ + "temper",\ + "laughing",\ + "ears",\ + "difficulty",\ + "meaning",\ + "servant",\ + "sad",\ + "advantage",\ + "appear",\ + "offer",\ + "breath",\ + "opposite",\ + "number",\ + "miserable",\ + "law",\ + "rising",\ + "favour",\ + "save",\ + "twice",\ + "single",\ + "blue",\ + "noise",\ + "stone",\ + "mistress",\ + "surprised",\ + "allow",\ + "spot",\ + "burst",\ + "keeping",\ + "line",\ + "understood",\ + "court",\ + "finding",\ + "direction",\ + "anxious",\ + "pocket",\ + "around",\ + "conduct",\ + "loss",\ + "fresh",\ + "below",\ + "hall",\ + "satisfaction",\ + "land",\ + "telling",\ + "passion",\ + "floor",\ + "break",\ + "lying",\ + "waited",\ + "closed",\ + "meeting",\ + "trying",\ + "seat",\ + "king",\ + "confidence",\ + "offered",\ + "stranger",\ + "somebody",\ + "matters",\ + "noble",\ + "pardon",\ + "private",\ + "sharp",\ + "evil",\ + "weeks",\ + "justice",\ + "hot",\ + "cast",\ + "letters",\ + "youth",\ + "lives",\ + "health",\ + "finished",\ + "hoped",\ + "holding",\ + "touch",\ + "spite",\ + "delight",\ + "bound",\ + "consequence",\ + "rain",\ + "wouldn't",\ + "third",\ + "hung",\ + "ways",\ + "weather",\ + "written",\ + "difference",\ + "kitchen",\ + "she's",\ + "mother's",\ + "persons",\ + "quarter",\ + "promised",\ + "hopes",\ + "brown",\ + "nay",\ + "seven",\ + "simple",\ + "wood",\ + "beside",\ + "middle",\ + "ashamed",\ + "lose",\ + "dreadful",\ + "move",\ + "generally",\ + "cousin",\ + "surely",\ + "satisfied",\ + "bent",\ + "shoulder",\ + "art",\ + "field",\ + "quickly",\ + "thrown",\ + "tired",\ + "share",\ + "pair",\ + "to-morrow",\ + "aware",\ + "colour",\ + "writing",\ + "whenever",\ + "quietly",\ + "fool",\ + "forced",\ + "touched",\ + "smiling",\ + "taste",\ + "dog",\ + "spent",\ + "steps",\ + "worst",\ + "legs",\ + "watched",\ + "ay",\ + "thee",\ + "eight",\ + "worthy",\ + "wrote",\ + "manners",\ + "proceeded",\ + "frightened",\ + "somewhat",\ + "born",\ + "greatest",\ + "charge",\ + "degree",\ + "shame",\ + "places",\ + "ma'am",\ + "couldn't",\ + "tongue",\ + "according",\ + "box",\ + "wine",\ + "filled",\ + "servants",\ + "calling",\ + "fallen",\ + "non",\ + "br"]; \ No newline at end of file diff --git a/1-Preprocessing/text2ngram.exe b/1-Preprocessing/text2ngram.exe new file mode 100644 index 0000000..0854597 Binary files /dev/null and b/1-Preprocessing/text2ngram.exe differ diff --git a/2-WordSwarm/data/themes/default/Vera.ttf b/2-WordSwarm/data/themes/default/Vera.ttf new file mode 100644 index 0000000..58cd6b5 Binary files /dev/null and b/2-WordSwarm/data/themes/default/Vera.ttf differ diff --git a/2-WordSwarm/data/themes/default/box.down.png b/2-WordSwarm/data/themes/default/box.down.png new file mode 100644 index 0000000..b9e965d Binary files /dev/null and b/2-WordSwarm/data/themes/default/box.down.png differ diff --git a/2-WordSwarm/data/themes/default/box.hover.png b/2-WordSwarm/data/themes/default/box.hover.png new file mode 100644 index 0000000..ef3c225 Binary files /dev/null and b/2-WordSwarm/data/themes/default/box.hover.png differ diff --git a/2-WordSwarm/data/themes/default/box.normal.png b/2-WordSwarm/data/themes/default/box.normal.png new file mode 100644 index 0000000..90f8d40 Binary files /dev/null and b/2-WordSwarm/data/themes/default/box.normal.png differ diff --git a/2-WordSwarm/data/themes/default/button.down.tga b/2-WordSwarm/data/themes/default/button.down.tga new file mode 100644 index 0000000..64873c1 Binary files /dev/null and b/2-WordSwarm/data/themes/default/button.down.tga differ diff --git a/2-WordSwarm/data/themes/default/button.hover.tga b/2-WordSwarm/data/themes/default/button.hover.tga new file mode 100644 index 0000000..5e5c53a Binary files /dev/null and b/2-WordSwarm/data/themes/default/button.hover.tga differ diff --git a/2-WordSwarm/data/themes/default/button.normal.tga b/2-WordSwarm/data/themes/default/button.normal.tga new file mode 100644 index 0000000..e9371c7 Binary files /dev/null and b/2-WordSwarm/data/themes/default/button.normal.tga differ diff --git a/2-WordSwarm/data/themes/default/check.png b/2-WordSwarm/data/themes/default/check.png new file mode 100644 index 0000000..4ef58a3 Binary files /dev/null and b/2-WordSwarm/data/themes/default/check.png differ diff --git a/2-WordSwarm/data/themes/default/checkbox.off.hover.tga b/2-WordSwarm/data/themes/default/checkbox.off.hover.tga new file mode 100644 index 0000000..9a4d8a8 Binary files /dev/null and b/2-WordSwarm/data/themes/default/checkbox.off.hover.tga differ diff --git a/2-WordSwarm/data/themes/default/checkbox.off.normal.tga b/2-WordSwarm/data/themes/default/checkbox.off.normal.tga new file mode 100644 index 0000000..de59f19 Binary files /dev/null and b/2-WordSwarm/data/themes/default/checkbox.off.normal.tga differ diff --git a/2-WordSwarm/data/themes/default/checkbox.on.hover.tga b/2-WordSwarm/data/themes/default/checkbox.on.hover.tga new file mode 100644 index 0000000..4940c26 Binary files /dev/null and b/2-WordSwarm/data/themes/default/checkbox.on.hover.tga differ diff --git a/2-WordSwarm/data/themes/default/checkbox.on.normal.tga b/2-WordSwarm/data/themes/default/checkbox.on.normal.tga new file mode 100644 index 0000000..9cf658e Binary files /dev/null and b/2-WordSwarm/data/themes/default/checkbox.on.normal.tga differ diff --git a/2-WordSwarm/data/themes/default/config.txt b/2-WordSwarm/data/themes/default/config.txt new file mode 100644 index 0000000..d476b63 --- /dev/null +++ b/2-WordSwarm/data/themes/default/config.txt @@ -0,0 +1,291 @@ +desktop background desktop.png + +input font Vera.ttf 16 +input background input.normal.png +input color #000000 +input:focus background input.focus.png +input padding_left 6 +input padding_right 6 +input padding_top 3 +input padding_bottom 3 + +link font Vera.ttf 24 +link color #0000FF +link:hover color #FF0000 +link:down color #00FF00 + +label font Vera.ttf 12 +label color #000000 + +document font Vera.ttf 16 +document color #000000 +div font Vera.ttf 16 +div color #000000 + +td font Vera.ttf 16 +td color #000000 +th font Vera.ttf 16 +th color #000000 + +h1 font Vera.ttf 24 +h1 color #000000 +h2 font Vera.ttf 20 +h2 color #000000 +h3 font Vera.ttf 16 +h3 color #000000 +h4 font Vera.ttf 14 +h4 color #000000 +h5 font Vera.ttf 12 +h5 color #000000 +h6 font Vera.ttf 10 +h6 color #000000 + +ul font Vera.ttf 16 +ul color #000000 +ol font Vera.ttf 16 +ol color #000000 +li font Vera.ttf 16 +li color #000000 +li padding_left 32 + +pre font mono 16 +pre color #000000 +code font mono 16 +code color #000000 + +checkbox off checkbox.off.normal.tga +checkbox on checkbox.on.normal.tga +checkbox:hover off checkbox.off.hover.tga +checkbox:hover on checkbox.on.hover.tga +checkbox:down off checkbox.off.hover.tga +checkbox:down on checkbox.on.hover.tga + +switch off checkbox.off.normal.tga +switch on checkbox.on.normal.tga +switch:hover off checkbox.off.hover.tga +switch:hover on checkbox.on.hover.tga +switch:down off checkbox.off.hover.tga +switch:down on checkbox.on.hover.tga + +radio off radio.off.normal.tga +radio on radio.on.normal.tga +radio:hover off radio.off.hover.tga +radio:hover on radio.on.hover.tga +radio:down off radio.off.hover.tga +radio:down on radio.on.hover.tga + +button background button.normal.tga +button:hover background button.hover.tga +button:down background button.down.tga +button padding_left 8 +button padding_right 8 +button padding_top 1 +button padding_bottom 1 +button.label font Vera.ttf 16 +button.label color #000000 + +slider background slider.tga +slider bar slider.bar.normal.tga +slider:hover bar slider.bar.hover.tga +slider width 16 +slider height 16 + +hslider background hslider.tga +hslider bar hslider.bar.normal.tga +hslider:hover bar hslider.bar.hover.tga +hslider:down bar hslider.bar.hover.tga +hslider width 16 +hslider height 16 + +vslider background vslider.tga +vslider bar vslider.bar.normal.tga +vslider:hover bar vslider.bar.hover.tga +vslider:down bar vslider.bar.hover.tga +vslider width 16 +vslider height 16 + +xhscrollbar height 16 +xhscrollbar background scroller.slide.h.tga +xhscrollbar bar scroller.slide.bar.normal.tga +xhscrollbar:hover bar scroller.slide.bar.hover.tga + +xvscrollbar width 16 +xvscrollbar background scroller.slide.v.tga +xvscrollbar bar scroller.slide.bar.normal.tga +xvscrollbar:hover bar scroller.slide.bar.hover.tga + +hscrollbar.slider background hslider.tga +hscrollbar.slider bar hslider.bar.normal.tga +hscrollbar.slider:hover bar hslider.bar.hover.tga +hscrollbar.slider:down bar hslider.bar.hover.tga +hscrollbar.slider width 16 +hscrollbar.slider height 16 +hscrollbar minus hslider.left.tga +hscrollbar plus hslider.right.tga + +vscrollbar.slider background vslider.tga +vscrollbar.slider bar vslider.bar.normal.tga +vscrollbar.slider:hover bar vslider.bar.hover.tga +vscrollbar.slider:down bar vslider.bar.hover.tga +vscrollbar.slider width 16 +vscrollbar.slider height 16 +vscrollbar minus vslider.up.tga +vscrollbar plus vslider.down.tga + + +select.selected background select.selected.normal.tga +select.selected:hover background select.selected.hover.tga +select.selected:down background select.selected.down.tga +select.selected padding_left 4 +select.selected padding_right 4 +select.selected padding_top 1 +select.selected padding_bottom 1 +select.arrow background select.arrow.normal.tga +select.arrow:hover background select.arrow.hover.tga +select.arrow:down background select.arrow.down.tga +select.arrow padding_left 1 +select.arrow padding_right 1 + +select.options background select.options.png +select.option background select.option.normal.png +select.option:hover background select.option.hover.png +select.option:down background select.option.hover.png +select.option padding_left 4 +select.option padding_right 4 +select.option padding_top 1 +select.option padding_bottom 1 +#select.option border_top 1 +#select.option border_right 1 +#select.option border_bottom 1 +#select.option border_left 1 + +select.option.label font Vera.ttf 16 +select.option.label color #000000 +select.options padding_left 1 +select.options padding_right 1 +select.options padding_top 1 +select.options padding_bottom 1 +select arrow select.arrow.png + + +dialog background dialog.bar.png +xdialog.bar background dialog.bar.png +dialog.bar padding_left 8 +dialog.bar padding_right 8 +dialog.bar padding_top 2 +dialog.bar padding_bottom 1 +dialog.bar.close image dialog.close.normal.tga +dialog.bar.close:hover image dialog.close.hover.tga +dialog.bar.close:down image dialog.close.down.tga +dialog.main background dialog.png +dialog.main padding_left 8 +dialog.main padding_right 8 +dialog.main padding_top 4 +dialog.main padding_bottom 4 + +keysym font Vera.ttf 16 +keysym background input.normal.png +keysym color #000000 +keysym:focus background input.focus.png +keysym padding_left 6 +keysym padding_right 6 +keysym padding_top 3 +keysym padding_bottom 3 + +tool background tool.normal.tga +tool:hover background tool.hover.tga +tool:down background tool.down.tga +tool padding_left 4 +tool padding_right 4 +tool padding_top 1 +tool padding_bottom 1 +tool.label font Vera.ttf 16 +tool.label color #000000 + +menu background menu.normal.tga +menu:hover background menu.hover.tga +menu:down background menu.down.tga +menu padding_left 6 +menu padding_right 6 +menu padding_top 3 +menu padding_bottom 3 +menu.label font Vera.ttf 16 +menu.label color #000000 + +menu-open background menu.down.tga +menu-open:hover background menu.down.tga +menu-open:down background menu.down.tga +menu-open padding_left 6 +menu-open padding_right 6 +menu-open padding_top 3 +menu-open padding_bottom 3 + +menu.options background select.options.png +menu.option background select.option.normal.png +menu.option:hover background select.option.hover.png +menu.option:down background select.option.hover.png +menu.option padding_left 6 +menu.option padding_right 6 +menu.option padding_top 1 +menu.option padding_bottom 1 +menu.option.label font Vera.ttf 16 +menu.option.label color #000000 +menu.options padding_left 1 +menu.options padding_right 1 +menu.options padding_top 1 +menu.options padding_bottom 1 +menu arrow select.arrow.tga + + +scrollarea.content background #ffffff +scrollarea.content padding_left 1 +scrollarea.content padding_right 1 +scrollarea.content padding_top 1 +scrollarea.content padding_bottom 1 + + +list.item background list.item.normal.png +list.item:hover background list.item.down.png +list.item:down background list.item.down.png +list.item padding_left 4 +list.item padding_right 4 +list.item padding_top 2 +list.item padding_bottom 2 +list.item margin_bottom 1 +list.item align -1 +list.item.label font Vera.ttf 14 +list.item.label color #000000 + +list background list.png +list padding_left 1 +list padding_right 1 +list padding_top 1 +list padding_bottom 1 +list.content background #eeeeee +list.content padding_left 1 +list.content padding_right 1 +list.content padding_top 1 +list.content padding_bottom 1 + +filedialog.folder image filebrowser.folder.png +filedialog.label font Vera.ttf 14 +filedialog.label color #000000 +filedialog.title.label font Vera.ttf 16 +filedialog.title.label color #000000 +filedialog.input font Vera.ttf 14 +filedialog.input background input.normal.png +filedialog.input color #000000 +filedialog.input:focus background input.focus.png +filedialog.input padding_left 6 +filedialog.input padding_right 6 +filedialog.input padding_top 3 +filedialog.input padding_bottom 3 + +dialog.title.label font Vera.ttf 16 +dialog.title.label color #000000 + + +progressbar background progressbar.tga +progressbar bar progressbar.bar.tga +progressbar width 16 +progressbar height 16 diff --git a/2-WordSwarm/data/themes/default/console.input.focus.png b/2-WordSwarm/data/themes/default/console.input.focus.png new file mode 100644 index 0000000..819d835 Binary files /dev/null and b/2-WordSwarm/data/themes/default/console.input.focus.png differ diff --git a/2-WordSwarm/data/themes/default/console.input.normal.png b/2-WordSwarm/data/themes/default/console.input.normal.png new file mode 100644 index 0000000..a14e329 Binary files /dev/null and b/2-WordSwarm/data/themes/default/console.input.normal.png differ diff --git a/2-WordSwarm/data/themes/default/console.png b/2-WordSwarm/data/themes/default/console.png new file mode 100644 index 0000000..a14e329 Binary files /dev/null and b/2-WordSwarm/data/themes/default/console.png differ diff --git a/2-WordSwarm/data/themes/default/desktop.png b/2-WordSwarm/data/themes/default/desktop.png new file mode 100644 index 0000000..c83f5cd Binary files /dev/null and b/2-WordSwarm/data/themes/default/desktop.png differ diff --git a/2-WordSwarm/data/themes/default/dialog.bar.png b/2-WordSwarm/data/themes/default/dialog.bar.png new file mode 100644 index 0000000..e014e04 Binary files /dev/null and b/2-WordSwarm/data/themes/default/dialog.bar.png differ diff --git a/2-WordSwarm/data/themes/default/dialog.close.down.tga b/2-WordSwarm/data/themes/default/dialog.close.down.tga new file mode 100644 index 0000000..ade4813 Binary files /dev/null and b/2-WordSwarm/data/themes/default/dialog.close.down.tga differ diff --git a/2-WordSwarm/data/themes/default/dialog.close.hover.tga b/2-WordSwarm/data/themes/default/dialog.close.hover.tga new file mode 100644 index 0000000..9f36bb7 Binary files /dev/null and b/2-WordSwarm/data/themes/default/dialog.close.hover.tga differ diff --git a/2-WordSwarm/data/themes/default/dialog.close.normal.tga b/2-WordSwarm/data/themes/default/dialog.close.normal.tga new file mode 100644 index 0000000..ee3a5d4 Binary files /dev/null and b/2-WordSwarm/data/themes/default/dialog.close.normal.tga differ diff --git a/2-WordSwarm/data/themes/default/dialog.png b/2-WordSwarm/data/themes/default/dialog.png new file mode 100644 index 0000000..26ae2a6 Binary files /dev/null and b/2-WordSwarm/data/themes/default/dialog.png differ diff --git a/2-WordSwarm/data/themes/default/dot.down.png b/2-WordSwarm/data/themes/default/dot.down.png new file mode 100644 index 0000000..ab117a7 Binary files /dev/null and b/2-WordSwarm/data/themes/default/dot.down.png differ diff --git a/2-WordSwarm/data/themes/default/dot.hover.png b/2-WordSwarm/data/themes/default/dot.hover.png new file mode 100644 index 0000000..090f07d Binary files /dev/null and b/2-WordSwarm/data/themes/default/dot.hover.png differ diff --git a/2-WordSwarm/data/themes/default/dot.normal.png b/2-WordSwarm/data/themes/default/dot.normal.png new file mode 100644 index 0000000..55bd736 Binary files /dev/null and b/2-WordSwarm/data/themes/default/dot.normal.png differ diff --git a/2-WordSwarm/data/themes/default/down.png b/2-WordSwarm/data/themes/default/down.png new file mode 100644 index 0000000..7532249 Binary files /dev/null and b/2-WordSwarm/data/themes/default/down.png differ diff --git a/2-WordSwarm/data/themes/default/filebrowser.folder.png b/2-WordSwarm/data/themes/default/filebrowser.folder.png new file mode 100644 index 0000000..4a3bd2c Binary files /dev/null and b/2-WordSwarm/data/themes/default/filebrowser.folder.png differ diff --git a/2-WordSwarm/data/themes/default/generate.py b/2-WordSwarm/data/themes/default/generate.py new file mode 100644 index 0000000..2531cbe --- /dev/null +++ b/2-WordSwarm/data/themes/default/generate.py @@ -0,0 +1,98 @@ +import pygame +from pygame.locals import * +pygame.display.init() +pygame.display.set_mode((80,80),32) + +def prep(name): + fname = name+".png" + img = pygame.image.load(fname) + w,h = img.get_width()/2,img.get_height()/2 + + out = pygame.Surface((w*3,h*3),SWSURFACE|SRCALPHA,32) + out.fill((0,0,0,0)) + out.blit(img.subsurface(0,0,w,h),(0,0)) + out.blit(img.subsurface(w,0,w,h),(w*2,0)) + out.blit(img.subsurface(0,h,w,h),(0,h*2)) + out.blit(img.subsurface(w,h,w,h),(w*2,h*2)) + for i in range(0,w): + img = out.subsurface((w-1,0,1,h*3)).convert_alpha() + out.blit(img,(w+i,0)) + for i in range(0,h): + img = out.subsurface((0,h-1,w*3,1)).convert_alpha() + out.blit(img,(0,h+i)) + + return out,w,h + +todo = [ + ('button.normal','dot.normal',None,3,3,'789456123'), + ('button.hover','dot.hover',None,3,3,'789456123'), + ('button.down','dot.down',None,3,3,'789456123'), + + ('checkbox.off.normal','box.normal',None,2,2,'7913'), + ('checkbox.on.normal','box.down','check',2,2,'7913'), + ('checkbox.off.hover','box.hover',None,2,2,'7913'), + ('checkbox.on.hover','box.hover','check',2,2,'7913'), + + ('radio.off.normal','dot.normal',None,2,2,'7913'), + ('radio.on.normal','dot.down','radio',2,2,'7913'), + ('radio.off.hover','dot.hover',None,2,2,'7913'), + ('radio.on.hover','dot.hover','radio',2,2,'7913'), + + ('tool.normal','box.normal',None,3,3,'789456123'), + ('tool.hover','box.hover',None,3,3,'789456123'), + ('tool.down','box.down',None,3,3,'789456123'), + + ('hslider','idot.normal',None,3,3,'789456123'), + ('hslider.bar.normal','dot.normal',None,3,3,'789456123'), + ('hslider.bar.hover','dot.hover',None,3,3,'789456123'), + ('hslider.left','sbox.normal','left',2,2,'7913'), + ('hslider.right','sbox.normal','right',2,2,'7913'), + + + ('vslider','idot.normal',None,3,3,'789456123'), + ('vslider.bar.normal','vdot.normal',None,3,3,'789456123'), + ('vslider.bar.hover','vdot.hover',None,3,3,'789456123'), + ('vslider.up','vsbox.normal','up',2,2,'7913'), + ('vslider.down','vsbox.normal','down',2,2,'7913'), + + ('dialog.close.normal','rdot.hover',None,2,2,'7913'), + ('dialog.close.hover','rdot.hover','x',2,2,'7913'), + ('dialog.close.down','rdot.down','x',2,2,'7913'), + + ('menu.normal','desktop',None,1,1,'7'), + ('menu.hover','box.normal',None,3,3,'789456123'), + ('menu.down','box.down',None,3,3,'789456123'), + + ('select.selected.normal','box.normal',None,3,3,'788455122'), + ('select.selected.hover','box.hover',None,3,3,'788455122'), + ('select.selected.down','box.down',None,3,3,'788455122'), + + ('select.arrow.normal','box.hover',None,3,3,'889556223'), + ('select.arrow.hover','box.hover',None,3,3,'889556223'), + ('select.arrow.down','box.down',None,3,3,'889556223'), + + ('progressbar','sbox.normal',None,3,3,'789456123'), + ('progressbar.bar','box.hover',None,3,3,'789456123'), + ] + +for fname,img,over,ww,hh,s in todo: + print(fname) + img,w,h = prep(img) + out = pygame.Surface((ww*w,hh*h),SWSURFACE|SRCALPHA,32) + out.fill((0,0,0,0)) + n = 0 + for y in range(0,hh): + for x in range(0,ww): + c = int(s[n]) + xx,yy = (c-1)%3,2-(c-1)/3 + out.blit(img.subsurface((xx*w,yy*h,w,h)),(x*w,y*h)) + n += 1 + if over != None: + over = pygame.image.load(over+".png") + out.blit(over,(0,0)) + pygame.image.save(out,fname+".tga") + + + + + diff --git a/2-WordSwarm/data/themes/default/hslider.bar.hover.tga b/2-WordSwarm/data/themes/default/hslider.bar.hover.tga new file mode 100644 index 0000000..5e5c53a Binary files /dev/null and b/2-WordSwarm/data/themes/default/hslider.bar.hover.tga differ diff --git a/2-WordSwarm/data/themes/default/hslider.bar.normal.tga b/2-WordSwarm/data/themes/default/hslider.bar.normal.tga new file mode 100644 index 0000000..e9371c7 Binary files /dev/null and b/2-WordSwarm/data/themes/default/hslider.bar.normal.tga differ diff --git a/2-WordSwarm/data/themes/default/hslider.left.tga b/2-WordSwarm/data/themes/default/hslider.left.tga new file mode 100644 index 0000000..2fe406c Binary files /dev/null and b/2-WordSwarm/data/themes/default/hslider.left.tga differ diff --git a/2-WordSwarm/data/themes/default/hslider.right.tga b/2-WordSwarm/data/themes/default/hslider.right.tga new file mode 100644 index 0000000..86a9ca5 Binary files /dev/null and b/2-WordSwarm/data/themes/default/hslider.right.tga differ diff --git a/2-WordSwarm/data/themes/default/hslider.tga b/2-WordSwarm/data/themes/default/hslider.tga new file mode 100644 index 0000000..ff3b4b2 Binary files /dev/null and b/2-WordSwarm/data/themes/default/hslider.tga differ diff --git a/2-WordSwarm/data/themes/default/idot.normal.png b/2-WordSwarm/data/themes/default/idot.normal.png new file mode 100644 index 0000000..4e22195 Binary files /dev/null and b/2-WordSwarm/data/themes/default/idot.normal.png differ diff --git a/2-WordSwarm/data/themes/default/input.focus.png b/2-WordSwarm/data/themes/default/input.focus.png new file mode 100644 index 0000000..477a826 Binary files /dev/null and b/2-WordSwarm/data/themes/default/input.focus.png differ diff --git a/2-WordSwarm/data/themes/default/input.normal.png b/2-WordSwarm/data/themes/default/input.normal.png new file mode 100644 index 0000000..8519a98 Binary files /dev/null and b/2-WordSwarm/data/themes/default/input.normal.png differ diff --git a/2-WordSwarm/data/themes/default/left.png b/2-WordSwarm/data/themes/default/left.png new file mode 100644 index 0000000..b965666 Binary files /dev/null and b/2-WordSwarm/data/themes/default/left.png differ diff --git a/2-WordSwarm/data/themes/default/list.item.down.png b/2-WordSwarm/data/themes/default/list.item.down.png new file mode 100644 index 0000000..fd9dc21 Binary files /dev/null and b/2-WordSwarm/data/themes/default/list.item.down.png differ diff --git a/2-WordSwarm/data/themes/default/list.item.hover.png b/2-WordSwarm/data/themes/default/list.item.hover.png new file mode 100644 index 0000000..627790d Binary files /dev/null and b/2-WordSwarm/data/themes/default/list.item.hover.png differ diff --git a/2-WordSwarm/data/themes/default/list.item.normal.png b/2-WordSwarm/data/themes/default/list.item.normal.png new file mode 100644 index 0000000..627790d Binary files /dev/null and b/2-WordSwarm/data/themes/default/list.item.normal.png differ diff --git a/2-WordSwarm/data/themes/default/list.png b/2-WordSwarm/data/themes/default/list.png new file mode 100644 index 0000000..99ad5bc Binary files /dev/null and b/2-WordSwarm/data/themes/default/list.png differ diff --git a/2-WordSwarm/data/themes/default/listitem.down.tga b/2-WordSwarm/data/themes/default/listitem.down.tga new file mode 100644 index 0000000..13e2e57 Binary files /dev/null and b/2-WordSwarm/data/themes/default/listitem.down.tga differ diff --git a/2-WordSwarm/data/themes/default/listitem.hover.tga b/2-WordSwarm/data/themes/default/listitem.hover.tga new file mode 100644 index 0000000..8bdf60a Binary files /dev/null and b/2-WordSwarm/data/themes/default/listitem.hover.tga differ diff --git a/2-WordSwarm/data/themes/default/listitem.normal.tga b/2-WordSwarm/data/themes/default/listitem.normal.tga new file mode 100644 index 0000000..a2994aa Binary files /dev/null and b/2-WordSwarm/data/themes/default/listitem.normal.tga differ diff --git a/2-WordSwarm/data/themes/default/menu.down.tga b/2-WordSwarm/data/themes/default/menu.down.tga new file mode 100644 index 0000000..f89d4b4 Binary files /dev/null and b/2-WordSwarm/data/themes/default/menu.down.tga differ diff --git a/2-WordSwarm/data/themes/default/menu.hover.tga b/2-WordSwarm/data/themes/default/menu.hover.tga new file mode 100644 index 0000000..b304b87 Binary files /dev/null and b/2-WordSwarm/data/themes/default/menu.hover.tga differ diff --git a/2-WordSwarm/data/themes/default/menu.normal.tga b/2-WordSwarm/data/themes/default/menu.normal.tga new file mode 100644 index 0000000..d3eb2d0 Binary files /dev/null and b/2-WordSwarm/data/themes/default/menu.normal.tga differ diff --git a/2-WordSwarm/data/themes/default/notes.txt b/2-WordSwarm/data/themes/default/notes.txt new file mode 100644 index 0000000..f6541e4 --- /dev/null +++ b/2-WordSwarm/data/themes/default/notes.txt @@ -0,0 +1,8 @@ +dot and box.xcf: + +color -170 + +.down +.hover +64 brightness +.normal, grayscale +127 brightness, +48 contrast + diff --git a/2-WordSwarm/data/themes/default/out.tga b/2-WordSwarm/data/themes/default/out.tga new file mode 100644 index 0000000..7ed46cc Binary files /dev/null and b/2-WordSwarm/data/themes/default/out.tga differ diff --git a/2-WordSwarm/data/themes/default/progressbar.bar.tga b/2-WordSwarm/data/themes/default/progressbar.bar.tga new file mode 100644 index 0000000..184ae9c Binary files /dev/null and b/2-WordSwarm/data/themes/default/progressbar.bar.tga differ diff --git a/2-WordSwarm/data/themes/default/progressbar.tga b/2-WordSwarm/data/themes/default/progressbar.tga new file mode 100644 index 0000000..d459763 Binary files /dev/null and b/2-WordSwarm/data/themes/default/progressbar.tga differ diff --git a/2-WordSwarm/data/themes/default/radio.off.hover.tga b/2-WordSwarm/data/themes/default/radio.off.hover.tga new file mode 100644 index 0000000..6b0f737 Binary files /dev/null and b/2-WordSwarm/data/themes/default/radio.off.hover.tga differ diff --git a/2-WordSwarm/data/themes/default/radio.off.normal.tga b/2-WordSwarm/data/themes/default/radio.off.normal.tga new file mode 100644 index 0000000..3da51d8 Binary files /dev/null and b/2-WordSwarm/data/themes/default/radio.off.normal.tga differ diff --git a/2-WordSwarm/data/themes/default/radio.on.hover.tga b/2-WordSwarm/data/themes/default/radio.on.hover.tga new file mode 100644 index 0000000..d26764b Binary files /dev/null and b/2-WordSwarm/data/themes/default/radio.on.hover.tga differ diff --git a/2-WordSwarm/data/themes/default/radio.on.normal.tga b/2-WordSwarm/data/themes/default/radio.on.normal.tga new file mode 100644 index 0000000..42515fe Binary files /dev/null and b/2-WordSwarm/data/themes/default/radio.on.normal.tga differ diff --git a/2-WordSwarm/data/themes/default/radio.png b/2-WordSwarm/data/themes/default/radio.png new file mode 100644 index 0000000..7596f48 Binary files /dev/null and b/2-WordSwarm/data/themes/default/radio.png differ diff --git a/2-WordSwarm/data/themes/default/rdot.down.png b/2-WordSwarm/data/themes/default/rdot.down.png new file mode 100644 index 0000000..35cd4fe Binary files /dev/null and b/2-WordSwarm/data/themes/default/rdot.down.png differ diff --git a/2-WordSwarm/data/themes/default/rdot.hover.png b/2-WordSwarm/data/themes/default/rdot.hover.png new file mode 100644 index 0000000..5cd77a2 Binary files /dev/null and b/2-WordSwarm/data/themes/default/rdot.hover.png differ diff --git a/2-WordSwarm/data/themes/default/rdot.normal.png b/2-WordSwarm/data/themes/default/rdot.normal.png new file mode 100644 index 0000000..636a207 Binary files /dev/null and b/2-WordSwarm/data/themes/default/rdot.normal.png differ diff --git a/2-WordSwarm/data/themes/default/right.png b/2-WordSwarm/data/themes/default/right.png new file mode 100644 index 0000000..613779e Binary files /dev/null and b/2-WordSwarm/data/themes/default/right.png differ diff --git a/2-WordSwarm/data/themes/default/sbox.normal.png b/2-WordSwarm/data/themes/default/sbox.normal.png new file mode 100644 index 0000000..00be882 Binary files /dev/null and b/2-WordSwarm/data/themes/default/sbox.normal.png differ diff --git a/2-WordSwarm/data/themes/default/scroller.slide.bar.hover.tga b/2-WordSwarm/data/themes/default/scroller.slide.bar.hover.tga new file mode 100644 index 0000000..d0b85a9 Binary files /dev/null and b/2-WordSwarm/data/themes/default/scroller.slide.bar.hover.tga differ diff --git a/2-WordSwarm/data/themes/default/scroller.slide.bar.normal.tga b/2-WordSwarm/data/themes/default/scroller.slide.bar.normal.tga new file mode 100644 index 0000000..84ff6bb Binary files /dev/null and b/2-WordSwarm/data/themes/default/scroller.slide.bar.normal.tga differ diff --git a/2-WordSwarm/data/themes/default/scroller.slide.h.tga b/2-WordSwarm/data/themes/default/scroller.slide.h.tga new file mode 100644 index 0000000..0281567 Binary files /dev/null and b/2-WordSwarm/data/themes/default/scroller.slide.h.tga differ diff --git a/2-WordSwarm/data/themes/default/scroller.slide.v.tga b/2-WordSwarm/data/themes/default/scroller.slide.v.tga new file mode 100644 index 0000000..cbaa875 Binary files /dev/null and b/2-WordSwarm/data/themes/default/scroller.slide.v.tga differ diff --git a/2-WordSwarm/data/themes/default/select.arrow.down.tga b/2-WordSwarm/data/themes/default/select.arrow.down.tga new file mode 100644 index 0000000..d721002 Binary files /dev/null and b/2-WordSwarm/data/themes/default/select.arrow.down.tga differ diff --git a/2-WordSwarm/data/themes/default/select.arrow.hover.tga b/2-WordSwarm/data/themes/default/select.arrow.hover.tga new file mode 100644 index 0000000..162d8e7 Binary files /dev/null and b/2-WordSwarm/data/themes/default/select.arrow.hover.tga differ diff --git a/2-WordSwarm/data/themes/default/select.arrow.normal.tga b/2-WordSwarm/data/themes/default/select.arrow.normal.tga new file mode 100644 index 0000000..162d8e7 Binary files /dev/null and b/2-WordSwarm/data/themes/default/select.arrow.normal.tga differ diff --git a/2-WordSwarm/data/themes/default/select.arrow.png b/2-WordSwarm/data/themes/default/select.arrow.png new file mode 100644 index 0000000..19de760 Binary files /dev/null and b/2-WordSwarm/data/themes/default/select.arrow.png differ diff --git a/2-WordSwarm/data/themes/default/select.option.hover.png b/2-WordSwarm/data/themes/default/select.option.hover.png new file mode 100644 index 0000000..fd9dc21 Binary files /dev/null and b/2-WordSwarm/data/themes/default/select.option.hover.png differ diff --git a/2-WordSwarm/data/themes/default/select.option.normal.png b/2-WordSwarm/data/themes/default/select.option.normal.png new file mode 100644 index 0000000..627790d Binary files /dev/null and b/2-WordSwarm/data/themes/default/select.option.normal.png differ diff --git a/2-WordSwarm/data/themes/default/select.options.png b/2-WordSwarm/data/themes/default/select.options.png new file mode 100644 index 0000000..477a826 Binary files /dev/null and b/2-WordSwarm/data/themes/default/select.options.png differ diff --git a/2-WordSwarm/data/themes/default/select.selected.down.tga b/2-WordSwarm/data/themes/default/select.selected.down.tga new file mode 100644 index 0000000..7d952a0 Binary files /dev/null and b/2-WordSwarm/data/themes/default/select.selected.down.tga differ diff --git a/2-WordSwarm/data/themes/default/select.selected.hover.tga b/2-WordSwarm/data/themes/default/select.selected.hover.tga new file mode 100644 index 0000000..91dd794 Binary files /dev/null and b/2-WordSwarm/data/themes/default/select.selected.hover.tga differ diff --git a/2-WordSwarm/data/themes/default/select.selected.normal.tga b/2-WordSwarm/data/themes/default/select.selected.normal.tga new file mode 100644 index 0000000..54b8927 Binary files /dev/null and b/2-WordSwarm/data/themes/default/select.selected.normal.tga differ diff --git a/2-WordSwarm/data/themes/default/slider.bar.hover.tga b/2-WordSwarm/data/themes/default/slider.bar.hover.tga new file mode 100644 index 0000000..5e5c53a Binary files /dev/null and b/2-WordSwarm/data/themes/default/slider.bar.hover.tga differ diff --git a/2-WordSwarm/data/themes/default/slider.bar.normal.tga b/2-WordSwarm/data/themes/default/slider.bar.normal.tga new file mode 100644 index 0000000..e9371c7 Binary files /dev/null and b/2-WordSwarm/data/themes/default/slider.bar.normal.tga differ diff --git a/2-WordSwarm/data/themes/default/slider.tga b/2-WordSwarm/data/themes/default/slider.tga new file mode 100644 index 0000000..ff3b4b2 Binary files /dev/null and b/2-WordSwarm/data/themes/default/slider.tga differ diff --git a/2-WordSwarm/data/themes/default/tool.down.tga b/2-WordSwarm/data/themes/default/tool.down.tga new file mode 100644 index 0000000..f89d4b4 Binary files /dev/null and b/2-WordSwarm/data/themes/default/tool.down.tga differ diff --git a/2-WordSwarm/data/themes/default/tool.hover.tga b/2-WordSwarm/data/themes/default/tool.hover.tga new file mode 100644 index 0000000..184ae9c Binary files /dev/null and b/2-WordSwarm/data/themes/default/tool.hover.tga differ diff --git a/2-WordSwarm/data/themes/default/tool.normal.tga b/2-WordSwarm/data/themes/default/tool.normal.tga new file mode 100644 index 0000000..b304b87 Binary files /dev/null and b/2-WordSwarm/data/themes/default/tool.normal.tga differ diff --git a/2-WordSwarm/data/themes/default/up.png b/2-WordSwarm/data/themes/default/up.png new file mode 100644 index 0000000..d42c324 Binary files /dev/null and b/2-WordSwarm/data/themes/default/up.png differ diff --git a/2-WordSwarm/data/themes/default/vbox.normal.png b/2-WordSwarm/data/themes/default/vbox.normal.png new file mode 100644 index 0000000..9229c87 Binary files /dev/null and b/2-WordSwarm/data/themes/default/vbox.normal.png differ diff --git a/2-WordSwarm/data/themes/default/vdot.down.png b/2-WordSwarm/data/themes/default/vdot.down.png new file mode 100644 index 0000000..e9e781e Binary files /dev/null and b/2-WordSwarm/data/themes/default/vdot.down.png differ diff --git a/2-WordSwarm/data/themes/default/vdot.hover.png b/2-WordSwarm/data/themes/default/vdot.hover.png new file mode 100644 index 0000000..74e043b Binary files /dev/null and b/2-WordSwarm/data/themes/default/vdot.hover.png differ diff --git a/2-WordSwarm/data/themes/default/vdot.normal.png b/2-WordSwarm/data/themes/default/vdot.normal.png new file mode 100644 index 0000000..f64089b Binary files /dev/null and b/2-WordSwarm/data/themes/default/vdot.normal.png differ diff --git a/2-WordSwarm/data/themes/default/vsbox.normal.png b/2-WordSwarm/data/themes/default/vsbox.normal.png new file mode 100644 index 0000000..2deca17 Binary files /dev/null and b/2-WordSwarm/data/themes/default/vsbox.normal.png differ diff --git a/2-WordSwarm/data/themes/default/vslider.bar.hover.tga b/2-WordSwarm/data/themes/default/vslider.bar.hover.tga new file mode 100644 index 0000000..0a3f70a Binary files /dev/null and b/2-WordSwarm/data/themes/default/vslider.bar.hover.tga differ diff --git a/2-WordSwarm/data/themes/default/vslider.bar.normal.tga b/2-WordSwarm/data/themes/default/vslider.bar.normal.tga new file mode 100644 index 0000000..07ee06e Binary files /dev/null and b/2-WordSwarm/data/themes/default/vslider.bar.normal.tga differ diff --git a/2-WordSwarm/data/themes/default/vslider.down.tga b/2-WordSwarm/data/themes/default/vslider.down.tga new file mode 100644 index 0000000..61c75a6 Binary files /dev/null and b/2-WordSwarm/data/themes/default/vslider.down.tga differ diff --git a/2-WordSwarm/data/themes/default/vslider.tga b/2-WordSwarm/data/themes/default/vslider.tga new file mode 100644 index 0000000..ff3b4b2 Binary files /dev/null and b/2-WordSwarm/data/themes/default/vslider.tga differ diff --git a/2-WordSwarm/data/themes/default/vslider.up.tga b/2-WordSwarm/data/themes/default/vslider.up.tga new file mode 100644 index 0000000..ce73c30 Binary files /dev/null and b/2-WordSwarm/data/themes/default/vslider.up.tga differ diff --git a/2-WordSwarm/data/themes/default/x.png b/2-WordSwarm/data/themes/default/x.png new file mode 100644 index 0000000..d00f36b Binary files /dev/null and b/2-WordSwarm/data/themes/default/x.png differ diff --git a/2-WordSwarm/data/themes/gray/Vera.ttf b/2-WordSwarm/data/themes/gray/Vera.ttf new file mode 100644 index 0000000..58cd6b5 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/Vera.ttf differ diff --git a/2-WordSwarm/data/themes/gray/box.down.png b/2-WordSwarm/data/themes/gray/box.down.png new file mode 100644 index 0000000..0009fe7 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/box.down.png differ diff --git a/2-WordSwarm/data/themes/gray/box.normal.png b/2-WordSwarm/data/themes/gray/box.normal.png new file mode 100644 index 0000000..e4599d9 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/box.normal.png differ diff --git a/2-WordSwarm/data/themes/gray/button.down.png b/2-WordSwarm/data/themes/gray/button.down.png new file mode 100644 index 0000000..efb67bc Binary files /dev/null and b/2-WordSwarm/data/themes/gray/button.down.png differ diff --git a/2-WordSwarm/data/themes/gray/button.normal.png b/2-WordSwarm/data/themes/gray/button.normal.png new file mode 100644 index 0000000..7393150 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/button.normal.png differ diff --git a/2-WordSwarm/data/themes/gray/checkbox.off.down.png b/2-WordSwarm/data/themes/gray/checkbox.off.down.png new file mode 100644 index 0000000..656f779 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/checkbox.off.down.png differ diff --git a/2-WordSwarm/data/themes/gray/checkbox.off.normal.png b/2-WordSwarm/data/themes/gray/checkbox.off.normal.png new file mode 100644 index 0000000..70943f1 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/checkbox.off.normal.png differ diff --git a/2-WordSwarm/data/themes/gray/checkbox.on.down.png b/2-WordSwarm/data/themes/gray/checkbox.on.down.png new file mode 100644 index 0000000..fa61a2b Binary files /dev/null and b/2-WordSwarm/data/themes/gray/checkbox.on.down.png differ diff --git a/2-WordSwarm/data/themes/gray/checkbox.on.normal.png b/2-WordSwarm/data/themes/gray/checkbox.on.normal.png new file mode 100644 index 0000000..5ee17b1 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/checkbox.on.normal.png differ diff --git a/2-WordSwarm/data/themes/gray/config.txt b/2-WordSwarm/data/themes/gray/config.txt new file mode 100644 index 0000000..0ea2006 --- /dev/null +++ b/2-WordSwarm/data/themes/gray/config.txt @@ -0,0 +1,244 @@ +desktop background desktop.png + +input font Vera.ttf 16 +input background input.normal.png +input color #000000 +input:focus background input.focus.png +input padding_left 6 +input padding_right 6 +input padding_top 3 +input padding_bottom 3 + +label font Vera.ttf 16 +label color #000000 + +document font Vera.ttf 16 +document color #000000 +div font Vera.ttf 16 +div color #000000 + +td font Vera.ttf 16 +td color #000000 +th font Vera.ttf 16 +th color #000000 + +h1 font Vera.ttf 24 +h1 color #000000 +h2 font Vera.ttf 20 +h2 color #000000 +h3 font Vera.ttf 16 +h3 color #000000 +h4 font Vera.ttf 14 +h4 color #000000 +h5 font Vera.ttf 12 +h5 color #000000 +h6 font Vera.ttf 10 +h6 color #000000 + +ul font Vera.ttf 16 +ul color #000000 +ol font Vera.ttf 16 +ol color #000000 +li font Vera.ttf 16 +li color #000000 +li padding_left 32 + +pre font mono 16 +pre color #000000 +code font mono 16 +code color #000000 + +checkbox off checkbox.off.normal.png +checkbox on checkbox.on.normal.png +checkbox:down off checkbox.off.down.png +checkbox:down on checkbox.on.down.png + +switch off checkbox.off.normal.png +switch on checkbox.on.normal.png +switch:down off checkbox.off.down.png +switch:down on checkbox.on.down.png + +radio off radio.off.normal.png +radio on radio.on.normal.png +radio:down off radio.off.down.png +radio:down on radio.on.down.png + +button background button.normal.png +button:down background button.down.png +button padding_left 8 +button padding_right 8 +button padding_top 1 +button padding_bottom 1 +button.label font Vera.ttf 16 +button.label color #000000 + +slider background slider.png +slider bar slider.bar.normal.png +slider:down bar slider.bar.down.png +slider width 16 +slider height 16 + +hslider background slider.png +hslider bar slider.bar.normal.png +hslider:down bar slider.bar.down.png +hslider width 16 +hslider height 16 + +vslider background slider.png +vslider bar slider.bar.normal.png +vslider:down bar slider.bar.down.png +vslider width 16 +vslider height 16 + +select.selected background select.selected.normal.png +#select.selected:down background select.selected.down.png +select.selected padding_left 4 +select.selected padding_right 4 +select.selected padding_top 1 +select.selected padding_bottom 1 +select.arrow background select.arrow.normal.png +select.arrow:down background select.arrow.down.png +select.arrow padding_left 1 +select.arrow padding_right 1 + +select.options background select.options.png +select.option background select.option.normal.png +#select.option:hover background select.option.hover.png +select.option padding_left 4 +select.option padding_right 4 +select.option padding_top 1 +select.option padding_bottom 1 +#select.option border_top 1 +#select.option border_right 1 +#select.option border_bottom 1 +#select.option border_left 1 + +select.option.label font Vera.ttf 16 +select.option.label color #000000 +select.options padding_left 1 +select.options padding_right 1 +select.options padding_top 1 +select.options padding_bottom 1 +select arrow select.arrow.png + + +dialog.bar background dialog.bar.png +dialog.bar padding_left 8 +dialog.bar padding_right 8 +dialog.bar padding_top 2 +dialog.bar padding_bottom 1 +dialog.bar.close image dialog.close.normal.png +dialog.bar.close:down image dialog.close.down.png +dialog.main background dialog.png +dialog.main padding_left 8 +dialog.main padding_right 8 +dialog.main padding_top 4 +dialog.main padding_bottom 4 + +keysym font helvetica 16 +keysym background input.normal.png +keysym color #000000 +keysym:focus background input.focus.png +keysym padding_left 6 +keysym padding_right 6 +keysym padding_top 3 +keysym padding_bottom 3 + +tool background tool.normal.png +tool:down background tool.down.png +tool padding_left 4 +tool padding_right 4 +tool padding_top 1 +tool padding_bottom 1 +tool.label font Vera.ttf 16 +tool.label color #000000 + +menu background menu.normal.png +menu:hover background menu.hover.png +menu:down background menu.down.png +menu padding_left 6 +menu padding_right 6 +menu padding_top 3 +menu padding_bottom 3 +menu.label font Vera.ttf 16 +menu.label color #000000 + +menu-open background menu.down.png +menu-open:down background menu.down.png +menu-open padding_left 6 +menu-open padding_right 6 +menu-open padding_top 3 +menu-open padding_bottom 3 + +menu.options background select.options.png +menu.option background menu.option.normal.png +menu.option:hover background menu.option.hover.png +#menu.option.label color #FF0000 +menu.option padding_left 6 +menu.option padding_right 6 +menu.option padding_top 1 +menu.option padding_bottom 1 +menu.option.label font Vera.ttf 16 +menu.option.label color #000000 +menu.options padding_left 1 +menu.options padding_right 1 +menu.options padding_top 1 +menu.options padding_bottom 1 +menu arrow select.arrow.png + + +scrollarea.content background #ffffff +scrollarea.content padding_left 1 +scrollarea.content padding_right 1 +scrollarea.content padding_top 1 +scrollarea.content padding_bottom 1 +hscrollbar height 15 +##hscrollbar background scroller.slide.h.png +hscrollbar background slider.png +##hscrollbar bar scroller.slide.bar.normal.png +hscrollbar bar slider.bar.normal.png +##hscrollbar:down bar scroller.slide.bar.down.png +vscrollbar width 15 +##vscrollbar background scroller.slide.v.png +vscrollbar background slider.png +##vscrollbar bar scroller.slide.bar.normal.png +vscrollbar bar slider.bar.normal.png +##vscrollbar:down bar scroller.slide.bar.down.png + +list.item background list.item.normal.png +#list.item:down background list.item.down.png +list.item padding_left 4 +list.item padding_right 4 +list.item padding_top 2 +list.item padding_bottom 2 +list.item margin_bottom 1 +list.item align -1 +list.item.label font Vera.ttf 14 +list.item.label color #000000 + +list background list.png +list padding_left 1 +list padding_right 1 +list padding_top 1 +list padding_bottom 1 +list.content background #eeeeee +list.content padding_left 1 +list.content padding_right 1 +list.content padding_top 1 +list.content padding_bottom 1 + +filedialog.folder image filebrowser.folder.png +filedialog.label font Vera.ttf 14 +filedialog.label color #000000 +filedialog.title.label font Vera.ttf 16 +filedialog.title.label color #000000 +filedialog.input font Vera.ttf 14 +filedialog.input background input.normal.png +filedialog.input color #000000 +filedialog.input:focus background input.focus.png +filedialog.input padding_left 6 +filedialog.input padding_right 6 +filedialog.input padding_top 3 +filedialog.input padding_bottom 3 + + diff --git a/2-WordSwarm/data/themes/gray/console.input.focus.png b/2-WordSwarm/data/themes/gray/console.input.focus.png new file mode 100644 index 0000000..819d835 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/console.input.focus.png differ diff --git a/2-WordSwarm/data/themes/gray/console.input.normal.png b/2-WordSwarm/data/themes/gray/console.input.normal.png new file mode 100644 index 0000000..a14e329 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/console.input.normal.png differ diff --git a/2-WordSwarm/data/themes/gray/console.png b/2-WordSwarm/data/themes/gray/console.png new file mode 100644 index 0000000..a14e329 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/console.png differ diff --git a/2-WordSwarm/data/themes/gray/desktop.png b/2-WordSwarm/data/themes/gray/desktop.png new file mode 100644 index 0000000..73ac803 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/desktop.png differ diff --git a/2-WordSwarm/data/themes/gray/dialog.bar.png b/2-WordSwarm/data/themes/gray/dialog.bar.png new file mode 100644 index 0000000..ffac15d Binary files /dev/null and b/2-WordSwarm/data/themes/gray/dialog.bar.png differ diff --git a/2-WordSwarm/data/themes/gray/dialog.close.down.png b/2-WordSwarm/data/themes/gray/dialog.close.down.png new file mode 100644 index 0000000..cde6e96 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/dialog.close.down.png differ diff --git a/2-WordSwarm/data/themes/gray/dialog.close.normal.png b/2-WordSwarm/data/themes/gray/dialog.close.normal.png new file mode 100644 index 0000000..73dc9e4 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/dialog.close.normal.png differ diff --git a/2-WordSwarm/data/themes/gray/dialog.png b/2-WordSwarm/data/themes/gray/dialog.png new file mode 100644 index 0000000..1308b9c Binary files /dev/null and b/2-WordSwarm/data/themes/gray/dialog.png differ diff --git a/2-WordSwarm/data/themes/gray/filebrowser.folder.png b/2-WordSwarm/data/themes/gray/filebrowser.folder.png new file mode 100644 index 0000000..4a3bd2c Binary files /dev/null and b/2-WordSwarm/data/themes/gray/filebrowser.folder.png differ diff --git a/2-WordSwarm/data/themes/gray/input.focus.png b/2-WordSwarm/data/themes/gray/input.focus.png new file mode 100644 index 0000000..477a826 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/input.focus.png differ diff --git a/2-WordSwarm/data/themes/gray/input.normal.png b/2-WordSwarm/data/themes/gray/input.normal.png new file mode 100644 index 0000000..8519a98 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/input.normal.png differ diff --git a/2-WordSwarm/data/themes/gray/list.item.normal.png b/2-WordSwarm/data/themes/gray/list.item.normal.png new file mode 100644 index 0000000..627790d Binary files /dev/null and b/2-WordSwarm/data/themes/gray/list.item.normal.png differ diff --git a/2-WordSwarm/data/themes/gray/list.png b/2-WordSwarm/data/themes/gray/list.png new file mode 100644 index 0000000..99ad5bc Binary files /dev/null and b/2-WordSwarm/data/themes/gray/list.png differ diff --git a/2-WordSwarm/data/themes/gray/menu.down.png b/2-WordSwarm/data/themes/gray/menu.down.png new file mode 100644 index 0000000..3555053 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/menu.down.png differ diff --git a/2-WordSwarm/data/themes/gray/menu.hover.png b/2-WordSwarm/data/themes/gray/menu.hover.png new file mode 100644 index 0000000..f4b2a6a Binary files /dev/null and b/2-WordSwarm/data/themes/gray/menu.hover.png differ diff --git a/2-WordSwarm/data/themes/gray/menu.normal.png b/2-WordSwarm/data/themes/gray/menu.normal.png new file mode 100644 index 0000000..9a7aca6 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/menu.normal.png differ diff --git a/2-WordSwarm/data/themes/gray/menu.option.hover.png b/2-WordSwarm/data/themes/gray/menu.option.hover.png new file mode 100644 index 0000000..8ae05f3 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/menu.option.hover.png differ diff --git a/2-WordSwarm/data/themes/gray/menu.option.normal.png b/2-WordSwarm/data/themes/gray/menu.option.normal.png new file mode 100644 index 0000000..394200b Binary files /dev/null and b/2-WordSwarm/data/themes/gray/menu.option.normal.png differ diff --git a/2-WordSwarm/data/themes/gray/radio.off.down.png b/2-WordSwarm/data/themes/gray/radio.off.down.png new file mode 100644 index 0000000..5a6e9a3 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/radio.off.down.png differ diff --git a/2-WordSwarm/data/themes/gray/radio.off.normal.png b/2-WordSwarm/data/themes/gray/radio.off.normal.png new file mode 100644 index 0000000..4a57f1f Binary files /dev/null and b/2-WordSwarm/data/themes/gray/radio.off.normal.png differ diff --git a/2-WordSwarm/data/themes/gray/radio.on.down.png b/2-WordSwarm/data/themes/gray/radio.on.down.png new file mode 100644 index 0000000..483bd66 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/radio.on.down.png differ diff --git a/2-WordSwarm/data/themes/gray/radio.on.normal.png b/2-WordSwarm/data/themes/gray/radio.on.normal.png new file mode 100644 index 0000000..43b380b Binary files /dev/null and b/2-WordSwarm/data/themes/gray/radio.on.normal.png differ diff --git a/2-WordSwarm/data/themes/gray/select.arrow.down.png b/2-WordSwarm/data/themes/gray/select.arrow.down.png new file mode 100644 index 0000000..9ef850e Binary files /dev/null and b/2-WordSwarm/data/themes/gray/select.arrow.down.png differ diff --git a/2-WordSwarm/data/themes/gray/select.arrow.normal.png b/2-WordSwarm/data/themes/gray/select.arrow.normal.png new file mode 100644 index 0000000..fde6e42 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/select.arrow.normal.png differ diff --git a/2-WordSwarm/data/themes/gray/select.arrow.png b/2-WordSwarm/data/themes/gray/select.arrow.png new file mode 100644 index 0000000..19de760 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/select.arrow.png differ diff --git a/2-WordSwarm/data/themes/gray/select.option.normal.png b/2-WordSwarm/data/themes/gray/select.option.normal.png new file mode 100644 index 0000000..627790d Binary files /dev/null and b/2-WordSwarm/data/themes/gray/select.option.normal.png differ diff --git a/2-WordSwarm/data/themes/gray/select.options.png b/2-WordSwarm/data/themes/gray/select.options.png new file mode 100644 index 0000000..477a826 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/select.options.png differ diff --git a/2-WordSwarm/data/themes/gray/select.selected.normal.png b/2-WordSwarm/data/themes/gray/select.selected.normal.png new file mode 100644 index 0000000..e1463f8 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/select.selected.normal.png differ diff --git a/2-WordSwarm/data/themes/gray/slider.bar.normal.png b/2-WordSwarm/data/themes/gray/slider.bar.normal.png new file mode 100644 index 0000000..b335bda Binary files /dev/null and b/2-WordSwarm/data/themes/gray/slider.bar.normal.png differ diff --git a/2-WordSwarm/data/themes/gray/slider.png b/2-WordSwarm/data/themes/gray/slider.png new file mode 100644 index 0000000..0ed9619 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/slider.png differ diff --git a/2-WordSwarm/data/themes/gray/tool.down.png b/2-WordSwarm/data/themes/gray/tool.down.png new file mode 100644 index 0000000..760e666 Binary files /dev/null and b/2-WordSwarm/data/themes/gray/tool.down.png differ diff --git a/2-WordSwarm/data/themes/gray/tool.normal.png b/2-WordSwarm/data/themes/gray/tool.normal.png new file mode 100644 index 0000000..17b344d Binary files /dev/null and b/2-WordSwarm/data/themes/gray/tool.normal.png differ diff --git a/2-WordSwarm/data/themes/tools/config.txt b/2-WordSwarm/data/themes/tools/config.txt new file mode 100644 index 0000000..b663eb0 --- /dev/null +++ b/2-WordSwarm/data/themes/tools/config.txt @@ -0,0 +1,11 @@ +tool.draw image icons48.draw.tga +tool.pixel image icons48.pixel.tga +tool.line image icons48.line.tga +tool.fill image icons48.fill.tga + +tool.select image icons48.select.tga +tool.eraser image icons48.eraser.tga + +tool.tile image icons48.tile.tga +tool.code image icons48.code.tga +tool.bkgr image icons48.bkgr.tga diff --git a/2-WordSwarm/data/themes/tools/icons48.bkgr.tga b/2-WordSwarm/data/themes/tools/icons48.bkgr.tga new file mode 100644 index 0000000..67a614b Binary files /dev/null and b/2-WordSwarm/data/themes/tools/icons48.bkgr.tga differ diff --git a/2-WordSwarm/data/themes/tools/icons48.code.tga b/2-WordSwarm/data/themes/tools/icons48.code.tga new file mode 100644 index 0000000..bfe9615 Binary files /dev/null and b/2-WordSwarm/data/themes/tools/icons48.code.tga differ diff --git a/2-WordSwarm/data/themes/tools/icons48.draw.tga b/2-WordSwarm/data/themes/tools/icons48.draw.tga new file mode 100644 index 0000000..0eec5ff Binary files /dev/null and b/2-WordSwarm/data/themes/tools/icons48.draw.tga differ diff --git a/2-WordSwarm/data/themes/tools/icons48.eraser.tga b/2-WordSwarm/data/themes/tools/icons48.eraser.tga new file mode 100644 index 0000000..a7f4d42 Binary files /dev/null and b/2-WordSwarm/data/themes/tools/icons48.eraser.tga differ diff --git a/2-WordSwarm/data/themes/tools/icons48.fill.tga b/2-WordSwarm/data/themes/tools/icons48.fill.tga new file mode 100644 index 0000000..cb7be71 Binary files /dev/null and b/2-WordSwarm/data/themes/tools/icons48.fill.tga differ diff --git a/2-WordSwarm/data/themes/tools/icons48.line.tga b/2-WordSwarm/data/themes/tools/icons48.line.tga new file mode 100644 index 0000000..19f9f9c Binary files /dev/null and b/2-WordSwarm/data/themes/tools/icons48.line.tga differ diff --git a/2-WordSwarm/data/themes/tools/icons48.pixel.tga b/2-WordSwarm/data/themes/tools/icons48.pixel.tga new file mode 100644 index 0000000..976b66a Binary files /dev/null and b/2-WordSwarm/data/themes/tools/icons48.pixel.tga differ diff --git a/2-WordSwarm/data/themes/tools/icons48.select.tga b/2-WordSwarm/data/themes/tools/icons48.select.tga new file mode 100644 index 0000000..09ee631 Binary files /dev/null and b/2-WordSwarm/data/themes/tools/icons48.select.tga differ diff --git a/2-WordSwarm/data/themes/tools/icons48.tile.tga b/2-WordSwarm/data/themes/tools/icons48.tile.tga new file mode 100644 index 0000000..8ca8bae Binary files /dev/null and b/2-WordSwarm/data/themes/tools/icons48.tile.tga differ diff --git a/2-WordSwarm/framework/framework.py b/2-WordSwarm/framework/framework.py new file mode 100644 index 0000000..ef62f67 --- /dev/null +++ b/2-WordSwarm/framework/framework.py @@ -0,0 +1,525 @@ +# -*- coding: utf-8 -*- +""" + + + + + This file is part of WordSwarm. + + WordSwarm is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + WordSwarm is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + Copyright 2014 Michael Kane + + PyBox2D Framework: + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + C++ version Copyright (c) 2006-2007 Erin Catto http://www.box2d.org + Python version by Ken Lauer / sirkne at gmail dot com + +""" + +""" +The framework's base is FrameworkBase. See its help for more information. +""" +from Box2D import * +from settings import fwSettings +from time import time + +## Use psyco if available +#try: +# import psyco +# psyco.full() +#except ImportError: +# pass + +class fwDestructionListener(b2DestructionListener): + """ + The destruction listener callback: + "SayGoodbye" is called when a joint or shape is deleted. + """ + test = None + def __init__(self, **kwargs): + super(fwDestructionListener, self).__init__(**kwargs) + + def SayGoodbye(self, object): + if isinstance(object, b2Joint): + if self.test.mouseJoint==object: + self.test.mouseJoint=None + else: + self.test.JointDestroyed(object) + elif isinstance(object, b2Fixture): + self.test.FixtureDestroyed(object) + +class fwQueryCallback(b2QueryCallback): + def __init__(self, p): + super(fwQueryCallback, self).__init__() + self.point = p + self.fixture = None + + def ReportFixture(self, fixture): + body = fixture.body + if body.type == b2_dynamicBody: + inside=fixture.TestPoint(self.point) + if inside: + self.fixture=fixture + # We found the object, so stop the query + return False + # Continue the query + return True + +class Keys(object): + pass + +class FrameworkBase(b2ContactListener): + """ + The base of the main testbed framework. + + If you are planning on using the testbed framework and: + * Want to implement your own renderer (other than Pygame, etc.): + You should derive your class from this one to implement your own tests. + See test_Empty.py or any of the other tests for more information. + * Do NOT want to implement your own renderer: + You should derive your class from Framework. The renderer chosen in + fwSettings (see settings.py) or on the command line will automatically + be used for your test. + """ + name = "None" + description = None + TEXTLINE_START=30 + colors={ + 'mouse_point' : b2Color(0,1,0), + 'bomb_center' : b2Color(0,0,1.0), + 'bomb_line' : b2Color(0,1.0,1.0), + 'joint_line' : b2Color(0.8,0.8,0.8), + 'contact_add' : b2Color(0.3, 0.95, 0.3), + 'contact_persist' : b2Color(0.3, 0.3, 0.95), + 'contact_normal' : b2Color(0.4, 0.9, 0.4), + } + + def __reset(self): + """ Reset all of the variables to their starting values. + Not to be called except at initialization.""" + # Box2D-related + self.points = [] + self.world = None + self.bomb = None + self.mouseJoint = None + self.settings = fwSettings + self.bombSpawning = False + self.bombSpawnPoint = None + self.mouseWorld = None + self.using_contacts = False + self.stepCount = 0 + + # Box2D-callbacks + self.destructionListener= None + self.renderer = None + + def __init__(self): + super(FrameworkBase, self).__init__() + + self.__reset() + + # Box2D Initialization + self.world = b2World(gravity=(0,-10), doSleep=True) + + self.destructionListener = fwDestructionListener(test=self) + self.world.destructionListener=self.destructionListener + self.world.contactListener=self + self.t_steps, self.t_draws=[], [] + + def __del__(self): + pass + + def Step(self, settings): + """ + The main physics step. + + Takes care of physics drawing (callbacks are executed after the world.Step() ) + and drawing additional information. + """ + + self.stepCount+=1 + # Don't do anything if the setting's Hz are <= 0 + if settings.hz > 0.0: + timeStep = 1.0 / settings.hz + else: + timeStep = 0.0 + + # If paused, display so + if settings.pause: + if settings.singleStep: + settings.singleStep=False + else: + timeStep = 0.0 + + self.Print("****PAUSED****", (200,0,0)) + + # Set the flags based on what the settings show + if self.renderer: + self.renderer.flags=dict( + drawShapes=settings.drawShapes, + drawJoints=settings.drawJoints, + drawAABBs =settings.drawAABBs, + drawPairs =settings.drawPairs, + drawCOMs =settings.drawCOMs, + # The following is only applicable when using b2DrawExtended. + # It indicates that the C code should transform box2d coords to + # screen coordinates. + convertVertices=isinstance(self.renderer, b2DrawExtended) + ) + + # Set the other settings that aren't contained in the flags + self.world.warmStarting=settings.enableWarmStarting + self.world.continuousPhysics=settings.enableContinuous + self.world.subStepping=settings.enableSubStepping + + # Reset the collision points + self.points = [] + + # Tell Box2D to step + t_step=time() + self.world.Step(timeStep, settings.velocityIterations, settings.positionIterations) + self.world.ClearForces() + t_step=time()-t_step + + # Update the debug draw settings so that the vertices will be properly + # converted to screen coordinates + t_draw=time() + if self.renderer: + self.renderer.StartDraw() + + self.world.DrawDebugData() + + # If the bomb is frozen, get rid of it. + if self.bomb and not self.bomb.awake: + self.world.DestroyBody(self.bomb) + self.bomb = None + + # Take care of additional drawing (fps, mouse joint, slingshot bomb, contact points) + + if self.renderer: + # If there's a mouse joint, draw the connection between the object and the current pointer position. + if self.mouseJoint: + p1 = self.renderer.to_screen(self.mouseJoint.anchorB) + p2 = self.renderer.to_screen(self.mouseJoint.target) + + self.renderer.DrawPoint(p1, settings.pointSize, self.colors['mouse_point']) + self.renderer.DrawPoint(p2, settings.pointSize, self.colors['mouse_point']) + self.renderer.DrawSegment(p1, p2, self.colors['joint_line']) + + # Draw the slingshot bomb + if self.bombSpawning: + self.renderer.DrawPoint(self.renderer.to_screen(self.bombSpawnPoint), settings.pointSize, self.colors['bomb_center']) + self.renderer.DrawSegment(self.renderer.to_screen(self.bombSpawnPoint), self.renderer.to_screen(self.mouseWorld), self.colors['bomb_line']) + + # Draw each of the contact points in different colors. + if self.settings.drawContactPoints: + for point in self.points: + if point['state'] == b2_addState: + self.renderer.DrawPoint(self.renderer.to_screen(point['position']), settings.pointSize, self.colors['contact_add']) + elif point['state'] == b2_persistState: + self.renderer.DrawPoint(self.renderer.to_screen(point['position']), settings.pointSize, self.colors['contact_persist']) + + if settings.drawContactNormals: + for point in self.points: + p1 = self.renderer.to_screen(point['position']) + p2 = self.renderer.axisScale * point['normal'] + p1 + self.renderer.DrawSegment(p1, p2, self.colors['contact_normal']) + + self.renderer.EndDraw() + t_draw=time()-t_draw + + t_draw=max(b2_epsilon, t_draw) + t_step=max(b2_epsilon, t_step) + + try: + self.t_draws.append(1.0/t_draw) + except: + pass + else: + if len(self.t_draws) > 2: + self.t_draws.pop(0) + + try: + self.t_steps.append(1.0/t_step) + except: + pass + else: + if len(self.t_steps) > 2: + self.t_steps.pop(0) + + if settings.drawFPS: + self.Print("Combined FPS %d" % self.fps) + + if settings.drawStats: + self.Print("bodies=%d contacts=%d joints=%d proxies=%d" % + (self.world.bodyCount, self.world.contactCount, self.world.jointCount, self.world.proxyCount)) + + self.Print("hz %d vel/pos iterations %d/%d" % + (settings.hz, settings.velocityIterations, settings.positionIterations)) + + if self.t_draws and self.t_steps: + self.Print("Potential draw rate: %.2f fps Step rate: %.2f Hz" % (sum(self.t_draws)/len(self.t_draws), sum(self.t_steps)/len(self.t_steps))) + + def ShiftMouseDown(self, p): + """ + Indicates that there was a left click at point p (world coordinates) with the + left shift key being held down. + """ + self.mouseWorld = p + + if not self.mouseJoint: + self.SpawnBomb(p) + + def MouseDown(self, p): + """ + Indicates that there was a left click at point p (world coordinates) + """ + + if self.mouseJoint != None: + return + + # Create a mouse joint on the selected body (assuming it's dynamic) + # Make a small box. + aabb = b2AABB(lowerBound=p-(0.001, 0.001), upperBound=p+(0.001, 0.001)) + + # Query the world for overlapping shapes. + query = fwQueryCallback(p) + self.world.QueryAABB(query, aabb) + + if query.fixture: + body = query.fixture.body + # A body was selected, create the mouse joint + self.mouseJoint = self.world.CreateMouseJoint( + bodyA=self.groundbody, + bodyB=body, + target=p, + maxForce=1000.0*body.mass) + body.awake = True + + def MouseUp(self, p): + """ + Left mouse button up. + """ + if self.mouseJoint: + self.world.DestroyJoint(self.mouseJoint) + self.mouseJoint = None + + if self.bombSpawning: + self.CompleteBombSpawn(p) + + def MouseMove(self, p): + """ + Mouse moved to point p, in world coordinates. + """ + self.mouseWorld = p + if self.mouseJoint: + self.mouseJoint.target = p + + def SpawnBomb(self, worldPt): + """ + Begins the slingshot bomb by recording the initial position. + Once the user drags the mouse and releases it, then + CompleteBombSpawn will be called and the actual bomb will be + released. + """ + self.bombSpawnPoint = worldPt.copy() + self.bombSpawning = True + + def CompleteBombSpawn(self, p): + """ + Create the slingshot bomb based on the two points + (from the worldPt passed to SpawnBomb to p passed in here) + """ + if not self.bombSpawning: + return + multiplier = 30.0 + vel = self.bombSpawnPoint - p + vel *= multiplier + self.LaunchBomb(self.bombSpawnPoint, vel) + self.bombSpawning = False + + def LaunchBomb(self, position, velocity): + """ + A bomb is a simple circle which has the specified position and velocity. + position and velocity must be b2Vec2's. + """ + if self.bomb: + self.world.DestroyBody(self.bomb) + self.bomb = None + + self.bomb = self.world.CreateDynamicBody( + allowSleep=True, + position=position, + linearVelocity=velocity, + fixtures=b2FixtureDef( + shape=b2CircleShape(radius=0.3), + density=20, + restitution=0.1 ) + + ) + + def LaunchRandomBomb(self): + """ + Create a new bomb and launch it at the testbed. + """ + p = b2Vec2( b2Random(-15.0, 15.0), 30.0 ) + v = -5.0 * p + self.LaunchBomb(p, v) + + def SimulationLoop(self): + """ + The main simulation loop. Don't override this, override Step instead. + """ + + # Reset the text line to start the text from the top + self.textLine = self.TEXTLINE_START + + # Draw the name of the test running + self.Print(self.name, (127,127,255)) + + if self.description: + # Draw the name of the test running + for s in self.description.split('\n'): + self.Print(s, (127,255,127)) + + # Do the main physics step + self.Step(self.settings) + + def ConvertScreenToWorld(self, x, y): + """ + Return a b2Vec2 in world coordinates of the passed in screen coordinates x, y + NOTE: Renderer subclasses must implement this + """ + raise NotImplementedError() + + def DrawStringAt(self, x, y, str, color=(229,153,153,255)): + """ + Draw some text, str, at screen coordinates (x, y). + NOTE: Renderer subclasses must implement this + """ + raise NotImplementedError() + + def Print(self, str, color=(229,153,153,255)): + """ + Draw some text at the top status lines + and advance to the next line. + NOTE: Renderer subclasses must implement this + """ + raise NotImplementedError() + + def PreSolve(self, contact, old_manifold): + """ + This is a critical function when there are many contacts in the world. + It should be optimized as much as possible. + """ + if not (self.settings.drawContactPoints or self.settings.drawContactNormals or self.using_contacts): + return + elif len(self.points) > self.settings.maxContactPoints: + return + + manifold = contact.manifold + if manifold.pointCount == 0: + return + + state1, state2 = b2GetPointStates(old_manifold, manifold) + if not state2: + return + + worldManifold = contact.worldManifold + + for i, point in enumerate(state2): + # TODO: find some way to speed all of this up. + self.points.append( + { + 'fixtureA' : contact.fixtureA, + 'fixtureB' : contact.fixtureB, + 'position' : worldManifold.points[i], + 'normal' : worldManifold.normal, + 'state' : state2[i] + } ) + + # These can/should be implemented in the test subclass: (Step() also if necessary) + # See test_Empty.py for a simple example. + def BeginContact(self, contact): + pass + def EndContact(self, contact): + pass + def PostSolve(self, contact, impulse): + pass + + def FixtureDestroyed(self, fixture): + """ + Callback indicating 'fixture' has been destroyed. + """ + pass + + def JointDestroyed(self, joint): + """ + Callback indicating 'joint' has been destroyed. + """ + pass + + def Keyboard(self, key): + """ + Callback indicating 'key' has been pressed down. + """ + pass + + def KeyboardUp(self, key): + """ + Callback indicating 'key' has been released. + """ + pass + +def main(test_class, argv): + """ + Loads the test class and executes it. + """ + print("Loading %s..." % test_class.name) + test = test_class(argv) + if fwSettings.onlyInit: + return + test.run() + +if __name__=='__main__': + print('Please run one of the examples directly. This is just the base for all of the frameworks.') + exit(0) + +# Your framework classes should follow this format. If it is the 'foobar' +# framework, then your file should be 'foobar_framework.py' and you should +# have a class 'FoobarFramework' that derives FrameworkBase. Ensure proper +# capitalization for portability. +try: + framework_module=__import__('%s_framework' % (fwSettings.backend.lower()), fromlist=['%sFramework' % fwSettings.backend.capitalize()]) + Framework=getattr(framework_module, '%sFramework' % fwSettings.backend.capitalize()) +except: + from sys import exc_info + ex=exc_info()[1] + print('Unable to import the back-end %s: %s' % (fwSettings.backend, ex)) + print('Attempting to fall back on the pygame back-end.') + + from pygame_framework import PygameFramework as Framework +#s/\.Get\(.\)\(.\{-\}\)()/.\L\1\l\2/g diff --git a/2-WordSwarm/framework/pygame_framework.py b/2-WordSwarm/framework/pygame_framework.py new file mode 100644 index 0000000..ffc7a19 --- /dev/null +++ b/2-WordSwarm/framework/pygame_framework.py @@ -0,0 +1,466 @@ +# -*- coding: utf-8 -*- +""" pygame_framework.py + + The file establishes the PyGame GUI which is used to render the + WordSwarm. Not much should ever need to be changed here. + + The screen size in px can be changed by changing the following line: + self.screen = pygame.display.set_mode((1920,1080)) + Use caution as this may not scale nicely + + This file is part of WordSwarm. + + WordSwarm is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + WordSwarm is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + Copyright 2014 Michael Kane + + PyBox2D Framework: + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + C++ version Copyright (c) 2006-2007 Erin Catto http://www.box2d.org + Python version by Ken Lauer / sirkne at gmail dot com + +""" + +""" +Global Keys: + F1 - toggle menu (can greatly improve fps) + Space - shoot projectile + Z/X - zoom + Escape - quit + +Other keys can be set by the individual test. + +Mouse: + Left click - select/drag body (creates mouse joint) + Right click - pan + Shift+Left - drag to create a directed projectile + Scroll - zoom + +""" + +import pygame +import framework +from pygame.locals import * +from framework import * + +try: + from pygame_gui import (fwGUI, gui) + GUIEnabled = True +except: + print('Unable to load PGU; menu disabled.') + GUIEnabled = False + +class PygameDraw(b2DrawExtended): + """ + This debug draw class accepts callbacks from Box2D (which specifies what to draw) + and handles all of the rendering. + + If you are writing your own game, you likely will not want to use debug drawing. + Debug drawing, as its name implies, is for debugging. + """ + surface = None + axisScale = 10.0 + def __init__(self, **kwargs): + b2DrawExtended.__init__(self, **kwargs) + self.flipX = False + self.flipY = True + self.convertVertices = True + + def StartDraw(self): + self.zoom=self.test.viewZoom + self.center=self.test.viewCenter + self.offset=self.test.viewOffset + self.screenSize=self.test.screenSize + + def EndDraw(self): pass + + def DrawPoint(self, p, size, color): + """ + Draw a single point at point p given a pixel size and color. + """ + self.DrawCircle(p, size/self.zoom, color, drawwidth=0) + + def DrawAABB(self, aabb, color): + """ + Draw a wireframe around the AABB with the given color. + """ + points = [ (aabb.lowerBound.x, aabb.lowerBound.y ), + (aabb.upperBound.x, aabb.lowerBound.y ), + (aabb.upperBound.x, aabb.upperBound.y ), + (aabb.lowerBound.x, aabb.upperBound.y ) ] + + pygame.draw.aalines(self.surface, color, True, points) + + def DrawSegment(self, p1, p2, color): + """ + Draw the line segment from p1-p2 with the specified color. + """ + pygame.draw.aaline(self.surface, color.bytes, p1, p2) + + def DrawTransform(self, xf): + """ + Draw the transform xf on the screen + """ + p1 = xf.position + p2 = self.to_screen(p1 + self.axisScale * xf.R.col1) + p3 = self.to_screen(p1 + self.axisScale * xf.R.col2) + p1 = self.to_screen(p1) + + pygame.draw.aaline(self.surface, (255,0,0), p1, p2) + pygame.draw.aaline(self.surface, (0,255,0), p1, p3) + + def DrawCircle(self, center, radius, color, drawwidth=1): + """ + Draw a wireframe circle given the center, radius, axis of orientation and color. + """ + radius *= self.zoom + if radius < 1: radius = 1 + else: radius = int(radius) + + pygame.draw.circle(self.surface, color.bytes, center, radius, drawwidth) + + def DrawSolidCircle(self, center, radius, axis, color): + """ + Draw a solid circle given the center, radius, axis of orientation and color. + """ + radius *= self.zoom + if radius < 1: radius = 1 + else: radius = int(radius) + + pygame.draw.circle(self.surface, (color/2).bytes+[127], center, radius, 0) + pygame.draw.circle(self.surface, color.bytes, center, radius, 1) + pygame.draw.aaline(self.surface, (255,0,0), center, (center[0] - radius*axis[0], center[1] + radius*axis[1])) + + def DrawPolygon(self, vertices, color): + """ + Draw a wireframe polygon given the screen vertices with the specified color. + """ + if not vertices: + return + + if len(vertices) == 2: + pygame.draw.aaline(self.surface, color.bytes, vertices[0], vertices) + else: + pygame.draw.polygon(self.surface, color.bytes, vertices, 1) + + def DrawSolidPolygon(self, vertices, color): + """ + Draw a filled polygon given the screen vertices with the specified color. + """ + if not vertices: + return + + if len(vertices) == 2: + pygame.draw.aaline(self.surface, color.bytes, vertices[0], vertices[1]) + else: + pygame.draw.polygon(self.surface, (color/2).bytes+[127], vertices, 0) + pygame.draw.polygon(self.surface, color.bytes, vertices, 1) + + # the to_screen conversions are done in C with b2DrawExtended, leading to + # an increase in fps. + # You can also use the base b2Draw and implement these yourself, as the + # b2DrawExtended is implemented: + # def to_screen(self, point): + # """ + # Convert from world to screen coordinates. + # In the class instance, we store a zoom factor, an offset indicating where + # the view extents start at, and the screen size (in pixels). + # """ + # x=(point.x * self.zoom)-self.offset.x + # if self.flipX: + # x = self.screenSize.x - x + # y=(point.y * self.zoom)-self.offset.y + # if self.flipY: + # y = self.screenSize.y-y + # return (x, y) + +class PygameFramework(FrameworkBase): + TEXTLINE_START=30 + def setup_keys(self): + keys = [s for s in dir(pygame.locals) if s.startswith('K_')] + for key in keys: + value=getattr(pygame.locals, key) + setattr(Keys, key, value) + + def __reset(self): + # Screen/rendering-related + self._viewZoom = 10.0 + self._viewCenter = None + self._viewOffset = None + self.screenSize = None + self.rMouseDown = False + self.textLine = 30 + self.font = None + self.fps = 0 + + # GUI-related (PGU) + self.gui_app =None + self.gui_table=None + self.setup_keys() + + def __init__(self): + super(PygameFramework, self).__init__() + + if fwSettings.onlyInit: # testing mode doesn't initialize pygame + return + + self.__reset() + print('Initializing pygame framework...') + # Pygame Initialization + pygame.init() + caption= "Python Box2D Testbed - " + self.name + pygame.display.set_caption(caption) + + # Screen and debug draw + #@TODO allow for screen size argument + self.screen = pygame.display.set_mode((1920,1080)) + self.screenSize = b2Vec2(*self.screen.get_size()) + + self.renderer = PygameDraw(surface=self.screen, test=self) + self.world.renderer=self.renderer + + try: + self.font = pygame.font.Font(None, 24) + except IOError: + try: + self.font = pygame.font.Font("freesansbold.ttf", 24) + except IOError: + print("Unable to load default font or 'freesansbold.ttf'") + print("Disabling text drawing.") + self.Print = lambda *args: 0 + self.DrawStringAt = lambda *args: 0 + + # GUI Initialization + if GUIEnabled: + self.gui_app = gui.App() + self.gui_table=fwGUI(self.settings) + container = gui.Container(align=1,valign=-1) + container.add(self.gui_table,0,0) + self.gui_app.init(container) + + self.viewCenter = (0,0) + self.groundbody = self.world.CreateBody() + + def setCenter(self, value): + """ + Updates the view offset based on the center of the screen. + + Tells the debug draw to update its values also. + """ + self._viewCenter = b2Vec2( *value ) + self._viewCenter *= self._viewZoom + self._viewOffset = self._viewCenter - self.screenSize/2 + + def setZoom(self, zoom): + self._viewZoom = zoom + + viewZoom = property(lambda self: self._viewZoom, setZoom, + doc='Zoom factor for the display') + viewCenter = property(lambda self: self._viewCenter/self._viewZoom, setCenter, + doc='Screen center in camera coordinates') + viewOffset = property(lambda self: self._viewOffset, + doc='The offset of the top-left corner of the screen') + + def checkEvents(self): + """ + Check for pygame events (mainly keyboard/mouse events). + Passes the events onto the GUI also. + """ + for event in pygame.event.get(): + if event.type == QUIT or (event.type == KEYDOWN and event.key == Keys.K_ESCAPE): + return False + elif event.type == KEYDOWN: + self._Keyboard_Event(event.key, down=True) + elif event.type == KEYUP: + self._Keyboard_Event(event.key, down=False) + elif event.type == MOUSEBUTTONDOWN: + p = self.ConvertScreenToWorld(*event.pos) + if event.button == 1: # left + mods = pygame.key.get_mods() + if mods & KMOD_LSHIFT: + self.ShiftMouseDown( p ) + else: + self.MouseDown( p ) + elif event.button == 2: #middle + pass + elif event.button == 3: #right + self.rMouseDown = True + elif event.button == 4: + self.viewZoom *= 1.1 + elif event.button == 5: + self.viewZoom /= 1.1 + elif event.type == MOUSEBUTTONUP: + p = self.ConvertScreenToWorld(*event.pos) + if event.button == 3: #right + self.rMouseDown = False + else: + self.MouseUp(p) + elif event.type == MOUSEMOTION: + p = self.ConvertScreenToWorld(*event.pos) + + self.MouseMove(p) + + if self.rMouseDown: + self.viewCenter -= (event.rel[0]/5.0, -event.rel[1]/5.0) + + if GUIEnabled: + self.gui_app.event(event) #Pass the event to the GUI + + return True + + def run(self): + """ + Main loop. + + Continues to run while checkEvents indicates the user has + requested to quit. + + Updates the screen and tells the GUI to paint itself. + """ + + # If any of the test constructors update the settings, reflect + # those changes on the GUI before running + if GUIEnabled: + self.gui_table.updateGUI(self.settings) + + running = True + clock = pygame.time.Clock() + while running: + running = self.checkEvents() + self.screen.fill( (0,0,0) ) + + # Check keys that should be checked every loop (not only on initial keydown) + self.CheckKeys() + + # Run the simulation loop + self.SimulationLoop() + + if GUIEnabled and self.settings.drawMenu: + self.gui_app.paint(self.screen) + + pygame.display.flip() + clock.tick(self.settings.hz) + self.fps = clock.get_fps() + + self.world.contactListener = None + self.world.destructionListener=None + self.world.renderer=None + + def _Keyboard_Event(self, key, down=True): + """ + Internal keyboard event, don't override this. + + Checks for the initial keydown of the basic testbed keys. Passes the unused + ones onto the test via the Keyboard() function. + """ + if down: + if key==Keys.K_z: # Zoom in + self.viewZoom = min(1.1 * self.viewZoom, 50.0) + elif key==Keys.K_x: # Zoom out + self.viewZoom = max(0.9 * self.viewZoom, 0.02) + elif key==Keys.K_SPACE: # Launch a bomb + self.LaunchRandomBomb() + elif key==Keys.K_F1: # Toggle drawing the menu + self.settings.drawMenu = not self.settings.drawMenu + elif key==Keys.K_F2: # Do a single step + self.settings.singleStep=True + if GUIEnabled: + self.gui_table.updateGUI(self.settings) + else: # Inform the test of the key press + self.Keyboard(key) + else: + self.KeyboardUp(key) + + def CheckKeys(self): + """ + Check the keys that are evaluated on every main loop iteration. + I.e., they aren't just evaluated when first pressed down + """ + + pygame.event.pump() + self.keys = keys = pygame.key.get_pressed() + if keys[Keys.K_LEFT]: + self.viewCenter -= (0.5, 0) + elif keys[Keys.K_RIGHT]: + self.viewCenter += (0.5, 0) + + if keys[Keys.K_UP]: + self.viewCenter += (0, 0.5) + elif keys[Keys.K_DOWN]: + self.viewCenter -= (0, 0.5) + + if keys[Keys.K_HOME]: + self.viewZoom = 1.0 + self.viewCenter = (0.0, 20.0) + + + def Step(self, settings): + if GUIEnabled: + # Update the settings based on the GUI + self.gui_table.updateSettings(self.settings) + + super(PygameFramework, self).Step(settings) + + if GUIEnabled: + # In case during the step the settings changed, update the GUI reflecting + # those settings. + self.gui_table.updateGUI(self.settings) + + def ConvertScreenToWorld(self, x, y): + return b2Vec2((x + self.viewOffset.x) / self.viewZoom, + ((self.screenSize.y - y + self.viewOffset.y) / self.viewZoom)) + + def DrawStringAt(self, x, y, str, color=(229,153,153,255)): + """ + Draw some text, str, at screen coordinates (x, y). + """ + self.screen.blit(self.font.render(str, True, color), (x,y)) + + def Print(self, str, color=(229,153,153,255)): + """ + Draw some text at the top status lines + and advance to the next line. + """ + self.screen.blit(self.font.render(str, True, color), (15,self.textLine-10)) + self.textLine += 15 + + def Keyboard(self, key): + """ + Callback indicating 'key' has been pressed down. + The keys are mapped after pygame's style. + + from framework import Keys + if key == Keys.K_z: + ... + """ + pass + + def KeyboardUp(self, key): + """ + Callback indicating 'key' has been released. + See Keyboard() for key information + """ + pass + diff --git a/2-WordSwarm/framework/pygame_gui.py b/2-WordSwarm/framework/pygame_gui.py new file mode 100644 index 0000000..d1f660b --- /dev/null +++ b/2-WordSwarm/framework/pygame_gui.py @@ -0,0 +1,120 @@ +# -*- coding: utf-8 -*- +""" + + + + + This file is part of WordSwarm. + + WordSwarm is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + WordSwarm is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + Copyright 2014 Michael Kane + + Copyright (c) 2010 Ken Lauer / sirkne at gmail dot com + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + +""" + +try: + from pgu import gui +except: + raise ImportError('Unable to load PGU') + +from settings import checkboxes +from settings import sliders + +class fwGUI(gui.Table): + """ + Deals with the initialization and changing the settings based on the GUI + controls. Callbacks are not used, but the checkboxes and sliders are polled + by the main loop. + """ + form = None + + def __init__(self,settings, **params): + # The framework GUI is just basically a HTML-like table + # There are 2 columns right-aligned on the screen + gui.Table.__init__(self,**params) + self.form=gui.Form() + + fg = (255,255,255) + + # "Toggle menu" + self.tr() + self.td(gui.Label("F1: Toggle Menu",color=(255,0,0)),align=1,colspan=2) + + for slider in sliders: + # "Slider title" + self.tr() + self.td(gui.Label(slider['text'],color=fg),align=1,colspan=2) + + # Create the slider + self.tr() + e = gui.HSlider(getattr(settings, slider['name']),slider['min'],slider['max'],size=20,width=100,height=16,name=slider['name']) + self.td(e,colspan=2,align=1) + + # Add each of the checkboxes. + for text, variable in checkboxes: + self.tr() + if variable == None: + # Checkboxes that have no variable (i.e., None) are just labels. + self.td(gui.Label(text, color=fg), align=1, colspan=2) + else: + # Add the label and then the switch/checkbox + self.td(gui.Label(text, color=fg), align=1) + self.td(gui.Switch(value=getattr(settings, variable),name=variable)) + + def updateGUI(self, settings): + """ + Change all of the GUI elements based on the current settings + """ + for text, variable in checkboxes: + if not variable: continue + if hasattr(settings, variable): + self.form[variable].value = getattr(settings, variable) + + # Now do the sliders + for slider in sliders: + name=slider['name'] + self.form[name].value=getattr(settings, name) + + def updateSettings(self, settings): + """ + Change all of the settings based on the current state of the GUI. + """ + for text, variable in checkboxes: + if variable: + setattr(settings, variable, self.form[variable].value) + + # Now do the sliders + for slider in sliders: + name=slider['name'] + setattr(settings, name, int(self.form[name].value)) + + # If we're in single-step mode, update the GUI to reflect that. + if settings.singleStep: + settings.pause=True + self.form['pause'].value = True + self.form['singleStep'].value = False + diff --git a/2-WordSwarm/framework/pyglet_framework.py b/2-WordSwarm/framework/pyglet_framework.py new file mode 100644 index 0000000..dfd3e8a --- /dev/null +++ b/2-WordSwarm/framework/pyglet_framework.py @@ -0,0 +1,678 @@ +# -*- coding: utf-8 -*- +""" + + + + + This file is part of WordSwarm. + + WordSwarm is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + WordSwarm is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + Copyright 2014 Michael Kane + + PyBox2D Framework: + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + C++ version Copyright (c) 2006-2007 Erin Catto http://www.box2d.org + Python version by Ken Lauer / sirkne at gmail dot com + +""" + + +""" +Global Keys: + Space - shoot projectile + Z/X - zoom + Escape - quit + +Other keys can be set by the individual test. + +Mouse: + Left click - select/drag body (creates mouse joint) + Right click - pan + Shift+Left - drag to create a directional projectile + Scroll - zoom + +You can easily add your own tests based on test_empty. +""" + +import pyglet +import framework +from framework import * +from pyglet import gl +import string +import math + +class grBlended (pyglet.graphics.Group): + """ + This pyglet rendering group enables blending. + """ + def set_state(self): + gl.glEnable(gl.GL_BLEND) + gl.glBlendFunc(gl.GL_SRC_ALPHA, gl.GL_ONE_MINUS_SRC_ALPHA) + def unset_state(self): + gl.glDisable(gl.GL_BLEND) + +class grPointSize (pyglet.graphics.Group): + """ + This pyglet rendering group sets a specific point size. + """ + def __init__(self, size=4.0): + super(grPointSize, self).__init__() + self.size = size + def set_state(self): + gl.glPointSize(self.size) + def unset_state(self): + gl.glPointSize(1.0) + +class grText(pyglet.graphics.Group): + """ + This pyglet rendering group sets the proper projection for + displaying text when used. + """ + window = None + def __init__(self, window=None): + super(grText, self).__init__() + self.window = window + + def set_state(self): + gl.glMatrixMode(gl.GL_PROJECTION) + gl.glPushMatrix() + gl.glLoadIdentity() + gl.gluOrtho2D(0, self.window.width, 0, self.window.height) + + gl.glMatrixMode(gl.GL_MODELVIEW) + gl.glPushMatrix() + gl.glLoadIdentity() + + def unset_state(self): + gl.glPopMatrix() + gl.glMatrixMode(gl.GL_PROJECTION) + gl.glPopMatrix() + gl.glMatrixMode(gl.GL_MODELVIEW) + +class PygletDraw(b2Draw): + """ + This debug draw class accepts callbacks from Box2D (which specifies what to draw) + and handles all of the rendering. + + If you are writing your own game, you likely will not want to use debug drawing. + Debug drawing, as its name implies, is for debugging. + """ + blended = grBlended() + circle_segments = 16 + surface = None + circle_cache_tf = {} # triangle fan (inside) + circle_cache_ll = {} # line loop (border) + def __init__(self, test): + super(PygletDraw, self).__init__() + self.test=test + + def StartDraw(self): pass + def EndDraw(self): pass + def triangle_fan(self, vertices): + """ + in: vertices arranged for gl_triangle_fan ((x,y),(x,y)...) + out: vertices arranged for gl_triangles (x,y,x,y,x,y...) + """ + out = [] + for i in range(1, len(vertices)-1): + # 0,1,2 0,2,3 0,3,4 .. + out.extend( vertices[0 ] ) + out.extend( vertices[i ] ) + out.extend( vertices[i+1] ) + return len(out) / 2, out + + + def line_loop(self, vertices): + """ + in: vertices arranged for gl_line_loop ((x,y),(x,y)...) + out: vertices arranged for gl_lines (x,y,x,y,x,y...) + """ + out = [] + for i in range(0, len(vertices)-1): + # 0,1 1,2 2,3 ... len-1,len len,0 + out.extend( vertices[i ] ) + out.extend( vertices[i+1] ) + + out.extend( vertices[len(vertices)-1] ) + out.extend( vertices[0] ) + + return len(out)/2, out + + def _getLLCircleVertices(self, radius, points): + """ + Get the line loop-style vertices for a given circle. + Drawn as lines. + + "Line Loop" is used as that's how the C++ code draws the + vertices, with lines going around the circumference of the + circle (GL_LINE_LOOP). + + This returns 'points' amount of lines approximating the + border of a circle. + + (x1, y1, x2, y2, x3, y3, ...) + """ + ret = [] + step = 2*math.pi/points + n = 0 + for i in range(0, points): + ret.append( (math.cos(n) * radius, math.sin(n) * radius ) ) + n += step + ret.append( (math.cos(n) * radius, math.sin(n) * radius ) ) + return ret + + def _getTFCircleVertices(self, radius, points): + """ + Get the triangle fan-style vertices for a given circle. + Drawn as triangles. + + "Triangle Fan" is used as that's how the C++ code draws the + vertices, with triangles originating at the center of the + circle, extending around to approximate a filled circle + (GL_TRIANGLE_FAN). + + This returns 'points' amount of lines approximating the + circle. + + (a1, b1, c1, a2, b2, c2, ...) + """ + ret = [] + step = 2*math.pi/points + n = 0 + for i in range(0, points): + ret.append( (0.0, 0.0) ) + ret.append( (math.cos(n) * radius, math.sin(n) * radius ) ) + n += step + ret.append( (math.cos(n) * radius, math.sin(n) * radius ) ) + return ret + + def getCircleVertices(self, center, radius, points): + """ + Returns the triangles that approximate the circle and + the lines that border the circles edges, given + (center, radius, points). + + Caches the calculated LL/TF vertices, but recalculates + based on the center passed in. + + TODO: Currently, there's only one point amount, + so the circle cache ignores it when storing. Could cause + some confusion if you're using multiple point counts as + only the first stored point-count for that radius will + show up. + TODO: What does the previous TODO mean? + + Returns: (tf_vertices, ll_vertices) + """ + if radius not in self.circle_cache_tf: + self.circle_cache_tf[radius]=self._getTFCircleVertices(radius,points) + self.circle_cache_ll[radius]=self._getLLCircleVertices(radius,points) + + ret_tf, ret_ll = [], [] + + for x, y in self.circle_cache_tf[radius]: + ret_tf.extend( (x+center[0], y+center[1]) ) + for x, y in self.circle_cache_ll[radius]: + ret_ll.extend( (x+center[0], y+center[1]) ) + return ret_tf, ret_ll + + def DrawCircle(self, center, radius, color): + """ + Draw an unfilled circle given center, radius and color. + """ + unused, ll_vertices = self.getCircleVertices( center, radius, self.circle_segments) + ll_count = len(ll_vertices)/2 + + self.batch.add(ll_count, gl.GL_LINES, None, + ('v2f', ll_vertices), + ('c4f', [color.r, color.g, color.b, 1.0] * (ll_count))) + + def DrawSolidCircle(self, center, radius, axis, color): + """ + Draw an filled circle given center, radius, axis (of orientation) and color. + """ + tf_vertices, ll_vertices = self.getCircleVertices( center, radius, self.circle_segments) + tf_count, ll_count = len(tf_vertices) / 2, len(ll_vertices) / 2 + + self.batch.add(tf_count, gl.GL_TRIANGLES, self.blended, + ('v2f', tf_vertices), + ('c4f', [0.5 * color.r, 0.5 * color.g, 0.5 * color.b, 0.5] * (tf_count))) + + self.batch.add(ll_count, gl.GL_LINES, None, + ('v2f', ll_vertices), + ('c4f', [color.r, color.g, color.b, 1.0] * (ll_count))) + + p = b2Vec2(center) + radius * b2Vec2(axis) + self.batch.add(2, gl.GL_LINES, None, + ('v2f', (center[0], center[1], p[0], p[1])), + ('c3f', [1.0, 0.0, 0.0] * 2)) + + def DrawPolygon(self, vertices, color): + """ + Draw a wireframe polygon given the world vertices (tuples) with the specified color. + """ + if len(vertices)==2: + p1, p2=vertices + self.batch.add(2, gl.GL_LINES, None, + ('v2f', (p1[0], p1[1], p2[0], p2[1])), + ('c3f', [color.r, color.g, color.b]*2)) + else: + ll_count, ll_vertices = self.line_loop(vertices) + + self.batch.add(ll_count, gl.GL_LINES, None, + ('v2f', ll_vertices), + ('c4f', [color.r, color.g, color.b, 1.0] * (ll_count))) + + def DrawSolidPolygon(self, vertices, color): + """ + Draw a filled polygon given the world vertices (tuples) with the specified color. + """ + if len(vertices)==2: + p1, p2=vertices + self.batch.add(2, gl.GL_LINES, None, + ('v2f', (p1[0], p1[1], p2[0], p2[1])), + ('c3f', [color.r, color.g, color.b]*2)) + else: + tf_count, tf_vertices = self.triangle_fan(vertices) + if tf_count==0: + return + + self.batch.add(tf_count, gl.GL_TRIANGLES, self.blended, + ('v2f', tf_vertices), + ('c4f', [0.5 * color.r, 0.5 * color.g, 0.5 * color.b, 0.5] * (tf_count))) + + ll_count, ll_vertices = self.line_loop(vertices) + + self.batch.add(ll_count, gl.GL_LINES, None, + ('v2f', ll_vertices), + ('c4f', [color.r, color.g, color.b, 1.0] * (ll_count))) + + def DrawSegment(self, p1, p2, color): + """ + Draw the line segment from p1-p2 with the specified color. + """ + self.batch.add(2, gl.GL_LINES, None, + ('v2f', (p1[0], p1[1], p2[0], p2[1])), + ('c3f', [color.r, color.g, color.b]*2)) + + def DrawXForm(self, xf): + """ + Draw the transform xf on the screen + """ + p1 = xf.position + k_axisScale = 0.4 + p2 = p1 + k_axisScale * xf.R.col1 + p3 = p1 + k_axisScale * xf.R.col2 + + self.batch.add(3, gl.GL_LINES, None, + ('v2f', (p1[0], p1[1], p2[0], p2[1], p1[0], p1[1], p3[0], p3[1])), + ('c3f', [1.0, 0.0, 0.0] * 2 + [0.0, 1.0, 0.0] * 2)) + + def DrawPoint(self, p, size, color): + """ + Draw a single point at point p given a point size and color. + """ + self.batch.add(1, gl.GL_POINTS, grPointSize(size), + ('v2f', (p[0], p[1])), + ('c3f', [color.r, color.g, color.b])) + + def DrawAABB(self, aabb, color): + """ + Draw a wireframe around the AABB with the given color. + """ + self.renderer.batch.add(8, gl.GL_LINES, None, + ('v2f', (aabb.lowerBound.x, aabb.lowerBound.y, abb.upperBound.x, aabb.lowerBound.y, + abb.upperBound.x, aabb.lowerBound.y, aabb.upperBound.x, aabb.upperBound.y, + aabb.upperBound.x, aabb.upperBound.y, aabb.lowerBound.x, aabb.upperBound.y, + aabb.lowerBound.x, aabb.upperBound.y, aabb.lowerBound.x, aabb.lowerBound.y)), + ('c3f', [color.r, color.g, color.b] * 8)) + + def to_screen(self, point): + """ + In here for compatibility with other frameworks. + """ + return tuple(point) + +class PygletWindow(pyglet.window.Window): + def __init__(self, test): + super(PygletWindow, self).__init__() + self.test=test + + def on_close(self): + """ + Callback: user tried to close the window + """ + pyglet.clock.unschedule(self.test.SimulationLoop) + super(PygletWindow, self).on_close() + + def on_show(self): + """ + Callback: the window was shown. + """ + self.test.updateProjection() + + def on_key_press(self, key, modifiers): + self.test._Keyboard_Event(key, down=True) + + def on_key_release(self, key, modifiers): + self.test._Keyboard_Event(key, down=False) + + def on_mouse_press(self, x, y, button, modifiers): + p = self.test.ConvertScreenToWorld(x, y) + self.test.mouseWorld = p + if button == pyglet.window.mouse.LEFT: + if modifiers & pyglet.window.key.MOD_SHIFT: + self.test.ShiftMouseDown( p ) + else: + self.test.MouseDown( p ) + elif button == pyglet.window.mouse.MIDDLE: + pass + + def on_mouse_release(self, x, y, button, modifiers): + """ + Mouse up + """ + p = self.test.ConvertScreenToWorld(x, y) + self.test.mouseWorld = p + + if button == pyglet.window.mouse.LEFT: + self.test.MouseUp(p) + + def on_mouse_scroll(self, x, y, scroll_x, scroll_y): + """ + Mouse scrollwheel used + """ + if scroll_y < 0: + self.test.viewZoom *= 1.1 + elif scroll_y > 0: + self.test.viewZoom /= 1.1 + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + """ + Mouse moved while clicking + """ + p = self.test.ConvertScreenToWorld(x, y) + self.test.mouseWorld = p + + self.test.MouseMove(p) + + if buttons & pyglet.window.mouse.RIGHT: + self.test.viewCenter -= (float(dx)/5, float(dy)/5) + +class PygletFramework(FrameworkBase): + def setup_keys(self): + key=pyglet.window.key + self.keys=key.KeyStateHandler() + # Only basic keys are mapped for now: K_[a-z0-9], K_F[1-12] and K_COMMA. + + for letter in string.uppercase: + setattr(Keys, 'K_'+letter.lower(), getattr(key, letter)) + for i in range(0,10): + setattr(Keys, 'K_%d'%i, getattr(key, '_%d' % i)) + for i in range(1,13): + setattr(Keys, 'K_F%d'%i, getattr(key, 'F%d' % i)) + Keys.K_LEFT=key.LEFT + Keys.K_RIGHT=key.RIGHT + Keys.K_UP=key.UP + Keys.K_DOWN=key.DOWN + Keys.K_HOME=key.HOME + Keys.K_PAGEUP=key.PAGEUP + Keys.K_PAGEDOWN=key.PAGEDOWN + Keys.K_COMMA=key.COMMA + + def __reset(self): + # Screen/rendering-related + self._viewZoom = 10.0 + self._viewCenter = None + self._viewOffset = None + self.screenSize = None + self.rMouseDown = False + self.textLine = 30 + self.font = None + self.fps = 0 + + # Window-related + self.fontname = "Arial" + self.fontsize = 10 + self.font = None + self.textGroup = None + + # Screen-related + self._viewZoom = 1.0 + self._viewCenter = None + self.screenSize = None + self.textLine = 30 + self.font = None + self.fps = 0 + + self.setup_keys() + + def __init__(self): + super(PygletFramework, self).__init__() + + if fwSettings.onlyInit: # testing mode doesn't initialize Pyglet + return + + print('Initializing Pyglet framework...') + self.__reset() + self.window=PygletWindow(self) + + # Initialize the text display group + self.textGroup = grText(self.window) + + # Load the font and record the screen dimensions + self.font = pyglet.font.load(self.fontname, self.fontsize) + self.screenSize = b2Vec2(self.window.width, self.window.height) + + self.renderer = PygletDraw(self) + self.renderer.surface = self.window.screen + self.world.renderer=self.renderer + self._viewCenter = b2Vec2(0,10.0) + self.groundbody = self.world.CreateBody() + + def setCenter(self, value): + """ + Updates the view offset based on the center of the screen. + + Tells the debug draw to update its values also. + """ + self._viewCenter = b2Vec2( *value ) + self.updateProjection() + + def setZoom(self, zoom): + self._viewZoom = zoom + self.updateProjection() + + viewZoom = property(lambda self: self._viewZoom, setZoom, + doc='Zoom factor for the display') + viewCenter = property(lambda self: self._viewCenter, setCenter, + doc='Screen center in camera coordinates') + + def updateProjection(self): + """ + Recalculates the necessary projection. + """ + gl.glViewport(0, 0, self.window.width, self.window.height) + + gl.glMatrixMode(gl.GL_PROJECTION) + gl.glLoadIdentity() + + ratio = float(self.window.width) / self.window.height + + extents = b2Vec2(ratio * 25.0, 25.0) + extents *= self._viewZoom + + lower = self._viewCenter - extents + upper = self._viewCenter + extents + + # L/R/B/T + gl.gluOrtho2D(lower.x, upper.x, lower.y, upper.y) + + gl.glMatrixMode(gl.GL_MODELVIEW) + gl.glLoadIdentity() + + def run(self): + """ + Main loop. + """ + if self.settings.hz > 0.0: + pyglet.clock.schedule_interval(self.SimulationLoop, 1.0 / self.settings.hz) + + #self.window.push_handlers(pyglet.window.event.WindowEventLogger()) + self.window._enable_event_queue=False # TODO: figure out why this is required + pyglet.app.run() + + self.world.contactListener = None + self.world.destructionListener=None + self.world.renderer=None + + def SimulationLoop(self, dt): + """ + The main simulation loop. Don't override this, override Step instead. + And be sure to call super(classname, self).Step(settings) at the end + of your Step function. + """ + + # Check the input and clear the screen + self.CheckKeys() + self.window.clear() + + # Update the keyboard status + self.window.push_handlers(self.keys) + + # Create a new batch for drawing + self.renderer.batch = pyglet.graphics.Batch() + + # Reset the text position + self.textLine=15 + + # Draw the title of the test at the top + self.Print(self.name) + + # Step the physics + self.Step(self.settings) + self.renderer.batch.draw() + self.window.invalid = True + + self.fps = pyglet.clock.get_fps() + + def _Keyboard_Event(self, key, down=True): + """ + Internal keyboard event, don't override this. + + Checks for the initial keydown of the basic testbed keys. Passes the unused + ones onto the test via the Keyboard() function. + """ + if down: + if key==pyglet.window.key.ESCAPE: + exit(0) + elif key==pyglet.window.key.SPACE: + # Launch a bomb + self.LaunchRandomBomb() + elif key==Keys.K_z: + # Zoom in + self.viewZoom = min(1.1 * self.viewZoom, 20.0) + elif key==Keys.K_x: + # Zoom out + self.viewZoom = max(0.9 * self.viewZoom, 0.02) + else: + # Inform the test of the key press + self.Keyboard(key) + else: + self.KeyboardUp(key) + + def CheckKeys(self): + """ + Check the keys that are evaluated on every main loop iteration. + I.e., they aren't just evaluated when first pressed down + """ + keys=self.keys + if keys[Keys.K_LEFT]: + self.viewCenter -= (0.5, 0) + elif keys[Keys.K_RIGHT]: + self.viewCenter += (0.5, 0) + + if keys[Keys.K_UP]: + self.viewCenter += (0, 0.5) + elif keys[Keys.K_DOWN]: + self.viewCenter -= (0, 0.5) + + if keys[Keys.K_HOME]: + self.viewZoom = 1.0 + self.viewCenter = (0.0, 20.0) + + #def Step(self, settings): + # super(PygletFramework, self).Step(settings) + + def ConvertScreenToWorld(self, x, y): + """ + Takes screen (x, y) and returns + world coordinate b2Vec2(x,y). + """ + u = float(x) / self.window.width + v = float(y) / self.window.height + + ratio = float(self.window.width) / self.window.height + extents = b2Vec2(ratio * 25.0, 25.0) + extents *= self._viewZoom + + lower = self._viewCenter - extents + upper = self._viewCenter + extents + + p = b2Vec2( + (1.0 - u) * lower.x + u * upper.x, + (1.0 - v) * lower.y + v * upper.y ) + + return p + + def DrawStringAt(self, x, y, str, color=(229,153,153,255)): + """ + Draw some text, str, at screen coordinates (x, y). + """ + text = pyglet.text.Label(str, font_name=self.fontname, font_size=self.fontsize, + x=x, y=self.window.height-y, color=color, batch=self.renderer.batch, group=self.textGroup) + + def Print(self, str, color=(229,153,153,255)): + """ + Draw some text, str, at screen coordinates (x, y). + """ + text = pyglet.text.Label(str, font_name=self.fontname, font_size=self.fontsize, + x=5, y=self.window.height-self.textLine, color=color, batch=self.renderer.batch, group=self.textGroup) + self.textLine += 15 + + def Keyboard(self, key): + """ + Callback indicating 'key' has been pressed down. + """ + pass + + def KeyboardUp(self, key): + """ + Callback indicating 'key' has been released. + See Keyboard() for key information + """ + pass + diff --git a/2-WordSwarm/framework/pyqt4_framework.py b/2-WordSwarm/framework/pyqt4_framework.py new file mode 100644 index 0000000..7243e48 --- /dev/null +++ b/2-WordSwarm/framework/pyqt4_framework.py @@ -0,0 +1,874 @@ +# -*- coding: utf-8 -*- +""" + + + + + This file is part of WordSwarm. + + WordSwarm is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + WordSwarm is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + Copyright 2014 Michael Kane + + PyBox2D Framework: + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + C++ version Copyright (c) 2006-2007 Erin Catto http://www.box2d.org + Python version by Ken Lauer / sirkne at gmail dot com + +""" + +""" +Global Keys: + F1 - toggle menu (can greatly improve fps) + Space - shoot projectile + Z/X - zoom + Escape - quit + +Other keys can be set by the individual test. + +Mouse: + Left click - select/drag body (creates mouse joint) + Right click - pan + Shift+Left - drag to create a directed projectile + Scroll - zoom + +""" + +from PyQt4 import QtGui, QtCore +from PyQt4.QtCore import QObject, SIGNAL, pyqtSlot +from PyQt4.QtGui import QTableWidget, QTableWidgetItem, QColor, QPixmap +from PyQt4.QtCore import Qt, QSettings +from pyqt4_gui import Ui_MainWindow +from framework import * +from time import time +import settings +import string +import sys +import re + +class Pyqt4Draw(object): + """ + This debug drawing class differs from the other frameworks. + It provides an example of how to iterate through all the objects + in the world and associate (in PyQt4's case) QGraphicsItems with + them. + + While DrawPolygon and DrawSolidPolygon are not used for the core + shapes in the world (DrawPolygonShape is), they are left in for + compatibility with other frameworks and the tests. + + world_coordinate parameters are also left in for compatibility. + Screen coordinates cannot be used, as PyQt4 does the scaling and + rotating for us. + + If you utilize this framework and need to add more items to the + QGraphicsScene for a single step, be sure to add them to the + temp_items array to be deleted on the next draw. + """ + MAX_TIMES=20 + axisScale = 0.4 + def __init__(self, test): + self.test=test + self.window=self.test.window + self.scene=self.window.scene + self.view=self.window.graphicsView + self.item_cache={} + self.temp_items=[] + self.status_font=QtGui.QFont("Times", 10, QtGui.QFont.Bold) + self.font_spacing=QtGui.QFontMetrics(self.status_font).lineSpacing() + self.draw_idx=0 + + def StartDraw(self): + for item in self.temp_items: + self.scene.removeItem(item) + self.temp_items=[] + + def EndDraw(self): pass + + def SetFlags(self, **kwargs): + """ + For compatibility with other debug drawing classes. + """ + pass + + def DrawStringAt(self, x, y, str, color): + item=QtGui.QGraphicsSimpleTextItem(str) + #brush=QtGui.QBrush(QColor(*color)) + brush=QtGui.QBrush(QColor(255,255,255,255)) + item.setFont(self.status_font) + item.setBrush(brush) + item.setPos(self.view.mapToScene(x,y)) + item.scale(1./self.test._viewZoom, -1./self.test._viewZoom) + self.temp_items.append(item) + + self.scene.addItem(item) + + def DrawPoint(self, p, size, color): + """ + Draw a single point at point p given a pixel size and color. + """ + self.DrawCircle(p, size/self.test.viewZoom, color, drawwidth=0) + + def DrawAABB(self, aabb, color): + """ + Draw a wireframe around the AABB with the given color. + """ + line1=self.scene.addLine(aabb.lowerBound.x, aabb.lowerBound.y, aabb.upperBound.x, aabb.lowerBound.y, + pen=QtGui.QPen(QColor(*color.bytes))) + line2=self.scene.addLine(aabb.upperBound.x, aabb.upperBound.y, aabb.lowerBound.x, aabb.upperBound.y, + pen=QtGui.QPen(QColor(*color.bytes))) + self.temp_items.append(line1) + self.temp_items.append(line2) + + def DrawSegment(self, p1, p2, color): + """ + Draw the line segment from p1-p2 with the specified color. + """ + line=self.scene.addLine(p1[0], p1[1], p2[0], p2[1], pen=QtGui.QPen(QColor(*color.bytes))) + self.temp_items.append(line) + + def DrawTransform(self, xf): + """ + Draw the transform xf on the screen + """ + p1 = xf.position + p2 = p1 + self.axisScale * xf.R.col1 + p3 = p1 + self.axisScale * xf.R.col2 + + line1=self.scene.addLine(p1[0], p1[1], p2[0], p2[1], pen=QtGui.QPen(QColor(255,0,0))) + line2=self.scene.addLine(p1[0], p1[1], p3[0], p3[1], pen=QtGui.QPen(QColor(0,255,0))) + self.temp_items.append(line1) + self.temp_items.append(line2) + + def DrawCircle(self, center, radius, color, drawwidth=1, shape=None): + """ + Draw a wireframe circle given the center, radius, axis of orientation and color. + Note that these functions + """ + border_color=[c*255 for c in color] + [255] + pen =QtGui.QPen(QtGui.QColor(*border_color)) + ellipse=self.scene.addEllipse(center[0]-radius, center[1]-radius, radius*2, radius*2, pen=pen) + self.temp_items.append(ellipse) + + def DrawSolidCircle(self, center, radius, axis, color, shape=None): + """ + Draw a solid circle given the center, radius, axis of orientation and color. + """ + border_color=color.bytes + [255] + inside_color=(color / 2).bytes + [127] + brush=QtGui.QBrush(QtGui.QColor(*inside_color)) + pen =QtGui.QPen(QtGui.QColor(*border_color)) + ellipse=self.scene.addEllipse(center[0]-radius, center[1]-radius, radius*2, radius*2, brush=brush, pen=pen) + line=self.scene.addLine(center[0], center[1], (center[0]-radius*axis[0]), (center[1]-radius*axis[1]), pen=QtGui.QPen(QColor(255,0,0))) + + self.temp_items.append(ellipse) + self.temp_items.append(line) + + def DrawPolygon(self, vertices, color, shape=None): + """ + Draw a wireframe polygon given the world vertices vertices (tuples) with the specified color. + """ + poly=QtGui.QPolygonF() + pen=QtGui.QPen(QtGui.QColor(*color.bytes)) + + for v in vertices: + poly+=QtCore.QPointF(*v) + + item=self.scene.addPolygon(poly, pen=pen) + self.temp_items.append(item) + + def DrawSolidPolygon(self, vertices, color, shape=None): + """ + Draw a filled polygon given the world vertices vertices (tuples) with the specified color. + """ + poly=QtGui.QPolygonF() + border_color=color.bytes + [255] + inside_color=(color / 2).bytes + [127] + brush=QtGui.QBrush(QtGui.QColor(*inside_color)) + pen =QtGui.QPen(QtGui.QColor(*border_color)) + + for v in vertices: + poly+=QtCore.QPointF(*v) + + item=self.scene.addPolygon(poly, brush=brush, pen=pen) + self.temp_items.append(item) + + def DrawCircleShape(self, shape, transform, color, temporary=False): + center=b2Mul(transform, shape.pos) + radius=shape.radius + axis=transform.R.col1 + + border_color=color.bytes + [255] + inside_color=(color / 2).bytes + [127] + brush=QtGui.QBrush(QtGui.QColor(*inside_color)) + pen =QtGui.QPen(QtGui.QColor(*border_color)) + ellipse=self.scene.addEllipse(-radius, -radius, radius*2, radius*2, brush=brush, pen=pen) + line=self.scene.addLine(center[0], center[1], (center[0]-radius*axis[0]), (center[1]-radius*axis[1]), pen=QtGui.QPen(QColor(255,0,0))) + ellipse.setPos(*center) + ellipse.radius=radius + + if temporary: + self.temp_items.append(ellipse) + self.temp_items.append(line) + else: + self.item_cache[hash(shape)]=[ellipse, line] + + def DrawPolygonShape(self, shape, transform, color, temporary=False): + poly=QtGui.QPolygonF() + border_color=color.bytes + [255] + inside_color=(color / 2).bytes + [127] + brush=QtGui.QBrush(QtGui.QColor(*inside_color)) + pen =QtGui.QPen(QtGui.QColor(*border_color)) + + for v in shape.vertices: + poly+=QtCore.QPointF(*v) + + item=self.scene.addPolygon(poly, brush=brush, pen=pen) + item.setRotation(transform.angle * 180.0 / b2_pi) + item.setPos(*transform.position) + + if temporary: + self.temp_items.append(item) + else: + self.item_cache[hash(shape)]=[item] + + def _remove_from_cache(self, shape): + items=self.item_cache[hash(shape)] + + del self.item_cache[hash(shape)] + for item in items: + self.scene.removeItem(item) + + def DrawShape(self, shape, transform, color, selected=False): + """ + Draw any type of shape + """ + cache_hit=False + if hash(shape) in self.item_cache: + cache_hit=True + items=self.item_cache[hash(shape)] + items[0].setRotation(transform.angle * 180.0 / b2_pi) + if isinstance(shape, b2CircleShape): + radius=shape.radius + if items[0].radius == radius: + center=b2Mul(transform, shape.pos) + items[0].setPos(*center) + line=items[1] + axis=transform.R.col1 + line.setLine(center[0], center[1], (center[0]-radius*axis[0]), (center[1]-radius*axis[1])) + else: + self._remove_from_cache(shape) + cache_hit=False + else: + items[0].setPos(*transform.position) + + if not selected or cache_hit: + return + + if selected: + color=b2Color(1,1,1) + temporary=True + else: + temporary=False + + if isinstance(shape, b2PolygonShape): + self.DrawPolygonShape(shape, transform, color, temporary) + elif isinstance(shape, b2EdgeShape): + v1=b2Mul(transform, shape.vertex1) + v2=b2Mul(transform, shape.vertex2) + self.DrawSegment(v1, v2, color) + elif isinstance(shape, b2CircleShape): + self.DrawCircleShape(shape, transform, color, temporary) + elif isinstance(shape, b2LoopShape): + vertices=shape.vertices + v1=b2Mul(transform, vertices[-1]) + for v2 in vertices: + v2=b2Mul(transform, v2) + self.DrawSegment(v1, v2, color) + v1=v2 + + def DrawJoint(self, joint): + """ + Draw any type of joint + """ + bodyA, bodyB=joint.bodyA, joint.bodyB + xf1, xf2=bodyA.transform, bodyB.transform + x1, x2=xf1.position, xf2.position + p1, p2=joint.anchorA, joint.anchorB + color=b2Color(0.5, 0.8, 0.8) + + if isinstance(joint, b2DistanceJoint): + self.DrawSegment(p1, p2, color) + elif isinstance(joint, b2PulleyJoint): + s1, s2=joint.groundAnchorA, joint.groundAnchorB + self.DrawSegment(s1, p1, color) + self.DrawSegment(s2, p2, color) + self.DrawSegment(s1, s2, color) + + elif isinstance(joint, b2MouseJoint): + pass # don't draw it here + else: + self.DrawSegment(x1, p1, color) + self.DrawSegment(p1, p2, color) + self.DrawSegment(x2, p2, color) + + def ManualDraw(self): + """ + This implements code normally present in the C++ version, + which calls the callbacks that you see in this class (DrawSegment, + DrawSolidCircle, etc.). + + This is implemented in Python as an example of how to do it, and also + a test. + """ + colors = { + 'active' : b2Color(0.5, 0.5, 0.3), + 'static' : b2Color(0.5, 0.9, 0.5), + 'kinematic' : b2Color(0.5, 0.5, 0.9), + 'asleep' : b2Color(0.6, 0.6, 0.6), + 'default' : b2Color(0.9, 0.7, 0.7), + } + + settings=self.test.settings + world=self.test.world + if self.test.selected_shapebody: + sel_shape, sel_body=self.test.selected_shapebody + else: + sel_shape=None + + if settings.drawShapes: + for body in world.bodies: + transform=body.transform + for fixture in body.fixtures: + shape=fixture.shape + + if not body.active: color=colors['active'] + elif body.type==b2_staticBody: color=colors['static'] + elif body.type==b2_kinematicBody: color=colors['kinematic'] + elif not body.awake: color=colors['asleep'] + else: color=colors['default'] + + self.DrawShape(fixture.shape, transform, color, (sel_shape==shape)) + + + if settings.drawJoints: + for joint in world.joints: + self.DrawJoint(joint) + + # if settings.drawPairs + # pass + + if settings.drawAABBs: + color=b2Color(0.9, 0.3, 0.9) + cm=world.contactManager + for body in world.bodies: + if not body.active: + continue + transform=body.transform + for fixture in body.fixtures: + shape=fixture.shape + for childIndex in range(shape.childCount): + self.DrawAABB(shape.getAABB(transform, childIndex), color) + + def to_screen(self, point): + """ + In here for compatibility with other frameworks. + """ + return tuple(point) + +class GraphicsScene (QtGui.QGraphicsScene): + def __init__(self, test, parent=None): + super(GraphicsScene, self).__init__(parent) + self.test=test + + def keyPressEvent(self, event): + self.test._Keyboard_Event(event.key(), down=True) + + def keyReleaseEvent(self, event): + self.test._Keyboard_Event(event.key(), down=False) + + def mousePressEvent(self, event): + pos=self.test.ConvertScreenToWorld(event.scenePos().x(), event.scenePos().y()) + if event.button()==Qt.RightButton: + self.test.ShowProperties(pos) + elif event.button()==Qt.LeftButton: + if event.modifiers() == Qt.ShiftModifier: + self.test.ShiftMouseDown(pos) + else: + self.test.MouseDown(pos) + + def mouseReleaseEvent(self, event): + pos=event.scenePos().x(), event.scenePos().y() + if event.button()==Qt.RightButton: + self.test.MouseUp(pos) + elif event.button()==Qt.LeftButton: + self.test.MouseUp(pos) + + def mouseMoveEvent(self, event): + pos=event.scenePos().x(), event.scenePos().y() + self.test.MouseMove(self.test.ConvertScreenToWorld(*pos)) + QtGui.QGraphicsScene.mouseMoveEvent(self, event) + +class MainWindow(QtGui.QMainWindow,Ui_MainWindow): + def __init__(self, test, parent=None): + QtGui.QMainWindow.__init__(self) + self.setupUi(self) + self.scene=GraphicsScene(test) + self.test=test + self.scene.setBackgroundBrush( QtGui.QBrush(QtGui.QColor(0,0,0)) ) + self.graphicsView.setScene(self.scene) + self.graphicsView.scale(self.test.viewZoom, -self.test.viewZoom) + self.reset_properties_list() + self.restoreLayout() + + QObject.connect(self.mnuExit, SIGNAL("triggered()"), self.close) + QObject.connect(self.mnuIncreaseFontSize, SIGNAL("triggered()"), lambda amount= 1.0 : self.setFontSize(app.font().pointSize()+amount)) + QObject.connect(self.mnuDecreaseFontSize, SIGNAL("triggered()"), lambda amount=-1.0 : self.setFontSize(app.font().pointSize()+amount)) + + self.add_settings_widgets() + + def add_settings_widgets(self): + self.settings_widgets={} + + gb=self.gbOptions # the options groupbox + layout=QtGui.QVBoxLayout() + gb.setLayout(layout) + + for text, variable in settings.checkboxes: + if variable: + widget=QtGui.QCheckBox('&' + text) + QObject.connect(widget, SIGNAL("stateChanged(int)"), + lambda _, var=variable, widget=widget : setattr(self.test.settings, var, widget.isChecked()) ) + widget.setChecked(getattr(self.test.settings, variable)) + self.settings_widgets[variable]=widget + else: + widget=QtGui.QLabel(text) + widget.setAlignment(Qt.AlignHCenter) + + layout.addWidget(widget) + + def update_slider(var, value, text, label): + setattr(self.test.settings, var, value) + label.setText('%s (%d)' % (text, value)) + + for slider in settings.sliders: + label=QtGui.QLabel(slider['text']) + label.setAlignment(Qt.AlignHCenter) + layout.addWidget(label) + + widget=QtGui.QScrollBar(Qt.Horizontal) + widget.setRange(slider['min'], slider['max']) + var=slider['name'] + QObject.connect(widget, SIGNAL("valueChanged(int)"), + lambda value, var=var, text=slider['text'], label=label: update_slider(var, value, text, label) ) + self.settings_widgets[var]=widget + layout.addWidget(widget) + + self.update_widgets_from_settings() + + def update_widgets_from_settings(self, step_settings=None): + if step_settings is None: + step_settings=self.test.settings + + for var, widget in list(self.settings_widgets.items()): + if isinstance(widget, QtGui.QCheckBox): + widget.setChecked(getattr(step_settings, var)) + else: + widget.setValue(getattr(step_settings, var)) + + for slider in settings.sliders: + var=slider['name'] + self.settings_widgets[var].setValue(getattr(step_settings, var)) + + def reset_properties_list(self): + self.twProperties.clear() + self.twProperties.setRowCount(0) + self.twProperties.setColumnCount(3) + self.twProperties.verticalHeader().hide() # don't show numbers on left + self.twProperties.setHorizontalHeaderLabels(['class', 'name', 'value']) + + def keyPressEvent(self, event): + self.test._Keyboard_Event(event.key(), down=True) + + def keyReleaseEvent(self, event): + self.test._Keyboard_Event(event.key(), down=False) + + @property + def settings(self): + return QtCore.QSettings("pybox2d", "Framework") + + def setFontSize(self, size): + """ + Update the global font size + """ + if size <= 0.0: + return + + global app + font=app.font() + font.setPointSize(size) + app.setFont(font) + + def restoreLayout(self): + """ + Restore the layout of each widget + """ + settings=self.settings + try: + self.restoreGeometry(settings.value("geometry").toByteArray()) + self.restoreState(settings.value("windowState").toByteArray()) + size=settings.value('fontSize').toFloat()[0] + self.setFontSize(size) + except: + pass + + def saveLayout(self): + """ + Save the layout of each widget + """ + settings=self.settings + settings.setValue("geometry", self.saveGeometry()) + settings.setValue("windowState", self.saveState()) + settings.setValue("fontSize", app.font().pointSize()) + + def closeEvent(self, event): + QtGui.QMainWindow.closeEvent(self, event) + self.saveLayout() + +app=None +class Pyqt4Framework(FrameworkBase): + TEXTLINE_START=0 + def setup_keys(self): + # Only basic keys are mapped for now: K_[a-z0-9], K_F[1-12] and K_COMMA. + + for letter in string.uppercase: + setattr(Keys, 'K_'+letter.lower(), getattr(Qt, 'Key_%s' % letter)) + for i in range(0,10): + setattr(Keys, 'K_%d'%i, getattr(Qt, 'Key_%d' % i)) + for i in range(1,13): + setattr(Keys, 'K_F%d'%i, getattr(Qt, 'Key_F%d' % i)) + Keys.K_LEFT=Qt.Key_Left + Keys.K_RIGHT=Qt.Key_Right + Keys.K_UP=Qt.Key_Up + Keys.K_DOWN=Qt.Key_Down + Keys.K_HOME=Qt.Key_Home + Keys.K_PAGEUP=Qt.Key_PageUp + Keys.K_PAGEDOWN=Qt.Key_PageDown + Keys.K_COMMA=Qt.Key_Comma + Keys.K_SPACE=Qt.Key_Space + + def __reset(self): + # Screen/rendering-related + self._viewZoom =10.0 + self._viewCenter =None + self._viewOffset =None + self.screenSize =None + self.textLine =0 + self.font =None + self.fps =0 + self.selected_shapebody=None, None + + # GUI-related + self.window=None + self.setup_keys() + + def __init__(self): + super(Pyqt4Framework, self).__init__() + + if fwSettings.onlyInit: # testing mode doesn't initialize Pyqt4 + return + + global app + app = QtGui.QApplication(sys.argv) + + self.__reset() + print('Initializing Pyqt4 framework...') + + # Pyqt4 Initialization + self.window=MainWindow(self) + self.window.show() + + self.window.setWindowTitle( "Python Box2D Testbed - " + self.name) + self.renderer = Pyqt4Draw(self) + + # Note that in this framework, we override the draw debug data routine + # that occurs in Step(), and we implement the normal C++ code in Python. + self.world.DrawDebugData = lambda: self.renderer.ManualDraw() + self.screenSize = b2Vec2(0,0) + self.viewCenter = (0,10.0*20.0) + self.groundbody = self.world.CreateBody() + + def setCenter(self, value): + """ + Updates the view offset based on the center of the screen. + + Tells the debug draw to update its values also. + """ + self._viewCenter = b2Vec2( *value ) + self._viewOffset = self._viewCenter - self.screenSize/2 + self.window.graphicsView.centerOn(*self._viewCenter) + + def setZoom(self, zoom): + self._viewZoom = zoom + self.window.graphicsView.resetTransform() + self.window.graphicsView.scale(self._viewZoom, -self._viewZoom) + self.window.graphicsView.centerOn(*self._viewCenter) + + viewZoom = property(lambda self: self._viewZoom, setZoom, + doc='Zoom factor for the display') + viewCenter = property(lambda self: self._viewCenter, setCenter, + doc='Screen center in camera coordinates') + viewOffset = property(lambda self: self._viewOffset, + doc='The offset of the top-left corner of the screen') + + def run(self): + """ + What would be the main loop is instead a call to + app.exec_() for the event-driven pyqt4. + """ + global app + self.step_timer = QtCore.QTimer() + QObject.connect(self.step_timer, SIGNAL("timeout()"), lambda : self.SimulationLoop()) + QObject.connect(self.window.twProperties, SIGNAL('itemChanged(QTableWidgetItem*)'), self.prop_cell_changed) + self.step_timer.start(int((1000.0/self.settings.hz))) + + app.exec_() + + self.step_timer.stop() + print('Cleaning up...') + self.world.contactListener=None + self.world.destructionListener=None + self.world.renderer=None + self.world=None + + def _Keyboard_Event(self, key, down=True): + """ + Internal keyboard event, don't override this. + + Checks for the initial keydown of the basic testbed keys. Passes the unused + ones onto the test via the Keyboard() function. + """ + if down: + if key==Keys.K_z: # Zoom in + self.viewZoom = min(1.10 * self.viewZoom, 50.0) + elif key==Keys.K_x: # Zoom out + self.viewZoom = max(0.9 * self.viewZoom, 0.02) + elif key==Keys.K_SPACE: # Launch a bomb + self.LaunchRandomBomb() + else: # Inform the test of the key press + self.Keyboard(key) + else: + self.KeyboardUp(key) + + def CheckKeys(self): + pass + + def _ShowProperties(self, obj): + self.selected_shapebody=None, None + + class_=obj.__class__ + ignore_list=('thisown',) + + i=0 + twProperties=self.window.twProperties + # Get all of the members of the class + for prop in dir(class_): + # If they're properties and not to be ignored, add them to the table widget + if isinstance(getattr(class_, prop), property) and prop not in ignore_list: + try: + value=getattr(obj, prop) + except: + # Write-only? + continue + + widget=None + + # Attempt to determine whether it's read-only or not + try: + setattr(obj, prop, value) + except: + editable=False + else: + editable=True + + # Increase the row count and insert the new item + twProperties.setRowCount(twProperties.rowCount()+1) + i=twProperties.rowCount()-1 + self.item=QTableWidgetItem(class_.__name__) + twProperties.setItem(i, 0, QTableWidgetItem(class_.__name__)) # class name + twProperties.item(i, 0).setFlags(Qt.ItemIsEnabled) + + twProperties.setItem(i, 1, QtGui.QTableWidgetItem(prop)) # prop name + twProperties.item(i, 1).setFlags(Qt.ItemIsEnabled) + + # and finally, the property values + # booleans are checkboxes + if isinstance(value, bool): + widget=QtGui.QCheckBox('') + QObject.connect(widget, SIGNAL('stateChanged(int)'), + lambda value, prop=prop: self.property_changed(prop, value==Qt.Checked)) + if value: + widget.setCheckState(Qt.Checked) + # ints, floats are spinboxes + elif isinstance(value, (int, float)): + widget=QtGui.QDoubleSpinBox() + QObject.connect(widget, SIGNAL('valueChanged(double)'), + lambda value, prop=prop: self.property_changed(prop, value)) + widget.setValue(value) + # lists turn into -- lists + elif isinstance(value, list): + widget=QtGui.QListWidget() + for entry in value: + widget.addItem(str(entry)) + if value: + #sz=widget.item(0).sizeHint() + #print(sz, sz.width(), sz.height()) + #sz.setHeight(sz.height()*2) + #widget.setMinimumSize(sz) + #widget.setMinimumSize(QtCore.QSize(1,60)) + pass # TODO + # vec2s will be shown as a textbox + elif isinstance(value, b2Vec2): + value='(%.2f, %.2f)' % (tuple(value)) + else: + pass + + if widget: + twProperties.setCellWidget(i, 2, widget) + if hasattr(widget, 'setReadOnly'): + widget.setReadOnly(not editable) + elif hasattr(widget, 'setEnabled'): + widget.setEnabled(editable) + else: + # Just using the table widget, set the cell text + cell=QtGui.QTableWidgetItem(str(value)) + if editable: + cell.setFlags(Qt.ItemIsEditable | Qt.ItemIsEnabled) + else: + cell.setFlags(Qt.ItemIsEnabled) + twProperties.setItem(i, 2, cell) + + i+=1 + + + # callback indicating a cell in the table widget was changed + def prop_cell_changed(self, twi): + if twi.column() != 2: # the data column + return + + row=twi.row() + prop=str(self.window.twProperties.item(row, 1).text()) + self.property_changed(prop, str(twi.text())) + + # callback indicating one of the property widgets was modified + def property_changed(self, prop, value=None): + if not self.selected_shapebody[0]: + return + + print('Trying to change %s to %s...' % (prop, value)) + shape, body=self.selected_shapebody + for inst in (shape, body): + if hasattr(inst, prop): + try: + cur_value=getattr(inst, prop) + if isinstance(cur_value, b2Vec2): + m=re.search('\(?([\d\.]*)\s*,\s*([\d\.]*)\)?', value) + if m: + x, y=m.groups() + value=(float(x), float(y)) + except: + raise + pass + + try: + setattr(inst, prop, value) + except: + print('Failed - %s' % sys.exc_info()[1]) + + def ShowProperties(self, p): + aabb = b2AABB(lowerBound=p-(0.001, 0.001), upperBound=p+(0.001, 0.001)) + + # Query the world for overlapping shapes. + query = fwQueryCallback(p) + self.world.QueryAABB(query, aabb) + + if query.fixture: + self.window.reset_properties_list() + + fixture=query.fixture + body=fixture.body + self._ShowProperties(body) + + shape=fixture.shape + self._ShowProperties(shape) + + self.selected_shapebody=(shape, body) + + def Step(self, settings): + super(Pyqt4Framework, self).Step(settings) + + def ConvertScreenToWorld(self, x, y): + """ + PyQt4 gives us transformed positions, so no need to convert + """ + return b2Vec2(x, y) + + DrawStringAt=lambda self, *args: self.renderer.DrawStringAt(*args) + def Print(self, str, color=(229,153,153,255)): + """ + Draw some text at the top status lines and advance to the next line. + """ + self.DrawStringAt(5, self.textLine, str, color) + self.textLine += self.renderer.font_spacing + + def Keyboard(self, key): + """ + Callback indicating 'key' has been pressed down. + The keys are mapped after pygame's style. + + from framework import Keys + if key == Keys.K_z: + ... + """ + pass + + def KeyboardUp(self, key): + """ + Callback indicating 'key' has been released. + See Keyboard() for key information + """ + pass + + def FixtureDestroyed(self, fixture): + shape=fixture.shape + if shape==self.selected_shapebody[0]: + self.selected_shapebody=None, None + self.window.reset_properties_list() + if hash(shape) in self.renderer.item_cache: + scene_items=self.renderer.item_cache[hash(shape)] + for item in scene_items: + self.window.scene.removeItem(item) + del self.renderer.item_cache[hash(shape)] + diff --git a/2-WordSwarm/framework/pyqt4_gui.py b/2-WordSwarm/framework/pyqt4_gui.py new file mode 100644 index 0000000..17ab555 --- /dev/null +++ b/2-WordSwarm/framework/pyqt4_gui.py @@ -0,0 +1,129 @@ +# -*- coding: utf-8 -*- +""" + + + + + This file is part of WordSwarm. + + WordSwarm is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + WordSwarm is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + Copyright 2014 Michael Kane + + PyBox2D Framework: + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + C++ version Copyright (c) 2006-2007 Erin Catto http://www.box2d.org + Python version by Ken Lauer / sirkne at gmail dot com + +""" + +# Form implementation generated from reading ui file 'pyqt4_gui.ui' +# +# Created: Sun Mar 13 19:19:05 2011 +# by: PyQt4 UI code generator 4.7.6 +# +# WARNING! All changes made in this file will be lost! + +from PyQt4 import QtCore, QtGui + +try: + _fromUtf8 = QtCore.QString.fromUtf8 +except AttributeError: + _fromUtf8 = lambda s: s + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName(_fromUtf8("MainWindow")) + MainWindow.resize(800, 600) + MainWindow.setTabShape(QtGui.QTabWidget.Rounded) + self.centralwidget = QtGui.QWidget(MainWindow) + self.centralwidget.setObjectName(_fromUtf8("centralwidget")) + self.horizontalLayout = QtGui.QHBoxLayout(self.centralwidget) + self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) + self.graphicsView = QtGui.QGraphicsView(self.centralwidget) + self.graphicsView.setObjectName(_fromUtf8("graphicsView")) + self.horizontalLayout.addWidget(self.graphicsView) + MainWindow.setCentralWidget(self.centralwidget) + self.menubar = QtGui.QMenuBar(MainWindow) + self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21)) + self.menubar.setObjectName(_fromUtf8("menubar")) + self.mnuFile = QtGui.QMenu(self.menubar) + self.mnuFile.setObjectName(_fromUtf8("mnuFile")) + self.menu_Options = QtGui.QMenu(self.menubar) + self.menu_Options.setObjectName(_fromUtf8("menu_Options")) + self.menu_Font_size = QtGui.QMenu(self.menu_Options) + self.menu_Font_size.setObjectName(_fromUtf8("menu_Font_size")) + MainWindow.setMenuBar(self.menubar) + self.statusbar = QtGui.QStatusBar(MainWindow) + self.statusbar.setObjectName(_fromUtf8("statusbar")) + MainWindow.setStatusBar(self.statusbar) + self.dwProperties = QtGui.QDockWidget(MainWindow) + self.dwProperties.setObjectName(_fromUtf8("dwProperties")) + self.dwcProperties = QtGui.QWidget() + self.dwcProperties.setObjectName(_fromUtf8("dwcProperties")) + self.verticalLayout = QtGui.QVBoxLayout(self.dwcProperties) + self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) + self.gbOptions = QtGui.QGroupBox(self.dwcProperties) + self.gbOptions.setObjectName(_fromUtf8("gbOptions")) + self.verticalLayout.addWidget(self.gbOptions) + self.twProperties = QtGui.QTableWidget(self.dwcProperties) + self.twProperties.setLineWidth(1) + self.twProperties.setAlternatingRowColors(True) + self.twProperties.setVerticalScrollMode(QtGui.QAbstractItemView.ScrollPerPixel) + self.twProperties.setHorizontalScrollMode(QtGui.QAbstractItemView.ScrollPerPixel) + self.twProperties.setObjectName(_fromUtf8("twProperties")) + self.twProperties.setColumnCount(0) + self.twProperties.setRowCount(0) + self.verticalLayout.addWidget(self.twProperties) + self.dwProperties.setWidget(self.dwcProperties) + MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(1), self.dwProperties) + self.mnuExit = QtGui.QAction(MainWindow) + self.mnuExit.setObjectName(_fromUtf8("mnuExit")) + self.mnuIncreaseFontSize = QtGui.QAction(MainWindow) + self.mnuIncreaseFontSize.setObjectName(_fromUtf8("mnuIncreaseFontSize")) + self.mnuDecreaseFontSize = QtGui.QAction(MainWindow) + self.mnuDecreaseFontSize.setObjectName(_fromUtf8("mnuDecreaseFontSize")) + self.mnuFile.addAction(self.mnuExit) + self.menu_Font_size.addAction(self.mnuIncreaseFontSize) + self.menu_Font_size.addAction(self.mnuDecreaseFontSize) + self.menu_Options.addAction(self.menu_Font_size.menuAction()) + self.menubar.addAction(self.mnuFile.menuAction()) + self.menubar.addAction(self.menu_Options.menuAction()) + + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "pybox2d testbed", None, QtGui.QApplication.UnicodeUTF8)) + self.mnuFile.setTitle(QtGui.QApplication.translate("MainWindow", "&File", None, QtGui.QApplication.UnicodeUTF8)) + self.menu_Options.setTitle(QtGui.QApplication.translate("MainWindow", "&Options", None, QtGui.QApplication.UnicodeUTF8)) + self.menu_Font_size.setTitle(QtGui.QApplication.translate("MainWindow", "&Font size", None, QtGui.QApplication.UnicodeUTF8)) + self.dwProperties.setWindowTitle(QtGui.QApplication.translate("MainWindow", "Properties", None, QtGui.QApplication.UnicodeUTF8)) + self.gbOptions.setTitle(QtGui.QApplication.translate("MainWindow", "Options", None, QtGui.QApplication.UnicodeUTF8)) + self.twProperties.setSortingEnabled(True) + self.mnuExit.setText(QtGui.QApplication.translate("MainWindow", "E&xit", None, QtGui.QApplication.UnicodeUTF8)) + self.mnuIncreaseFontSize.setText(QtGui.QApplication.translate("MainWindow", "&Increase", None, QtGui.QApplication.UnicodeUTF8)) + self.mnuDecreaseFontSize.setText(QtGui.QApplication.translate("MainWindow", "&Decrease", None, QtGui.QApplication.UnicodeUTF8)) + diff --git a/2-WordSwarm/framework/settings.py b/2-WordSwarm/framework/settings.py new file mode 100644 index 0000000..2f4289c --- /dev/null +++ b/2-WordSwarm/framework/settings.py @@ -0,0 +1,134 @@ +# -*- coding: utf-8 -*- +""" + + This file is read in during the initialization of the PyBox2D + framework and is used to change its settings such as displaying + the boxes used in PyBox2D calculation, links, etc. + For WordSwarm, not much should have to be changed here. + + Implemented using the pybox2d SWIG interface for Box2D (pybox2d.googlecode.com) + + + This file is part of WordSwarm. + + WordSwarm is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + WordSwarm is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + Copyright 2014 Michael Kane + + PyBox2D Framework: + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + C++ version Copyright (c) 2006-2007 Erin Catto http://www.box2d.org + Python version by Ken Lauer / sirkne at gmail dot com + +""" + +class fwSettings(object): + backend='pygame' # The default backend to use in (can be: pyglet, pygame, etc.) + + # Physics options + hz=60.0 + velocityIterations=8 + positionIterations=3 + enableWarmStarting=True # Makes physics results more accurate (see Box2D wiki) + enableContinuous=True # Calculate time of impact + enableSubStepping=False + + # Drawing + drawStats=False + drawShapes=False + drawJoints=False + drawCoreShapes=False + drawAABBs=False + drawOBBs=False + drawPairs=False + drawContactPoints=False + maxContactPoints=100 + drawContactNormals=False + drawFPS=False + drawMenu=False # toggle by pressing F1 + drawCOMs=False # Centers of mass + pointSize=2.5 # pixel radius for drawing points + + # Miscellaneous testbed options + pause=False + singleStep=False + onlyInit=False # run the test's initialization without graphics, and then quit (for testing) + +# text variable +checkboxes =( ("Warm Starting" , "enableWarmStarting"), + ("Time of Impact" , "enableContinuous"), + ("Sub-Stepping" , "enableSubStepping"), + ("Draw" , None), + ("Shapes" , "drawShapes"), + ("Joints" , "drawJoints"), + ("AABBs" , "drawAABBs"), + ("Pairs" , "drawPairs"), + ("Contact Points" , "drawContactPoints"), + ("Contact Normals" , "drawContactNormals"), + ("Center of Masses", "drawCOMs"), + ("Statistics" , "drawStats"), + ("FPS" , "drawFPS"), + ("Control" , None), + ("Pause" , "pause"), + ("Single Step" , "singleStep") ) + +sliders = [ + { 'name' : 'hz' , 'text' : 'Hertz' , 'min' : 5, 'max' : 200 }, + { 'name' : 'positionIterations', 'text' : 'Pos Iters', 'min' : 0, 'max' : 100 }, + { 'name' : 'velocityIterations', 'text' : 'Vel Iters', 'min' : 1, 'max' : 500 }, +] + +# WordSwarm doesn't need to alter any of these options from the command line + +# from optparse import OptionParser + +# parser = OptionParser() +# list_options = [i for i in dir(fwSettings) if not i.startswith('_')] + +# for opt_name in list_options: + # value = getattr(fwSettings, opt_name) + # if isinstance(value, bool): + # if value: + # parser.add_option('','--NO'+opt_name, dest=opt_name, default=value, + # action='store_'+str(not value).lower(), + # help="don't "+opt_name) + # else: + # parser.add_option('','--'+opt_name, dest=opt_name, default=value, + # action='store_'+str(not value).lower(), + # help=opt_name) + + # else: + # if isinstance(value, int): + # opttype = 'int' + # elif isinstance(value, float): + # opttype = 'float' + # else: + # opttype = 'string' + # parser.add_option('','--'+opt_name, dest=opt_name, default=value, + # type=opttype, + # help='sets the %s option'%(opt_name,)) + + +# (fwSettings, args) = parser.parse_args() diff --git a/2-WordSwarm/framework/setup.py b/2-WordSwarm/framework/setup.py new file mode 100644 index 0000000..acb1817 --- /dev/null +++ b/2-WordSwarm/framework/setup.py @@ -0,0 +1,5 @@ +from distutils.core import setup +import numpy +import py2exe + +setup(console=['wordSwarm.py']) \ No newline at end of file diff --git a/2-WordSwarm/nGramOut20140511205241.csv b/2-WordSwarm/nGramOut20140511205241.csv new file mode 100644 index 0000000..7078ed9 --- /dev/null +++ b/2-WordSwarm/nGramOut20140511205241.csv @@ -0,0 +1,500 @@ +,4/1/1950,5/31/1950,7/30/1950,9/28/1950,11/27/1950,1/26/1951,3/27/1951,5/26/1951,7/25/1951,9/23/1951,11/22/1951,1/21/1952,3/21/1952,5/20/1952,7/19/1952,9/17/1952,11/16/1952,1/15/1953,3/16/1953,5/15/1953,7/14/1953,9/12/1953,11/11/1953,1/10/1954,3/11/1954,5/10/1954,7/9/1954,9/7/1954,11/6/1954,1/5/1955,3/6/1955,5/5/1955,7/4/1955,9/2/1955,11/1/1955,12/31/1955,2/29/1956,4/29/1956,6/28/1956,8/27/1956,10/26/1956,12/25/1956,2/23/1957,4/24/1957,6/23/1957,8/22/1957,10/21/1957,12/20/1957,2/18/1958,4/19/1958,6/18/1958,8/17/1958,10/16/1958,12/15/1958,2/13/1959,4/14/1959,6/13/1959,8/12/1959,10/11/1959,12/10/1959,2/8/1960,4/8/1960,6/7/1960,8/6/1960,10/5/1960,12/4/1960,2/2/1961,4/3/1961,6/2/1961,8/1/1961,9/30/1961,11/29/1961,1/28/1962,3/29/1962,5/28/1962,7/27/1962,9/25/1962,11/24/1962,1/23/1963,3/24/1963,5/23/1963,7/22/1963,9/20/1963,11/19/1963,1/18/1964,3/18/1964,5/17/1964,7/16/1964,9/14/1964,11/13/1964,1/12/1965,3/13/1965,5/12/1965,7/11/1965,9/9/1965,11/8/1965,1/7/1966,3/8/1966,5/7/1966,7/6/1966,9/4/1966,11/3/1966,1/2/1967,3/3/1967,5/2/1967,7/1/1967,8/30/1967,10/29/1967,12/28/1967,2/26/1968,4/26/1968,6/25/1968,8/24/1968,10/23/1968,12/22/1968,2/20/1969,4/21/1969,6/20/1969,8/19/1969,10/18/1969,12/17/1969,2/15/1970,4/16/1970,6/15/1970,8/14/1970,10/13/1970,12/12/1970,2/10/1971,4/11/1971,6/10/1971,8/9/1971,10/8/1971,12/7/1971,2/5/1972,4/5/1972,6/4/1972,8/3/1972,10/2/1972,12/1/1972,1/30/1973,3/31/1973,5/30/1973,7/29/1973,9/27/1973,11/26/1973,1/25/1974,3/26/1974,5/25/1974,7/24/1974,9/22/1974,11/21/1974,1/20/1975,3/21/1975,5/20/1975,7/19/1975,9/17/1975,11/16/1975,1/15/1976,3/15/1976,5/14/1976,7/13/1976,9/11/1976,11/10/1976,1/9/1977,3/10/1977,5/9/1977,7/8/1977,9/6/1977,11/5/1977,1/4/1978,3/5/1978,5/4/1978,7/3/1978,9/1/1978,10/31/1978,12/30/1978,2/28/1979,4/29/1979,6/28/1979,8/27/1979,10/26/1979,12/25/1979,2/23/1980,4/23/1980,6/22/1980,8/21/1980,10/20/1980,12/19/1980,2/17/1981,4/18/1981,6/17/1981,8/16/1981,10/15/1981,12/14/1981,2/12/1982,4/13/1982,6/12/1982,8/11/1982,10/10/1982,12/9/1982,2/7/1983,4/8/1983,6/7/1983,8/6/1983,10/5/1983,12/4/1983,2/2/1984,4/2/1984,6/1/1984,7/31/1984,9/29/1984,11/28/1984,1/27/1985,3/28/1985,5/27/1985,7/26/1985,9/24/1985,11/23/1985,1/22/1986,3/23/1986,5/22/1986,7/21/1986,9/19/1986,11/18/1986,1/17/1987,3/18/1987,5/17/1987,7/16/1987,9/14/1987,11/13/1987,1/12/1988,3/12/1988,5/11/1988,7/10/1988,9/8/1988,11/7/1988,1/6/1989,3/7/1989,5/6/1989,7/5/1989,9/3/1989,11/2/1989,1/1/1990,3/2/1990,5/1/1990,6/30/1990,8/29/1990,10/28/1990,12/27/1990,2/25/1991,4/26/1991,6/25/1991,8/24/1991,10/23/1991,12/22/1991,2/20/1992,4/20/1992,6/19/1992,8/18/1992,10/17/1992,12/16/1992,2/14/1993,4/15/1993,6/14/1993,8/13/1993,10/12/1993,12/11/1993,2/9/1994,4/10/1994,6/9/1994,8/8/1994,10/7/1994,12/6/1994,2/4/1995,4/5/1995,6/4/1995,8/3/1995,10/2/1995,12/1/1995,1/30/1996,3/30/1996,5/29/1996,7/28/1996,9/26/1996,11/25/1996,1/24/1997,3/25/1997,5/24/1997,7/23/1997,9/21/1997,11/20/1997,1/19/1998,3/20/1998,5/19/1998,7/18/1998,9/16/1998,11/15/1998,1/14/1999,3/15/1999,5/14/1999,7/13/1999,9/11/1999,11/10/1999,1/9/2000,3/9/2000,5/8/2000,7/7/2000,9/5/2000,11/4/2000,1/3/2001,3/4/2001,5/3/2001,7/2/2001,8/31/2001,10/30/2001,12/29/2001,2/27/2002,4/28/2002,6/27/2002,8/26/2002,10/25/2002,12/24/2002,2/22/2003,4/23/2003,6/22/2003,8/21/2003,10/20/2003,12/19/2003,2/17/2004,4/17/2004,6/16/2004,8/15/2004,10/14/2004,12/13/2004,2/11/2005,4/12/2005,6/11/2005,8/10/2005,10/9/2005,12/8/2005,2/6/2006,4/7/2006,6/6/2006,8/5/2006,10/4/2006,12/3/2006,2/1/2007,4/2/2007,6/1/2007,7/31/2007,9/29/2007,11/28/2007,1/27/2008,3/27/2008,5/26/2008,7/25/2008,9/23/2008,11/22/2008,1/21/2009,3/22/2009,5/21/2009,7/20/2009,9/18/2009,11/17/2009,1/16/2010,3/17/2010,5/16/2010,7/15/2010,9/13/2010,11/12/2010,1/11/2011,3/12/2011,5/11/2011,7/10/2011,9/8/2011,11/7/2011,1/6/2012,3/6/2012,5/5/2012,7/4/2012,9/2/2012,11/1/2012,12/31/2012,3/1/2013,4/30/2013,6/29/2013,8/28/2013,10/27/2013,12/26/2013,2/24/2014,4/25/2014,6/24/2014,8/23/2014,10/22/2014,12/21/2014,2/19/2015,4/20/2015,6/19/2015,8/18/2015 +RESEARCH,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.010727056,0.010739857,0.010759115,0,0,0,0.011481056,0.011498658,0.011520737,0,0,0,0.011548065,0.011566114,0.011587848,0,0,0,0.0170993,0.017127528,0.017120462,0,0,0,0,0.014248021,0.014255544,0,0,0,0.029479436,0.029485796,0.029492159,0,0,0,0.017002272,0.01700627,0.016990291,0,0,0,0.01324766,0.013320647,0.013315368,0,0,0,0,0.021462404,0.021462404,0.021470349,0,0,0,0.01401682,0.01402645,0.014117513,0,0,0,0.017495352,0.01749702,0.017492017,0,0,0,0.01828695,0.018285231,0.018280075,0,0,0,0.013222946,0.013216723,0.013231772,0,0,0,0.017192918,0,0.017142649,0.020958084,0.020467836,0.024045262,0.018464746,0.01853506,0.018422718,0,0,0,0.017443671,0.017325113,0.017413449,0,0,0,0.021406633,0.021408242,0.021199011,0,0,0.009229099,0.023110067,0.023226599,0.023156017,0.012516185,0.011235955,0,0.020541821,0.02041451,0.020571125,0.018139535,0,0.01087652,0.005630631,0.018710791,0.018968946,0.018868321,0.015873016,0,0.013737462,0.0178799,0.018641836,0.01841087,0.019923657,0.014997147,0.014565765,0,0.021796806,0,0.015256284,0,0,0.018603421,0.039906103,0.027108571,0.023102696,0.012305225,0.011405176,0.011252269,0.015270278,0.021838565,0.021631193,0.018467833,0.016904493,0.015965535,0.015184952,0,0.013936658,0.014113608,0.013212288,0.011078211,0.015838817,0.017881394,0.019670615,0.017972228,0.016537448,0.02059387,0,0.025261167,0.018552678,0.01969116,0.018049007,0.019755591,0.025003835,0.030358701,0.029098111,0.023341344,0,0.017103245,0.016442155,0,0.025633723,0.026635446,0.024272787,0.020638738,0.018992366,0.021661256,0.028147629,0.03057285,0.032403274,0.029230074,0.027311271,0.02743973,0.035350866,0.036098036,0.033483274,0.025537264,0.021153021,0.021797598,0.027937551,0.028454355,0.025887185,0.02340413,0.020416161,0.018305011,0.018796021,0.019809844,0.020359458,0.019680384,0.01890721,0.018809194,0.018828959,0.017125566,0.016726322,0.015163438,0,0.013283586,0.015417956,0.015529548,0.015662268,0.014442938,0,0.01307265,0.014625023,0.014947757,0.014976306,0.014085817,0.013859586,0.012195164,0,0.014197659,0.015174363,0.015051477,0.014575068,0.015512886,0,0.015624205,0.01460649,0.014459985,0.013871233,0.013027235,0.013982569,0.014712654,0.014788089,0.014350693,0.014028898,0.013594269,0,0.014642603,0.014168705,0.014074234,0.013478979,0.013021637,0.013174846,0.01387967,0.013879772,0.014238384,0,0,0,0.014647394,0.014555819,0.014192217,0.013638024,0.01334251,0.013561767,0.014097878,0.013243104,0.013842001,0,0,0.014350285,0.014306493,0.013379628,0.013045144,0.012639102,0.012820123,0.012801885,0.012992956,0.012820532,0.013113673,0.013132279,0.013368803,0.012938433,0,0.012833792,0.012914008,0,0.012458985,0.011671916,0.012457748,0.012614428,0.012531419,0.012322445,0.012004188,0.012182227,0.012797165,0.012717346,0.01320524,0.012929353,0.013284501,0.012996283,0.013816554,0.013158845,0.013307868,0.013026219,0.013198409,0,0.014714872,0.014686856,0,0.014818105,0.015136777,0.014772249,0.015359199,0.015324866,0.01545634,0.015230365,0.015366043,0.014971783,0.015282821,0.015361322,0.015228215,0.014824247,0.014393148,0.014288371,0.015441339,0.01612284,0.015619747,0.015240918,0.014987751,0.015154101,0,0.015966827,0,0,0.014884376,0.015066847,0.01543579,0.016317446,0.015587108,0,0.015369004,0.015647174,0.01548163,0.016988111,0.016226284,0.015755039,0.015308811,0.015383252,0.015836378,0.016205376,0,0.01591105,0.01569477,0,0.016408091,0,0.015463746,0.015190885,0.015187274,0.015418168,0.016579094,0.017040908,0.016110637,0,0.014552201,0.014363542,0,0.015160886,0.015333077,0.015027982,0.014814337,0.014801505,0.015068982,0.015959834,0.016647019,0.016800468,0,0,0,0,0,0,0 +PROJECT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001150417,0.001150665,0.001150914,0,0,0,0.00156703,0.001567398,0.001644222,0,0,0,0.001269237,0.001268633,0.00126813,0,0,0,0,0.001258141,0.001258141,0.001258607,0,0,0,0.001373076,0.00137402,0.001371742,0,0,0,0.000905754,0.000953516,0.000953243,0,0,0,0.000517112,0.000517063,0.000516917,0,0,0,0.003766774,0.003765001,0.003769288,0,0,0,0.001898157,0.001898364,0.001896633,0,0,0,0.003573822,0.003573024,0.003572891,0,0,0,0.002422732,0.002411049,0.002408975,0,0,0,0.002575001,0.002536815,0.002533993,0,0,0,0.003777069,0.003796656,0.003845404,0.004315926,0,0,0.002279941,0.002399094,0.002433144,0.003255814,0.002391824,0,0,0.001267787,0.001289364,0.001280275,0,0,0,0.009847461,0.011276689,0.010813294,0.011079043,0.003178743,0.002518892,0.005686224,0.005566249,0.004494545,0.001810998,0.001903251,0.001355626,0,0.001564945,0.001874286,0.001947951,0.001568655,0.001121022,0.000881514,0.000696743,0.001300448,0.007569182,0.00711631,0.007870513,0.001731711,0.001208491,0.001094757,0.001003153,0.00158937,0.001823782,0.002246273,0.000989926,0.001584427,0.001742966,0.002458308,0.002979032,0.003113027,0.001824532,0.00076549,0.001099681,0.001727295,0.002357579,0.0022219,0.001789641,0.000780784,0.001180683,0.001274488,0.002248033,0.002102392,0.001716852,0.000837471,0.000854457,0.00102444,0.000932075,0.001006768,0.000977099,0.000783611,0.000622907,0.000591284,0.000706845,0.000904023,0.000825946,0.000832909,0.001123299,0.001395877,0.001678915,0.002391244,0.003696004,0.003408807,0.00226588,0.002579339,0.00333697,0.003991516,0.004628161,0.00730379,0.007957628,0.007790782,0.007319564,0.006334887,0.006951674,0.006033694,0.006510496,0.006245048,0.006331888,0.006135146,0.005999942,0.005979191,0.006427975,0.006634937,0.006620442,0.006421847,0.006074169,0.00594969,0.006132398,0.006469281,0.006482905,0.006484818,0.005948796,0.006531893,0.006997374,0.006946384,0.006689458,0.006324442,0.006218919,0.006129217,0.006700163,0.007208824,0.007216677,0.006814739,0.006321794,0.005570369,0.006899467,0.007131185,0.006816654,0.006408472,0.006055254,0.006103156,0.006438008,0.006637389,0.006450226,0.006461645,0.006322603,0.006584486,0.00666394,0.006510863,0.006554452,0.006596035,0.006740883,0.006918759,0.006692943,0.00695733,0.006603471,0.006608885,0.006166593,0.006379027,0.006043337,0.006683175,0.006940787,0.006989025,0.006882514,0.00674886,0.007043864,0.007157162,0.007231633,0.007032731,0.006801196,0.006690964,0.00700705,0.007315882,0.007152067,0.00694688,0.006832626,0.006670442,0.006599146,0.006554393,0.006914636,0.007156321,0.007277036,0.007410622,0.007468525,0.007669372,0.007410281,0.007374546,0.007230327,0.007304862,0.007264176,0.00752619,0.007293711,0.007141846,0.007074219,0.007310448,0.007817382,0.00761781,0.007256435,0.007322892,0.007346845,0.007498465,0.007702301,0.007666892,0.00795666,0.00822188,0.008394825,0.008434337,0.008332852,0.00802764,0.008215033,0.008415571,0.008662081,0.008623694,0.008782413,0.008422248,0.008383632,0.00848956,0.00853838,0.008561298,0.008449966,0,0.008345635,0.008526966,0.00895533,0.009401876,0.009975134,0.009091224,0.008744778,0.008831817,0.009402504,0.009403047,0.009611712,0.009161217,0.009250127,0.009092949,0.009456463,0.009452567,0.009691444,0.009263018,0.009473204,0.00913273,0.00921458,0.00915502,0.009317482,0.009278712,0.008912221,0.00931471,0.010072157,0.010354844,0.010436165,0.009511779,0.009523671,0.009808768,0.010147713,0.010243669,0.010102055,0.009141831,0.009455885,0.009680128,0.010219709,0.010273158,0.010405443,0.009995792,0.009530007,0.010337473,0.010489023,0.010973672,0.010892159,0.011054729,0.009666538,0.008999751,0.009194008,0.009891675,0.010977074,0.014705882,0,0,0,0 +STUDENTS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003502266,0.003508048,0.003506601,0,0,0,0.003866432,0.003869833,0.003871876,0,0,0,0.011647972,0.011650485,0.011653,0,0,0,0.001802084,0.001802508,0.001800814,0,0,0,0.001983183,0.001982239,0.001981454,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000524384,0.000524434,0.000524284,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000521182,0.000521066,0.000521047,0,0,0,0.000346105,0.000344436,0.000378553,0,0,0,0.000310241,0.000340304,0.000339926,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000723701,0.000728294,0.000543695,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.006420003,0.007986549,0.006163078,0,0,0,0,0,0.000452694,0.000355707,0.000531526,0.000458313,0.000670498,0,0.001846182,0.001454416,0.001761841,0.000618381,0.000772835,0,0.001561567,0.001599634,0.00174787,0.000874235,0.000625036,0,0,0.001220653,0.001097615,0.001475785,0.000559315,0.000671756,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000298797,0.000179574,0.000128345,0,0.00048521,0.004680983,0.005632347,0.00527951,0.00337069,0.001604838,0.001208987,0.001357212,0.003748834,0.002459919,0.002224333,0.001185586,0.00090271,0.001435637,0.002672201,0.002868049,0.002717664,0.002332956,0.002012186,0.002872264,0.003250878,0.003145274,0.002481799,0.001803061,0.001503826,0.00293332,0.004606021,0.004004085,0.003182915,0.002257415,0.002207074,0.002739163,0.004431446,0.00445592,0.003837352,0.002810002,0.002163866,0.00160798,0.003477424,0.004362248,0.004061841,0.003490887,0.002542135,0.0021629,0.003950596,0.004362853,0.003931884,0.003451233,0.002991534,0.003360649,0.003450224,0.003699264,0.003887439,0.004186631,0.004060732,0.003797514,0.003285385,0.004365419,0.004448857,0.004306254,0.003714792,0.003029942,0.003245857,0.003955928,0.004263332,0.004272877,0.004062555,0.003665593,0.003610863,0.004252012,0.004094055,0.003870448,0.003389249,0.00323089,0.002996547,0.004079496,0.004392537,0.00417024,0.003760032,0.003013165,0.00272692,0.003561753,0.003878942,0.004029523,0.003789211,0.004134364,0.005505403,0.005780972,0.004523503,0.003503336,0.002959629,0.003588463,0.005369652,0.006033407,0.004588804,0.004120762,0.003474281,0.003889997,0.004930332,0.005916603,0.004894382,0.004381798,0.004040638,0.004285905,0.005282809,0.006284338,0.005893647,0.005664881,0.005391165,0.005515129,0.005713366,0.006441013,0.006279378,0.006443667,0.006074405,0.006136668,0.005914573,0.006968551,0.006510868,0.006120399,0.005875682,0.005814223,0.00622211,0.006611337,0.006739419,0.006078597,0.006156505,0.006262923,0.007424728,0.007721613,0.007029993,0.00626178,0.006079745,0.005917876,0.006524536,0.007281394,0.007716301,0.00734008,0.006819478,0.0065283,0.006713579,0.008503096,0.009139243,0.007709547,0.007026031,0.006716852,0.006734519,0.007555811,0.007803406,0.007617789,0.006948675,0.006671621,0.006752198,0.007935542,0.008033237,0.007534242,0.007081716,0.006882392,0.006918496,0.007805374,0.007943273,0.007419605,0.006797382,0.006506525,0.006388556,0.006734866,0.007269409,0.007403025,0.006970865,0.006755999,0.006675982,0.006812005,0.008130608,0.009086556,0.009774818,0.009421248,0.011205763,0,0,0,0,0 +DATA,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000934714,0.000934915,0.000935117,0,0,0,0.001253624,0.001253918,0.00125274,0,0,0,0.000793273,0.000792896,0.000792581,0,0,0,0,0.001850207,0.001850207,0.001850892,0,0,0,0.001201442,0.001202267,0.001200274,0,0,0,0.00152548,0.001525626,0.001525189,0,0,0,0.001269274,0.001269155,0.001268797,0,0,0,0,0.002000157,0.002002434,0,0,0,0.00193466,0.001934871,0.001933107,0,0,0,0.002084729,0,0.002046969,0,0,0,0.001972796,0.001997727,0.001961594,0,0,0,0.00189247,0.001887143,0.001915946,0,0,0,0.001538806,0.001507496,0.001476858,0,0,0,0.001877598,0.001865962,0.001791679,0,0,0,0,0.001617522,0.001660875,0.001616085,0,0,0,0.001564008,0.001621859,0.001643197,0.002048226,0.00195615,0.00186179,0.002119411,0.002705093,0.002392258,0.002195149,0.001850383,0.002440127,0.00290954,0.002695183,0.00224,0.002259623,0.002335553,0.002729444,0.002592689,0.002380538,0.00206278,0.001979098,0.002189634,0.002224275,0.002280791,0.001839008,0.001702956,0.002006306,0.00244763,0.002999108,0.003114152,0.002387469,0.001901313,0.002276527,0.002491529,0.002635298,0.002298851,0.002397957,0.001846182,0.001631784,0.002072754,0.002589472,0.002994735,0.002556629,0.002158637,0.002094759,0.002002767,0.002206403,0.001988749,0.001650819,0.0018544,0.002115799,0.002451339,0.002213678,0.002293193,0.002259542,0.00274264,0.002335903,0.002469479,0.002380952,0.002611622,0.002147459,0.002128546,0.002345712,0.002499594,0.002439179,0.002728471,0.002640003,0.002752064,0.002639377,0.002856863,0.003170121,0.003313989,0.003415135,0.004061709,0.004030487,0.004006354,0.003284577,0.002922495,0.002535514,0.003201251,0.003724609,0.003928693,0.003918048,0.004170536,0.004350411,0.004602715,0.004242463,0.004077936,0.00399017,0.004113763,0.004416153,0.00444624,0.004416584,0.004293679,0.004172127,0.004064042,0.003979412,0.004591283,0.004721781,0.004334561,0.004146913,0.003997505,0.004137565,0.004021572,0.004222334,0.004183275,0.004142703,0.004099752,0.004263482,0.004779376,0.004523858,0.004673983,0.004133656,0.004153151,0.003759616,0.004086763,0.003933382,0.004083524,0.00403631,0.004153342,0.004012151,0.004044706,0.003951062,0.003875608,0.003807457,0.003882198,0.003873392,0.003932768,0.004055605,0.004511237,0.004471914,0.004471776,0.004224554,0.003868174,0.003278348,0.003574777,0.004192718,0.004405313,0.004444129,0.004088546,0.003862127,0.003811541,0.004041532,0.004134845,0.004274511,0.004135458,0.003823572,0.003976426,0.00420578,0.004597235,0.004614458,0.00447488,0.00405509,0.00386869,0.004138633,0.004523284,0.004780948,0.005012198,0.00426113,0.004057688,0.004193774,0.00456524,0.004691704,0.004716488,0.004317751,0.004283965,0.004302695,0.004385575,0.004791466,0.004856777,0.00537274,0.00443066,0.004059354,0.004253312,0.004555331,0.00492564,0.004828212,0.004138141,0.003835361,0.004601602,0.004829879,0.005263041,0.004931646,0.00429098,0.004024222,0.004157756,0.004723827,0.005135843,0.00583527,0.004755011,0.004487516,0.004624647,0.004791456,0.005059961,0.00530764,0.00495359,0.004320807,0.004673715,0.004791261,0.005048358,0.004847207,0.004575703,0.004324998,0.004131237,0,0.004806338,0.005041462,0.004103749,0.004003957,0.004175152,0.004564833,0.004751558,0.004933368,0.004281048,0.003632806,0.003689789,0,0.004603933,0.00481076,0.003643963,0.004034172,0.004269124,0.004945948,0.005017905,0.005099787,0.004274322,0.004234518,0.005148516,0.005111553,0.005188378,0.004849563,0.004853447,0.004753336,0.004916684,0.00519231,0.005420931,0.00559576,0.006014306,0.005600403,0.004874705,0.005524331,0.005743202,0.006146936,0.005779883,0.004672532,0.004359867,0.003975322,0.003954127,0.002801441,0,0,0,0,0 +SCIENCE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004681648,0.004688965,0.004697776,0,0,0,0.0170993,0.017127528,0.017120462,0,0,0,0.028998243,0.029023747,0.029039071,0,0,0,0.043787748,0.043797195,0.043806647,0,0,0,0.00634647,0.006347962,0.006341998,0,0,0,0.003252419,0.003250872,0.003249584,0,0,0,0,0.004588514,0,0.004516177,0,0,0,0.00228846,0.002290033,0.002286237,0,0,0,0,0,0,0,0,0,0.01208161,0.012080474,0.012171053,0,0,0,0.013262183,0.013255942,0.013153245,0,0,0,0.012885563,0.012886974,0,0,0,0.038189533,0.014555878,0.01447819,0.014477651,0,0,0,0,0.013570764,0.013559089,0,0,0.019097222,0,0.021439178,0.021600742,0,0,0,0,0.014572457,0.014462061,0.006473889,0.005393258,0,0.009902097,0.010018437,0.010152846,0,0.005218526,0.004052037,0.005630631,0.007191414,0.007146135,0.007135961,0.005354752,0.004457889,0,0.011932806,0.013299242,0.012968885,0.014151383,0,0.004490198,0.006203153,0.00613848,0.013411142,0.015695313,0.015384615,0.004247628,0.007935108,0.007303078,0.015451429,0.013947327,0.012793251,0.005556368,0.009800363,0.011438193,0.023766816,0.015485573,0.016134144,0.007699415,0.013853692,0.025430853,0.02988282,0.024398108,0.016211577,0.010375294,0.007555646,0.010015722,0.026482571,0.024472664,0.021294266,0.009815529,0.013122605,0.010790804,0.014184078,0.010854913,0.011987425,0.008695988,0.010433271,0.015953367,0.021494512,0.016834247,0.012817712,0,0.005852605,0.003169572,0.00179458,0.002441307,0.003475779,0.004272011,0.004530455,0.00378626,0.002966529,0.003893171,0.004034642,0.004985119,0.004721008,0.005010737,0.003933182,0.0047575,0.005615971,0.009978459,0.008890524,0.008547009,0.004003002,0.004855457,0.004293457,0.004979786,0.005007806,0.006046468,0.007158079,0.006730397,0.006751232,0.007860842,0.008226907,0.007505793,0.005738648,0.004257561,0.003279892,0.00362905,0.003485938,0.003792108,0.003147358,0.003213987,0.003506156,0.003889989,0.004141121,0.003961687,0.003596742,0.003677867,0.003786245,0.004005083,0.004075967,0.004326733,0.003395205,0.00361597,0.003454003,0.003616714,0.003940252,0.004335922,0,0.003847079,0.003882144,0.00409391,0,0.003616388,0.002543802,0.003424957,0.00380194,0.004295957,0.004576538,0.004709166,0.004352788,0.003821492,0.003866268,0.003645846,0.003791067,0.003678642,0.004206073,0.003753509,0.003788427,0.003568887,0.004037157,0.004057357,0.004348934,0.003253514,0.003583472,0.003826299,0.003863081,0.003705282,0.003106844,0.002924195,0.003517959,0.003358588,0.00349391,0.0033065,0.003555258,0.003472526,0.003772388,0.003325556,0.003182083,0.002855821,0.003078777,0.003237291,0.003333271,0.003277968,0.003485171,0.003480325,0.003378095,0.002348359,0.002572732,0.002793913,0.003127871,0.003189016,0.003509689,0.003998418,0.003995058,0.003378061,0.003120292,0.002926452,0.003340391,0.00386615,0.004161296,0.003427782,0.003394045,0.003237298,0.003661244,0.003947458,0.003922806,0.003322404,0.003473276,0.003562286,0.003886471,0.00426589,0.003776316,0.003515157,0.003568967,0.003706565,0.003797664,0.004129299,0.003996554,0.004292753,0.00410976,0.004117265,0.003963891,0.003968869,0.003963176,0.00429312,0.004092261,0.004221711,0.003977274,0.004110886,0.003804958,0.004289847,0.004218716,0.00451639,0.00452676,0.005027442,0.004411569,0.004469664,0.004026358,0.004084375,0.003810781,0.00430538,0.004362889,0.004875936,0.004253078,0.00452802,0.004222685,0.004619522,0.004425008,0.005426474,0.004298844,0.004222481,0.003912118,0.00413724,0.003981571,0.003961805,0.003893599,0.004390534,0.004430621,0.004648993,0.003859065,0.003906216,0.003879836,0.004313202,0.004330336,0.004539945,0.004365758,0.004769807,0.004371521,0.004452087,0.004325742,0.004509865,0.003907853,0.003911677,0.004097663,0.004035764,0.004248437,0.004225007,0.004894062,0.00438901,0.004357067,0.004285087,0.004068555,0.004230747,0,0,0,0,0 +STUDY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004326329,0.004333471,0.004331683,0,0,0,0.007908612,0,0,0,0,0,0,0,0,0,0,0,0.009088772,0,0,0,0,0,0.009281295,0.009276879,0,0,0,0,0,0.005994671,0.005994671,0.005996891,0,0,0,0.005377882,0.005381577,0.005429813,0,0,0,0.005529866,0.005482718,0.00548115,0,0,0,0.004654005,0.004653568,0.004652256,0,0,0,0.004708467,0.004706251,0.00471161,0,0,0,0.005986494,0.00598715,0.00598169,0,0,0,0.006216961,0.006215572,0.006215341,0,0,0,0.004707022,0.004718768,0.004749122,0,0,0,0.005646387,0.005599555,0.005562423,0,0.00731383,0,0.005651614,0.005583317,0.005656644,0,0,0,0.007152756,0.007263923,0.007343671,0.009069767,0.008262666,0.007464278,0.007132132,0.007497432,0.007495793,0.007828569,0.011283228,0.010667091,0,0.007626955,0.007594116,0.007562238,0.007913602,0,0,0.007392091,0,0.006959295,0.006969597,0.006079831,0.006687754,0.00705343,0.008433316,0.007222857,0.007090541,0.007076376,0.007895891,0.008089188,0.006967427,0.005919283,0.005937294,0,0.006741265,0.007729346,0.00698823,0.006325265,0.004729149,0.004990623,0.005430818,0.005973045,0,0.005477592,0.005264468,0.004684074,0.005537944,0.006082375,0.00609915,0.005808718,0.005143668,0.005700073,0.00599057,0.005554751,0.004959861,0.004638773,0.005065509,0.005207195,0.004912368,0.005057106,0.005546751,0,0.005330187,0.004792917,0.004699212,0.005201633,0.005557252,0.005877085,0.005294713,0.005425898,0.005654762,0.006729948,0.007268322,0.005876637,0.004856614,0.003830547,0.004276483,0.004353291,0.005049005,0,0.005054655,0.004717905,0.004800103,0.004801602,0.005188019,0.004699197,0.004456789,0.004403485,0.004637774,0.004915873,0.004449743,0.004322426,0.005159946,0.005364336,0.005216168,0.005266941,0.005419887,0.005789876,0.005555607,0.005580574,0.005418275,0.005387189,0.005259265,0.005472048,0.005469648,0.005702992,0.00565365,0.005797938,0.005217205,0.005297899,0.005053828,0.005718294,0,0.005543344,0.004944963,0.004935918,0.004789513,0.005367451,0.00519884,0.005398301,0.004977122,0.005139593,0.00490279,0.005405438,0.005354506,0.005403544,0.004872068,0.004807729,0.004779733,0.005178671,0.004759728,0.004743241,0.004337623,0.004269217,0.004385123,0.004939617,0.004849991,0.004650136,0.004256511,0.003859939,0.004225584,0.004598728,0.004383527,0.004283561,0.003908806,0.003779737,0.003928169,0.004280262,0.004792939,0.004447452,0.004319302,0.003399971,0,0.003938788,0.004628964,0.004456314,0.004410705,0.003841372,0.004021831,0.004289758,0.004772029,0.004504563,0.004405722,0,0.003859394,0.004096762,0.004550556,0.004191605,0.004138251,0.003637912,0.003683741,0.003788188,0.004479804,0.004226758,0.00427985,0.003672713,0.003797308,0.003663073,0.004149274,0.00386909,0.003889828,0.003584191,0.003609952,0.003653205,0.004408077,0.004008774,0.003885976,0.003393053,0,0.003665864,0.004046861,0.003642371,0.003549375,0.003187652,0.003291889,0.003545829,0.00416346,0.004031664,0.003852744,0.003468146,0.003094685,0.003339305,0.003712673,0.003702171,0.003687771,0.003443816,0.003248817,0.003308348,0.003831636,0.003996507,0.003955258,0.003647441,0.003459556,0.003476003,0.00387479,0.003735693,0.003487611,0.003440508,0.003138761,0.003277477,0.003409296,0.003818381,0.003593482,0.003541412,0.003134263,0.003018446,0.00316087,0.00330277,0.00324265,0.00321646,0.003121506,0.002816457,0.003124061,0.003345841,0.003404062,0.003395854,0.003212276,0.002763308,0.00306367,0.003370342,0.003349452,0.00327233,0.003089402,0.002747942,0.002989537,0.003219899,0.003123659,0.003077021,0.002885642,0.002790196,0.002862946,0.003094082,0.003118845,0.003029342,0.00286597,0.002453043,0.002560628,0.002962581,0.002800795,0.0034837,0.002458407,0,0,0,0,0 +SYSTEMS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004975124,0.004982752,0.00499232,0,0,0,0.004993758,0.005001563,0.005010961,0,0,0,0.003502266,0.003508048,0.003506601,0,0,0,0.003163445,0.003166227,0.003167899,0,0,0,0.002300834,0.00230133,0.002301827,0,0,0,0.003447465,0.003448276,0.003445036,0,0,0,0.00293511,0.002933714,0.002932551,0,0,0,0,0.004440497,0.004440497,0.004442141,0,0,0,0.003318268,0.003320547,0.003315043,0,0,0,0.003956714,0.003957092,0.00395596,0,0,0,0.003337721,0.003337407,0.003336466,0,0,0,0.003923723,0.003961095,0.003965605,0,0,0,0.003577295,0.003577687,0.003574425,0,0,0,0.004318368,0.004317404,0.004280025,0,0,0,0.004326307,0,0.004577053,0,0,0,0.003815965,0.003867096,0.003862794,0,0,0.005428882,0.004840244,0.004745819,0.004792822,0.006042296,0.008089888,0,0.005811614,0.005708954,0.005662589,0.007906977,0.008697543,0.007677543,0.006756757,0.006317078,0.006403112,0.006380389,0.007458405,0.007642095,0.009158308,0.006352578,0.006315709,0.006042723,0.005306768,0.004890374,0.005694886,0.004962523,0.005358165,0.005146979,0.005926902,0.005656886,0.007139629,0.006965262,0.007911668,0.005622857,0.004869877,0.005054554,0.005117707,0.0054965,0.004703013,0.004977578,0.005277595,0.004696188,0.004653869,0.003843555,0.003940731,0.003933017,0.004478361,0.004513812,0.00429602,0.00428834,0.004134397,0.004798551,0.005157756,0.005481363,0.005728908,0.005028736,0.00505656,0.004412824,0.005321036,0.005389159,0.005874623,0.005023427,0.003886077,0.003995775,0.004913163,0.005207195,0.005536822,0.004545713,0.005150555,0.005563199,0.00577776,0.005451485,0.005126413,0.004586386,0.004885496,0.004085973,0.004788601,0.00497374,0.005022321,0.004419668,0.003193657,0.003933182,0.004427118,0.004966726,0.004466548,0.005027745,0.005016005,0.005535402,0.005975947,0.006529973,0.007058975,0.00674581,0.005803863,0.003752072,0.004237179,0.004613731,0.00509294,0.005000338,0.004634449,0.003806096,0.003876016,0.003572543,0.00362905,0.003357412,0.003360693,0.003084253,0.003354791,0.00351073,0.003597973,0.00374815,0.003494684,0.003115894,0.002970585,0.00314322,0.003422417,0.003484487,0.003598837,0.003353842,0.003399682,0.003613911,0.0036236,0.003572195,0.003237973,0.002913509,0.003254119,0.003562701,0.003996323,0.004036409,0.004015659,0.003461056,0.003378319,0.003693954,0.003842088,0.00379566,0.003515262,0.003018807,0.003207528,0.00347166,0.003485423,0.003542603,0.003357188,0.003037914,0.002863129,0.003229673,0.003553718,0.003890426,0.00381432,0.003448975,0.003062287,0.003807666,0.003777621,0.003836384,0.003366709,0.003433678,0.003122391,0.003558205,0.003708716,0.003818981,0.003716444,0.003504176,0.003097042,0.003402393,0.003767858,0.004007888,0.003963818,0.003638554,0.003022038,0.003244632,0.003809854,0.003975511,0.003996599,0.00359147,0.002871286,0.003195133,0.003626714,0.003920036,0.003991422,0.003563937,0.002924475,0.003097356,0.00338733,0.003963178,0.004078499,0.004223464,0.002946425,0.002964805,0.003277125,0.003708383,0.003829205,0.003788864,0.003308933,0.003045034,0.00348723,0.003865366,0.004048244,0.003920647,0.003188645,0.002846995,0.00324576,0.003705797,0.003826682,0.003815946,0.003178447,0.002793408,0.003050801,0.003284066,0.003580231,0.003640308,0.003448785,0.002825412,0.003025445,0.003606489,0.003790512,0.003874293,0.003529412,0.003147575,0.003172803,0.003647321,0.003775301,0.003794462,0.003221901,0.002795757,0.003220054,0.003669769,0.003843032,0.003914515,0.003629813,0.002982228,0.002898973,0.003235344,0.003638045,0.003740588,0.003623401,0.002732885,0.002532146,0.003029081,0.003446347,0.003600802,0.003697543,0.003249476,0.003121608,0.00335243,0.003391522,0.003430505,0.00334214,0.002815487,0.002751347,0.002902295,0.003458159,0.00358933,0.003642474,0.002890966,0.002916788,0.00319668,0.003593148,0.003714816,0.003702792,0.002819124,0.002911349,0.002986094,0.003246745,0.003486578,0.003590741,0.003605413,0.002759317,0.002682564,0.002981492,0.00315313,0.003487508,0,0,0,0,0 +PROGRAM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003866432,0.003869833,0.003871876,0,0,0,0.034656313,0.03466379,0.03467127,0,0,0,0.007208337,0.007210031,0.007203257,0,0,0,0.002221165,0.002220108,0.002219228,0,0,0,0,0.002664298,0.002664298,0.00273932,0,0,0,0.002231249,0.002232782,0.002229081,0,0,0,0.006483291,0.006483909,0.006434393,0,0,0,0.001316284,0.001316161,0.001362782,0,0,0,0.003099741,0.003098282,0.00310181,0,0,0,0.003577295,0.003577687,0,0,0,0.016973126,0.003313231,0.003312491,0.003312367,0,0,0,0.003668709,0.003582131,0.003613463,0.023569024,0,0,0.004064158,0.004021779,0.004171817,0,0,0,0.004448548,0.00449457,0.004709226,0.006042296,0.006741573,0.004708904,0.012852609,0.012684097,0.012718706,0,0.011524244,0.011942845,0.007507508,0.010819909,0.01073013,0.010934811,0.008988334,0.007801306,0.003924989,0.013882989,0.014081551,0.015318833,0.017689228,0.013937566,0.004490198,0.012457999,0.012589086,0.029975715,0.035012622,0.03383558,0.005693629,0.006348087,0.006085898,0.023725714,0.023687081,0.022832642,0.010284155,0.004926108,0.003715961,0.009058296,0.009096906,0.018467833,0,0.018879878,0.003310214,0.013096541,0.011464603,0.012111002,0.004336549,0.00490096,0.008792873,0.012086917,0.009995376,0.006411534,0.004315777,0.005363985,0.006255539,0.007970101,0.006243349,0.005423705,0.003517044,0.008694392,0.009868589,0.012079181,0.006741316,0.005571335,0.003039008,0.003295642,0.002773376,0.001555303,0.001546161,0.00179277,0.001980659,0.002293193,0.002076336,0.001623195,0.000934361,0.000973879,0.001450893,0.002963186,0.003689224,0.003563,0.002147482,0.001752962,0.001837304,0.002452558,0.002970003,0.002752064,0.003660267,0.002905838,0.002797921,0.002135682,0.003471121,0.004462416,0.004779744,0.004251641,0.004440945,0.00434151,0.005255734,0.005266574,0.004838964,0.003890041,0.003648001,0.003168558,0.002766136,0.003293288,0.004273073,0.0039956,0.003696022,0.003278077,0.003641994,0.004289163,0.004529225,0.00405537,0.003655086,0.003193517,0.003499074,0.003874326,0.00444152,0.004170389,0.004088385,0.003803253,0.004053752,0.003971206,0.004368426,0.004234141,0.004171034,0.003976584,0.003806845,0.003824986,0.004410179,0.004213512,0.003915339,0.003606207,0.00347668,0,0.004128473,0.0040148,0.003659467,0.003438409,0.003319015,0.003641288,0.003608823,0.003600194,0.003515106,0.003891798,0.003972969,0.004502396,0.00377142,0.003470463,0.003503491,0.003350495,0.003516974,0.003229887,0.003297842,0.003354608,0.003109967,0.003369902,0.003339126,0.00350009,0.003105511,0.003322129,0.003145871,0.003097057,0.002892707,0.00309703,0.003155155,0.003279675,0.003228664,0.003272846,0.003256282,0.003276394,0.0031921,0.003357128,0.003189419,0.003149339,0.003019004,0.003036251,0.003291117,0.003573726,0.003519751,0.003246393,0.003067169,0.003039272,0.003428317,0.003848019,0.003520387,0.00349815,0.003356341,0.003643185,0.003646439,0.003954155,0.003262467,0.003295053,0.003107598,0.003374897,0.003641088,0.003799168,0.003426539,0.003215491,0.003251308,0.003254041,0.003642529,0.003540376,0.003558024,0.003528113,0.003374847,0.003360285,0.003236694,0.003619247,0.003612738,0.003348065,0.003189634,0.002949324,0.003035835,0.003456616,0.003775908,0.003486972,0.00340096,0.00327661,0.003627031,0.003831627,0.003661533,0.003293203,0.003035916,0.002915355,0.003125865,0.003685303,0.003915329,0.003586481,0.003200808,0.002980852,0.003047142,0.003865687,0.004539048,0.003885612,0.00339336,0.003158809,0.002952445,0.003078837,0.00345646,0.003648897,0.003244178,0.003082197,0.002938367,0.003452504,0.003615683,0.003400669,0.003217368,0.003072365,0.003104671,0.003685806,0.003600346,0.003491087,0.00317469,0.003109007,0.003020014,0.002821754,0.003187425,0.003290103,0.003248547,0.003180145,0.003121296,0.003120416,0.003618812,0.003953842,0.004242064,0.0035727,0.004916814,0,0,0,0,0 +DEVELOPMENT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003090235,0.003095336,0.003094059,0,0,0,0.002108963,0.002110818,0.002111932,0,0,0,0.002876043,0.002876663,0.002877284,0,0,0,0.005092847,0.005094044,0.005089258,0,0,0,0.008012058,0.008008246,0.008005073,0,0,0,0,0.008288928,0,0.008217961,0,0,0,0.005435094,0,0,0,0,0,0.003623016,0.003623361,0.003622325,0,0,0,0.003525762,0.00352543,0.003618421,0,0,0,0.003845248,0.003882657,0.003887078,0,0,0,0.003577295,0.003577687,0,0,0,0,0.004914005,0.004875689,0.004912725,0,0,0,0.0052954,0.005304309,0.005368573,0,0,0,0.004560544,0.004516768,0,0,0,0,0.005791506,0.0057229,0.00574024,0.006042296,0.006741573,0.005136986,0.004246949,0.004198414,0.004246942,0.004883721,0.005435964,0.005331627,0.005255255,0.004437255,0.004370725,0.004365529,0.005737235,0.005572361,0.006541648,0.0050782,0.005151787,0.005388978,0.007261894,0.006683511,0,0.004652365,0.004889976,0,0.005432993,0.004916733,0.004338003,0.003703051,0.003042949,0.0048,0.004207574,0.004531669,0.003070624,0.003059373,0.003425652,0.010269058,0.0150342,0.013137803,0.00992369,0.004223686,0.017286675,0.01913798,0.018020923,0.008868686,0.005349761,0.00459465,0.00372678,0.020869172,0.017287376,0.017108498,0.005423366,0.005795019,0,0.021793948,0.018162469,0.013438353,0.005140295,0.005216635,0.010533313,0.017544665,0.01504418,0.011616051,0.005953124,0.006363998,0.003103539,0.002332954,0.003010945,0.003841651,0.003961319,0.004698249,0.003969466,0.003582223,0.003387059,0.003860735,0.00405506,0.004369444,0.004239855,0.004395909,0.003898507,0.004025321,0.004371515,0.004383948,0.004455004,0.004284463,0.003909265,0.003591485,0.003683501,0.003696939,0.003863021,0.003733858,0.003810877,0.003901231,0.004022684,0.0041219,0.004399369,0.00389461,0.003058419,0.002998286,0.003112645,0.00320528,0.003259183,0.002914658,0.002926259,0.002984692,0.003148227,0.003295487,0.003200065,0.002936377,0.002863183,0.002991195,0.003239464,0.003272222,0.003384532,0.002950554,0.002875717,0.002901789,0.00315193,0.003216407,0.003235179,0.002766284,0.002787199,0.002911608,0.003270721,0.003320272,0.003391511,0.003163969,0.003238406,0.003217183,0.003327895,0.003309671,0.003390942,0.003157603,0.003264908,0.003094788,0.003116146,0.0031114,0.003216552,0.003286981,0.002988339,0.003041441,0.003181384,0.003398123,0.003407572,0.003404758,0.00318446,0.003477754,0.003576507,0.003696224,0.003650121,0.00352596,0.003255604,0.00326228,0.003124678,0.003216998,0.003219972,0.003463311,0.003283372,0.00329668,0.003051882,0.003247309,0.003255892,0.003636526,0.00341006,0.003531165,0.003240617,0.003349095,0.003272981,0.003378095,0.003262679,0.00317595,0.003001367,0.003259899,0.003289478,0.003616541,0.003253586,0.003340286,0.003134406,0.003383872,0.003344026,0.003697677,0.003604551,0.003542291,0.003190048,0.003477936,0.003564666,0.003752745,0.003705731,0.003527809,0.003333302,0.003447578,0.003508197,0.003628014,0,0.003467812,0.003304838,0.003563266,0.003580517,0.003762064,0.003661092,0.003567638,0.003248469,0.003279185,0.003341282,0.003539707,0.003594482,0,0.003248589,0.003393861,0.003361647,0.003442889,0.003362069,0.00351378,0,0.003456856,0.003424499,0.003477008,0.003341526,0.003434057,0.003352248,0.003297198,0.003353751,0.003351902,0.003554419,0.003519623,0.003359264,0.003259754,0.003339019,0.003389767,0.003451258,0.003518767,0.003312956,0.003131618,0.003247862,0.003294289,0.003453494,0.003346721,0.00320992,0.003165138,0.003290158,0.003331927,0.003413043,0.003295967,0.003181336,0.003190402,0.00332549,0.003367965,0.003326918,0.003066816,0.003093855,0.003142814,0.003352494,0.003407114,0.0034752,0.003242518,0.003266304,0.003151597,0.003244344,0.003269421,0.00334866,0.003427046,0.003386637,0.003399408,0.00333428,0.003076845,0.003430336,0,0,0,0,0 +UNIVERSITY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000783515,0.000783699,0.000782963,0,0,0,0,0,0,0,0,0,0,0,0,0.000740357,0,0,0,0.000800961,0.000801511,0.000800183,0,0,0,0,0,0,0,0,0,0.000470102,0.000470057,0.000516917,0,0,0,0.000392372,0.000392188,0.000392634,0,0,0,0.000657054,0.000657126,0.000765948,0,0,0,0.001042365,0.001042132,0.001042093,0,0,0,0.001245977,0.001102194,0.001101246,0,0,0,0.001240964,0.001175597,0.001174289,0,0,0,0.000559566,0.000586248,0.00058517,0,0,0,0.00075998,0.000777484,0.000774182,0,0,0,0,0.000524602,0.000524487,0.000566679,0,0,0,0.000444101,0.000496098,0.000530063,0,0,0,0.000827087,0.000936378,0.000869912,0.000713423,0.000634417,0,0,0,0.001417143,0.001675238,0.001498937,0.001364722,0.001037075,0.001393485,0.000896861,0.000590257,0.000432165,0.000410635,0.000591316,0.000788146,0.000892024,0.000931499,0.00085826,0.000932155,0.001021033,0.001688697,0.001493889,0.001316117,0.001594578,0.001795058,0.002203065,0.001616014,0.001801153,0.001809152,0.002038208,0.002087037,0.002560015,0.002556629,0.00266385,0.001790067,0.001711456,0.001498689,0.002159214,0.002443212,0.003469522,0.003010945,0.002744036,0.00240786,0.002405056,0.00280916,0.003414307,0.003036674,0.002921638,0.002455357,0.002862739,0.002477837,0.002498727,0.001916215,0.002304821,0.002280791,0.002513872,0.002310002,0.002314236,0.001867483,0.002138566,0.002040685,0.002341886,0.002090137,0.003023514,0.002958274,0.003036886,0.002854015,0.002888709,0.002955301,0.0028767,0.003009969,0.002816069,0.002816541,0.002704291,0.002795139,0.003699526,0.003829236,0.00361365,0.003201514,0.003133822,0.003757961,0.004324425,0.004537084,0.003730776,0.003358781,0.003071882,0.003410397,0.00364683,0.00398762,0.003624571,0.0035995,0.003255258,0.003383249,0.003572148,0.004079107,0.003815,0.003524131,0.003211179,0.003166634,0.003605885,0.004471391,0.004148312,0.003517485,0.002976892,0.002910809,0.003238567,0.004102652,0.00391504,0.003371916,0.003319788,0.003290888,0.003935958,0.003909326,0.003606138,0.00342547,0.003474917,0.00355947,0.00391196,0.003800635,0.003610812,0.003526548,0.003298436,0.003438988,0.00369899,0.003895678,0.003534531,0.002943729,0.003159208,0.003279549,0.00399047,0.004178324,0.003907466,0.00334076,0.003031831,0.002909732,0.003330271,0.004092638,0.00381976,0.003303367,0.003248212,0.003302204,0.003589476,0.003711819,0.003587331,0.003340159,0.00351644,0.003517449,0.003718462,0.003366177,0.003528177,0.003309202,0.003220794,0.003133523,0.003253019,0.003532956,0.003436608,0.003010366,0.003293982,0.003420271,0.003691343,0.003735377,0.003782781,0.003348286,0.003207185,0.003196338,0.003420821,0.003822065,0.003955324,0.003583687,0.003716487,0.003595346,0.003789967,0.003442458,0.003564003,0.003270846,0.003563907,0.003486729,0.003591564,0.003109439,0.003115352,0.002977531,0.003245022,0.003441037,0.003592257,0.003808316,0.003460189,0.003188902,0.003378717,0.003508783,0.003827238,0.003768986,0.003578131,0.00313525,0.003305189,0.003551573,0.003658061,0.003884763,0.003581222,0.00331638,0.00313019,0.003249892,0.003346763,0.003557273,0.003792527,0.003656324,0.003265764,0.003350362,0.003350979,0.003616421,0.004346701,0.004012094,0.003512428,0.003078547,0.003041571,0.003286164,0.003748185,0.003386162,0.002812325,0.003038528,0.003071696,0.003325221,0.003477131,0.00378153,0.00332856,0.00319564,0.003039278,0.003089719,0.003132068,0.003165913,0.003243152,0.003256353,0.003212719,0.003107315,0.002727608,0.002757084,0.002987783,0.002972887,0.002466562,0.002801441,0,0,0,0,0 +PROVIDE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000643797,0.000924001,0.001188391,0.000771893,0.00112642,0.001296284,0.001546528,0.001604927,0.002367812,0.002661155,0.002534632,0.002349641,0.001908913,0.002384391,0.002743929,0.002894899,0.002810548,0.002790484,0.002840686,0.002983657,0.003289344,0.003397644,0.003245424,0.003165279,0.003019412,0.003325435,0.003430048,0.003415911,0.00317609,0.003044579,0.003033722,0.003059381,0.003147028,0.003152931,0.003040376,0.003017658,0.002968991,0.003129016,0.003204085,0.00318537,0.003058104,0.003162116,0.003154874,0.003233179,0.003078557,0.003110152,0.003019548,0.003057871,0.003041141,0.003140158,0.003180735,0.003250563,0.003234452,0.003081338,0.003098576,0.003061852,0.00313263,0.002991121,0.00299785,0.002964879,0.002983986,0.00297382,0.003040613,0.002945426,0.002943696,0.003108948,0.003140922,0.003187912,0.002991491,0.002966433,0.002926109,0.002895182,0.002943698,0.00301571,0.003120045,0.003102688,0.002887531,0.002742271,0.002783741,0.002821773,0.002942888,0.002852101,0.002896256,0.002819292,0.002861101,0.002831852,0.002931405,0.00300282,0.003073637,0.002974503,0.003004431,0.003004836,0.003090499,0.003037065,0.003023338,0.002857646,0.002922133,0.002876114,0.00310168,0.003169472,0.003185609,0.002960608,0.00285027,0.002769946,0.00282088,0.002932658,0.003005325,0.002796595,0.002823384,0.002835461,0.003013911,0.003128319,0.003305943,0.003083885,0.003097191,0.002981416,0.003033706,0.003079443,0.003325918,0.00329944,0.003191328,0.003111924,0.003064704,0.003150013,0.00322133,0.003202044,0.003056111,0.003100903,0.003094054,0.003299527,0.003331571,0.003259491,0.003090577,0.003044083,0.003042499,0.003202761,0.00325898,0.00320883,0.003146372,0.003074821,0.003012606,0.002988966,0.002939746,0.003227752,0.003251304,0.00316787,0.003076668,0.003067085,0.003223766,0.003479153,0.003258826,0.003156654,0.00307089,0.003118098,0.003392592,0.003387772,0.003232902,0.003142814,0.003116849,0.003140627,0.003298142,0.003301907,0.003193435,0.003095803,0.00306969,0.003098733,0.003331762,0.003150132,0.003138171,0.003035562,0.003062308,0.003054447,0.00333719,0.003388208,0.003072954,0.00302337,0.002991942,0.003086713,0.003152482,0.00321697,0.003245399,0.003347187,0.003013274,0.002515579,0,0,0,0,0 +UNDERSTANDING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000251014,0.00026713,0.0002827,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000478927,0,0,0,0,0.000386488,0,0,0,0,0,0.000416302,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000380132,0.00061314,0.000825001,0.00090693,0.000622494,0.001077445,0.001270615,0.001546528,0.001418307,0.001183906,0.001046376,0.001027869,0.001008747,0.001013582,0.001057863,0.001681763,0.002168146,0,0.002799959,0.003011179,0.002961905,0.002772672,0.002516093,0.002524981,0.002419253,0.002507057,0.002469786,0.002593373,0.002423096,0.002617296,0.00258123,0.002728441,0.002420162,0.002661014,0.002525391,0.002535068,0.002459917,0.002488473,0.002514388,0.002642305,0.002695534,0.00262472,0.002628539,0.002575982,0.00261362,0.002707199,0.002632116,0.002610014,0.002634164,0.002649055,0.002604295,0.002556154,0.002564875,0.002615938,0.002519856,0.002426924,0.002489261,0.002473129,0.002587668,0.00248665,0.0026284,0.002521852,0.002600826,0.002343535,0.002528445,0.00252447,0.002565811,0.002490846,0.002467018,0.002195554,0.002592786,0.00264202,0.002783376,0.002666785,0.002638391,0.002370172,0.002597337,0.00274658,0.002917809,0.002837319,0.002801911,0.002648802,0.002701991,0.002797309,0.002819292,0.002727372,0.002698261,0.002698089,0.003015653,0.003005429,0.003022262,0.002688853,0.002642916,0.002452673,0.002681971,0.002649454,0.002844404,0.002843438,0.00287497,0.002710069,0.002698595,0.00269116,0.002872149,0.002695628,0.002667437,0.002696872,0.002950902,0.003074293,0.00295461,0.002775305,0.002686716,0.002639041,0.002714657,0.002974587,0.003155961,0.002943258,0.002885026,0.00275564,0.002885559,0.003131452,0.003345438,0.003059542,0.002936908,0.002711045,0.002960053,0.00322133,0.003151391,0.003160789,0.003152273,0.003179407,0.003149087,0.003201166,0.00319014,0.003225694,0.003162536,0.003134271,0.003105466,0.00325898,0.003269938,0.003162354,0.00306493,0.00307816,0.003066344,0.003290221,0.003320668,0.003411851,0.003393916,0.003381468,0.003296959,0.003108126,0.003174981,0.003362905,0.003355139,0.003357705,0.003241486,0.003084341,0.003180483,0.00323196,0.003264555,0.003241714,0.003237652,0.003174217,0.003416668,0.003353157,0.003385103,0.003320482,0.003387993,0.003263767,0.003424653,0.003373139,0.003266547,0.003182574,0.003109875,0.003145216,0.003101376,0.003322969,0.00332961,0.003279675,0.003190462,0.002968102,0.003223668,0.003461012,0.003411721,0.003636271,0.003144474,0,0,0,0,0 +SYSTEM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002884219,0.002888981,0.002887789,0,0,0,0.002108963,0.002110818,0.002111932,0,0,0,0.000719011,0.000719166,0.000719321,0,0,0,0.000940218,0.000940439,0.000939555,0,0,0,0.001665873,0.001665081,0.001664421,0,0,0,0,0.001554174,0.001554174,0.001554749,0,0,0,0.002002403,0.002003779,0.002000457,0,0,0,0.001668494,0.001668653,0.001668176,0,0,0,0.001692366,0.001692206,0.001691729,0,0,0,0.001647964,0.001647188,0.001649064,0,0,0,0.002190181,0.002190421,0.002188423,0,0,0,0.002010275,0.002009826,0.002009751,0,0,0,0.002145848,0.002169945,0.002168078,0,0,0,0.00173735,0.001763396,0.001730532,0,0,0,0.002266241,0.002317077,0.002452141,0.005179111,0,0.005565068,0.003621083,0.003620854,0.003516999,0.002325581,0.002826701,0,0,0.003235043,0.003278044,0.003358099,0.0032511,0.002706575,0.002398604,0.003263178,0.003358202,0.003268724,0.002886137,0.002363681,0.001971307,0.002998191,0.003641471,0.003008445,0.002524421,0.001850383,0.002530502,0.001939693,0.002608242,0.002422857,0.002220664,0.001952104,0.001657162,0.002022297,0.002032166,0.001793722,0.002013819,0.00267942,0.003079766,0.003167765,0.002469525,0.002230061,0.002830324,0.003655552,0.004093378,0.003726771,0.002387469,0.002625622,0.003094654,0.003056275,0.00309361,0.002873563,0.003909712,0.004142651,0.003724725,0.003800048,0.003594342,0.003815872,0.002658895,0.003031277,0.002666057,0.003277256,0.002997377,0.003522927,0.003103539,0.003170425,0.002848191,0.003219669,0.003650627,0.004530455,0.003908397,0.002686667,0.002919879,0.003165107,0.003422619,0.003465421,0.003193657,0.003470455,0.003270781,0.003473462,0.003611252,0.003862779,0.003333003,0.003627721,0.003859466,0.005126028,0.00524931,0.005199281,0.004590837,0.004280276,0.004379279,0.004111477,0.00419491,0.004020542,0.004265037,0.003673325,0.003385458,0.003246762,0.003349528,0.003409872,0.003531084,0.003316952,0.003079306,0.003108197,0.003186594,0.003385025,0.003450805,0.003160773,0.002931291,0.002964488,0.003149976,0.003205442,0.003255211,0.00294366,0.003058495,0.002965752,0.003215622,0.003222541,0.003394424,0.002681048,0.002830167,0.002874984,0.003308496,0.003281561,0.003242358,0.002751762,0.00274288,0.002885074,0.003237408,0.003372273,0.003618148,0.003065072,0.003000961,0.00279329,0.003134308,0.003135444,0.003194452,0.002869531,0.002890953,0.002875004,0.00322965,0.003462575,0.003606727,0.003446374,0.003211019,0.003197054,0.003107667,0.003190312,0.003225954,0.003387536,0.003002174,0.002926109,0.003015815,0.0031568,0.003201532,0.003389754,0.003125273,0.002983456,0.002798941,0.003158789,0.003321152,0.003522948,0.002798288,0.002681871,0.002640005,0.002953773,0.003011365,0.003242493,0.002646716,0.002721938,0.002580489,0.003014092,0.003093706,0.003394617,0.002889831,0.002662739,0.002628558,0.00315158,0.003330298,0.003462086,0.00268758,0.00248168,0.002510021,0.002970547,0.00315463,0.00330126,0.002731979,0.00253927,0.002509171,0.002903791,0.003083934,0.00330868,0.002882707,0.002450892,0.002221343,0.002849188,0.002925806,0.003204971,0.002677238,0.00247899,0.002241481,0.00246732,0.002715541,0.003020108,0.003203497,0.002573465,0.002134239,0.002539262,0.002672817,0.003035605,0.002860041,0.002611666,0.002267526,0.002674648,0.002775287,0.003004105,0.002628561,0.002434661,0.002199913,0.002497121,0.002575649,0.0026553,0.002622909,0.002572278,0.002181377,0.002217609,0.002402544,0.002577218,0.002627281,0.002171204,0.002055507,0.002122438,0.00246391,0.00251888,0.002793608,0.002864162,0.002475208,0.002184444,0.00229219,0.002402309,0.002524144,0.002495891,0.002301021,0.0021886,0.002407912,0.002463109,0.002509185,0.002039855,0.002050674,0.002103568,0.002433392,0.002506397,0.002599261,0.002064377,0.002131523,0.002170318,0.002405486,0.002550389,0.00267466,0.00276769,0.002118601,0.001834112,0.001768244,0.001945278,0.002229718,0,0,0,0,0 +BASED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000893455,0.000856037,0.000856005,0,0,0,0,0,0.000344139,0,0,0,0.000341265,0.000340304,0.000339926,0,0,0,0.000447653,0.000474582,0.000473709,0,0,0,0.000827037,0.000821912,0.000840541,0,0,0,0,0.000896194,0.000961559,0.000986442,0,0,0,0.000830276,0.000801389,0.000795095,0,0,0,0.000775394,0.000988399,0.000942405,0.000823181,0.000687285,0,0.001146182,0.000956355,0.000685714,0.000584385,0.000627462,0.000584881,0.000674099,0.000812867,0.000852018,0.001006909,0.000806707,0.000821271,0.000464606,0.000525431,0.000648745,0.000609057,0.000794685,0.000648456,0.00091893,0.000698771,0.001358081,0.001244976,0.001162713,0.001031203,0.00105364,0.001251108,0.001305836,0.001170628,0.001105469,0.000850274,0.000917741,0.001022652,0.000918569,0.001142596,0.001456558,0.00174847,0.001704642,0.001056524,0,0.000691704,0.000841504,0.001048584,0.001398288,0.001221374,0.001119445,0.000895429,0.001043442,0.000967262,0.000753352,0.000605694,0.000925455,0.001321528,0.00142834,0.001520527,0.001348907,0.001617002,0.001594946,0.001792784,0.001893692,0.002130527,0.002179869,0.002239433,0.00189425,0.00204108,0.002137501,0.00233734,0.002381918,0.002216476,0.001799782,0.001623082,0.001628903,0.001731616,0.001791494,0.001819922,0.001644672,0.00156414,0.001649014,0.001796855,0.001920088,0.001908756,0.001702201,0.001713194,0.001744179,0.00178777,0.001741051,0.00172552,0.001782052,0.001827786,0.001912494,0.002033003,0.002032491,0.002095323,0.001747331,0.001730183,0.001776264,0.002162642,0.002234629,0.002292367,0.001990478,0.001859679,0.002021182,0.002293762,0.002443127,0.002565713,0.002155189,0.002137396,0.001999641,0.002130905,0.002188079,0.002284334,0.002181966,0.002120218,0.002013097,0.002119544,0.002194107,0.002285217,0.002325327,0.002156615,0.002234657,0.002310895,0.002418764,0.002461311,0.002568529,0.002378345,0.002419485,0.002356749,0.002480171,0.002497961,0.002825817,0.002605806,0.002691766,0.002431277,0.002635818,0.002570665,0.002920579,0.002515061,0.002731345,0.002562314,0.002824736,0.002749749,0.002909469,0.002572929,0.002598311,0.002673023,0.003116064,0.003249551,0.003466948,0.003112126,0.003095458,0.002526593,0.003007465,0.002998526,0.003607185,0.003081354,0.003091248,0.002844506,0,0.003055428,0.003137521,0.003231397,0.002869479,0.002744831,0.002894673,0.003046748,0.003243532,0.003369622,0.002997439,0.002828667,0.003099329,0.003148245,0.003334863,0.003137195,0.00294789,0.002650492,0.002873252,0.003078359,0.003327097,0.003227472,0.002891399,0.002691414,0.00294489,0.002948349,0.003122814,0.003084855,0.003043966,0.002738121,0.002805694,0.002960559,0.003211059,0.003408516,0.003043782,0.002781069,0.002847717,0.00305372,0.003112018,0.003164554,0.002922753,0.002857519,0.002772481,0.003073577,0.00315664,0.003360988,0.003013726,0.002665417,0.002741515,0.002930806,0.003012278,0.003162408,0.003003609,0.002870162,0.002868671,0.0030519,0.003113861,0.003133163,0.002852447,0.002871919,0.002833554,0.003113921,0.003150612,0.003248028,0.002977719,0.002684818,0.00273696,0.003164484,0.003323311,0.00347268,0.002821754,0.002875495,0.002787726,0.003109838,0.003219957,0.003458296,0.003569339,0.003212505,0.002727367,0.002921259,0.003089559,0.004002058,0,0,0,0,0 +USING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000793273,0.000792896,0.000792581,0,0,0,0,0.000962108,0.000962108,0.000962464,0,0,0,0.000629327,0.000629759,0.000628715,0,0,0,0.000524384,0.000524434,0.000524284,0,0,0,0.000611132,0.000611075,0.000610902,0,0,0,0.000902456,0.000902032,0.000903059,0,0,0,0.000438036,0.000438084,0.000437685,0,0,0,0.000819001,0.000818818,0.000818787,0,0,0,0.000934482,0.000929976,0.000929176,0,0,0,0.000899699,0.000897166,0.000896168,0,0,0,0.000727436,0.000725831,0.000724496,0,0,0,0.001207028,0.001199547,0.001238691,0,0,0,0,0.001377079,0.001442339,0.001427192,0.001912412,0.001751313,0.002180549,0.001428847,0.001411971,0.001466509,0.00158272,0.001385606,0.00109517,0.001550788,0.001664673,0.001377361,0.001152453,0.001057362,0.000994126,0.001058014,0,0.000822857,0.000701262,0.001150347,0.001267242,0.001503759,0.001625733,0.001748879,0.001388841,0.000979573,0.001026589,0.001182632,0.001418663,0.00117585,0.001433075,0.001303284,0.001175326,0.00091893,0.001281081,0.00140335,0.001244976,0.001362036,0.001413131,0.001867816,0.001824532,0.001936239,0.001525364,0.001623657,0.001430007,0.00154567,0.001022652,0.001056354,0.001218769,0.001238074,0.001581949,0.001363714,0.001716852,0.001495484,0.001383407,0.001463486,0.001592295,0.002405056,0.002564885,0.002126945,0.001674064,0.001426037,0.00141369,0.001406258,0.001596828,0.001480727,0.00165191,0.001460802,0.001710593,0.001992704,0.001914002,0.001938954,0.001967082,0.00231814,0.002669576,0.002754293,0.003097882,0.002549952,0.002428627,0.002149181,0.002300434,0.002280559,0.002686637,0.002507892,0.002489129,0.00229979,0.002340406,0.002392156,0.002719007,0.002504477,0.002522215,0.002456367,0.002636667,0.002571723,0.002786345,0.00270557,0.002622183,0.002434455,0.00250964,0.002618731,0.002785958,0.00269893,0.002619827,0.002645937,0.002559759,0.00255186,0.002561882,0.002758535,0.00274996,0.002702037,0.002650574,0.002655162,0.002723764,0.002781471,0.002565074,0.002567227,0.002849608,0.003008193,0.003251618,0.003227,0.003127197,0.002811025,0.002663632,0.002596841,0.002722316,0.002666068,0.002698965,0.002635255,0.002853179,0.00284274,0.002923187,0.002827328,0.002770135,0.00271221,0.002670851,0.002711098,0.002731409,0.002806926,0.003011921,0.002876393,0.002874586,0.002730596,0.002726338,0.002646011,0.002676386,0.00277986,0.002713245,0.002762775,0.002774956,0.002847564,0.002798288,0.002692178,0.002747577,0.00278016,0.002842985,0.002873575,0.002961114,0.002713412,0.002713319,0.002746816,0.002807777,0.002909672,0.003039952,0.002856324,0.002678878,0.002696478,0.002746838,0.002889493,0.00282251,0.002781746,0.002720111,0.002760315,0.002753412,0.002828103,0.00288933,0.00285276,0.002808855,0.002754581,0.002773766,0.002746909,0.002650023,0.002574674,0.002576994,0.002701668,0.002688539,0.002721002,0.002489543,0.002549871,0.002466499,0.00246488,0.002392681,0.002375016,0.002368042,0.002493481,0.00252303,0.002518818,0.002501582,0.002506787,0.002373225,0.002433029,0.002458241,0.002508601,0.002479155,0.002525584,0.002502556,0.002520375,0.002483008,0.002570037,0.002569714,0.002550846,0.002545531,0.002444832,0.002455836,0.002435427,0.002478753,0.002491211,0.002442542,0.002317524,0.002195049,0.002409234,0.002458698,0.002506869,0.002456848,0.00226234,0.002283864,0.002374559,0.002425427,0.002439351,0.00243309,0.002574159,0.002510205,0.002487826,0.002466356,0.002461102,0.002453199,0.002250874,0.002299116,0.002354324,0.002545124,0.002594038,0.002614378,0.002414138,0.002325135,0.002365165,0.002491353,0.002504545,0.00251499,0.00222257,0.002102974,0.002181333,0.002318938,0.002975131,0.002687096,0,0,0,0,0 +ANALYSIS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004993758,0.005001563,0.005010961,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003810756,0.003811579,0.003812401,0,0,0,0.004074277,0.004075235,0,0,0,0,0,0,0.004359198,0,0,0,0,0.005698638,0.005698638,0.005700748,0,0,0,0.004805767,0.004809069,0.004801097,0,0,0,0.005529866,0.005530393,0.005528812,0,0,0,0.006440391,0.006439786,0.00643797,0,0,0,0.00651338,0.006510315,0.006517727,0,0,0,0.005840482,0.005841121,0.005835795,0,0,0,0.006552007,0.006550543,0.006587517,0,0,0,0.006299104,0.006337616,0.006332163,0,0,0,0.006173797,0.006156416,0.006149567,0,0.009308511,0.009229099,0.007078507,0,0.006966311,0.011653,0.011235955,0.011986301,0.007197461,0.007175067,0.007122476,0.005813953,0.006305719,0.005971422,0.006381381,0.007912741,0.007998427,0.008080426,0.008797093,0.007323675,0.005887484,0,0.007498712,0.007332544,0.005213667,0.005949955,0.006242471,0.006254846,0,0.006669325,0.007518384,0.007877346,0.009850881,0.009610298,0.006955312,0.006217143,0.005726975,0.005751734,0.004971487,0.005392792,0.005573942,0.005874439,0.005242874,0.005358841,0.005235602,0.005195134,0.005569567,0.005392694,0.007022069,0.006357481,0.006889844,0.004952011,0.00494963,0.005251245,0.007185288,0.007607468,0.008058664,0.006034483,0.005473596,0.004773055,0.006030507,0.006529174,0.007265981,0.006375888,0.005675717,0.005649199,0.007541133,0.00801107,0.008326048,0.005909427,0.005084522,0.00544356,0.007283232,0.007683302,0.007029399,0.005313496,0.004396947,0.005541252,0.006929845,0.007338875,0.007068452,0.006780172,0.00633225,0.007264819,0.007598784,0.007790943,0.007159149,0.006131396,0.004983005,0.004847386,0.005552651,0.005876975,0.005506,0.00521401,0.004292246,0.004753839,0.005012272,0.005326232,0.004576265,0.004155686,0.003106424,0.002891453,0.003536865,0.003716107,0.003645632,0.003409872,0.003005409,0.0030527,0.003116037,0.003403235,0.003487135,0.003583998,0.003237676,0.002901115,0.003088465,0.003315789,0.003414462,0.003432017,0.003118499,0.003309033,0.00318644,0.003400701,0.003265544,0.003206183,0.002975359,0.002867017,0.003024956,0.003318541,0.003270721,0.003234054,0.002964704,0.00287431,0.002821582,0.00359208,0.003487323,0.003599617,0.002979399,0.002741215,0.002803001,0.002948473,0.002973884,0.002931865,0.002716288,0.002185474,0.002276035,0.002922557,0.003200691,0.003343271,0.003090274,0.002829929,0.00258422,0.003058528,0.003143534,0.00316762,0.0029045,0.002526233,0.002319861,0.002620714,0.003070246,0.003119477,0.003089471,0.002613319,0.002295255,0.002360924,0.002863904,0.002890897,0.002980666,0.002456125,0.002107213,0.002345865,0.002802857,0.00286462,0.002815153,0.002432867,0.002284196,0.002404343,0.00269541,0.00275433,0.002816793,0,0.002373068,0.002216735,0.002435223,0.002564688,0.002665611,0.002513484,0.002150615,0.002162742,0.002402211,0,0.002553905,0.002442836,0.002316937,0.002361625,0.00270669,0.002769502,0.002814333,0,0.00219758,0.002052884,0.002354859,0.002477183,0.002536539,0.00243139,0.002213156,0.002057344,0.002256399,0.002468134,0.002499768,0.002504657,0.002213124,0.002073569,0.002382025,0.002539262,0.002612106,0.002502148,0.002376606,0.002084688,0.002371552,0.002372671,0.002419929,0.002271808,0.002086261,0.002038914,0.00237825,0.002417213,0.002441789,0.00240461,0.002271733,0.001977531,0.002122769,0.002381911,0.002438065,0.002451224,0.002275647,0.002036684,0.00188931,0.002087745,0.002202882,0.002262812,0.002236659,0.001959593,0.002012793,0.002180679,0.002289055,0.002309706,0.002265162,0.001871918,0.001969814,0.002078412,0.002179394,0.002155471,0.00212407,0.001941379,0,0.00213886,0.002164806,0.002176305,0.002097885,0.001798769,0.001934326,0.002032986,0.002290796,0.002269292,0.002270702,0.001807717,0.001739084,0.001820111,0.00194894,0.00216142,0.001829512,0,0,0,0,0 +MATERIALS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000940218,0.000940439,0.000939555,0,0,0,0.001507219,0.001506502,0.001585163,0,0,0,0,0.001480166,0.001480166,0.001480714,0,0,0,0.001201442,0.001202267,0.001200274,0,0,0,0.001620823,0.001620977,0.001620514,0,0,0,0.001128244,0.001128138,0.00112782,0,0,0,0.001059405,0.001058907,0.001060112,0,0,0,0.001168096,0.001168224,0.001167159,0,0,0,0.00096791,0.000967694,0.000967658,0,0,0,0.001107535,0.001102194,0.001101246,0,0,0,0.001334037,0.001361218,0.001359703,0,0,0,0,0.00131208,0.001337532,0,0,0,0.002056417,0.002021459,0.002012874,0.005116279,0.005001087,0.004691832,0,0.001901681,0.001879412,0.001909919,0.002677376,0.002706575,0.003706934,0.002259123,0.002156118,0.002102585,0.001303417,0.001548618,0.00109517,0.001860946,0.001924778,0.001703578,0.001317089,0.001427439,0.001897876,0.001763357,0.00121718,0.001417143,0.001753156,0.001847527,0.001803383,0.001607467,0.001683795,0.001659193,0.00170133,0.001555792,0.001539883,0.001224869,0.001208491,0.000892024,0.001576383,0.001684733,0.002229067,0.00153155,0.00122285,0.001674966,0.001565112,0.001793901,0.001489516,0.002059387,0.00208518,0.001936239,0.002163888,0.002245483,0.002473526,0.002753224,0.002710027,0.002893492,0.002894576,0.003677809,0.004246285,0.005454855,0.004952456,0.005742657,0.005086056,0.005341724,0.004699212,0.004977907,0.005496183,0.006268891,0.00681305,0.006295433,0.006547619,0.006780172,0.007708827,0.00694091,0.006343333,0.006654764,0.005892043,0.005456942,0.003993004,0.004722292,0.004083564,0.005028079,0.004196881,0.004698501,0.00432957,0.005154545,0.004702235,0.004426846,0.004293324,0.004409082,0.004684824,0.004101142,0.003046306,0.002109291,0.001994556,0.001791494,0.001939558,0.001979917,0.001965124,0.001841132,0.001720121,0.001693756,0.001811594,0.001859278,0.001697477,0.001546957,0.001606806,0.001679041,0.001847452,0.001733795,0.001833879,0.001641718,0.001731754,0.001631718,0.001843884,0.00180932,0.001804661,0.001945141,0.002096535,0.002130816,0.002173045,0.001964483,0.00213076,0.002135281,0.002642782,0.002789085,0.003015838,0.002586998,0.002501757,0.002387598,0.002345812,0.002281052,0.002332552,0.002301238,0.002323336,0.00211613,0.002533248,0.002493054,0.002762851,0.002392954,0.00249923,0.002508066,0.00242234,0.002322654,0.00227871,0.002287837,0.002527804,0.002632551,0.002571534,0.002720964,0.002672435,0.002856466,0.002506994,0.002819013,0.002561204,0.002636983,0.002440146,0.002725873,0.002979554,0.003090027,0.003029954,0.00273441,0.002730267,0.00268413,0.002983571,0.002903116,0.002784958,0.002670605,0.002579806,0.002705831,0.003161204,0.003330796,0.002950341,0.002743885,0.002600401,0.002660143,0.0029657,0.002736453,0.002480995,0.002481352,0.002389671,0.002612594,0.002592871,0.002723184,0.002603163,0.002618634,0.002604737,0.002626225,0.002828845,0.002959352,0.002846391,0.002839923,0.002772324,0.002747943,0.002384351,0.002577132,0.002774811,0.002829324,0.002691566,0.002507768,0.001827671,0.002029578,0.002325897,0.002626767,0.002611328,0.002516992,0.002126437,0.001934633,0.002294771,0.002476857,0.002452579,0.002460033,0.002320726,0.002325238,0.002302176,0.002384251,0.002389036,0.002345539,0.002511803,0.002593519,0.002441542,0.002488004,0.002606631,0.002590044,0.002546458,0.002242004,0.0023879,0.002548776,0.002586389,0.002615926,0.002580918,0.00267701,0.002412653,0.002638085,0.002613525,0.002690873,0.002619677,0.00236327,0.002155755,0.002173436,0.002601948,0.002707881,0.002717011,0.001997651,0.002152247,0.00243048,0.002746564,0.002773797,0.002712638,0.001664651,0.001954046,0.002263046,0.002817409,0.002776595,0.002828444,0.002216557,0.002482492,0.002688165,0.002947073,0.003432843,0.003716197,0,0,0,0,0 +STUDIES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.008965929,0,0,0,0.009950249,0.009965504,0.009984639,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.011599297,0.011609499,0.011615628,0,0,0,0.011000863,0.011003236,0.011005611,0,0,0,0.011204262,0.011206897,0.011196367,0,0,0,0.013961606,0.013954964,0.013949433,0,0,0,0,0.011767318,0.011767318,0.01184571,0,0,0,0.010698553,0.010705903,0.010688157,0,0,0,0.011155075,0.011156138,0.011152948,0,0,0,0.009543061,0.009542164,0.009539474,0,0,0,0.009377698,0.009373284,0.009383957,0,0,0,0.010439861,0.010441005,0.010431484,0,0,0,0.011987194,0.011984517,0.011984071,0,0,0,0.011767556,0.011779699,0.011769564,0,0,0,0.009927714,0.009899765,0.009857849,0,0.00731383,0.009229099,0.011359185,0.011473717,0.011508346,0.012516185,0.013033708,0.014982877,0.013031427,0.012995091,0.012895662,0.015581395,0.01674277,0.017274472,0.018393393,0.01436097,0.014314124,0.014166981,0.012430675,0.013055246,0.014391627,0,0.011696464,0.011184338,0.0077274,0.009291711,0.011718322,0.012871543,0.011860792,0.009750263,0.007518384,0.008564631,0.011748757,0.012872509,0.009998261,0.006948571,0.005882811,0.007180953,0.008237072,0.01057817,0.013992916,0.01206278,0.009964932,0.006338414,0.006843924,0.006926846,0.012189996,0.010582654,0.010676412,0.008137576,0.009159439,0.009240351,0.010889187,0.008872793,0.008821542,0.008703741,0.009509987,0.0098659,0.01230256,0.01179755,0.010996807,0.00908557,0.008850584,0.009274018,0.009970854,0.010012401,0.009940585,0.009868181,0.009491695,0.009091426,0.00911252,0.010647844,0.009683851,0.009476072,0.008660531,0.010459198,0.010564885,0.011642225,0.009032158,0.009425759,0.009040179,0.010747828,0.010517042,0.010272546,0.008193472,0.007401396,0.006525596,0.00689782,0.006600007,0.007036527,0.006548642,0.005795351,0.005043958,0.00508145,0.005020062,0.005136331,0.00444387,0.004520289,0.004121099,0.004578012,0.003710918,0,0.003651934,0.003746476,0,0.003897746,0.004129265,0.00424775,0.003966979,0.003794333,0.00357879,0.003536742,0.003607517,0.004119263,0.003890052,0,0.003442303,0.003505952,0.003643176,0.00389156,0.003692128,0.003618175,0.003487607,0.003472002,0.003472649,0.003723248,0.003612187,0.003399928,0.0031873,0.003271004,0.003412163,0.003951248,0.00377474,0.003339432,0,0.003064205,0.003099433,0.003292543,0.003396881,0.003429539,0.003185764,0.003005602,0.002969434,0.002806387,0.003027293,0.002922557,0.003135877,0.00292639,0.003022764,0.002868944,0.003333192,0.002967392,0.003003907,0.002857932,0.003092807,0.002722334,0.003171127,0.002862189,0.002923134,0.002810057,0.002932019,0.002923893,0.003164798,0.002897319,0.002901223,0.002744139,0.00282461,0.002715732,0.003203304,0.002941607,0.002808833,0.002668719,0.002727484,0.002704072,0.002900159,0.002711281,0.002717797,0.002490275,0.002496088,0.002492126,0.002788788,0.002691208,0.002755682,0.002580807,0.002635866,0.002471359,0.002662797,0.002668514,0.002682792,0.002593543,0.002496589,0.002462099,0.002565506,0.002501651,0.002356605,0.002273794,0.002254002,0.002258831,0.00219758,0.002418518,0.002289873,0.002222053,0.002146531,0.002207206,0.002440041,0,0.002572171,0.002331467,0.002138549,0.002025505,0.001986279,0.002343513,0.00222733,0.002244855,0.002172345,0.002131975,0.002114604,0.002238315,0.002188268,0.002202555,0.002161003,0.002232477,0.002070311,0.002166575,0.002036541,0.002051634,0.001920856,0.00190467,0.00189278,0.002030634,0.002057013,0.002103067,0.002013745,0.002006096,0.001980695,0.002095684,0.002039828,0.001979812,0.001971389,0.001982242,0.001972159,0.001990786,0.001935519,0.001921859,0.001856429,0.001847884,0.001824071,0.001806695,0.001801304,0.001765032,0.001792492,0.001808375,0.001793244,0.001674088,0.001655363,0.001726505,0.001716266,0.001707395,0.001667054,0,0.00172458,0.001748931,0.001656699,0.001581024,0.001534159,0.001465012,0.001529233,0,0.001303596,0.001385852,0.001086273,0,0,0,0,0 +ENGINEERING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001150417,0.001150665,0.001150914,0,0,0,0.002507248,0.002507837,0.002505481,0,0,0,0.001427891,0.001427212,0.001426647,0,0,0,0,0.002664298,0.002664298,0.002665285,0,0,0,0.002231249,0.002232782,0.002229081,0,0,0,0.002478905,0.002479142,0.002478433,0,0,0,0.001880406,0.001880229,0.001879699,0,0,0,0.001530252,0.001529532,0.001531273,0,0,0,0.002044169,0.002044393,0.002042528,0,0,0,0.002196411,0.002195921,0.002233057,0,0,0,0.002180459,0.002273275,0.002236905,0,0,0,0.00189247,0.001918079,0.001915946,0,0,0,0.002238263,0.00220541,0.002312815,0,0,0,0.001452904,0.00151054,0.001526245,0.00255814,0,0,0,0.00150823,0.001529754,0.001553121,0.001912412,0,0,0.001312995,0.001335648,0.00144884,0.002141328,0.001711631,0,0.000620315,0.000728294,0.000761173,0.001152453,0.001057362,0.001446001,0,0.001043297,0.001051429,0.00116877,0.001185206,0.000974801,0.000777807,0.0012193,0.001479821,0.001562446,0.00178628,0.001916299,0.001731711,0.001733922,0.001378583,0.002221267,0.002384055,0.002796466,0.00214417,0.001281081,0.002851969,0.005371181,0.00514916,0.005346981,0.00282567,0.003388417,0.002161383,0.002021994,0.002487304,0.00266677,0.002511713,0.001073784,0.000918569,0.001523461,0.001675042,0.002456184,0.002613785,0.002707343,0.002931148,0.003621272,0.005049027,0.005514777,0.006096538,0.005251908,0.003526251,0.00385424,0.0029912,0.002938988,0.002561398,0.003083531,0.003377909,0.003072552,0.00301899,0.003009377,0.003157669,0.003036003,0.002564423,0.003261871,0.003787384,0.004389399,0.004020974,0.003209854,0.002549952,0.003462085,0.004123157,0.004231815,0.003648895,0.003475837,0.003245508,0.002670817,0.002280464,0.002323824,0.002200679,0.001867051,0.001514518,0.001943697,0.002037824,0.002397938,0.002420007,0.002447846,0.001900952,0.001904423,0.002138622,0.002346573,0.002229976,0.002176299,0.001544215,0.001934407,0.001923155,0.002012346,0.00191594,0.001916522,0.001991414,0.002165593,0.002425323,0.00243494,0.002322607,0.002095027,0.001511427,0.00173434,0.001945795,0.002022303,0.002055983,0.001806931,0.001522897,0.001747213,0.001975255,0.002043127,0.002133577,0.002041235,0.00212233,0.001716764,0.001870437,0.002105754,0.002505396,0.002524877,0.002439773,0.001814,0.002145344,0.002086723,0.002119756,0.001991494,0.002149413,0.001624553,0.001943637,0.001727106,0.001988952,0.00189794,0.002135198,0.001778611,0.002020293,0.001892222,0.002121001,0.001989002,0.002174208,0.001787166,0.001875867,0.001910903,0.00209861,0.002134674,0.002053978,0.001254383,0.001541082,0.001687989,0.002138202,0.002100681,0.00223568,0.00232399,0.0023382,0.0021386,0.002004344,0.002010077,0.002276333,0.00243975,0.0022722,0.001861783,0.001848632,0.00187933,0.002132214,0.002417277,0.002326097,0.001995622,0.002310267,0.00247712,0.002966919,0.003154173,0.002871752,0.002467108,0.002705944,0.002704851,0.002713305,0.002343099,0.002144581,0.002317316,0.002512876,0.002646014,0.002678894,0.00237542,0.002103562,0.002134239,0.002368343,0.002514814,0.002494726,0.00259973,0.002256179,0.002487963,0.002390578,0.002558123,0.002629529,0.002880571,0.002751987,0.002574048,0.002283367,0.002311226,0.002235322,0.002498906,0.00248519,0.002650245,0.002740559,0.002733216,0.002648892,0.002779481,0.003148246,0.003300413,0.002505603,0.002635902,0.002549627,0.002811333,0.002610956,0.002543896,0.0024075,0.002611958,0.002614401,0.002791336,0.00258503,0.002501489,0.002334169,0.002570972,0.002576132,0.002767059,0.00266119,0.002957967,0.002524282,0.002603676,0.002468654,0.002631175,0.002374691,0.002423734,0.00244733,0.002572417,0.002664397,0.002772523,0.003076325,0.002995957,0.002976582,0.00312777,0.003178559,0.002972958,0,0,0,0,0 +INFORMATION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000667398,0.000667461,0.00066727,0,0,0,0,0,0,0,0,0,0.000823982,0.000823594,0.000746005,0,0,0,0.000547545,0.000547605,0.000547106,0,0,0,0.000707319,0.000707161,0.000707135,0,0,0,0.000588378,0.000585541,0.000585037,0,0,0,0.000589458,0.000618735,0.000618047,0,0,0,0.000587544,0.000642081,0.000808092,0.004747518,0,0,0.000938799,0.000932981,0.000929019,0,0,0,0,0.000852478,0.000874145,0.000860513,0,0,0,0.001197142,0.001202084,0.001254483,0.002048226,0.002119162,0.001971307,0.001499095,0.001456588,0.002066041,0.002634178,0.002749141,0.002440127,0.002204197,0.001825769,0.001691429,0.001636279,0.001882386,0.001657162,0.001555613,0.00092899,0.001076233,0.000798583,0.00146936,0.001574103,0.001773948,0.000945776,0.000770385,0.002543709,0.002924441,0.003809678,0.002195222,0.001572235,0.00067904,0.002063102,0.00255797,0.003284574,0.002394636,0.001928791,0.00153098,0.002837886,0.003074585,0.003478395,0.002125296,0.001482845,0.000964497,0.000685558,0.00138373,0.001581949,0.001988749,0.001056524,0.001375845,0.002034422,0.002524513,0.002912734,0.002796577,0.002320611,0.002070973,0.002530561,0.002817293,0.002901786,0.002511175,0.002698089,0.002545,0.002940399,0.003311151,0.003674607,0.003525553,0.002574003,0.002126595,0.00229078,0.002954813,0.00282359,0.002916311,0.002556686,0.002167459,0.002118589,0.002487911,0.002927825,0.002990067,0.002065352,0.001681763,0.001895614,0.00242955,0.00249438,0.002709537,0.002555867,0.00257547,0.002332436,0.002394615,0.002385149,0.002410058,0.002316208,0.002311275,0.002292118,0.002418019,0.002378391,0.002480401,0.00232779,0.002281854,0.002083676,0.002048949,0.002189653,0.002304444,0.002332793,0.001975917,0.001890597,0.002079429,0.0023043,0.002389469,0.002404806,0.002124167,0.002177398,0.002204555,0.002296635,0.002340987,0.002377089,0.002344105,0.002209121,0.002163691,0.002230792,0.002252198,0.002302416,0.002031123,0.002175867,0.00223105,0.002400863,0.002412147,0.002443865,0.002218685,0.002063657,0.002010462,0.002324986,0.002372044,0.002543101,0.002260921,0.002284121,0.002282175,0.00246267,0.002470539,0.002497961,0.002349739,0.002219029,0.00208098,0.002243299,0.002320172,0.002389073,0.002220857,0.001843811,0.002077884,0.002152941,0.00253499,0.002589718,0.002781844,0.002560097,0.00240008,0.002220803,0.002268082,0.002300316,0.002408288,0.002199852,0.00230214,0.002318692,0.002886104,0.002948189,0.003140685,0.002081773,0.002189163,0.002370422,0.002750207,0.003011338,0.00310381,0.003096851,0.002516281,0.002372951,0.002638529,0.002844758,0.002989347,0.00286978,0.002351866,0.002306415,0.002767232,0.002954723,0.003146279,0.00271849,0.002433554,0.002238994,0.002404681,0.002578885,0.002792977,0.002851241,0.002323517,0.002180785,0.002400237,0.002532716,0.002677493,0.002714672,0.002400875,0.002237804,0.002204183,0.002287808,0.002418829,0.002512126,0.002387244,0.002123839,0.002160509,0.002412775,0.00250114,0.002645726,0.002264284,0.002099897,0.002047674,0.002388981,0.002463296,0.002566401,0.002112204,0.001917532,0.002009879,0.002117755,0.002173933,0.002209391,0.002042161,0.002115825,0.002093151,0.00233817,0.002358099,0.002398758,0.001811043,0.001792589,0.002106717,0.00216303,0.002230374,0.002097773,0.002044544,0.001863999,0.001932682,0.002092825,0.002200614,0.002321279,0.002419397,0.002197853,0.001915608,0.001995965,0.002048515,0.002123541,0.001952013,0.001759176,0.001643701,0.001673593,0.001385852,0.001829512,0,0,0,0,0 +IMPORTANT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000348454,0.000551826,0.000858001,0.000875657,0.00107069,0.00119172,0.00114227,0.001045748,0.000877111,0.001220334,0.001253068,0.001238115,0.001144066,0.001131833,0.00124257,0.001814534,0.002531523,0.003117002,0.003032105,0.00315282,0.003110544,0.003186798,0.003036453,0.002982405,0.00299689,0.002994541,0.002780076,0.00272801,0.002569792,0.002789864,0.002706513,0.002907316,0.002752704,0.002860934,0.002638104,0.002726957,0.002807645,0.002905604,0.002807733,0.002708169,0.002658295,0.00280784,0.002790658,0.002799445,0.002753595,0.002788898,0.002670009,0.002691513,0.002540805,0.00254362,0.002413528,0.002748926,0.002668159,0.002813242,0.002687847,0.002686608,0.002595743,0.002441557,0.002532019,0.00261346,0.002687698,0.002525966,0.002467494,0.002177068,0.002581564,0.002610138,0.002522257,0.002476163,0.002394738,0.002549304,0.002625277,0.002580468,0.002714233,0.00251027,0.002476684,0.002124982,0.002269846,0.002449018,0.002667632,0.002583404,0.002518173,0.002316181,0.002458415,0.002527267,0.00266391,0.002576047,0.002586935,0.002420902,0.002637092,0.002670782,0.002773018,0.002491348,0.002456161,0.002178144,0.002165208,0.002163594,0.002437871,0.002375063,0.002425363,0.002215486,0.002354386,0.002230681,0.002450587,0.002378257,0.002355501,0.002222511,0.002095733,0.002296838,0.002503722,0.002423004,0.00236387,0.002178731,0.002208352,0.002426135,0.002549818,0.002408768,0.002344501,0.002252428,0.002211093,0.00232269,0.002430446,0.002364007,0.002271209,0.002160331,0.002200214,0.002417497,0.002457319,0.002453394,0.002364594,0.002283198,0.002048682,0.002200802,0.002434711,0.002442671,0.002400186,0.002256825,0.002173986,0.002221286,0.002463054,0.002500117,0.002412116,0.002403889,0.002212212,0.002285525,0.002218544,0.002307741,0.002151956,0.002160005,0.002015333,0.002166484,0.002165259,0.002322116,0.00222069,0.002224858,0.002090775,0.002122893,0.002229895,0.00228609,0.002126037,0.002071925,0.002034541,0.002074111,0.002161565,0.00226745,0.002123872,0.00211735,0.00203585,0.00213833,0.002256565,0.002238233,0.0020708,0.001981832,0.00188289,0.001932888,0.002002449,0.002079937,0.002044603,0.00197432,0.001910156,0.001837778,0.00207172,0.002310141,0.002176962,0.002174134,0.001543651,0,0,0,0,0 +MODEL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000572115,0.000572508,0.000571559,0,0,0,0,0,0,0,0,0,0.000470102,0.000470057,0.000469925,0,0,0,0.000667033,0.000666719,0.000667478,0,0,0,0.000547545,0.000547605,0.000547106,0,0,0,0.000595637,0.000595504,0.000595482,0,0,0,0.000692209,0.000688871,0.000688279,0,0,0,0.000651506,0.000649672,0.000648949,0,0,0,0.000895305,0.000949164,0.000975284,0,0,0,0.000737628,0.000710843,0.000752063,0,0,0,0,0.001245929,0.001245657,0.001217311,0,0,0,0.001428847,0.001354729,0.001378165,0.001303417,0.001711631,0.001971307,0.001447402,0.001144462,0.001123636,0.001042696,0.001268834,0.001355626,0.00123435,0.00121718,0.00096,0.001090852,0.001289783,0.001559682,0.001451906,0.00092899,0.000807175,0.000972188,0.000979573,0.000958149,0.000633553,0.000577974,0.000851478,0.001003153,0.001080772,0.001175326,0.001429447,0.001630466,0.000995926,0.00096041,0.001096273,0.001298552,0.001245211,0.001198978,0.001215778,0.001525364,0.001658203,0.001816495,0.001497368,0.000971519,0.000780784,0.001142596,0.001310902,0.001498689,0.00119325,0.001056524,0.00095711,0.001342719,0.001500073,0.001669968,0.001677946,0.001526718,0.001399306,0.001557269,0.001530382,0.001488095,0.001054693,0.001376576,0.001203091,0.001321528,0.001233566,0.001583882,0.001747448,0.002277002,0.002220415,0.00224098,0.002056941,0.002515562,0.002621734,0.003004572,0.002058175,0.00204108,0.002219263,0.00254647,0.002652206,0.002300433,0.002080076,0.002034908,0.002161747,0.00227171,0.002318713,0.002269464,0.002035134,0.002041647,0.002147606,0.002152816,0.002228495,0.002146959,0.002029178,0.001893944,0.002187928,0.002257085,0.002356381,0.002076536,0.001885459,0.00176686,0.002016967,0.002191374,0.002335116,0.002427781,0.002223875,0.002019502,0.002095707,0.002375129,0.002489764,0.00248053,0.002202152,0.002197802,0.002269754,0.002563786,0.002660587,0.002664312,0.00229784,0.002042719,0.002152607,0.002144526,0.002186476,0.002216025,0.002097775,0.002212038,0.002135943,0.002147124,0.002168052,0.002229521,0.002221286,0.002079593,0.002179976,0.002387754,0.002558924,0.002584948,0.002368584,0.001985204,0.001927065,0.002372931,0.002482579,0.002602929,0.002435556,0.002176681,0.002096641,0.002236388,0.002441306,0.002594783,0.002581873,0.002415931,0.002333496,0.002490599,0.002687488,0.002756707,0.002686124,0.002566513,0.002344661,0.002547655,0.002536431,0.002645492,0.002480619,0.0020122,0.002017457,0.002263076,0.002552363,0.002666755,0.002568091,0.001955104,0.002087253,0.002297167,0.002367139,0.002334558,0.002244182,0.002193793,0.00222369,0.002392022,0.002389846,0.002413734,0.002392332,0.002357012,0.002281405,0.002210709,0.002212076,0.002208072,0.002257239,0.002444166,0.002458999,0.002391907,0.00233228,0.002395078,0.002469394,0.002473166,0.002179547,0.002145191,0.002189245,0.002275085,0.002232172,0.002315754,0.002277615,0.002215513,0.002202555,0.002290086,0.002321439,0.002432376,0.002199401,0.00230467,0.002229429,0.002376508,0.002370752,0.00230943,0.00195629,0.001991257,0.002062696,0.002179727,0.002251294,0.002334428,0.001961164,0.001931643,0.002073868,0.002245446,0.002253203,0.002224389,0.001759598,0.001805504,0.001888918,0.002121857,0.002163931,0.002150971,0.002000191,0.002157207,0.002323049,0.002329012,0.002296583,0.002230104,0.001849937,0.001846156,0.001936397,0.002068115,0.002106576,0.002060093,0.00166991,0.001747885,0.001954342,0.00214248,0.002181222,0.002192707,0.001931972,0.001721224,0.00179211,0.001923127,0.002415705,0.002687096,0,0,0,0,0 +MODELS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001110582,0.001110054,0.001109614,0,0,0,0,0.001110124,0.001110124,0.001110535,0,0,0,0.000686538,0.00068701,0.000685871,0,0,0,0.000619726,0.000619785,0.000619608,0,0,0,0.000517112,0.000517063,0.000516917,0,0,0,0.000667033,0.000666719,0.000667478,0,0,0,0.000620551,0.000620619,0.000620053,0,0,0,0.000893455,0.000893256,0.000893223,0,0,0,0.000899872,0.000929976,0.000929176,0,0,0,0.00052741,0.000525925,0.00052534,0,0,0,0.001035197,0.001032914,0.001031014,0,0,0,0.000961152,0.000955195,0.000973258,0,0,0,0,0.001136637,0.001158242,0.001175335,0,0,0,0.001100599,0.001087599,0.001077796,0,0.001059581,0.001423721,0.00175756,0.001768715,0.001522346,0.001371968,0.001638911,0.001988251,0.001939693,0.001130238,0.001051429,0.001012934,0.001289783,0.001364722,0.001503759,0.001277362,0.001300448,0.001145794,0.000950762,0.000992369,0.001182632,0.001261034,0.001256944,0.001361422,0.001430433,0.001377969,0.001174188,0.000989926,0.000995926,0.001173834,0.001494917,0.001795058,0.00158046,0.001355367,0.000990634,0.001454416,0.001589111,0.001855144,0.001738878,0.00138058,0.00119414,0.001218769,0.001456558,0.001498689,0.001250071,0.001254622,0.001615122,0.001790292,0.001756183,0.001631131,0.001566083,0.001526718,0.00151125,0.0015962,0.001773851,0.001971726,0.001908493,0.001762018,0.001388182,0.001387604,0.001785424,0.001773948,0.002084675,0.002013002,0.002064048,0.001643385,0.002432415,0.002541231,0.002886853,0.002295418,0.001784966,0.001408087,0.001611886,0.001808363,0.002297453,0.001981395,0.001696516,0.001629138,0.002062357,0.002056146,0.002174449,0.001761917,0.002027246,0.002056952,0.002392328,0.002293495,0.002278239,0.001874279,0.001775931,0.001768205,0.002118078,0.00217754,0.002296756,0.001984164,0.001775158,0.001565803,0.002036156,0.002060546,0.002163356,0.001908141,0.002014661,0.001942159,0.002059083,0.002343649,0.002451054,0.002381859,0.001801086,0.001795552,0.001923383,0.002101299,0.002169655,0.002066288,0.001977839,0.001847628,0.002134872,0.002099123,0.002128768,0.001995025,0.00182766,0.001641639,0.002046781,0.001934756,0.002120056,0.001858215,0.001773907,0.001659956,0.002147167,0.002271184,0.002350686,0.002170291,0.001949468,0.001689535,0.001860778,0.002427363,0.002438032,0.002493705,0.001928829,0.001758849,0.001904792,0.002493476,0.002592722,0.002655786,0.002257364,0.001968431,0.001912972,0.002250055,0.002303896,0.002358717,0.002065943,0.001912052,0.001884255,0.002428257,0.002612642,0.002791033,0.00252336,0.001931366,0.001958622,0.002358419,0.002555207,0.002672475,0.002454196,0.00192206,0.00183248,0,0.00228527,0.002415022,0.00232244,0.002159586,0,0,0.002563095,0.002599666,0.002486316,0.002007985,0.001969092,0.002093734,0.002222053,0.002253301,0.002260125,0.002196655,0.002046439,0.002330991,0.002292419,0.002415057,0.002319011,0.002242632,0.002027578,0.002082218,0.002387152,0.002397285,0.002424217,0.002427316,0.002393729,0.002367837,0.002457322,0.002513324,0.002535884,0.002322321,0.002141043,0.002268504,0.002419211,0.002549273,0.002576779,0.002367959,0.00190956,0.001932649,0.002279575,0.002421919,0.002543268,0.002499223,0.002046124,0.001785829,0.002133232,0.002354461,0.002414627,0.002305511,0.001708222,0.001906082,0.002063034,0.00232354,0.002347345,0.002310689,0.002215429,0.002389634,0.002555557,0.002492072,0.002437695,0.00230051,0.00182649,0.001781643,0.002041343,0.002221209,0.002327277,0.002249054,0.001706727,0.001821386,0.00200951,0.002380867,0.002405618,0.002403147,0.001929968,0.001763641,0.001996522,0.002164055,0.002784417,0.003830541,0,0,0,0,0 +DESIGN,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000719011,0.000719166,0.000719321,0,0,0,0.001018569,0.001018809,0.001017852,0,0,0,0.000793273,0.000792896,0.000792581,0,0,0,0,0,0,0,0,0,0,0.000629327,0.000629759,0.000628715,0,0,0,0.000667398,0.000667461,0.00066727,0,0,0,0.000705152,0.000705086,0.000704887,0,0,0,0.000941693,0.00094125,0.000942322,0,0,0,0.001131593,0.001131717,0.001130685,0,0,0,0.001228501,0.001228227,0.001265399,0,0,0,0.000969093,0.00106775,0.001066832,0,0,0,0.00120994,0.001175597,0.001174289,0,0,0,0.000755414,0.000725831,0.000752362,0,0,0.004280822,0.001430551,0.001377257,0.001349289,0,0,0,0,0.001704955,0.001704583,0.001616085,0,0.002069734,0.002616659,0.001930875,0.001908069,0.001819884,0.001862024,0.001548618,0.001752272,0.001344017,0.00156063,0.001449853,0.001481725,0.001215966,0.001355626,0.001322518,0.001999652,0.001691429,0.001558361,0.001359501,0.001121022,0.001140783,0.0012193,0.001390135,0.001736051,0.001382927,0,0.000844737,0.00136612,0.00154077,0.001791344,0.00184367,0.001823782,0.001633653,0,0.001674966,0.001742966,0.001827121,0.001756865,0.001772031,0.001824532,0.00189121,0.001418943,0.001485473,0.001507305,0.001738878,0.001431712,0.000964497,0.001561548,0.001966354,0.002331293,0,0.001782884,0.001435664,0.00183098,0.00204888,0.002446697,0.002405056,0.00189313,0.001119445,0.001751927,0.001808633,0.001822917,0.001406258,0.00126645,0.001480727,0.001552795,0.00201266,0.002185758,0.002452558,0.002706003,0.002814611,0.002863475,0.003999608,0.005814028,0.006245029,0.006121116,0,0.003539594,0.003632583,0.004637774,0.004915873,0.005843436,0.004676482,0.003355176,0.002545506,0.002529912,0.002499698,0.002450732,0.002181064,0.002087561,0.00194634,0.002191183,0.002415032,0.002570082,0.001891335,0.001713194,0.001869497,0.002209358,0.002146501,0.002161519,0.001592472,0.00176686,0.00181655,0.002093253,0.002159266,0.002265743,0.001677592,0.001982263,0.002036701,0.002394016,0.00234724,0.002505771,0.002172444,0.001920891,0.001856146,0.002312434,0.002467838,0.002563569,0.00198555,0.001936567,0.001988556,0.002106691,0.002189682,0.002137671,0.001841692,0.001566513,0.00169013,0.0021816,0.002595903,0.002855677,0.002634851,0.00205569,0.002088839,0.002054698,0.002259916,0.002219745,0.002630051,0.001981954,0.002062007,0.002090474,0.00229476,0.002275258,0.002384475,0.001871776,0.002122091,0.002000033,0.002409857,0.002356443,0.002525084,0.001968431,0.002119111,0.002238102,0.002303896,0.002259915,0.002167644,0.001456496,0.001611421,0.001570084,0.002194018,0.002278421,0.002531579,0.001746601,0.001920664,0.001741337,0.002194918,0.002230876,0.002586813,0.001905538,0.001730571,0.001604699,0.001913319,0.002018214,0.002208064,0.001897334,0.001688667,0.001633277,0.0019389,0.002070605,0.002212907,0.00215449,0.001822458,0.001801887,0.002246283,0.002360071,0.002502591,0.002112089,0.001826529,0.001688259,0.001862896,0.002017876,0.00229412,0.002205747,0.002121559,0.001828957,0.002069846,0.002044697,0.00216259,0.002183908,0.002150783,0.002017367,0.002170811,0.002346275,0.002436622,0.002384526,0.002004264,0.001964208,0.002152518,0.002435195,0.002478808,0.002533627,0.00189894,0.001985539,0.002124661,0.002380585,0.002420292,0.002383761,0.001805403,0.001707434,0.002184886,0.002328401,0.002419912,0.002303466,0.001818312,0.00176748,0.001807978,0.002147981,0.002185438,0.002274865,0.001795824,0.001753367,0.001977321,0.002263554,0.002348748,0.002260641,0.001713947,0.001891452,0.002270739,0.002539752,0.002628582,0.002543833,0.001798769,0.001842898,0.0018264,0.002361652,0.002561247,0.002832859,0.002759674,0.002118601,0.001817311,0.00200487,0.002123277,0.002687096,0,0,0,0,0 +SUPPORT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000862813,0.000862999,0.000863185,0,0,0,0.00156703,0.001567398,0.001565925,0,0,0,0.000951928,0.001030764,0.001030356,0,0,0,0,0.001480166,0.001480166,0.001406678,0,0,0,0.001487499,0.001488521,0.00154321,0,0,0,0.001620823,0.001620977,0,0,0,0,0,0,0.001550752,0,0,0,0.001177117,0.001176563,0.001177903,0,0,0,0.001533126,0.001533294,0.001531896,0.02245509,0.023391813,0.022630835,0,0.003424148,0,0,0,0,0.004049424,0.004064341,0,0,0,0,0.002978314,0.003093677,0.003090235,0,0,0,0.00293772,0.002903325,0.003009446,0.004315926,0.006741573,0.005993151,0.003486969,0.003443144,0.003539118,0.005348837,0.004131333,0.002985711,0.004129129,0.004174955,0.004261457,0.004071695,0,0.002228944,0.002834714,0.003919676,0.004006945,0.00492959,0.008379108,0.00692803,0.001423721,0.003256655,0.003797534,0.007140527,0.008012293,0.007613006,0.002530502,0.003526715,0.003216832,0.007542857,0.006077606,0.005333426,0.002729444,0.004718693,0.006096499,0.010762332,0.007985834,0.007750151,0.003901037,0.005575266,0.004676335,0.008636419,0.00655632,0.006897867,0.003120694,0.005258321,0.004017935,0.003847895,0.006758439,0.006444755,0.007523966,0.004454023,0.006203409,0.005043228,0.008229869,0.007358275,0.008154905,0.006858909,0.006851767,0.006108483,0.007807739,0.007756172,0.009283544,0.007443605,0.008848389,0,0.010009358,0.009073613,0.008660531,0.002964372,0.003114504,0.003638195,0.007981001,0.007164968,0.007738095,0.006026819,0.006387313,0.00509,0.006343333,0.006200292,0.006398885,0.00294307,0.003036003,0.002595697,0.005428152,0.004146533,0.003940191,0.002312428,0.002426052,0.002294957,0.003836714,0.003761067,0.003948874,0.002483276,0.003778084,0.003702829,0.003809397,0.0027222,0.002776271,0.002476092,0.002530489,0.002622798,0.002708932,0.002836029,0.002687823,0.002586646,0.002388295,0.002253574,0.002779357,0.002666601,0.002716456,0.002320606,0.00250884,0.002426624,0.002577178,0.00254786,0.002781823,0.002731799,0.002821702,0.002398221,0.002898916,0.002972648,0.003026754,0.002781849,0.002503476,0.002146449,0.00255633,0.002856549,0.00275194,0.002622696,0.002462827,0,0.002785787,0.002799941,0.002728709,0.002649739,0.002483234,0.002374905,0.002378985,0.002726399,0.002566344,0,0.00245568,0.002614042,0.002477982,0.002672111,0.002602959,0.002586956,0,0.002849222,0.002381594,0.002504711,0.002066936,0,0.002241214,0.002729784,0.00299823,0,0.002081583,0.001913676,0.001953535,0.002129589,0.002336627,0,0.002197763,0,0,0.002205533,0.002123789,0.00213151,0.001810372,0.002036229,0.002029842,0.002342532,0,0.002408422,0.002237916,0.002142771,0.002125625,0.002159318,0.002095541,0.002100464,0.001993089,0.002056844,0.002104189,0.002181577,0.002059246,0.002073215,0.001867575,0.00204915,0.00204018,0.002155235,0.002040302,0.002150005,0.001896412,0.002020372,0.001957458,0.002122536,0.002124465,0.002162756,0.002067433,0.002028035,0.002066624,0.002166554,0.002456567,0.002283525,0.002117812,0.001889113,0.001895256,0.001892615,0.002070656,0.002199015,0.002199413,0.002022672,0.002032679,0.001976829,0.002062336,0.001971437,0.001977926,0.001983713,0.002048122,0.001964461,0.002129874,0.001928677,0.001946944,0.001869289,0.001924618,0.001932159,0.00202583,0.002190084,0.002195049,0.001819453,0.00189017,0.00186646,0.002101682,0.002390777,0.002291223,0.002069622,0.001984963,0.001961996,0.001998716,0.002008888,0.002032278,0.002028877,0.001930421,0.001903342,0.001874678,0.002194602,0.002105578,0.002051559,0.001990762,0.001984391,0.001966032,0.001967075,0.002088499,0.001875699,0.001921506,0.001901934,0.00204113,0.002120359,0.002257014,0.002223336,0.002331845,0.002008849,0.002801441,0,0,0,0,0 +METHODS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001096921,0.001097179,0.001096148,0,0,0,0.001031255,0.001030764,0.001030356,0,0,0,0,0.001554174,0.001554174,0.001554749,0,0,0,0.001087019,0.001087766,0.001085963,0,0,0,0.001001096,0.001001192,0.001000906,0,0,0,0.001598345,0.001598195,0.001597744,0,0,0,0.001098642,0.001098125,0.001099376,0,0,0,0.001533126,0.001533294,0.001531896,0,0,0,0.00137741,0.001377103,0.001377052,0,0,0,0.00152286,0.001515517,0.001514213,0,0,0,0.001489157,0.001515901,0.001514215,0,0,0,0.001342958,0.001367913,0.001421127,0,0,0,0.001408199,0.001377257,0.001349289,0,0,0,0,0.001573805,0.001573461,0.001553121,0.001912412,0.001910524,0.002398604,0.001583317,0.001564617,0.001484178,0.001117214,0.001467112,0.001752272,0.001602481,0.001456588,0.001304868,0.001207332,0.001427439,0.001626751,0.001498854,0.000956355,0.001371429,0.001480443,0,0.001364722,0.001451906,0.001277362,0.001479821,0.001284678,0.001210061,0.001129248,0.000971448,0.001261034,0.00117585,0.001683864,0.001652945,0.001823782,0.001633653,0.001630466,0.001810774,0.001707395,0.001827121,0.001871443,0.001963602,0.001511755,0.000990634,0.001241575,0.001243652,0.001430007,0.001207554,0.001022652,0.000918569,0.001104509,0.001492972,0.0017901,0.001420535,0.001254622,0.001256206,0.001708915,0.001500073,0.001669968,0.001342357,0.001832061,0.001343334,0.002102313,0.001808633,0.001785714,0.00100447,0.001211387,0.001619546,0.001982292,0.002142509,0.001805626,0.001471535,0.001056001,0.001344759,0.001842584,0.002497715,0.002592569,0.002592276,0.002034151,0.001912464,0.002118589,0.002499591,0.002669488,0.002685992,0.002518723,0.002006314,0.002174203,0.002125856,0.002120105,0.002059038,0.00190693,0.001833987,0.001879417,0.002220794,0.002165605,0.002198649,0.001764581,0.001750286,0.001747249,0.002050283,0.002096007,0.002151271,0.001825283,0.001757924,0.00184911,0.002127836,0,0.0020877,0.001905347,0.001832566,0.001821848,0.002095707,0.002225601,0.002261022,0.002051428,0.001830794,0.001818871,0.00215973,0.002438828,0.002546914,0.002462827,0.002132056,0.001979601,0.002132655,0.002194469,0.002223344,0.002037216,0.001610165,0.001683375,0.00235786,0.002405,0.002406661,0.002003362,0.001719286,0.001755569,0.00240417,0.002469737,0.002510869,0.002193116,0.001930242,0.001884481,0.002095151,0.002400883,0.002303188,0.002258236,0.001885921,0.00185766,0.001916538,0.002360786,0.00235395,0.002400422,0.001965306,0.001707862,0.001902665,0.002380038,0.002434106,0.002425513,0.001990165,0.001758061,0.001767022,0.002223788,0.002316385,0.002454873,0.002056497,0.00162535,0.001679632,0.002120061,0.002345671,0.002457396,0.002310658,0.001847711,0.001924953,0.002196268,0.002234733,0.002273935,0.002134622,0.00192926,0.001816153,0.002011968,0.002175978,0.002161036,0.002019598,0.001546924,0.001668206,0.002126817,0.002278352,0.002286667,0.002169682,0.001860454,0.001681134,0.00198041,0.002124027,0.00223205,0.002159294,0.002001033,0.001893606,0.002239651,0.002333177,0.002374713,0.002243305,0.001910074,0.001730988,0.002123871,0.002274997,0.002296161,0.002078901,0.001859771,0.001646816,0.002041529,0.002401231,0.002489926,0.00254004,0.002188403,0.001739633,0.001721087,0.002184749,0.002309542,0.002395395,0.002090908,0.001694483,0.001627472,0.002210327,0.002191156,0.002274342,0.00204442,0.001651343,0.00173191,0.001842801,0.002130216,0.002143618,0.002138283,0.001565367,0.001711239,0.002153218,0.002303881,0.002361454,0.00221229,0.001917932,0.002002633,0.002297672,0.002425872,0.002466735,0.002344794,0.001875033,0.001991693,0.002250135,0.002267978,0.002228876,0.002113975,0.001707511,0.001685505,0.00179211,0.001970452,0.002263134,0.002572752,0,0,0,0,0 +THEORY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.007271336,0.007282484,0.007296467,0,0,0,0.004057428,0.00406377,0.004071406,0,0,0,0.003914297,0.003920759,0.003919142,0,0,0,0.003339192,0.003342128,0.003343893,0,0,0,0.002516537,0.00251708,0.002517623,0,0,0,0.002742302,0.002742947,0.00274037,0,0,0,0.003569729,0.00356803,0.003566616,0,0,0,0,0.005402605,0.005402605,0.005404605,0,0,0,0.00417644,0.00417931,0.004172382,0,0,0,0.005053153,0.005053635,0.00505219,0,0,0,0.006722452,0.00672182,0.006719925,0,0,0,0.006317194,0.006314221,0.00632141,0,0,0,0.005730973,0.0057316,0.005726374,0,0,0,0.005733006,0.005731725,0.005731512,0,0,0,0.00605683,0.006027624,0.006056852,0,0,0,0.006390966,0.006372974,0.006396786,0.018612521,0.017287234,0.016286645,0.00637905,0.006337065,0.006241815,0.012947777,0.013033708,0.012414384,0.00690688,0.00684186,0.006790683,0.006046512,0.00608828,0.006611218,0,0.007060264,0.007102428,0.007303866,0.007649646,0.009074988,0.006759703,0.007047693,0.006697323,0.006784812,0.00539987,0.006031461,0.006023437,0.005582838,0.00509806,0.005255718,0.006091538,0.006608512,0.006326254,0.003703051,0.002869066,0.004754286,0.007285336,0.007006658,0.00677487,0.003629764,0.002786971,0.00426009,0.005833131,0.005445274,0.004790747,0.002914344,0.002994956,0.004419576,0.007237031,0.006484631,0.006038745,0.002603635,0.003028009,0.003395201,0.006687298,0.006411534,0.006645533,0.003017241,0.002762863,0.002611671,0.006030507,0.00597644,0.006531653,0.002511713,0.002607762,0.00266385,0.006093845,0.006117544,0.006161276,0.002556963,0.003037507,0.003589161,0.006510152,0,0.006330343,0.003188098,0.002748092,0.00274264,0.006190142,0.006330215,0.00625,0.003063633,0.002643026,0.003054,0.006045989,0.006492453,0.006082108,0.004506576,0.002772003,0.003064799,0.003934165,0.004211832,0.003747674,0.003372905,0.002649995,0.002276743,0.002519054,0.003445698,0.003309181,0.003091425,0.001125029,0.001283451,0.003258276,0.004099866,0.00387304,0.003352166,0.001910556,0.001830043,0.00244263,0.003403235,0.003361377,0.003158693,0.001833534,0.001631677,0.002250205,0.00327881,0.003291168,0.003090962,0.001773554,0.001768264,0.001797323,0.003023319,0.002821416,0.002985349,0.001863441,0.001925551,0.001733048,0.002885157,0.003015737,0.003167191,0.002255653,0.00171196,0.001859679,0.003156059,0.002968821,0.003057615,0.002038424,0.001557596,0.001787379,0.002924087,0.002560719,0.002499058,0.001579144,0.00123481,0.001252097,0.002680827,0,0.002493054,0.001645559,0.001433172,0.0015006,0.002797878,0.002476142,0.002532227,0.001554012,0.001376547,0.001361375,0.001848941,0.00267157,0.00236459,0.002194404,0.00100528,0.001129277,0.001577864,0.002745035,0.002527497,0.002505405,0.0011804,0.001135742,0.001884113,0.003221194,0.002702738,0.002492308,0.001096784,0,0.002031329,0.002998382,0.002608348,0.002454873,0.001394012,0.000941144,0.001419622,0.002775545,0.002506853,0.002532903,0.001338653,0.001010596,0.001368227,0.00245197,0.002363096,0.002254094,0.00159886,0.001151627,0.001513112,0.002848359,0.002311925,0.002206673,0.001286946,0.001008301,0.001272102,0.002554544,0.002207087,0.002126511,0.001384555,0.000926102,0.001132266,0.002481417,0.002525078,0.002474195,0.001800449,0.001283612,0.001385712,0.002650345,0.002471385,0.002325677,0.001648616,0.001228871,0.001336201,0.002471863,0.002313253,0.002268825,0.001521718,0.001181895,0.001174473,0.002552847,0.002597006,0.00222946,0.002151758,0.001447362,0.001287201,0.001756824,0.002328396,0.002133872,0.001997043,0.001485259,0.001246082,0.001605521,0.002061533,0.001904937,0.001852047,0.001493606,0.001051355,0.001517261,0.002140209,0.001946298,0.001892095,0.001531503,0.001056623,0.001359694,0.001934864,0.001991787,0.001964869,0.001689755,0.001275495,0.001758309,0.002220588,0.001908574,0.001823823,0.001360518,0.001133435,0.001190355,0.001616294,0.00185005,0.001846439,0.001737977,0.001378835,0,0.00228214,0.002671726,0.004729695,0.003487508,0,0,0,0,0 +DEVELOP,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000190807,0.000194357,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00036342,0.000486934,0.000601875,0.00061314,0.000924001,0.00081311,0,0.001387619,0.001835333,0.002150411,0.002202109,0.002039961,0.001898979,0.001868853,0.002005191,0.002179201,0.002501931,0.002286608,0.001762376,0.001535034,0.001594224,0.001544934,0.001526269,0.001329147,0.001438642,0.001566678,0.001636993,0.001683807,0.001673687,0.001448955,0.001372651,0.001368225,0.001469591,0.001555021,0.001751385,0.001675198,0.001602359,0.001503131,0.001640518,0.00170124,0.001882997,0.001607854,0.001535394,0.001703016,0.00202728,0.002130816,0.002150098,0.001890212,0.001903402,0.001752234,0.001809731,0.001833581,0.00197412,0.001877598,0.001738607,0.001649371,0.001822166,0.001941218,0.002017125,0.001960963,0.001780761,0.001765423,0.001840983,0.001959612,0.002069184,0.002151058,0.00195742,0.001930263,0.001931724,0.002038329,0.002010515,0.002153258,0.00189098,0.002026496,0.001940419,0.001937182,0.001917799,0.0020739,0.001956472,0.001900876,0.001758149,0.002017338,0.002050006,0.002360801,0.00195427,0.00187999,0.001882516,0.002042303,0.002116583,0.002175621,0.001870346,0.001837362,0.001823804,0.002103853,0.002177959,0.00232445,0.0020786,0.00202315,0.001848598,0.002177852,0.002211428,0.002426113,0.001933075,0.001964585,0.001876987,0.002187228,0.002292673,0.002387454,0.002159586,0.00190393,0.001975189,0.002244781,0.002354574,0.00245214,0.002382866,0.002106205,0.002054742,0.002146512,0.002239213,0.002289952,0.002293597,0.002073701,0.002002787,0.00210613,0.002238443,0.00233042,0.002240788,0.001905604,0.001849492,0.002035499,0.002135763,0.002248871,0.002273496,0.002090047,0.002026036,0.002187904,0.002261992,0.002376689,0.002292016,0.002157456,0.002017834,0.002056629,0.002216271,0.002268459,0.002419544,0.002194189,0.002095609,0.002059879,0.002261104,0.002303351,0.002338626,0.002031964,0.00200847,0.002216495,0.002371399,0.002428559,0.002428217,0.002122893,0.001977223,0.002039504,0.002285398,0.00236945,0.002418163,0.00212629,0.002051163,0.002126935,0.002381612,0.002450402,0.002468468,0.002119573,0.002013614,0.002112855,0.002358188,0.002459698,0.00255727,0.002366802,0.002205024,0.002163275,0.002452323,0.002560041,0.002659944,0.002505151,0.002245852,0.002161732,0.00222859,0.002441133,0.00177234,0,0,0,0,0 +PROPOSED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000594001,0.000562922,0.000473096,0.000424448,0.000462042,0.000441865,0.00057852,0.00060106,0.000607157,0.000584017,0.000861125,0.001165619,0.002401182,0.002788186,0.002386172,0.001996096,0.002001663,0.001943627,0.00201569,0.001822155,0.001662091,0.001456896,0.00146221,0.00149727,0.001842937,0.001833633,0.001718434,0.001470945,0.001497432,0.001540711,0.00172552,0.001723454,0.001638915,0.001515924,0.001637075,0.001703285,0.001947254,0.001805446,0.00162706,0.001564659,0.001791184,0.001866883,0.001943579,0.001730528,0.001582767,0.001387525,0.001562689,0.001621063,0.001858374,0.001889164,0.00175582,0.001720312,0.001655689,0.001745654,0.001770008,0.001894311,0.001861451,0.001842697,0.002031287,0.002008979,0.002047244,0.001859742,0.001768849,0.001997703,0.001915071,0.001951563,0.001837424,0.00201868,0.002163904,0.002095151,0.002013976,0.001972097,0.00193482,0.001902267,0.001801196,0.001934156,0.001787175,0.001810014,0.001737894,0.001788854,0.001665378,0.00164293,0.001679324,0.00175021,0.001803479,0.001902422,0.001899219,0.001941806,0.001843207,0.001918156,0.001864982,0.001872382,0.001642671,0.001668245,0.001790332,0.001972108,0.00204211,0.002057905,0.00172655,0.001679616,0.001836904,0.001898158,0.001990657,0.001980515,0.0019247,0.001765994,0.001898906,0.001996097,0.002081592,0.002046298,0.001982131,0.002016701,0.002358404,0.002564839,0.002575837,0.002565131,0.00231216,0.002346317,0.002289965,0.002398173,0.002417455,0.002495323,0.002469477,0.002447491,0.002528506,0.00254744,0.002486015,0.002399167,0.002239689,0.00225082,0.00241242,0.002536276,0.002485229,0.002459096,0.002186746,0.002310648,0.002449336,0.002494124,0.002371892,0.002359947,0.002234036,0.002245167,0.002215685,0.00228333,0.002270145,0.002301088,0.002196923,0.002081524,0.001892446,0.00234139,0.00230712,0.00238484,0.002294604,0.002321054,0.002299809,0.002269149,0.002209113,0.002192608,0.002173361,0.002311091,0.002228388,0.002224992,0.002210954,0.00225445,0.002179207,0.002075024,0.001943611,0.002270739,0.002215837,0.002280578,0.002151634,0.002088045,0.002027547,0.002077589,0.002141879,0.002172777,0.002186084,0.002228582,0.002187808,0.002038525,0.002039289,0.002135991,0.001314962,0,0,0,0,0 +RESULTS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000766424,0.001452001,0.001501126,0.00114539,0.001305995,0.001706988,0.001900021,0.001940842,0.001347832,0.001395169,0.001238115,0.001340895,0.001317657,0.001578399,0.001578497,0.001962233,0.002316355,0.002394889,0.00243937,0.002283966,0.002228392,0.002216121,0.002280259,0.002150684,0,0.001871145,0.002000327,0.002111368,0.002042066,0.002058223,0.002105956,0.002239112,0.00241973,0.002266455,0.002274951,0.002084646,0.002089745,0.001975191,0.002080524,0.002073928,0.002168955,0.00214218,0.002167766,0.0021065,0.002176157,0.002057889,0.001994694,0.001938998,0.001940663,0.001922677,0.001846754,0.001847628,0.001981906,0.001973509,0.001992514,0.001888544,0.001852216,0.001853104,0.001870437,0.002009223,0.002074803,0.002136694,0.001950778,0.001798064,0.001890163,0.001834369,0.001862128,0.001782263,0.001811044,0.001696033,0.001773184,0.001916881,0.001987748,0.001980212,0.001861402,0.001778611,0.001799079,0.001937834,0.002021997,0.002047169,0.001959221,0.001724856,0.001832578,0.002015487,0.002018842,0.002010824,0.001898434,0.001809392,0.001852282,0.00194171,0.001966459,0.001977035,0.001870738,0.001815888,0.001877013,0.002142572,0.002037529,0.002044398,0.001808273,0.001853218,0.001877773,0.00194886,0.001899169,0.00185949,0.001793901,0.001769629,0.00189139,0.001990173,0.001902427,0.001871151,0.001819881,0.001911032,0.002070023,0.002190622,0.002155063,0.002108716,0.002037865,0.002031648,0.002202739,0.00218678,0.002071963,0.00205144,0.002041062,0.002141197,0.002143554,0.002172571,0.002149991,0.002120196,0.002061465,0.002107843,0.002181152,0.0023344,0.002228602,0.002229341,0.002147261,0.002201101,0.002255937,0.002273493,0.002230428,0.002170113,0.00215464,0.002084241,0.002092232,0.00217423,0.00230023,0.002250124,0.00223545,0.002155987,0.002050844,0.002085296,0.002247333,0.002182035,0.002208524,0.002079868,0.002018308,0.002083934,0.002193856,0.002185601,0.002143618,0.002062902,0.001976276,0.002229841,0.002218927,0.00222615,0.002151458,0.002206352,0.002065646,0.002035575,0.00202927,0.002115386,0.002153915,0.002163391,0.002243202,0.002219366,0.002274784,0.002141279,0.00210763,0.002055111,0.002020153,0.002078417,0.002102929,0.002073707,0.002034278,0.002001029,0,0,0,0,0 +GRADUATE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002585599,0.002586207,0.002583777,0,0,0,0.000793273,0.000792896,0.000792581,0,0,0,0,0.000888099,0.000888099,0.000888428,0,0,0,0.001430288,0.00143127,0.001428898,0,0,0,0.002669591,0.002669845,0.002669082,0,0,0,0.001833396,0.001833224,0.001832707,0,0,0,0.000980931,0.000980469,0.000981585,0,0,0,0.001496623,0.001496787,0.001495423,0,0,0,0.000819001,0.000818818,0.000818787,0,0,0,0.000622988,0.000619984,0.000619451,0,0,0,0.000806627,0.000804356,0.000803461,0,0,0,0.000447653,0.000474582,0.000473709,0,0,0,0.000290581,0.00028878,0.000243314,0,0,0,0,0,0,0,0,0,0,0,0,0.001431171,0.011358347,0.009862254,0.0051473,0,0,0.004240821,0.008067172,0.008300291,0.003886127,0.00167519,0.000869414,0.006217143,0.006350319,0.005682016,0.002047083,0.000674099,0.000812867,0.005964126,0.005069268,0.005013109,0.001676761,0.001436053,0,0.005352147,0.004657495,0.005562796,0.001904839,0.00245048,0,0,0.00487319,0.004949837,0.005652523,0.000670498,0,0.000675432,0.005533877,0.005458251,0.005604081,0,0,0.000734855,0.006131932,0.006008302,0.006327797,0,0,0,0.006062579,0.005597834,0.005941978,0,0,0,0.005372577,0.005147647,0.005431548,0.000552458,0,0,0.004526232,0.004479792,0.004466548,0,0,0,0.003311671,0.002154891,0.001848168,0.000235661,0.000354577,0.000382493,0.002325281,0.002289345,0.00241115,0,0.00033583,0.000265542,0.001162805,0.000737148,0.000691699,0.000340987,0.000308154,0.000287916,0.000801966,0.000697572,0.000773735,0.000509868,0.000520285,0.000448791,0.00078063,0.000756016,0.001028117,0.000808515,0.001030878,0.00052393,0.000731114,0.000980766,0.001106876,0.001179826,0.000975024,0.00074,0.000627335,0.000903392,0.00086726,0.00105573,0.000860498,0.000839269,0.00061212,0.000957616,0.000884757,0.000925851,0.000655897,0.000697834,0.000823399,0.000833553,0.000783955,0.000742183,0.000709208,0.000768249,0.000681697,0.000661786,0.000780522,0.00102026,0.001129106,0.001074228,0.000725069,0.000900425,0.00118491,0.001224065,0.001259187,0.000984347,0.000848017,0.000909082,0.000888562,0.001136544,0.001150395,0.001285205,0.000849781,0.000951417,0.00090119,0.000903842,0.000845539,0.000874145,0.000931819,0.001030696,0.001084688,0.001176582,0.00116753,0.001140656,0.00105227,0.001276774,0.001370092,0.00140722,0.001325322,0.001254282,0.001224064,0.001459477,0.001595674,0.001372891,0.001252723,0.001098382,0.001352051,0.001511654,0.001313062,0.001317997,0.001294038,0.001380943,0.00151878,0.001542371,0.001458915,0.001543494,0.001498442,0.001679972,0.002074774,0.002393761,0.002507281,0.002338215,0.002301496,0.002136968,0.00225647,0.002477173,0.002763623,0.002670693,0.00253573,0.0023159,0.00232378,0.002717435,0.003111691,0.002751072,0.002693053,0.002383395,0.002494929,0.002509843,0.002956081,0.002788601,0.002781361,0.00252652,0.002540836,0.002584206,0.003102825,0.0028617,0.002718081,0.002515547,0.002581244,0.002871775,0.003133407,0.00303912,0.002843656,0.002705476,0.002694459,0.003155326,0.003546572,0.003162456,0.002756643,0.002580855,0.002374363,0.002647653,0.002802701,0.00294867,0.002619273,0.002558839,0.00252713,0.003048118,0.003054954,0.002921503,0.002721759,0.00265906,0.002684777,0.00293317,0.002742467,0.002593936,0.002427483,0.002424514,0.002334716,0.002619261,0.002678298,0.00273021,0.002606043,0.002466543,0.002407562,0.002276681,0.002944611,0.003318203,0.003312768,0.00291156,0.002858613,0,0,0,0,0 +APPLICATIONS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001001096,0.001001192,0.001000906,0,0,0,0.000846183,0.000846103,0.000845865,0,0,0,0.000902456,0.000902032,0.000903059,0,0,0,0.000949078,0.000949182,0.000948317,0,0,0,0.000744546,0.00074438,0.000744352,0,0,0,0.001315197,0.001308855,0.001307729,0,0,0,0.001023795,0.001020913,0.001019778,0,0,0,0.001287001,0.00131208,0.001309666,0,0,0,0.001564665,0.001554968,0.001570484,0,0,0,0,0.002295132,0.002294631,0.002287705,0.0032511,0.003661837,0.003488879,0.002336358,0.002308764,0.002261604,0.002048226,0.001874643,0.001752272,0.002067718,0.002236904,0.002283519,0.002469542,0.002114724,0.001988251,0.001322518,0.00121718,0.001645714,0.001908992,0.001917245,0.001803383,0.001659321,0.00214829,0.00206278,0.00204854,0.001671036,0.001676761,0.001267106,0.001471206,0.001459676,0.001827171,0.00171652,0.001661668,0.001276292,0.000989926,0.001267542,0.001885249,0.001993223,0.002024214,0.001245211,0.00099046,0.001215778,0.002057467,0.002245483,0.00200974,0.001207554,0.001176049,0.00146971,0.002399452,0.002439735,0.002539445,0.001988749,0.001980983,0.002093677,0.001953046,0.001902532,0.00186415,0.001677946,0.001954198,0.002294862,0.002530561,0.002399917,0.002046131,0.001506705,0.000936072,0.000971727,0.001916215,0.002304821,0.002249113,0.00193139,0.001419001,0.001501126,0.001693185,0.002334465,0.002361548,0.002297699,0.001679575,0.001912464,0.002105671,0.002230944,0.001943682,0.00189202,0.001914229,0.001740772,0.001732095,0.001615099,0.001580011,0.001392801,0.001199988,0.001131944,0.001319265,0.00147748,0.001498445,0.001472399,0.001253698,0.001067482,0.001115934,0.001162786,0.001302547,0.001273591,0.001319081,0.001109905,0.001160644,0.001238751,0.001311726,0.001396571,0.001449964,0.00136377,0.001329147,0.001401885,0.001529904,0.001485061,0.001374503,0.001192059,0.001276707,0.001460874,0.001562689,0.001617768,0.001594729,0.001333981,0.001319734,0.001416597,0.001517967,0.001511618,0.001384262,0.001175175,0.001266009,0.001644558,0.001836846,0.001925329,0.00177214,0.001526809,0.001436858,0.001726118,0.001722923,0.001711289,0.001576837,0.001641859,0.001809752,0.002017026,0.001997793,0.001967281,0.001892266,0.002137241,0.001984704,0.002004632,0.001928159,0.00205461,0.002086892,0.002166096,0.001937276,0.001902665,0.001967677,0.001949631,0.001966293,0.001882481,0.001889595,0.00190557,0.001934248,0.002099559,0.002108409,0.002094306,0.001775471,0.001818178,0.001913484,0.002111483,0.002159946,0.002061026,0.001660462,0.001706037,0.001943331,0.002215529,0.002248583,0.002123786,0.001641924,0.001621789,0.002127755,0.002130386,0.002235408,0.002043094,0.001956277,0.001609171,0.002057105,0.002149362,0.002239213,0.002083087,0.001872829,0.001635697,0.001747932,0.001881606,0.002077013,0.00208877,0.002023164,0.001685649,0.001997341,0.002210508,0.002187911,0.002116203,0.001830629,0.001909624,0.002107771,0.002226974,0.002172393,0.002060172,0.001816706,0.001827363,0.002203654,0.002288362,0.002259133,0.002242526,0.002047536,0.001784239,0.001882617,0.002005425,0.002111913,0.002095122,0.002019532,0.001694483,0.001792101,0.002090829,0.00211819,0.002141264,0.002030786,0.001776111,0.001777293,0.002009387,0.001948388,0.001950047,0.00185094,0.001861048,0.001872485,0.001980354,0.002049063,0.002067861,0.001911154,0.001568578,0.001818703,0.002325534,0.002252365,0.002263946,0.002039097,0.001856624,0.001814215,0.002015379,0.002131071,0.002220431,0.00218682,0.002092302,0.001875264,0.001814511,0.002151148,0.00282256,0.003773369,0,0,0,0,0 +UNDERGRADUATE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.015674432,0.015677814,0.015681197,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000814091,0.000814091,0.000888428,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00036503,0.00036507,0.000364737,0,0,0,0.000483955,0.000483847,0.000483829,0,0,0,0.000622988,0.000619984,0.000619451,0,0,0,0.000465362,0.000464051,0.000432633,0,0,0,0.000587544,0.000586248,0.00058517,0,0,0,0.000335285,0,0.000641465,0.00372093,0.003479017,0,0,0,0,0.000209881,0,0,0,0.000193087,0.000496098,0.000477057,0.00158272,0,0,0.002067718,0.002080841,0.001558592,0,0,0,0,0.016605808,0.011702857,0.012311049,0.004427092,0.002973144,0,0.000812867,0.009910314,0.007777508,0.006165548,0.00270335,0.003252239,0.004308533,0.003324819,0.002901978,0.003623764,0.001661668,0.002093118,0.005299016,0.004934359,0.003841639,0.000664408,0.001756865,0.008237548,0.008862013,0.006304035,0.00049663,0.000552734,0.001623251,0.002125296,0.011965025,0.008910118,0.007503047,0.000436967,0.002872487,0.003693392,0.0038299,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000396458,0.000389547,0.000411809,0.000367884,0,0,0.001593586,0.001305995,0.001039594,0.000338763,0,0.002604594,0.003152048,0.002990165,0.00151312,0.000405433,0,0.000781872,0.002670817,0.001769706,0.001497102,0.000697712,0.000311779,0.000232699,0.001046842,0.001347114,0.001500577,0.001412707,0.001435485,0.001541919,0.001445999,0.001207983,0.001012208,0.000860985,0.000812879,0.001233993,0.001641961,0.001477546,0.001266969,0.001020335,0.001092362,0.001208796,0.00171586,0.001674531,0.001410282,0.001038135,0.000789364,0.00065359,0.001163028,0.001544411,0.001388897,0.001219092,0.00077593,0.000605304,0.001204975,0.001498622,0.001461971,0.001272772,0.001064817,0.000968204,0.000962724,0.001052121,0.001283862,0.001337034,0.00128438,0.00097799,0.000988006,0.001465469,0.001438545,0.001386918,0.001074684,0.000922825,0.001117692,0.001344684,0.001653549,0.001549505,0.001489415,0.001121745,0.001146216,0.001550457,0.001574318,0.001398859,0.001149138,0.000939047,0.001121581,0.001412054,0.001501531,0.001248139,0.001082644,0.000723878,0.000984899,0.00129809,0.001311885,0.001385752,0.001284107,0.001453192,0.001590706,0.00178971,0.001414257,0.001144391,0.000944976,0.001095261,0.001566837,0.001841916,0.001407049,0.001340233,0.001109962,0.001255731,0.001637363,0.001977078,0.001736804,0.001497073,0.001376741,0.001346755,0.001615867,0.002022414,0.002201256,0.002187133,0.002067936,0.001978211,0.001734636,0.00218093,0.002263858,0.002421764,0.002210473,0.002195593,0.001847958,0.002221538,0.002141084,0.002195787,0.002113191,0.002108781,0.002146721,0.002268684,0.002100341,0.002101625,0.002134427,0.002382308,0.002585496,0.002817641,0.002526657,0.00232432,0.002166816,0.002084764,0.002207251,0.002563781,0.002617367,0.00243261,0.00236121,0.002323722,0.002443592,0.002751765,0.002850428,0.002696029,0.002546431,0.002508791,0.002431625,0.002618296,0.002612583,0.002510087,0.00237579,0.002315083,0.002388309,0.002689388,0.002699051,0.002488837,0.002414341,0.002373492,0.002459985,0.002410311,0.002466574,0.002404476,0.002408145,0.002384852,0.002346474,0.002358912,0.00247393,0.002455546,0.002427103,0.002351932,0.002351641,0.002168458,0.002219062,0.002391346,0.00232324,0.002428419,0.002515579,0,0,0,0,0 +TECHNOLOGY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000476713,0.000476758,0.000476622,0,0,0,0.000564122,0.000564069,0.00056391,0,0,0,0.000470847,0.000470625,0.000471161,0,0,0,0,0,0,0,0,0,0.000595637,0.000558285,0.000558264,0,0,0,0.00072682,0.000723315,0.000722693,0,0,0,0.000620482,0.000618735,0.000648949,0,0,0,0.001119132,0.001172497,0.00111461,0,0,0,0.001028209,0.001066264,0.001150213,0.003023256,0.002391824,0,0,0.001923539,0.001944973,0.001972883,0.003442341,0.003184206,0.003488879,0.002259123,0.002251522,0.002296942,0.003258542,0.003015731,0.002190341,0.001654174,0.00156063,0.002029794,0.002689057,0.002749141,0.002349751,0.001763357,0.001912711,0.001691429,0.002025869,0.001986963,0.002144563,0.001296344,0.001161238,0.000986547,0.001319399,0.001901524,0.002224275,0.002323028,0.002364439,0.001946235,0.002436228,0.001970819,0.002269596,0.001582602,0.001048157,0.000905387,0.000889268,0.001561358,0.001756865,0.001724138,0.000781942,0.000945605,0.00099326,0.001520019,0.001430007,0.001642274,0.000818121,0.000734855,0.000914077,0.001238074,0.001540319,0.001590999,0.001254622,0.000777651,0.000895146,0.001243963,0.001359276,0.00145422,0.001160305,0.0010075,0.001051156,0.000973879,0.001599702,0.001908493,0.002037333,0.001249364,0.000958108,0.001071255,0.001298784,0.001502192,0.001452001,0.001282212,0.00114539,0.001240695,0.001167939,0.00126668,0.001306336,0.001438901,0.001304741,0.001319878,0.001771457,0.002111629,0.002065352,0.001401469,0.00118703,0.000916603,0.000975959,0.000897059,0.001033223,0.000926854,0.001141731,0.001154996,0.001402528,0.001372912,0.00155772,0.001259821,0.001383129,0.00124907,0.001340331,0.001275976,0.00155186,0.001313272,0.001386071,0.001166259,0.001265248,0.001212543,0.001480695,0.001383142,0.001337741,0.001114997,0.001252884,0.001245762,0.001376797,0.001184632,0.00123007,0.001257126,0.00136448,0.001385482,0.001536856,0.001669404,0.001747213,0.001496405,0.001319708,0.00133048,0.00136819,0.001683832,0.001655551,0.001549451,0.001558285,0.001821109,0.001952729,0.002148457,0.001633397,0.001671436,0.001774163,0.00197826,0.002090403,0.002295527,0.001868236,0.00181343,0.001663847,0.001824009,0.001856803,0.002321134,0.001984704,0.001900876,0.001567407,0.001833309,0.001820178,0.002180293,0.00176734,0.001770736,0.001676336,0.001831152,0.001874449,0.002030048,0.00172598,0.001656183,0.001528294,0.001973972,0.002064618,0.002472399,0.002243156,0.002241408,0.001663208,0.001918065,0.001867072,0.002413631,0.002302066,0.002308057,0.001964064,0.002057854,0.002182448,0.002424777,0.002670407,0.002240409,0.001943858,0.002122097,0.002266679,0.002585641,0.002727584,0.002292831,0.002028747,0.002202098,0.002377125,0.002542039,0.00267105,0.002160938,0.001843658,0.001927162,0.002138549,0.002362571,0.002377264,0.001885608,0.001733128,0.001906287,0.001990992,0.002166301,0.002401961,0.002281188,0.001903434,0.001737788,0.001779828,0.002047062,0.002381336,0.002275998,0.001855709,0.001747985,0.001878654,0.001878736,0.002264789,0.002474569,0.002187095,0.00175193,0.00179222,0.001852187,0.001982794,0.002126364,0.00180778,0.001662178,0.001622194,0.001662758,0.001825594,0.002313715,0.00201034,0.001799507,0.001744614,0.001779776,0.001867359,0.002132813,0.001905896,0.001707411,0.001780218,0.00182777,0.001880616,0.002084403,0.001888706,0.001889961,0.00187903,0.001913383,0.002043296,0.002322095,0.002357404,0.002224312,0.001958736,0.001988797,0.002054375,0.002677505,0.002768246,0.002136531,0.002327542,0.001589279,0.001715168,0,0,0,0,0 +PROCESSES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001366415,0.00136671,0,0,0,0.001723733,0.001724138,0.001722518,0,0,0,0.001269237,0.001268633,0.00126813,0,0,0,0,0.002442274,0.002442274,0.002443178,0,0,0,0.002517306,0.002519036,0.002514861,0,0,0,0.001668494,0.001668653,0.001668176,0,0,0,0.002256487,0.002256275,0.002255639,0,0,0,0.002197285,0.002196251,0.002198751,0,0,0,0.002080672,0.0020809,0.002079002,0,0,0,0.002568684,0.002568111,0.002568015,0,0,0,0.002457343,0.002445493,0.002443389,0,0,0,0.002326808,0.002320257,0.002317676,0,0,0.007057546,0.003245482,0.003098741,0.003065177,0,0,0,0.002726988,0.002754515,0.002742817,0,0,0,0,0.003562919,0.003605848,0.003526004,0.002486135,0.002388155,0.002616659,0.002761151,0.0027667,0.002685655,0.002234429,0.003015731,0.00405213,0.003204963,0.003017219,0.002573489,0.002469542,0.002749141,0.003343877,0.003526715,0.002260476,0.002194286,0.002025869,0.002719002,0.002729444,0.003266788,0.002612785,0.002197309,0.002222145,0.002016768,0.002292715,0,0.001891551,0.001581316,0.00218544,0.002320481,0.002796466,0.00245048,0.002038083,0.001674966,0.001529541,0.001827121,0.001909636,0.001867816,0.001511755,0.001485951,0.001951046,0.002245483,0.003053258,0.003043037,0.00317022,0.002755707,0.002932663,0.002803874,0.002497814,0.002216035,0.002377179,0.002691871,0.002726126,0.002707449,0.002485533,0.00218133,0.002137405,0.002406806,0.002608425,0.002712949,0.002752976,0.003063633,0,0.002868909,0.002676094,0.002629443,0.002724278,0.003096355,0.003102003,0.003064799,0.002390379,0.00241609,0.002194699,0.002209326,0.002071475,0.001967106,0.001834388,0.001728689,0.00164844,0.001959592,0.002065352,0.002227599,0.002040965,0.001979531,0.002058515,0.002224286,0.002399977,0.002338826,0.002075317,0,0.002046241,0.002094189,0.002328745,0.002401034,0.002268542,0.002021522,0.001976689,0.002060641,0.002017418,0.002137084,0.001952685,0.001961533,0.001805775,0.001807568,0.00192211,0.002355603,0.002231478,0.002103845,0.001989505,0.002067472,0.002221233,0.002588365,0.002288163,0.002031369,0.001860001,0.001876414,0.001894812,0.002155189,0.001988208,0.002063931,0.001961402,0.001976484,0.001880507,0.001782056,0.00202005,0.001995264,0.001867184,0.00171826,0.001753575,0.001924768,0.002066313,0.001946667,0.001831807,0.001851449,0.001774655,0.001753367,0.001618055,0.001834736,0.001910997,0.001949222,0.001960353,0.0019227,0.001976234,0.001957648,0.0019793,0.001974243,0.001969141,0.002036292,0.0021412,0.001995428,0.001948255,0.001845228,0.001913414,0.001950282,0.002184744,0.001980173,0.001907383,0.001795789,0.001870134,0.001936494,0.002081487,0.001894094,0.001794305,0.00185454,0.001895673,0.001961173,0.00200467,0.001824931,0.001748445,0.00162526,0.001633529,0.001661466,0.001822079,0.001849592,0.001780394,0.001739954,0.001713109,0.001724828,0.001861479,0.001911962,0.001810158,0.001693264,0.00167422,0.001711691,0.001874892,0.001899226,0.001839929,0.001722162,0.001672639,0.001633472,0.001726237,0.001771632,0.001711225,0.001658494,0.001695223,0.001718197,0.001805274,0.001843529,0.001832845,0.001784998,0.001789699,0.001785795,0.001893266,0.001918549,0.001830766,0.001686056,0.001645224,0.001643174,0.001749929,0.001996648,0.001862605,0.001754747,0.001670801,0.001702051,0.001732977,0.001935204,0.001834434,0.001749296,0.001725997,0.001734822,0.001713795,0.001763267,0.001638691,0.001594333,0.001571668,0.001611895,0.001635245,0.001956709,0.001955287,0.001768065,0.001695474,0.001645862,0.001744893,0.001803044,0.001688306,0.001625273,0.001663624,0.001702277,0.001806465,0.001996003,0.001839313,0.001636248,0.001599654,0.001578611,0.0015761,0.001707511,0.001910983,0.001976921,0.0016865,0.001449423,0.001086273,0,0,0,0,0 +EDUCATION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000862813,0.000862999,0.000863185,0,0,0,0.001488678,0.001489028,0.001565925,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00074375,0.000744261,0.000743027,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000902456,0.000902032,0.000824532,0,0,0,0.000839569,0.000839661,0.000838896,0,0,0,0.001340183,0.001339884,0.001339834,0,0,0,0.001072924,0.00106775,0.001032418,0,0,0,0.002295784,0.002320257,0.002286774,0,0,0,0.001510828,0.001535412,0.001588319,0,0,0,0.002145827,0.002132528,0.00214559,0.002325581,0,0,0,0.000743186,0.000743023,0.000734584,0,0,0,0.001042672,0.001030357,0.001113133,0.00158272,0,0.001204687,0.00087878,0.000884357,0.000978651,0.001426847,0.00137457,0.001174876,0,0,0.000548571,0.003038803,0.00278872,0.003460545,0,0,0.003318386,0.003055449,0.002881097,0.001095028,0.000760264,0,0.004216843,0.005481513,0.005976032,0.003688093,0.001991015,0.001397543,0.001177003,0.002347668,0.002292206,0.002215178,0.001005747,0.000938331,0.001305836,0.002341256,0.002625488,0.002357579,0.001207554,0.000766989,0,0.000685558,0.00120166,0.00166521,0.001534178,0.000660328,0,0,0,0,0.000559315,0.000793893,0,0,0,0,0.000602682,0.000660757,0.000694091,0.000462535,0.000357085,0.00053852,0.000521169,0.000561001,0.000625469,0.000771893,0.000669322,0.000539049,0.000544967,0.00115704,0.002131031,0.002209017,0.002137501,0.00220202,0.002010271,0.001645565,0.001091671,0.000896329,0.000588062,0.000611159,0.000535088,0.000554677,0.000382574,0.000505055,0.000615235,0.000647976,0.000661585,0.00064252,0.00058984,0.000547489,0.00054236,0.00062045,0.000617715,0.000672473,0.000527377,0.000664096,0.000622573,0.000771198,0.000754516,0.000832542,0.000542409,0.00068749,0.000712133,0.000930219,0.000925524,0.000947695,0.000787279,0.000851138,0.000933167,0.001001097,0.001042818,0.001056722,0.000917594,0.000803317,0.000820252,0.000821791,0.000940954,0.00103669,0.001301462,0.001099063,0.001040232,0.001016333,0.001330177,0.001443028,0.00160484,0.001059716,0.001199351,0.00140652,0.001535087,0.001573033,0.001411153,0.001065707,0.00108427,0.001221037,0.001402621,0.001439767,0.001518136,0.001211149,0.00144866,0.001335198,0.001536299,0.001415852,0.001539388,0.001353828,0.00145122,0.001352125,0.001488617,0.001493158,0.001545469,0.001029813,0.001140358,0.00132681,0.001567156,0.001629283,0.00172772,0.001631124,0.001666347,0.00148444,0.001460118,0.001375135,0.001610128,0.001820174,0.001932502,0.001527298,0.001655582,0.001639041,0.001821592,0.00192698,0.001717926,0.001482073,0.001588257,0.001680993,0.00197047,0.002359166,0.002140484,0.001798342,0.001941267,0.002069419,0.002199509,0.002194593,0.002080971,0.002140782,0.002136229,0.002169716,0.002148923,0.002071115,0.001901604,0,0.002018325,0.002182463,0.002196917,0.002469574,0.002106124,0.001991361,0.001894881,0.001978768,0.002186592,0.002430781,0.002254113,0.001956725,0.001898811,0.00217341,0.002256933,0.002487994,0.002383233,0.002217114,0.002062696,0.002420627,0.002486684,0.002799424,0.002529925,0.002375356,0.002062304,0.002199842,0.00222726,0.002415265,0.002478849,0.00229245,0.002191973,0.002487081,0.00254928,0.002712224,0.002102375,0.00215866,0.002111771,0.002367585,0.002388874,0.002533785,0.002386864,0.002137148,0.002004194,0.002334015,0.002415558,0.002568188,0.002059117,0.00207595,0.001996598,0.002300404,0.002408031,0.002594457,0.002713579,0.002424448,0.002343743,0.002353356,0.002593704,0.002687096,0,0,0,0,0 +TECHNIQUES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001031255,0.001030764,0.001030356,0,0,0,0,0,0,0,0,0,0,0.000572115,0.000572508,0.000571559,0,0,0,0.001001096,0.001001192,0.001000906,0,0,0,0.000658142,0.00065808,0.000657895,0,0,0,0.00070627,0.000705938,0.000706742,0,0,0,0.00073006,0.00073014,0.000729474,0,0,0,0.001228501,0.001228227,0.001228181,0,0,0,0.001003703,0.000998863,0.000998004,0,0,0,0.00068253,0.000680609,0.000679852,0,0,0,0.000951262,0.000949164,0.000919553,0,0,0,0.001274085,0.001266188,0.001260811,0,0,0,0,0.00150823,0.0015079,0.00144818,0.002294894,0.001910524,0.002180549,0.001448156,0.001450133,0.001360496,0.001117214,0.000978075,0.001314204,0.00175756,0.001716694,0.001449853,0.001042696,0.001215966,0.001174876,0.000969847,0.000869414,0.001005714,0.000857098,0.001115488,0.001267242,0.001555613,0.001335424,0.001165919,0.001145794,0.000950762,0.00088971,0.000718027,0.000630517,0.000770385,0.000824018,0.001144347,0.001134798,0.00122524,0.000873464,0.000995926,0.000995981,0.001129493,0.001336745,0.001484674,0.001668144,0.001215778,0.00099326,0.000863647,0.001159465,0.001255857,0.00138058,0.000964497,0.00099025,0.000728279,0.001124016,0.00119325,0.00118859,0.000717832,0.000935834,0.000914679,0.000737893,0.000671178,0.000610687,0.0010075,0.000895429,0.001078223,0.000892857,0.000904023,0.00071582,0.000740364,0.000792917,0.000746632,0.000855297,0.001103651,0.001452001,0.001438579,0.001543786,0.001779418,0.002207534,0.002150411,0.002071475,0.002240315,0.00240279,0.002394468,0.001882173,0.001469694,0.001511234,0.001622754,0.002283216,0.002451637,0.002430421,0.00231609,0.002204208,0.002102183,0.002206938,0.002284833,0.002419253,0.002444878,0.002410235,0.002231134,0.002352368,0.002387204,0.002467879,0.002373076,0.002357349,0.002302535,0.002290825,0.0023645,0.002413438,0.002429175,0.002483656,0.002347854,0.002303091,0.002238133,0.002298004,0.002334923,0.002315314,0.002146449,0.002049144,0.002106756,0.002217639,0.002255321,0.002212043,0.001954706,0.001973864,0.001955303,0.002132419,0.002136783,0.002153744,0.001736452,0.001672245,0.001876381,0.002302953,0.002276386,0.0022599,0.001753099,0.001883054,0.002150812,0.002184077,0.002147788,0.001957256,0.001749522,0.00181625,0.0019318,0.002121368,0.00213102,0.002093691,0.001749023,0.00153017,0.001707069,0.002015237,0.002028986,0.002042913,0.001809136,0.001625726,0.001764552,0.001960207,0.001932035,0.001895323,0.001724942,0.001584822,0.001683893,0.001922308,0.002119954,0.002165079,0.002056497,0.001550289,0.001664449,0.001755903,0.001949353,0.001943722,0.00193621,0.001646693,0.00168339,0.001690394,0.001798096,0.001804378,0.001826408,0.001678411,0.001678217,0.001836245,0.001941387,0.001960736,0.001814541,0.001581396,0.001593937,0.00187987,0.001945543,0.001956716,0.001879108,0.001561378,0.001463041,0.001606208,0.001773412,0.00186204,0.001862676,0.001635867,0.001479692,0.00178515,0.001877664,0.001843885,0.00169222,0.001543272,0.00165596,0.001754825,0.001788254,0.001740344,0.001746464,0.001677941,0.001572043,0.001658664,0.001840877,0.001908328,0.001925561,0.001740009,0.00145288,0.001526678,0.001684331,0.001750886,0.001741282,0.001575529,0.001227202,0.001348387,0.001576602,0.001688645,0.001705516,0.001674256,0.001429329,0.001458386,0.001577392,0.001587343,0.001586803,0.001548669,0.001267513,0.001287061,0.001489056,0.001684369,0.001732134,0.001654128,0.001162952,0.001389078,0.001652206,0.001724324,0.001731064,0.001620024,0.001257035,0.001206489,0.001401492,0.001592448,0.001646775,0.001626871,0.001396872,0.001178737,0.001248876,0.001320805,0.002008849,0.001829512,0,0,0,0,0 +STRUCTURE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.006888634,0.006899195,0.006912442,0,0,0,0.006554307,0.006564551,0.006576887,0,0,0,0,0,0,0,0,0,0.004920914,0.004925242,0.004927842,0,0,0,0.003595053,0.003595829,0.003596605,0,0,0,0.004544386,0.004545455,0.004541184,0,0,0,0.004918293,0.004915953,0.004914005,0,0,0,0,0.005328597,0.005328597,0.005330569,0,0,0,0.005091824,0.005095323,0.005086877,0,0,0,0.004671783,0.004672229,0.004670893,0,0,0,0.005171117,0.005170631,0.005169173,0,0,0,0.005022365,0.005020002,0.005025718,0,0,0,0.005657967,0.005658586,0.005653427,0,0,0,0.006626461,0.006624981,0.006624735,0,0,0,0.005952999,0.005958737,0.005988024,0,0,0,0.005336146,0.005321124,0.005346106,0,0,0.008143322,0.006071289,0.006057899,0.005991027,0.006042296,0.008089888,0.008989726,0.006325719,0.0062643,0.006237696,0.005813953,0.006740596,0.006184688,0,0.006338936,0.006293844,0.006191496,0.004016064,0.00477631,0.005887484,0.006101564,0.005819611,0.005618672,0.003351643,0.004564349,0.005585369,0.00578961,0.005254123,0.004458299,0.003457359,0.003912239,0.004609128,0.004937401,0.004607894,0.003702857,0.003584229,0.004183079,0.004776527,0.00508167,0.004412704,0.003946188,0.004201243,0.004119969,0.004448551,0.005152897,0.004991593,0.004703402,0.003582688,0.003623764,0.003688093,0.004186236,0.004250859,0.003214124,0.0029168,0.003687463,0.004239392,0.004693487,0.004326748,0.004322767,0.004043987,0.004145507,0.004019479,0.004153987,0.003681546,0.00353649,0.003884826,0.004260433,0.004454436,0.004261606,0.004358162,0.005024825,0.003865403,0.004097761,0.003650627,0.00508977,0.004519084,0.004813612,0.003971035,0.003999861,0.00390625,0.004068103,0.003909476,0.003701819,0.003865468,0.003863009,0.003896351,0.003893436,0.003069003,0.003127346,0.003236971,0.003052762,0.002759417,0.002710107,0.002612671,0.002422454,0.002002325,0.001950616,0.001968286,0.002094736,0.00248514,0.002345617,0.002204484,0.002263899,0.002252759,0.002279368,0.002142577,0.002307274,0.002460996,0.002591308,0.0024427,0.002390161,0.002262926,0.002548494,0.00252264,0.002522793,0.002384357,0.002382616,0.002242807,0.002505903,0.002397446,0.00233465,0.002346303,0,0.002240599,0.002181257,0.002265852,0.002286965,0.002090239,0.00207275,0.0021065,0.002462103,0.002261929,0.002336991,0.002321052,0.002364051,0.002280634,0.002201454,0.002306666,0.002423068,0.002188416,0.002082281,0.001924707,0.002094267,0.002320554,0.002322195,0.002366387,0.002243475,0.002229521,0.001945576,0.002151303,0.002200026,0.002141805,0.002070366,0.001981983,0.001864875,0.001936467,0.001941269,0.002136079,0.002064802,0.002061066,0.001783759,0.002086339,0.002110345,0.002330377,0.002110518,0.002112428,0.00187201,0.002313969,0.002298453,0.002394979,0.002119725,0.002090143,0.001910399,0.002264948,0.002069696,0.002159611,0.001860193,0.001886878,0.001668541,0.001885175,0.001964316,0.002137276,0.001934183,0.001871648,0.001585164,0.001872494,0.001889096,0.00213407,0.001934545,0.001955385,0.001861323,0.001892773,0.001774354,0.001799465,0.001772282,0.001724096,0.001634048,0.00145859,0.001504432,0.001749898,0.001625562,0.001643078,0.001535615,0.001635632,0.001693856,0.001795174,0.001638372,0.001549569,0.001404267,0.001386891,0.001433702,0.001546947,0.001683846,0.001676542,0.00166346,0.001457066,0.001461247,0.001520766,0.001596975,0.001531533,0.00144212,0.001194655,0.00141338,0.001636216,0.001718019,0.001520596,0.001504862,0.001351136,0.001353048,0.001372295,0.001509702,0.001463485,0.001438746,0.001286874,0.001205962,0.001265289,0.001501049,0.001426314,0.001453773,0.001291822,0.00120915,0.001264588,0.001434335,0.001443134,0.001453573,0.001344917,0.001074016,0.001153416,0.001242397,0.001450592,0.001480005,0.001481929,0.001099646,0.001313584,0.001497109,0.001501935,0.001454069,0.001321886,0.001033503,0.001086378,0.001359236,0.001507182,0.001490542,0.001405392,0.000980015,0.000984513,0.001198473,0.001346619,0.002034278,0.002401235,0,0,0,0,0 +PROBLEMS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002060157,0.002063558,0.002062706,0,0,0,0,0,0,0,0,0,0.000862813,0.000862999,0.000863185,0,0,0,0.001096921,0.001097179,0.001096148,0,0,0,0.001507219,0.001506502,0.001505905,0,0,0,0,0.002738307,0.002738307,0.00273932,0,0,0,0.002517306,0.002519036,0.002514861,0,0,0,0.001716165,0.001716329,0.001715838,0,0,0,0.001974426,0.001974241,0.001973684,0,0,0,0.001922624,0.001921719,0.001923907,0,0,0,0.001825151,0.00182535,0.001823686,0,0,0,0.003089867,0.003089177,0.003089062,0,0,0,0.002007407,0.001997727,0.001996008,0,0,0,0.002543977,0.002536815,0.002564895,0,0,0,0.002546024,0.002540409,0.002480007,0,0,0,0.002883455,0.002887798,0.002897653,0.003255814,0.00304414,0.002985711,0,0.002841592,0.002862825,0.002917349,0.003633582,0.002706575,0,0.002239815,0.002232441,0.002332279,0.001955125,0.002119162,0.001971307,0.002584647,0.002653072,0.002356011,0.002359785,0.001956119,0.001626751,0.001146182,0.001478004,0.001645714,0.002415459,0.002544707,0.002778184,0.001763028,0.001509609,0.001973094,0.002881844,0.0023625,0.002258495,0.000844737,0.001155948,0.001500223,0.002615363,0.002225118,0.002188539,0.001021033,0.001339312,0.00140335,0.002774517,0.002458308,0.002444334,0.000766284,0.00099046,0.000990634,0.002908833,0.002798217,0.003014609,0.000821137,0.001022652,0.001102283,0.00297075,0.002694633,0.002830856,0.000909143,0.000990491,0.001016929,0.002441307,0.00230499,0.002252515,0.000894905,0.000671756,0.0010075,0.002258039,0.002434698,0.00249256,0.001506705,0.001101261,0.001203091,0.002775208,0.002986528,0.003072732,0.002299273,0.001914002,0.002032775,0.002315679,0.003624135,0.003619329,0.003476007,0.002276757,0.00138426,0.001743961,0.002347747,0.002583375,0.002753564,0.001796689,0.001799782,0.002579973,0.003150132,0.003096063,0.002861669,0.001932308,0.001624952,0.00191921,0.002717099,0.002724058,0.002638877,0.001679956,0.001407281,0.001901803,0.002592643,0.002792024,0.002630656,0.001810503,0.00141668,0.001486599,0.002270687,0.002332531,0.002388279,0.001746103,0.001565236,0.001664299,0.002551472,0.002579745,0.002695631,0.002014713,0.001496572,0.001731425,0.002534627,0.00257384,0.002612811,0.001986981,0.001526753,0.00152917,0.002119353,0.002239872,0.002263419,0.001854389,0.001276906,0.001355047,0.00235786,0.002422927,0.002476598,0.001969607,0.001610042,0.00151388,0.002344021,0.002364696,0.002416094,0.001888781,0.001538042,0.001449101,0.002073844,0.002680397,0.00244646,0.002252562,0.001305638,0.001050227,0.00145649,0.002387047,0.002445965,0.00245717,0.001510994,0.001028116,0.00153986,0.002550361,0.002369588,0.002244608,0.001252328,0.000840533,0.001234144,0.002259607,0.00240011,0.002492224,0.001696487,0.000915161,0.001186181,0.002089604,0.002297316,0.00240477,0.001787991,0.000972045,0.0012984,0.001959917,0.002076048,0.002041361,0.001731295,0.001238284,0.001297849,0.002051472,0.002040031,0.002017361,0.001581716,0.001014765,0.00111785,0.001936585,0.001919175,0.001922609,0.001523107,0.001101422,0.001046846,0.001650963,0.001862896,0.001955541,0.001752741,0.001292833,0.001061779,0.001801577,0.001951266,0.001956745,0.001583673,0.001301555,0.001134342,0.001772163,0.001673486,0.001772994,0.001432756,0.001346181,0.0010304,0.001819542,0.001880831,0.001837112,0.001755552,0.001407681,0.001074791,0.001317975,0.001750052,0.001776074,0.001757126,0.001436975,0.000979402,0.001216684,0.001501049,0.001508401,0.001496531,0.001325907,0.000983466,0.00112108,0.001471982,0.001472394,0.001464925,0.00125834,0.000850081,0.001043013,0.001551732,0.001645212,0.001677295,0.001428488,0.001195777,0.001376724,0.001756224,0.001648046,0.0016511,0.001424345,0.000980908,0.001070243,0.001385059,0.001606259,0.001611788,0.001498104,0.00102611,0.000906377,0.001089267,0.001178829,0.001665565,0.002115374,0,0,0,0,0 +INCLUDING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000487401,0.00082966,0.001045114,0.000672646,0,0.00028811,0.000547514,0.001055922,0.001208491,0.000527105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000400553,0.000416302,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000429,0.000437828,0.000423296,0.000538723,0.000744401,0.000854273,0.000802463,0.000874269,0.000865521,0.000852664,0.000811918,0.000760186,0.000873157,0.000722863,0.001035623,0.001098819,0.001137039,0.001127881,0.001145608,0.001242378,0.001190706,0.001200738,0.001138221,0.001196324,0.001178477,0.001189297,0.001194521,0.001220309,0.001221013,0.001230661,0.001230403,0.001271909,0.001291635,0.001249411,0.001210162,0.001179826,0.001243225,0.001328901,0.001383574,0.00131236,0.001311121,0.001242243,0.001243707,0.0012032,0.001314601,0.001359,0.001396078,0.001364065,0.001346088,0.001303138,0.001448839,0.001483104,0.001490726,0.001434674,0.00134609,0.001203239,0.001296616,0.001444437,0.001476924,0.001538618,0.00148691,0.00152941,0.001535127,0.001511037,0.001506437,0.001472349,0.001534991,0.001641859,0.001419859,0.001415706,0.001410813,0.001515794,0.001536225,0.001532439,0.001493469,0.00145649,0.001491386,0.001504851,0.001533603,0.001523163,0.001492609,0.001511001,0.001561293,0.001541405,0.00151264,0.001451743,0.001401958,0.00141106,0.001416359,0.001446936,0.001460559,0.001514016,0.001530081,0.001512618,0.001520194,0.001554931,0.00158335,0.001591405,0.00162191,0.001672067,0.001640636,0.001668722,0.00162912,0.001673505,0.001657887,0.001653138,0.00152975,0.001619757,0.001654794,0.001751529,0.0017516,0.001818649,0.001661281,0.001727471,0.001710551,0.001816567,0.001909956,0.001824711,0.001771553,0.001832797,0.001841262,0.001848157,0.001798163,0.001855614,0.001819374,0.001840863,0.001828319,0.001891687,0.001866126,0.001859606,0.001801884,0.001863137,0.001927894,0.001955291,0.002006511,0.002026148,0.001914323,0.001845872,0.001858213,0.001880177,0.001924525,0.001801232,0.001844022,0.001903088,0.00196789,0.00198648,0.001985943,0.001885644,0.001876767,0.001980583,0.001980509,0.001998097,0.00195239,0.002025647,0.002037324,0.002059269,0.002056022,0.002042053,0.002057678,0.00200454,0.002064237,0.002074368,0.002067765,0.002056492,0.00203076,0.002009374,0.002017731,0.002076635,0.002099808,0.002114253,0.002133158,0.002135381,0.002115389,0.001928519,0.00198996,0.001982162,0.002029357,0.001974059,0.002033768,0.002063726,0.002202776,0.002199563,0.003659025,0,0,0,0,0 +PROPERTIES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004975124,0.004982752,0.00499232,0,0,0,0.004681648,0.004688965,0.004697776,0,0,0,0.00473836,0.004746182,0.004744224,0,0,0,0.004393673,0.004397537,0.004399859,0,0,0,0.002876043,0.002876663,0.002877284,0,0,0,0.00368252,0.003683386,0.003679925,0,0,0,0.003807711,0.003805899,0.003804391,0,0,0,0,0.002738307,0.002738307,0.00273932,0,0,0,0.003947594,0.003950306,0.003943759,0,0,0,0.003909043,0.003909416,0.003908298,0,0,0,0.00291463,0.002914356,0.002913534,0,0,0,0.003295927,0.003294376,0.003298127,0,0,0,0.002993247,0.002993575,0.002990845,0,0,0,0.003573822,0.003573024,0.003572891,0,0,0,0.003218773,0.003203251,0.003200496,0,0,0,0.00241988,0.002413068,0.002410383,0,0,0,0.002601981,0.002484576,0.002480007,0,0,0,0.003084626,0.003109936,0.003096729,0.00627907,0.006740596,0.007037748,0.005255255,0.003715928,0.003802531,0.003735885,0.004398547,0.004457889,0.005015264,0.003282487,0.003110153,0.002933018,0.00158272,0.002526693,0.003175994,0.003256655,0.003329345,0.002573489,0.002085391,0.002061856,0.003524627,0.00414389,0.002956008,0.002285714,0.002415459,0.003067592,0.003752985,0.003318641,0.002670847,0.00206278,0.00204854,0.001901524,0.002053177,0.00215408,0.00220681,0.001946235,0.002149613,0.002161544,0.002553295,0.003012048,0.002969778,0.002625622,0.001991961,0.002159325,0.0021006,0.002346743,0.001720273,0.001936239,0.002092941,0.002383667,0.002280281,0.002270202,0.002454364,0.002342351,0.002247105,0.002221251,0.002123142,0.001761464,0.001320655,0.002153496,0.001871669,0.001865945,0.001553458,0.001901672,0.002503817,0.002350834,0.002258039,0.001878196,0.002008929,0.001908493,0.002202522,0.002174818,0.001883177,0.001980198,0.001742271,0.001992704,0.002013002,0.002157868,0.001792784,0.002089591,0.00216903,0.002341886,0.002034151,0.001529971,0.00160186,0.001600206,0.001623836,0.001486587,0.001544816,0.001770277,0.001732095,0.001913271,0.001824001,0.001909528,0.001783669,0.001912868,0.001772284,0.001932617,0.001816039,0.0019176,0.001789654,0.001984299,0.001852031,0.001768832,0.001712203,0.001671886,0.001810503,0.001675198,0.001742489,0.001658774,0.00171454,0.001695106,0.001726546,0.00172021,0.001687215,0.001780333,0.001913954,0.001979494,0.001955052,0.001830794,0.001751829,0.001780759,0.002015121,0.002060925,0.002167031,0.001835188,0.001945174,0.002010725,0.001909945,0.001820994,0.001677589,0.001396178,0.001655551,0.001882325,0.002141608,0.001973325,0.001868342,0.001508602,0.001681203,0.001884695,0.001798501,0.001754004,0.001628194,0.00149959,0.001718777,0.00174951,0.001938948,0.001878188,0.001868151,0.001624385,0.001566872,0.001824528,0.001937834,0.001855439,0.001713777,0.001571839,0.001727688,0.001822271,0.002057321,0.001906228,0.001893931,0.001663124,0.001857514,0.002044118,0.002199908,0.001872,0.001731033,0.001446617,0.001665767,0.001660654,0.001879055,0.00181377,0.001872792,0.001635091,0.001803652,0.001628661,0.001860401,0.001777881,0.00180548,0.00165063,0.001432122,0.00158417,0.001874386,0.00184523,0.001768888,0.001599872,0.001555542,0.001639641,0.001980303,0.001750989,0.001723156,0.001438436,0.001383996,0.001432144,0.001788958,0.001690436,0.001695015,0.001518351,0.00137767,0.00124774,0.001553792,0.001714922,0.001660976,0.001532647,0.001205206,0.001298687,0.001607454,0.001661277,0.001596834,0.00138968,0.001130855,0.001340431,0.00174721,0.001831888,0.00161621,0.001568975,0.001428513,0.001514479,0.001492371,0.001653349,0.001605571,0.001570021,0.001343556,0.001076162,0.001288807,0.001696871,0.001661283,0.001656993,0.001463611,0.001253186,0.001330823,0.001539746,0.001478141,0.001476874,0.001353873,0.001126195,0.001163585,0.001446599,0.001633523,0.00169067,0.00160408,0.001038685,0.00135339,0.001564906,0.001665772,0.001609519,0.001464656,0.000936202,0.001020048,0.001442575,0.001651295,0.001640743,0.00154446,0.001164394,0.0012725,0.001436488,0.001561734,0.002148706,0.002572752,0,0,0,0,0 +INCLUDE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000337227,0.000594001,0.000719289,0.000547795,0.000897871,0.001039594,0.001237223,0.001194364,0.001675683,0.001718124,0.001576845,0.001402404,0.001182512,0.001410485,0.001283451,0.001653363,0.001598533,0.001648707,0.001589525,0.001558897,0.00161312,0.001711066,0.001701618,0.001583705,0.001507219,0.001551452,0.001817605,0.001820597,0.001735961,0.001628681,0.001574101,0.001636843,0.001699326,0.001715073,0.001712077,0.001649125,0.001660345,0.001656702,0.001758954,0.001804661,0.001749813,0.001654248,0.001611748,0.001590201,0.001715674,0.001673128,0.001713522,0.001745098,0.001807222,0.00173191,0.001696392,0.001641061,0.00170701,0.001658716,0.001655887,0.001627362,0.001652261,0.001730677,0.001777311,0.001722388,0.00177037,0.001733322,0.001807721,0.001636053,0.001715181,0.001638378,0.001605835,0.001510264,0.001495745,0.001683037,0.001770817,0.001796249,0.001822805,0.001811412,0.001920656,0.001835075,0.001828443,0.001682129,0.001700528,0.001681147,0.001766544,0.001869302,0.001830516,0.001745063,0.001788921,0.001793738,0.001844592,0.001742021,0.001668972,0.001653662,0.001682009,0.001711713,0.001763886,0.001590706,0.001613206,0.001513572,0.001618456,0.001616527,0.001725582,0.001690752,0.001613564,0.001546648,0.00162526,0.001680926,0.001730091,0.001733142,0.001705386,0.001706836,0.001702651,0.001739308,0.001759005,0.001906724,0.001807223,0.001814884,0.001792323,0.001780249,0.00176461,0.001728448,0.001813807,0.001733014,0.001751447,0.001756551,0.001762075,0.001681974,0.001661654,0.001635931,0.001785253,0.001796407,0.001869421,0.001881339,0.001822092,0.001757302,0.001655579,0.001658338,0.001668739,0.001821491,0.001770828,0.001714785,0.0016481,0.001688085,0.001719534,0.001775721,0.0018161,0.001715369,0.00163551,0.001737323,0.00175109,0.001809601,0.001670883,0.001716842,0.001661407,0.001693857,0.001695908,0.001731519,0.00173024,0.001644824,0.001678097,0.001696022,0.001704499,0.001741227,0.001817565,0.001744651,0.001718531,0.001680863,0.001695352,0.00168721,0.001803044,0.002023222,0.001884388,0.001695317,0.001580732,0.001563756,0.001693578,0.001597298,0.001740715,0.001678316,0.001727605,0.001637908,0.001721539,0.001714527,0.001730506,0.001751035,0.001589279,0.002001029,0,0,0,0,0 +SCIENTIFIC,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000888099,0.000888099,0.000888428,0,0,0,0.000572115,0.000572508,0.000628715,0,0,0,0.000619726,0.000619785,0.00066727,0,0,0,0,0,0,0,0,0,0.000392372,0.000392188,0.000392634,0,0,0,0.000401533,0.000401577,0.000401211,0,0,0,0.000595637,0.000595504,0.000669917,0,0,0,0.000553767,0.000516653,0.000516209,0,0,0,0.000806627,0.000773419,0.000679852,0,0,0,0.000503609,0.000530415,0.000557305,0,0,0,0.008672717,0.008663394,0.00867084,0,0.005435964,0.005118362,0,0.005530176,0.005572674,0.005750745,0.004781029,0.003821048,0,0.007974512,0.00799481,0.00927611,0.010985942,0.009128698,0,0.001550788,0.001664673,0.021349088,0.031500384,0.030293418,0.001536376,0,0.001043297,0.016274286,0.014414836,0.012862969,0.001023541,0.000518538,0.000754805,0.000941704,0.000868025,0.009421188,0.010984499,0.013389086,0.001418663,0.00129749,0.001755517,0.001684733,0.001904839,0.001378395,0.000757002,0.000543232,0.000640273,0.00089695,0.001222167,0.001484674,0.001824532,0.001305836,0.001170628,0.001036377,0.001275412,0.001352461,0.000920387,0.001056354,0.000914077,0.001056005,0.000749344,0.000568214,0,0.00095711,0.001017211,0.000914679,0.000621383,0.000559315,0.001160305,0.001063473,0.000934361,0.000695628,0.00093006,0.001305811,0.001817081,0.001619546,0.001321528,0.00100633,0.001108718,0.001410221,0.001518002,0.001438579,0,0.000963171,0.000808573,0.000780629,0,0.001548185,0,0.001074591,0.000873427,0.000861545,0.001376902,0.001622754,0.001526181,0.001234101,0.001366816,0.001316735,0.001381256,0.001352812,0.001383545,0.001395144,0.001383344,0.001345554,0.001291309,0.001125184,0.001383129,0.001335355,0.001330388,0.001116181,0.001134336,0.001078883,0.0011972,0.001302714,0.001482147,0.001574465,0.001623177,0.00154199,0.001718725,0.001562624,0.001539348,0.001390045,0,0.001132642,0.001399131,0.001611648,0.001529654,0.00142502,0.001249633,0.00110651,0.001391459,0.001534093,0.001511914,0.001444292,0.00130189,0.001164651,0.001296616,0.001414716,0.001292136,0.001267097,0.001154423,0.001295317,0.001420922,0.001618577,0.001516685,0.001377574,0.001211635,0.001076629,0.001140436,0.001408604,0.001378448,0.001323159,0.001184439,0.001064534,0.001247851,0.001186335,0.001125105,0.001049435,0.001041318,0.001060738,0.000985632,0.001142011,0.00124754,0.001268081,0.001227368,0.00111872,0.00094961,0.001082807,0.001117864,0.001156046,0.001139854,0.00122798,0.001299125,0.001330421,0.001242109,0.001151028,0.001103998,0.001079659,0.001233643,0.001362565,0.001231513,0.001249267,0.001191529,0.001213592,0.001297576,0.001368907,0.001231428,0.001192022,0.001158694,0.001241022,0.001525379,0.001605363,0.001492317,0.001611309,0.001635664,0.00178674,0.001693384,0.001722935,0.001581344,0.001625356,0.001607108,0.001690514,0.001785253,0.00182762,0.001696166,0.00164132,0.001648522,0.001640266,0.001686951,0.001745279,0.001816745,0.001749998,0.001738066,0.001756765,0.001898051,0.00187478,0.001758434,0.001603152,0.001562798,0.001571137,0.001652711,0.001881947,0.001731093,0.001699353,0.001699218,0.001736756,0.001791757,0.001895084,0.001806212,0.001643676,0.001712533,0.001733381,0.001813323,0.001877026,0.001841074,0.001823037,0.001757154,0.001738553,0.001780783,0.002019758,0.001972719,0.001981365,0.001864963,0.001859871,0.001850078,0.002201636,0.002732859,0.002362683,0.002040182,0.001771366,0.001804786,0.001988113,0.002059815,0.002417985,0.002014579,0.001981559,0.001717375,0.001845795,0.001861869,0.001853713,0.001837081,0.00150028,0.001715168,0,0,0,0,0 +DEVELOPED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000490512,0.001056001,0.001094571,0.000746993,0.00122437,0.001578643,0.001767461,0.001660913,0.001675683,0.001666451,0.001635247,0.001599232,0.001739982,0.001880646,0.001667011,0.001574631,0.001512947,0.001572904,0.00155018,0.001573399,0.001510574,0.001463129,0.001649014,0.001709464,0.001823088,0.001623539,0.001506657,0.00143814,0.001518196,0.001590897,0.001638496,0.001655317,0.001489065,0.001416534,0.001458357,0.00155789,0.001580599,0.001592446,0.001483875,0.001535394,0.001607387,0.001718781,0.001750753,0.001753122,0.001678538,0.00162649,0.001733897,0.001834148,0.001866529,0.001869091,0.001619283,0.001577943,0.001489755,0.001596666,0.001659093,0.001753935,0.001694356,0.00156373,0.001476139,0.001584487,0.001700433,0.001755262,0.001649058,0.00137046,0.00156025,0.001615321,0.001711289,0.001664333,0.001761058,0.001637549,0.001697427,0.001731519,0.001734916,0.00174758,0.001763326,0.001727793,0.001777545,0.001690422,0.001752941,0.001701008,0.001774657,0.001529429,0.001659421,0.001628526,0.001741999,0.00169772,0.001732919,0.001543116,0.001547476,0.001650677,0.001841945,0.001924229,0.00196444,0.001584932,0.001675837,0.001538732,0.001758779,0.001725211,0.001909686,0.001685245,0.001675842,0.001604699,0.001698033,0.001700767,0.001749355,0.001730861,0.001655228,0.001663245,0.001627217,0.001642962,0.001604144,0.001658957,0.00161298,0.001584479,0.001716782,0.001731312,0.001754989,0.001513939,0.001457588,0.001514212,0.001517162,0.001612702,0.001643843,0.00170595,0.001575672,0.001557899,0.001680575,0.001706898,0.001730258,0.001629479,0.001468392,0.00150962,0.001601858,0.001666691,0.001726799,0.001711436,0.001551982,0.00146162,0.001523244,0.001634014,0.001669828,0.001686439,0.001650421,0.001478076,0.001545379,0.001562945,0.001613025,0.001574479,0.001512763,0.001415807,0.001563496,0.00168213,0.001729057,0.001718567,0.001394467,0.001376206,0.001440924,0.001532481,0.0015641,0.001547923,0.001382741,0.001391653,0.001475915,0.001601378,0.001629143,0.001651583,0.001477136,0.001498886,0.001533329,0.001707672,0.001745138,0.001787149,0.001393783,0.001385759,0.00147544,0.001587645,0.001665474,0.001662189,0.001675445,0.00142654,0.001349683,0.001363828,0.001284138,0.001600823,0,0,0,0,0 +CHEMISTRY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004057428,0.00406377,0.004071406,0,0,0,0.009270705,0.009286009,0.009282178,0,0,0,0.00685413,0.006860158,0.00686378,0,0,0,0.005536382,0.005537576,0.005538771,0,0,0,0.00368252,0.003683386,0.003679925,0,0,0,0.003887038,0.003885189,0.003883649,0,0,0,0,0.006216696,0.006216696,0.006218998,0,0,0,0.003890383,0.003893055,0.003886603,0,0,0,0.009629594,0.009630513,0.009627758,0,0,0,0.00911997,0.009119113,0.009116541,0,0,0,0.007180413,0.007177033,0.007185206,0,0,0,0.006935572,0.006936332,0.006966481,0,0,0,0.006514779,0.006513324,0.0065503,0,0,0,0.005364621,0.005442083,0.005437401,0,0,0,0.006018677,0.005970796,0.005964153,0,0,0,0.004952157,0.004941236,0.004876418,0,0,0,0.00359873,0.003531999,0.003516999,0.002790698,0.003696456,0.004052037,0,0.003519203,0.00349658,0.003379087,0.002103653,0.002069734,0.003270824,0.002683916,0.002671297,0.002561973,0.001862024,0.002363681,0.002628409,0.003411734,0.003225303,0.002718475,0.00214027,0.002114724,0.002530502,0.002645036,0.002260476,0.001737143,0.002064828,0.002056681,0.002242043,0.001711174,0.002032166,0.00206278,0.002187424,0.002333689,0.002498032,0.002365264,0.002364439,0.002148968,0.002221267,0.003464827,0.004093378,0.004645701,0.0024457,0.002670892,0.002561093,0.002690851,0.003590116,0.004118774,0.003857582,0.002836816,0.002731465,0.002729126,0.003169205,0.003236246,0.003988342,0.002388279,0.002704144,0.003058772,0.004537696,0.006704926,0.007725832,0.007058683,0.007120478,0.009366311,0.00932075,0.011689692,0.009587786,0.010354864,0.008915362,0.00893882,0.00859375,0.010848275,0.010627168,0.010457637,0.006904982,0.006719688,0.00687405,0.00659125,0.005478005,0.004472104,0.004955056,0.003787384,0.003003273,0.002592276,0.002967248,0.005482396,0.005154373,0.004263321,0.002583375,0.001587945,0.001292944,0.00210958,0.003009969,0.002597962,0.002347512,0.001935758,0.001660407,0.001774826,0.00237529,0.002460942,0.002259391,0.002109112,0.002090542,0.002583756,0.002449292,0.002126296,0.001797713,0.001609876,0.001514911,0.002371473,0.002817837,0.002522275,0.002060546,0.001484496,0.001785215,0.002529949,0.002850219,0.002630824,0.002162642,0.001882719,0.001656746,0.001938488,0.002445565,0.002428678,0.002053901,0.001774274,0.001446831,0.001835188,0.002458722,0.00250731,0.002171768,0.001907556,0.001932744,0.002266158,0.002342813,0.002086409,0.001977506,0.001816995,0.001763701,0.001953379,0.002464703,0,0.001963748,0.001665904,0.001384725,0.001380392,0.00206968,0.002180377,0.002299375,0.002020256,0.001910706,0.001787845,0.002049637,0.002212143,0.002203216,0.001842627,0.001647098,0.001610375,0.002277149,0.0022799,0.001912397,0.001601231,0.001484809,0.001381948,0.002146246,0.001875729,0.001647692,0.001498459,0.00151723,0.001745803,0.002312442,0.002074393,0.001672478,0.001241101,0.001162344,0.001357375,0.002475547,0.002436387,0.001875605,0.001492854,0.001296242,0.001466424,0.002034161,0.002340726,0.001849867,0.001318021,0.001106295,0.001014605,0.001443508,0.001664397,0.001753443,0.001426732,0.001345011,0.001188274,0.00141906,0.001753831,0.001659665,0.001443134,0.00128265,0.001196842,0.001147136,0.00134772,0.001289579,0.001397617,0.001309166,0.001318336,0.001220419,0.001559497,0.001389494,0.001296626,0.001189843,0.001258578,0.001285571,0.001513684,0.001274553,0.001327469,0.00109198,0.001090647,0.00112793,0.001652545,0.001438051,0.001407365,0.001166396,0.001191285,0.00108954,0.001427803,0.001436189,0.001370758,0.001208719,0.00118089,0.00117457,0.001449512,0.00133205,0.001112457,0.001096719,0.001091524,0.001168032,0.001306647,0.001260913,0.001075598,0.001091743,0.001079407,0.001134986,0.001045719,0.001088477,0.001173912,0.001190912,0.001189227,0.001067419,0.000689002,0.000984194,0.001119785,0.001188332,0.00111474,0.001072807,0.0007295,0.000689829,0.000688842,0.000718484,0.000572141,0.000686067,0,0,0,0,0 +CONTROL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001006615,0.001006832,0.001007049,0,0,0,0.001488678,0.001489028,0.001487629,0,0,0,0.001983183,0.001982239,0.001981454,0,0,0,0,0.001850207,0.001850207,0.001850892,0,0,0,0.002517306,0.002519036,0.002514861,0,0,0,0.002812604,0.002812872,0.002812068,0,0,0,0.00291463,0.002914356,0.002913534,0,0,0,0.002903555,0.002902188,0.002905493,0,0,0,0.002774229,0.002774533,0.002772003,0,0,0,0.002792048,0.002791425,0.002791321,0,0,0,0.00373793,0.003719905,0.003716705,0,0,0,0.003195483,0.003217424,0.003213844,0,0,0,0.002881764,0.002903325,0.00287012,0,0,0,0.003442264,0.003398716,0.003428521,0.003255814,0.003913894,0.003412241,0,0.003803362,0.003868092,0.003777862,0.002294894,0.001751313,0,0.002838386,0.002900265,0.002933018,0.00307234,0.003423262,0.003723579,0.003670199,0.003641471,0.002827214,0.002195149,0.002008988,0.002982377,0.002821372,0.002521301,0.002011429,0.001753156,0.001882386,0.001754642,0.002126005,0.001916043,0.001928251,0.001840214,0.001843902,0.00184786,0.002069606,0.002259353,0.002027328,0.002221267,0.002511205,0.002836994,0.002348377,0.00186339,0.001810774,0.002098673,0.002391868,0.002788069,0.002681992,0.00208518,0.001846182,0.001631784,0.001796386,0.00200974,0.002366807,0.002198701,0.001974923,0.002323278,0.00276746,0.003330419,0.00363657,0.003763867,0.003170425,0.003173699,0.003183082,0.003106917,0.002628782,0.002320611,0.002518751,0.002803083,0.002643386,0.002566964,0.00215961,0.002367711,0.002591273,0.003006475,0.003148839,0.002850988,0.002789785,0.002277002,0.002470603,0.002987973,0.003787384,0.003940191,0.003873685,0.003004572,0.002313171,0.0024803,0.002861682,0.003198465,0.0033955,0.00272022,0.001873543,0.001617025,0.001700685,0.001897434,0.001862315,0.001910556,0.001364644,0.001490678,0.00156439,0.001745699,0.001892729,0.001874279,0.00162206,0.001404086,0.001546957,0.001789759,0.001924696,0.001877011,0.001640729,0.001498785,0.001575622,0.00166634,0.001828015,0.001815947,0.001534241,0.001492426,0.001690808,0.002113849,0.002164247,0.002131741,0.001392592,0.001372898,0.001621835,0.002107044,0.002299801,0.00240281,0.001877598,0.001738607,0.001766867,0.001879676,0.001949233,0.001966898,0.001666292,0.001438521,0.001462269,0.001805129,0.001956869,0.002032054,0.001727089,0.001590902,0.001844595,0.001792096,0.001935545,0.001856445,0.002064821,0.001575816,0.001659549,0,0.001949222,0.001958935,0.002118852,0.001710854,0.001906749,0.001856285,0.002140801,0.002098241,0.002324294,0.001897625,0.001941832,0.001761497,0.001963708,0.001928721,0.002163656,0.001648984,0.001596501,0.001698436,0.001944991,0.002034994,0.001977591,0.001509872,0.001565759,0.00161024,0.001893413,0.001947155,0.001972094,0.001467705,0.001338031,0.001315826,0.001588874,0.001704073,0.001739723,0.001377392,0.001339648,0.001565167,0.001682756,0.001680148,0.001602008,0.001432736,0.001435876,0.001513585,0.001628413,0.001674961,0.00167128,0.00147475,0.001364899,0.001281734,0.001314602,0.001317813,0.001384562,0.001294677,0.001205749,0.001314221,0.001579168,0.001567575,0.001630061,0.001394523,0.001464819,0.00132262,0.001411394,0.001470029,0.001494561,0.001406791,0.001262011,0.001374322,0.001404381,0.001366294,0.001339176,0.00128963,0.001280829,0.001292245,0.001417693,0.00145961,0.001485522,0.00142123,0.001168202,0.001135154,0.001334523,0.001388962,0.001421104,0.00137499,0.001203645,0.001154198,0.00130069,0.001375732,0.001415935,0.001351634,0.001056623,0.001073519,0.001121089,0.001300974,0.001354944,0.001440364,0.001355214,0.001213384,0.001125618,0.001245166,0.001259596,0.001333644,0.001178141,0.001122232,0.001280593,0.001269395,0.001417553,0.00138994,0.001585259,0.001098369,0.001055665,0.001118597,0.001462137,0.002401235,0,0,0,0,0 +IMPACT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000475631,0.000474582,0.000501574,0,0,0,0.000357638,0.000377635,0.000353912,0,0,0,0,0.00054646,0.000568194,0.000566679,0,0,0,0.000366866,0.000343452,0.000371044,0,0,0.00109517,0.001188938,0.001144462,0.001051144,0.001152453,0.00111023,0.000903751,0,0,0.000594286,0.000623344,0.00069718,0.000877321,0.000725953,0,0.000538117,0.000590257,0.00060503,0.000547514,0.000549079,0.000577974,0.000527105,0.000358269,0.000381449,0.000405285,0.00061262,0.000698771,0.000633771,0.000604702,0.000697628,0.000763854,0.000718391,0,0,0.000815892,0.000932739,0.00100487,0.00067623,0.000511326,0,0.000457038,0.00036414,0,0,0,0.000837471,0.000447573,0.00076833,0.000737893,0.000894905,0,0,0.000389317,0.000591284,0.000669643,0.001054693,0.00071582,0.000601546,0.000528611,0.000681708,0.000823619,0.000919709,0.000792001,0.000688016,0.000647394,0.000587698,0.000590387,0.000515509,0.000522534,0.000655702,0.000813848,0.000770902,0.000615089,0.000506791,0.00057091,0.000914643,0.000648021,0.000692974,0.000691699,0.000702958,0.000681564,0.000552168,0.000572396,0.000567206,0.000598952,0.000678995,0.000639386,0.000609074,0.000589402,0.000614263,0.00067812,0.000674955,0.00076854,0.000813471,0.000721975,0.000673744,0.000624877,0.000637965,0.000628597,0.000557906,0.000541398,0.000620573,0.000683105,0.000746049,0.000741176,0.000694439,0.000597546,0.000713119,0.000686549,0.000738045,0.000634462,0.000640002,0.000522156,0.000574176,0.000605371,0.00066524,0.00070519,0.000796312,0.000706739,0.000818316,0.000766732,0.000795364,0.000697042,0.000736094,0.000719757,0.000763721,0.000810863,0.00085431,0.000903495,0.000811317,0.000734298,0.000681812,0.000741449,0.000757295,0.000754637,0.000735571,0.000686036,0.000738033,0.000739473,0.000880547,0.000882425,0.000920794,0.000739224,0.000756531,0.000885978,0.000978335,0.001038114,0.001011036,0.000856574,0.000839815,0.000846233,0.000943514,0.000960826,0.001022495,0.000857422,0.000918579,0.001005076,0.001094141,0.00111887,0.001134266,0.001120743,0.001066273,0.000953697,0.001011745,0.001055952,0.001163026,0.001181273,0.001090946,0.000987594,0.001193679,0.001239828,0.001380931,0.00145859,0.001593937,0.001662462,0.00193129,0.001958941,0.002126384,0.001994522,0.002037352,0.001913277,0.002034542,0.002061829,0.00216448,0.002117222,0.002079567,0.002054839,0.002208872,0.002283647,0.002301753,0.002224476,0.002077543,0.002055758,0.002143951,0.002191376,0.002297092,0.002373361,0.002316119,0.002126333,0.002137535,0.002188576,0.002234601,0.002317366,0.00227278,0.002212826,0.002122783,0.002181019,0.00219471,0.002231562,0.002171204,0.002118222,0.002046885,0.002134259,0.002149431,0.002315055,0.002491693,0.002320661,0.00229456,0.002301073,0.002359294,0.00236368,0.002317613,0.002213861,0.002205785,0.002223812,0.002238399,0.002226711,0.002201636,0.002165973,0.002076635,0.002161045,0.00218846,0.002342274,0.002516699,0.0024811,0.002271263,0.002233751,0,0.002336189,0.002539221,0.002449005,0.002004923,0.0020608,0.001843564,0.00177234,0,0,0,0,0 +AWARD,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000230869,0,0,0,0.000231705,0.000343452,0.000300369,0.000931012,0,0,0,0,0,0,0.000528681,0.000903751,0.001322518,0.001912711,0.00128,0.001090852,0.001150347,0.002095823,0.003266788,0.003193404,0.001838565,0.000624978,0.000547408,0.00092393,0.002365264,0.002574611,0.001662409,0.000644884,0.00085826,0.000932155,0.00091893,0.000815233,0.000769579,0.00049799,0.000498306,0.00042012,0.00052682,0,0,0.000922313,0.001105469,0.001236763,0.000869439,0.000818121,0.00087264,0.000799817,0.000873935,0.000915865,0.001534178,0.001386688,0.001375845,0.000895146,0.001207376,0.002174842,0.004138934,0,0.003638195,0,0.001565163,0.001785714,0.003314751,0.003964539,0,0.004625347,0.006135368,0.009946782,0.009564977,0.005643006,0.001157118,0.001394388,0.002677289,0.003863184,0.003991516,0.002967248,0.00069213,0.001214313,0.001962296,0.003518311,0.004071221,0.004197871,0.002375122,0.001768432,0.001891184,0.00190691,0.001959365,0.001729288,0.001818211,0.002314071,0.002476952,0.002990496,0.002857747,0.003062158,0.002243957,0.002674574,0.002594697,0.003142021,0.002986022,0.003051991,0.002337004,0.002924458,0.002980677,0.003096844,0.003245034,0.003352517,0.003331939,0.002500745,0.002345971,0.002458549,0.002630528,0.002673281,0.002172444,0.002113271,0.002125093,0.002198967,0.001993381,0.001984837,0.001565307,0.00201116,0.002205812,0.002391215,0.00234998,0.002254198,0.001831168,0.001986661,0.001991302,0.002065762,0.001956869,0.001913911,0.001560622,0.001659956,0.001656854,0.001598668,0.001401602,0.0013619,0.001265039,0.001514083,0.001583792,0.001454947,0.001397805,0.001350402,0.00141393,0.001657214,0.001709027,0.001646192,0.001467579,0.001339243,0.001332514,0.00158041,0.001517185,0.001402923,0.001322042,0.001349826,0.001389925,0.001636152,0.001583712,0.001534264,0.001383605,0.001363961,0.00130853,0.001411716,0.001505027,0.001573162,0.001537865,0.001504411,0.001508715,0.001660462,0.001645646,0.001554941,0.001453435,0.001406467,0.001348436,0.001416159,0.001657318,0.001537923,0.00131139,0.001155313,0.00112461,0.001281921,0.001571084,0.001428512,0.001190844,0.001063256,0.001015084,0.001045732,0.001330367,0.001488104,0.001440694,0.001350578,0.001182322,0.000853897,0.000749844,0.001025366,0.001040239,0.001036748,0.000902703,0.000877282,0.001030733,0.001245839,0.001191626,0.001116189,0.00097109,0.000872465,0.000990278,0.001168548,0.001151672,0.001016808,0.0009617,0.001007896,0.001289325,0.001362289,0.00127029,0.001084374,0.000949859,0.000857566,0.000936922,0.001890878,0.003256513,0.003111919,0.003082901,0.002520928,0.001757763,0.001608027,0.001302572,0.001215848,0.001169789,0.001221023,0.001160981,0.001124363,0.001109969,0,0.00111619,0.001115476,0.00113716,0.001118674,0.001223134,0.00123496,0.001266633,0.001166518,0.000812602,0.000978816,0.00106227,0.001197939,0.001173855,0.001187593,0.001066192,0.001223386,0.001450489,0.001755337,0.002186848,0.004402264,0,0,0,0,0 +COMPUTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001096921,0.001097179,0.001096148,0,0,0,0,0,0,0,0,0,0,0.001110124,0.001110124,0.001110535,0,0,0,0.00114423,0.001145016,0.001143118,0,0,0,0.001763837,0.001764005,0.0017635,0,0,0,0.001128244,0.001128138,0.00112782,0,0,0,0.002158048,0.002196251,0.002198751,0,0,0,0.001715642,0.001715829,0.001714265,0,0,0,0.006514779,0.006550543,0.006513082,0,0,0,0.004430139,0.004477663,0.004473811,0,0,0,0.003691869,0.003681475,0,0,0.006648936,0.005428882,0.004364613,0.004243321,0.004291248,0.004747518,0,0.005993151,0.003710492,0.003687496,0.003649716,0.003023256,0,0.002559181,0,0.002513716,0.002513167,0.00245561,0.0032511,0.002865786,0.003488879,0.002568063,0.002594974,0.002561973,0.002793036,0.002282175,0.002299858,0.002222797,0.002705093,0.002645982,0.002304906,0.001956119,0.001626751,0.001763357,0.002608242,0.002788571,0.00276609,0.002300694,0.001608422,0.00191859,0.002961157,0.002825112,0.003263776,0.002535365,0.002634911,0.001858422,0.002942413,0.002878806,0.003761823,0.004132363,0.004498663,0.003624668,0.001455774,0.005658669,0.00483762,0.004883396,0.003704694,0.004454023,0.004535266,0.004998199,0.00446967,0.004663696,0.00398083,0.003719268,0.00317022,0.001653424,0.003046923,0.004406088,0.006494317,0,0.004754358,0.002033858,0.004557106,0.005231963,0.006446852,0.006320264,0.005862595,0.004030001,0.005722962,0.006504122,0.007105655,0.00517302,0.003579098,0.003285364,0.004592309,0.005486122,0.006240497,0.005395628,0.003564004,0.002595697,0.003660267,0.004407731,0.00499262,0.00483106,0.004366894,0.004626341,0.004921845,0.004753895,0.004108797,0.003226569,0.003526212,0.003481545,0.003736722,0.002896134,0.002766796,0.002310844,0.001946809,0.001837931,0.002090622,0.002360308,0.002466146,0.002725927,0.00257635,0.002445913,0.002347129,0.002463216,0.002330664,0.002136961,0.001762469,0.001937163,0.002260362,0.002313329,0.002244738,0.002063163,0.002005923,0.001735708,0.002638243,0.002691864,0.002637983,0.002199438,0.001909159,0.00151514,0,0.00253259,0.002592512,0.002462896,0.00214774,0.001731091,0.002151741,0.00250066,0.002324624,0.002146401,0.00178608,0.001676816,0.001580425,0.001955637,0.002142987,0.002276386,0.002183952,0.001771306,0.001691827,0.002138053,0.00225325,0.002191838,0.001903997,0.001614944,0.001569318,0.001751877,0.001961015,0.001967281,0.001903614,0.00157126,0.001301491,0.001542627,0.001709773,0.001712175,0.001654192,0.001496796,0.001277356,0.001298677,0.001476132,0.001623519,0.001647623,0.001443767,0.001065103,0.001176593,0.001311885,0.001463037,0.001514654,0.001576483,0.001818775,0.001865626,0.001583756,0.001490459,0.00139344,0.001583604,0.001489734,0.001500331,0.001257775,0.001442317,0.001435125,0.001544681,0.001377392,0.00128113,0.001196011,0.001458942,0.001524641,0.001585988,0.001221596,0.001062624,0.001098856,0.001340501,0.001397655,0.001479809,0.001233427,0.001045029,0.000958503,0.001252777,0.001388139,0.001571244,0.001383202,0.001071777,0.001063697,0.001103209,0.00114338,0.001169896,0.001267748,0.001143274,0.001072462,0.001019068,0.001094169,0.00118179,0.001346181,0.001280249,0.001138617,0.001151672,0.001268042,0.001296674,0.001265822,0.001072667,0.001043516,0.00112101,0.001211605,0.001256168,0.001265881,0.001130442,0.00101129,0.000997615,0.001080594,0.001105463,0.001158209,0.001089886,0.001103908,0.001103986,0.001104557,0.001095706,0.001112803,0.001006618,0.00101396,0.001140296,0.001209216,0.001221188,0.0011036,0.001019927,0.001061025,0.001159981,0.001229588,0.001274309,0.001286613,0.001012465,0.000969852,0.00097541,0.001100663,0.001173855,0.00127074,0.001398876,0.001196597,0.001069665,0.001045458,0.001017139,0.000686067,0,0,0,0,0 +LABORATORY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00136612,0.001366415,0.00136671,0,0,0,0.005171198,0.005172414,0.005167554,0,0,0,0.003569729,0.00356803,0.003566616,0,0,0,0,0.008732978,0.008732978,0.008736211,0,0,0,0.003718748,0.003721303,0.003715135,0,0,0,0.002431234,0.002431466,0.002430771,0,0,0,0.002397518,0.002397292,0.002396617,0,0,0,0.001373303,0.001372657,0.00137422,0,0,0,0.001825151,0.00182535,0.001823686,0,0,0,0.00152632,0.001525979,0.001600357,0,0,0,0.001107535,0.001136638,0.00113566,0,0,0,0.000837651,0.000835293,0.000834363,0,0,0,0.000895305,0.000921247,0.000919553,0,0,0,0.001095266,0.001110692,0.001061735,0,0,0,0,0.000983628,0.001005267,0.001028418,0,0,0,0.000810967,0.00082047,0.000777426,0,0,0,0.001033859,0.001196483,0.000978651,0.000658545,0,0,0,0,0.00064,0.000740221,0.00069718,0.000731101,0.00082966,0.001799919,0.001434978,0.001319399,0.000806707,0.00092393,0.000844737,0.001944094,0.001621863,0.00171969,0.005340284,0.00672773,0.007861956,0.000931695,0.002399276,0.002347668,0.002192545,0.005461559,0.006321839,0.006933222,0.002476585,0.002199361,0.002003662,0.004290021,0.005168333,0.005368922,0.00087264,0.001066423,0.001857112,0.005994755,0.007329962,0.00719757,0.000777651,0.000773081,0.000878092,0.001126257,0.001733878,0.001648855,0.001343334,0.000973293,0.000973879,0.00093006,0.000904023,0.000660757,0.000601546,0.001222413,0.001460802,0.001805626,0.001962047,0.001452001,0.001188391,0.002639377,0.002563014,0.002258872,0.001590715,0.00125035,0.004608127,0.005231882,0.005034223,0.002977033,0.001402122,0.001091446,0.0019178,0.003367289,0.002459919,0.002186432,0.001481983,0.001261619,0.001534238,0.002216121,0.002353447,0.00237236,0.002541878,0.002836493,0.002894704,0.002729585,0.002504304,0.002318732,0.002065411,0.001743995,0.002688589,0.003098097,0.002908185,0.002382452,0.001975238,0.001913729,0.002006912,0.003514792,0.003344992,0.002952778,0.002100903,0.001730175,0.001444582,0.001976273,0.002789312,0.002670072,0.002548562,0.001941968,0.001580729,0.002441509,0.00295734,0.002751411,0.002436542,0.001954844,0.001641737,0.001655551,0.001967525,0.002617368,0.002764575,0.002664961,0.001838933,0.001434202,0.002364071,0.002605521,0.002675057,0.002234962,0.001576493,0.00148809,0.001936535,0.002450901,0.002537961,0.002506472,0.001939046,0.001674153,0.002008547,0.00239534,0.002395881,0.002279834,0.001819277,0.00141897,0.001669728,0.00217087,0.002147879,0.002101276,0,0.001353835,0.00141106,0.001598441,0.001622972,0.001649891,0.001763886,0.001960235,0.001886502,0.001397042,0.001199383,0.001098278,0.001391699,0.00194409,0.002017426,0.001389081,0.001254321,0.001051543,0.00122202,0.001660167,0.001837052,0.001418049,0.001187877,0.00108094,0.001091501,0.001109562,0.001272102,0.001317445,0.001316271,0.001264933,0.001223874,0.001020981,0.00116498,0.00128795,0.00132111,0.001302629,0.001233142,0.001222751,0.001231744,0.001279996,0.001231604,0.001169065,0.001125363,0.00112069,0.001196865,0.001289183,0.001058952,0.001025831,0.000921459,0.00113245,0.001243774,0.001252105,0.00109274,0.000956802,0.000895425,0.000902741,0.001310566,0.001502377,0.00127874,0.001033352,0.000903837,0.000922645,0.001319243,0.001611793,0.001248176,0.001169195,0.001062224,0.001141848,0.001157775,0.001060979,0.000968459,0.001011552,0.001024014,0.001047871,0.001097931,0.001022676,0.001003824,0.000911149,0.000915557,0.000928856,0.001050408,0.000981414,0.00094173,0.000857327,0.000839944,0.000788597,0.000859938,0.000885595,0.000955456,0.000829851,0.000782972,0.000738751,0.000715471,0.000859496,0.000840051,0.000795925,0.000622998,0,0,0,0,0,0 +COMMUNITY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000372273,0.00037219,0.000372176,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000447653,0.000474582,0.000473709,0,0,0,0.000424695,0.000399849,0.000464509,0,0,0,0,0.000393451,0.000415219,0.000440751,0,0,0,0.000965437,0.000896793,0.000918777,0,0,0,0,0,0.000434956,0,0,0,0,0,0,0.000428549,0.000522885,0.000731101,0.000622245,0,0,0.000451373,0.000518597,0.000615953,0.000718027,0.000735603,0.000689292,0.00057323,0.000540386,0.000729513,0.000816827,0.000989926,0.000452694,0.000426849,0.000531526,0.000687469,0.000670498,0,0,0,0.000414551,0.000618381,0.000821137,0.000818121,0.00059707,0.000380865,0.000509795,0.000416302,0,0,0,0,0,0.000388365,0,0,0,0.000389317,0.000417377,0.000446429,0.000602682,0,0,0,0.000454472,0.000316776,0.000521169,0.000528001,0.000750563,0.000522895,0.000506073,0.000410704,0.000456594,0.000541196,0.000564632,0.00043922,0.000385451,0.000442864,0.00055747,0.000554119,0.000590092,0.000454221,0.000491432,0.000530618,0.000605908,0.000645311,0.000619217,0.000661163,0.000615235,0.000590426,0.000517329,0.000507748,0.000593046,0.000573684,0.000577284,0.00056278,0.000641565,0.000690947,0.000623891,0.000597077,0.000569271,0.000593892,0.000570488,0.000611834,0.000608273,0.000641657,0.000665336,0.000662644,0.000691503,0.000695283,0.000865264,0.000772437,0.000686631,0.000650641,0.000721571,0.000803795,0.000944582,0.000809055,0.000747094,0.000770334,0.000817524,0.000871945,0.000985744,0.000895945,0.000830204,0.000843956,0.001099796,0.001174676,0.001373348,0.000868489,0.00079653,0.000940242,0.001042525,0.001183103,0.00111508,0.000838269,0.000859367,0.000832659,0.000957153,0.000960318,0.00108701,0.000988117,0.000949459,0.000845902,0.000899183,0.000947684,0.001056682,0.000906328,0.000898767,0.00080231,0.000994758,0.001006108,0.001154615,0.000917528,0.000937864,0.000919365,0.001078761,0.001088335,0.001144142,0.0009729,0.001053329,0.001014345,0.001081815,0.001068533,0.001146748,0.001200599,0.001256881,0.00118452,0.001127979,0.001155154,0.001253323,0.001425281,0.00128322,0.001196011,0.001314705,0.00139787,0.001503751,0.001654648,0.00161298,0.001380068,0.001557147,0.001591917,0.001725161,0.001730511,0.001575722,0.001553994,0.00152367,0.001631882,0.001740296,0.001960459,0.00187361,0.001618134,0.001643774,0.001665646,0.001772007,0.00183739,0.00173456,0.001653275,0.001700347,0.001765401,0.001892549,0.001973016,0.001914902,0.001709796,0.001735998,0.001856894,0.001911153,0.002031663,0.002045502,0.001886906,0.001790424,0.00181095,0.001839361,0.001983844,0.002227844,0.002082161,0.001774738,0.001879312,0.001897207,0.00202874,0.002032986,0.002070442,0.002048916,0.002006385,0.001985893,0.002003194,0.002156728,0.002269063,0.002174447,0.002050816,0.001962863,0.002000222,0.002318869,0.002252447,0.002070134,0.002040182,0.002057958,0.002157513,0.002243202,0.002176341,0.001906217,0.001978551,0.002053944,0.002267759,0.002525192,0.002272641,0.001974121,0,0.001614708,0.002001029,0,0,0,0,0 +MOLECULAR,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003827019,0.003832886,0.003840246,0,0,0,0.003121099,0.003125977,0.003131851,0,0,0,0,0,0,0,0,0,0.001933216,0.001934916,0.001935938,0,0,0,0.001222318,0.001222582,0.001222846,0,0,0,0.00211549,0.002115987,0.002113999,0,0,0,0.001665873,0.001665081,0.001664421,0,0,0,0,0.001850207,0.001850207,0.001850892,0,0,0,0.002174037,0.002175531,0.002171925,0,0,0,0.001954522,0.001954708,0.001954149,0,0,0,0.002444528,0.002444298,0.002443609,0,0,0,0.002432708,0.002431563,0.002434332,0,0,0,0.002956744,0.002957068,0.002954371,0,0,0,0.003127094,0.003126396,0.003126279,0,0,0,0.002630395,0.002617711,0.002615459,0,0,0,0.003040362,0.002969929,0.00302843,0,0,0,0.002462089,0.002568326,0.002563602,0.004315926,0,0,0.003017569,0.003021081,0.002986131,0.003023256,0.002826701,0.003198976,0.003753754,0.003082035,0.003081361,0.003043278,0.002103653,0.002547365,0.002180549,0.002664607,0.002499571,0.002473629,0.001489619,0.002363681,0.003175994,0.002998191,0.002809135,0.001921055,0.001317089,0.001268834,0.002169001,0.002645036,0.003477656,0,0.001947951,0.002579566,0.003070624,0.003214934,0.001625733,0.001928251,0.001840214,0.001843902,0.00181364,0.001436053,0.001261034,0.001054211,0.001218114,0.001557583,0.001742725,0.002297325,0.002096314,0.001991852,0.002276527,0.002425088,0.002940839,0.002490421,0.002189439,0.001756124,0.001844626,0.001727295,0.001777846,0.002125296,0.002403232,0.002709778,0.002361365,0.002548977,0.002414554,0.002727428,0.002443212,0.002632051,0.002115799,0.002012293,0.001631131,0.001677946,0.001709924,0.001735139,0.002180176,0.002469479,0.002678571,0.002561398,0.002973405,0.003192818,0.002643055,0.002174972,0.001964014,0.001962047,0.001914002,0.001907681,0.001817684,0.001616168,0.001411795,0.001443427,0.001418307,0.001602827,0.001666451,0.001845493,0.001832966,0.001756875,0.001561608,0.001475231,0.001677588,0.001601294,0.0016416,0.001579033,0.001848925,0.001830043,0.001916149,0.001667311,0.001662571,0.001703705,0.001880548,0.001977887,0.001752488,0.001620915,0.001608794,0.001729126,0.001788334,0.002316323,0.002242084,0.001984986,0.001752411,0.001562196,0.00170699,0.001851938,0.002051012,0.001869859,0.001709337,0.001608229,0.001702639,0.001875357,0.001993762,0.00190097,0.00190309,0.001812164,0.001841226,0.001873742,0.002166086,0.002232415,0.001964428,0.001731227,0.001715762,0.001915359,0.001919882,0.001822883,0.001936135,0.001910245,0.001971295,0.001945576,0.002209733,0.001833658,0.001824121,0.001743325,0.002016221,0.002003299,0.002232136,0.001898656,0.001843325,0.001824009,0.001873825,0.001896137,0.001959295,0.001941987,0.002015237,0.001886887,0.001857064,0.001721924,0.001971264,0.001861437,0.001797355,0.001672788,0.001717202,0.001792744,0.002021129,0.001903438,0.001598441,0.00140722,0.001358809,0.001359491,0.001657106,0.001685326,0.00166056,0.001510369,0.001440345,0.001366736,0.001467705,0.001592804,0.001585349,0.001602013,0.001548656,0.001594044,0.001760507,0.001782714,0.001551545,0.001378534,0.001349696,0.001377727,0.001400418,0.001487293,0.001432057,0.001336225,0.001248621,0.001230609,0.001284992,0.001557547,0.001414756,0.001413848,0.001255478,0.001255958,0.001077054,0.001287732,0.001245772,0.0013739,0.00135431,0.001344313,0.001142664,0.001211155,0.001296614,0.001320231,0.001252865,0.001196773,0.001127665,0.001276601,0.001303236,0,0.001121654,0.001081282,0.00103964,0.001263836,0.001252219,0.001275923,0.001185126,0.001186003,0.001144122,0.001307443,0.00145814,0.001433976,0.001173973,0.001117954,0.000992556,0.001310065,0.001172596,0.001164221,0.001026182,0.001025806,0.001012792,0.001280557,0.001151963,0.001073576,0.001027454,0.001080745,0.001134986,0.001216879,0.001165343,0.001132119,0.001113022,0.001090072,0.001079176,0.001183401,0.001176013,0.001097484,0.001012394,0.000988668,0.000949928,0.000851751,0.000897448,0.001066865,0.001153015,0.001373137,0.001314962,0,0,0,0,0 +PROCESS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00036503,0.00036507,0.000364737,0,0,0,0.00055841,0.000558285,0.000558264,0,0,0,0,0,0,0,0,0,0.000372289,0.000371241,0.000370828,0,0,0,0.000363718,0.000390832,0.000390113,0,0,0,0.000692923,0.000688629,0.000685704,0,0,0,0,0.000808761,0.000830438,0.000881501,0,0,0,0.000849585,0.000915873,0.000954114,0.001396518,0.000978075,0,0.001137245,0.001300525,0.001123636,0.001097574,0.001057362,0.001084501,0,0,0,0.000506467,0.000522885,0.000633621,0.000570391,0.000754805,0.000896861,0.000868025,0.000749085,0.000615953,0.000591316,0.000630517,0.001013664,0.00103898,0.000921835,0.000607927,0,0,0.00067904,0.000604702,0.000664408,0.000649276,0.000766284,0.000886201,0.000945605,0.000815892,0.00076001,0.00065703,0.00067623,0.000613591,0.000459284,0.000685558,0.000764693,0.001082386,0.001136428,0.00118859,0.00095711,0.000854457,0.000951266,0.000932075,0.001174562,0.001099237,0.000951528,0.000661839,0.000591284,0.000558036,0.000502235,0.000605694,0.000694091,0.000759878,0.000746632,0.000791941,0.001256936,0.001485001,0.001469852,0.00114539,0.001518219,0.001899506,0.002091496,0.002370066,0.001584613,0.001834388,0.001798771,0.002349641,0.002381918,0.002367599,0.002286608,0.001629138,0.001548838,0.001556323,0.001678706,0.001772793,0.001589455,0.001426398,0.00146147,0.001624204,0.001743499,0.001745775,0.001586798,0.001535064,0.001419585,0.001465614,0.001419076,0.001629453,0.001420127,0.001407395,0.001281393,0.001415012,0.001566286,0.00175169,0.001665969,0.001521072,0.001469029,0.001539348,0.001587114,0.001730175,0.001771377,0.001588597,0.00138345,0.001551198,0.001685313,0.001886238,0.001815911,0.001466053,0.001367825,0.001474078,0.001590164,0.001649462,0.001761008,0.001572078,0.001513786,0.001533463,0.001574272,0.001699567,0.001784312,0.001683859,0.00148005,0.001475693,0.001628528,0.00171569,0.001984074,0.001894229,0.001934167,0.00169327,0.001618131,0.001600057,0.00191657,0.001784257,0.001750138,0.001621312,0.001864757,0.001892531,0.002068743,0.001753179,0.001754245,0.001568763,0.001675134,0.001646231,0.001894445,0.001706731,0.001643394,0.001422329,0.001501679,0.001513366,0.001712926,0.001813001,0.001698611,0.001440741,0.001607078,0.001607375,0.001764587,0.001503503,0.001513542,0.00140152,0.001344276,0.001322696,0.001376127,0.00151878,0.001511022,0.00138127,0.001430757,0.001424069,0.001494139,0.001469362,0.001443493,0.001285543,0.001344064,0.001376152,0.001487507,0.00147475,0.00141397,0.00140854,0.001382122,0.001350578,0.001283961,0.001316809,0.001333723,0.001425108,0.00138535,0.001362872,0.00131648,0.001337052,0.001391578,0.001341196,0.00130558,0.00134778,0.001459913,0.001547151,0.001575691,0.001343144,0.001367423,0.001321454,0.001354304,0.001426529,0.001550588,0.001476647,0.001273107,0.001241314,0.001245605,0.001287924,0.001283842,0.001260585,0.001207315,0.001200467,0.001190979,0.001196384,0.001238507,0.001179955,0.001149162,0.001168301,0.001181738,0.001225501,0.001519711,0.001365505,0.001217124,0.001263569,0.001316823,0.001416612,0.001402107,0.001224365,0.001156266,0.001207564,0.001235926,0.001305929,0.00142797,0.001314051,0.001237163,0.001196138,0.001217889,0.001253816,0.001328732,0.001370728,0.001187273,0.001243364,0.001067996,0.001143445,0,0,0,0,0 +PHYSICS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003090235,0.003095336,0.003094059,0,0,0,0.004745167,0.00474934,0.004751848,0,0,0,0.004098361,0.004099245,0.004100129,0,0,0,0.003760871,0.003761755,0.003758221,0,0,0,0.002617801,0.002616556,0.002694777,0,0,0,0,0.004884547,0.004810539,0.004886355,0,0,0,0.003604325,0.003606801,0.003600823,0,0,0,0.008247128,0.008247914,0.008245556,0,0,0,0.008555848,0.008555044,0.008552632,0,0,0,0.007455073,0.007451565,0.007460049,0,0,0,0,0.005512558,0.005507532,0,0,0,0.006068052,0.006066696,0.006066471,0,0,0,0.00681826,0.006785382,0.006779544,0,0,0,0.006359942,0.00640391,0.006365884,0.009306261,0.007978723,0.010857763,0.005595658,0.005583317,0.005405857,0.005179111,0,0,0.00406813,0.004131772,0.004202703,0.003488372,0.002826701,0.002132651,0,0.00382522,0.003824384,0.003840826,0.003633582,0.003024996,0.002834714,0.003031473,0.003052911,0.002880011,0.001768923,0.002445187,0.003066477,0.003411734,0.002913177,0.002573489,0.001865876,0.002008988,0.002169001,0.002116029,0.001825769,0.001554286,0.002571295,0.002963015,0.004386606,0.003681618,0.004122394,0.003004484,0.004131801,0.004264024,0.004790747,0.003801318,0.003047499,0,0.002400401,0.002860867,0.003525979,0.003777823,0.002795085,0.002670892,0.002489951,0.002159325,0.00252072,0.002873563,0.003179899,0.002251441,0.002163888,0.001969116,0.002357579,0.002849829,0.003221353,0.002847563,0.003237355,0.003422912,0.003954873,0.004375249,0.00455626,0.004187354,0.00471986,0.005231963,0.005204086,0.005649086,0.005801527,0.006548752,0.006462664,0.006260652,0.005915179,0.004520115,0.003964539,0.004303364,0.004922691,0.005680896,0.005828687,0.005303657,0.003597004,0.00334626,0.003759867,0.003836359,0.002849259,0.002577547,0.002258095,0.003424221,0.003345821,0.003842829,0.003309181,0.003260355,0.001830272,0.002050571,0.002337722,0.00197677,0.001807419,0.001463622,0.00116736,0.001333091,0.00146619,0.00156439,0.001453684,0.001382861,0.001272504,0.001323934,0.001637227,0.001738016,0.001751975,0.001600336,0.001507521,0.001626941,0.001577989,0.001569226,0.001499361,0.001500854,0.001483489,0.001468378,0.001887733,0.001863755,0.00166684,0.001372449,0.001177162,0.001173491,0.001472003,0.001797059,0.001712063,0.001602942,0.001271067,0.00132627,0.001773034,0.001924266,0.001498293,0.001237507,0.001117054,0.001217271,0.001374525,0.001608892,0.001585866,0.001441254,0.001147672,0.000972788,0.001264223,0.001687841,0.00143214,0.001312166,0.000935831,0.000899754,0.001169678,0.001403869,0.001376977,0.00121721,0.001113515,0.000831603,0.001038935,0.001133478,0.001452685,0.001246277,0.001186024,0.000748398,0.001084762,0.00122859,0.001652431,0.001356061,0.001310862,0.00091731,0.001090768,0.001423849,0.001541727,0.001325642,0.001187509,0.001017563,0.001146117,0.001487946,0.001505627,0.001199383,0.001013619,0.000747336,0.001200599,0.001334257,0.001565999,0.001310922,0.00114303,0.000890931,0.000827803,0.001086766,0.001434396,0.001218548,0.001161229,0.000920621,0.00084456,0.001098807,0.001437965,0.001364731,0.001284211,0.001104565,0.000886912,0.001199511,0.001488104,0.001461844,0.001337792,0.001146023,0.001064144,0.00129773,0.001546947,0.001301116,0.001150385,0.000972284,0.000884043,0.001186146,0.001493521,0.00147244,0.001359929,0.001105938,0.00086449,0.000941037,0.001495292,0.001537228,0.001302991,0.001254892,0.001064441,0.001193741,0.001302251,0.001388588,0.001396963,0.00129389,0.001256434,0.001043122,0.001351523,0.001393115,0.001336409,0.00127073,0.001113899,0.000871542,0.001057299,0.001326101,0.00134595,0.001347229,0.001253116,0.000984877,0.001045919,0.001202972,0.001340716,0.001368319,0.00139795,0.001287219,0.001419275,0.001602984,0.00149334,0.00147326,0.001248821,0.000802083,0.00077624,0.001072834,0.001355263,0.001380154,0.001394355,0.001226522,0.0012725,0.001251677,0,0.001347709,0.001314962,0,0,0,0,0 +ENERGY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004592423,0.004599463,0.004608295,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00228471,0.002286719,0.002287927,0,0,0,0.002085131,0.002085581,0.002086031,0,0,0,0.00156703,0.001567398,0.001565925,0,0,0,0.002300492,0.002299397,0.002298486,0,0,0,0,0.002368265,0.002368265,0.002369142,0,0,0,0.001659134,0.001660274,0.001657522,0,0,0,0.002383563,0.00238379,0.002383109,0,0,0,0.001927416,0.001927235,0.001926692,0,0,0,0.002158048,0.002157032,0.002159488,0,0,0,0.001679139,0.001679322,0.001677791,0,0,0,0.001898593,0.001898169,0.001898098,0,0,0,0.002180459,0.002169945,0.002168078,0,0,0,0.002078615,0.002072763,0.002070457,0,0,0,0.002853785,0.002847492,0.002897985,0.004747518,0,0,0.002794045,0.00284337,0.002853414,0.003255814,0.00304414,0.003625507,0.004504505,0.003737787,0.003780677,0.003651933,0.00497227,0.004139468,0.005233319,0.005560919,0.005838692,0.006025054,0.011172144,0.009780748,0.009637499,0.00615146,0.006762732,0.006633078,0.007957414,0.006978588,0,0.004320226,0.004694836,0.003702857,0.006584074,0.007250671,0.009699274,0.006066891,0.003832085,0.002600897,0.002291587,0.00267942,0.003353523,0.003928028,0.003310214,0.002189515,0.001755517,0.002002607,0.001985896,0.002093118,0.002038083,0.00208239,0.002312098,0.002458308,0.002711683,0.002586207,0.002137309,0.002251441,0.001915573,0.001900024,0.001777846,0.002173598,0.002096436,0.001974923,0.002018586,0.002075595,0.002164772,0.001875107,0.002509245,0.002153496,0.002400618,0.002341578,0.002291351,0.002516919,0.002442748,0.00274264,0.002296971,0.002121665,0.001897321,0.001958716,0.00198227,0.002036,0.001784062,0.0017205,0.00161556,0.00162482,0.001650002,0.001532399,0.001394388,0.001436594,0.001244946,0.001237223,0.001231688,0.001256762,0.00124015,0.001016189,0.001082557,0.000996689,0.001292944,0.001371965,0.001296043,0.001107102,0.001172572,0.001238046,0.00164228,0.001589455,0.00143252,0.001212174,0.001227744,0.001196324,0.001184745,0.001218148,0.001157847,0.001000489,0.000910788,0.000927765,0.001045658,0.001261569,0.001124088,0.000987163,0.00085727,0.000869023,0.000997374,0.001390891,0.001323418,0.001106859,0.000887722,0.000835786,0.001002767,0.001292326,0.00133209,0.001016703,0.001052804,0.001011517,0.001097448,0.001168197,0.001116036,0.001048592,0.000935298,0.000867216,0.001000526,0.001164651,0.001279922,0.001032307,0.000984616,0.0008749,0.000965394,0.001006601,0.001221728,0,0.000931275,0.000860984,0.000930125,0.000895909,0.001120941,0.0010748,0.00097683,0.000889731,0.000856768,0.000964415,0.001036111,0.001021892,0.001025587,0.000992363,0.000991664,0.000987723,0.001186723,0.00108017,0.000948728,0.000818798,0.000801546,0.000851503,0.001033021,0.00104444,0.000955184,0.000956394,0.000946659,0.000981398,0.001013317,0.000985005,0.001069962,0.001063801,0.001091413,0.001070298,0.001010596,0.000932281,0.000921907,0.000893489,0,0.000868056,0.000770792,0.000829704,0.000931744,0.000968207,0.000972762,0.000934505,0.000799316,0.000875999,0.001025599,0.001125992,0.001077343,0.00102663,0.000833285,0.000903268,0.001061689,0.001107162,0.001101241,0.001037125,0.000888938,0.001003791,0.001002093,0.001090125,0.00105932,0.001057638,0.000965179,0.001087896,0.001266892,0.001256743,0.001122264,0.001002929,0.000815045,0.001003044,0.001112428,0.001217596,0.001243644,0.001246248,0.001309471,0.001412522,0.001416609,0.001435531,0.001498361,0.001517209,0.001625912,0.001541083,0.001519287,0.001730793,0.001850213,0.001886637,0.001893764,0.002034821,0.001956371,0.002108209,0.002172539,0.00219918,0.002319645,0.002426319,0.002303927,0.002115815,0.002240176,0.002291233,0.002286089,0.001882762,0.001872235,0.002039486,0.002372691,0.002450742,0.002437175,0.001885552,0.00205623,0.002117498,0.002296801,0,0.002445824,0.002428994,0.002294966,0.00196852,0.001914522,0.001932564,0.001486479,0,0,0,0,0 +PHASE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000861866,0.000862069,0.000861259,0,0,0,0.001269237,0.001268633,0.00126813,0,0,0,0,0.001406157,0.001406157,0.001406678,0,0,0,0.000915384,0.000916013,0.000914495,0,0,0,0.000715069,0.000715137,0.000714933,0,0,0,0.000940203,0.000940115,0.00093985,0,0,0,0.001255591,0.001255,0.001256429,0,0,0,0.00109509,0.00109521,0.001094212,0,0,0,0.000670092,0.000669942,0.000669917,0,0,0,0.000934482,0.00096442,0.00096359,0,0,0,0.003691869,0.003681475,0.003430161,0,0,0,0.000643501,0.000642081,0.000613035,0,0,0.004708904,0.004559882,0.004553835,0.00433542,0,0,0,0,0.001595663,0.001551607,0.001637073,0,0.002069734,0,0.001911566,0.001965311,0.001925897,0.002141328,0.001467112,0.00186179,0.001292324,0.001456588,0.001268622,0.001426847,0.001268834,0.001265251,0.001498854,0.001478004,0.000868571,0.000701262,0.000976052,0.001315982,0.001866736,0.001741857,0.001479821,0.00104163,0.000806707,0.000855491,0.001013685,0.001050862,0.000851478,0.000824018,0.001017197,0.00133744,0.001582602,0.0024457,0.001674966,0.001316117,0.00086373,0.00084024,0.000766284,0.000938331,0.00112572,0.001064207,0.001140015,0.001430007,0.001690576,0.001943038,0.001607496,0.001637721,0.001675042,0.002039882,0.002556963,0.002707343,0.001914219,0.001424096,0.001134202,0.001242767,0.00145422,0.002259542,0.002126945,0.001907654,0.001530382,0.001376488,0.001506705,0.001376576,0.001619546,0.001420642,0.001590651,0.001457172,0.001655477,0.001914002,0.001938954,0.002116481,0.001779418,0.001886671,0.00203258,0.002799291,0.002477096,0.002144426,0.00174037,0.001771457,0.001723089,0.001964604,0.002139085,0.001520125,0.00110158,0.001125195,0.001161979,0.001747415,0.001668336,0.0014968,0.001100105,0.001140353,0.001154042,0.00166115,0.00157077,0.001456477,0.001088828,0.001141469,0.001178191,0.001607283,0.001544215,0.001489646,0.001174787,0.001156798,0.001138931,0.001505839,0.00154199,0.001478103,0.001184176,0.001263902,0.001196494,0.001406628,0.001622834,0.001620661,0.001183777,0.001150472,0.001146606,0.001549716,0.001866031,0.001724262,0.001268065,0.001171393,0.00122308,0.001358144,0.001711896,0.001624944,0.001276018,0.001049429,0.00103123,0.001314759,0.002242094,0.00218583,0.001605818,0.000999167,0.001123951,0.001131747,0.002453176,0.003024917,0.002914272,0.001946304,0.001680737,0.001584453,0.003187472,0.003305958,0.002676105,0.001355931,0.001436131,0.001566233,0.002780634,0.003104174,0.002308759,0.001329714,0.001137871,0.001216235,0.002173627,0.003249847,0.002451236,0.001308901,0.00122689,0.001316306,0.002225817,0.003005309,0.002455869,0.001212977,0.001242997,0.001230986,0.001758347,0.002423228,0.001958923,0.001607464,0.001306879,0.00136899,0.001494115,0.002013637,0.001747185,0.001621017,0.001252534,0.001270253,0.001359571,0.002102782,0.001953858,0.001901138,0.001403214,0.001482923,0.001357615,0.002107964,0.001781093,0.001244438,0.001016051,0.001018128,0.001018457,0.001436686,0.001545678,0.001353921,0.001086853,0.001028964,0.001132785,0.001301555,0.001307619,0.001232216,0.00115744,0.001172378,0.001309146,0.001547151,0.001670524,0.001403006,0.001258549,0.001072857,0.001148277,0.001416609,0.002243043,0.001638177,0.00105435,0.000877703,0.000943069,0.001031809,0.001515123,0.001128882,0.001083962,0.000956378,0.001004573,0.00127887,0.00215592,0.001620292,0.00120375,0.001001625,0.00105747,0.001074739,0.001863222,0.001430875,0.000962377,0.000829327,0.000932945,0.001040828,0.001549821,0.00103769,0.000988166,0.000922325,0.000971085,0.001137964,0.001835586,0.001548895,0.001261813,0.001061032,0.001046577,0.001123578,0.001422926,0.001759176,0.000910056,0.001230457,0.000762854,0.001429307,0,0,0,0,0 +TRAINING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003121099,0.003125977,0.003131851,0,0,0,0.002472188,0.002476269,0.002475248,0,0,0,0,0,0,0,0,0,0.01215128,0.012153901,0.012156524,0,0,0,0.001175272,0.001175549,0.001174444,0,0,0,0,0,0,0,0,0,0,0.001332149,0.001332149,0.001332642,0,0,0,0.000972596,0.000973264,0.000971651,0,0,0,0.00152548,0.001525626,0.001525189,0,0,0,0.000940203,0.000940115,0.00093985,0,0,0,0.001059405,0.001058907,0.001060112,0,0,0,0.001606133,0.001606308,0.001604844,0,0,0,0.002047502,0.002084264,0.002084186,0,0,0,0.00152286,0.001515517,0.001514213,0,0,0,0.001520181,0.001515901,0.001545117,0,0,0,0.001231045,0,0.00117034,0,0,0,0.000424695,0.000422063,0.00044239,0,0,0,0,0.000459026,0.00048078,0.000419762,0,0,0,0.000405484,0.000534259,0.000530063,0,0,0,0.001137245,0.001092441,0.000906158,0,0,0,0.005730912,0.005738132,0.003017143,0.000506467,0.000418308,0.000536141,0.007726212,0.008709284,0.0067713,0,0,0,0.006546714,0.008039092,0.006163078,0,0,0,0,0.007045944,0.005658669,0.004446342,0,0,0.005507663,0.005994891,0.005088256,0,0,0,0.005409844,0.005777982,0.004960272,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000154014,0.000206204,0.000429225,0.001001767,0.000839685,0.0007125,0.000467468,0.000473005,0.000520536,0.000427817,0.000502671,0.000472106,0.00050693,0.000461644,0.000402413,0.000260308,0.000410166,0.000459711,0.000498771,0.000442714,0.000404318,0.000410323,0.000424369,0.000400606,0.000439485,0.000407835,0.000539456,0.00047912,0.000539197,0.000528761,0.00061627,0.000637965,0.000623009,0.001495498,0.001246076,0.001027507,0.000583945,0.000557777,0.00057596,0.000371358,0.000434314,0.000552157,0.000700912,0.000754519,0.000752352,0.000655424,0.000817661,0.000873457,0.000774875,0.000795082,0.000723272,0.000880504,0.000634396,0.000655842,0.000686749,0.000940723,0.001002525,0.001040415,0.00060024,0.000761898,0.001047845,0.001121281,0.001171691,0.00091129,0.000718052,0.000658138,0.000667893,0.000895751,0.000965992,0.001076794,0.00066345,0.000679304,0.00064272,0.000719812,0.000713601,0.000758539,0.000591946,0.000632847,0.000775417,0.000943143,0.001006108,0.000985112,0.000731456,0.000692741,0.000899962,0.000975716,0.001032953,0.000912355,0.000710188,0.000753462,0.000897815,0.000930114,0.000960993,0.000914278,0.000850883,0.000871891,0.000937111,0.001258364,0.001286322,0.001308705,0.001030763,0.001097215,0.000961713,0.001069338,0.001078405,0.00127947,0.00145859,0.001502528,0.001436783,0.001587791,0.001655683,0.001708805,0.001619131,0.001557547,0.001539075,0.00166359,0.001615899,0.001665623,0.001634023,0.001713644,0.001588016,0.001645409,0.001648522,0.00167181,0.001541582,0.001530915,0.001541819,0.0016043,0.001577851,0.00161068,0.001497706,0.001488152,0.001484068,0.001530236,0.001601043,0.001594909,0.001591205,0.001516603,0.001569562,0.00169372,0.001718594,0.001716385,0.001676295,0.001677963,0.001762311,0.001826392,0.001772903,0.00177662,0.001724702,0.001809138,0.001749082,0.001815507,0.001781189,0.001791128,0.001816608,0.002011062,0.00186958,0.001772109,0.001870223,0.001932099,0.002040939,0.001936689,0.001820076,0.001892747,0.001827998,0.001839176,0.001705686,0.001688319,0.001692311,0.001763016,0.001842845,0.001819294,0.001802729,0.001485053,0.001620764,0.00178931,0.002017777,0.002148706,0.00303013,0,0,0,0,0 +RESEARCHERS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000594001,0.000625469,0.000497996,0.000489748,0.000577552,0.000559696,0.000466548,0.000546418,0.000477974,0.000443853,0.000307545,0.000354754,0.000554119,0.000752368,0.000732809,0.000753713,0.000748551,0.000721319,0.000775823,0.000863749,0.000850941,0.000763898,0.000735368,0.000756097,0.000818038,0.000730889,0.00078063,0.000673841,0.000757665,0.00072504,0.000857218,0.00075832,0.000834689,0.000805934,0.000850384,0.000805635,0.000866067,0.000774869,0.00081353,0.000693821,0.000786988,0.000784759,0.000826078,0.000794706,0.000894861,0.000918904,0.000772726,0.000701802,0.000692335,0.000867473,0.000932421,0.000860156,0.00075974,0.00075661,0.000729299,0.000880504,0.000851426,0.000879739,0.000817755,0.000844731,0.000813497,0.000889555,0.000948167,0.000966043,0.000923589,0.000890351,0.000901593,0.000968966,0.000977981,0.000951696,0.00083413,0.000837961,0.000844002,0.000921506,0.001002233,0.001017977,0.000891514,0.000831628,0.000766092,0.000805187,0.000931819,0.000915258,0.000917353,0.00081176,0.000800155,0.000763761,0.000789203,0.000905892,0.000902947,0.001072321,0.00108576,0.001152362,0.000970013,0.001036248,0.001101743,0.00117568,0.001176072,0.001195114,0.001241904,0.001209701,0.001086386,0.001088561,0.001058157,0.00110042,0.001110579,0.00126441,0.001160594,0.001171298,0.001196725,0.001249566,0.001424118,0.001445398,0.001400155,0.001450249,0.001446591,0.001617399,0.001738761,0.001802902,0.001517941,0.001430932,0.001411314,0.001461309,0.001560252,0.001573673,0.001582541,0.001606155,0.001583142,0.001584601,0.001622718,0.001743492,0.001746156,0.001664533,0.001561146,0.0015264,0.001467401,0.001572043,0.001518987,0.001524243,0.001497516,0.001527194,0.00153962,0.001801232,0.001728234,0.001722825,0.001563591,0.001556441,0.001485259,0.001722803,0.001762311,0.001581999,0.001560085,0.0015292,0.001627901,0.002010969,0.001998074,0.001896447,0.001739912,0.001727201,0.001754661,0.002082808,0.002100553,0.002012703,0.001799505,0.001736816,0.001759313,0.002175845,0.002102833,0.001967974,0.001844114,0.001837897,0.001848457,0.002203755,0.002163792,0.001926172,0.001758178,0.001775863,0.001840255,0.002216557,0.002353009,0.002531355,0.002503937,0.002021563,0.000971928,0,0,0,0,0 +STUDENT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000403313,0.000402178,0.000370828,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000190807,0.000176688,0,0,0,0.000672008,0.000676273,0.000434956,0,0,0,0.005554576,0.005477308,0.00288,0,0,0,0.007622505,0.012367183,0.009596413,0.002361029,0,0,0.006377767,0.011454393,0.008839152,0.002436228,0,0,0,0.007104175,0.005703938,0.004517483,0,0,0.005603448,0.009122661,0.007744957,0.002163888,0,0,0.005264937,0.005522319,0.004822487,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000248998,0,0,0,0,0.000910697,0.001072213,0.00106291,0.000910332,0.000760186,0.000587702,0.000427817,0.001011398,0.000676409,0.000630109,0.000401316,0.000391537,0.00037863,0.000596883,0.000647255,0.000699132,0.000624277,0.000564164,0.000666776,0.000738717,0.000747799,0.000799426,0.000741735,0.00076115,0.000699723,0.001005282,0.000921068,0.000860713,0.000699308,0.000695647,0.000476545,0.000727594,0.000805728,0.000793284,0.000709099,0.000624148,0.000590459,0.000897776,0.001090053,0.000989607,0.000846775,0.000598023,0.000478074,0.000823399,0.000988736,0.000945892,0.000892864,0.00081569,0.000961188,0.000987766,0.000958995,0.000955656,0.00096815,0.000928264,0.000816726,0.00068523,0.000942347,0.001017101,0.001007818,0.000918712,0.000726725,0.00083502,0.000932756,0.001031261,0.000987252,0.000968829,0.000943982,0.00100788,0.001043427,0.000935745,0.000828134,0.000733462,0.000683497,0.000710901,0.00096267,0.001015961,0.001002969,0.000914264,0.000805638,0.000785995,0.000905892,0.000985033,0.000998257,0.00095825,0.001002768,0.001414603,0.001571453,0.001152063,0.000887449,0.000699008,0.000901796,0.001371327,0.001489008,0.001178991,0.001068346,0.000928092,0.001072729,0.001258808,0.001458774,0.001129263,0.001024575,0.000982904,0.00112461,0.001305621,0.00139398,0.001398973,0.001371145,0.001319801,0.001265247,0.001247865,0.001463041,0.001706907,0.001580614,0.001468854,0.001292258,0.001239349,0.001403708,0.001689321,0.001548909,0.001534885,0.001299781,0.001340433,0.001395151,0.001713957,0.001517207,0.00155659,0.001509544,0.001894861,0.001905783,0.001909335,0.001653094,0.001587855,0.001407612,0.001583269,0.00175875,0.002247133,0.001902149,0.001793512,0.001558704,0.001807502,0.002159404,0.002690503,0.001838727,0.00164391,0.001413897,0.001503831,0.001695379,0.001745402,0.001621627,0.001539273,0.001477471,0.001543445,0.001743645,0.001776609,0.001697302,0.001590274,0.001528157,0.001543004,0.001835869,0.00173772,0.001558405,0.001509992,0.001507165,0.001578873,0.001811918,0.001772983,0.001766538,0.001713744,0.001728812,0.00179537,0.001877861,0.001884194,0.00180051,0.001781151,0.001665565,0.001715168,0,0,0,0,0 +APPROACH,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000524384,0.000524434,0.000524284,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000401533,0.000401577,0.000401211,0,0,0,0.000446728,0.000446628,0.000446611,0,0,0,0,0,0,0,0,0,0.00068253,0.000680609,0.000679852,0,0,0,0.000475631,0.000474582,0.00052944,0,0,0,0.000491752,0.000488704,0.000486629,0,0,0,0,0.000459026,0.000458926,0.000461739,0,0,0,0.000521336,0.000572421,0.000565401,0,0,0,0.000775394,0.000676273,0.000761173,0.000603666,0.000528681,0,0,0.000869414,0.000594286,0.000506467,0.000592603,0.000633621,0.000725953,0.000870928,0.000896861,0.00069442,0.00060503,0.000615953,0.000633553,0,0.000527105,0.000609057,0.000635748,0.00052687,0.000510517,0,0.000769579,0.000853698,0.001029832,0.000916625,0.000862069,0.000573424,0.000675432,0.000851366,0.000898193,0.000734328,0,0,0,0.000609385,0.000764693,0.000874235,0.000852321,0.000924459,0.001375845,0.00130203,0.001061027,0.000932075,0.000838973,0.000793893,0.000671667,0,0.000556502,0.000595238,0.000904023,0.000660757,0.000740364,0.00072684,0.001136179,0.001203751,0.001440878,0.001353001,0.001125844,0.000921292,0.00125702,0.001629981,0.001693817,0.001679575,0.001056409,0.001098049,0.001144673,0.001303989,0.001452801,0.001511234,0.001386717,0.001271818,0.001170601,0.001189154,0.001130504,0.001218115,0.001017567,0.000951952,0.000953729,0.000989016,0.001032171,0.000971616,0.000897583,0.000919467,0.001045686,0.00118323,0.001211581,0.001056743,0.00084794,0.000831643,0.000991427,0.001072448,0.001153245,0.001165,0.001026702,0.001025506,0.001060061,0.001161594,0.001205292,0.00122535,0.001158637,0.001049349,0.001045228,0.001151908,0.001204266,0.001247489,0.001287716,0.001196368,0.001139485,0.001074533,0.001123695,0.001173308,0.001161143,0.001076804,0.001030325,0.001128033,0.001142307,0.001162861,0.001144456,0.001059716,0.001164719,0.001161852,0.00123074,0.001165984,0.001065094,0.001146934,0.001221579,0.001312247,0.001244901,0.001217064,0.001207562,0.001126454,0.00119025,0.00114722,0.001218323,0.001215817,0.001216908,0.001104587,0.001127582,0.00119973,0.001279812,0.001294163,0.001294205,0.00119022,0.001223487,0.001246217,0.001385752,0.001411616,0.001474563,0.001250047,0.001163406,0.001112337,0.001247738,0.001295052,0.0013995,0.001186831,0.00117007,0.001195577,0.00133518,0.001376706,0.001379739,0.001336344,0.001241421,0.001186476,0.001273258,0.001356458,0.001498411,0.001518915,0.001237824,0.001166205,0.001297029,0.00132944,0.001348955,0.001163299,0.001106822,0.001153685,0.001260912,0.001294637,0.001310926,0.001307587,0.001337722,0.001378563,0.001428693,0.001439149,0.001414822,0.001304936,0.001266533,0.001308998,0.001380463,0.001404728,0.001417773,0.001370106,0.001282072,0.00134938,0.001371419,0.001501473,0.001515668,0.001518787,0.001253215,0.001356571,0.00137826,0.001504173,0.001487031,0.001509401,0.001241362,0.001251178,0.001339919,0.00142588,0.001459057,0.001463611,0.001251351,0.001205713,0.001271514,0.001462989,0.001492407,0.001494186,0.001226204,0.001276892,0.0013354,0.001438903,0.00143921,0.00142255,0.001247359,0.001303976,0.001369873,0.001562635,0.001610159,0.001677972,0.00131489,0.001236965,0.001224252,0.00149217,0.00158766,0.001692357,0.001599288,0.00129036,0.00113687,0.001114295,0.001398566,0.001715168,0,0,0,0,0 +AREAS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00036503,0.00036507,0.000364737,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000310241,0.000309368,0.000309023,0,0,0,0.000279783,0.000307082,0.000334383,0,0,0,0,0,0,0,0,0,0,0.000327876,0.000305951,0.000314822,0,0,0,0.000251014,0.000248049,0.000229694,0,0,0,0,0,0.000362463,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000332204,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000367884,0.000594001,0.000500375,0.000473096,0.000979496,0.001039594,0.001222494,0.000765139,0.001019981,0.001201395,0.001436681,0.001390102,0.001266977,0.001292944,0.001268699,0.001623082,0.00165099,0.001606068,0.001518704,0.001334126,0.00134098,0.001450886,0.001555242,0.001500577,0.001417681,0.001272504,0.001359197,0.001453858,0.00145451,0.001469591,0.001399996,0.001300606,0.001313272,0.001492692,0.001690756,0.001597483,0.001506988,0.001310275,0.001406388,0.001495291,0.00164808,0.001561383,0.001537847,0.001291895,0.001251476,0.001349579,0.001656472,0.001611523,0.001632595,0.001453261,0.00141109,0.001552122,0.001582864,0.001431702,0.001359334,0.001247644,0.001178683,0.001171407,0.001369144,0.001387288,0.001406971,0.001270877,0.001214684,0.001219072,0.0015001,0.001500032,0.001495042,0.001344781,0.00128042,0.00130939,0.001432278,0.001434351,0.001423088,0.001395794,0.001362849,0.001247851,0.001233318,0.001372518,0.001376729,0.001408758,0.001277753,0.001149904,0.001207976,0.001317761,0.001353715,0.001328953,0.001212445,0.00108756,0.001240539,0.001408896,0.001401853,0.001379417,0.001183595,0.001068169,0.001153917,0.001350695,0.001399438,0.001427761,0.001346454,0.001423646,0.001432392,0.001420871,0.001381673,0.001323798,0.001274994,0.001206358,0.001368907,0.001347215,0.0013031,0.001271098,0.001294422,0.001318548,0.001340659,0.001462778,0.001384685,0.001388757,0.001281604,0.001394309,0.001437596,0.001424702,0.001403273,0.001335394,0.001364856,0.001316809,0.001417705,0.001425108,0.001404159,0.001394784,0.001351735,0.0013286,0.001368356,0.001453892,0.001343022,0.001295387,0.00120801,0.00119944,0.001263835,0.0014055,0.001421361,0.001310904,0.001312522,0.001210268,0.001272332,0.001272232,0.0013285,0.001243898,0.001225989,0.001157767,0.001210682,0.001218252,0.001201147,0.00117571,0.001165516,0.001139121,0.001214654,0.001350448,0.00139763,0.001290565,0.001261198,0.001206843,0.001156632,0.001242029,0.001365727,0.001352405,0.001336218,0.001267316,0.001291908,0.001303976,0.001293718,0.001201118,0.00118283,0.001119488,0.001101878,0.00112761,0.001219557,0.001158909,0.00114852,0.001100768,0.001168402,0.001227851,0.001338482,0.0013122,0.001423994,0.001143445,0,0,0,0,0 +COLLABORATIVE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000483955,0.000483847,0.000483829,0,0,0,0.00076143,0.000757758,0.000757106,0,0,0,0.00105482,0.00105185,0.001081582,0,0,0,0.001678697,0.001674995,0.00169978,0,0,0,0.001922303,0.001910389,0.001835918,0.00255814,0,0.002132651,0,0.001377079,0.001354925,0.001364228,0,0.001910524,0.003488879,0.002104653,0.002003473,0.001837553,0,0.001141087,0.001314204,0.001705867,0.001664673,0.001196129,0.001207332,0.001744647,0.002892002,0.002380533,0.002521301,0.002605714,0.002181705,0.001638373,0.001072282,0.002177858,0.0024386,0.001973094,0.001770772,0.001555792,0.002190056,0.001773948,0.001996637,0.00129749,0.001433075,0.001303284,0.001296912,0.001072085,0.001106388,0.000905387,0.001209405,0.001195934,0.001336745,0.001245211,0.001407496,0.001215778,0.001170628,0.001001831,0.001391358,0.00111095,0.001227182,0.000964497,0.001028336,0.000946763,0.000874235,0.000625036,0.000792393,0.001076748,0.001424096,0.00179277,0.001825314,0.002069467,0.002076336,0.002574723,0.002374835,0.002365135,0.00234375,0.003063633,0.002698089,0.002637546,0.00201533,0.002077585,0.001837304,0.001594163,0.001782002,0.001563673,0.001319688,0.000979496,0.000872746,0.000927917,0.000933097,0.000928911,0.000762175,0.000911066,0.000984143,0.001047368,0.000957115,0.001017909,0.000696472,0.000535605,0.000480873,0.000477382,0.000587306,0.000804588,0.000795844,0.000658691,0.000564848,0.000547175,0,0.00068601,0.000675847,0.000614263,0.000622438,0.00065349,0.000690947,0.000868621,0,0.000733443,0.00065242,0.000584801,0.000648153,0.000639267,0.000761968,0.000722307,0.000772822,0.000698542,0,0.000746429,0.000792841,0.000768131,0.000752618,0.000759462,0.000784504,0.000767232,0,0.000733793,0.000726445,0.000761419,0.000841808,0.001027839,0.000998895,0.000897572,0.000777764,0.000789879,0,0.000834933,0,0.000694457,0.000723756,0.000776888,0.00084453,0.001088164,0.000938992,0.000864102,0.000838544,0.000902975,0.000957481,0,0.000900598,0.000955332,0.000950949,0.000943443,0.000920729,0.000965413,0.000943148,0.000834864,0.000815757,0.000933758,0.000978276,0.00111872,0,0,0.000958169,0.00105944,0,0.001232912,0.001151891,0.001153917,0.001134848,0.001271441,0.001283612,0.001357375,0.001233643,0.001215363,0.001134762,0.001228042,0.001331514,0.001425489,0.001509658,0.001348007,0.00117694,0.001463086,0.001500132,0.001725896,0.001546924,0.00146825,0.001259549,0.001541469,0.001624542,0,0.001633569,0.001546643,0.001448322,0.001644067,0.001798107,0.001959129,0.001960459,0.001513685,0.001466177,0.001655223,0.001812752,0.00193993,0.0019405,0,0.00139321,0.001572556,0.001808682,0.002029269,0.002091046,0,0.001528964,0,0,0.002183455,0.002284629,0.001567581,0.001579569,0.001679637,0,0.002095876,0.002223165,0.001588283,0.001513016,0.001627485,0.001971389,0.002029805,0.002106454,0.001532079,0.001639917,0.001727979,0.002042437,0.002058781,0.002063648,0.001632765,0,0.001820632,0.001974838,0.002007671,0.002051967,0.001681121,0.001603204,0.001544474,0,0.001954324,0.002094526,0,0.001726373,0.001664419,0.001904693,0.001979749,0.002060997,0.001835774,0.001509141,0.001489691,0.001406851,0,0,0,0,0,0,0 +SPECIES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002678204,0.002682625,0.002681518,0,0,0,0.001757469,0.001759015,0.001759944,0,0,0,0.000934714,0.000934915,0.000935117,0,0,0,0.001096921,0.001097179,0.001096148,0,0,0,0.001507219,0.001506502,0.001505905,0,0,0,0,0.001184133,0.001184133,0.001184571,0,0,0,0.001258653,0.001259518,0.00125743,0,0,0,0.001668494,0.001668653,0.001668176,0,0,0,0.001269274,0.001269155,0.001268797,0,0,0,0.001098642,0.001098125,0.001099376,0,0,0,0.000839569,0.000839661,0.000838896,0,0,0,0.000930683,0.000930475,0.00093044,0,0,0,0.000969093,0.00096442,0.00096359,0,0,0,0.000868675,0.000866229,0.000865266,0,0,0,0.000587544,0.000558332,0.00052944,0,0,0,0.000558809,0.000533132,0.000530868,0,0,0,0,0.000721327,0.000699316,0.000650632,0,0,0,0.000347557,0.000400695,0.000388713,0,0,0,0.000827087,0.000832336,0.00068868,0,0.000634417,0.000903751,0.001146182,0.000956355,0.000685714,0.000545426,0.00034859,0,0,0,0,0.00034721,0.000432165,0.000410635,0.000464606,0.00068306,0.000689292,0.000680711,0.000572173,0.000607927,0.00061262,0.000757002,0.000769579,0.000711415,0.000764069,0.000687469,0.000670498,0.000573424,0.000585375,0.000709471,0.000898193,0.000811626,0.000627928,0.000511326,0.000826712,0.000761731,0.000691865,0.000541193,0.000738678,0.000792393,0.000777651,0.000651015,0.000585394,0.000621383,0.00072711,0.000671756,0,0.000389317,0.000417377,0.000706845,0.001104917,0.001431639,0.000879182,0.000792917,0.000584321,0.000601875,0.000643797,0.000726001,0.000719289,0.000522895,0.000375473,0.000346531,0.000338763,0.000429225,0.000455349,0.000426302,0.00035041,0.00034445,0.000304075,0.000268664,0.000442569,0.000908441,0.001137471,0.001227055,0.001558049,0.001881553,0.001893148,0.001524348,0.001189303,0.001099854,0.001290836,0.001604734,0.00189454,0.001456477,0.001472999,0.001366183,0.001590796,0.001659012,0.001688985,0.001404349,0.001447696,0.001556168,0.001713509,0.001785215,0.001739582,0.00156404,0.001271667,0.001245014,0.001400602,0.001640683,0.001949629,0.001448684,0.001277501,0.00137597,0.001387129,0.001594729,0.001746513,0.001632454,0.001270282,0.001324249,0.001324068,0.001514853,0.001473353,0.001521994,0.00147812,0.001406594,0.001267097,0.001199992,0.001082032,0.001423578,0.001188415,0.001152885,0.001099924,0.001287719,0.001372702,0.001364624,0.001425176,0.001407871,0.001418272,0.001364587,0.001319941,0.001165978,0.001268556,0.001460978,0.001404683,0.001411596,0.001289922,0.001727688,0.001748061,0.001455215,0.001387734,0.001320603,0.001569399,0.001549532,0.001767022,0.001619335,0.001328862,0.001159174,0.001045509,0.001385733,0.00144809,0.001403663,0.001350135,0.00129734,0.001376097,0.001602635,0.001626774,0.001621285,0.001578767,0.001507873,0.001437529,0.00147089,0.001511022,0.001670056,0.001543494,0.001504358,0.001402291,0.001387491,0.001386363,0.001290269,0.001198683,0.001171509,0.001234457,0.001421123,0.001646602,0.001679557,0.001603392,0.001436088,0.001300555,0.001241194,0.001719642,0.001626348,0.001395981,0.001311501,0.001249682,0.001095335,0.00122366,0.001292898,0.001283603,0.001256662,0.001197709,0.001287166,0.001305781,0.001338156,0.001218595,0.0011144,0.001053908,0.001023768,0.001076916,0.001175028,0.001302212,0.001205147,0.001170914,0.001030759,0.001165842,0.00139856,0.001519552,0.001170498,0.001100659,0.000882802,0.001088051,0.001284213,0.001242338,0.001113962,0.001062847,0.001035929,0.001402308,0.001481718,0.001430424,0.001117458,0.001066701,0.001070518,0.001568578,0.001520848,0.001388448,0.000971745,0.000886003,0.000734848,0.001756693,0.001859033,0.001707849,0.001052025,0.000862596,0.000689452,0.000861772,0.001111763,0.001422487,0.001381037,0.001792707,0.001200617,0,0,0,0,0 +SCALE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000483955,0.000483847,0.000483829,0,0,0,0.000657599,0.000654428,0.000653865,0,0,0,0.000589458,0.000556862,0.000556242,0,0,0,0.000699457,0.000669998,0.000696631,0,0,0,0.00075998,0.00075527,0.000774182,0,0,0,0,0.000786902,0.00078673,0.000797549,0,0,0,0.000965437,0.000992196,0.000971783,0.001303417,0.001141087,0.001533238,0.00087878,0.000884357,0.000616188,0.000548787,0,0,0,0.001130238,0.000777143,0.000545426,0.000453167,0,0.000518538,0.000696743,0.000762332,0.00069442,0.000576219,0.000513294,0.000549079,0.000525431,0.000608199,0.000716538,0.000603961,0.000648456,0.00061262,0.000815233,0.00072431,0.000746985,0.000697628,0.000763854,0.000670498,0,0.000540346,0.000780419,0.001209106,0.001391358,0.001497368,0.001073784,0.000688927,0.000533211,0.000509795,0.000582823,0.000625036,0.000792393,0.001016929,0.001017211,0.001061027,0.000970911,0.000838973,0.000732824,0.000727639,0.000895429,0.000973879,0.001041667,0.001255587,0.001651891,0.001434455,0.000958108,0.000649245,0.000728586,0.001256936,0.001749002,0.001563673,0.00114539,0.000946846,0.001039594,0.001089934,0.001026407,0.000801413,0.000762175,0.000759222,0.000947238,0.001064261,0.001276153,0.000826129,0.000708584,0.000640518,0.0007296,0.000758041,0.000917212,0.000851916,0.000798905,0.000729591,0.000754551,0.000865532,0.000981019,0.001035426,0.000940423,0.000842301,0.000757665,0.00072981,0.00077593,0.000958241,0.000856013,0.00081233,0.000766034,0.000828128,0.000896798,0.000987959,0.000784884,0.000840317,0.000826337,0.000953676,0.00094999,0.001147496,0.000958988,0.001053378,0.000929283,0.000970332,0.000887389,0.001044823,0.000912338,0.000837987,0.000877788,0,0.000966372,0.000961188,0.000984983,0.000947107,0.000850851,0.000772051,0.000745987,0.000803721,0.000958791,0.000918652,0.000882598,0.000903699,0.000939635,0.001057404,0.000994226,0.001017983,0.00100331,0.001020963,0.001025568,0.001017539,0.001027642,0.000961205,0.001000708,0.00102847,0.001132114,0.00123719,0.001249033,0.001067801,0.000968151,0.001012354,0.001031156,0.00116658,0.001170971,0.001138226,0.001065627,0.001061587,0.001070304,0.001127703,0.001163439,0.001189977,0.001268594,0.001468652,0.001507844,0.001486872,0.001029872,0.001070048,0.0011085,0.001219956,0.001280811,0.001317133,0,0.00127486,0.001283192,0.001390968,0.001462946,0.001543268,0.001495216,0.001353989,0.001341077,0.001460939,0.001471801,0.001465377,0.001301492,0.001277661,0.001290436,0.001343075,0.001430494,0.001542205,0.001569474,0.001419705,0.001389514,0.001527646,0.001528658,0.001540069,0.001402975,0.001314765,0.001200018,0.001299068,0.001361447,0.001457103,0.001413171,0.001404261,0.001285777,0.001319479,0.001536421,0.001585544,0.001742985,0.00153572,0.001503807,0.001355727,0.001460256,0.001480241,0.001641657,0.001486803,0.0012794,0.0013245,0.001525774,0.00158589,0.001668803,0.001431164,0.001370073,0.001366572,0.001478664,0.001521682,0.001556879,0.001513188,0.001518035,0.001570939,0.001572741,0.00157029,0.001565059,0.001432587,0.001412412,0.001368944,0.001558338,0.00158521,0.00168805,0.00143323,0.001418028,0.001327544,0.00154321,0.001612391,0.001726205,0.001869844,0.0016989,0.001663302,0.001531618,0.001665565,0.001086273,0,0,0,0,0 +SURFACE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001018569,0.001018809,0.001017852,0,0,0,0,0,0,0,0,0,0,0.001480166,0.001480166,0.001480714,0,0,0,0,0,0,0,0,0,0.00076274,0.000762813,0.000762595,0,0,0,0.001034223,0.001034126,0.001033835,0,0,0,0.00070627,0.000705938,0.000706742,0,0,0,0.001058587,0.001058703,0.001057738,0,0,0,0.00096791,0.000967694,0.000967658,0,0,0,0.000796041,0.000792202,0.00079152,0,0,0,0.000961747,0.00095904,0.000957973,0,0,0,0.000755414,0.000781664,0.000780227,0,0,0,0.001095266,0.001110692,0.001128094,0,0,0,0,0.001005486,0.001048974,0.001091382,0,0.001592103,0,0.001448156,0.001392891,0.001342827,0.000931012,0.001711631,0.002409375,0.001809253,0.001456588,0.00108739,0.000878059,0.000951626,0.001807501,0.002204197,0.001651887,0.001005714,0.00077918,0.00104577,0.001267242,0.001659321,0.001335424,0.00103139,0.000868025,0.001238872,0.001403004,0.001647238,0.001628836,0.001743502,0.001397248,0.001239709,0.001094269,0.00153155,0.001514005,0.001177003,0.001173834,0.001328815,0.00168048,0.001484674,0.001407496,0.001350865,0.001418943,0.001450928,0.001275412,0.001400763,0.001124917,0.001240068,0.001371115,0.001492972,0.001373798,0.001363714,0.001518753,0.001974038,0.001505473,0.001500073,0.001281603,0.001566083,0.001648855,0.001903056,0.001712995,0.001669507,0.0015625,0.001808046,0.001596828,0.001712091,0.001321528,0.001233566,0.000982007,0.001164965,0.001353001,0.001501126,0.001344588,0.001518219,0.001629981,0.001767461,0.001791546,0.001639255,0.001485596,0.001354919,0.001279386,0.00133455,0.001494442,0.001858791,0.001483787,0.001488099,0.001397611,0.001476737,0.001598776,0.001502686,0.001411093,0.001319669,0.001321531,0.001298298,0.001482498,0.001689379,0.001660803,0.001477108,0.001372149,0.001345141,0.00134125,0.001340848,0.001352562,0.001315506,0.001310005,0.001292288,0.001416439,0.001499372,0.001475239,0.001528035,0.001463797,0.001536087,0.001535129,0.001827081,0.001439939,0.001340663,0.001322827,0.001408546,0.001513278,0.001661693,0.001606633,0.001476453,0.001363598,0.001333686,0.001356135,0.001550529,0.001633291,0.001551432,0.001337643,0.001224586,0.001245561,0.001425368,0.001681203,0.001529264,0.001464164,0.001382914,0.001413257,0.001349631,0.001374372,0.001216845,0.001221037,0.00119915,0.001242597,0.001313811,0.001589457,0.001564161,0.001590904,0.001528145,0.001535022,0.001531276,0.001617229,0.001473896,0.001374536,0.001222332,0.001232934,0.001298194,0.001774102,0.001630605,0.001449193,0.001315982,0.001281531,0.001387437,0.00155895,0.001491741,0.001480467,0.001430726,0.001460938,0.001346454,0.001500749,0.001334257,0.001315826,0.00123916,0.001242232,0.001252119,0.001277052,0.001402346,0.001446656,0.001351179,0.001288846,0.001302966,0.001350865,0.001451111,0.001315082,0.00125712,0.001257518,0.001217138,0.001336556,0.001275844,0.001415999,0.001294265,0.001265867,0.001157431,0.001160046,0.001149761,0.001160895,0.001225061,0.001264023,0.001253393,0.00112069,0.000980714,0.001086084,0.001186743,0.001186046,0.001240785,0.00125367,0.001480857,0.001446655,0.001369421,0.00130365,0.001285868,0.001265822,0.00126596,0.001175028,0.001258085,0.001110853,0.001141491,0.001036007,0.001163482,0.00113829,0.001094756,0.001185265,0.001190498,0.001208655,0.001111904,0.001221659,0.001340219,0.001188156,0.001163217,0.00108892,0.001195767,0.001218786,0.001108958,0.001102847,0.001070044,0.001093421,0.001048063,0.001093967,0.001083825,0.001154384,0.001149565,0.001166518,0.000896755,0.001070243,0.00120195,0.001227362,0.001158171,0.001094882,0.000965986,0.001002373,0.00098006,0.00089918,0.000978996,0.001029101,0,0,0,0,0 +LEARNING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002108963,0.002110818,0.002111932,0,0,0,0,0,0,0,0,0,0.001331975,0.001332288,0.001331037,0,0,0,0.000951928,0.000951475,0.001030356,0,0,0,0,0.000814091,0.000814091,0.000814393,0,0,0,0.001315865,0.001316769,0.001314586,0,0,0,0.001096439,0.001096544,0.00109623,0,0,0,0.000752162,0.000752092,0.00075188,0,0,0,0.00070627,0.000705938,0.000706742,0,0,0,0.00073006,0.00073014,0.000729474,0,0,0,0.0004095,0.000409409,0.000409394,0,0,0,0.000588378,0.000585541,0.000585037,0,0,0,0.00052741,0.000525925,0.00052534,0,0,0,0.000419674,0.000390832,0.000390113,0,0,0,0.000581161,0.000599773,0.000597226,0,0,0,0,0.000480885,0.000458926,0.000524703,0,0,0,0.000502027,0.000496098,0.000547732,0,0.000978075,0,0,0,0,0,0,0,0,0,0.003337143,0.002727131,0.002474989,0,0,0,0.00044843,0,0,0,0.000422369,0,0,0,0.000476811,0.000567399,0.000765775,0,0.000543232,0.000426849,0.000664408,0.000763854,0.000814176,0,0.000495317,0.000603051,0.000725464,0.000695679,0.000627928,0.000613591,0.000459284,0.000647471,0.000691865,0.000749344,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000429496,0.000422009,0.000570198,0.000429198,0.000363,0,0.000323697,0.000277524,0.000282359,0.000309306,0.000410563,0.000619274,0.00058132,0.00068914,0.000664297,0.000658828,0.000671659,0.000604845,0.000629853,0.000469345,0.000535356,0.000469513,0.000482171,0.000390462,0.000453019,0.000585503,0.0005819,0.000601893,0.00041372,0.000413529,0.000440087,0.00057523,0.000600564,0.00058671,0.000517287,0.000389501,0.000463039,0.000486119,0.000642092,0.000652278,0.000740348,0.000503665,0.000676032,0.00067144,0.000829485,0.000760126,0.000789364,0.000471625,0.00061795,0.000867967,0.001078657,0.001133426,0.001013853,0.000693979,0.000809055,0.000831336,0.000765794,0.000673255,0.000717245,0.000747201,0.000759606,0.000729153,0.000820513,0.000955808,0.00096877,0.000889555,0.000698509,0.000853034,0.000960738,0.001017162,0.000990992,0.001084319,0.000912999,0.001096107,0.001056271,0.001108853,0.001034079,0.001068621,0.000900598,0.001021892,0.000883221,0.001105343,0.001058342,0.001393359,0.001079097,0.001205915,0.001071241,0.001261043,0.001228759,0.001258311,0.000882239,0.000905892,0.001070105,0.001285927,0.001348506,0.001492645,0.001654219,0.001550576,0.001038181,0.001077074,0.001058236,0.001466589,0.001613649,0,0.001241189,0.001135054,0.001017374,0.001225632,0.001427562,0.001416975,0.001167405,0.001120732,0.001141791,0.001288014,0.001542615,0.001340659,0.001035051,0.00118443,0.001307196,0.001488469,0.001637694,0.001364899,0.001241952,0.001360971,0.001432891,0.001572281,0.001385047,0.001381713,0.001122563,0.001239782,0.001333295,0.001451004,0.001703854,0.001405869,0.001219832,0.001071975,0.001200473,0.001499243,0.001898051,0.001592104,0.001084991,0.001059778,0.00139333,0.001450834,0.001717192,0.001522975,0.001525249,0.001264657,0.001619779,0.001644712,0.002068866,0.001836084,0.0016212,0.001262053,0.001442384,0.001478755,0.001693344,0.001596298,0.001398284,0.001236691,0.001618693,0.001701511,0.001824818,0.001206637,0.001207165,0.00145974,0.001799505,0.001856527,0.001909457,0.001439621,0.001387705,0.001283502,0.001778041,0.001876279,0.002096205,0.001514753,0.001324807,0.00147544,0.001845847,0.002127536,0.002328095,0.00263141,0.001870799,0.001433688,0.00132941,0.001462137,0.001372134,0,0,0,0,0 +DYNAMICS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001253624,0.001253918,0.00125274,0,0,0,0.0008726,0.000872185,0.00087184,0,0,0,0,0.001554174,0.001554174,0.001554749,0,0,0,0.001258653,0.001259518,0.00125743,0,0,0,0.001048768,0.001048868,0.001048568,0,0,0,0.001457315,0.001457178,0.001456767,0,0,0,0.001255591,0.001255,0.001256429,0,0,0,0.001533126,0.001533294,0.001531896,0,0,0,0.001451865,0.001451541,0.001451487,0,0,0,0.001661302,0.001653291,0.001651869,0,0,0,0.001520181,0.001515901,0.001545117,0,0,0,0.002238263,0.00220541,0.002201354,0,0,0,0.002279941,0.002332452,0.002300427,0.002325581,0.002391824,0,0,0.001967256,0.002032387,0.002077824,0.002103653,0.002228944,0.002834714,0.002143271,0.002060715,0.001855222,0.001210316,0.002200668,0.003066477,0.003049884,0.002705093,0.002283519,0,0.002167592,0.002892002,0.002997708,0.001478004,0.001188571,0.001129811,0.001847527,0.002583224,0.002903811,0.0024386,0.001883408,0.001631888,0.001498171,0.001539883,0.002027369,0.002522068,0.002392247,0.002077959,0.001811882,0.001904839,0.002603635,0.002736854,0.002263468,0.001565112,0.001661019,0.001718672,0.002059387,0.002658604,0.002611671,0.002944306,0.002418213,0.00266677,0.002511713,0.002658895,0.002755707,0.002361365,0.002476149,0.002248033,0.002329678,0.003499736,0.003589161,0.003010945,0.002670862,0.002718552,0.003188098,0.003419847,0.00324639,0.002919879,0,0.003199405,0.003264527,0.002257585,0.002359909,0.002775208,0.003051453,0.002914344,0.002820442,0.002442002,0.002783338,0.002689176,0.002138566,0.001732657,0.001841105,0.00173556,0.001621041,0.00124015,0.001378279,0.001328593,0.001520373,0.001444068,0.001519488,0.001193086,0.001195449,0.001212842,0.001274767,0.001337751,0.001411973,0.001267229,0.001244194,0.001121169,0.001233631,0.00120355,0.001416898,0.001301923,0.001372334,0.00125482,0.001249741,0.00114542,0.001489065,0.001498785,0.001454093,0.001301397,0.001265706,0.0012544,0.001394765,0.001480968,0.001330672,0.001309547,0.001254559,0.0012896,0.001169777,0.001198006,0.001210264,0.001232341,0.001184496,0.001144604,0.001226029,0.001339817,0.001467586,0.001378732,0.001351319,0.001305908,0.001175175,0.001210361,0.001315646,0.001363844,0.001335663,0.001311384,0.001316125,0.001450138,0.001359751,0,0.00123074,0.001194516,0,0.001325635,0.00126656,0.001312247,0.001177479,0.001185858,0.001066577,0.001250674,0.001311624,0.001492768,0.001420989,0.001360523,0.001235161,0.001359492,0.001346089,0.00133569,0.001231716,0.001256591,0.001178545,0.001401958,0.001321536,0.001416359,0.001219376,0.0012313,0.001022495,0.001091265,0.001140632,0.001346722,0.00133781,0.001365983,0.00124192,0.0013135,0.001211588,0.001237042,0.001188623,0.001204756,0.001241283,0.001311259,0.001308299,0.001495695,0.001423297,0.001419843,0.001239954,0.001111717,0.001203546,0.001391884,0.001271373,0.001225636,0.0011113,0.001107609,0.001239495,0.001276761,0.001272301,0.001240294,0.001247661,0.001244882,0.001271735,0.001178692,0.001187443,0.001181519,0.001197728,0.001159567,0.001127196,0.001243362,0.00132837,0.001361447,0.001342858,0.001232935,0.001238303,0.001274553,0.001326471,0.001282549,0.001265698,0.001239037,0.001115149,0.00116788,0.001259024,0.001320753,0.001344439,0.001244888,0.001005362,0.001009722,0.001181874,0.001228698,0.001239022,0.001180705,0.001016493,0.001053619,0.001263043,0.00137312,0.001410558,0.00136059,0.001126195,0.001221691,0.001177699,0.001331949,0.001323511,0.001391164,0.00114185,0.001172206,0.001230564,0.001294049,0.001299258,0.001248821,0.001049282,0.001165257,0.001084572,0.001241774,0.001204015,0.001234685,0.001010077,0.001011303,0.001246076,0.001165922,0.001525708,0.001886685,0,0,0,0,0 +LEVEL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000800961,0.000801511,0.000800183,0,0,0,0.000953425,0.000953516,0.000953243,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000341265,0.000340304,0.000339926,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000240442,0.00024039,0.000230869,0,0,0,0.000231705,0.000209888,0.000212025,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000317874,0,0.000510517,0,0.000497963,0.000426849,0.000431865,0.00042012,0,0,0.000495317,0.000567577,0.000518188,0,0,0,0,0.000380865,0.000546209,0.000624454,0.0007955,0,0,0,0,0.000504874,0.000838973,0.000977099,0.000559722,0.000545044,0.000452158,0.000446429,0,0,0.000462727,0.00036342,0.000324623,0,0,0,0.000312735,0.000398396,0.000457098,0.000564718,0.000559696,0.00057852,0.000710344,0.000852603,0.000887705,0.000861125,0.000793973,0.001007489,0.001106423,0.001223368,0.001107102,0.001087294,0.001036076,0.001131107,0.001135889,0.001187645,0.001120689,0.001240533,0.001280887,0.001319518,0.001121978,0.001066162,0.001115535,0.001165332,0.001159111,0.001097387,0.001144374,0.001230709,0.001245147,0.001273855,0.001263662,0.001301894,0.001119686,0.001231753,0.001261493,0.001378802,0.001319663,0.001271243,0.001140069,0.00112222,0.001320288,0.001302719,0.001360771,0.001206764,0.001156631,0.001179154,0.001330138,0.001353004,0.001306435,0.001253672,0.001136587,0.001071239,0.001081842,0.001206637,0.001323321,0.001353577,0.001196477,0.00114205,0.001244919,0.001336066,0.001346872,0.001359998,0.001284265,0.001254155,0.001358889,0.00145936,0.001468839,0.00141849,0.001260686,0.001089752,0.001239191,0.001326905,0.0013942,0.001359104,0.001300063,0.001198053,0.00131723,0.001392464,0.001428791,0.00141523,0.001342065,0.001247967,0.001223487,0.001286513,0.001317055,0.00132017,0.001366066,0.001348203,0.001322829,0.001199735,0.0012923,0.001316789,0.001507154,0.0014264,0.001430504,0.001224603,0.001311933,0.001284117,0.00134964,0.00136827,0.00127695,0.001227342,0.001307245,0.001384347,0.001431127,0.001411191,0.001188311,0.001225283,0.001347627,0.001394689,0.001433626,0.001264366,0.001155893,0.001126335,0.001169801,0.001250683,0.001270478,0.00137767,0.001301729,0.001222499,0.001253684,0.001305275,0.001361013,0.001413117,0.001304046,0.001261938,0.001291743,0.001334112,0.001436502,0.001516846,0.001347726,0.001232151,0.001166655,0.001358381,0.001352143,0.001457282,0.00122985,0.00119504,0.001173587,0.001287815,0.001327841,0.001358251,0.001163482,0.001163376,0.001164142,0.001277776,0.001273612,0.001325907,0.001128418,0.001192221,0.001133163,0.001202786,0.001203843,0.001238189,0.00126099,0.001305946,0.001342476,0.001319092,0.001292079,0.001300399,0.001219223,0.001265543,0.00122592,0.001274711,0.001270471,0.001291652,0.001157103,0.00121366,0.001177301,0.00132644,0.001343961,0.001389205,0.001316707,0.001134088,0.001153671,0.001071272,0.00141128,0.001600823,0,0,0,0,0 +GOAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000363,0.000406555,0.000373497,0.000620347,0.00077007,0.000839544,0.000727816,0.000728558,0.000723421,0.000759222,0.000836522,0.000912224,0.000822783,0.000619597,0.000641965,0.000900038,0.000957008,0.000996732,0.000993344,0.000859805,0.000863185,0.000853096,0.000961307,0.001047094,0.00112206,0.001012986,0.000940423,0.000965564,0.001030106,0.001151956,0.00116759,0.001099564,0.000935217,0.000987163,0.001117205,0.001198229,0.001198525,0.001030576,0.001045558,0.001202488,0.001196221,0.001210571,0.001106027,0.00105837,0.001049349,0.001165439,0.001232341,0.001280047,0.001247489,0.001179764,0.001113167,0.001190474,0.001198634,0.00120705,0.001179335,0.001045379,0.001051762,0.001109581,0.001241112,0.001273953,0.001289443,0.001173068,0.001150018,0.001303246,0.001327099,0.001364226,0.001274404,0.001230433,0.001237909,0.001178966,0.00136815,0.001294264,0.00132487,0.001105399,0.00112363,0.001237234,0.001346256,0.001429142,0.001418689,0.001413641,0.001164065,0.001172932,0.001275928,0.001354888,0.001406881,0.001348048,0.001273632,0.001276774,0.001364122,0.00141044,0.001424496,0.00137593,0.001379959,0.001434805,0.001542705,0.001535969,0.0015353,0.001401061,0.001263934,0.001390873,0.00154112,0.001462532,0.001436227,0.001390574,0.001411598,0.001423245,0.001475262,0.001458113,0.001480694,0.001433263,0.001378874,0.001245441,0.001234736,0.001309857,0.001336855,0.001349917,0.001297367,0.001234043,0.001245681,0.001246269,0.001267466,0.001309889,0.001307587,0.001233743,0.001269044,0.001265133,0.001260909,0.001232983,0.001264368,0.001271892,0.00132262,0.001322673,0.001353095,0.00131851,0.001274406,0.001165355,0.001268317,0.00125755,0.001316179,0.001293072,0.001335263,0.001257464,0.001279379,0.001290006,0.001318816,0.001313506,0.001295272,0.001227202,0.001186894,0.00117108,0.00117571,0.001189538,0.00117457,0.001082547,0.001114948,0.001175515,0.001266008,0.001274341,0.001268043,0.001174025,0.001217333,0.001306083,0.0013676,0.00137367,0.001350447,0.001289563,0.001524966,0.001523113,0.001462721,0.001390737,0.001345401,0.001217588,0.001195733,0.001476614,0.001384686,0.001419966,0.001297965,0.001310695,0.001185435,0.001260077,0.001226155,0.001474851,0.00125779,0,0,0,0,0 +CHEMICAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003121099,0.003125977,0.003131851,0,0,0,0.004326329,0.004333471,0.004331683,0,0,0,0.001933216,0.001934916,0.001935938,0,0,0,0.002372735,0.002373247,0.002373759,0,0,0,0.003055708,0.003056426,0.003131851,0,0,0,0.003252419,0.003250872,0.003249584,0,0,0,0,0.003922439,0.003922439,0.003923891,0,0,0,0.003375479,0.003377798,0.003372199,0,0,0,0.002717262,0.002717521,0.002716744,0,0,0,0.002726589,0.002726333,0.002725564,0,0,0,0.002354234,0.002353126,0.002355805,0,0,0,0.002226684,0.002226928,0.002224897,0,0,0,0.002345321,0.002344797,0.00234471,0,0,0,0.002318901,0.002342162,0.002305733,0,0,0,0.001954519,0.001918079,0.001915946,0,0,0,0.002322198,0.002344993,0.002229219,0,0,0,0.002168179,0.002221383,0.002300427,0.003023256,0.004348771,0.004265302,0.005630631,0.002776017,0.002731703,0.002749444,0,0.003184206,0.003488879,0.002799768,0.002652216,0.002667986,0.001862024,0.002689706,0.002409375,0.00227449,0.001872757,0.001739824,0.001481725,0.001850383,0.001988251,0.002556868,0.002086594,0.002011429,0.001870033,0.00209154,0.002242043,0.002177858,0.002090228,0.001928251,0.001666609,0.001584603,0.001642542,0.002027369,0.00220681,0.002027328,0.001862998,0.001907244,0.00214801,0.002246273,0.002387469,0.00208239,0.002027532,0.001827121,0.002062407,0.002155172,0.001824532,0.001350865,0.001418943,0.001623657,0.002241633,0.002753224,0.00276116,0.001883066,0.001485375,0.001711456,0.002081512,0.002670606,0.00264131,0.002572232,0.001993734,0.001902532,0,0.002460988,0.002442748,0.002294862,0.001868722,0.001947758,0.001934524,0.002059163,0,0.002174818,0.001982292,0.001850349,0.001932337,0.002667157,0.002805003,0.002501876,0.001767884,0.001730443,0.00179683,0.001826376,0.001810208,0.001566399,0.001537269,0.001378279,0.001365498,0.001317657,0.001897438,0.002271856,0.002053077,0.001728293,0.001667658,0.001702313,0.001950434,0.00190498,0.001796772,0.001525509,0.001428106,0.001362964,0.001679956,0.002003533,0.001789162,0.001470945,0.001437773,0.001538326,0,0.001875118,0.00176686,0.001571358,0.001430504,0.001343407,0.001505839,0.00180932,0.001776016,0.001625699,0.001385098,0.001303827,0.001395155,0.001782518,0.001885912,0.001503661,0.00135299,0.001243804,0.001365379,0.001561452,0.001572205,0.001445417,0.001334843,0.001245522,0.001388281,0.001652261,0.001716764,0.001466232,0.001427279,0.001400115,0.001451467,0.001513804,0.001505912,0.001359751,0.001239992,0.001261441,0.001320054,0.001545732,0.001673289,0.001737673,0.001499081,0.001364094,0.001305011,0.001493617,0.001609219,0.001571992,0.001456831,0.001473402,0.001483949,0.001577924,0.001620062,0.001412054,0.001281904,0.001203563,0.001270507,0.001403884,0.001854305,0.001619948,0.001443223,0.001273046,0.001253196,0.001303599,0.001530081,0.001449988,0.001304347,0.001199383,0.001217258,0.001329291,0.001641186,0.00139276,0.001159641,0.001043077,0.001028396,0.001096808,0.001324941,0.001431605,0.001318609,0.001223521,0.001151933,0.001147038,0.001303466,0.001285433,0.001218194,0.001169464,0.001173733,0.001197895,0.001212801,0.001294018,0.001128821,0.001040456,0.000946204,0.000936524,0.000839143,0.001067778,0.001002093,0.001128561,0.001120808,0.001157835,0.001009128,0.000995005,0.000990727,0.001012557,0.000969642,0.000975772,0.000958595,0.001075992,0.001030118,0.001059778,0.000970649,0.000960979,0.000987063,0.001130018,0.001040657,0.001028062,0.000915162,0.000926471,0.000894304,0.001151682,0.001136722,0.001102465,0.001053231,0.00106895,0.001088676,0.001278873,0.001118627,0.001051281,0.001107692,0.001131553,0.001193408,0.001271861,0.001176659,0.00107762,0.001145512,0.001175711,0.001224055,0.001151228,0.001180441,0.001176698,0.001232811,0.001234007,0.001226986,0.000883606,0.001106098,0.00112448,0.001201542,0.001120772,0.001122107,0.000941937,0.001004606,0.000938057,0.000989528,0.00099171,0.001715168,0,0,0,0,0 +ACTIVITIES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000372273,0.00037219,0.000372176,0,0,0,0.000346105,0,0,0,0,0,0.000465362,0.000464051,0.000463535,0,0,0,0.000559566,0.000558332,0.000557305,0,0,0,0.000692923,0.000710843,0.000707824,0.002325581,0,0,0,0.000633894,0.000699316,0.000692608,0,0,0,0.000830276,0.00083955,0.000883439,0.001024113,0,0,0,0,0.00039871,0,0,0,0,0,0,0,0,0,0,0,0,0.000381931,0.000547408,0.000410635,0.000464606,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000357085,0.000348454,0.000367884,0.000396,0.000375281,0.000348597,0.000440773,0.000500545,0.000618611,0.000727816,0.001511757,0.001666451,0.001611886,0.001673043,0.001486587,0.001712731,0.001445726,0.001071961,0.000723343,0.000694068,0.000640007,0.000721443,0.000883469,0.000927465,0.000919422,0.000850469,0.000863045,0.00081177,0.000964901,0.001003293,0.000924476,0.000861073,0.00078705,0.000890472,0.000834152,0.000913893,0.00085284,0.000884813,0.000862889,0.000955467,0.001328901,0.001397896,0.001263528,0.001111227,0.001013501,0.000982115,0.00075757,0.000982307,0.000973916,0.001070039,0.001024697,0.001088874,0.001010124,0.00099267,0.000920012,0.000920164,0.001027515,0.001096963,0.001459321,0.00125488,0.001109581,0.000969447,0.001121737,0.001198304,0.001342135,0.000942855,0.001073583,0.001161852,0.001222731,0.001196418,0.001053558,0.000964984,0.001060596,0.001013608,0.001012536,0.001001454,0.001052275,0.001021995,0.00102385,0.001015912,0.00109486,0.001085297,0.0011804,0.001076265,0.001121397,0.000972633,0.001065141,0.001045072,0.001074849,0.000879031,0.000969837,0.001022345,0.001149605,0.001166902,0.001158937,0.001088378,0.001083695,0.001046126,0.001030616,0.001015907,0.001157669,0.00123089,0.001300287,0.001028334,0.001013766,0.000986511,0.001149782,0.001340904,0.00128113,0.001066602,0.001119903,0.001120662,0.001222866,0.001374565,0.001485389,0.001258367,0.001260684,0.001213772,0.001294112,0.001256116,0.001274027,0.001275518,0.001285317,0.00131062,0.001344114,0.001390579,0.001397709,0.001300531,0.001203799,0.001236781,0.001255249,0.001492563,0.001429092,0.001311475,0.001273836,0.001296906,0.001433692,0.001606166,0.001606694,0.001374322,0.001225587,0.001316838,0.001336295,0.001475138,0.001374289,0.001295103,0.001273107,0.001377587,0.001404795,0.001539841,0.001595363,0.001555349,0.001338377,0.001406335,0.00140621,0.001507921,0.001484374,0.001523394,0.001405159,0.001455674,0.001423104,0.001495679,0.001493621,0.001512224,0.001441544,0.001576247,0.001603729,0.001669397,0,0.001713013,0.001560262,0.001613129,0.001500128,0.001575513,0.001346447,0.001331978,0.001666766,0.001625474,0.001663061,0.001546667,0.001599288,0.001658715,0.001775309,0.001759639,0.00174185,0.002001029,0,0,0,0,0 +EFFECTS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004681648,0.004688965,0.004697776,0,0,0,0,0,0,0,0,0,0.002108963,0.002110818,0.002111932,0,0,0,0.001438021,0.001438332,0.001438642,0,0,0,0.002272193,0.002272727,0.002270592,0,0,0,0.003807711,0.003805899,0.003804391,0,0,0,0,0.00214624,0.00214624,0.002147035,0,0,0,0.002174037,0.002175531,0.002171925,0,0,0,0.001763837,0.001764005,0.0017635,0,0,0,0.002444528,0.002444298,0.002443609,0,0,0,0.002275759,0.002274688,0.002277278,0,0,0,0.00193466,0.001934871,0.001933107,0,0,0,0.002270866,0.002270359,0.002270274,0,0,0,0.002561174,0.002548824,0.002512217,0,0,0,0.002233736,0.002227447,0.002194067,0,0,0,0.002322198,0.002317077,0.002312815,0,0,0,0.002324646,0.002288025,0.002256188,0.003255814,0.003696456,0.004691832,0.003753754,0.002754159,0.002687996,0.002833396,0.003442341,0.002706575,0,0.002703225,0.00274762,0.002809336,0.002793036,0.003260249,0.003066477,0.002429568,0.00202882,0.002066041,0.002085391,0.002431932,0.002892002,0.002821372,0.003042949,0.00224,0.002064828,0.001812668,0.001998343,0.002488981,0.002554723,0.001838565,0.001840214,0.001498171,0.00177942,0.001605001,0.002311896,0.002148968,0.00218544,0.001780095,0.001702197,0.00183786,0.002329238,0.001991852,0.001814107,0.001793901,0.002215178,0.00210728,0.002137309,0.001981268,0.002234835,0.002487304,0.002550823,0.002415109,0.002045303,0.002158637,0.002209019,0.002075595,0.00174847,0.001988749,0.002377179,0.002512413,0.001953046,0.00204888,0.002058332,0.002684714,0.002687023,0.002630695,0.002180176,0.001947758,0.002083333,0.002109387,0.002202522,0.002128546,0.001552795,0.001460802,0.001425494,0.001900733,0.002508003,0.002345509,0.001942183,0.001763093,0.001938009,0.001988394,0.002426052,0.001930678,0.00182147,0.001471722,0.001611534,0.001621731,0.001561608,0.001460479,0.001265761,0.001595773,0.001565798,0.001736412,0.001714787,0.001865539,0.001720248,0.001559816,0.001549601,0.001549501,0.001623539,0.001666939,0.001472195,0.001557229,0.001559079,0.001767286,0.001817893,0.001757924,0.001712026,0.001709945,0.001583711,0.001537659,0.001435995,0.001623351,0.001512478,0.001444613,0.001451205,0.001513213,0.001615442,0.001593125,0.001451599,0.001365113,0.001419059,0.001471148,0.00149613,0.001492054,0.001405804,0.00144985,0.00145289,0.001476352,0.00154499,0.001361098,0.001366177,0.001285925,0.00139832,0.001343891,0.001387332,0.001245897,0.001304061,0.001204819,0.00128867,0.001313501,0.001386628,0.001268884,0.001442603,0.0013944,0.001437293,0.001361686,0.001373098,0.001219821,0.001233735,0.001372311,0.001484475,0.001409341,0.001357686,0.001261528,0.001302847,0.001300739,0.001428322,0.001494482,0.001551604,0.001485644,0.001353835,0.001400402,0.001474565,0.001367504,0.00131373,0.001216473,0.001287577,0.001233628,0.00142485,0.001407971,0.001481531,0.001298087,0.001214368,0.0012984,0.001436075,0.001347308,0.001319389,0.001230448,0.00116531,0.001088856,0.001251861,0.001259995,0.001260111,0.001163058,0.001090172,0.001112137,0.001139029,0.001092497,0.001067704,0.001055495,0.001064295,0.001095917,0.001205899,0.001087638,0.001084458,0.000975935,0.001071521,0.001185753,0.001092446,0.001183354,0.001141045,0.001194945,0.001012508,0.001055742,0.00106627,0.00113058,0.001100244,0.001103128,0.0010846,0.00115806,0.001104945,0.001097734,0.00107022,0.001083443,0.001075353,0.001106653,0.001139291,0.001122888,0.00105079,0.001010215,0.001009766,0.001097402,0.001127314,0.00112251,0.001103613,0.001085285,0.001032094,0.000864203,0.001026635,0.001097398,0.001158896,0.001160827,0.001124744,0.001165329,0.001173753,0.00121207,0.001105185,0.001087433,0.001062035,0.001038685,0.000952589,0.000923155,0.000954556,0.000974923,0.000973358,0.000938831,0.001011084,0.001083398,0.001032209,0.000988065,0.000952871,0.000881813,0.001015768,0.001064065,0.001101388,0.001029853,0.000571723,0,0,0,0,0 +GROUPS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002108963,0.002110818,0.002111932,0,0,0,0.000790912,0.000791082,0.000791253,0,0,0,0.001253624,0.001253918,0.00125274,0,0,0,0,0,0,0,0,0,0,0.001110124,0.001110124,0.001110535,0,0,0,0.001487499,0.001488521,0.001486054,0,0,0,0.001239453,0.001239571,0.001239216,0,0,0,0.001222264,0.001222149,0.001221805,0,0,0,0.00113788,0.001137344,0.001138639,0,0,0,0.001241102,0.001241238,0.001240107,0,0,0,0.001302956,0.001302665,0.001339834,0,0,0,0.001419029,0.001412186,0.001410971,0,0,0,0.001396085,0.001392154,0.001390606,0,0,0,0.001426893,0.001451662,0.001476858,0.004747518,0.004494382,0.004280822,0.001385846,0.001377257,0.001349289,0,0,0,0,0.001377079,0.001376778,0.001595097,0.002677376,0.002228944,0,0.001293686,0.001278406,0.001236815,0.001117214,0.001059581,0.00109517,0.000620315,0.000572231,0.000797419,0.001317089,0.001321702,0.001174876,0,0,0.001142857,0.001831074,0.001708091,0.001218502,0,0,0.000672646,0.001215236,0.001037195,0.000821271,0,0,0.000810931,0.001468902,0.001398646,0.001094269,0,0,0,0.001565112,0.001461697,0.001604094,0,0,0,0.001170628,0.001140015,0.001275412,0,0,0,0.001485375,0.001529386,0.001623579,0,0,0,0.001546161,0.001426899,0.001514622,0,0,0,0.001401542,0.001391256,0.001450893,0.000502235,0.00055063,0.000462727,0.000925069,0.000844019,0.000855297,0.000551826,0,0,0.000473096,0.000587698,0.00051338,0.00038295,0.000354577,0.000346065,0.000555484,0.000677459,0.000799616,0.000709507,0.000402996,0.000590092,0.001078017,0.001189927,0.001167834,0.001078044,0.000938964,0.00094263,0.001098878,0.001223609,0.001197903,0.001104299,0.000774159,0.000721272,0.001003293,0.0012162,0.001137491,0.00092061,0.000624439,0.000754873,0.000807272,0.001232354,0.001106876,0.001188005,0.00075711,0.000848482,0.000948163,0.001218765,0.001086043,0.00105749,0.00077789,0.000854123,0.000973562,0.001303988,0.001225159,0.001192734,0.000923828,0.000817353,0.000966849,0.00125033,0.001138097,0.001134915,0.000928199,0.000989252,0.000834732,0.001206669,0.001027365,0.001027116,0.00073586,0.000788114,0.000860521,0.001181124,0.001059374,0.001033181,0.000817901,0.000699809,0.000796031,0.000909082,0.001051857,0.000977621,0.000937622,0.000772349,0.000872366,0.000992528,0.001206654,0.001101849,0.001032806,0.000734201,0.000878005,0.001102845,0.001244552,0.001146083,0.001071512,0.000853498,0.000869406,0.001063623,0.001319348,0.001205422,0.001163038,0.000904135,0.000854536,0.001112163,0.001256676,0.001116896,0.001013619,0.000825346,0.000812332,0.000847357,0.001100207,0.001112818,0.001119883,0.001014939,0,0.001026158,0.00136901,0.001182074,0.001172216,0.000939845,0.001057855,0.001144511,0.001348166,0.00131342,0.001316835,0.001276793,0.001249928,0.001366716,0.001714366,0.001675793,0.00160551,0.001370042,0.001265169,0.001361717,0.001555161,0.001373083,0.00134964,0.001194945,0.001200135,0.001225446,0.001436554,0.001432556,0.001416118,0.0013054,0.001232935,0.001252893,0.001447902,0.001582176,0.001541037,0.00151927,0.001388832,0.001289325,0.001296533,0.001394221,0.001409234,0.001409322,0.001324662,0.001302723,0.001362498,0.001443227,0.001385488,0.001376424,0.001308865,0.001275204,0.00144612,0.00161598,0.001456719,0.001406376,0.001308346,0.001424049,0.001486076,0.0014931,0.001440072,0.001424497,0.001387771,0.001399762,0.001454963,0.001513826,0.0013945,0.001367707,0.00125302,0.001343817,0.001333771,0.001347499,0.001346856,0.001377138,0.001400242,0.001513111,0.001634158,0.001881715,0.001987661,0.002059706,0.001715168,0,0,0,0,0 +POTENTIAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000223524,0.000222138,0.000243314,0,0,0,0,0.000284159,0.000262243,0.000293834,0,0,0,0.000502027,0.000534259,0.00058307,0,0,0,0,0,0.000579941,0.000878059,0.00084589,0.000903751,0,0,0,0.000623344,0.000522885,0.000584881,0,0,0,0.000451373,0.000403354,0.000444855,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000457038,0.000436967,0.000416302,0,0,0,0,0,0,0,0.000610687,0,0.000428249,0,0,0,0,0,0,0.000324623,0,0.000459855,0.000594001,0.000750563,0.000597595,0.000587698,0.00077007,0.000824815,0.001063731,0.000856055,0.000826767,0.00070082,0.000787314,0.001013582,0.00136011,0.001121175,0.001029567,0.001054646,0.001113351,0.001125258,0.001196363,0.001159553,0.001025415,0.000953729,0.000950649,0.001004813,0.001065644,0.00095849,0.000846119,0.000788887,0.000825278,0.000884835,0.001016099,0.001044413,0.00102356,0.00093386,0.000900305,0.000881291,0.000924736,0.00100733,0.000951028,0.000907461,0.000911332,0.000990627,0.001089965,0.001180918,0.000996881,0.000827217,0.000913483,0.000942325,0.001052435,0.000979281,0.000915207,0.000913361,0.000941352,0.000995456,0.001038699,0.000964696,0.001021155,0.000972865,0.001050808,0.00102026,0.001063284,0.001131451,0.001038468,0.000889488,0.000853135,0.000931731,0.001004306,0.001157376,0.001143685,0.001152925,0.001037146,0.001023371,0.001008546,0.001146264,0.001050227,0.000992528,0.000894279,0.000993528,0.0010172,0.001208795,0.001098923,0.001088415,0.00094574,0.001024084,0.00104368,0.001208457,0.001273632,0.00117233,0.001064135,0.001032605,0.001012345,0.001094826,0.001200969,0.001136836,0.001046126,0.001091296,0.00111887,0.001223198,0.001296978,0.001188942,0.001047685,0.001045099,0.001062566,0.001147374,0.001199517,0.001174543,0.001067964,0.001070996,0.00107925,0.00115665,0.001273304,0.001199737,0.001168568,0.001130268,0.001161128,0.001163257,0.001241677,0.001259487,0.001169847,0.001194206,0.001214721,0.001252847,0.001244882,0.001219746,0.001169109,0.001176811,0.001146494,0.001185667,0.001232252,0.001255815,0.00121364,0.001189185,0.00118149,0.001193963,0.00116116,0.001210947,0.001194737,0.001269536,0.001291781,0.001337015,0.001389824,0.001384909,0.001325122,0.001214897,0.001282648,0.001289364,0.001363499,0.001420723,0.001395424,0.001487172,0.001404164,0.001403328,0.001467019,0.001807303,0.001681621,0.00155951,0.001493816,0.001513915,0.001530757,0.001821913,0.001599384,0.001444577,0.001497932,0.001552233,0.001617652,0.001845248,0.001636147,0.001745079,0.001704986,0.001780962,0.001850976,0.002098564,0.002099255,0.001882742,0.001749772,0.001725193,0.001793899,0.002168458,0.00219897,0.001680103,0.001617664,0.001195138,0.000743239,0,0,0,0,0 +EXPERIMENTS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001110582,0.001110054,0.001109614,0,0,0,0,0.000814091,0.000814091,0.000814393,0,0,0,0.000915384,0.000916013,0.000914495,0,0,0,0.000667398,0.000667461,0.00066727,0,0,0,0,0,0,0,0,0,0.000745507,0.000745156,0.000746005,0,0,0,0.000401533,0.000401577,0.000401211,0,0,0,0.000595637,0.000595504,0.000595482,0,0,0,0.000588378,0.000585541,0.000585037,0,0,0,0.000341265,0.000340304,0.000370828,0,0,0,0.000531587,0.000502499,0.000501574,0,0,0,0.000447047,0.00046649,0.000486629,0,0,0,0,0.00054646,0.000568194,0.000587667,0,0,0,0.000810967,0.000782308,0.000759758,0.000931012,0,0,0,0.000676273,0.000724927,0.000768302,0.000634417,0,0,0,0,0,0.000418308,0.000584881,0.000674099,0.000812867,0.00058296,0.000590257,0.000403354,0.000479075,0.000422369,0.000735603,0.000608199,0.000537403,0.000699323,0.000851098,0.00091893,0,0.000452694,0.000391278,0.000431865,0.000878433,0.00105364,0.00104259,0.000540346,0.000603051,0.000552734,0.000502435,0,0,0.000459284,0.000647471,0.000837521,0.001040756,0.001136428,0.000792393,0,0.00052895,0.000621982,0.00066022,0.000783042,0.000671756,0.000559722,0,0,0.000409226,0,0,0.000555273,0.000594687,0.000616783,0.000633553,0.000797081,0.001089001,0.001094571,0.000995991,0.000914196,0.001103767,0.001251952,0.001455631,0.002258529,0.002144426,0.001787091,0.001070256,0.000675721,0.000805991,0.000914643,0.001859276,0.001722772,0.001700821,0.001529196,0.001526269,0.00161312,0.001637603,0.001605559,0.001622072,0.001748474,0.001874279,0.001926597,0.001647705,0.001592154,0.001507375,0.001516861,0.001540775,0.001919928,0.001961824,0.001869852,0.001673225,0.001601047,0.001553333,0.001418011,0.0018419,0.001782368,0.001743965,0.001555443,0.001571844,0.001600553,0.001553619,0.001593311,0.001562689,0.001543634,0.001416822,0.001522897,0.001775903,0.001840024,0.001782817,0.001662299,0.001633389,0.001294446,0.001477475,0.001499916,0.001704461,0.001597584,0.001626993,0.001394156,0.001386395,0.001458178,0.001585858,0.001559115,0.001510264,0.001184292,0.001283397,0.001444115,0.001591762,0.001596459,0.001553247,0.001283162,0.001185741,0.00135665,0.001614401,0.001603854,0.001542115,0.001371049,0.001464286,0.001552228,0.001697253,0.001664577,0.001681021,0.00150758,0.001571989,0.001489925,0.001479043,0.00141366,0.00142192,0.001505796,0.001573385,0.001700509,0.001461928,0.001358669,0.001271027,0.001482191,0.001828435,0.001715473,0.001434692,0.001233095,0.001139723,0.001178677,0.00141844,0.001519382,0.001285916,0.001192022,0.001129114,0.001110725,0.001057855,0.001169268,0.001179202,0.00115236,0.001112933,0.001096868,0.001029231,0.001186789,0.001151199,0.001138888,0.001058885,0.001040236,0.000979307,0.001071777,0.001067804,0.00100262,0.000964362,0.000941669,0.000955037,0.001041451,0.001056362,0.001062208,0.000996218,0.000983264,0.000936265,0.001220066,0.001233398,0.001175644,0.00105901,0.001032297,0.001042616,0.001187368,0.001166451,0.001147298,0.001051436,0.001023041,0.000959383,0.000906242,0.000997179,0.001157974,0.001147045,0.001151103,0.001041638,0.000860533,0.000880674,0.000939283,0.000968185,0.000975621,0.00096428,0.000993573,0.001008149,0.000917898,0.000969009,0.000953677,0.001043373,0.000888626,0.000907293,0.000921298,0.001002364,0.001013946,0.001027107,0.00095198,0.000925035,0.000955456,0.000920522,0.000909647,0.000863102,0.000821689,0.000904145,0.001010862,0.000959412,0.000915425,0.000628895,0,0,0,0,0 +COMPLEX,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001150417,0.001150665,0.001150914,0,0,0,0.000861866,0.000862069,0.000861259,0,0,0,0.00118991,0.001189343,0.001188872,0,0,0,0,0.001332149,0.001332149,0.001332642,0,0,0,0.000858173,0.000858762,0.000857339,0,0,0,0.001096439,0.001096544,0.00109623,0,0,0,0.001081234,0.001081132,0.001080827,0,0,0,0.000823982,0.000823594,0.000824532,0,0,0,0.001277605,0.001277745,0.00127658,0,0,0,0.001116819,0.00111657,0.001116528,0,0,0,0.001211366,0.001205525,0.001204488,0,0,0,0.000806627,0.000804356,0.000803461,0,0,0,0.000923284,0.000865414,0.000863823,0,0,0,0.00113997,0.001110692,0.001105974,0,0,0,0,0.000896194,0.000895999,0.000965454,0,0,0,0.001004055,0.001068519,0.001077796,0.001117214,0,0,0.000568622,0.000624252,0.000978651,0.001371968,0.00137457,0.001265251,0,0,0.000868571,0.000973975,0.001080629,0.000877321,0.000933368,0.000696743,0.000807175,0.000902746,0.000749085,0.000684392,0.000464606,0.000630517,0.00117585,0.00161221,0.001430433,0.001256383,0.000714723,0.000931695,0.000543232,0.001138263,0.001162713,0.001374938,0.000814176,0.000834072,0.000945605,0.001135154,0.001036377,0.001120816,0.000724533,0.000715856,0.000826712,0.001828154,0.002002767,0.001914991,0.000909143,0.000858426,0.001136568,0.001383407,0.001426899,0.00132044,0.001118631,0.000671756,0.000727639,0.001440473,0.001634726,0.001748512,0.001104917,0.000770883,0.000694091,0.001024184,0.00100633,0.000982007,0.000950366,0.001320001,0.001157118,0.001394388,0.00122437,0.001193608,0.000942646,0.000802463,0.000764986,0.00080093,0.000957787,0.000996445,0.001064261,0.000940323,0.000973652,0.001211255,0.00129484,0.0012768,0.001219685,0.001098479,0.001025455,0.001123365,0.001212174,0.001315136,0.00129581,0.001150268,0.00093605,0.001129032,0.001325083,0.001344308,0.001230661,0.001008709,0.001054754,0.000987004,0.001149202,0.001148191,0.00119414,0.001019724,0.001018953,0.000993996,0.001186211,0.001114374,0.001147227,0.001021125,0.001091792,0.001008541,0.00111654,0.001180634,0.001232272,0.001170325,0.001044823,0.001044312,0.001115099,0.001129017,0.001107665,0.001016599,0.000845424,0.000915422,0.00115119,0.001161129,0.001166991,0.001063284,0.000954581,0.000929575,0.001137379,0.001163133,0.001180015,0.00103474,0.001038178,0.001114443,0.001200273,0.001275469,0.001268981,0.00128657,0.001180999,0.000965532,0.001043427,0.001144456,0.001220653,0.00119028,0.001064794,0.001053606,0.001179116,0.001281904,0.001230543,0.001199536,0.001092796,0.001045854,0.001104122,0.001270096,0.001240844,0.001251908,0.001193459,0.001206743,0.00113304,0.001214301,0.001276181,0.001332806,0.001259082,0.001151033,0.001190829,0.001292329,0.001333158,0.001322696,0.001258139,0.001071811,0.001118115,0.001332231,0.001339574,0.001303213,0.001175874,0.000913504,0.000889329,0.001074043,0.001122429,0.001167802,0.001166144,0.001272616,0.001148623,0.00119471,0.001145396,0.001241093,0.001223807,0.001198775,0.001085774,0.001252616,0.001322379,0.001342635,0.00127937,0.001211968,0.001123624,0.001214879,0.001229882,0.001193639,0.001105938,0.001035155,0.001127056,0.00139677,0.00141337,0.001368932,0.00134638,0.001168603,0.000972835,0.001040657,0.001232735,0.001378879,0.001409322,0.001344605,0.000972322,0.000976797,0.001167225,0.001238687,0.001270249,0.001260464,0.001190802,0.001192221,0.001278102,0.001286908,0.001310188,0.001247145,0.001060971,0.001135984,0.00114535,0.001228503,0.001218513,0.001244413,0.00106682,0.001043181,0.001176698,0.001264504,0.001306295,0.001247981,0.00107032,0.000978816,0.001143261,0.001239972,0.001302943,0.001273683,0.001092246,0.00089968,0.001024863,0.001148713,0.001652851,0.001429307,0,0,0,0,0 +RELATED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002678204,0.002682625,0.002681518,0,0,0,0,0,0,0,0,0,0.001581823,0.001582165,0.001582506,0,0,0,0.002272193,0.002272727,0.002270592,0,0,0,0.001586546,0.001585791,0.001585163,0,0,0,0,0.00214624,0.00214624,0.002147035,0,0,0,0.001659134,0.001660274,0.001657522,0,0,0,0.002192878,0.002193087,0.00219246,0,0,0,0.002256487,0.002256275,0.002255639,0,0,0,0.002197285,0.002196251,0.002159488,0,0,0,0.001898157,0.001898364,0.001896633,0,0,0,0.002643139,0.002642549,0.002605233,0,0,0,0.00224968,0,0.002236905,0,0,0,0.002326808,0.002320257,0.002348578,0,0,0,0.001986459,0.002037911,0.002006298,0.005179111,0.00494382,0.005136986,0.002190532,0.002132528,0.002079232,0.002325581,0.002826701,0.002985711,0,0.002863451,0.002884678,0.002917349,0.003633582,0.003821048,0.004143044,0.002046727,0.001984392,0.001961235,0.005679173,0.005297905,0.006023437,0,0.001976799,0.001957302,0.002853693,0.003066349,0.004157253,0.001851525,0.002086594,0.002148571,0.004753,0.005995747,0,0.004614986,0.001857981,0.001704036,0.001493004,0.00146936,0.001437224,0.001605001,0.001418663,0.001338037,0.001253941,0.001398646,0.001499554,0.001276292,0.001281081,0.000905387,0.001031551,0.001063052,0.001183974,0.001101533,0.001355367,0.001305836,0.001525364,0.00134729,0.00131406,0.001062648,0.000920387,0.000964497,0.001180683,0.001128833,0.001040756,0,0,0.001016929,0.001424096,0.00128055,0.001242767,0.001006768,0.001099237,0.001119445,0.001206883,0.001078223,0.001153274,0.00115514,0.001321513,0.001249364,0.00109026,0.001038792,0.000823619,0.000858395,0.000561001,0.000875657,0.001045791,0.001338644,0.001129436,0.001134121,0.001063731,0.00120212,0.00102054,0.000969468,0.000984143,0.001148726,0.001057863,0.000944148,0.001247593,0.001358339,0.001359709,0.001335096,0.00121449,0.001155609,0.001120304,0.001340253,0.001366292,0.00141022,0.001144,0.001144418,0.001210238,0.001353844,0.001390046,0.001395226,0.001289522,0.001140927,0.001093625,0.001356016,0.001318612,0.001355676,0.001139856,0.001216545,0.001228888,0.001304221,0.001232423,0.001263357,0.001149626,0.00111036,0.001180517,0.0013427,0.00136448,0.001349239,0.001213194,0.001110366,0.00113325,0.001259197,0.001159285,0.001162166,0.001056781,0.001052395,0.001096281,0.001238372,0.001285241,0.001275325,0.001194929,0.001186073,0.001155329,0.001268615,0.001254083,0.0012254,0.001165984,0.000961276,0.001072205,0.001122148,0.001318132,0.001207578,0.001194369,0.000933766,0.00099094,0.001029723,0.001279911,0.001253266,0.001264052,0.001042484,0.001101755,0.001150257,0.001310291,0.001232889,0.001248241,0.00111872,0.001145306,0.001148884,0.001231292,0.001231183,0.001220997,0.001089894,0.001073943,0.001131142,0.001321562,0.001212657,0.001208105,0.001031293,0.001029872,0.001113453,0.001275743,0.00126645,0.001257663,0.001163026,0.001110579,0.001111845,0.001266845,0.001172127,0.001161229,0.001048781,0.001034155,0.001070242,0.001270183,0.001259258,0.001237499,0.001122846,0.001018918,0.00107956,0.001255627,0.001224305,0.001221914,0.001142912,0.001147136,0.00120375,0.001377194,0.001240599,0.001216544,0.001090109,0.001142664,0.001137915,0.001318905,0.001207091,0.001217178,0.001071289,0.001108525,0.001097877,0.001255846,0.001200616,0.001130885,0.00111658,0.001058489,0.001091784,0.001190752,0.001230858,0.00123421,0.001204865,0.001116831,0.000953442,0.00107087,0.001062376,0.001065827,0.001037723,0.0010505,0.001064199,0.001146838,0.001231044,0.001156806,0.001145294,0.001084442,0.001087061,0.001121457,0.001176688,0.001191683,0.001180393,0.001184186,0.001116058,0.00112691,0.001136763,0.001155458,0.001173234,0.001124527,0.001067691,0.001104305,0.001225425,0.001174521,0.001132233,0.001058827,0.000951957,0.000997908,0.00114807,0.001131504,0.001347709,0.001029101,0,0,0,0,0 +NATIONAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000516917,0,0,0,0.00070627,0.000705938,0,0,0,0,0.000547545,0.000547605,0.000547106,0.020958084,0.021929825,0.021216407,0.001116819,0.001079351,0.001079311,0,0,0,0.00076143,0.000723315,0.000722693,0,0,0,0.001489157,0.001484965,0.001390606,0,0,0,0.001342958,0.001339996,0.001421127,0,0,0,0.00169878,0.001666037,0.001614723,0,0,0,0,0.001726814,0.001726436,0.00167905,0,0,0.002180549,0.001602626,0.001526455,0.001484178,0.001210316,0.001385606,0,0.001085552,0.00104042,0.004820762,0.006585446,0.006819984,0.001626751,0.001498854,0.00121718,0.005805714,0.005103631,0.00449681,0.000779841,0.00082966,0.001045114,0.005874439,0.005381758,0.006079115,0.003319303,0.003378949,0.001103405,0.006203625,0.005230725,0.004672749,0.000648456,0.00091893,0.008094101,0.006337709,0.005015473,0.000730848,0.000725662,0.000766284,0.000677683,0.000630403,0.000532104,0.000449097,0.000541084,0.000869439,0.001022652,0.000826712,0.000533211,0.000655451,0,0.000909143,0.001056524,0.000837471,0.000773081,0.000621982,0.00066022,0.001006768,0.000977099,0.000839584,0.000428249,0.00048694,0.00063244,0.00100447,0.001211387,0.000925455,0.000627726,0.000681708,0.000696908,0.000827738,0.000924001,0.001032024,0.000722094,0.000489748,0.000474876,0.000559696,0.000709154,0.001165692,0.001123886,0.001273156,0.001205575,0.001250084,0.001192195,0.001268699,0.001011398,0.000800647,0.000895418,0.000912796,0.001091228,0.00106884,0.001089695,0.001031491,0.001042304,0.001044607,0.001056241,0.000961696,0.000950902,0.001041577,0.001147434,0.001228276,0.001315386,0.001161608,0.001133227,0.001044729,0.001151633,0.001206408,0.001273957,0.001077069,0.001008319,0.001013264,0.001114374,0.00113491,0.001184046,0.001154923,0.00132043,0.001289726,0.001163399,0.00111201,0.001114595,0.001164342,0.001095953,0.001008688,0.001013996,0.001062781,0.001133126,0.00123481,0.001126888,0.001036269,0.001115622,0.001256126,0.001360328,0.001414964,0.001072996,0.000982447,0.001049126,0.00113196,0.001268698,0.001395773,0.001111194,0.001062963,0.001000368,0.001095609,0.0011277,0.0012566,0.00139748,0.001235276,0.001075346,0.001056424,0.001109415,0,0.001367989,0.001253327,0.001104111,0.001219986,0.001259374,0.001367989,0.000984899,0.000999678,0.000931304,0.001043339,0.001012345,0.001114552,0.001073943,0.001191875,0.001104391,0.001075178,0.001006754,0.001031293,0.001065669,0.001143649,0.001031099,0.001007702,0.001057054,0.001138947,0.001350026,0.001287399,0.00120146,0.001128193,0.001151087,0.001168398,0.001437045,0.001432067,0.001271364,0.001223626,0.001234533,0.001305658,0.001435561,0.001339454,0.001268059,0.001260098,0.001301829,0.001370042,0.001361071,0.001145762,0.001108874,0.001198074,0.001288151,0.001344313,0.001406356,0.001357637,0.00126813,0.001272208,0.001260459,0.00133443,0.001354156,0.001278425,0.001129887,0.00114468,0.001212652,0.001223196,0.00128963,0.001206485,0.001170739,0.001110682,0.001232918,0.001243342,0,0.001201242,0.001199437,0.001040018,0.001160509,0.001174644,0.001316364,0.001260525,0.001188541,0.001111516,0.001243018,0.001255821,0.001308346,0.001226204,0.001239123,0.001248462,0.001261232,0.001266665,0.001289371,0.001266117,0.001188677,0.001144192,0.001230662,0.001247441,0.001269817,0.001028244,0.001163464,0.001208993,0.001220757,0.001207032,0.001208932,0.001338752,0.001319382,0.001391685,0.001144411,0.000889996,0,0,0,0,0,0 +MATHEMATICS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.012772971,0.012794057,0.012788779,0,0,0,0.025307557,0.025329815,0.025343189,0,0,0,0.034800115,0.034807623,0.034815135,0,0,0,0.002037139,0.002037618,0.002035703,0,0,0,0.001427891,0.001427212,0.001426647,0,0,0,0,0.001628182,0.001628182,0.001702821,0,0,0,0.001373076,0.00137402,0.001371742,0,0,0,0.022882204,0.022884386,0.022877842,0,0,0,0.022094772,0.022092695,0.022086466,0,0,0,0.017303618,0.017295474,0.017315167,0,0,0,0.014893229,0.01489486,0.014881278,0,0,0,0.01716179,0.017157957,0.017157319,0,0,0,0.01360191,0.013536321,0.013559089,0,0,0,0,0.01243658,0.012453646,0,0,0,0.007889877,0.007900394,0.007857999,0,0,0,0.005364567,0.005309105,0.005330797,0,0,0,0.003753754,0.003344335,0.003299897,0.003148218,0,0,0,0.001930875,0.001965311,0.00189056,0.001396518,0.001059581,0,0.001085552,0.000936378,0.001051144,0.000878059,0.000898758,0,0,0,0,0.000506467,0.000453167,0.000487401,0,0.000870928,0.000627803,0.001770772,0.001584603,0.00184786,0.00067579,0,0.000486559,0.000609057,0.00085826,0.000932155,0.00091893,0,0.000905387,0.001067122,0.001195934,0.000993011,0.000814176,0,0.000855548,0.000886839,0.001450928,0.001159465,0.001159252,0,0,0.000952163,0.001638628,0.001956621,0.001477357,0,0,0.002970257,0.002634275,0.002718552,0,0,0,0.000622907,0.000834754,0.000892857,0.000853799,0.000825946,0.000832909,0.000991146,0.001103717,0.00161556,0.001502192,0.001419001,0.001344759,0.001419287,0.00125702,0.000911249,0.00101629,0.001063731,0.00198532,0.001743961,0.001927255,0.002607979,0.002922495,0.002585888,0.001371965,0.00133238,0.00103808,0.001577642,0.001489852,0.00163503,0.000883469,0.001123365,0.00119159,0.00133432,0.00131322,0.001184745,0.000791796,0.001034728,0.001134024,0.001622715,0.001600336,0.001792029,0.001023732,0.001014421,0.001193976,0.001186062,0.001218677,0.001173381,0.001038325,0.001125765,0.001369331,0.001721929,0.001694447,0.001521361,0.000961817,0.001448684,0.001837808,0.001766642,0.002011502,0.001826222,0.001916152,0.001365638,0.001762433,0.001504347,0.001418644,0.001044726,0.001255858,0.001193666,0.00156332,0.001391425,0.001538618,0.001309696,0.001430571,0.001009253,0.001346992,0.001380901,0.001432303,0.001247775,0.001168912,0.001026717,0.001311541,0.001294594,0.00136891,0.00126813,0.001033885,0.000886482,0.001047342,0.001296497,0.001349939,0.001337824,0.001204739,0.000824192,0.000975039,0.001139968,0.00121764,0.001205103,0.000993088,0.000619171,0.000967705,0.001292483,0.001431908,0.001353658,0.001130991,0.001068169,0.001245016,0.001352019,0.001240152,0.001174928,0.001118664,0.001104221,0.001266317,0.001261921,0.001260385,0.001173893,0.001193125,0.001019361,0.001044967,0.001231428,0.001167153,0.001288846,0.00123675,0.001344402,0.001022633,0.001061046,0.000950679,0.000959451,0.000833235,0.000963228,0.000816031,0.001126335,0.001256845,0.001323407,0.001196842,0.000942422,0.000797834,0.00105959,0,0.000930894,0.000731069,0.000755578,0.000619869,0.000968435,0.000863604,0.000985587,0.000880255,0.00101442,0.000685717,0.000885452,0.000868998,0.000923831,0.000905511,0.000855124,0.000766798,0.000860543,0.000915398,0.001010748,0.000969475,0.001018163,0.000892082,0.001201005,0.001013805,0.000906865,0.00083258,0.000721921,0.000603658,0.000771509,0.000943988,0.00101521,0.00098518,0.000981446,0.000671803,0.000782986,0.000967432,0.00103622,0.001051987,0.000972118,0.000818286,0.000940235,0.001038317,0.000972282,0.000918628,0.000807913,0.000662704,0.000736801,0.000868597,0.000927727,0.000932569,0.000909458,0.000883817,0.001020233,0.001206874,0.001376735,0.001703707,0.001829512,0,0,0,0,0 +PROPOSAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000357638,0.000333207,0.000331792,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000671756,0.000839584,0.000622907,0.000521721,0.000446429,0.000552458,0.00055063,0.000555273,0,0,0,0.00030657,0.000462,0.000312735,0.000273898,0,0.000141179,0,0.000261267,0.000236781,0.000297119,0.000303689,0.000405959,0.000608149,0.001376902,0.00172602,0.001326324,0.001228579,0.001364447,0.001508213,0.001606027,0.001167441,0.00097644,0.000926284,0.000989016,0.00098989,0.001125194,0.001112361,0.001053064,0.001043631,0.001051981,0.001106641,0.001075217,0.001120245,0.001050977,0.000982898,0.001058676,0.001110305,0.001173381,0.000925969,0.000896602,0.000891184,0.001101783,0.001122593,0.001241412,0.001069511,0.001043519,0.000914829,0.001005406,0.001029639,0.001114595,0.000994703,0.000978325,0.000971001,0.001010969,0.001037133,0.001098972,0.001136587,0.001012808,0.001129395,0.001162508,0.001273953,0.001220245,0.001310923,0.001256255,0.001257678,0.001193877,0.001224065,0.001238264,0.001395773,0.001315888,0.001328112,0.001412284,0.001394193,0.001378772,0.001144221,0.000923184,0.001035596,0.001130634,0.001219488,0.001210142,0.00119257,0.001036613,0.001106968,0.001379018,0.001349023,0.001352609,0.001084819,0.00108756,0.001204303,0.001299946,0.001332082,0.001303427,0.00120661,0,0.0011691,0.001394394,0.001385216,0.001392296,0.001251281,0.00109596,0.001141761,0.001317208,0.00134933,0.001404262,0.001299073,0.001283893,0.001153644,0.00133768,0.001328797,0.001414773,0.001329667,0.001340093,0.001243537,0.001422605,0.001548595,0.001540015,0.001496166,0.001200426,0.001343089,0.001595019,0.001573293,0.001559958,0.001434344,0.001471727,0.001417705,0.001555161,0.001636414,0.00162128,0.001583673,0.001443543,0.001446956,0.001576494,0.001526161,0.001552794,0.001410281,0.001248885,0.001123409,0,0.001424358,0.001353106,0.001368711,0.00127475,0.001310566,0.001312257,0.001305967,0.001287815,0.00124636,0.001196604,0.001083242,0.001102228,0.001238924,0.001258231,0.001281299,0,0.001014658,0.001030315,0.001134104,0.001083134,0.001072406,0.001074739,0.001182722,0.001106931,0.001043249,0.001088236,0.001124215,0.001118869,0.000987102,0.000886704,0.000994667,0.000982489,0.001017144,0.000930527,0.000828381,0.000874839,0.000955456,0.000978167,0.000959111,0.000936683,0.000859768,0.000892983,0.000954858,0.001041156,0.001334995,0.001543651,0,0,0,0,0 +BROADER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6.06E-05,8.01E-05,9.24E-05,9.44E-05,0.00010151,6.70E-05,6.43E-05,7.09E-05,8.10E-05,8.46E-05,7.84E-05,7.37E-05,7.07E-05,7.40E-05,8.95E-05,9.54E-05,0.000107152,7.58E-05,8.53E-05,7.46E-05,7.92E-05,7.97E-05,9.50E-05,9.30E-05,8.88E-05,0.000120045,0.000121196,0.000128447,9.64E-05,0.000115121,9.91E-05,9.78E-05,8.19E-05,8.40E-05,7.93E-05,9.25E-05,9.18E-05,0.000104194,0.000108967,0.0001074,0.000120545,0.000122779,0.00011408,9.11E-05,9.38E-05,9.87E-05,9.45E-05,7.54E-05,8.23E-05,8.75E-05,9.74E-05,9.61E-05,0.000102713,0.000103818,0.00011047,8.76E-05,0.000126517,0.000122805,0.000137594,0.000100119,8.47E-05,0.000109628,0.000128544,0.00013511,0.000134775,0.00013386,0.00012462,0.000131929,0.000140442,0.000141941,0.000140549,0.000135602,0.000131534,0.000106575,0.000128353,0.000133101,0.000142965,0.00013973,0.000153008,0.000161321,0.000178768,0.000167819,0.000168174,0.0001529,0.000184496,0.000198157,0.0001783,0.000173846,0.000167541,0.000189022,0.000218923,0.000208993,0.000234298,0.000319972,0.000364257,0.00047099,0.000814397,0.001056911,0.001149663,0.001386823,0.00142064,0.001553896,0.001497438,0.001737474,0.001699448,0.00183361,0.00182368,0.001934238,0.00198259,0.002025579,0.001965855,0.002006058,0.001979316,0.001992812,0.002008114,0.002123988,0.001993838,0.001934765,0.001933209,0.002076092,0.002320726,0.002354417,0.001974185,0.001931773,0.0019169,0.001951494,0.002086225,0.002336503,0.002187095,0.001952848,0.001922035,0.001939704,0.002020582,0.002119284,0.001955161,0.001834872,0.001845869,0.001861655,0.00198443,0.002398117,0.002316981,0.002239031,0.002076922,0.002086861,0.002134551,0.002663298,0.002482604,0.002264417,0.002071272,0.002075886,0.002097773,0.002482995,0.002546185,0.002273525,0.002028901,0.001896111,0.00197947,0.002529848,0.002378916,0.002335821,0.002008575,0.001986384,0.001916043,0.002306743,0.002332917,0.002004923,0.001626268,0.00132228,0.001143445,0,0,0,0,0 +BEHAVIOR,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.006505932,0.006515906,0.006528418,0,0,0,0.006554307,0.006564551,0.006576887,0,0,0,0.003296251,0.003301692,0.00330033,0,0,0,0.002811951,0.002814424,0.00281591,0,0,0,0.002516537,0.00251708,0.002517623,0,0,0,0.002820653,0.002821317,0.002818666,0,0,0,0.003173092,0.003171583,0.003170326,0,0,0,0,0.005106572,0.005106572,0.005108462,0,0,0,0.004062017,0.004122059,0.004115226,0,0,0,0.003003289,0.003003576,0.003002717,0,0,0,0.00296164,0.002961361,0.002960526,0,0,0,0.00282508,0.002823751,0.002826966,0,0,0,0.002956744,0.002957068,0.002954371,0,0,0,0.002605912,0.00260533,0.002605233,0,0,0,0.002941889,0.002927703,0.00289077,0,0,0,0.002140663,0.002134637,0.00210136,0,0,0,0.002238263,0.002233327,0.002257085,0,0,0,0.002257589,0.002332452,0.002344666,0.00255814,0.002609263,0.002559181,0,0.002032831,0.002010533,0.001951895,0,0.001910524,0.002180549,0.001950183,0.001774504,0.001872891,0.001675822,0.00195615,0.002080824,0.001860946,0.002236904,0.001848563,0.001865876,0.001638911,0.002078626,0.002292365,0.002869066,0.001965714,0.001753156,0.001568655,0.001705902,0.002074151,0.002032166,0.001793722,0.001527725,0.001123628,0.001060808,0.000971448,0.001313577,0.001500223,0.001934652,0.002034394,0.002066953,0.002042067,0.002212776,0.00208239,0.002027532,0.002258986,0.002291563,0.002203065,0.001668144,0.001666066,0.00148989,0.001658203,0.001816495,0.001932087,0.001891906,0.001699352,0.002247105,0.002221251,0.002164772,0.001306892,0.001386688,0.001555303,0.001708915,0.001756183,0.001669968,0.002125399,0.001954198,0.00223889,0.001946586,0.001843414,0.001785714,0.001757822,0.001927207,0.001943455,0.001784062,0.001785424,0.001678915,0.001655477,0.001716002,0.00162622,0.001369488,0.001648818,0.001886671,0.002076767,0.001940842,0.001366046,0.001446841,0.00138996,0.001500818,0.001520373,0.001427276,0.001416222,0.001465619,0.001628903,0.001658182,0.001623624,0.001500892,0.001498742,0.001509044,0.001511787,0.00146221,0.001454989,0.001297578,0.001243793,0.001246912,0.001477108,0.001584931,0.001609876,0.001367115,0.001154715,0.001169783,0.001411451,0.00141329,0.001445645,0.00123205,0.001053822,0.001160139,0.001336776,0.001396116,0.001467465,0.001413512,0.001492859,0.001329175,0.001373263,0.001388897,0.001400309,0.001311793,0.001256872,0.001316865,0.001367825,0.001386299,0.001338495,0.001275772,0.000929616,0.000934899,0.001099674,0.001438311,0.001459081,0.001407585,0.000936373,0.000969414,0.001270437,0.001307884,0.001308161,0.001154572,0.000953586,0.001244407,0.001233416,0.001379919,0.001252125,0.001228412,0.000919463,0.000920361,0.001066918,0.001478946,0.00150951,0.001549209,0.001176344,0.001028116,0.001117275,0.001298338,0.001266908,0.001248241,0.001228398,0.001411582,0.001440901,0.001523817,0.001258018,0.001222284,0.00097811,0.000984448,0.001002086,0.001230191,0.001291351,0.001327085,0.001185753,0.001062916,0.000985123,0.00121631,0.001243203,0.00126097,0.001197941,0.000925863,0.001090946,0.001302262,0.001304758,0.001266872,0.001136358,0.001010456,0.001115946,0.001179202,0.001128843,0.001086241,0.001082435,0.001025106,0.001215868,0.001241952,0.001195833,0.001145993,0.00105683,0.001040168,0.001029786,0.001111612,0.001128561,0.001108355,0.001080831,0.000958418,0.000993219,0.001123237,0.00113058,0.001084298,0.000993565,0.00090915,0.000930095,0.001013905,0.001122706,0.001127588,0.001117301,0.001037656,0.00104293,0.001077823,0.001226163,0.001126354,0.001141491,0.001012915,0.001010082,0.00095171,0.001005325,0.001036293,0.001035801,0.000985739,0.00083668,0.000888033,0.001039987,0.001011552,0.001025208,0.000931441,0.000756594,0.000745217,0.000915876,0.001051416,0.00109412,0.001079849,0.000923796,0.000881213,0.001001168,0.001013108,0.001045292,0.000970839,0.0007153,0.000690191,0.000866249,0.000984172,0.001026671,0.000977888,0.000793632,0.000745641,0.000896055,0.000937901,0.000889996,0,0,0,0,0,0 +EXPERIMENTAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001006615,0.001006832,0.001007049,0,0,0,0.001802084,0.001802508,0.001800814,0,0,0,0.001586546,0.001585791,0.001585163,0,0,0,0,0.001332149,0.001332149,0.001406678,0,0,0,0.001601922,0.001603023,0.001600366,0,0,0,0.001048768,0.001048868,0.001048568,0,0,0,0.001504325,0.001504184,0.001503759,0,0,0,0.001647964,0.001647188,0.001649064,0,0,0,0,0,0.001969581,0,0,0,0.00137741,0.001377103,0.001377052,0,0,0,0.001868965,0.001859952,0.001858352,0,0,0,0.001551205,0.001515901,0.001514215,0,0,0,0.001622741,0.001647079,0.001671915,0,0,0,0.00169878,0.001710465,0.001703201,0,0,0,0,0.002535575,0.002578728,0.002560551,0.002868617,0.002069734,0,0.00216258,0.002232441,0.002190929,0.002420631,0.002282175,0.002847443,0.001860946,0.001924778,0.001522346,0.001481725,0.001480307,0.001536376,0.001763357,0.00121718,0.001234286,0.001090852,0.001324642,0.001657162,0.002229712,0.002206352,0.001793722,0.001180515,0.001296494,0.001642542,0.001900659,0.001944094,0.00129749,0.001755517,0.002002607,0.002350653,0.002246273,0.002212776,0.001810774,0.00195639,0.001827121,0.002138792,0.001915709,0.00203305,0.001846182,0.001773679,0.001623657,0.002048388,0.002173598,0.002352099,0.001423782,0.001561548,0.001784284,0.002248033,0.002272856,0.002443212,0.002033858,0.00235993,0.002231816,0.002446697,0.002740645,0.002687023,0.002182917,0.002024449,0.002017321,0.002157738,0.001908493,0.002312648,0.002221091,0.00201533,0.001850349,0.001773948,0.002084675,0.002409002,0.002501876,0.002639377,0.002595664,0.00282359,0.003034141,0.003191192,0.002786733,0.002118589,0.002055739,0.002017493,0.002314346,0.002014978,0.001844039,0.001659419,0.001474295,0.001447356,0.001429523,0.001439261,0.001455357,0.001414154,0.001369985,0.00147713,0.001596757,0.001733238,0.001631677,0.001459097,0.001341518,0.001300558,0.001247356,0.001285827,0.001482171,0.001553618,0.001558566,0.001483869,0.001462003,0.00144717,0.001398639,0.00146951,0.00140392,0.001430744,0.001411159,0.00156496,0.001719387,0.00162649,0.001389562,0.001308464,0.001299816,0.001258207,0.001337836,0.001408673,0.00135009,0.001286413,0.001237507,0.001283808,0.001168159,0.001202013,0.001155153,0.001287999,0.001264354,0.00128438,0.00112885,0.001136738,0.001181124,0.001199001,0.001218726,0.001251579,0.00130349,0.00123466,0.001193171,0.001190143,0.001279816,0.001320614,0.001297465,0.001165978,0.001305751,0.001443009,0.001448943,0.001414433,0.001263556,0.001200885,0.001251265,0.001405911,0.001469848,0.001497333,0.001527521,0.001305713,0.001278906,0.00120592,0.001326715,0.00134593,0.001352915,0.001169212,0.001235526,0.001211653,0.001252478,0.001222978,0.001284046,0.001123496,0.001100243,0.001073946,0.001086539,0.001080202,0.001107644,0.001149347,0.001147374,0.001089759,0.001048614,0.001026006,0.001003925,0.000978138,0.001115946,0.001122487,0.001220775,0.001201909,0.001223874,0.001146798,0.001143171,0.001173576,0.001112043,0.001086057,0.001011197,0.000953488,0.001043783,0.00103358,0.001122837,0.001031299,0.001014961,0.000802907,0.000927123,0.001112091,0.001207905,0.001177694,0.001163061,0.00107822,0.001220066,0.001192243,0.001183635,0.001067582,0.001037339,0.0010198,0.001144887,0.001136432,0.001128521,0.001056603,0.001023796,0.000970929,0.000927482,0.000973661,0.001124052,0.001122289,0.001137652,0.001053909,0.000888055,0.000869635,0.000952459,0.001005805,0.001026403,0.000993387,0.000871823,0.000889031,0.000913854,0.001058429,0.001066032,0,0.000792495,0.000871605,0.000907367,0.001005587,0.001001151,0.000990155,0.000828381,0.000860497,0.00088503,0.000981169,0.000991081,0.001004377,0.000835718,0.000783592,0.000859653,0.000912087,0.001067996,0.001543651,0,0,0,0,0 +FUNDAMENTAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0004095,0.000409409,0.000409394,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000307761,0.000307082,0.000334383,0,0,0,0,0.000222138,0.000221195,0,0,0,0,0,0,0,0,0,0,0.000386175,0.000381614,0.000388713,0,0,0,0,0,0.00039871,0,0,0,0,0,0,0.000467508,0.000488026,0.000633621,0.000518538,0.000638681,0,0.000416652,0.000316921,0.000376416,0,0,0,0.000358269,0,0,0,0,0.000452694,0,0.000531526,0.000496505,0.000622605,0,0.000585375,0.000673998,0.000725464,0.000695679,0.000483022,0,0,0,0.00036414,0,0,0,0,0.000488261,0.00051222,0.000504874,0.000559315,0.000671756,0.000559722,0.000622907,0.000591284,0.000669643,0.000552458,0,0,0.000528611,0.000649245,0.000665231,0.000797081,0.000825001,0.001032024,0.00109559,0.001403944,0.001206443,0.001178307,0.000877111,0.000819627,0.000839685,0.000805943,0.000934936,0.000844652,0.000856366,0.000722863,0.000999285,0.00113471,0.001051761,0.001072798,0.000935338,0.001049119,0.000955013,0.001010907,0.000995411,0.000999838,0.000883857,0.000881554,0.000922086,0.000986108,0.000978402,0.000975465,0.000960675,0.000989263,0.000919986,0.000880558,0.000846941,0.000842441,0.000860479,0.000925969,0.000945299,0.000948155,0.000931793,0.000955436,0.000945401,0.000939536,0.000877372,0.000908717,0.000970935,0.001001633,0.001000992,0.001010124,0.000958242,0.00105746,0.001066966,0.001046751,0.001008563,0.000813852,0.000815254,0.000875776,0.000998406,0.000980492,0.000963707,0.000819327,0.000937543,0.001033483,0.001018382,0.001025171,0.000981481,0.000957431,0.000994226,0.00102982,0.001128356,0.001113669,0.001106422,0.00099302,0.000968355,0.001162843,0.001286822,0.001248607,0.001161906,0.001008005,0.001056439,0.001090477,0.00129535,0.001201217,0.001255199,0.001074849,0.00117418,0.001178725,0.001255171,0.001125991,0.001084472,0.000966603,0.001013317,0.001057125,0.001220922,0.001232567,0.001256155,0.001071858,0.000977552,0.000979462,0.001178991,0.001150215,0.001148541,0.001055873,0.001051287,0.001122295,0.001231428,0.001170469,0.001162919,0.001058393,0.001066472,0.001051198,0.001293814,0.00124643,0.001267899,0.00115556,0.001078733,0,0.001324003,0.001282876,0.001257876,0.001083796,0.00097193,0.001013789,0.00119375,0.001266769,0.001231333,0.00117639,0.000948276,0.000986073,0.001217356,0.001327556,0.001331834,0.00120801,0.001114905,0.001130704,0.001294506,0.001317481,0.001273318,0.001272902,0.001198364,0.001155507,0.001236495,0.00135385,0.001333024,0.001308225,0.001222845,0.001170562,0.001232363,0.001387719,0.001351176,0.001358648,0.001263191,0.001238507,0.001241284,0.001407983,0.001349085,0.001353203,0.001250877,0.001117498,0.001181017,0.001287887,0.001431889,0.001451248,0.001434426,0.001064476,0.001183187,0.001404236,0.001427805,0.001432958,0.001313488,0.001020354,0.001002121,0.001187865,0.001352861,0.001390409,0.001343585,0.001178423,0.001134088,0.001330081,0.001290689,0.001627422,0.001372134,0,0,0,0,0 +GROUP,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001078516,0.001078749,0.001078981,0,0,0,0.001253624,0.001253918,0.00125274,0,0,0,0.001586546,0.001585791,0.001585163,0,0,0,0,0.000888099,0.000888099,0.000888428,0,0,0,0.001029807,0.001030515,0.001028807,0,0,0,0.000810411,0.000810489,0.000810257,0,0,0,0.000940203,0.000940115,0.00093985,0,0,0,0.000863219,0.000862813,0.000863795,0,0,0,0.001168096,0.001168224,0.001167159,0,0,0,0.001116819,0.00111657,0.001116528,0,0,0,0.001107535,0.001102194,0.001101246,0,0,0,0.000930723,0.000928103,0.00092707,0,0,0,0.000755414,0.000781664,0.000780227,0,0,0,0.001274085,0.001288402,0.001260811,0,0,0,0,0.001071062,0.001092681,0.001091382,0,0,0,0.001197142,0.001163922,0.001183808,0.001303417,0.001793137,0.001752272,0.001240631,0.000884357,0.000906158,0.000658545,0.000687285,0,0,0,0.000777143,0.001129811,0.001359501,0.001559682,0.001140783,0.000754805,0.000717489,0.001006909,0.000950762,0.000855491,0.000633553,0.000525431,0.000729838,0.000859845,0.000699323,0.000607927,0,0.00064054,0.00072431,0.001600683,0.001793901,0.001833251,0,0.001355367,0.001711095,0,0.001865478,0.001777846,0.001062648,0.001227182,0.00206678,0.002399452,0.002294079,0.00174847,0.001477357,0.001584786,0.00179458,0.00183098,0.001609835,0.001553458,0.001342357,0.00140458,0.001847084,0.001907654,0.00173907,0.001450893,0.001255587,0.001541765,0.001480727,0.001552795,0.001493264,0.001425494,0.001134308,0.000957001,0.000969477,0.000995991,0.00112642,0.000859911,0.000810086,0.000653168,0.000983553,0.001098049,0.001296517,0.001242481,0.001199405,0.00090674,0.000944148,0.001205199,0.001242383,0.001205735,0.001188209,0.001163735,0.001281819,0.001343753,0.001395144,0.001304478,0.001198811,0.001034301,0.001291878,0.001503629,0.001676384,0.001578965,0.001547866,0.001285827,0.001285697,0.001230709,0.001464753,0.001428783,0.001480406,0.001354976,0.001491624,0.001452323,0.001438509,0.001314269,0.001265117,0.001078491,0.001177205,0.001393302,0.001509774,0.001321391,0.001196028,0.001031001,0.001037112,0.001250879,0.001316837,0.001203175,0.001093238,0.001048745,0.001175175,0.001279922,0.001289888,0.001289378,0.001225957,0.001139233,0.001014405,0.001187201,0.001235806,0.001193877,0.001118612,0.001095607,0.00091898,0.001137187,0.001171864,0.001324016,0.001262961,0.001231249,0.001040015,0.001171625,0.001280302,0.001412601,0.00118804,0.001098065,0.000851835,0.001130078,0.001304861,0.0013835,0.001257524,0.001184229,0.001054907,0.00113889,0.001357772,0.001435761,0.001302027,0.001200389,0.001086606,0.001108587,0.001235526,0.001341425,0.00125153,0.001195521,0.001074979,0.001065669,0.001202152,0.001467865,0.001414017,0.001348048,0.001155802,0.001101457,0.001155734,0.001295451,0.001150574,0.001135875,0.000977225,0.000866105,0.000938842,0.001240643,0.00118443,0.001141109,0.000992954,0.000847723,0.001154075,0.001413513,0.001352837,0.001227508,0.001025717,0.000912914,0.00110577,0.001263568,0.001263498,0.001221992,0.001144846,0.001004057,0.001082537,0.001356057,0.001303138,0.001191361,0.000998247,0.00085492,0.000999396,0.001318202,0.001390397,0.001308926,0.001288029,0.00109817,0.001055675,0.001150727,0.001283434,0.001163167,0.001118102,0.000973028,0.001036042,0.001133586,0.001167996,0.001116642,0.001108826,0.001041638,0.00094677,0.001072018,0.001248926,0.001123367,0.001097499,0.000966519,0.000932698,0.000966022,0.001040217,0.001032129,0.001024568,0.001002656,0.000958966,0.001096712,0.001140477,0.001023314,0.000969166,0.000863341,0.000841529,0.000889181,0.000963673,0.000976966,0.000962127,0.000930797,0.000905862,0.000922005,0.000996861,0.000826041,0.00075014,0,0,0,0,0,0 +SPECIFIC,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000415326,0.000413323,0.000412967,0,0,0,0.000372289,0.000371241,0.000370828,0,0,0,0.000335739,0.000334999,0.000334383,0,0,0,0.000357638,0.000333207,0.000331792,0,0,0,0,0.000284159,0.000284097,0.000272846,0,0,0,0.000289631,0.000305291,0.0002827,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000342196,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000380005,0.000502435,0.000531324,0,0,0,0,0,0,0,0,0,0,0.000388365,0,0,0,0,0,0,0,0,0,0.000396458,0.000357085,0.000380132,0.000459855,0.000528001,0.000594196,0.000547795,0.000816247,0.000924084,0.000986832,0.000933097,0.000655702,0.000671748,0.00070082,0.000750409,0.000743293,0.000738825,0.000855634,0.000896329,0.001228579,0.001352603,0.001508213,0.001519019,0.001439581,0.001457008,0.001459183,0.001483525,0.001440066,0.00145429,0.001407281,0.001335977,0.001353844,0.001425841,0.001500166,0.001522301,0.001340848,0.001294682,0.001257939,0.001354762,0.001398616,0.001497458,0.001522618,0.001409354,0.001316429,0.001279642,0.001305586,0.001379092,0.001448296,0.001387472,0.001273426,0.00135299,0.001382187,0.00142754,0.001256872,0.001242272,0.001345656,0.001539155,0.001524442,0.00152289,0.001329526,0.001299399,0.001230446,0.001405215,0.001397372,0.001513914,0.001266705,0.00129875,0.001186592,0.001257926,0.001222731,0.001264893,0.001130461,0.001364624,0.001280764,0.001291651,0.001258145,0.001283733,0.001309724,0.001380541,0.00132337,0.001246738,0.001255595,0.001285332,0.001407557,0.00144446,0.001374949,0.001349137,0.001398291,0.001451411,0.001511568,0.001584822,0.001487794,0.001390987,0.001366431,0.001370401,0.001347984,0.001371299,0.001391153,0.001407636,0.001349187,0.001337382,0.001299648,0.00126118,0.001215363,0.001227367,0.001316986,0.001344741,0.001347232,0.001156188,0.001153644,0.001166043,0.001258337,0.001257576,0.001304034,0.00120436,0.001188311,0.001174476,0.001227902,0.001221187,0.001232533,0.001165362,0.001190424,0.001125092,0.001106349,0.001098044,0.001113872,0.001106562,0.00110777,0.001130777,0.001169451,0.001140267,0.001124436,0.000990534,0.001045024,0.001083607,0.001076045,0.001072908,0.001085336,0.001067055,0.001085111,0.00105506,0.001122706,0.001077473,0.001073358,0.001062457,0.00112577,0.00108783,0.001032756,0.001039165,0.001039639,0.001070646,0.001113922,0.001017562,0.001037705,0.001011102,0.001035801,0.001024596,0.001056859,0.001008236,0.000982576,0.000972365,0.000978011,0.00098667,0.000982703,0.001005244,0.000939127,0.001008167,0.001006511,0.001047614,0.001019927,0.001021219,0.001064322,0.001049098,0.001063204,0.00106322,0.001128175,0.00101467,0.000994191,0.00099498,0.000995303,0.000982303,0.000861772,0.000937632,0.000901655,0.001015342,0.000877282,0.000971928,0,0,0,0,0 +MODELING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000391696,0.000390832,0.000390113,0,0,0,0.000558809,0.000533132,0.000552987,0,0,0,0,0.000590177,0.000611901,0.000608656,0,0,0,0.000675806,0.000686905,0.000689082,0.000931012,0.000815062,0,0.00087878,0.000832336,0.000761173,0,0.000687285,0,0.001058014,0,0.000548571,0.00038959,0.000488026,0.000536141,0.000674099,0.000580619,0.000493274,0.000798583,0.000749085,0.00092393,0.000718027,0.000840689,0.000729838,0.000788191,0.000603961,0.000607927,0.000510517,0,0.000588502,0.00046242,0.000564747,0.000496505,0.000574713,0.000677683,0.000810519,0.000744945,0.00076001,0.000734328,0.000772835,0.000766989,0.000826712,0.001066423,0.001092419,0.001124016,0.001022785,0.001056524,0.001076748,0.000813769,0.000695156,0.000621383,0.000838973,0.000977099,0.001175417,0.000856498,0.000904316,0.000669643,0.000954246,0.000770883,0.000971727,0.000825955,0.000941406,0.001140395,0.001410221,0.001749002,0.001501126,0.001244989,0.001338644,0.001642816,0.001708546,0.001436969,0.000910697,0.000710503,0.001004509,0.001057954,0.001385229,0.000957115,0.00057534,0.000526896,0.000588062,0,0.000637384,0.00058368,0.000556112,0.000639737,0.000670126,0.000650108,0.000678995,0.000692668,0.000631513,0.00053963,0.000573175,0.000686074,0.00074412,0.000787015,0.000637678,0.000676281,0.000695065,0.000686849,0.000680905,0.000678885,0.00074,0.000684625,0.000738584,0.000826337,0.000853382,0.000832962,0.000657303,0,0.000696819,0.000811506,0.000879723,0.000889533,0.00075181,0.000751675,0.000775914,0.000820278,0.000831951,0.000823727,0.000845424,0.000804125,0.000828223,0.000801207,0.00085433,0.00085569,0.000889555,0.000844586,0.00100432,0.001011977,0.001101258,0.001011915,0.001145841,0.000809027,0.000916185,0.000978301,0.001085978,0.001106422,0.001101313,0.000954239,0.000961205,0.000991032,0.001115826,0.001153394,0.001261528,0.001104587,0.001096661,0.001012973,0.001107372,0.001097951,0.001106755,0.001033021,0.00104444,0.001044732,0.001182881,0.001215845,0.00133812,0.001024865,0.001062818,0.001064665,0.001252478,0.001267595,0.001332412,0.001038133,0.001002108,0.001022806,0.001102711,0.001183813,0.001187105,0.001140225,0.001055417,0.001036634,0.001168811,0.001199261,0.001304034,0.001249604,0.001274007,0.001117761,0.001255695,0.001262709,0.001387442,0.001309743,0.001248582,0.001065418,0.001207222,0.001297834,0.001555687,0.001646933,0.001501688,0.001158157,0.00122915,0.001229776,0.001321119,0.001323529,0.001409442,0.001318905,0.001395114,0.001368281,0.0014159,0.001360536,0.001344079,0.001338156,0.001419363,0.001498835,0.00152071,0.001487043,0.001336055,0.00130511,0.001211141,0.001282648,0.001298417,0.001363499,0.001071442,0.001022266,0.001176477,0.001379407,0.001435997,0.001493606,0.001133922,0.001110041,0.001088928,0.00136267,0.001393829,0.001438956,0.001141414,0.00125365,0.001258571,0.001386303,0.001381026,0.001431033,0.001158262,0.001177696,0.001160909,0.001273636,0.001289023,0.001297531,0.001099248,0.001111476,0.001185517,0.001277802,0.001273988,0.00128472,0.00117241,0.001136321,0.001285279,0.001303596,0.001601994,0.001657996,0,0,0,0,0 +MATHEMATICAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000814091,0.000814091,0.000814393,0,0,0,0.000915384,0.000916013,0.000914495,0,0,0,0.001191781,0.001191895,0.001191554,0,0,0,0.001316284,0.001316161,0.001315789,0,0,0,0.00113788,0.001137344,0.001138639,0,0,0,0.000803066,0.000803154,0.000802422,0,0,0,0.001265729,0.001265446,0.001265399,0,0,0,0.00148825,0.001481073,0.001479799,0,0,0,0.001830422,0.001825269,0.001823239,0,0,0,0.002182307,0.002149577,0.002145624,0,0,0,0.001676427,0.001666037,0.001636842,0,0,0,0,0.001573805,0.001595315,0.001595097,0,0,0.002180549,0.001911566,0.001850827,0.001784547,0.001489619,0.001548618,0.001204687,0.001447402,0.001248504,0.001268622,0.001152453,0.001638911,0.002169001,0.002204197,0.002260476,0.00192,0.001831074,0.001777809,0.001510942,0.001244491,0.000812867,0.000941704,0.001076352,0.001152439,0.001163467,0.000971448,0.000840689,0.001135304,0.001755517,0.001525795,0.001459026,0.000867878,0.000931695,0.001131734,0.002063102,0.001993223,0.002138792,0.000862069,0.000938331,0.001080692,0.002731465,0.002660034,0.002512174,0.000772835,0.000613591,0.000734855,0.002285192,0.002913116,0.003163898,0.001761464,0.001056524,0.00179458,0.013671319,0.013244549,0.013786943,0.003411824,0.002931298,0.005373335,0.018920813,0.017947202,0.017410714,0.003364974,0.001706954,0.002730091,0.015263645,0.01606882,0.015553725,0.009105123,0.002706003,0.002845884,0.008590424,0.01066018,0.008624783,0.006127198,0.002388728,0,0.004921845,0.0084332,0.009041814,0.00807487,0.00248514,0.002242351,0.002979687,0.002840917,0.002582027,0.00201707,0.000986093,0.000828252,0.001536592,0.002909217,0.002830633,0.002676184,0.000981019,0.000740506,0.001600553,0.002512522,0.002640889,0.002237131,0.001119556,0.000944453,0.001017468,0.002439123,0.002334253,0.002592755,0.001394088,0.001263037,0.001088526,0,0.002208287,0.002378912,0.00149612,0,0.000982307,0.002114906,0.002267909,0.002411826,0.001708332,0.000998558,0.001202106,0.002232415,0.002174795,0.002125562,0.001241617,0.000655993,0.000840296,0.002530241,0.002282268,0.002220162,0.001129106,0.000686674,0.000648047,0.001939376,0.001931724,0.002002288,0.001211635,0.000834388,0.000708305,0.001249988,0.001893343,0.001833641,0.001712117,0.000852036,0.000513821,0.000749779,0.001371135,0.00134761,0.001352011,0.000717976,0.00047299,0.000667891,0.001139968,0.001106199,0.001103518,0.000658071,0.000484429,0.000701267,0.001196965,0.001208642,0.001206829,0.000743035,0.000430155,0.000603529,0.001096446,0.001131118,0.001180648,0.000826907,0.000470877,0.000569937,0.000856945,0.000930886,0.000933603,0.000871667,0.000620282,0.000771186,0.001193287,0.001015456,0.000965156,0.000669639,0.000517078,0.000645573,0.001025599,0.000938564,0.000917929,0.000700456,0.000606401,0.00053251,0.000870237,0.000958293,0.001018927,0.000877408,0.000710044,0.000573881,0.001062328,0,0.001105242,0.000873943,0.000775862,0.00053591,0.000938714,0.000989766,0.001058481,0.000908349,0.00080707,0.000567176,0.000891688,0.000994853,0.000973287,0.000919918,0.000702352,0.000520403,0.000817659,0.001023368,0.001015914,0.000936279,0.0007547,0.000528641,0.000730638,0.000836486,0.000822172,0.000801833,0.000710332,0.00047522,0.000588751,0.000764226,0.000914368,0.000923643,0.000897109,0.000591361,0.000691468,0.000880494,0.000980698,0.000981766,0.000911043,0.000609612,0.000721991,0.000939872,0.000949721,0.00096085,0.000834787,0.000536475,0.000657922,0.000794649,0.000886295,0.000865612,0.000818954,0.000669376,0.000718851,0.00098006,0.001381037,0.002530133,0.005545709,0,0,0,0,0 +ROLE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003502266,0.003508048,0.003506601,0,0,0,0,0,0,0,0,0,0.001294219,0.001294498,0.001294778,0,0,0,0.001096921,0.001097179,0.001096148,0,0,0,0.001348564,0.001347923,0.001347388,0,0,0,0,0.001332149,0.001332149,0.001332642,0,0,0,0.001201442,0.001202267,0.001200274,0,0,0,0.001239453,0.001239571,0.001239216,0,0,0,0.000987213,0.00098712,0.000986842,0,0,0,0.001098642,0.001098125,0.001099376,0,0,0,0.000876072,0.000876168,0.000875369,0,0,0,0.00137741,0.001377103,0.001377052,0,0,0,0.001211366,0.001205525,0.001204488,0,0,0,0.000992771,0.000989976,0.000988875,0,0,0,0.00097924,0.000949164,0.000975284,0,0,0,0.001184675,0.001155119,0.001128094,0,0,0,0,0.001377079,0.001354925,0.001364228,0,0.001910524,0.002180549,0.00123576,0.001202084,0.001183808,0.001303417,0.001385606,0.001314204,0.001602481,0.00156063,0.001304868,0.000768302,0.00111023,0.001536376,0.001851525,0.00121718,0.000868571,0.000973975,0.001289783,0.001705902,0.001814882,0.001567671,0.001300448,0.000798583,0.001008384,0.001026589,0.001562764,0.00136612,0.001378583,0.00171969,0.001875457,0.002310124,0.00245048,0.002212776,0.001312811,0.000853698,0.001195934,0.00126036,0.001340996,0.000938331,0.000945605,0.001028734,0.001036377,0.001352709,0.001642274,0.002045303,0.001561567,0.001409202,0.001492972,0.00166521,0.001931928,0.001584786,0.001256206,0.0010579,0.001243963,0.001398113,0.001286425,0.001099237,0.001175417,0.00112902,0.00125213,0.001339286,0.001707599,0.001486702,0.001434455,0.000991146,0.00100633,0.001172073,0.001410221,0.001617002,0.001469852,0.001244989,0.00109377,0.000936918,0.000972104,0.000951759,0.000856055,0.000697584,0.000642418,0.000651995,0.000793973,0.000772408,0.00076712,0.000787316,0.00106845,0.001170203,0.001306243,0.001403008,0.001313371,0.001095817,0.00112755,0.001197903,0.001355502,0.001344592,0.001355991,0.001265249,0.001308648,0.001320444,0.001373761,0.00133386,0.001189184,0.001069255,0.001174787,0.001217048,0.001337273,0.001354976,0.001437383,0.001323418,0.001326603,0.001341027,0.001434034,0.001420396,0.001426014,0.001232985,0.001285651,0.001245267,0.001273457,0.001217481,0.001152776,0.001199237,0.001214859,0.001348464,0.001311244,0.00134609,0.001199731,0.001318876,0.001412734,0.001374877,0.001304122,0.001232059,0.001230291,0.001280158,0.001266792,0.001269455,0.001234744,0.001232558,0.001172757,0.001406863,0.001318643,0.001275469,0.001170255,0.001171673,0.00107475,0.001225265,0.001239191,0.00129235,0.001235794,0.001237097,0.001194598,0.001291518,0.001290432,0.001358101,0.001293889,0.001323386,0.001266287,0.00146612,0.001321536,0.00132084,0.001210789,0.001236452,0.001181951,0.001299125,0.001286769,0.001391745,0.001283766,0.001273316,0.001140507,0.001131758,0.001166295,0.001208017,0.001206816,0.001186017,0.001190717,0.001247406,0.001375177,0.00136901,0.001256679,0.001193345,0.001158786,0.001212978,0.001285433,0.001220557,0.001145946,0.001098846,0.00108436,0.001142673,0.001286749,0,0.001229999,0.001167571,0,0.001195087,0.001331723,0.001292317,0.001157184,0.001133262,0.001087326,0.001102096,0.001162924,0.001228501,0.001186743,0.001155673,0,0.001185085,0.001212771,0.001257093,0.001130696,0.001101871,0.00109713,0.001096186,0.001170376,0.001103554,0.001167015,0.001130875,0.001169405,0.001110533,0.001213042,0.001210413,0.001133303,0.001065827,0.001052616,0.001019142,0.001036676,0.001047486,0.001083281,0.001030885,0.001006688,0.000998612,0.001156632,0.001205712,0.00108874,0.001010505,0.000991797,0.001038283,0.001186398,0.0012326,0.00114605,0.000993769,0.00091543,0.000880138,0.000973018,0.001032597,0.001032926,0.001009992,0.000956698,0.000949928,0.000909871,0.001131856,0.001223675,0.001251968,0.001144281,0,0,0,0,0,0 +ENVIRONMENTAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001031255,0.001030764,0.001030356,0,0,0,0,0,0,0,0,0,0,0.000686538,0.00068701,0.000685871,0,0,0,0.000667398,0.000667461,0.00066727,0,0,0,0.000564122,0.000564069,0.00056391,0,0,0,0.000627796,0.0006275,0.000628215,0,0,0,0.000766563,0.000766647,0.000765948,0,0,0,0.000744546,0.00074438,0.000744352,0,0,0,0.000692209,0.000688871,0.000688279,0,0,0,0.001365061,0.001361218,0.001359703,0,0,0,0.001594762,0.001619162,0.001671915,0,0,0,0.002034065,0.002065886,0.002079232,0.003488372,0.003261579,0.003838772,0,0.002535575,0.002447606,0.002476598,0,0,0,0.001409539,0.001411971,0.001431171,0.001210316,0.001222594,0.00109517,0.001085552,0.001144462,0.001413607,0.001536604,0.001480307,0.000994126,0.001146182,0.001130238,0.001234286,0.001090852,0.00104577,0.000926061,0.00082966,0.00092899,0.000807175,0.000868025,0.000835518,0.000821271,0.0008025,0.000630517,0.000648745,0.00057323,0.000667536,0.000891627,0.001072085,0.001281081,0.000905387,0.000782556,0.00086373,0.001183974,0.001388889,0.00104259,0.000630403,0.000603051,0.000518188,0.00065703,0.000772835,0.000715856,0.00059707,0.000457038,0.000619037,0.000666084,0.000681857,0,0,0,0.000548807,0.001514622,0.003244029,0.004641221,0.003022501,0.001440473,0.000799972,0.000706845,0.000954246,0.000660757,0.000601546,0.000495573,0.000616783,0.000665231,0.000551826,0.000495,0.000469102,0.000497996,0.000587698,0.000654559,0.000692256,0.000653168,0.000655702,0.000891358,0.000852664,0.000775013,0.000574363,0.000889949,0.000781872,0.000635909,0.000590822,0.000577995,0.000621646,0.00063806,0.000702042,0.000664224,0.000590077,0.000590426,0.00058697,0.000658192,0.000766151,0.000712521,0.000597828,0.000582666,0.00062964,0.000794404,0.000785895,0.000776809,0.00077182,0.000838334,0.000805635,0.000843717,0.000976335,0.001071339,0.000982744,0.000848373,0.000770683,0.000819194,0.000857837,0.000967733,0.000990216,0.001048495,0.001064235,0.001022427,0.000936871,0.001001277,0.000957699,0.00097162,0.001029118,0.001117054,0.001231302,0.001099063,0.001038251,0.001086663,0.001162877,0.001198304,0.001154861,0.001104867,0.001219401,0.001300199,0.00132418,0,0.001322716,0.001169678,0.001278397,0.001231335,0.001372522,0.001411398,0.001567174,0.001247851,0,0.00114722,0.001218323,0.001163325,0.001220964,0.00116973,0.001212099,0.001186284,0.001269254,0.001263549,0.00122441,0.000952818,0.000925075,0.000996973,0.001150679,0.001239028,0.001390725,0.001108587,0.001021065,0.000904436,0,0.001140607,0.001354255,0.001296978,0.001281415,0.000986869,0.001152237,0.001165075,0.001302685,0.001240565,0.00126859,0.001103381,0.001221864,0.001196725,0.001302966,0.001234523,0.00129305,0.001156752,0.001234315,0.001178924,0.001236382,0.001161237,0.00133582,0.001149955,0.001221051,0.001243491,0.001386636,0.001346317,0.001209748,0.001025366,0.001124472,0.001144937,0.001232983,0.001193374,0.001173642,0.001095992,0.001155812,0.001164026,0.001235167,0.00124091,0.001200005,0.001006423,0.000972878,0.001020764,0.001022932,0.001080313,0.001057799,0.001053522,0.001124765,0.001190292,0.001219954,0.001252236,0.001210682,0.001202573,0.001279785,0.001256929,0.001262563,0.001250239,0.001302726,0.001264588,0.001156692,0.00127489,0.001277926,0.001403878,0.001395786,0.001398916,0.001259582,0.001232009,0.001225201,0.00128513,0.001397418,0.001277897,0.001119117,0.001269876,0.001288383,0.001402509,0.001475306,0.001487943,0.001282941,0.001236369,0.001197983,0.001300172,0.001300674,0.001506908,0.001500892,0.001639175,0.001525708,0.000857584,0,0,0,0,0 +SCIENTISTS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001150417,0.001150665,0.001150914,0,0,0,0.001253624,0.001253918,0.00125274,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001716165,0.001716329,0.001715838,0,0,0,0,0,0,0,0,0,0.002785843,0.002784532,0.002787703,0,0,0,0.000912575,0.000912675,0.000911843,0,0,0,0.000856228,0.000856037,0.000856005,0,0,0,0,0,0,0,0,0,0.000899699,0.000897166,0.000957973,0,0,0,0.001007218,0.001004997,0.001058879,0,0,0,0,0,0,0,0,0.002772446,0,0.000240442,0,0,0,0,0,0,0,0,0,0,0,0,0.000728294,0.000507449,0.000768302,0,0.000903751,0.000881679,0,0.001417143,0.001441484,0.001429219,0.001023541,0.001296344,0.001451547,0.002331839,0.001562446,0.00146936,0,0.002069606,0.002101723,0.001216397,0.000788191,0.001112559,0.001418497,0.001939963,0.0024457,0.001448619,0.000889268,0.00086373,0.001107589,0.002346743,0.002137309,0.001801153,0.000567577,0.000898193,0.000888923,0.00154567,0.001022652,0.000918569,0.000418952,0.000582623,0.000749344,0.001306892,0.001386688,0.001136568,0.000935834,0.000804917,0.000932075,0.001118631,0.001160305,0.000895556,0.000467181,0.000521721,0.000558036,0.001205364,0.001376576,0.001758364,0.000958108,0.000746632,0.000886974,0.001195622,0.001452001,0.001063297,0.000771893,0.000604022,0.000539049,0.000515509,0.000522534,0.000655702,0.00065883,0.0007125,0.000885729,0.000929117,0.000873157,0.000840882,0.001059848,0.001239623,0.001345496,0.001350834,0.001352253,0.001348868,0.001417215,0.001196164,0.001249059,0.001159017,0.001291309,0.001061071,0.001246912,0.001160732,0.001219025,0.001118566,0.001296911,0.001127139,0.001157598,0.001072447,0.001187783,0.001183916,0.001332626,0.001224294,0.001254669,0.001094651,0.001115948,0.001200013,0.001321725,0.001433442,0.00132626,0.001177664,0.001070039,0.000955505,0.00096241,0.000994703,0.001121774,0.001072978,0.001041238,0.000963396,0.001004545,0.001076951,0.00123262,0.001101655,0.001003922,0.000914668,0.000906323,0.001006601,0.00112877,0.001071761,0.001052969,0.000978451,0.001011915,0.00092667,0.001065707,0.001133985,0.001035675,0.000945114,0.000876627,0.000847949,0.000832842,0.000886815,0.000818258,0.000795521,0.000773186,0.000829525,0.000934651,0.000880215,0.000838168,0.000931412,0.000947662,0.001050919,0.000837325,0.000893103,0.000865635,0.000876963,0.000853925,0.000902491,0.000889179,0.000888212,0.000868682,0.000893137,0.00089235,0.000830027,0.000820593,0.000843582,0.000902557,0.000898543,0.000934705,0.000987248,0.00116531,0.001174543,0.001084311,0.00098893,0.000977833,0.001000721,0.001236677,0.001277815,0.001127213,0.001049026,0.001052875,0.001109376,0.001266429,0.001299471,0.001276761,0.001190952,0.001134805,0.001118021,0.001150824,0.001351719,0.0013019,0.001229968,0.001228219,0.001245971,0.001340433,0.00132191,0.001167819,0.001187557,0.001195917,0.001270752,0.001419551,0.001369611,0.001219679,0.0011277,0.001107147,0.001146116,0.001209276,0.001295697,0.001253649,0.001147298,0.001166396,0.001124892,0.001215498,0.001331043,0.001354659,0.00117879,0.001143136,0.001122278,0.001185477,0.00136878,0.001401964,0.001359042,0.001333932,0.001332293,0.001335214,0.001367522,0.001400369,0.001372803,0.001232009,0.001199787,0.001186731,0.001547476,0.001863999,0.001681926,0.001397723,0.001219933,0.001200111,0.001483196,0.001504078,0.001559953,0.001235769,0.001196174,0.001049262,0.001180427,0.001294825,0.001369284,0.001350921,0.000902711,0.000914756,0,0,0,0,0 +PERFORMANCE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000380715,0.000378879,0.000378553,0,0,0,0,0,0,0,0,0,0.000279783,0.000307082,0.000306518,0,0,0,0.000290581,0.000310994,0.000265434,0,0,0,0,0.000306018,0.000305951,0.000272846,0,0,0,0.000424792,0.000438856,0.000424051,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00034721,0.000316921,0,0,0,0,0,0.000508598,0.000445813,0.000663672,0,0,0.000391278,0.000531526,0.000687469,0.000574713,0.000521295,0.000495317,0.000673998,0.000794556,0.000888923,0.000772835,0.000511326,0.000459284,0.000761731,0.000728279,0.000666084,0,0,0.00095711,0.000854457,0.000878092,0.00066022,0.000559315,0.000793893,0.0010075,0.001051156,0.000939098,0.00078125,0.000502235,0,0.000509,0.000594687,0.000486934,0.000760264,0.00101168,0.001221001,0.001125844,0.001195189,0.001616168,0.001809664,0.001870563,0.001511617,0.001092836,0.00124015,0.001261476,0.001131764,0.00094601,0.000923532,0.000899891,0.000775203,0.000864147,0.000930951,0.000962633,0.000928088,0.000765147,0.000811149,0.000795918,0.00088031,0.00080584,0.000758488,0.000599457,0.000628695,0.00074369,0.000845164,0.000880065,0.000875692,0.000582528,0.000706744,0.000810198,0.000943341,0.000956948,0.000963849,0.000732252,0.000696084,0.000756896,0.00102151,0.001053971,0.001115206,0.000939536,0.000970647,0.000908717,0.001114565,0.001250393,0.001453261,0.001237595,0.000975456,0.000822469,0.001027617,0.001163769,0.001231572,0.001203239,0.000984983,0.000901535,0.001030123,0.001172476,0.001309696,0.0012537,0.001017221,0.001042597,0.001091398,0.001163997,0.001186907,0.001172757,0.001026717,0.001129251,0.001128356,0.001237677,0.001215646,0.001471141,0.001134923,0.001200038,0.001109901,0.001305679,0.001347755,0.001510994,0.001379318,0.001226528,0.001063771,0.001193005,0.001223193,0.001389925,0.001135682,0.001057229,0.00091638,0.001216156,0.001271227,0.001463055,0.001177873,0.001174794,0.001085853,0.001381424,0.001436913,0.001591405,0.000936247,0.0009738,0.001039392,0.001346298,0.001454966,0.001512174,0.001069531,0.000812984,0.000815957,0.00114643,0.001232221,0.001426855,0.001275458,0.001064529,0.000939344,0.001143096,0.001227119,0.001345106,0.001270554,0.00102322,0.000826725,0.000971309,0.001159579,0.001343077,0.001342628,0.000887815,0.000850136,0.001086853,0.001165952,0.001254321,0.001210277,0.001200437,0.001057601,0.001111045,0.001146562,0.001281989,0.001266431,0.001039518,0.000940325,0.001062775,0.001258151,0.001295954,0.001319391,0.000938849,0.00089628,0.000973607,0.001180605,0.001220708,0.001277427,0.000932202,0.000904674,0.001079337,0.001214799,0.001263043,0.001284324,0.001135757,0.001110041,0.001102104,0.001058577,0.001033573,0.001041154,0.000997922,0.000989265,0.001113001,0.001185254,0.001212494,0.001112931,0.00086518,0.001110439,0.001152551,0.001256984,0.00122697,0.001276535,0.00107032,0.00104156,0.001010624,0.001178724,0.001374122,0.001471615,0.001705507,0.001031395,0.000859653,0.000942203,0.001093424,0.000857584,0,0,0,0,0 +SOCIAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000783515,0.000783699,0,0,0,0,0,0,0,0,0,0,0,0.002368265,0.002368265,0,0,0,0,0.001087019,0.001087766,0.001085963,0,0,0,0.001716165,0,0.001715838,0,0,0,0.001410305,0.001410172,0.001409774,0,0,0,0.001334066,0.001333438,0.001334956,0,0,0,0.001314108,0.001314252,0.001313054,0,0,0,0.001786911,0.001749293,0.001749228,0,0,0,0.002145848,0.002135501,0.002133664,0,0,0,0.001861446,0.001856206,0.001885043,0,0,0,0.00179061,0.001786661,0.001811241,0,0,0,0.002414055,0.002443521,0.002388905,0,0,0,0,0.001748672,0.00174829,0.001763002,0,0.001592103,0,0.001815022,0.001755424,0.00189056,0.001862024,0.002282175,0.001752272,0.002326182,0.00202882,0.001739824,0.001207332,0.001268834,0.001265251,0.001058014,0.001564945,0.0016,0.001714197,0.001603514,0.001608422,0.001659321,0.001567671,0.001300448,0.001215236,0.001296494,0.001334565,0.001605001,0.001418663,0.00117585,0.000859845,0.001271496,0.001580611,0.001991015,0.001339312,0.001584427,0.0014584,0.00176068,0.001718672,0.00158046,0.000886201,0.000675432,0.000815892,0.001105469,0.001275412,0.001352461,0.001022652,0.000780784,0.00087599,0.0015658,0.00174847,0.001647821,0,0,0.000610327,0.000804917,0.000932075,0.001286425,0.001099237,0.001175417,0.000700771,0.000799972,0.000706845,0.000652905,0.000660757,0.001018,0.001123299,0.001363415,0.001203751,0.001134308,0.000792001,0.000531649,0.000547795,0.000571373,0.000616056,0.000589154,0.000559858,0.000528204,0.000452138,0.000548976,0.00047977,0.00055747,0.000268664,0.000309798,0.000387602,0.000750952,0.000888312,0.001043945,0.001243493,0.000958406,0.00084788,0.000709007,0.000786524,0.000761071,0.000698937,0.000621897,0.000681086,0.000854627,0.000918743,0.00091107,0.000823964,0.000589421,0.00059403,0.000586328,0.000719556,0.000809725,0.000829748,0.000619896,0.000544263,0.000592088,0.000700419,0.000723175,0.000761828,0.000839269,0.000749118,0.00080073,0.000746873,0.000831948,0.00077593,0.000855907,0.000702902,0.000773697,0.000797576,0.000835157,0.000795599,0.000610389,0.000626049,0.000669711,0.000736393,0.000680173,0.000685227,0.000564425,0.000775531,0.00080382,0.000871069,0.000795576,0.000848335,0.000657513,0.000864262,0.000755201,0.000894446,0.000857224,0.000886556,0.000786652,0.000878013,0.000775229,0.00080029,0.000794356,0.0008654,0.000841695,0.000739224,0.000845171,0.000884484,0.000940797,0.000908697,0.000921299,0.000933569,0.000914418,0.001034285,0.000956394,0.000972418,0.000826873,0.000776588,0.000780033,0.000863385,0.000894085,0.000922096,0.000890875,0.000892188,0.001000221,0.000977194,0.001042067,0.00100084,0.001026978,0.001007959,0.001024068,0.000854099,0.000870391,0.000809649,0.000846928,0.000859641,0.001055007,0.000961794,0.00094284,0.000909773,0.000991992,0.000981791,0.001108639,0.001085309,0.001095773,0.001150788,0.00118336,0.001206152,0.001165758,0.001115718,0.001234057,0.001356645,0.001531719,0.001643002,0.001486256,0.00115172,0.00129337,0.001280201,0.001507671,0.001708246,0.001783594,0.001247116,0.001332464,0.001380142,0.001456597,0.001433473,0.001355172,0.001323693,0.001260901,0.001438943,0.001498348,0.001710934,0.001725163,0.001575732,0.001151806,0.001200032,0.001165036,0.001349767,0.001293552,0,0.001377865,0.001573236,0.001562905,0.001639724,0.001310995,0.001330641,0.001355618,0.001424292,0.001437203,0.001470901,0.001449,0.001312212,0.001217562,0.001400409,0.001443833,0.001535202,0.001514753,0.001339149,0.001342803,0.001463948,0.001485113,0.001512085,0.001256584,0.001247943,0.001293679,0.001114295,0.000788283,0,0,0,0,0,0 +CURRENT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000476713,0.000476758,0.000476622,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00037999,0.000377635,0.000398151,0,0,0,0,0.000480885,0.000502633,0.000482727,0,0,0,0.000328249,0.000381614,0.000353376,0,0,0,0.000516929,0.000624252,0.000507449,0.000548787,0.000634417,0,0,0,0.000457143,0,0.000453167,0.000487401,0.000622245,0.000754805,0.000627803,0.000555536,0.000489787,0.000513294,0.00067579,0.00068306,0.000567652,0,0,0,0,0,0,0.000391278,0.000531526,0.000572891,0.000478927,0.000521295,0.000495317,0.000390209,0,0,0,0,0.000459284,0.000380865,0.000400553,0.000416302,0.000568214,0,0,0.000447573,0.000439046,0.000427201,0,0.000610687,0.000615695,0.000583976,0.00048694,0.000409226,0,0,0,0.000429496,0.000389547,0.000380132,0.000582483,0.000891001,0.00090693,0.000771893,0.000914196,0.001013925,0.001134121,0.001063731,0.001074623,0.001059295,0.001086271,0.001057954,0.001030475,0.001175404,0.001047414,0.00123548,0.001225818,0.001281538,0.001264276,0.001395757,0.001266042,0.00120601,0.001054363,0.001078539,0.001119222,0.001256833,0.001186091,0.001050445,0.000883389,0.000902834,0.000922995,0.00116759,0.001223653,0.001224617,0.001057522,0.001015641,0.000989664,0.001083981,0.001464503,0.001380709,0.001224869,0.001019936,0.001009982,0.001060134,0.00111036,0.001093071,0.000980029,0.000979553,0.0009588,0.001065296,0.001175908,0.001118905,0.00099982,0.000874761,0.00089607,0.000924181,0.001112031,0.001048979,0.00106599,0.001049429,0.001061399,0.001080161,0.00120428,0.001134082,0.001119151,0.001040159,0.001089245,0.001059467,0.001141996,0.001046212,0.000999044,0.001093049,0.001120893,0.001191532,0.00116261,0.001171625,0.001072791,0.00103388,0.001089037,0.001106578,0.001196626,0.001166897,0.001152318,0.001141462,0.00105693,0.001056204,0.001023001,0.001199845,0.001176593,0.001101447,0.001115257,0.001107655,0.001185239,0.001120134,0.001165304,0.001167954,0.00119559,0.001187513,0.001201355,0.001142772,0.001141761,0.00112094,0.001153247,0.001167279,0.001242487,0.001334063,0.001295759,0.001125177,0.001129022,0.001162919,0.00121005,0.001251759,0.001152129,0.001122487,0.00112813,0.001158163,0.001158446,0.001221052,0.001155893,0.001090282,0.001110416,0.001123617,0.001169877,0.001169267,0.00115376,0.001122563,0.001131832,0.001120808,0.001174534,0.001186613,0.001186146,0.001083607,0.001121626,0.001138209,0.001189281,0.00118987,0.001125233,0.001149841,0.001140685,0.001150668,0.001145395,0.001137851,0.001187368,0.001136432,0.001117254,0.001119895,0.001115085,0.001142022,0.001090322,0.001077142,0.001083191,0.00112446,0.001139093,0.001192976,0.001185297,0.001148065,0.001123751,0.001191814,0.001202051,0.001250877,0.001337084,0.001298682,0.001181743,0.00114142,0.001146954,0.001148558,0.001174675,0.001165343,0.001244495,0.001204341,0.001193705,0.001163159,0.001141324,0.001229794,0.001178474,0.001155906,0.00112982,0.001158161,0.001272616,0.001252408,0.001086466,0.000998133,0.000851854,0.000686067,0,0,0,0,0 +PHYSICAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003745318,0.003751172,0.003758221,0,0,0,0.003296251,0.003301692,0.00330033,0,0,0,0.001757469,0.001759015,0.001759944,0,0,0,0.001078516,0.001078749,0.001078981,0,0,0,0.001880436,0.001880878,0.001879111,0,0,0,0.001665873,0.001665081,0.001664421,0,0,0,0,0.001998224,0.001998224,0.001998964,0,0,0,0.001258653,0.001259518,0.00125743,0,0,0,0.003146303,0.003146603,0.003145703,0,0,0,0.00296164,0.002961361,0.003007519,0,0,0,0.002707369,0.002706095,0.002709176,0,0,0,0.002920241,0.002920561,0.002917898,0,0,0,0.002308093,0.002307578,0.002307492,0,0,0,0.002630395,0.002617711,0.002615459,0,0,0,0.002761145,0.002753372,0.002781211,0,0,0,0.001902524,0.001870411,0.001866971,0,0,0,0.001430551,0.001466113,0.001459886,0,0,0,0,0.001617522,0.001660875,0.001553121,0,0,0,0.001274377,0.001278406,0.001272152,0.001303417,0.001385606,0.001752272,0.001602481,0.001404567,0.001051144,0.000548787,0.000740153,0.000903751,0.001322518,0.001043297,0.000731429,0.000545426,0.000732039,0.001023541,0.001088929,0.001045114,0.000941704,0.000972188,0.000921951,0.000752832,0.000549079,0.000945776,0.000892024,0.001074807,0.000826473,0.001094269,0.001174188,0.000989926,0.001041195,0.000782556,0.00083051,0.001222167,0.00158046,0.001511755,0.000855548,0.000922313,0.000829101,0.000772977,0.00067623,0.000920387,0.000780784,0.000609385,0.000619037,0.000832605,0.000909143,0.00072636,0,0.000406884,0.00051222,0.000582547,0.00072711,0.000793893,0.000783611,0.000700771,0.000695628,0.000595238,0.000502235,0,0.000694091,0.00072684,0.000779094,0.000918652,0.000981023,0.001155001,0.000844383,0.000821693,0.000799922,0.000718732,0.000854273,0.001026407,0.001693897,0.001472678,0.001378279,0.00103335,0.000912224,0.000923532,0.001430974,0.001465619,0.001187166,0.001047024,0.000983617,0.001069476,0.001112224,0.001163157,0.001090956,0.001076408,0.001144094,0.001297578,0.001330346,0.001163086,0.001062121,0.00106789,0.001035091,0.00097915,0.001130586,0.00113932,0.001172655,0.001063841,0.001001932,0.001030899,0.001162304,0.001260398,0.001149587,0.001046694,0.001013501,0.001083081,0.001244049,0.001171773,0.001171552,0.001088711,0.00106094,0.001015997,0.001152776,0.001256617,0.001232595,0.001206201,0.001134915,0.001056781,0.000950664,0.001048979,0.001176948,0.001179057,0.001153278,0.001091976,0.000959783,0.000990662,0.001113683,0.001133671,0.001125286,0.001025229,0.000953586,0.000997475,0.001072433,0.001243104,0.001167847,0.001183021,0.00098689,0.001228089,0.001231361,0.00139325,0.001280055,0.001265471,0.001030315,0.001039445,0.001076047,0.001193754,0.001116756,0.001116042,0.001076843,0.001247967,0.001204303,0.001246217,0.001152826,0.001150158,0.001149074,0.001290464,0.001212752,0.001175899,0.00116051,0.001193233,0.001157669,0.001266687,0.001188942,0.001126469,0.001029938,0.001071384,0.001125703,0.001108299,0.000998988,0.001138799,0.001179587,0.001181513,0.001074413,0.000999683,0.001009303,0.001131939,0.001111026,0.001118865,0.001065116,0.000959103,0.000883277,0.001029366,0.001107162,0.001181956,0.001138763,0.001137914,0.001013789,0.001103398,0.001068044,0.001063211,0.001057638,0.001000676,0.00112541,0.001069985,0.001120813,0.001103281,0.001091891,0.00106227,0.001023105,0.001123652,0.001289513,0.001299034,0.001295954,0.001185468,0.001049302,0.001023503,0.00107125,0.00113475,0.001166388,0.001170363,0.000986482,0.000901538,0.000918978,0.001056706,0.001082402,0.001135713,0.000878881,0.00088926,0.000952459,0.001055965,0.001086147,0.001086681,0.000958787,0.000890484,0.000916887,0.00106778,0.001135585,0.001168069,0.000872214,0.000857879,0.000861859,0.001052321,0.001099667,0.001169038,0.000983538,0.000937583,0.001011798,0.00107124,0.001205222,0.001219233,0.001471024,0.001058185,0.001097667,0.001079876,0.001042567,0.001143445,0,0,0,0,0 +NETWORK,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001005137,0.001004913,0.001004876,0,0,0,0.000449936,0.000447766,0.000447381,0,0,0,0.000713554,0.000711546,0.000710754,0,0,0,0.002042415,0.002037911,0.002006298,0,0,0,0.00075998,0.00075527,0.000774182,0,0,0,0,0.000699469,0.000699316,0.00067162,0.001912412,0.001592103,0,0.000328249,0.000324372,0.000335707,0,0,0,0.000568622,0.000624252,0.000543695,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000358269,0.000476811,0.000688984,0.000867878,0.000698771,0.000497963,0.000391278,0.000398645,0,0,0,0.000630403,0.000603051,0.00058728,0.000463786,0,0,0,0.000418952,0.00036414,0,0,0,0,0.000488261,0.00051222,0.000466038,0,0,0,0.000428249,0.000591284,0.000706845,0.000652905,0.00055063,0.000462727,0.000429496,0.000422009,0.000601875,0.000490512,0.000429,0,0.000248998,0.000767272,0.000924084,0.001031019,0.000690492,0.000491776,0.000568402,0.000619058,0.000725805,0.000658828,0.000604493,0.000870386,0.000593515,0.00048591,0.000478504,0.000500989,0.000605432,0.000457511,0.000526482,0.000546622,0.000592557,0.00060438,0.000576701,0.000554578,0.000516054,0.000562903,0.000572723,0.000603405,0.000624439,0.000572187,0.000609262,0.00059912,0.00080907,0.000856754,0.000894005,0.000565655,0.000601554,0.000724341,0.000980587,0.000944879,0.000959169,0.000568178,0.000801586,0.000863892,0.000998225,0.001074119,0.001170325,0.001075667,0.000760282,0.000791432,0.000982214,0.001219874,0.001239608,0.001115539,0.000715087,0.000855963,0.001023228,0.00133292,0.001372143,0.00130312,0.000783499,0.000873084,0.00101582,0.001053203,0.001086096,0.001080474,0.000744045,0.00067471,0.000616403,0.000837961,0.00087379,0.001033885,0.000770731,0.000677346,0.000609547,0.000760579,0.000842701,0.001026259,0.000815695,0.000690566,0.000626011,0.000825836,0.000903131,0.001023001,0.000686542,0.000726845,0.000595498,0.001011138,0.001048408,0.001252638,0.000551406,0.000597835,0.000691238,0.001142495,0.00123785,0.001380778,0.000652619,0.000705816,0.000587422,0.000952111,0.001083508,0.001196737,0.001010239,0.000718937,0.000704257,0.001001364,0.001239828,0.001425787,0.00137241,0.000855051,0.000756202,0.001343351,0.001495528,0.001801172,0.001303555,0.000901451,0.000662623,0.00087369,0.001146793,0.001429158,0.001634023,0.001001792,0.000828233,0.001195621,0.001341857,0.00149832,0.001310007,0.001136128,0.000984535,0.001190812,0.001432063,0.001674358,0.001711436,0.001090582,0.000764482,0.000973877,0.001392011,0.001470284,0.001719176,0.00130207,0.001150727,0.000944502,0.001346587,0.001431201,0.001647955,0.000918042,0.000918785,0.001038476,0.001261706,0.001299075,0.00141521,0.001240342,0.001243737,0.001251749,0.001597793,0.001647742,0.001712119,0.000908783,0.000870146,0.001173656,0.001373445,0.001461279,0.001419157,0.00113716,0.001051416,0.001076395,0.001304255,0.00142784,0.001525124,0.001496345,0.001296124,0.000973063,0.001195537,0.001388599,0.001596702,0.001841787,0.001305987,0.001016462,0.001079876,0.000813711,0.001314962,0,0,0,0,0 +CHANGES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000934714,0.000934915,0.000935117,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000814091,0.000814091,0.000814393,0,0,0,0,0,0,0,0,0,0.000572055,0.00057211,0.000571946,0,0,0,0,0,0,0,0,0,0.000510084,0.000509844,0.000510424,0,0,0,0.000584048,0.000584112,0.00058358,0,0,0,0.00055841,0.000558285,0.000558264,0,0,0,0.000449936,0.000447766,0.000447381,0,0,0,0,0,0,0,0,0,0.000727436,0.000725831,0.000724496,0,0,0,0.000514104,0.000510918,0.000464509,0,0,0,0,0.000262301,0.000262243,0.000251857,0,0,0,0.000347557,0.000324372,0.000318038,0,0,0,0.000672008,0.000624252,0.000434956,0,0,0,0,0,0,0,0.000383449,0.000584881,0.000622245,0.000580619,0.000538117,0.000381931,0.000403354,0.000342196,0.000506842,0,0,0,0.000413236,0.000486342,0.00061262,0,0.000452694,0.00049799,0.000498306,0.000458313,0,0,0,0.000461156,0.000518188,0.000463786,0,0,0,0.000533211,0.000619037,0.000582823,0,0,0,0,0,0,0,0.000610687,0,0,0,0.000372024,0,0,0,0,0.000389547,0.000380132,0.000459855,0.000528001,0.000625469,0.000572695,0.000473423,0.000590387,0.000648069,0.000783801,0.000619274,0.000490893,0.000572336,0.000565882,0.000625042,0.000503745,0.000619597,0.00082971,0.001040841,0.001153621,0.00130362,0.001348627,0.001226602,0.001028476,0.001054363,0.001133958,0.001228657,0.001244296,0.001170063,0.001034728,0.001109372,0.001085787,0.001168651,0.001138031,0.001178843,0.001078394,0.000989295,0.001012198,0.001069409,0.001162206,0.00118555,0.001120036,0.001084477,0.001133262,0.001205292,0.001307957,0.001333175,0.001139709,0.00112469,0.001235213,0.001321232,0.001298932,0.001222173,0.001090215,0.00109293,0.00112599,0.001136518,0.001193399,0.001052395,0.001093498,0.001105618,0.001220427,0.001151906,0.001161174,0.000954581,0.001033157,0.000993384,0.001196439,0.001257437,0.001358096,0.001184292,0.001046212,0.00102035,0.001063626,0.001161828,0.001219901,0.00123821,0.001117984,0.001035596,0.001068435,0.001120485,0.001154813,0.001152006,0.001124413,0.001146134,0.001181802,0.001184794,0.001209277,0.001178545,0.001280048,0.001197909,0.001174578,0.001090569,0.001115383,0.001152362,0.001365525,0.00124122,0.00117325,0.001102674,0.001106286,0.001138947,0.001236397,0.001187055,0.001109883,0.001068346,0.001082406,0.001110052,0.001172151,0.001214252,0.001115641,0.001108298,0.001069108,0.001147038,0.001197896,0.001174981,0.001007875,0.000974197,0.000980212,0.001001614,0.000983854,0.001110457,0.001064175,0.001033948,0.000954995,0.000990454,0.001091808,0.001343721,0.001253985,0.001202163,0.001141824,0.001132785,0.00112069,0.001150419,0.001088561,0.001163138,0.00118149,0.001241722,0.001277596,0.001254717,0.001121157,0.000976874,0.001028018,0.001020771,0.001080313,0.001119397,0.001137861,0.001207386,0.001160584,0.001181477,0.001151469,0.001104482,0.001149265,0.001156432,0.001126198,0.001106904,0.001098219,0.001172453,0.001213073,0.001089869,0.001097764,0.001099889,0.001095637,0.001030533,0.001199901,0.001216113,0.001157785,0.001106158,0.001114628,0.001087922,0.001047299,0.000960304,0.000963688,0.000964688,0.000974198,0.001235996,0.001281782,0.001258291,0.001115675,0.001054418,0.000999227,0.001022101,0.001178737,0.001324481,0.001187434,0.001093424,0,0,0,0,0,0 +AREA,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001031255,0.001030764,0.001030356,0,0,0,0,0,0,0,0,0,0,0.000972596,0.000973264,0.000971651,0,0,0,0.00076274,0.000762813,0.000762595,0,0,0,0.000987213,0.00098712,0.000986842,0,0,0,0,0,0,0,0,0,0.000547545,0.000547605,0.000547106,0,0,0,0.000595637,0.000595504,0.000595482,0,0,0,0.000588378,0.000585541,0.000585037,0,0,0,0.000620482,0.000618735,0.000648949,0,0,0,0.001119132,0.00114458,0.00117034,0,0,0,0.000491752,0.000510918,0.000508748,0,0,0,0,0.00067761,0.000633755,0.000629644,0,0,0,0.000810967,0.000877712,0.000883439,0.001210316,0,0,0.000516929,0.000624252,0.000507449,0,0,0,0,0,0,0,0,0,0,0,0,0.000520815,0.000432165,0.000444855,0,0,0,0,0,0,0,0,0,0,0.000332204,0.000458313,0.000478927,0,0,0,0,0,0,0,0,0,0.000473381,0.000416302,0.000568214,0,0,0,0,0,0,0,0.000559722,0.000389317,0,0,0,0,0,0,0,0,0.000551826,0.000891001,0.00090693,0.000622494,0.000995821,0.001257781,0.001443427,0.001269012,0.001274976,0.00124015,0.001273156,0.001144066,0.001098047,0.001208987,0.001253946,0.001950121,0.001951923,0.001873746,0.001723297,0.001551647,0.001699889,0.001720248,0.001637578,0.001506971,0.001407733,0.001297578,0.001375225,0.001545542,0.001641459,0.001650556,0.001557406,0.001452097,0.001440808,0.001480507,0.001584151,0.001551004,0.001492675,0.001408057,0.001359896,0.001332012,0.001487341,0.001459075,0.001574798,0.001411217,0.001433442,0.001308771,0.001511811,0.001406132,0.001428315,0.001266781,0.001422656,0.001293913,0.00137891,0.001253118,0.001285596,0.00116929,0.001294446,0.001190884,0.001278,0.001223185,0.001316464,0.001254,0.001295317,0.001173921,0.001374332,0.001383462,0.001350877,0.001230656,0.00111508,0.001176176,0.001302071,0.001265171,0.001216006,0.001124863,0.001109486,0.001101045,0.001295963,0.001271617,0.001284714,0.001220073,0.001107386,0.0009828,0.001043065,0.001202719,0.001173063,0.001178663,0.001104761,0.001145306,0.001219224,0.001288006,0.001268752,0.001204253,0.001140854,0.00114323,0.001152019,0.001189141,0.001183265,0.001218402,0.001181072,0.001120743,0.001083258,0.001130615,0.001121915,0.001093429,0.001089584,0.001044446,0.001095125,0.001168767,0.001124877,0.001119817,0.001031693,0.001077245,0.001129276,0.001279635,0.001279213,0.001256777,0.001139203,0.000942602,0.000955974,0.001076607,0.001082757,0.001084458,0.001054756,0.001088119,0.001135764,0.001099291,0.001018976,0.001023516,0.001035371,0.001066599,0.001080751,0.001169058,0.001086627,0.001044055,0.000935505,0.000957,0.000975688,0.001033859,0.001025817,0.000997685,0.001006363,0.000969207,0.000923981,0.0009506,0.000969852,0.000913225,0.00087894,0.000848119,0.000960522,0.000998747,0.000961381,0.000937267,0.00092194,0.000878712,0.000875212,0.000946908,0.001048458,0.000949375,0.000921254,0.000872479,0.000924001,0.00096457,0.000923963,0.000938618,0.00093562,0.000948367,0.000949587,0.000925137,0.000990024,0.000889021,0.000885363,0.000832267,0.000867827,0.000885595,0.000941371,0.000859874,0.000834848,0.000763032,0.000781607,0.000980049,0.001061265,0.001187434,0.001017139,0.000914756,0,0,0,0,0 +INTERNATIONAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001184133,0.001184133,0.001184571,0,0,0,0.00114423,0.001145016,0.001143118,0,0,0,0.001239453,0.001239571,0.001239216,0,0,0,0.001222264,0.001222149,0.001221805,0,0,0,0.000863219,0.000862813,0.000863795,0,0,0,0.000985581,0.000985689,0.00098479,0,0,0,0.001489092,0.001451541,0.001488704,0,0,0,0.001695913,0.001791065,0.00175511,0,0,0,0.001303012,0.001423091,0.001483313,0.011844332,0,0,0.001510828,0.001451662,0.001504723,0,0,0,0.001765837,0.001777106,0.001924396,0.003488372,0.00304414,0,0,0.001551946,0.001573461,0.001469168,0,0,0,0.001911566,0.002060715,0.001978903,0.002048226,0.001059581,0,0.002843112,0.00306924,0.00246475,0.001481725,0.001321702,0.001626751,0.001939693,0.004260129,0.004754286,0.00751909,0.007041517,0.008237072,0.0054965,0.005632004,0.005156951,0.005763689,0.007317987,0.00817849,0.008278425,0.005517024,0.004743948,0.004335053,0,0.00591716,0.006483561,0.005007861,0.004708013,0.004624195,0,0,0.004118774,0.003857582,0.003737392,0.003795672,0.003800048,0.003632991,0.003236246,0.00317022,0.003720204,0.003542048,0.002985944,0.002289663,0.003409285,0.003895932,0.004247174,0.001953046,0.002012293,0.001980659,0.002349125,0.002931298,0.003862084,0.003348127,0.002747731,0.002083333,0.002410728,0.002367711,0.003470455,0.003204705,0.003408538,0.002724278,0.002575186,0.002376002,0.002658244,0.002440178,0.002171216,0.001681319,0,0.001175702,0.001602827,0.00145976,0.001798771,0.001586931,0.001908913,0.001863855,0.001755525,0.001156749,0.00103532,0.000947533,0.000946895,0.00079395,0.000780923,0.000857063,0.000859957,0.001016726,0.000977454,0.000934005,0.000743711,0.000796347,0.000815594,0.000755676,0.000760815,0.000835048,0.000975475,0.000923032,0.00080167,0.00074882,0.000750427,0.000852098,0.000987959,0.000985402,0.000923739,0.000873556,0.000818191,0.000814605,0.000887545,0.001008541,0.000980029,0.000805761,0.000770994,0.000711626,0.000898317,0.000938159,0.000895626,0.000832385,0.000843172,0.000799617,0.000848932,0.000815254,0.000798502,0.000743288,0.000721313,0.000712231,0.000717886,0.000804747,0.000854857,0.000863383,0.000834287,0.000859747,0.000853613,0.000844767,0.000871204,0.000853255,0.000777762,0.000746126,0.000725354,0.000821549,0.000835916,0.000733944,0.000710494,0.000648341,0.000709863,0.000804366,0.000795697,0.000769441,0.00075076,0.0007431,0.000719889,0.000741081,0.00090376,0.000871605,0.000810413,0.000736719,0.000718377,0.000655336,0.000812297,0.000913705,0.00082108,0.000763074,0.000636562,0.000969291,0.001043627,0.001091914,0.000873274,0.000788106,0.000774147,0.000893936,0.001191262,0.001070689,0.000877023,0.000780914,0.000791392,0.001146189,0.001300667,0.0011024,0.000979898,0.000924602,0.001028554,0.00129943,0.00147031,0.001295409,0.001072995,0.000990957,0.000915781,0.001125005,0.001207749,0.001262199,0.001096667,0.001160504,0.001133713,0.001310007,0.001307619,0.00128423,0.001198952,0.001183009,0.001169616,0.001355751,0.001573867,0.001407994,0.001202613,0.001140117,0.001152599,0.001349151,0.001376413,0.001430904,0.001263718,0.001239377,0.001195057,0.001281626,0.001449043,0.001511448,0.001149494,0.001098401,0.001033399,0.001124806,0.00130823,0.001444894,0.001407042,0.001253468,0.00118353,0.00117475,0.001558845,0.001541277,0.001364716,0.001193436,0.00114896,0.001251199,0.00158499,0.001659481,0.001293718,0.001064139,0.000919908,0.000933047,0.001220218,0.001351698,0.001497742,0.001217755,0.001135852,0.001016886,0.001136336,0.001375193,0.001439288,0.00147999,0.001309566,0.001543651,0,0,0,0,0 +TOOLS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000391798,0.000693063,0.000751171,0.000858449,0.000364279,0.000374629,0.00033873,0.000541279,0.000608149,0.00045337,0.000250789,0.000363376,0.000502475,0.000566151,0.000600662,0.000514799,0.000386518,0.000443836,0.000562632,0.00059682,0.000581995,0.000429392,0.000352622,0.00035888,0.000495108,0.000546871,0.00055332,0.000561625,0.000548059,0.000597077,0.00058846,0.000599056,0.000615473,0.000575515,0.000476545,0.000507024,0.000506632,0.000602833,0.000619362,0.000612675,0.000516187,0.000466377,0.000641807,0.000689421,0.000719923,0.000670901,0.000578315,0.000530763,0.000594128,0.000727958,0.000793479,0.000769481,0.000529706,0.000439625,0.000576586,0.000632967,0.000785765,0.000779742,0.000801119,0.000568369,0.000674407,0.000725037,0.000783562,0.00075323,0.000819007,0.000698558,0.000755201,0.000848841,0.000936686,0.000960318,0.00090516,0.000660627,0.000716499,0.000854195,0.0008887,0.000888099,0.00079099,0.000654256,0.000777145,0.000845638,0.000986546,0.000956011,0.000995082,0.000766746,0.000769475,0.000847726,0.001011138,0.001092199,0.001073455,0.000782362,0.000772441,0.000809093,0.001015446,0.001063956,0.001126465,0.000806825,0.000868116,0.000975812,0.001097657,0.001128701,0.001124499,0.001019361,0.000919571,0.000982146,0.001109956,0.001195035,0.001218594,0.001139725,0.000942651,0.000926347,0.00123289,0.00132944,0.001480772,0.00135512,0.001103187,0.001014447,0.001083571,0.001318612,0.001445752,0.001563941,0.00105578,0.001136253,0.001288849,0.00133563,0.001321119,0.001213658,0.001214728,0.00122974,0.001243719,0.001286275,0.001335366,0.001317471,0.001130704,0.001114922,0.001295506,0.001407177,0.001468843,0.00144637,0.001293573,0.001187893,0.001192364,0.001298794,0.001335385,0.001338307,0.001139882,0.001061463,0.001195751,0.001358126,0.001401886,0.001434298,0.001060529,0.001099002,0.001299749,0.001443134,0.001464327,0.001401639,0.000971832,0.001076425,0.001187808,0.001333118,0.001331537,0.001341116,0.001169986,0.00128476,0.001343869,0.001480448,0.001513562,0.001515886,0.001320149,0.00124055,0.001239511,0.001400898,0.001496574,0.001545196,0.001412905,0.001038092,0.001008062,0.00106697,0.001309566,0.001086273,0,0,0,0,0 +INTERACTIONS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001222318,0.001222582,0.001222846,0,0,0,0.000783515,0.000783699,0.000782963,0,0,0,0.001824528,0.00182366,0.001822937,0,0,0,0,0.001702191,0.001702191,0.001702821,0,0,0,0.001258653,0.001259518,0.00125743,0,0,0,0.001191781,0.001191895,0.001191554,0,0,0,0.001316284,0.001316161,0.001315789,0,0,0,0.001647964,0.001647188,0.001649064,0,0,0,0.001606133,0.001606308,0.001604844,0,0,0,0.001675229,0.001674855,0.001674793,0,0,0,0.001799744,0.001791065,0.001789524,0,0,0,0.001489157,0.001484965,0.00145241,0,0,0,0.002490068,0.002512493,0.002480007,0,0,0,0.002503465,0.002510163,0.002521622,0,0.002609263,0.002132651,0,0.002688583,0.002709849,0.002749444,0.003824823,0.003343417,0.003488879,0.002239815,0.002175199,0.00203191,0.001489619,0.001222594,0.001752272,0.001654174,0.001872757,0.001739824,0.001426847,0.002167592,0.002711252,0.003791218,0.002434359,0.001691429,0.001207729,0.001568655,0.001559682,0.001866736,0.001451547,0.001793722,0.001840214,0.001959146,0.002053177,0.002196317,0.001891551,0.001500223,0.001468902,0.001621158,0.001864311,0.00183786,0.001164619,0.000950656,0.001138263,0.001528138,0.001871443,0.001772031,0.001772403,0.001981268,0.001915573,0.001865478,0.001507305,0.001497368,0.001329447,0.001607496,0.001561548,0.001711456,0.001581949,0.001704642,0.001716852,0.001914219,0.001342719,0.001390312,0.001087421,0.001733878,0.002198473,0.002070973,0.001790859,0.001773851,0.002046131,0.002059163,0.001706954,0.001804637,0.001784062,0.001525726,0.001362139,0.001134308,0.001353001,0.001469852,0.001369488,0.000930521,0.00077007,0.000751171,0.001026407,0.000837841,0.000736339,0.000665779,0.000922634,0.001148726,0.001074655,0.000973652,0.000726753,0.000891755,0.000914369,0.001062306,0.001170986,0.00125421,0.001098878,0.000960591,0.000873915,0.000885429,0.000946542,0.001131595,0.001039967,0.001060066,0.000976413,0.001030321,0.000905252,0.000958241,0.000895615,0.001006352,0.000958834,0.001003977,0.000955467,0.001115812,0.001057016,0.001039715,0.001004196,0.00105749,0.001067018,0.001154923,0.000976477,0.000953541,0.001034132,0.00109883,0.001114595,0.00110651,0.001101691,0.0011284,0.001086641,0.001075605,0.001072854,0.00085244,0.000951594,0.000988716,0.001028744,0.000964036,0.000972145,0.000972788,0.000990662,0.000933234,0.000997886,0.001027841,0.001099411,0,0.00108845,0.000991941,0.001073924,0.001040227,0.001079471,0.000952155,0.000931653,0.000908349,0.000944038,0.000938784,0.000966127,0.000999893,0.001147072,0.001164687,0.001119051,0.000994758,0.000947662,0.000975141,0.001369876,0.001293827,0.001093984,0.000946734,0.000929915,0.000951808,0.001027752,0.001043839,0.00114809,0.001100778,0.001105142,0.000998529,0.00114828,0.001100243,0.0010698,0.001002648,0.000997533,0.001018551,0.001080933,0.001009438,0.000983508,0.000994733,0.001002342,0.001000721,0.000935049,0.000992164,0.001023235,0.000966358,0.000940914,0.000895775,0.000987979,0.001085013,0.00108158,0.001029067,0.000982965,0.000983194,0.000979307,0.001051781,0.001034949,0.001023065,0.001074108,0.001072482,0.001027721,0.000986073,0.001031594,0.00108744,0.001012163,0.001017912,0.00102718,0.001165355,0.001070026,0.001060777,0.001000322,0.001011406,0.001012856,0.001180996,0.001159303,0.001157626,0.001121187,0.001097732,0.001036007,0.000960522,0.001028537,0.001134845,0.00110535,0.001117954,0.001062771,0.001077042,0.001065885,0.001064458,0.001078954,0.001094512,0.001114296,0.001245771,0.001258008,0.001140296,0.001161876,0.001141604,0.001204544,0.001132471,0.001115929,0.00113862,0.001123228,0.001134212,0.001104371,0.001214958,0.001219038,0.001146782,0.001127084,0.001083373,0.001077958,0.000863776,0.000872891,0.000991261,0.001054063,0.001144281,0.001200617,0,0,0,0,0 +MAJOR,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000240442,0.000218536,0,0,0,0,0.000212396,0.000209888,0.000212025,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000324623,0.000443487,0.000429198,0.000462,0.000594196,0.000522895,0.000685647,0.000808573,0.000898459,0.000914435,0.001092836,0.001072213,0.001168033,0.001107161,0.001250084,0.001393693,0.001519488,0.001459562,0.001466013,0.001454463,0.001481983,0.001551647,0.001593399,0.00139885,0.001365411,0.001379081,0.001579347,0.001679956,0.001650911,0.001461716,0.001327137,0.001344308,0.001402381,0.001503826,0.001444255,0.00131296,0.001262204,0.001285905,0.001325004,0.001343801,0.001328901,0.001360657,0.001271667,0.001191499,0.001170101,0.001275832,0.001440869,0.001396217,0.0014242,0.00135299,0.00137395,0.001324654,0.001399523,0.001316865,0.001323487,0.001234957,0.001247125,0.001215499,0.001319002,0.001218708,0.00117893,0.001166646,0.001201274,0.001230371,0.001381151,0.001389051,0.001299601,0.001232306,0.001224065,0.001215439,0.001245814,0.001283397,0.001271295,0.00118573,0.001161828,0.001167417,0.001178956,0.001101045,0.001086495,0.001076728,0.001170569,0.001200211,0.001194598,0.000999793,0.001032758,0.001086182,0.001133179,0.001121608,0.001120714,0.00096565,0.000982626,0.00101936,0.001138871,0.001164326,0.001231268,0.001244273,0.001186181,0.001170602,0.001141547,0.001179504,0.00123724,0.001170309,0.001083258,0.000979959,0.001192666,0.001224596,0.001300277,0.001101457,0.001086766,0.001048893,0.001193679,0.00122208,0.001299762,0.001234523,0.001136894,0.001007875,0.001055439,0.001066963,0.001116111,0.00112411,0.001048664,0.001010718,0.001087638,0.001155583,0.001212399,0.001195087,0.001069777,0.00101989,0.00103615,0.001035191,0.001070626,0.000921231,0.000944987,0.000892893,0.001022324,0.000977235,0.001031959,0.000993685,0.001019457,0.000988963,0.000928929,0.000977903,0.000969624,0.001022776,0.001045054,0.001009209,0.00101304,0.000951976,0.000967966,0.000941539,0.000967602,0.000918785,0.000911269,0.000922935,0.000935392,0.000978922,0.001130252,0.001095322,0.000976929,0.000953555,0.000924838,0.000987417,0.001106628,0.001066256,0.000962377,0.000922838,0.000929601,0.000949215,0.00100117,0.000910038,0.000912939,0.000893318,0.000916709,0.000922129,0.001015095,0.000996743,0.000888551,0.000919321,0.00089336,0.000907987,0.000825698,0.000895215,0.000912856,0.000894878,0.00075014,0,0,0,0,0,0 +SCIENCES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001006615,0.001006832,0.001007049,0,0,0,0.000940218,0.000940439,0.000939555,0,0,0,0.001269237,0.001347923,0.001347388,0,0,0,0,0.00259029,0.002664298,0.002665285,0,0,0,0.001487499,0.001488521,0.001600366,0,0,0,0.003098632,0.003098927,0.003145703,0,0,0,0.002867619,0.00286735,0.002819549,0,0,0,0.002785843,0.002784532,0.002826966,0,0,0,0.002409199,0.002409463,0.002407266,0,0,0,0.002010275,0.002009826,0.002009751,0,0,0,0.001626692,0.001687735,0.001686283,0,0,0,0.002047591,0.002072763,0.00197775,0,0,0,0.001818589,0.001842495,0.001866971,0,0,0,0.001050561,0.001021836,0.001061735,0,0,0,0,0.001049203,0.001048974,0.000965454,0,0,0,0.000695115,0.000725066,0.000742089,0,0,0,0,0,0.000362463,0,0,0,0,0,0.000594286,0.000623344,0.000522885,0,0,0.000812867,0.000807175,0.00409708,0.003284451,0.004003696,0.00067579,0.000788146,0,0.000501576,0.000635748,0.000932155,0.001021033,0.000582309,0.000860118,0.001600683,0.001793901,0.001947829,0.001245211,0.00104259,0.000945605,0.001596311,0.001589111,0.001739198,0.001062648,0.001124917,0.000734855,0.001561548,0.002294079,0.002622705,0.002329678,0.001650819,0.002033858,0.013142369,0.012732328,0.01370927,0.00436266,0.003908397,0.006100974,0.01907654,0.018121109,0.017485119,0.003867209,0.002698089,0.003655546,0.015924409,0.016555754,0.016060568,0.009656948,0.002805003,0.002689517,0.008142228,0.009925558,0.007841879,0.005302383,0.001716898,0,0.004689317,0.008141192,0.008377517,0.007264004,0.001863855,0.001740772,0.002561804,0.002360529,0.002162743,0.001657722,0.000931713,0.000974182,0.001472312,0.002403764,0.002231681,0.002076779,0.000883857,0.000939256,0.001626749,0.002210526,0.002173563,0.001800676,0.00097915,0.000882409,0.000993097,0.002089459,0.00201751,0.002206296,0.00127675,0.001266912,0.001148681,0,0.00193599,0.002053395,0.001301073,0,0.000988137,0.001972282,0.002040975,0.002067515,0.00143397,0.000867473,0.001225058,0.001995207,0.001846381,0.001777714,0.001109017,0.000754217,0.000865338,0.001805051,0.001686534,0.001694948,0.001122355,0.000957182,0.000786155,0.001582123,0.001648626,0.00169527,0.001224949,0.000968966,0.000938992,0.001145822,0.001449062,0.001448372,0.001431256,0.000960328,0.000691682,0.000794805,0.000944038,0.000946938,0.000896612,0.000744342,0.000529636,0.00056276,0.000666351,0.000795337,0.000851643,0.00077772,0.000651253,0.000594691,0.000704448,0.000785725,0.000862941,0.000882765,0.000791023,0.000831276,0.000824983,0.000796428,0.000751634,0.000736415,0.000834361,0.000894537,0.000746372,0.000779276,0.000745119,0.000858424,0.00091218,0.000992719,0.000879981,0.000784181,0.000738657,0.00073372,0.000745453,0.000879807,0.000811735,0.000840931,0.000828954,0.0008265,0.000849786,0.000794222,0.000839157,0.000839523,0.000860694,0.000873259,0.000992217,0.000905812,0.000826864,0,0.000894312,0.000933319,0.001024341,0.000800292,0.000802489,0.000841627,0.000864098,0.00094487,0.001003255,0.000984807,0.000818108,0.000716174,0.000793928,0.000785208,0.000940438,0.000926105,0.000899139,0.000789589,0.000791806,0.000774825,0.000798786,0.000868482,0.000881155,0.000723927,0.000745731,0.000736495,0.000820086,0.000924752,0.000948135,0.000879048,0.000843309,0.00082865,0.000850089,0.000860952,0.000873052,0.000827928,0.000766791,0.000737662,0.000757506,0.000867524,0.000833172,0.000864645,0.000869145,0.000896238,0.0008667,0.00095461,0.000968059,0.001014145,0.000933732,0.000942221,0.000910194,0.000947949,0.000955492,0.00114247,0.00142406,0.002008849,0.00428792,0,0,0,0,0 +BIOLOGY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004120313,0.004127115,0.004125413,0,0,0,0.006502636,0.006508355,0.006511792,0,0,0,0.005895887,0.005897159,0.005898432,0,0,0,0.001880436,0.001880878,0.001879111,0,0,0,0.001983183,0.001982239,0.001981454,0,0,0,0,0.002220249,0.002220249,0.002221071,0,0,0,0.002345672,0.002347283,0.002343393,0,0,0,0.008294799,0.00829559,0.008293218,0,0,0,0.008367807,0.008367021,0.008364662,0,0,0,0.006827278,0.006824065,0.006831835,0,0,0,0.005803979,0.005804614,0.005799322,0,0,0,0.005695778,0.005694506,0.005694295,0,0,0,0.004568581,0.00454655,0.004542639,0,0,0,0.004746688,0.004795199,0.004820766,0,0,0,0.003385373,0.00343374,0.003427425,0,0,0,0.002481112,0.002510163,0.002499502,0,0,0,0,0.001420796,0.001398632,0.001364228,0,0,0,0.000810967,0.000763228,0.000742089,0,0,0,0.001033859,0.001144462,0.000942405,0.000713423,0.000793021,0.001626751,0.002116029,0.002434359,0.001691429,0.001558361,0.00139436,0.001364722,0.001348198,0.001741857,0.002107623,0.002083261,0.001584603,0.001266126,0.001013685,0.001576293,0.001702956,0.001934652,0.00244763,0.002553295,0.002501532,0.001048157,0.001810774,0.001636254,0.002292206,0.002711683,0.003544061,0.002867122,0.00229647,0.001880099,0.001796386,0.00231893,0.002704922,0.002863425,0.001928995,0.001942413,0.002148423,0.002830856,0.003352463,0.003499736,0.002871329,0.002400618,0.002012293,0.002757389,0.004418592,0.006290076,0.004477779,0.003737445,0.002608605,0.002678571,0.001406258,0.001431639,0.001665818,0.001585833,0.001493264,0.001583882,0.001532849,0.001584002,0.001250938,0.002116481,0.001485569,0.001155105,0.000544967,0.00057852,0.00189425,0.002932438,0.0027916,0.002152813,0.000912224,0.001108238,0.000855634,0.00175632,0.001162319,0.001106244,0.000721319,0.000696066,0.000867693,0.001101938,0.001111541,0.001121169,0.00104212,0.000990422,0.001045043,0.001110695,0.001070338,0.001049992,0.000985005,0.000942201,0.001113352,0.001340376,0.001262204,0.001101712,0.000918097,0.000896798,0.000949215,0.001177327,0.001218765,0.001059285,0.000934321,0.000791658,0.000623881,0.001011455,0.001230639,0.001255321,0.001080709,0.000915254,0.000755666,0.001262355,0.001265848,0.001122963,0.000940954,0.000847836,0.000891028,0.000948811,0.001020418,0.001224564,0.001235557,0.001208431,0.000920767,0.001033157,0.001115506,0.001205406,0.001101258,0.001078488,0.000953586,0.001029967,0.001046392,0.001116587,0.001157012,0.001191532,0.001042058,0.000869543,0.000910306,0.001085021,0.00100634,0.000977477,0.000738257,0.000793037,0.000878153,0.001020443,0.00094197,0.000930963,0.000767749,0.000785995,0.000809974,0.000850711,0.00082866,0.000844909,0.000930437,0.001027752,0.000990698,0.000844846,0.000823924,0.000806548,0.000786341,0.000834361,0.000971913,0.00096199,0.001056217,0.001018476,0.001043834,0.001071811,0.001109755,0.001110192,0.000969036,0.000898389,0.00083518,0.000879032,0.000999781,0.00098897,0.000963507,0.0009943,0.001020857,0.001138548,0.001143171,0.001000772,0.001090892,0.001017329,0.001063053,0.001019881,0.001047782,0.000999355,0.000999349,0.000981486,0.000978779,0.000863759,0.00096821,0.00092633,0.000931976,0.000910416,0.001001056,0.00107184,0.001165355,0.000959032,0.000857012,0.000840746,0.000843558,0.000954326,0.001113025,0.001044946,0.000991446,0.000967476,0.000995126,0.001094788,0.001576483,0.001442461,0.001113259,0.000948125,0.000948363,0.001034821,0.001460521,0.001217979,0.001030576,0.000879361,0.00086151,0.000920245,0.001197941,0.001173753,0.001004835,0.000954983,0.000963709,0.001042525,0.001359903,0.001367116,0.001277,0.000962076,0.00087129,0.000788597,0.001320149,0.001315844,0.001259465,0.001029207,0.000974794,0.000935947,0.000984023,0.001109531,0.001111668,0.001204643,0.00116971,0.000971928,0,0,0,0,0 +FOCUS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000391798,0.000462042,0.000544967,0.000541196,0.00060106,0.000723421,0.000735861,0.00089803,0.000844652,0.0007892,0.000501578,0.000678303,0.000891755,0.000904894,0.000978371,0.000920837,0.001001791,0.000982562,0.000949155,0.00098049,0.000957557,0.001012361,0.000929639,0.000977097,0.001043631,0.001030106,0.001023166,0.000945896,0.000899643,0.000919986,0.001017012,0.001015641,0.001034648,0.000969436,0.001073194,0.001025506,0.001033611,0.001067155,0.001117315,0.001126679,0.001065797,0.001110561,0.001165439,0.001183507,0.001143311,0.001106022,0.001125787,0.00119063,0.00118604,0.00107302,0.001040339,0.001044726,0.001161143,0.001163059,0.001198744,0.001152855,0.001191674,0.001125731,0.001126249,0.001126114,0.001190238,0.001178505,0.001154653,0.00112604,0.001138151,0.001172927,0.001162394,0.001168076,0.001123301,0.001150395,0.001136048,0.001185741,0.001143267,0.001166571,0.001134462,0.001123602,0.0011804,0.001396312,0.001401747,0.00134316,0.001212947,0.00119397,0.001064878,0.001215885,0.001217092,0.001270096,0.001197908,0.001193949,0.001142498,0.00124716,0.001282973,0.001244758,0.001219294,0.001187513,0.001188873,0.001093206,0.001079484,0.001149965,0.00108755,0.001104451,0.001125703,0.001206358,0.001189172,0.001115641,0.001085917,0.001089392,0.001107521,0.001256068,0.001285433,0.001199289,0.001084658,0.001051392,0.001039138,0.001148861,0.001132266,0.001079093,0.001080317,0.001096446,0.001150172,0.001134226,0.001141763,0.001055483,0.001054141,0.001049201,0.001071554,0.001066599,0.001034305,0.000993204,0.001017441,0.001037221,0.001054433,0.00113245,0.001085111,0.001045083,0.000966885,0.00096999,0.000972505,0.000995991,0.00103231,0.001016356,0.000995201,0.001005581,0.001005689,0.001020262,0.001076162,0.001015994,0.000981425,0.000962458,0.000972865,0.001025277,0.001139427,0.001101455,0.001023987,0.001065369,0.001061055,0.001098622,0.001008792,0.000993623,0.00097653,0.001009336,0.001015873,0.001011139,0.001010549,0.001076123,0.001071752,0.001045338,0.001020343,0.001002752,0.00094935,0.000989572,0.000987148,0.000987774,0.000980826,0.000966115,0.000949953,0.000993443,0.001108868,0.001114295,0.001017139,0.000857584,0,0,0,0,0 +DETERMINE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000240442,0.00024039,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000367884,0.000660001,0.000750563,0.000697194,0.000718297,0.000911249,0.000927917,0.001063731,0.000764986,0.000749257,0.0007125,0.000848823,0.000895331,0.001007489,0.000899891,0.001144636,0.0013611,0.001442619,0.001584279,0.001838049,0.001956253,0.001772284,0.001598697,0.001479262,0.001504732,0.001623539,0.001830427,0.00168176,0.001602426,0.001545159,0.001597951,0.001703351,0.001716561,0.00162673,0.00152232,0.00146149,0.001519257,0.00155892,0.001681467,0.001584091,0.001452752,0.001415004,0.001455148,0.001636094,0.001801086,0.001480747,0.001251014,0.001294101,0.001400309,0.001534712,0.001534464,0.001374245,0.001407729,0.001471051,0.001503603,0.001585171,0.001659277,0.00170007,0.001531618,0.001494851,0.001367203,0.001412649,0.001399358,0.001484665,0.001288664,0.001348876,0.001334859,0.001453201,0.001268884,0.001358126,0.001344684,0.001429937,0.001449575,0.001533388,0.001542655,0.00165439,0.001542627,0.001431952,0.00134761,0.001300938,0.001356852,0.001529429,0.001432668,0.001337184,0.001292716,0.001320603,0.00145972,0.001559157,0.001521898,0.001392479,0.001254798,0.001208117,0.001181951,0.001489663,0.001389255,0.001359964,0.001230671,0.00122069,0.001135826,0.001266687,0.001253107,0.001260539,0.001162344,0.001144132,0.001124499,0.001199517,0.00125187,0.001266845,0.001158864,0.001125733,0.001048781,0.0010557,0.001087381,0.001077587,0.000999852,0.000966866,0.000935224,0.000936415,0.001012315,0.000980881,0.000902976,0.000836719,0.000828663,0.000881561,0.000985795,0.000895313,0.000918387,0.000851503,0.000850749,0.000730223,0.000853882,0.000906515,0.00088965,0.000874728,0.000842798,0.000795905,0.000877207,0.00087797,0.000950904,0.000898114,0.000883179,0.000857108,0.000951594,0.000910575,0.000901315,0.000786639,0.000789914,0.000734757,0.000880282,0.000896834,0.000903559,0.000825647,0.00081,0.00076555,0.000755948,0.000775189,0.000730344,0.000747692,0.000739632,0.000765005,0.000784858,0.000788797,0.000719761,0.000753934,0.000754381,0.000823671,0.000881592,0.000856506,0.000791276,0.000740761,0.000724795,0.000717211,0.000904644,0.00088201,0.000840426,0.000746385,0.000717222,0.000685037,0.000617269,0.000676434,0.000711244,0.000718484,0.000673854,0.000628895,0,0,0,0,0 +ADDITION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000814091,0.000814091,0.000814393,0,0,0,0.000858173,0.000858762,0.000857339,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00033,0.000406555,0.000398396,0.000424448,0.000487711,0.000500781,0.000410563,0.000965339,0.000930112,0.000899386,0.000615089,0.000608149,0.000839574,0.001121175,0.001277874,0.001120906,0.001101507,0.00098624,0.000967966,0.00081642,0.000982562,0.001031491,0.001046567,0.000977454,0.000899529,0.000916817,0.000956141,0.000910096,0.000910788,0.000870525,0.000975455,0.001016838,0.00105707,0.000991427,0.001003591,0.00097535,0.000977818,0.000871728,0.001065609,0.001070235,0.001038824,0.000946638,0.000913276,0.000998953,0.00101437,0.000912792,0.000945082,0.000943973,0.000992419,0.000890606,0.000912338,0.001002037,0.00101551,0.000997059,0.000960345,0.000891028,0.001001678,0.001026362,0.001089421,0.001094311,0.001083537,0.001048218,0.000948167,0.001066292,0.001084993,0.001099924,0.001063271,0.000938205,0.001010472,0.000951696,0.000991541,0.001020963,0.001068123,0.001136048,0.001036111,0.001035596,0.001015912,0.000995857,0.000960453,0.000918765,0.000988464,0.001032758,0.001012973,0.000943143,0.00090174,0.000857486,0.000869406,0.000950653,0.00101936,0.001071248,0.001088335,0.001073455,0.001059509,0.001068512,0.001046126,0.000974676,0.000954129,0.000961084,0.001106974,0.001113453,0.001072564,0.001075421,0.001037214,0.001034202,0.000980593,0.001061686,0.001027098,0.001043641,0.001025161,0.001058393,0.001116026,0.001188311,0.00112485,0.001120291,0.001098104,0.001137279,0.001128235,0.001201329,0.001101471,0.0010974,0.001037308,0.001065127,0.001064144,0.001177755,0.001099291,0.001115476,0.001071773,0.001090109,0.001063218,0.001168283,0.001171534,0.001190812,0.001158711,0.001186472,0.001130855,0.001220066,0.001118663,0.001143681,0.001082748,0.001089206,0.001081305,0.001231974,0.001120708,0.001136032,0.001069519,0.00109396,0.001063298,0.001165842,0.001191598,0.001176477,0.001091017,0.00107952,0.00101437,0.001077042,0.001116174,0.00120375,0.001122322,0.001114825,0.001066529,0.001215334,0.001207165,0.001190841,0.001123887,0.001114184,0.00113329,0.001188743,0.001181814,0.001147907,0.001057693,0.001036975,0.000992674,0.001207069,0.001170635,0.001081051,0.001017798,0.000997716,0.001009528,0.001020097,0.001096136,0.00114527,0.001144411,0.00108071,0.00125779,0,0,0,0,0 +MECHANISMS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005357826,0.005366041,0.005376344,0,0,0,0.004057428,0.00406377,0.004071406,0,0,0,0.002266172,0.002269913,0.002268977,0,0,0,0.002636204,0.002638522,0.002639916,0,0,0,0.001581823,0.001582165,0.001582506,0,0,0,0.001723733,0.001724138,0.001722518,0,0,0,0.002221165,0.002220108,0.002219228,0,0,0,0,0.002960332,0.002960332,0.002961427,0,0,0,0.00228846,0.002290033,0.002286237,0,0,0,0.003384659,0.003384982,0.003384014,0,0,0,0.002256487,0.002256275,0.002255639,0,0,0,0.002589657,0.002588438,0.002591386,0,0,0,0.002701223,0.002701519,0.002699055,0,0,0,0.003127094,0.003126396,0.003126279,0,0,0,0.002388122,0.002376606,0.002374561,0,0,0,0.001985543,0.001979953,0.002008653,0,0,0,0.002098372,0.002093744,0.002062028,0,0,0,0.002257589,0.002288025,0.002322546,0,0.002391824,0.002985711,0.004504505,0.002950884,0.002906532,0.00279142,0.002103653,0.001751313,0,0.00231705,0.002270602,0.002208598,0.001396518,0.002119162,0.001971307,0.002119411,0.001508609,0.001703578,0.001646362,0.002273328,0.002620877,0.002733204,0.001912711,0.001737143,0.001324607,0.001464078,0.001413462,0.001607467,0.001625733,0.001434978,0.001666609,0.001526981,0.00177942,0.001858422,0.00220681,0.001824596,0.001433075,0.001239709,0.001134798,0.001123137,0.001164619,0.000905387,0.001351688,0.001528138,0.002176985,0.002442529,0.002293698,0.00153098,0.001418943,0.001589111,0.001816495,0.001738878,0.001636243,0.001699352,0.001599634,0.001711456,0.00174847,0.002045571,0.002311146,0.002452593,0.002075111,0.001865945,0.001708804,0.002125399,0.002198473,0.002294862,0.0015962,0.001773851,0.001785714,0.002360504,0.002092396,0.002406182,0.001784062,0.001817887,0.001267106,0.001164965,0.001254001,0.001469852,0.001593586,0.001599843,0.001706988,0.001870563,0.00173556,0.00138426,0.000943031,0.000992828,0.00089803,0.001064261,0.000990698,0.000885139,0.000866047,0.001090537,0.001203367,0.001332473,0.00143201,0.001285763,0.001160096,0.001084095,0.001131827,0.001193837,0.001332055,0.001391253,0.001210238,0.001156623,0.001113628,0.001237816,0.001285827,0.001296038,0.001127135,0.001087371,0.001043184,0.001075544,0.001028105,0.001038325,0.000985402,0.000978675,0.001112801,0.001187697,0.001328609,0.001128928,0.000976477,0.000898529,0.001052804,0.00111201,0.001219625,0.001156631,0.001187761,0.001072978,0.001157772,0.001085223,0.001177326,0.00090506,0.000951594,0.000933237,0.001150097,0.001106653,0.001107166,0.000923368,0.001086275,0.000989738,0.001122142,0.001066552,0.001232558,0.000895909,0.001020219,0.000942226,0.001010666,0.000998088,0.001008546,0.001031842,0.001101045,0.001166758,0.001187304,0.001248607,0.001242772,0.001239218,0.001121581,0.001047187,0.001032396,0.001068661,0.001143873,0.001192504,0.001302505,0.001189383,0.001040255,0.000971422,0.000960826,0.001032358,0.001108587,0.001030554,0.001032884,0.001078022,0.00111887,0.001120224,0.001005089,0.00093983,0.000971666,0.000998605,0.001033907,0.001057077,0.001076372,0.001111845,0.001033909,0.000998049,0.000958394,0.000964409,0.000881186,0.000948364,0.000912168,0.000949967,0.000937207,0.000983332,0.000979729,0.001072291,0.000963476,0.000949345,0.000927024,0.000960378,0.00101066,0.00091181,0.000893944,0.000935561,0.000930115,0.000910125,0.000745436,0.000823514,0.000837164,0.00088558,0.000851189,0.000872764,0.00081026,0.000919153,0.000911642,0.000941914,0.000909984,0.000881018,0.000856116,0.000921857,0.000953459,0.000973607,0.000935184,0.000942314,0.000992972,0.001125722,0.001080278,0.001042331,0.000991992,0.000996886,0.0009462,0.001007319,0.000897846,0.000998576,0.000946763,0.000970244,0.000923231,0.001010966,0.001024129,0.001003824,0.001053754,0.001058006,0.001095966,0.000893316,0.001039063,0.000980736,0.00100129,0.00095893,0.000979237,0.001017725,0.001039768,0.001005929,0.00100759,0.000976604,0.000983775,0.000893838,0.000997908,0.001005262,0.000950808,0.000673854,0,0,0,0,0,0 +CLIMATE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000878059,0.000951626,0.001717126,0,0,0,0,0,0,0,0,0,0,0,0.000650173,0.0008025,0.000998319,0,0,0,0.000445813,0.00061262,0.000757002,0,0,0.000332204,0.000534698,0.000478927,0.000625554,0.000495317,0.00049663,0,0,0,0,0,0,0,0,0,0,0.000598193,0.000610327,0.000585394,0.000699056,0.000783042,0.001038168,0.000615695,0,0,0,0,0,0.000509,0.000495573,0.000486934,0.00053852,0.000337227,0.000462,0.000500375,0.000298797,0.000195899,0,0,0.000223943,0.000309637,0.00021961,0.000151844,0.000147621,0.00016893,0,0.000339303,0.000327039,0.000314737,0.000438234,0.000461644,0.000561928,0.000370741,0.000303033,0.000233286,0.000200361,0.000313382,0.000498345,0.000573812,0.000440087,0.000287615,0.000290339,0.00034344,0.000509897,0.000492908,0.00039602,0.000349665,0.000320185,0.000318983,0.00032687,0.000538534,0.000578637,0.000533083,0.000566631,0.000592968,0.000715935,0.000687012,0.000597546,0.00051752,0.000486904,0.000522233,0.000507998,0.000539761,0.000467645,0.000574176,0.000502458,0.000492117,0.000536427,0.000698089,0.000859773,0.000715283,0.000602629,0.000490931,0.000452318,0.000520207,0.000786155,0.000719975,0.00070326,0.000660755,0.000711384,0.00073057,0.000451626,0.000608422,0.000684075,0.000851204,0.000869534,0.00091129,0.000669096,0.000739991,0.000692479,0.000790862,0.00079021,0.000983667,0.000807199,0.000645216,0.000460171,0.000591224,0.000605334,0.000823585,0.000872614,0.000929338,0.000644749,0.000572119,0.00052678,0.000670704,0.000753492,0.000618712,0.000542926,0.000643779,0.000680703,0.000739535,0.000798564,0.000751109,0.000673117,0.00064788,0.000626076,0.000656158,0.000773072,0.000848513,0.000760107,0.00081651,0.000794436,0.000897124,0.000988911,0.00107405,0.000894445,0.000821689,0.00093869,0.001024706,0.001268491,0.001097735,0.000979638,0.001054285,0.001010137,0.001158469,0.001534433,0.001593669,0.001296424,0.000908573,0.00088108,0.000880437,0.000990534,0.000969996,0.001001872,0.001209533,0.001383467,0.00148426,0.001588621,0.00147721,0.001265823,0.001032809,0.001251557,0.001277224,0.00144637,0.0013488,0.001363718,0.001298456,0.001481569,0.001551914,0.001764466,0.001276762,0.00133898,0.001241237,0.001482342,0.001448968,0.001636081,0.001295387,0.001578589,0.001466335,0.001992278,0.002061768,0.002171869,0.002058893,0.002547974,0.002084477,0.001684369,0.001412459,0.001546397,0.001594369,0.001287505,0.001046676,0.001144178,0.001194985,0.001265618,0.0015542,0.001807044,0.001780623,0.001447135,0.001290275,0.001208932,0.001348773,0.001701132,0.001985322,0.001897313,0.001818136,0,0,0,0,0,0 +BIOLOGICAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003121099,0.003125977,0.003131851,0,0,0,0.004532344,0.004539827,0.004537954,0,0,0,0.003339192,0.003342128,0.003343893,0,0,0,0.001653724,0.001654081,0.001654438,0,0,0,0.00211549,0.002115987,0.002113999,0,0,0,0.002617801,0.002616556,0.002615519,0,0,0,0,0.002664298,0.002664298,0.00273932,0,0,0,0.002574518,0.002576287,0.002572016,0,0,0,0.002955618,0.0029559,0.002955055,0,0,0,0.002585558,0.002585315,0.002584586,0,0,0,0.002158048,0.002157032,0.002159488,0,0,0,0.001752145,0.001752336,0.001750739,0,0,0,0.002084729,0.002084264,0.002084186,0,0,0,0.001972796,0.001997727,0.001996008,0,0,0,0.001954519,0.001979953,0.001946848,0,0,0,0.001874545,0.001842495,0.001866971,0,0,0,0.001765837,0.001688251,0.001703201,0,0,0,0,0.001704955,0.001726436,0.001742014,0.001912412,0,0,0.001370921,0.001354729,0.001378165,0.001303417,0.001548618,0.001314204,0.001292324,0.001664673,0.001377361,0.001262211,0.00084589,0.001084501,0.001498854,0.001478004,0.000914286,0.000857098,0.000976052,0.001315982,0.001607467,0.001741857,0.002017937,0.001493004,0.001123628,0.00092393,0.001224869,0.001418663,0.001216397,0.001218114,0.001335071,0.001418497,0.001276292,0.001339312,0.001267542,0.00096041,0.001063052,0.00084024,0.001101533,0.000834072,0.000990634,0.000780419,0.000794556,0.00065703,0.000917741,0.000920387,0.001240068,0.001256856,0.00138373,0.001124016,0.001250071,0.001254622,0.001495484,0.0010579,0.000951266,0.000932075,0.001118631,0.000977099,0.000951528,0.000817566,0.000869535,0.001041667,0.001104917,0.001101261,0.001064273,0.001057222,0.001266028,0.000982007,0.00101168,0.000594001,0.000531649,0.000522895,0.000636672,0.000641725,0.000662798,0.000634506,0.000783199,0.000749257,0.000852664,0.000701202,0.0007264,0.000470162,0.000708111,0.000726753,0.000717822,0.000821985,0.000865583,0.000978843,0.000804588,0.00084788,0.000795918,0.000831285,0.000830711,0.001053107,0.001086716,0.000984956,0.000762179,0.000719881,0.00074889,0.000827659,0.000909984,0.000947402,0.000880558,0.000846941,0.00076883,0.000846511,0.001061571,0.0010341,0.000870837,0.000763378,0.000811153,0.000906392,0.000917254,0.000842394,0.000764056,0.000851723,0.000779231,0.00095598,0.001033257,0.001159071,0.000948832,0.000867194,0.000798288,0.00081569,0.000848932,0.000965506,0.000945125,0.000981858,0.000928382,0.00096877,0.000954581,0.001035813,0.000869438,0.000896689,0.000887681,0.00098909,0.001126615,0.001153433,0.001124516,0.001004781,0.000963173,0.000983014,0.000980761,0.001021995,0.000947502,0.000938509,0.000980715,0.0010172,0.00112564,0.001016787,0.000970916,0.000832192,0.000918508,0.000929571,0.001064878,0.00100094,0.000954916,0.000955184,0.000977862,0.001013633,0.001078387,0.001160552,0.001129244,0.00098124,0.001008809,0.001018195,0.001029733,0.001007842,0.000977574,0.000968901,0.000969294,0.000947932,0.00097882,0.00106725,0.001109755,0.00102846,0.001043641,0.000998116,0.001006061,0.000988911,0.001146416,0.001045685,0.001061853,0.001072153,0.001131506,0.001107609,0.001037759,0.000977151,0.001030694,0.001010936,0.001048533,0.001078898,0.001045782,0.000940489,0.000994442,0.001061655,0.001158763,0.001161258,0.001216515,0.001149243,0.001135464,0.001091891,0.00106848,0.000996875,0.000920977,0.000912889,0.000942913,0.00096999,0.000978989,0.00100988,0.001074791,0.001046375,0.001066556,0.001073394,0.001096223,0.00111893,0.001135162,0.001157104,0.001040018,0.001094492,0.001082883,0.001176615,0.001293552,0.001199581,0.00114728,0.001118664,0.00113454,0.00115012,0.001237075,0.001112741,0.001082674,0.000997063,0.001013198,0.001017077,0.001221568,0.001099458,0.001143264,0.001008273,0.001042093,0.000985116,0.00119129,0.001131195,0.001216035,0.001029207,0.001001939,0.000908722,0.000921895,0.001087206,0.001156471,0.001260573,0.001055281,0.000914756,0,0,0,0,0 +THEORETICAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000934714,0.000934915,0.000935117,0,0,0,0.002193842,0.002194357,0.002192296,0,0,0,0.001427891,0.001427212,0.001426647,0,0,0,0,0.001258141,0.001258141,0.001258607,0,0,0,0.00074375,0.000744261,0.000743027,0,0,0,0.001382467,0.001382598,0.001382203,0,0,0,0.001128244,0.001128138,0.00112782,0,0,0,0.001530252,0.001529532,0.001531273,0,0,0,0,0.001788843,0.001787212,0,0,0,0.001786911,0.001786512,0.001786445,0,0,0,0.001972796,0.001997727,0.001996008,0,0,0,0.002016567,0.00201089,0.002008653,0,0,0.005428882,0.002098372,0.002037911,0.001894837,0,0,0,0.002570522,0.002576804,0.00258798,0.002325581,0.003261579,0.002772446,0.004504505,0.003016459,0.0030158,0.003106242,0.0032511,0.002706575,0.002180549,0.002645298,0.002652216,0.002508967,0.00158272,0.002934224,0.003723579,0.003308348,0.00254903,0.002211026,0,0.001797515,0.001988251,0.002645036,0.001478004,0.001462857,0.001519402,0.002335553,0.003021884,0.003214934,0.002380538,0.002017937,0.002013819,0.001843902,0.001916299,0.001942896,0.002311896,0,0.002472055,0.002320481,0.002472238,0.002297325,0.002620392,0.002037121,0.002098673,0.002059664,0.002329756,0.00210728,0.002189439,0.001846182,0.002021994,0.002280029,0.002705419,0.002801526,0.002812292,0.002342351,0.00274223,0.002366907,0.002664335,0.002045571,0.002377179,0.002512413,0.002197176,0.002414752,0.002136005,0.002796577,0.002748092,0.002966529,0.002880947,0.002573824,0.002715774,0.002611622,0.002477837,0.002221091,0.001585833,0.001850349,0.001742271,0.002207302,0.002376002,0.002345509,0.001867483,0.001926342,0.001848168,0.002194597,0.001996827,0.00171211,0.001356414,0.001623566,0,0.00206095,0.00181348,0.001652259,0.001556463,0.00145773,0.00141893,0.001374441,0.001337751,0.001518462,0.001450886,0.001438599,0.001315136,0.001318195,0.001212953,0.001272644,0.001338597,0.001470945,0.001425841,0.001423846,0.001248878,0.001358082,0.001200246,0.001247279,0.001165405,0.001216632,0.001237638,0.001410262,0.001426542,0.001361192,0.001367785,0.001316144,0.001397449,0.001485432,0.001489492,0.001330475,0,0.001217445,0.001208907,0.00154603,0.001420149,0.001425465,0.001138097,0.001114077,0.001098972,0.001133079,0.001196448,0.0011928,0.001166646,0.001094311,0.001070035,0.001069026,0.00127219,0.001243096,0.001164414,0.001078566,0.001006208,0.000965121,0.001208667,0.001072433,0.001126885,0.000988456,0.001044009,0.000878598,0.001084106,0.001082579,0.00121633,0.001125144,0.001127858,0.000941075,0.001121581,0.001148196,0.00137603,0.00115664,0.001134132,0.000879422,0.001257591,0.001251196,0.001377554,0.001127064,0.001102503,0.000872902,0.000863196,0.000975515,0.00124873,0.001156717,0.001153191,0.000848749,0.000856391,0.000856793,0.001133379,0.001055206,0.00103501,0.000913806,0.000957789,0.001047057,0.001163318,0.001017943,0.000967691,0.000818092,0.000764844,0.000868381,0.001082314,0.001037623,0.001013578,0.000893851,0.000738406,0.00085238,0.001040554,0.001046964,0.001010137,0.000871185,0.000673158,0.000727849,0.000913109,0.001025519,0.000947239,0.000912908,0.000760649,0.000861028,0.001021687,0.001074417,0.001063037,0.000918649,0.000716155,0.000614592,0.000818108,0.000913946,0.001006257,0.001066154,0.001065433,0.00104293,0.000884844,0.000925725,0.000947455,0.000936279,0.00087646,0.000705641,0.000749452,0.00096909,0.000959418,0.000975748,0.000860306,0.000609162,0.000653759,0.000738814,0.000900261,0.000923046,0.000905318,0.000508744,0.000524412,0.000667194,0.000915825,0.000963709,0.000958546,0.000550995,0.000660224,0.000852572,0.000889021,0.000912231,0.000802034,0.000520696,0.000575458,0.000651447,0.000882692,0.000887931,0.000907987,0.000655347,0.000578206,0.000781248,0.000778716,0.001258709,0.001029101,0,0,0,0,0 +RANGE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000572055,0.00057211,0.000571946,0,0,0,0.000564122,0.000564069,0.00056391,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000449936,0.000447766,0.000447381,0,0,0,0,0,0,0,0,0,0,0.000279166,0.000278652,0,0,0,0,0,0,0,0,0,0,0.000240442,0.000262243,0.000293834,0,0,0,0.000193087,0.000190807,0.000229694,0,0,0,0,0,0.000362463,0.000713423,0.000687285,0,0,0,0,0,0,0,0,0,0,0,0,0.000376416,0,0,0,0,0,0.000486342,0.000561568,0.000582309,0,0.000391278,0.000398645,0.00042012,0,0,0,0,0,0,0,0,0.000505213,0.000533211,0,0,0,0,0,0.000406884,0.000402459,0,0,0,0.000559722,0,0,0,0,0,0,0,0,0,0.000459855,0.000726001,0.000938204,0.000896392,0.000865221,0.000834242,0.000810086,0.000727816,0.000637488,0.000542566,0.000537295,0.000676598,0.000810866,0.000973906,0.000722863,0.000872104,0.000966298,0.000938057,0.00098624,0.00100422,0.001045175,0.000884612,0.000814215,0.000824891,0.00085807,0.000965348,0.00093605,0.000929945,0.000866953,0.000859084,0.00084429,0.000920031,0.0009479,0.001078394,0.000938124,0.000939898,0.000889471,0.001042074,0.001123561,0.001057016,0.000891184,0.00085939,0.000841065,0.000890329,0.000965531,0.000935669,0.000880192,0.000845978,0.000859954,0.000868098,0.000948437,0.000946766,0.000906711,0.0008566,0.000862408,0.000892036,0.000950664,0.000965506,0.00092333,0.000939108,0.000922896,0.000975521,0.001040415,0.000980038,0.000935056,0.000860821,0.00090103,0.000913006,0.001022798,0.00094549,0.000913817,0.000959176,0.000934278,0.000974503,0.000954198,0.001044581,0.000969036,0.000966153,0.000969068,0.000998757,0.001038428,0.001005458,0.001024512,0.001017455,0.001007661,0.0009908,0.001023001,0.001055478,0.001097728,0.001001451,0.000943514,0.00090158,0.000905779,0.000967126,0.001064716,0.001124255,0.001138703,0.001100566,0.001062497,0.001010596,0.000985123,0.000956462,0.000982433,0.000995329,0.00103059,0.000996557,0.000973909,0.000993043,0.001087575,0.001115591,0.001110725,0.00096952,0.000946459,0.000991333,0.001041899,0.001078826,0.001117073,0.001157111,0.001014132,0.000944828,0.001034761,0.001098044,0.001150172,0.00114898,0.001079775,0.001102029,0.001067226,0.001060876,0.001071554,0.001046315,0.00102716,0.000979581,0.001088254,0.00111543,0.001137777,0.00110374,0.001074169,0.001056307,0.001037803,0.00104714,0.001059671,0.001131898,0.001253215,0.001172169,0.001101294,0.001086957,0.001089433,0.001070646,0.001028962,0.001020698,0.001174164,0.001088412,0.001101619,0.001039593,0.001291717,0.001237604,0.001148221,0.001116052,0.001121994,0.001129969,0.000954439,0.001034297,0.001018988,0.001123887,0.001122878,0.001168069,0.001270806,0.001181814,0.001129333,0.001135583,0.001149565,0.001175756,0.001093988,0.001093549,0.001074008,0.001125282,0.001116549,0.001123578,0.0010702,0.001082742,0.001106068,0.001084179,0.001118853,0.001372134,0,0,0,0,0 +FACULTY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0015447,0.001526455,0.001660865,0.001303417,0.001141087,0,0.000568622,0.000572231,0.003842111,0.005213478,0.005022469,0,0.00414389,0.00434707,0.005851429,0.003311516,0.002858438,0,0,0,0.005426009,0.004201243,0.003601371,0,0,0,0.005189961,0.004764976,0.004259512,0,0,0,0.003847895,0.003130224,0.002923394,0,0,0,0.003557277,0.002802412,0.002729126,0,0,0,0.004317274,0.00373248,0.003714223,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000528204,0.000632993,0.000724181,0.000565882,0.000473005,0.000302247,0.000413065,0.000575346,0.000502475,0.000476135,0.000390824,0.000311779,0.000331301,0.00071626,0.000702146,0.000711921,0.000544688,0.000551627,0.000795002,0.000859217,0.000784778,0.000588632,0.000584325,0.000620744,0.000641125,0.000697605,0.000678008,0.000726441,0.000656368,0.00075711,0.000786492,0.00087655,0.000775208,0.00078384,0.000944879,0.001096849,0.001270044,0.001072667,0.000931129,0.000982425,0.000876429,0.000943119,0.000828919,0.001187761,0.001077412,0.00102459,0.000956984,0.001082899,0.001431258,0.001252097,0.001036269,0.000944624,0.001169733,0.001331637,0.001599638,0.001227039,0.001244919,0.001291232,0.001238749,0.001160278,0.001191982,0.001208667,0.001124516,0.00089886,0.000994476,0.001038335,0.001358762,0.001482176,0.001399718,0.001013147,0.000821145,0.000680971,0.00088023,0.001093258,0.00111109,0.000966657,0.00095722,0.000932354,0.000841533,0.000619171,0.000841946,0.000832801,0.001064807,0.001022649,0.001181951,0.001183647,0.001292463,0.001003751,0.000820131,0.000694432,0.000844069,0.00104364,0.001349354,0.001042156,0.001161333,0.001023987,0.001155802,0.001251967,0.001316658,0.001036634,0.000995562,0.000938111,0.001035965,0.001021228,0.001154033,0.000876721,0.001101762,0.001074377,0.001219063,0.000977666,0.001019585,0.001000772,0.001138075,0.001074868,0.001115946,0.000881561,0.00105978,0.000873409,0.000975633,0.000908322,0.000972284,0.000990534,0.001030733,0.000973389,0.00089372,0.00107139,0.001317574,0.001674751,0.001358668,0.00095155,0.000814061,0.000981859,0.000989794,0.001258877,0.001240471,0.001160733,0.001059045,0.001131521,0.001151298,0.001262732,0.001434883,0.001356227,0.000915894,0.000965933,0.000983434,0.001211382,0.00146786,0.001316104,0.001071046,0.001107169,0.00105986,0.001153852,0.001115324,0.00121007,0.001166579,0.001053754,0.000997148,0.001022166,0.001191087,0.001169461,0.000912939,0.000950796,0.000921827,0.001022908,0.000962499,0.001025426,0.000889725,0.001048422,0.001041751,0.001173613,0.001236542,0.001341707,0.001352483,0.001325107,0.001106138,0.001715168,0,0,0,0,0 +PROGRAMS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000470625,0.000392634,0,0,0,0.000803066,0.000803154,0.000802422,0,0,0,0.00055841,0.000595504,0.000595482,0,0,0,0,0,0,0,0,0,0.00052741,0.000525925,0.00052534,0,0,0,0.000643501,0.000697915,0.000696631,0,0,0,0.000737628,0.00075527,0.000707824,0,0,0,0,0.000786902,0.000830438,0.000818537,0,0,0,0.00077235,0.00082047,0.000777426,0,0,0,0.000827087,0.000832336,0.000906158,0.000768302,0.000687285,0,0,0,0,0.00038959,0.000418308,0,0,0.000638681,0.000717489,0.000520815,0.000432165,0.000342196,0,0,0.000567652,0.000609057,0.000413236,0,0,0,0,0.000391278,0.000398645,0.000458313,0,0,0,0.000425683,0.000621826,0.000618381,0.000483022,0,0,0,0,0,0,0,0,0,0.000365872,0,0,0,0,0.000389317,0.000417377,0,0,0,0,0,0,0,0,0,0,0.000298797,0.000440773,0.000641725,0.000706984,0.000727816,0.000837841,0.000968867,0.001109632,0.001119463,0.001047368,0.000889949,0.0009589,0.000944779,0.000974581,0.000945164,0.000891813,0.000783074,0.000650769,0.000700955,0.000702146,0.000784392,0.000820763,0.000818038,0.000673187,0.000644413,0.000630698,0.00073579,0.00073935,0.000838743,0.000641125,0.000670188,0.000724914,0.00083317,0.000887426,0.000902386,0.000724503,0.000784884,0.000856595,0.000996326,0.000981829,0.000936222,0.000813274,0.000830734,0.000814993,0.00084885,0.000879723,0.000921685,0.000809642,0.000763151,0.000782565,0.000824818,0.000870422,0.000918154,0.000978728,0.000873686,0.000832186,0.00083844,0.001014775,0.001108853,0.00127971,0.001030501,0.001040774,0.001108051,0.001110602,0.001135551,0.001088164,0.000984479,0.000866469,0.000865024,0.000954745,0.001009965,0.00108701,0.000974001,0.00092401,0.000774028,0.000893359,0.000912217,0.001044512,0.000793037,0.00079982,0.000767947,0.000916162,0.000907306,0.000991094,0.000795619,0.000769475,0.000856681,0.000968202,0.001021361,0.000991261,0.0010393,0.001053329,0.001030236,0.000974676,0.000944976,0.000992288,0.000952769,0.001030416,0.00094264,0.000987487,0.001023987,0.001078749,0.001083214,0.000930021,0.000779178,0.000949141,0.001015019,0.00118335,0.00111818,0.000988355,0.000803464,0.000977048,0.001018026,0.001120922,0.001144736,0.000985053,0.001026879,0.001117737,0.001165173,0.001185434,0.001180333,0.001159759,0.001041794,0.001079493,0.00111069,0.001192162,0.00117478,0.001091469,0.001025402,0.001032092,0.001132894,0.001207074,0.001296736,0.001035871,0.0009079,0.00091894,0.00105901,0.001069036,0.001176539,0.000998324,0.00097919,0.001029001,0.001238085,0.001299172,0.001410733,0.001220122,0.001158672,0.001070856,0.0011566,0.001165997,0.001197748,0.001067868,0.001101455,0.001111516,0.001204876,0.001201453,0.001247892,0.001060971,0.001089499,0.001072565,0.001175903,0.001167686,0.001229992,0.001259083,0.001199658,0.001053177,0.001139343,0.001132293,0.001201791,0.000891495,0,0.000896767,0.001079046,0.001126804,0.001183179,0.001066192,0.000935399,0.000999661,0.001023947,0.001017139,0.001314962,0,0,0,0,0 +COMPUTATIONAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000380715,0.000378879,0.000378553,0,0,0,0.000310241,0.000340304,0.000339926,0,0,0,0.000335739,0.000334999,0.000334383,0,0,0,0.000357638,0.000333207,0.000398151,0,0,0,0,0.000393451,0.000393365,0.000356798,0,0,0,0.000328249,0.000324372,0.000388713,0,0,0,0.000516929,0,0,0,0,0,0,0,0.000502857,0,0.00034859,0,0,0,0.000538117,0.000416652,0.000316921,0.000342196,0,0,0,0,0,0,0,0,0,0.000426849,0.000498306,0.000534698,0,0,0,0.000354736,0.000345459,0.000541084,0,0,0,0.000723644,0.000655451,0.000624454,0,0,0,0.000569638,0.000475633,0.000466038,0,0,0,0.000622907,0.000660847,0.00078125,0.000602682,0,0.000647818,0.000858993,0.001038792,0.000918652,0.000766424,0.000759001,0.000625469,0.000473096,0.000555048,0.000616056,0.000662798,0.000541196,0.000546418,0.000529647,0.000619058,0.000516675,0.000506791,0.000503745,0.000501578,0.00066619,0.000789604,0.000909631,0.000876075,0.000670688,0.000323413,0.000394861,0.000649542,0.000718316,0.000746148,0.000595507,0.000484053,0.000518674,0.000558795,0.00064829,0.000674955,0.000624439,0.000503249,0.000423437,0.000530893,0.00060422,0.000650234,0.000692854,0.000697382,0.000650251,0.000734515,0.000749212,0.000775962,0.000697577,0.000675871,0.000673332,0.000723306,0.000774163,0.000864897,0.000891676,0.000909883,0.000740199,0.000713841,0.000815737,0.000881643,0.000892036,0.000701597,0.000578747,0.0007668,0.000843956,0.000885871,0.000811809,0.000671068,0.00067195,0.000842098,0.000932556,0.000966438,0.00096246,0.000899754,0.000786284,0.000662873,0.000844428,0.000823513,0.000886556,0.000723311,0.000609809,0.000702796,0.000880457,0.000973727,0.000978896,0.00083561,0.000617436,0.000639032,0.00074703,0.00086924,0.000910089,0.000945229,0.000779578,0.000728976,0.000776087,0.000887697,0.000937643,0.000909067,0.00068998,0.000738279,0.000818362,0.001044838,0.001100566,0.001132706,0.000809578,0.000728463,0.000797512,0.000968283,0.001140825,0.00115219,0.001085494,0.000848513,0.000914036,0.001052759,0.001078405,0.001072277,0.000807934,0.000803633,0.000840093,0.001106038,0.001142592,0.001216176,0.001006543,0.000823301,0.00081305,0.000969682,0.0011396,0.001268404,0.001134226,0.00081783,0.000962393,0.001126926,0.001169065,0.00114763,0.001000676,0.000873533,0.000918899,0.001163952,0.00119288,0.001183662,0.00104632,0.000848028,0.000939078,0.000960892,0.001155943,0.001210949,0.0012063,0.000991952,0.000891992,0.001084394,0.00122646,0.00127352,0.001180859,0.000823642,0.000823143,0.001143326,0.001304704,0.001369217,0.001375671,0.00115594,0.001161557,0.001202809,0.00132505,0.001338267,0.001291926,0.000932698,0.000966022,0.001106936,0.001332534,0.001382364,0.001379288,0.001017583,0.001110439,0.00130672,0.001491191,0.001542349,0.001510007,0.000938831,0.000950132,0.000955456,0.001290412,0.001365677,0.001446598,0.001228526,0.000973351,0.001055665,0.001032551,0.001144281,0.00125779,0,0,0,0,0 +PI,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000221432,0.000337861,0.000738825,0.000899891,0.000623796,0.000491432,0.000469029,0.000516727,0.000543801,0.000508783,0.000379557,0.000372801,0.000349566,0.000340741,0.000269545,0.000266069,0.000343163,0.000369791,0.00035994,0.00035775,0.000343626,0.000392948,0.000319863,0.000328344,0.000375271,0.000400773,0.000433033,0.000492042,0.000509888,0.000451696,0.00040766,0.000409975,0.000486468,0.000612741,0.000530504,0.000427871,0.000417962,0.000423387,0.000460842,0.00039711,0.000381575,0.000339185,0.000416192,0.000410365,0.000482181,0.000624421,0.000637178,0.000604325,0.000524025,0.000511501,0.000501262,0.000502,0.000512594,0.000534058,0.00052136,0.00052193,0.000492643,0.000480638,0.000591337,0.000681812,0.00071644,0.00065255,0.000636902,0.000647711,0.000762262,0.000738033,0.000782321,0.000751261,0.000749068,0.00063482,0.00063443,0.000682321,0.00085012,0.000792991,0.000787631,0.000584287,0.000692958,0.000709793,0.000856681,0.000784651,0.000794678,0.000655909,0.000666884,0.000715504,0.001011697,0.000985106,0.001015907,0.000780101,0.000823347,0.000828485,0.000917761,0.000788373,0.000833298,0.000764515,0.000905339,0.000796265,0.001066602,0.00090272,0.00090515,0.000741196,0.000919967,0.001053103,0.001278454,0.001145234,0.001091431,0.000936186,0.000973541,0.00116498,0.001403567,0.00138863,0.001332997,0.001210325,0.001073365,0.001233743,0.001392252,0.001373083,0.001257018,0.001207933,0.001239013,0.001438024,0.001476183,0.001364184,0.001448009,0.001374697,0.001378081,0.001252893,0.001437925,0.001530236,0.001413771,0.001444351,0.001239037,0.001291449,0.001256508,0.001461819,0.001404713,0.001408568,0.00133096,0.001470283,0.001433053,0.001524948,0.001413719,0.001401886,0.00123865,0.001086217,0.001194674,0.001419277,0.001395065,0.001400401,0.001362083,0.001406656,0.0013626,0.001325291,0.001355327,0.001389051,0.00135893,0.001289563,0.001247699,0.001464603,0.001342394,0.001351075,0.001174077,0.001028244,0.001011084,0.001210166,0.001344454,0.001344564,0.001309002,0.001000056,0.001259106,0.001506492,0.001871499,0.002237705,0.002801441,0,0,0,0,0 +STRUCTURES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0008726,0.000872185,0.00087184,0,0,0,0,0.001332149,0.001332149,0.001332642,0,0,0,0.00114423,0.001145016,0.001143118,0,0,0,0.00152548,0.001525626,0.001525189,0,0,0,0.001081234,0.001081132,0.001080827,0,0,0,0.001098642,0.001098125,0.001099376,0,0,0,0.001058587,0.001058703,0.001057738,0,0,0,0.001154047,0.001153789,0.001153746,0,0,0,0.000830651,0.000826646,0.000825934,0,0,0,0.001023795,0.001020913,0.001019778,0,0,0,0.001091153,0.00106083,0.001086745,0,0,0,0.001162323,0.001132905,0.001105974,0,0,0,0,0.001289646,0.001289364,0.001322252,0,0,0,0.001139216,0.00110668,0.00116614,0.001117214,0.001222594,0,0.000982166,0.001092441,0.000906158,0.001207332,0.001057362,0.001536376,0.000881679,0.001391062,0.00128,0.001519402,0.001359501,0.001315982,0.001244491,0.001045114,0.001210762,0.001180515,0.001094817,0.001129248,0.001013685,0.001418663,0.00117585,0.001182287,0.000953622,0.000972684,0.00122524,0.001688697,0.001584427,0.0014584,0.001395256,0.001298552,0.001197318,0.001355367,0.001260807,0.001631784,0.001796386,0.002087037,0.001642274,0.001124917,0.001056354,0.001599634,0.0015658,0.001623579,0.001363714,0.001584786,0.001555303,0.001668226,0.001829358,0.001631131,0.001342357,0.001099237,0.001119445,0.001284747,0.001321693,0.0015625,0.001356034,0.00126645,0.001341909,0.001552795,0.001688038,0.001362139,0.001164965,0.001089001,0.001501126,0.001742984,0.001812067,0.001694154,0.00178219,0.001996827,0.001621041,0.001253068,0.000992828,0.00116867,0.001283871,0.001964604,0.001844039,0.001610969,0.001239623,0.001177309,0.001072798,0.00095709,0.000966294,0.001046842,0.001141273,0.00113609,0.001126683,0.001071912,0.001073893,0.001063543,0.001049794,0.001087776,0.001130491,0.001208234,0.001085776,0.000987004,0.00106605,0.001194669,0.001257527,0.001282338,0.001065445,0.001022641,0.001005125,0.001067155,0.001097959,0.001262064,0.00135917,0.001300026,0.00105134,0.001072912,0.001065882,0.001174612,0.00114892,0.00113325,0.001075195,0.001115396,0.00111568,0.001086917,0.0009226,0.00101559,0.00107986,0.001096316,0.001075113,0.001090288,0.00102741,0.001091587,0.001033483,0.001124704,0.00108791,0.001124138,0.001011262,0.001039714,0.001053494,0.001087164,0.001034207,0.001041172,0.000978717,0.000982471,0.000992528,0.00105876,0.001049435,0.00106118,0.000995836,0.001005458,0.001032758,0.00119226,0.00121412,0.001255199,0.001208457,0.001257591,0.001112648,0.001068612,0.001090569,0.001130839,0.00111784,0.001027752,0.001055227,0.001177223,0.001167147,0.001169208,0.001040654,0.000939001,0.001070048,0.001156876,0.001223999,0.001169484,0.001082361,0.000903058,0.000973909,0.001193287,0.001142285,0.001146017,0.001017809,0.00090704,0.000847433,0.001048048,0.001102475,0.001088465,0.000996803,0.000707467,0.000754238,0.00089883,0.000981071,0.000961388,0.000925115,0.00079488,0.000783837,0.00089942,0.001035332,0.001074108,0.001060421,0.00086883,0.000823514,0.000814873,0.000950696,0.000934714,0.000918649,0.000754435,0.000784198,0.000969009,0.001029813,0.000971968,0.000958818,0.00087794,0.000843265,0.000919152,0.001081577,0.001013331,0.000983809,0.000833424,0.000778801,0.000906242,0.001052353,0.000987649,0.000976228,0.000866441,0.000820167,0.000905205,0.001046575,0.000921161,0.000909305,0.000787396,0.000656585,0.000713258,0.000855222,0.000940956,0.000931607,0.000847422,0.000569752,0.000756306,0.00094916,0.000909433,0.00089368,0.000804553,0.000657445,0.000645373,0.00080756,0.000913917,0.000929553,0.000871196,0.000725492,0.000674202,0.000789648,0.000791623,0.001195138,0.001029101,0,0,0,0,0 +WORKSHOP,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000372273,0.00037219,0.000372176,0,0,0,0.000519157,0.000516653,0.000516209,0,0,0,0.00068253,0.000680609,0.000710754,0,0,0,0.000531587,0.000530415,0.00052944,0,0,0,0.000692923,0.000710843,0.000707824,0,0,0,0,0.001027345,0.001048974,0.001133359,0,0,0,0.001776405,0.001755424,0.001731541,0,0,0,0.003101577,0.003381366,0.002718475,0.001481725,0.00137457,0.001536376,0.001587022,0.001651887,0.001417143,0.001285647,0.001254924,0.001754642,0.001866736,0.002380538,0.003139013,0.002881844,0.002420122,0.001505663,0.001309343,0.001418663,0.001378583,0.00161221,0.001557583,0.001702197,0.001378395,0.001805159,0.001493889,0.002454381,0.002425088,0.002558912,0.001436782,0.000886201,0.001170749,0.001809152,0.0021073,0.002087037,0.001642274,0.001124917,0.001515639,0.002247105,0.002439735,0.002414554,0.002556963,0.00264131,0.002871329,0.001871669,0.00230499,0.001980659,0.002237262,0.001648855,0.002182917,0.002141244,0.002330354,0.00234375,0.002410728,0.002422774,0.003331637,0.003898507,0.004025321,0.00376964,0.003678837,0.003597004,0.0035339,0.002838575,0.002252841,0.001694154,0.001841105,0.00192218,0.003151012,0.002867847,0,0.00233734,0.002162308,0.002216476,0.002773434,0.001568575,0.001021515,0.000840935,0.000870829,0.00116011,0.001301539,0.001261107,0.000960591,0.00083768,0.000790917,0.000883857,0.001003369,0.001032108,0.000873117,0.000829255,0.000889605,0.001208234,0.001230547,0.00105707,0.000918935,0.000819398,0.000866978,0.001075599,0.001325027,0.00128045,0.001100755,0.000980587,0.000879775,0.001016535,0.001366597,0.001457429,0,0.000901993,0.000815474,0.000846664,0.001418801,0.001402935,0.001179389,0.000847519,0.000743786,0.000843817,0.00128743,0.001332788,0.0010224,0.000798449,0.000730912,0.000835437,0.001123648,0.001391707,0.001089988,0.000790367,0.000702136,0.00075323,0.001545732,0.001624553,0.001427543,0.00101655,0.000795822,0.000709245,0.000735571,0.001177271,0.001176547,0.00090119,0.000710494,0.000636991,0.000847779,0.001186723,0.001117275,0.00093827,0.000742549,0.000726401,0.000693965,0.001065103,0.001018862,0.000867128,0.00076855,0.00072384,0.000756186,0.000776588,0.000901498,0.000844846,0.000823924,0.000758498,0.000770739,0.000905957,0.000994559,0.000991016,0.000931897,0.000826685,0.000947517,0.001049007,0.001343828,0.001003941,0.000897746,0.000837539,0.000891784,0.001236677,0.001355893,0.001182747,0.001016244,0.000949071,0.000953505,0.001270554,0.001330367,0.001178549,0.000913551,0.000871083,0.000916818,0.000947955,0.001269736,0.00114036,0.001101574,0.000997831,0.001044649,0.001272819,0.001237951,0.000999396,0.000878255,0.000879284,0.000973899,0.0010846,0.001418851,0.001194737,0.001071764,0.000910643,0.000931444,0.001046584,0.001253215,0.00130511,0.001138848,0.000988789,0.000890257,0.000915297,0.001498603,0.001464411,0.000905872,0.000834767,0.000803274,0.001040275,0.00141832,0.001349221,0.00121975,0.001008417,0.000958295,0.001032197,0.001613198,0.001626985,0.001273735,0.000918163,0.000797852,0.000849119,0.001720981,0.001556536,0.001230564,0.000904062,0.000833547,0.00086838,0.001472677,0.001539932,0.001126828,0.000709156,0.000614072,0.000687244,0.001314703,0.001618531,0.001624099,0.001449874,0.000724711,0,0,0,0,0,0 +CONFERENCE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005959476,0.005966587,0.005977286,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002516537,0.00251708,0.002517623,0,0,0,0.002585599,0.002586207,0.002583777,0,0,0,0,0,0,0,0,0,0,0.000740083,0.000740083,0.000740357,0,0,0,0.000858173,0.000858762,0.000857339,0,0,0,0.003909043,0.003909416,0.003908298,0,0,0,0.004089883,0.004089499,0.004088346,0,0,0,0.003295927,0.003294376,0.003298127,0,0,0,0.002920241,0.002920561,0.002917898,0,0,0,0.003499367,0.003498586,0.003498455,0,0,0,0.003564877,0.003547687,0.003544635,0,0,0,0.003443676,0.003464918,0.003491965,0,0,0,0.00391696,0.003880405,0.003956865,0,0,0,0.002816398,0.002865584,0.002964012,0,0,0,0,0.002666725,0.002644289,0.002518574,0,0,0,0.002297741,0.002346925,0.002296942,0.001303417,0.001059581,0,0.005014216,0.005410186,0.004023343,0.001426847,0.001215966,0.001897876,0.001939693,0.00312989,0.003748571,0.005103631,0.004949977,0.004825267,0.003681618,0.004006271,0,0.005277595,0.006021493,0.00636485,0.005701977,0.004045818,0.003770831,0.003725996,0.004927048,0.005187647,0.005768838,0.00372678,0,0.004659766,0.004916617,0.004277585,0.004310345,0.004222489,0.004773055,0.004398723,0.004421874,0.003632991,0.003719268,0.00414174,0.004776558,0.00472273,0.003750637,0.002955747,0.002500142,0.002509245,0.004187354,0.003295764,0,0.00252437,0.002405056,0.003969466,0.005541252,0.005061123,0.004034642,0.003125,0.003214304,0,0.004581,0.004592309,0.004382405,0.00323112,0.0026365,0.002871003,0.00425319,0.003710067,0.002938488,0.002015016,0.001973665,0.001772884,0.002058175,0.002209017,0.002674796,0.002558772,0.002584634,0.001847063,0.001932552,0.001289987,0.001071211,0.000930951,0.001001978,0.001134732,0.001384364,0.001239681,0.001006333,0.000869652,0.000897865,0.001028033,0.001067482,0.00101901,0.000971727,0.0009088,0.0009063,0.001019794,0.001302932,0.00133733,0.001189712,0.000984655,0.000934455,0.00094988,0.001135184,0.001151546,0.001060061,0.000871982,0.000770683,0.000736587,0.001028661,0.001355409,0.001277501,0.001009715,0.000838538,0.000889533,0.001422656,0.001543515,0.001181606,0.000917137,0.000815921,0.000869936,0.001192715,0.001168624,0.00107986,0.000883948,0.000793993,0.000779742,0.000819327,0.001104867,0.001017079,0.000863383,0.00070347,0.000621985,0.000711344,0.000828522,0.001036922,0.000903273,0.000795822,0.000682294,0.000768263,0.001197033,0.00109041,0.00088875,0.000762908,0.000760417,0.000864004,0.001005458,0.001041003,0.000905401,0.000726126,0.000623425,0.00067203,0.000994524,0.001106254,0.000979064,0.000766404,0.000643985,0.000580291,0.000970013,0.001140632,0.001003751,0.000746177,0.000605197,0.000608478,0.000980306,0.001019093,0.000892882,0.000684267,0.000567657,0.000476768,0.000567832,0.001015708,0.001100657,0.000834747,0.000675271,0.000516915,0.000876877,0.001245441,0.00112485,0.000774654,0.000643588,0.000543623,0.000975604,0.001263122,0.001188494,0.000874503,0.000695268,0.000680354,0.000780126,0.00134772,0.001244403,0.000904484,0.000674042,0.0006151,0.000811359,0.001296901,0.001252031,0.000966162,0.000780573,0.000633971,0.000818235,0.001241951,0.001213444,0.001074761,0.000755023,0.000700924,0.000785682,0.001414646,0.001473788,0.001142604,0.000775014,0.000642041,0.000706416,0.001640203,0.001698027,0.0009529,0.000661907,0.000546726,0.000740327,0.001897209,0.001717191,0.001336454,0.000725747,0.000647626,0.000747093,0.001704511,0.001706881,0.001464795,0.000966671,0.000846004,0.000843181,0.002168811,0.001920276,0.001480392,0.0009234,0.000843142,0.000812112,0.001919739,0.002043681,0.001544693,0.000881491,0.000659313,0.000690923,0.001422926,0.002223527,0.002399747,0.002460914,0.001792707,0.001886685,0,0,0,0,0 +CELL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003090235,0.003095336,0.003094059,0,0,0,0.001933216,0.001934916,0.001935938,0,0,0,0.001581823,0.001582165,0.001582506,0,0,0,0.001645381,0.001645768,0.001644222,0,0,0,0.001269237,0.001268633,0.00126813,0,0,0,0,0.001924216,0.001924216,0.001924928,0,0,0,0.001201442,0,0,0,0,0,0.001954522,0.001954708,0.001954149,0,0,0,0.000893193,0.000893109,0.000892857,0,0,0,0.001883387,0.001882501,0.001884644,0,0,0,0.001788648,0.001788843,0.001787212,0,0,0,0.001563547,0.001563198,0.00156314,0,0,0,0.001557471,0.00154996,0.001548627,0,0,0,0.001365061,0.001361218,0.001359703,0,0,0,0.001482849,0.001451662,0.001448993,0,0,0,0.001497608,0.00151054,0.001504125,0,0,0,0,0.001289646,0.001311217,0.00134324,0,0.002228944,0.002398604,0.001679861,0.001602778,0.001731541,0.002141328,0.002037656,0.001642755,0.001550788,0.00156063,0.001159883,0.001371968,0.001744647,0.002530502,0.00167519,0.001130238,0.001508571,0.001363566,0.001498937,0.001121022,0.001140783,0,0.000717489,0.000937467,0.001411738,0.001471444,0.001436053,0.000998319,0.001013664,0.001361422,0.001907244,0.002188539,0.00183786,0.000757002,0.000814848,0.000818127,0.001594578,0.001909636,0.002298851,0.001511755,0.001305836,0.001454416,0.001623657,0.001700549,0.001400763,0.001073784,0.000826712,0.001561548,0.002148423,0.002622705,0.002556963,0.001782884,0.001615122,0.001220653,0.001719596,0.001475785,0.001845741,0.000854962,0.001231389,0.001635132,0.001912977,0.001822917,0.001506705,0.001211387,0.001249364,0.001123299,0.001103717,0.001393817,0.001287593,0.001155001,0.000750563,0.000746993,0,0.000898415,0.000957375,0.001063731,0.001129264,0.001149722,0.001226435,0.001045652,0.00094601,0.000856366,0.000663854,0.000884216,0.001054646,0.001241268,0.001361326,0.001645906,0.001392252,0.001285595,0.00115957,0.001315136,0.001328143,0.001404142,0.001282261,0.00119976,0.001275777,0.001374137,0.001476316,0.001496436,0.001251228,0.001215478,0.001172655,0.001177455,0.001226856,0.001218081,0.001193299,0.000930976,0.000984779,0.001001048,0.001039894,0.001101438,0.001114074,0.001043519,0.000906679,0.00105424,0.001095536,0.001174612,0.000909883,0.001202106,0.00125033,0.001418081,0.001285596,0.001330017,0.001059411,0.001048979,0.000903516,0.001137686,0.001132708,0.00130632,0.001297918,0.001455449,0.001321473,0.001461603,0.001398932,0.001458907,0.000961276,0.001241158,0.001091372,0.001013608,0.000982437,0.001031242,0.001119702,0.001197033,0.001031681,0.001064289,0.001090201,0.001184606,0.001283838,0.001401976,0.001280125,0.001086182,0.001060449,0.001109084,0.001198486,0.001389125,0.00117233,0.001093984,0.000957468,0.001000753,0.00102907,0.001374186,0.001176692,0.001125579,0.00099838,0.000997602,0.000981367,0.00107393,0.001115341,0.001020041,0.000976369,0.000919274,0.000952333,0.000930423,0.001070046,0.000971248,0.000916812,0.000824016,0.000844792,0.000812243,0.001015016,0.00091335,0.000826678,0.00077631,0.000740867,0.000870412,0.000985053,0.000887641,0.000793154,0.000690473,0.00067102,0.000746929,0.000881817,0.000877516,0.000766277,0.000686495,0.000661487,0.000618661,0.000784214,0.000803727,0.000768371,0.00070692,0.000666747,0.00053592,0.000758666,0.00072208,0.000784096,0.000749747,0.000758554,0.000834291,0.001064171,0.000963466,0.000848738,0.000795681,0.000814057,0.000843921,0.001017162,0.001069302,0.001090901,0.000945085,0.000936353,0.000874622,0.001124748,0.000917471,0.000824461,0.000704325,0.000704383,0.000742615,0.00111315,0.001003791,0.00088656,0.000825236,0.000869411,0.000923767,0.001160607,0.001174951,0.001160909,0.000915879,0.000841223,0.00081799,0.001464787,0.001228001,0.001140913,0.000870683,0.000848722,0.000784371,0.000843735,0.000933167,0.000893255,0.00084325,0.000940853,0.000628895,0,0,0,0,0 +AVAILABLE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000396,0.000344008,0.000323697,0.000489748,0.000590387,0.000721713,0.000746478,0.00120212,0.000981785,0.000922746,0.000627391,0.000658828,0.001041072,0.001209689,0.000999285,0.000872429,0.000862255,0.000881321,0.000938964,0.00096235,0.000985623,0.0009057,0.000884573,0.000872993,0.000908931,0.000955284,0.000903749,0.000823811,0.000803403,0.000770355,0.000864608,0.000909984,0.000996143,0.000884822,0.00085727,0.00076883,0.000821367,0.000786492,0.000865092,0.000787416,0.000794858,0.000768924,0.000844436,0.000828128,0.000795756,0.000786468,0.000794271,0.000800647,0.000793078,0.000844341,0.000823399,0.000793649,0.000764281,0.000815921,0.000829754,0.000901552,0.000765171,0.000756893,0.000837061,0.000920154,0.000973833,0.000998798,0.000974726,0.000874907,0.000863383,0.000850305,0.000901593,0.000968966,0.000880508,0.000887776,0.000910629,0.000969193,0.000961736,0.000937852,0.000906245,0.00089073,0.000877693,0.000893359,0.000924985,0.000999893,0.000858179,0.000886399,0.000877013,0.000978335,0.000969927,0.000949217,0.000753913,0.000799316,0.000870113,0.000995037,0.001032953,0.001034002,0.000860309,0.000816093,0.000806444,0.00085142,0.000853453,0.000904917,0.000834361,0.000911522,0.000855563,0.000972326,0.000986511,0.001000491,0.000985154,0.00093838,0.00087317,0.000943338,0.00099051,0.001072277,0.001092326,0.001045485,0.001013783,0.001135257,0.001141109,0.001221949,0.001196301,0.001070473,0.000953531,0.000984325,0.001051693,0.001118021,0.001171111,0.001123766,0.001050007,0.001070497,0.00105932,0.001121652,0.001086883,0.001045024,0.001003111,0.001058952,0.001074427,0.001129349,0.00110374,0.001072345,0.000931596,0.000974876,0.001010214,0.001024372,0.001035672,0.001025937,0.000936305,0.000906948,0.000967476,0.001019269,0.001090589,0.001130442,0.000995611,0.000977571,0.001022395,0.001045409,0.001073678,0.000990806,0.001018049,0.00101834,0.001084702,0.001095706,0.001137432,0.001189244,0.001130173,0.001147372,0.0011046,0.001108834,0.001076455,0.001125437,0.001099458,0.001116331,0.001115708,0.001124616,0.00110773,0.001141324,0.001116854,0.00111509,0.001107268,0.001126804,0.001145652,0.00112832,0.001109531,0.001050064,0.001084179,0.000813711,0.000628895,0,0,0,0,0 +PROBLEM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00036503,0.00036507,0.000364737,0,0,0,0.000446728,0.000446628,0.000446611,0,0,0,0.000519157,0.000516653,0.000516209,0,0,0,0,0,0,0,0,0,0.000503609,0.000530415,0.00052944,0,0,0,0.000648219,0.000666415,0.000663585,0,0,0,0,0.000568318,0.000546341,0.000545691,0,0,0,0.000598571,0.000610582,0.000600739,0,0,0,0,0,0.000434956,0.000713423,0.000793021,0.000903751,0,0,0,0,0,0,0,0,0,0.00034721,0.000489787,0.000513294,0.000464606,0,0.000405466,0.00057323,0.000508598,0.000486342,0,0,0,0,0.000498306,0.000687469,0.000670498,0,0,0.000532104,0.000621826,0.000772977,0.000724533,0.000562458,0,0.000457038,0.000728279,0.000790975,0.000568214,0,0,0,0,0,0,0,0,0,0.000417377,0.000483631,0,0,0,0,0,0.000506842,0.000827738,0.000858001,0.000844383,0.000971091,0.001501894,0.001694154,0.001634901,0.001418307,0.001074623,0.001033458,0.001179714,0.001427007,0.001655517,0.001393693,0.001017909,0.001386887,0.001576447,0.001516052,0.001421654,0.001123856,0.001049119,0.001071329,0.001356262,0.001362029,0.0013754,0.000971616,0.000903994,0.001024249,0.001240853,0.001386069,0.001347526,0.001163895,0.000775555,0.000856013,0.001153466,0.001206719,0.001216632,0.001030899,0.000898849,0.000919518,0.001121101,0.00129066,0.001388285,0.001252886,0.000932108,0.000938584,0.001206189,0.001324264,0.001345944,0.001176756,0.000998558,0.001044312,0.001137268,0.001168366,0.001187814,0.001115044,0.000785788,0.000734564,0.000972865,0.001125275,0.001154649,0.001064972,0.000944177,0.000844586,0.001135556,0.001152885,0.001224065,0.001055663,0.000953586,0.000776536,0.001112679,0.001350497,0.001352054,0.001263875,0.000901074,0.000652157,0.000843746,0.001302026,0.00139187,0.001390315,0.000987723,0.000657088,0.000970916,0.001253517,0.001221159,0.001116042,0.000771737,0.000609547,0.000788659,0.001305916,0.001427615,0.001487606,0.001180308,0.000811231,0.000947047,0.001199735,0.001238256,0.001238994,0.001029733,0.000710446,0.000919071,0.001107118,0.001155269,0.001106656,0.001010123,0.00086429,0.000861053,0.001069326,0.001132338,0.001140946,0.001004993,0.000751917,0.000761738,0.000984244,0.000987025,0.001010612,0.000913094,0.000812659,0.000717889,0.001021906,0.001090892,0.001106835,0.001020531,0.000839143,0.000835826,0.001091077,0.001120383,0.00110602,0.000923113,0.000755578,0.000637732,0.000952336,0.000927092,0.000979513,0.000842798,0.00083897,0.000674775,0.000892935,0.000923935,0.001009554,0.001009245,0.000908693,0.000705199,0.000769057,0.000883476,0.000953913,0.00096193,0.000913198,0.000665521,0.000683601,0.000811815,0.000834767,0.000842189,0.000779184,0.000548613,0.000623095,0.00080752,0.000866298,0.000871069,0.000804562,0.000595709,0.000655152,0.000873418,0.000938618,0.00095769,0.000827912,0.000541617,0.000643752,0.000850714,0.000878277,0.000906474,0.000839826,0.000725819,0.000695569,0.000753566,0.000853869,0.000872248,0.000860895,0.000735512,0.000634018,0.000627238,0.000628135,0.000902711,0.001143445,0,0,0,0,0 +NOVEL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000388365,0,0,0,0,0,0,0,0.00055063,0.000601546,0.000561649,0.000389547,0,0.000367884,0.000429,0.000406555,0.000373497,0.000522398,0.000577552,0.000603883,0.000615844,0.00050999,0.000503811,0.000455533,0.000725805,0.000895331,0.001158612,0.001209689,0.00082971,0.000574257,0.000514037,0.000487874,0.00063081,0.000595553,0.000627493,0.000503167,0,0.000467586,0.000614312,0.000637925,0.000584163,0.00050538,0.000509087,0.00054855,0.000561625,0.000465333,0.000420391,0.000400835,0.000518149,0.000535727,0.000625803,0.000476545,0.000481243,0.000476112,0.000539874,0.000557777,0.000628737,0.000635022,0.000597546,0.000431946,0.000570209,0.000571655,0.000750208,0.000640002,0.000628308,0.000540923,0.000603857,0.000613944,0.000689118,0.000599865,0.000542575,0.000453739,0.000638483,0.000610236,0.000670038,0.000561824,0.000709133,0.000705393,0.000680202,0.000647406,0.000665733,0.000649823,0.000731049,0.000679444,0.000648768,0.000673017,0.000687968,0.000878598,0.000849781,0.000894645,0.000670364,0.000712824,0.000656853,0.000845751,0.000928986,0.000878153,0.000723125,0.000729645,0.000733359,0.00091731,0.001023397,0.000925075,0.000731313,0.000739569,0.000743159,0.000849887,0.000946918,0.000916681,0.000802472,0.000833405,0.000844301,0.000992288,0.001005089,0.000900199,0.00087906,0.000902585,0.000947932,0.000963168,0.000969191,0.000867323,0.000893603,0.000900233,0.00093135,0.000945185,0.000967366,0.001028346,0.001052775,0.001136682,0.001129987,0.001122846,0.001031294,0.001014132,0.00101569,0.00104371,0.00106368,0.001070313,0.001021725,0.000997792,0.001067804,0.001072951,0.001048423,0.001037227,0.001036173,0.001034305,0.00105017,0.001113487,0.001129857,0.001155569,0.001054295,0.001061403,0.001056307,0.001137688,0.001134842,0.001162684,0.001167611,0.001191617,0.001203617,0.001118193,0.001202563,0.001184494,0.001202902,0.001017162,0.001008155,0.001222734,0.001235212,0.0012592,0.001248875,0.001277038,0.001175049,0.001128457,0.001186589,0.001224156,0.00129715,0.001415353,0.00129723,0.001251495,0.001285194,0.001319499,0.001313123,0.001209845,0.00122162,0.001331795,0.001383757,0.001412487,0.001437782,0.001527902,0.001382174,0.001365105,0.001352861,0.001387996,0.001371545,0.001412905,0.00142654,0.001282478,0.001294991,0.001233281,0.00125779,0,0,0,0,0 +DEVELOPING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000284159,0.00024039,0.000272846,0,0,0,0.000366866,0.000324372,0.0002827,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000403354,0.000444855,0.000633553,0.000788146,0.000689292,0.000752365,0.000413236,0.000445813,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000382595,0,0,0,0,0,0,0,0,0,0.000375281,0.000398396,0.000457098,0.000654559,0.000721713,0.00067183,0.000491776,0.000555484,0.000724181,0.000775013,0.000793973,0.000722034,0.000708111,0.000750978,0.000709539,0.000762764,0.00076591,0.00084833,0.000627105,0.000538725,0.000576354,0.000677817,0.000746148,0.000752219,0.00064113,0.000688945,0.000741636,0.000845164,0.00087291,0.000823964,0.000692829,0.000645818,0.000643894,0.000695456,0.000711576,0.000787842,0.000798116,0.000753374,0.000726376,0.000820041,0.000835786,0.000855909,0.000716721,0.000778267,0.00085778,0.000874703,0.000868191,0.000829516,0.00075181,0.000777496,0.000791432,0.000847519,0.000844775,0.000863908,0.000708613,0.00069561,0.000719246,0.000775006,0.00089547,0.000919825,0.000959783,0.000741004,0.000772834,0.000795491,0.00080225,0.00079888,0.000726725,0.000649821,0.000684179,0.000787054,0.000797026,0.000801447,0.000733527,0.000708621,0.000796763,0.000818258,0.000877053,0.000852632,0.00088023,0.00078454,0.000789513,0.000797828,0.000856336,0.000861384,0.000831562,0.000670501,0.000714056,0.000792504,0.000914532,0.000946659,0.000999481,0.000967126,0.0008996,0.000831604,0.000891241,0.000907223,0.000975126,0.000815086,0.000962477,0.0008915,0.000924822,0.000864161,0.000912602,0.000930423,0.000969729,0.000942642,0.000977325,0.000970226,0.000975089,0.000876877,0.000883616,0.000985425,0.001103187,0.001114416,0.001116111,0.00106842,0.001017767,0.000965963,0.001071368,0.001129211,0.001223807,0.001099185,0.00100979,0.00099251,0.001087671,0.001113025,0.001123508,0.001130832,0.001073605,0.001063793,0.001058138,0.001029628,0.001065671,0.001063865,0.001176297,0.001068778,0.001126701,0.001095277,0.001113699,0.001101146,0.001132142,0.001057811,0.000982996,0.001119895,0.001152807,0.001223895,0.001033682,0.000896834,0.000962152,0.001049323,0.001096335,0.001152074,0.0011064,0.001125987,0.001056928,0.001131726,0.001121994,0.001171764,0.001078364,0.001086593,0.001123111,0.001191098,0.001205806,0.001201151,0.001130126,0.001054162,0.001054106,0.00116835,0.001208419,0.0012547,0.001036133,0.001043353,0.001084572,0.001157708,0.001211857,0.001226591,0.001238546,0.000962189,0.000943658,0.000912087,0.001017139,0.000743239,0,0,0,0,0 +IMPACTS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000176688,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000128345,0.000176746,0,0,0,0,0,0,0,0,6.06E-05,6.35E-05,7.58E-05,8.92E-05,8.34E-05,7.89E-05,6.43E-05,6.63E-05,7.67E-05,0.000104461,0.000119101,0.000102581,7.86E-05,9.86E-05,0.00011534,0.000126405,0.000133017,0.000141323,0.000155362,0.00013219,0.000135993,0.000114507,0.000131307,0.00011623,8.88E-05,8.34E-05,0.000100734,0.000109092,0.000121617,9.66E-05,0.00010785,0.000103912,0.000106286,0.000116967,0.000105029,0.000104097,7.75E-05,7.54E-05,8.63E-05,0.000105797,0.0001326,0.000168383,0.000141904,0.000132753,0.000124111,0.00012479,0.000123206,0.000119648,0.000114205,0.000109363,0.000120412,0.000126812,0.000138853,0.000138424,0.000126715,0.000163351,0.000172122,0.000183003,0.000173056,0.000165503,0.000118574,0.000115501,0.000107811,0.00015957,0.000175917,0.000219043,0.000164272,0.000144297,0.000137454,0.000191209,0.000198995,0.000241293,0.000141158,0.000149206,0.000146263,0.000159936,0.00016486,0.000185759,0.00017033,0.000195483,0.000223792,0.000245565,0.000250545,0.00023403,0.000256091,0.000254773,0.000232205,0.000226404,0.000220449,0.000234772,0.000198399,0.000231983,0.000215227,0.000320801,0.000324536,0.00042827,0.000661428,0.000839816,0.000873177,0.000970634,0.001007646,0.0010757,0.001126173,0.00117225,0.001181035,0.001273114,0.00130103,0.001408416,0.001521523,0.001651656,0.001481236,0.00142624,0.001420469,0.001476054,0.001644692,0.001632738,0.001473706,0.001435812,0.001495845,0.001640646,0.001818301,0.001759886,0.001430442,0.001389398,0.001435532,0.001460199,0.001616998,0.001784239,0.001705363,0.001565095,0.001597821,0.001638676,0.001742424,0.001722803,0.001541238,0.001514926,0.001562257,0.001583488,0.001621765,0.001781615,0.001912215,0.001855036,0.001821944,0.001820402,0.00185094,0.002137161,0.0020715,0.001907569,0.001773205,0.001761561,0.001842444,0.002187568,0.002218132,0.00185374,0.001720027,0.0016076,0.001684691,0.002053858,0.001934326,0.001987208,0.001765384,0.001743892,0.001664397,0.001869844,0.001951167,0.002074927,0.001716616,0.001716422,0.001029101,0,0,0,0,0 +NSF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000341265,0.000340304,0.000339926,0,0,0,0.00081137,0.000809581,0.000808092,0,0,0,0.000916447,0.000888553,0.000796302,0,0,0,0,0.000939911,0.000917852,0.000902489,0,0,0,0.000289631,0.000305291,0.001519515,0.006703286,0.005705436,0,0,0,0.000434956,0.000658545,0,0,0.001058014,0.000869414,0.001234286,0.000896057,0.000766898,0.000633621,0.000674099,0.000987052,0.001748879,0.001249957,0.001037195,0,0,0,0.005392694,0.004693322,0.005403859,0.001661668,0.002246273,0,0,0.00483762,0.004650854,0.005346981,0,0.003127769,0.002701729,0.007520397,0.005492797,0.006067867,0,0.002198701,0.002020852,0.00757922,0.005971888,0.006827359,0,0,0,0,0,0,0,0,0,0.001051156,0.001113005,0.001227679,0,0,0,0.00036342,0.000389547,0.000633553,0.000705111,0.000726001,0.00081311,0.00109559,0.000718297,0.000423538,0.000147288,0,0.000728558,0.00065883,0.000759222,0.000615089,0.000709507,0.000923532,0.001298203,0.000969004,0.000737148,0.000743813,0.000802631,0.000899085,0.000859805,0.00101011,0.001171006,0.001159536,0.001116735,0.001049972,0.001089922,0.001165706,0.001041577,0.000998288,0.000870525,0.000986539,0.001103011,0.001270311,0.001061786,0.001112041,0.001024425,0.001173381,0.000960838,0.00124894,0.001112963,0.001182055,0,0.001133563,0.001166064,0.001130965,0.001016703,0.001141854,0.0011186,0.001352519,0.001380246,0.001328341,0.000977651,0.001088154,0.001059575,0.001185363,0.000855948,0.000884815,0.000970883,0.001208016,0.001316464,0.001345139,0.001160063,0.001019877,0.00096422,0.000891565,0.000877002,0.000893985,0.001284265,0.000912999,0.000830958,0.000667893,0.000823513,0.000883719,0.001105399,0.001165978,0.000961205,0.000803054,0.000831628,0.000900868,0.000993808,0.000878005,0.000781268,0.000702208,0.00085399,0.000905914,0.001082825,0.0008277,0.000786527,0.000785042,0.000900578,0.00095825,0.001034002,0.001192308,0.001117857,0.001063341,0.000928218,0.000907223,0.000883074,0.000988567,0.000951153,0.000946786,0.000923811,0.000962261,0.000963168,0.001017081,0.00094883,0.000822768,0.000828944,0.000857822,0.000975089,0.001122489,0.001173076,0.001043322,0.000999852,0.000982436,0.001006424,0.001105547,0.001103187,0.001121362,0,0.001020526,0.000955192,0.001126849,0.001119767,0.001227975,0.001117112,0.001118473,0.001038155,0.000978702,0.000919978,0.001046455,0.000993836,0.001034183,0.000955171,0.00097614,0.000924624,0.001047577,0.000912947,0.000807775,0.00071173,0.000823379,0.000955842,0.000884844,0.000816816,0.000873828,0.00089252,0.000964631,0.000979402,0.000881155,0.000762474,0.000793941,0.000804715,0.000850762,0.000957779,0.000971439,0.000948694,0.000885631,0.000876446,0.000877704,0.000895738,0.000955854,0.000903745,0.000895369,0.000859379,0.000904257,0.001259083,0.001649873,0.001400521,0.00107918,0.000873849,0.00082219,0.000928312,0.001098927,0.001352194,0.001027405,0.000966952,0.000790993,0.000941937,0.001093904,0.001066865,0.001045458,0.000368713,0,0,0,0,0,0 +PROVIDES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000293849,0.000397869,0.000486052,0.000354577,0.000655702,0.000697584,0.000724181,0.000528977,0.000405433,0.000638076,0.000663854,0.000793372,0.000817212,0.000798296,0.000784271,0.000714192,0.000922909,0.001007049,0.000990323,0.001012463,0.000982428,0.001012361,0.0009072,0.00101901,0.001010761,0.00101022,0.00093969,0.000912641,0.000882409,0.001066209,0.001044729,0.001113762,0.001053051,0.001109124,0.001150681,0.001320554,0.001202488,0.001032528,0.00086042,0.000793953,0.000831842,0.001069753,0.00105949,0.000923537,0.000825358,0.000752352,0.000782654,0.001081608,0.001010905,0.001007942,0.000889658,0.000918154,0.000876996,0.001010025,0.000960976,0.000997027,0.000977749,0.001014339,0.000964985,0.000980038,0.000987915,0.000995324,0.000967773,0.001000502,0.000984347,0.0009065,0.000949328,0.000944465,0.000957153,0.000912089,0.00090516,0.001095398,0.001088452,0.001082257,0.001005175,0.001001595,0.00096947,0.001113084,0.00108017,0.001050324,0.000994758,0.001000541,0.001001065,0.00094961,0.000871788,0.000907425,0.000944587,0.000985298,0.001035646,0.001079717,0.001119755,0.001002427,0.000941492,0.000877478,0.000925199,0.001029872,0.001081371,0.001044921,0.000981423,0.000945728,0.000940293,0.001121981,0.001203802,0.00109657,0.000989759,0.000943182,0.000949457,0.000952285,0.001039772,0.000990152,0.000982749,0.000957227,0.000966013,0.001025106,0.001054116,0.00099207,0.001002222,0.000974974,0.000998751,0.000912914,0.000937805,0.000876147,0.000935561,0.000881858,0.000866521,0.000760649,0.000941414,0.000989488,0.000927906,0.000898267,0.000890556,0.00095062,0.001012162,0.000988963,0.000928929,0.000879651,0.000868772,0.00087794,0.000909112,0.000920581,0.000994263,0.000961017,0.00096193,0.000922645,0.001007722,0.001044216,0.0009529,0.000907733,0.000883986,0.000893028,0.00094677,0.001067112,0.000980694,0.000980203,0.00093141,0.000982939,0.001034882,0.00105754,0.001042238,0.00097836,0.000944983,0.000909346,0.00093083,0.000985531,0.000945445,0.000962076,0.000957651,0.000985116,0.000965129,0.000957303,0.000968368,0.001029207,0.001049593,0.001090467,0.00116239,0.001198829,0.001248876,0.001196038,0.001118853,0.000686067,0,0,0,0,0 +PROJECTS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000307761,0.000307082,0.000278652,0,0,0,0.000223524,0.000244352,0.000243314,0,0,0,0,0.000590177,0.000590048,0.000797549,0.003059858,0.002547365,0,0.000251014,0.000324372,0.0002827,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000640273,0.000564747,0.000572891,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000375473,0.00051338,0.000618611,0.000466548,0.001092836,0.001214313,0.001354919,0.000934936,0.000658828,0.000302247,0.000501578,0.001350549,0.001098819,0.001058868,0.000747549,0.000525675,0.000623161,0.000988684,0.001173293,0.001116906,0.001014761,0.000818038,0.00115724,0.001233814,0.001230581,0.000960504,0.000841905,0.000901557,0.001116799,0.001526201,0.001311242,0.001182619,0.000877202,0.000821367,0.00091822,0.00131196,0.001304221,0.001112801,0.000897371,0.000672336,0.000635022,0.00102603,0.001232676,0.001180634,0.001037876,0.000928115,0.000817353,0.001227927,0.001168305,0.001171393,0.001037133,0.000980435,0.001115539,0.001196448,0.001278,0.001283862,0.00132195,0.001255688,0.001108042,0.000988006,0.001053533,0.001125985,0.001073226,0.001099411,0.001007417,0.00098123,0.001051126,0.001093049,0.001079958,0.001039753,0.001035929,0.001174448,0.001172631,0.001017294,0.000952761,0.000910798,0.000864004,0.00084685,0.000950302,0.00100102,0.001002969,0.000953228,0.000911328,0.000898279,0.000991152,0.000953691,0.000953174,0.000910595,0.001019207,0.001079717,0.0011691,0.001075259,0.001008809,0.000930104,0.000845629,0.000839869,0.000951153,0.000850035,0.000965251,0.000884002,0.000912602,0.000823242,0.001036607,0.000875894,0.000844694,0.000830777,0.000898192,0.000986756,0.001026442,0.0009358,0.000979898,0.000923861,0.000952543,0.000792033,0.000946887,0.000962233,0.001091706,0.00105409,0.001116984,0.001019881,0.00105578,0.001000724,0.00102143,0.000979151,0.000962079,0.000862069,0.00096821,0.001006826,0.001016627,0.000965845,0.000920522,0.00085173,0.0009228,0.000920372,0.000883981,0.000859209,0.000857966,0.000892821,0.000892119,0.000874838,0.000864699,0.000897079,0.000896293,0.000880659,0.000927482,0.00101913,0.000946732,0.000958115,0.00094452,0.001028004,0.001163279,0.001108815,0.000995753,0.00093997,0.000912292,0.000941889,0.000913131,0.000984907,0.000882516,0.000914656,0.00088078,0.000909346,0.000872214,0.000926509,0.000967734,0.00089869,0.000868731,0.000800354,0.000678483,0.000810302,0.000796996,0.000813638,0.000820371,0.000854273,0.0009239,0.000884053,0.000929657,0.000924994,0.000711997,0.000914756,0,0,0,0,0 +TEACHERS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004209721,0.004216175,0.00422427,0,0,0,0.008114856,0.00812754,0.008142812,0,0,0,0.028224145,0.028270739,0.028259076,0,0,0,0.042530756,0.042568162,0.042590637,0,0,0,0.048820823,0.048831356,0.048841893,0,0,0,0.00368252,0.003683386,0.003679925,0,0,0,0,0,0,0,0,0,0,0.001184133,0.001184133,0.001110535,0,0,0,0.000915384,0.000916013,0.000914495,0,0,0,0.003336988,0.003337306,0.003336352,0,0,0,0.002773599,0.002773338,0.002772556,0,0,0,0.035274268,0.035257667,0.035297813,0,0,0,0.033108231,0.033111857,0.033081665,0,0,0,0.001675229,0.001712074,0.001637575,0,0,0,0.029695774,0.029552578,0.029527153,0,0,0,0.036018987,0.035917584,0.036001236,0,0,0.007600434,0.025376308,0.025320343,0.024995124,0,0,0,0.013791408,0.013839216,0.013780442,0.002325581,0,0,0.005630631,0.007759732,0.007670622,0.007156949,0,0,0,0.000946129,0.000954035,0.000901108,0,0,0,0.001033859,0.000988399,0.000724927,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000365424,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000625036,0,0,0,0,0,0,0,0,0,0,0,0,0.000825946,0.000832909,0.00109026,0.000779094,0.001362139,0.000950366,0.001518002,0.001344759,0.001543786,0.000750947,0.000410704,0.000530238,0.000951759,0.003333151,0.003578349,0.003726026,0.003764347,0.003294141,0.00339188,0.003393031,0.002271103,0.001173362,0.000852779,0.000650499,0.000975217,0.001258154,0.00136824,0.001070372,0.000788655,0.000815788,0.000912066,0.001096333,0.000974478,0.000916259,0.000829255,0.00073935,0.000772235,0.001099564,0.0011972,0.000972238,0.000853827,0.000734069,0.000854892,0.000647016,0.001019777,0.000948155,0.001139558,0.000920245,0.000972937,0.000917254,0.001130965,0.001173589,0.001108819,0.001051055,0.00114246,0.001268439,0.001227927,0.000888976,0.000741579,0.000711727,0.000783545,0.001038363,0.00103785,0.000915404,0.000717087,0.000729541,0.000761176,0.000899959,0.000794123,0.000705393,0.000658426,0.000687452,0.000654321,0.000784401,0.000529604,0.000648668,0.000566385,0.000638102,0.000578744,0.000670187,0.000810256,0.000783059,0.000605401,0.000528794,0.000480936,0.000594257,0.000608939,0.000731794,0.000657387,0.000649877,0.000562196,0.000536427,0.000378561,0.000556324,0.000583558,0.000622569,0.000587315,0.000692075,0.000724623,0.000844561,0.000598543,0.00061818,0.000521682,0.000672447,0.000793056,0.000903973,0.00073255,0.000634741,0.000543408,0.000587533,0.000597478,0.00064579,0.000621163,0.000649063,0.000717528,0.0008512,0.00109879,0.000933129,0.000719573,0.00066348,0.000636174,0.00068891,0.000872474,0.000961427,0.000753376,0.000699603,0.000654511,0.000673094,0.000675003,0.000791835,0.000848767,0.000749921,0.000755767,0.000717152,0.000813049,0.000807437,0.000767813,0.00075372,0.000776777,0.000810959,0.000907555,0.000713073,0.000689655,0.000601307,0.000677872,0.000669948,0.000813459,0.000841141,0.000830524,0.000620593,0.000749826,0.00073333,0.000975127,0.000995922,0.001246474,0.000935168,0.000900784,0.000825854,0.00083372,0.000772461,0.000667251,0.000683286,0.000839129,0.0009105,0.000959055,0.000784858,0.000748122,0.000787492,0.000943294,0.000957021,0.001021318,0.00079484,0.000775523,0.000661254,0.000757413,0.00075998,0.000836467,0.000644296,0.000695569,0.000584542,0.000697147,0.000751002,0.000902836,0.001174415,0.001069347,0.000868053,0.000826041,0.000572141,0,0,0,0,0,0 +ENVIRONMENT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001269237,0.001268633,0.00126813,0,0,0,0,0.000962108,0.000962108,0.000962464,0,0,0,0,0,0,0,0,0,0.00076274,0.000762813,0.000762595,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00036503,0.00036507,0.000364737,0,0,0,0.000483955,0.000483847,0.000483829,0,0,0,0.000553767,0.000551097,0.000550623,0,0,0,0.000558434,0.000556862,0.000556242,0,0,0,0.000783392,0.000725831,0.000780227,0,0,0,0.000692923,0.000688629,0.000641465,0,0,0,0,0.00067761,0.000677462,0.000692608,0,0,0,0.000656497,0.000686905,0.000706751,0,0.000896569,0.00109517,0.000930473,0.000832336,0.000543695,0,0,0,0,0,0.003428571,0.002882967,0.002614425,0.000487401,0.000570391,0.000580619,0,0.000381931,0.000432165,0.000410635,0.000506842,0,0.000486559,0.000537403,0.000794685,0.00081057,0.00091893,0.000873464,0.000633771,0.000533561,0.000631187,0.000763854,0.001005747,0.000781942,0.000540346,0,0.000380005,0.000425137,0.000483022,0,0,0.000457038,0.000509795,0.000416302,0,0,0,0.000488261,0.000658569,0.00066022,0.000559315,0,0,0,0,0,0,0,0,0,0.000389547,0.000633553,0.000643797,0.000627001,0.000594196,0.000547795,0.000669322,0.000705897,0.000824815,0.000709154,0.00050999,0.000490893,0.000537295,0.000639693,0.000692614,0.000671659,0.000590092,0.000605627,0.000673648,0.000717756,0.000763287,0.000750446,0.000737539,0.000655041,0.000670126,0.000707658,0.000763558,0.000814904,0.000804619,0.000757054,0.000686167,0.000701983,0.000746505,0.000890472,0.000737639,0.000712837,0.000675876,0.000717834,0.000746337,0.000759904,0.001057697,0.000985402,0.000950189,0.000930219,0.000914966,0.000975231,0.000776138,0.000845309,0.000853705,0.000950827,0.000975274,0.000960267,0.000798075,0.000823399,0.00083577,0.000903516,0.000899276,0.000910117,0.000848932,0.000781865,0.000782651,0.000821892,0.000903698,0.000965394,0.00095198,0.000865833,0.00096422,0.0009902,0.001037185,0.001002404,0.001191982,0.0010917,0.001053494,0.000873851,0.000916218,0.000903578,0.000976674,0.000841311,0.000832001,0.000872164,0.000931796,0.000964709,0.00101409,0.00082136,0.000939995,0.000896436,0.001020565,0.00097271,0.00103696,0.000936777,0.000858998,0.000914887,0.000952101,0.001017497,0.000994549,0.000958466,0.00086354,0.000928271,0.001083711,0.001174928,0.001255962,0.001076684,0.001043627,0.000877678,0.000987487,0.00101076,0.001061893,0.001007959,0.000975999,0.000893603,0.001045298,0.001053896,0.001138494,0.001068627,0.000925512,0.000876721,0.000983461,0.001032856,0.001100717,0.00100448,0.001026855,0.00087148,0.000921686,0.000951798,0.001087944,0.001097341,0.00091581,0.000785794,0.000867684,0.000860843,0.000924969,0.000927992,0.000969996,0.000878032,0.000848952,0.000853467,0.000892429,0.00087725,0.00080973,0.000729563,0.000761122,0.000906686,0.000926402,0.001012856,0.000898492,0.000910575,0.000950136,0.001006227,0.001030586,0.001057,0.001019522,0.001014426,0.000997615,0.001000678,0.000985356,0.000980967,0.00099998,0.000954268,0.000908224,0.000968185,0.000984582,0.001052349,0.000980529,0.000941327,0.000882516,0.00099414,0.00102858,0.001111235,0.001085578,0.001040436,0.000944516,0.001000753,0.001001151,0.001026267,0.000907274,0.000951925,0.000865075,0.000958952,0.000988668,0.001063242,0.001074209,0.000906377,0.000879254,0.000851855,0.000889996,0.000628895,0,0,0,0,0 +LOCAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000511042,0.000511098,0.000510632,0,0,0,0.0004095,0.000409409,0.000409394,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000279166,0.000306518,0,0,0,0,0,0,0,0,0,0,0.000612035,0.000611901,0.00067162,0,0,0,0.000444101,0.000457937,0.000512395,0.001024113,0.000978075,0,0.000827087,0.000728294,0.000761173,0.000658545,0.00084589,0,0,0,0.000548571,0.000545426,0.000522885,0,0,0,0.000493274,0.000555536,0.000633841,0.000615953,0.000591316,0,0.001378583,0.001683864,0.001494008,0.000891627,0,0,0.000452694,0.000604702,0.000465085,0.000496505,0,0.000521295,0,0.000354736,0,0,0,0,0.000459284,0.000457038,0.000509795,0.000582823,0,0,0,0.000651015,0.000731743,0.000699056,0,0,0,0.000506112,0.000556502,0.000483631,0,0,0.000462727,0,0,0.000475165,0.000582483,0.000891001,0.000688016,0.000572695,0.000701972,0.000859911,0.000972104,0.001045069,0.000874269,0.000994704,0.000887705,0.000959539,0.000793973,0.000654868,0.000501578,0.000702528,0.000781321,0.000781715,0.000742303,0.000677939,0.000528504,0.00061831,0.000725017,0.000763077,0.000748635,0.000598641,0.000557783,0.000526532,0.00069233,0.000733801,0.000784665,0.000727896,0.000710063,0.000755485,0.000682272,0.000686849,0.000684995,0.000737554,0.00071288,0.000647386,0.000657197,0.000750786,0.000746049,0.000766417,0.000683299,0.000696651,0.000829255,0.000835923,0.000871486,0.000805938,0.00075181,0.000685688,0.000673937,0.000705257,0.000750198,0.000767472,0.000754217,0.00066222,0.000683581,0.000645378,0.000670574,0.00063797,0.000642456,0.000677262,0.000781948,0.000769871,0.000756865,0.000707579,0.000672893,0.000610832,0.000705486,0.000829717,0.000848796,0.00082698,0.000758046,0.000683212,0.00075761,0.000809965,0.000830463,0.000807234,0.00067944,0.000702404,0.000766838,0.000847132,0.000885663,0.000907306,0.000919305,0.00067371,0.000797185,0.000820861,0.000888771,0.000834605,0.000789064,0.000629354,0.0007193,0.000822335,0.000850472,0.000823708,0.000767619,0.000754505,0.000968138,0.001039392,0.000929875,0.000841014,0.000772943,0.000782194,0.000823434,0.000866359,0.000888628,0.000888247,0.000900328,0.000874723,0.000938842,0.00097361,0.000952817,0.000906066,0.000842856,0.000814722,0.000903268,0.000931153,0.000933888,0.000938212,0.000957266,0.001027258,0.001145762,0.001115718,0.001049235,0.000993939,0.000943524,0.000924611,0.001021801,0.001086084,0.001123254,0.001057722,0.001057243,0.001019205,0.001134351,0.001056307,0.001128699,0.001066923,0.001084884,0.001007896,0.001053551,0.001022074,0.001108805,0.001061769,0.001076607,0.000988773,0.000962882,0.001022266,0.001084733,0.001071907,0.001065587,0.00104232,0.00104952,0.001097776,0.001108692,0.001127024,0.001111837,0.001123998,0.00103923,0.001076425,0.001031119,0.001063105,0.001064025,0.001106993,0.001092612,0.001029455,0.001001168,0.001110336,0.001124616,0.001149722,0.001093988,0.001077414,0.001144435,0.001158308,0.001130423,0.001101504,0.000915883,0.001049255,0.001128469,0.001140109,0.001220567,0.00125779,0,0,0,0,0 +TEST,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000675806,0.000667824,0.000600739,0,0,0,0,0,0.00039871,0,0,0,0,0,0.000502857,0.000545426,0.000383449,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000386488,0.000531324,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00030657,0.000363,0.000344008,0.000398396,0.000701972,0.000821408,0.000913188,0.000746478,0.000619274,0.000555484,0.000607377,0.000590486,0.000641935,0.000772408,0.000693359,0.00082971,0.000877951,0.000935689,0.00098624,0.001170986,0.001183217,0.001144792,0.000981175,0.000908019,0.000920249,0.001109523,0.001198914,0.001032108,0.000903933,0.000904823,0.00094923,0.001001319,0.001006497,0.000947402,0.000999955,0.001034577,0.001089857,0.001078393,0.001170053,0.001094255,0.001023437,0.000960125,0.001034616,0.00112209,0.001232908,0.001107646,0.00107579,0.001082966,0.001070824,0.001078157,0.001083378,0.001144726,0.00102864,0.001036698,0.001006676,0.001032672,0.001059411,0.001121323,0.001064009,0.000995648,0.00094758,0.000958643,0.000925969,0.00104378,0.000955106,0.001038878,0.001023837,0.00111653,0.001176602,0.001189173,0.001055861,0.000979772,0.000981233,0.001012802,0.001111529,0.001171625,0.001088452,0.001013147,0.000998186,0.001037062,0.001109414,0.001161233,0.001127582,0.001044348,0.001080391,0.001058987,0.001144644,0.001061895,0.00104444,0.001098462,0.001085202,0.001112807,0.001061948,0.00114323,0.001100776,0.001030236,0.001025875,0.001036499,0.001104622,0.001123496,0.001153085,0.001137526,0.001099679,0.00106477,0.001065505,0.00101252,0.000996899,0.000950815,0.001015456,0.001017555,0.001037033,0.000965211,0.000936938,0.000871995,0.000945691,0.000929051,0.000959278,0.000855974,0.000901451,0.000906289,0.000911111,0.000888664,0.000891927,0.000879717,0.000989794,0.000971976,0.000920023,0.00089042,0.000878581,0.00091954,0.000923551,0.000892893,0.000918952,0.000924842,0.000965472,0.00093786,0.000953803,0.000829332,0.000876989,0.000825579,0.000826269,0.000793619,0.000951594,0.000954889,0.000999896,0.000908058,0.000913645,0.000872261,0.000901522,0.000815304,0.000814128,0.000835202,0.000841708,0.000847354,0.000807323,0.000869635,0.000767991,0.000803076,0.000785635,0.000802323,0.000806599,0.000828019,0.000837026,0.000829327,0.000833966,0.000830457,0.00086049,0.000809838,0.000806136,0.000793941,0.000791965,0.000807073,0.000767896,0.000824643,0.000829862,0.00082925,0.00082761,0.000817482,0.000803652,0.000741176,0.00081205,0.000804529,0.000915425,0.000628895,0,0,0,0,0 +SOFTWARE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000223524,0.000222138,0.000265434,0,0,0,0,0.000240442,0.000218536,0.000209881,0,0,0,0.000753041,0.000763228,0.00058307,0,0,0,0,0,0.00039871,0,0,0,0,0.001304121,0.00096,0.000935016,0.000522885,0,0,0,0,0,0.000316921,0.000342196,0,0,0,0,0.000317874,0,0,0.000582309,0.000452694,0.00046242,0.000398645,0.00042012,0,0,0,0.000425683,0.000380005,0.000463786,0,0,0,0,0.00036414,0,0,0,0,0,0,0.000427201,0,0,0,0,0,0,0,0,0,0,0.000389547,0.000316776,0.000398541,0.000363,0.000312735,0.000323697,0.000391798,0.000551883,0.000544967,0.000597182,0.000746772,0.000865521,0.000805943,0.000725805,0.00055747,0.000638076,0.000531083,0.000763091,0.000748191,0.000758026,0.000663614,0.0005293,0.00039835,0.000544847,0.000610661,0.000703395,0.000718789,0.000698937,0.000577017,0.000623456,0.000632753,0.000680108,0.00060102,0.000617049,0.000606656,0.000740253,0.000688669,0.00074882,0.000719755,0.000810192,0.000689634,0.000902331,0.000935947,0.001038824,0.000974791,0.000892624,0.000575605,0.000693736,0.000906679,0.001006843,0.000998338,0.000968841,0.000740244,0.000863565,0.000913361,0.000954973,0.00089607,0.000775508,0.000589341,0.000595442,0.000707358,0.000868779,0.001062771,0.0010886,0.001100239,0.000903016,0.001038952,0.001047845,0.001018497,0.000920614,0.000992037,0.001000725,0.001070066,0.001066569,0.001098017,0.001085145,0.001044102,0.000798963,0.000751737,0.000722887,0.000796686,0.000842701,0.000918765,0.00075905,0.000775084,0.000853108,0.001051065,0.001074295,0.001074849,0.000750705,0.000656505,0.000647734,0.001032605,0.001179781,0.001357847,0.000860309,0.000766747,0.000598543,0.000891241,0.000951841,0.001193554,0.000801317,0.000739786,0.000662059,0.000858113,0.000920376,0.001008919,0.001069531,0.000925841,0.000753296,0.000921786,0.001009103,0.001229274,0.001111717,0.000811251,0.000616777,0.000868724,0.001026182,0.00122676,0.001216926,0.000897816,0.000596734,0.000731329,0.000849506,0.00107135,0.001219062,0.001003791,0.000754308,0.000868501,0.000880302,0.000984345,0.000911089,0.000827087,0.000809919,0.001003603,0.001051648,0.001114366,0.00086768,0.000806082,0.000745775,0.00109274,0.001178363,0.001239764,0.001165627,0.000930353,0.000889133,0.00073044,0.000818932,0.0008382,0.000900602,0.000743401,0.000542491,0.000708507,0.000893401,0.000961815,0.001031413,0.000915578,0.000868408,0.000895048,0.00100894,0.001040144,0.001065783,0.000673978,0.000674037,0.000931039,0.000931605,0.000951671,0.000787195,0.000806563,0.000985531,0.001200845,0.001307478,0.001326126,0.001305089,0.000802083,0.000959096,0.000904984,0.001031609,0.00116179,0.001237628,0.001456996,0.000839404,0.000747646,0.000714181,0.000762854,0,0,0,0,0,0 +FUNCTION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002678204,0.002682625,0.002681518,0,0,0,0.002108963,0.002110818,0.002111932,0,0,0,0.001078516,0.001078749,0.001078981,0,0,0,0.001331975,0.001332288,0.001331037,0,0,0,0.001507219,0.001506502,0.001505905,0,0,0,0,0.001776199,0.001776199,0.001776856,0,0,0,0.001773557,0.001774775,0.001771834,0,0,0,0.001668494,0.001668653,0.001668176,0,0,0,0.002209477,0.00220927,0.002208647,0,0,0,0.002040336,0.002039376,0.002041698,0,0,0,0.002044169,0.002044393,0.002042528,0,0,0,0.002531457,0.002530892,0.002530798,0,0,0,0.002561174,0.002548824,0.002546631,0,0,0,0.002233736,0.002227447,0.002255871,0,0,0,0.00229422,0.002261243,0.002257085,0,0,0,0.002525817,0.002465735,0.002366785,0,0,0,0,0.002076548,0.002076094,0.00201486,0,0,0,0.002297741,0.002251522,0.002208598,0.001024113,0.001793137,0.00186179,0.00175756,0.001404567,0.001667331,0.001975634,0.002008988,0.001807501,0.001587022,0.00121718,0.001325714,0.001207729,0.00139436,0.001315982,0.001348198,0.001335424,0.001345291,0.001284678,0.001325305,0.001368785,0.002238554,0.002259353,0.002148968,0.001504729,0.001430433,0.001256383,0.000969982,0.000873464,0.000995926,0.00096041,0.001229154,0.001413131,0.001772031,0.001407496,0.001305836,0.001099681,0.001312744,0.001159465,0.001207554,0.000869254,0.000918569,0.000952163,0.001092419,0.001082386,0.000909143,0,0.00089729,0.001179965,0.001500073,0.001398113,0.001622015,0.001343511,0.001399306,0.001401542,0.001565163,0.001599702,0.001406258,0.001321513,0.001110546,0.001222413,0.001168641,0.001710593,0.001502192,0.001353001,0.001219665,0.00112049,0.001028471,0.00102676,0.001119392,0.001007745,0.000710344,0.000594238,0.000782582,0.000725805,0.000844652,0.000688451,0.00076712,0.000932666,0.00123134,0.0012768,0.001345588,0.001261619,0.001100392,0.001160096,0.001251055,0.001313004,0.001280887,0,0.00103222,0.001094978,0.001308648,0.00137016,0.001397611,0.001189759,0.001120245,0.001063162,0,0.001239426,0,0.001173381,0.001139058,0.001077068,0.001019368,0.001046694,0.001061009,0.001069313,0.001039802,0.000979392,0.001053378,0.001183507,0.001210855,0.001221768,0.000936871,0.001113167,0.001179389,0.001250091,0.001149342,0.001159244,0.000999775,0.0011408,0.001169023,0.001213532,0.00114505,0.001091976,0.000886954,0.000969414,0.001020724,0.001120861,0.001078566,0.001051859,0.000795936,0.00101697,0.000996676,0.00118573,0.001160624,0.001224157,0.001058404,0.001036111,0.000976866,0.001162424,0.00116358,0.00122291,0.001117527,0.001149904,0.001195608,0.00113698,0.001149602,0.001132741,0.001190509,0.001273632,0.001212829,0.001179055,0.001058367,0.001058712,0.000976466,0.001062396,0.001064716,0.001174575,0.001125429,0.001128023,0.001012571,0.00101335,0.00108892,0.001198341,0.001185591,0.001148541,0.00104263,0.000934984,0.000980179,0.000980783,0.000976496,0.000956704,0.000911008,0.000795007,0.000893138,0.000931073,0.000893667,0.000836368,0.000803408,0.000785846,0.000825118,0.000918721,0.000882638,0.000819138,0.000757101,0.000689757,0.000841825,0.000893944,0.000885675,0.000818813,0.000740346,0.000564571,0.000632373,0.000787628,0.000853836,0.000817779,0.000757581,0.000649165,0.000756842,0.000905406,0.000872993,0.000797884,0.000790251,0.000660687,0.000734936,0.000796217,0.000860004,0.000771785,0.000747665,0.000708516,0.000771721,0.000752588,0.000821838,0.000723581,0.000731691,0.000627164,0.000741269,0.000773962,0.000800931,0.0006991,0.000674511,0.000651561,0.000739201,0.000705995,0.000672249,0.000694905,0.000723618,0.00076514,0.000799529,0.000853761,0.000789418,0.00070101,0.000636515,0.000618952,0.000689002,0.000702739,0.000808734,0.000696546,0.000671981,0.000606305,0.000605244,0.000609461,0.000599237,0.000666856,0.001029853,0.001486479,0,0,0,0,0 +EVOLUTION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000790912,0.000791082,0.000791253,0,0,0,0.001096921,0.001097179,0.001096148,0,0,0,0.001031255,0.001030764,0.001030356,0,0,0,0,0.001184133,0.001184133,0.001184571,0,0,0,0.000915384,0.000916013,0.000914495,0,0,0,0.001382467,0.001382598,0.001382203,0,0,0,0.001034223,0.001034126,0.001033835,0,0,0,0.001177117,0.001176563,0.001177903,0,0,0,0.000985581,0.000985689,0.00098479,0,0,0,0.001302956,0.001302665,0.001302616,0,0,0,0.001245977,0.001239968,0.001238902,0,0,0,0.000868675,0.000866229,0.000865266,0,0,0,0.001063175,0.001116663,0.001086745,0,0,0,0.00160937,0.00162161,0.001570484,0,0,0.002772446,0.003753754,0.001748672,0.001726436,0.001637073,0,0,0,0.001621935,0.001698182,0.001784547,0.001955125,0.00195615,0.001314204,0.001188938,0.000988399,0.000978651,0.000932938,0.00111023,0.001446001,0.001851525,0.001738828,0.001371429,0.001207729,0.00139436,0.001657162,0.001659321,0.001335424,0.001345291,0.001493004,0.001354116,0.001471444,0.002196317,0.002574611,0.002230061,0.001504729,0.001430433,0.001580611,0.001735757,0.002096314,0.00140335,0.001316117,0.001328815,0.00126036,0.001101533,0.001094719,0.001260807,0.00148989,0.001243652,0.001275412,0.001352461,0.002198701,0.00206678,0.001790067,0.001420144,0.001581949,0.001761464,0.002047015,0.001674942,0.001668226,0.001463486,0.001631131,0.001789809,0.002564885,0.002406806,0.001518337,0.001043442,0.00141369,0.002109387,0.002477837,0.001665818,0.001222413,0.000908943,0.001140395,0.00131825,0.001683002,0.00162622,0.001518886,0.001142745,0.00088558,0.000795357,0.000895773,0.000928911,0.000697584,0.000537295,0.000516675,0.000692614,0.000940323,0.001047414,0.000902385,0.000726104,0.000641953,0.00071345,0.000964341,0.001159553,0.001049903,0.000898838,0.000841943,0.000912788,0.001093852,0.001176474,0.001016391,0.000881334,0.000821301,0.000784665,0.000827659,0.001089223,0.001029653,0.000878425,0.000860713,0.000866978,0.001022518,0.000984084,0.000942434,0.000883045,0.000838929,0.000927283,0.001014241,0.00126633,0.001087242,0.000955579,0.000822997,0.000757814,0.000743778,0.00092916,0.000929552,0.00086459,0.000847519,0.000806303,0.000819708,0.000806836,0.000829167,0.000828223,0.000848093,0.000773423,0.000722358,0.000707482,0.000950823,0.000969688,0.00085954,0.000838291,0.000857845,0.001068939,0.001033216,0.000939859,0.000903273,0.000835553,0.000811376,0.00065997,0.000762262,0.00089073,0.0010712,0.001001681,0.001008688,0.00079099,0.000940315,0.000987407,0.001030902,0.000909124,0.000825203,0.000873439,0.001039438,0.001144621,0.001123834,0.000944587,0.000868092,0.000713445,0.000825666,0.000988801,0.001038181,0.000969936,0.000887774,0.000912718,0.001049147,0.001096468,0.001054596,0.000978391,0.000943523,0.000865648,0.001049007,0.00096346,0.001159232,0.001029549,0.001048825,0.00090994,0.000922122,0.00087219,0.00104923,0.000870862,0.000892719,0.000834197,0.001056045,0.001025037,0.000997042,0.000942837,0.000905447,0.000885705,0.000992217,0.001159759,0.001132146,0.000892218,0.000888863,0.000825699,0.000977011,0.000932483,0.000911469,0.000922208,0.000920287,0.000879319,0.000859705,0.000891797,0.000966515,0.000944911,0.000930425,0.000919198,0.000906709,0.000940974,0.000963466,0.000991446,0.000889974,0.000871396,0.000810332,0.000962882,0.000964254,0.000940565,0.000830858,0.00082057,0.000738963,0.000798149,0.000829158,0.000853637,0.000799419,0.000788024,0.000765752,0.000941394,0.00087741,0.000832982,0.000806534,0.000822597,0.000844029,0.000876903,0.000966315,0.000871146,0.000769231,0.000694089,0.000681939,0.000828381,0.000899937,0.001051706,0.000877888,0.000816752,0.000718148,0.000713467,0.000906377,0.001069665,0.001165922,0.001474851,0.001200617,0,0,0,0,0 +CONDITIONS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000438036,0.000438084,0.000437685,0,0,0,0.00055841,0.000558285,0.000558264,0,0,0,0.000415326,0.000413323,0.000412967,0,0,0,0,0,0,0,0,0,0.000475631,0.000474582,0.000473709,0,0,0,0.000290581,0.000310994,0.000287553,0,0,0,0,0.000349734,0.000371512,0.000356798,0,0,0,0.000212396,0.000228968,0.000247363,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000349661,0,0,0,0,0,0.000365424,0.000381927,0,0,0,0,0,0,0,0,0.000459284,0.000418952,0.000436967,0,0,0,0,0,0.000402459,0,0,0,0,0,0.000417377,0.000372024,0,0,0,0,0,0,0.000551826,0.000660001,0.000781836,0.000522895,0.000701972,0.000962587,0.001075205,0.001138378,0.000856055,0.000865521,0.000934427,0.000934936,0.001030475,0.001057863,0.001106423,0.001005342,0.001145754,0.001200998,0.001282636,0.001261619,0.001025455,0.000994806,0.000985749,0.001052961,0.001032171,0.001128329,0.001038631,0.001037347,0.001037468,0.001097719,0.001147186,0.001123251,0.001061648,0.000923032,0.000982898,0.001043184,0.001100081,0.001086774,0.00100733,0.000930976,0.000913565,0.000925497,0.000965993,0.001037187,0.001002666,0.00091818,0.000829255,0.000900557,0.000950563,0.001097448,0.001048679,0.00099267,0.000831336,0.000935298,0.001006676,0.001078881,0.001041871,0.000987766,0.001016455,0.000937729,0.000881757,0.000838813,0.000884353,0.000863177,0.000805643,0.000822392,0.000838291,0.000850237,0.000876684,0.000857764,0.000899613,0.00087238,0.000906587,0.000940459,0.001025712,0.000948592,0.00095729,0.000935745,0.00100634,0.000990245,0.000985695,0.001028116,0.001024512,0.000947234,0.00088449,0.000878083,0.00094124,0.001241551,0.001206435,0.001192487,0.001064807,0.001027801,0.00094852,0.000871857,0.000892008,0.000908408,0.000938648,0.000948408,0.000990728,0.001079438,0.001051175,0.000967519,0.000918757,0.000929194,0.000957149,0.000882534,0.000794175,0.000889516,0.000969036,0.000978678,0.001021013,0.000991065,0.001056911,0.000905079,0.000885115,0.000839334,0.000834197,0.000818847,0.000863285,0.000872723,0.000804543,0.000804753,0.000787178,0.000863118,0.000777838,0.000781687,0.000836607,0.00087174,0.000876726,0.000892495,0.000884251,0.000834687,0.000811511,0.000824613,0.000858717,0.000869275,0.000880855,0.000816861,0.000834038,0.000883607,0.000877416,0.00092655,0.000860258,0.000893421,0.000938869,0.000858974,0.000860833,0.000774644,0.000828362,0.0008106,0.00090433,0.000896875,0.000898399,0.000888937,0.000871542,0.000903978,0.000911989,0.000913323,0.000903928,0.000863523,0.000889215,0.000871599,0.000866342,0.000871991,0.000890143,0.000919525,0.000874558,0.000841408,0.000828425,0.00090997,0.000940379,0.000960761,0.000915163,0.00088201,0.000890898,0.000875486,0.000843897,0.000827784,0.000847743,0.000971119,0.00097726,0.000838948,0.000584855,0.000571723,0,0,0,0,0 +SIGNIFICANT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000396,0.000406555,0,0.000359148,0.000359366,0.000412408,0.000279929,0.000582846,0.000632993,0.000607377,0.000467468,0.000456112,0.0007892,0.000914643,0.000981117,0.000955255,0.000947533,0.000876075,0.000750446,0.000757259,0.000734626,0.000727304,0.000726842,0.000773507,0.000777293,0.000721272,0.000688945,0.0007252,0.000757665,0.00078228,0.000787015,0.000799683,0.000776809,0.000718518,0.000693734,0.00068295,0.000720791,0.000782618,0.000784884,0.000689752,0.000675235,0.000712618,0.00077789,0.000735289,0.000632524,0.000658107,0.000698039,0.000729808,0.000745922,0.000832774,0.000654129,0.000618514,0.000612938,0.000674858,0.000737336,0.000733169,0.00068448,0.000624139,0.000711571,0.00073914,0.00078818,0.000793316,0.000714445,0.000659825,0.000655864,0.000718154,0.00075323,0.000872839,0.000851266,0.000821488,0.000764987,0.000746459,0.00074187,0.000758046,0.000736853,0.000802636,0.000757442,0.00084677,0.000831352,0.000945132,0.00082136,0.000841048,0.000770935,0.000748414,0.000727793,0.000761767,0.000757121,0.000795053,0.000798474,0.000868376,0.000883548,0.000955096,0.000909387,0.000842663,0.000790554,0.000827716,0.000842013,0.000884634,0.000944508,0.000875665,0.000801659,0.00077119,0.000791413,0.000797022,0.000882534,0.000888222,0.000844564,0.000868733,0.000860358,0.00088324,0.000838097,0.000881712,0.000927529,0.000932863,0.000943139,0.000953505,0.001058107,0.001068656,0.001026879,0.001042083,0.001018128,0.001030902,0.000933201,0.000935805,0.000982927,0.001015705,0.001023516,0.001017744,0.001015889,0.00098786,0.000996919,0.00102558,0.001069112,0.001091891,0.001073435,0.000953803,0.000935337,0.000959893,0.001007576,0.001021491,0.001052537,0.000994076,0.000953459,0.000936992,0.000965538,0.000996635,0.000992972,0.001047842,0.000910945,0.000996074,0.001006325,0.001035321,0.001047774,0.001084382,0.001021729,0.0010014,0.001039245,0.001070016,0.001077725,0.001045752,0.001002339,0.001024042,0.001035051,0.001047975,0.00105949,0.00107151,0.000985531,0.000984451,0.001000753,0.001028019,0.001026267,0.001017725,0.000980608,0.000958978,0.000992578,0.001004352,0.001053676,0.001132328,0.001183202,0.001052864,0.001079876,0.001004425,0.000857584,0,0,0,0,0 +GLOBAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000415326,0.000413323,0.000412967,0,0,0,0.000465362,0.000494988,0.000494438,0,0,0,0.000363718,0.000362916,0.000390113,0,0,0,0.000424695,0.00046649,0.000464509,0,0,0,0,0.000524602,0.000524487,0.000503715,0,0,0,0.000675806,0.000667824,0.000618407,0,0,0,0.000568622,0.000572231,0.00068868,0.000878059,0.000951626,0.000903751,0,0,0,0,0,0,0,0,0.000493274,0.000451373,0.00028811,0.000444855,0.000464606,0.00068306,0,0,0,0,0,0.000582309,0.000588502,0.000391278,0.000332204,0,0,0,0,0,0,0,0,0,0,0.000495125,0.000509795,0.000582823,0,0,0,0.000488261,0,0.000427201,0,0.000732824,0.000615695,0.000778634,0.000765191,0.000706845,0,0,0,0.000528611,0.000454472,0.000506842,0,0,0,0.000373497,0.000342824,0.000269524,0.000265119,0.000298591,0.000236781,0.000206692,0.000221926,0.000282941,0.000320968,0.000251872,0.000250789,0.000448164,0.000499714,0.000540094,0.000545579,0.000601807,0.000564,0.000508116,0.000562632,0.000547796,0.000594431,0.000573567,0.000522521,0.000508195,0.000482782,0.000536928,0.000527085,0.000583795,0.000610103,0.000624494,0.000596988,0.000605942,0.000580712,0.000609041,0.000755498,0.00084504,0.000842352,0.000996326,0.001062768,0.001177162,0.001065797,0.000926925,0.000977991,0.000851723,0.000856659,0.000705196,0.000755666,0.000754544,0.000780348,0.000800603,0.000838363,0.000875963,0.00081736,0.000815254,0.000865869,0.000813618,0.000799478,0.000764552,0.000803721,0.000921608,0.000951461,0.000868507,0.000818268,0.000758936,0.000788246,0.00068881,0.000871204,0.001051857,0.001110057,0.001066704,0.000913333,0.00080461,0.000841789,0.000796143,0.000826969,0.000820002,0.000898484,0.000773211,0.000863723,0.000812769,0.000794164,0.000729184,0.00075379,0.000818076,0.000824894,0.000814891,0.000829734,0.000829453,0.000835092,0.000779475,0.000688934,0.000744206,0.000822976,0.000893495,0.000870592,0.00076552,0.000796402,0.000729786,0.000703471,0.000678984,0.000730804,0.000896217,0.000850603,0.000769643,0.000794128,0.00081472,0.000887512,0.00099322,0.001037868,0.000921621,0.000850195,0.000829695,0.000824575,0.000835348,0.000914173,0.00086775,0.000846031,0.000867087,0.000916818,0.001080742,0.000993793,0.000870671,0.000904484,0.000948017,0.001029805,0.001112238,0.001057528,0.001015495,0.000975929,0.001062278,0.0010844,0.001194655,0.001101524,0.000978986,0.000942913,0.001003619,0.001064713,0.001146779,0.001121522,0.001010638,0.000928542,0.000988143,0.001047938,0.001130476,0.001113922,0.001030105,0.000948274,0.001011971,0.001010338,0.001067543,0.000952274,0.001032768,0.001028693,0.001033497,0.001012065,0.001010553,0.001147936,0.001135984,0.001046282,0.000953814,0.000938964,0.000968725,0.001038685,0.000926509,0.000944516,0.000864848,0.00087001,0.000848224,0.001054542,0.001111476,0.001048185,0.001051424,0.001000732,0.001027187,0.001058176,0.001183202,0.001125669,0.00095511,0.000788283,0,0,0,0,0,0 +DR,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000184527,0.000287182,0.00045337,0.000781872,0.00118703,0.001987814,0.002056146,0.002279368,0.002291217,0.002492644,0.002363046,0.002282546,0.002191183,0.002143932,0.002215912,0.002179844,0.002048499,0.001966053,0.002159643,0.002442241,0.002619687,0.002423177,0.002217714,0.002330386,0.002490902,0.002500741,0.002525563,0.002119268,0.002165593,0.001949211,0.001969043,0.001967177,0.001959641,0.001860503,0.001725595,0.001744084,0.001627322,0.001497507,0.001446831,0.00172338,0.001847628,0.001806771,0.00156337,0.001460322,0.001366181,0.001280414,0.00125488,0.001258186,0.001264555,0.001160134,0.001194929,0.001040415,0.001665268,0.001368864,0.001398834,0.001185354,0.001354292,0.001391928,0.001494589,0.001311541,0.001253402,0.001116077,0.001151814,0.000997107,0.001230912,0.001278344,0.001219094,0.001073895,0.000985989,0.001085076,0.001421802,0.001383194,0.001253517,0.001209428,0.001206494,0.001194498,0.001071519,0.00094639,0.001011898,0.000883404,0.000886124,0.000813722,0.000918048,0.000874927,0.000875303,0.000809702,0.000804259,0.000703651,0.00074349,0.000862455,0.000920525,0.001034992,0.001003044,0.001061893,0.000955508,0.001007348,0.000995768,0.000940852,0.000919518,0.000826636,0.000732527,0.000767451,0.000936981,0.000882977,0.00083711,0.000758186,0.000631152,0.000765143,0.000767051,0.000824067,0.000744816,0.000710431,0.000575412,0.000583879,0.000609196,0.0006387,0.000656918,0.000664271,0.000589926,0.000680605,0.000697224,0.000734185,0.000670473,0.000637717,0.000547085,0.000585413,0.000554967,0.000590319,0.00053478,0.000540281,0.000522796,0.000649973,0.00059752,0.000608387,0.000556073,0.000556788,0.00057521,0.000764641,0.000641268,0.000535814,0.000622818,0.000657705,0.000724648,0.000517421,0.000413352,0.00037176,0.000425834,0.000442704,0.000472437,0.000515267,0.000514243,0.000465014,0.000402098,0.00038321,0.000408018,0.000550995,0.000627281,0.000499655,0.000402879,0.000346085,0.000342649,0.000439173,0.000453554,0.000593932,0.000476774,0.000465078,0.000363489,0.000372766,0.000415237,0.00049003,0.000619531,0.000813711,0.001829512,0,0,0,0,0 +GROWTH,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003745318,0.003751172,0.003758221,0,0,0,0.004532344,0.004539827,0.004537954,0,0,0,0.002636204,0.002638522,0.002639916,0,0,0,0.002300834,0.00230133,0.002301827,0,0,0,0.001488678,0.001489028,0.001487629,0,0,0,0.003173092,0.003171583,0.003170326,0,0,0,0,0.002516282,0.002516282,0.002517213,0,0,0,0.002174037,0.002175531,0.002171925,0,0,0,0.002097535,0.002097735,0.002097136,0,0,0,0.002021437,0.002021247,0.002020677,0,0,0,0.001569489,0.00156875,0.001570537,0,0,0,0.001971163,0.001971379,0.001969581,0,0,0,0.00152632,0.001525979,0.001525922,0,0,0,0.002111238,0.002135501,0.002133664,0,0,0,0.000868675,0.000866229,0.000865266,0,0,0,0.001342958,0.001423746,0.001421127,0,0,0,0.00113997,0.001177333,0.001194452,0,0,0,0,0.001136637,0.001180096,0.001175335,0,0,0,0.001274377,0.001297487,0.001254483,0.001024113,0.000815062,0,0.000930473,0.001092441,0.000978651,0.000987817,0.00111023,0.001084501,0.001498854,0.000869414,0.001005714,0.000584385,0.00069718,0.000584881,0.001088929,0.001103176,0.001076233,0.001006909,0.001094817,0.001095028,0.001182632,0.000998319,0.001135304,0.000895672,0.000826473,0.000648456,0.000867878,0.00122285,0.001041195,0.000782556,0.001162713,0.001336745,0.001484674,0.000886201,0.00076549,0.00099326,0.001070923,0.001159465,0.00111095,0.000869254,0.00087264,0.000761731,0.000946763,0.000915865,0.001022785,0.000990491,0.00095711,0.000976523,0.00102444,0.001165094,0.001062699,0.000854962,0.000783611,0.000778634,0.001043442,0.001264881,0.001808046,0.001596828,0.001110546,0.000958108,0.000941406,0.001140395,0.00101168,0.001485001,0.001157118,0.00114539,0.000816247,0.001090932,0.001178307,0.001623589,0.001311404,0.001278905,0.001109632,0.001230179,0,0.001108238,0.000914643,0.000938723,0.001054646,0.001065974,0.001164602,0.001236242,0.001096448,0.001114182,0.001049788,0.001142484,0.00104212,0.001144,0.001214942,0.001163086,0.001238798,0.001123571,0.001235431,0.001211929,0.001271909,0.001209385,0.001164127,0.00122049,0.001228901,0.001223669,0.001065445,0.00093957,0.000986813,0.00112854,0.001219368,0.001223055,0.001188345,0.001107646,0.000971879,0.001021205,0.001011517,0.001163895,0.001164342,0.001196368,0.001132834,0.001204688,0.001186211,0.001273763,0.001094491,0.00110741,0.001036269,0.001205258,0.001166991,0.001193241,0.000933772,0.001083619,0.000997029,0.001033754,0.000979786,0.001013817,0.000980501,0.000938992,0.00084753,0.00087238,0.000964377,0.001022731,0.001037972,0.001112338,0.001106071,0.001057378,0.000991198,0.000977477,0.001072907,0.001206549,0.001076047,0.000981598,0.000983027,0.001058987,0.00109479,0.001167763,0.001038045,0.001004436,0.000886624,0.00086938,0.000843312,0.00093537,0.000916681,0.001009048,0.000968988,0.000997602,0.000978246,0.001010596,0.001032303,0.001055978,0.001026906,0.000987613,0.000937885,0.000857449,0.000833884,0.000852737,0.000891944,0.000881486,0.000878968,0.000723909,0.00078459,0.000773925,0.00077893,0.0007511,0.000731245,0.000726031,0.00076696,0.000826725,0.000778511,0.000728833,0.000691762,0.000665781,0.000761842,0.000821388,0.000779361,0.000743314,0.000712514,0.000775862,0.000916405,0.000861932,0.000773255,0.000709957,0.000667683,0.00061886,0.000813377,0.000858016,0.000801076,0.000694357,0.000680033,0.000648783,0.00069033,0.000686148,0.000733257,0.000709138,0.000715223,0.000673877,0.000623041,0.000722798,0.000867324,0.000811314,0.00079895,0.000718512,0.000781636,0.000754337,0.000804696,0.000755007,0.000752775,0.000728434,0.000706589,0.000707448,0.00068438,0.000722374,0.000730305,0.000751568,0.00065416,0.000723364,0.000689116,0.000702622,0.000695368,0.00072225,0.0008389,0.000743972,0.000664359,0.000669525,0.000663536,0.000678415,0.00067138,0.000718851,0.000700043,0.000615228,0.000495855,0,0,0,0,0,0 +CENTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000719011,0.000719166,0.000719321,0,0,0,0.001488678,0.001489028,0.001487629,0,0,0,0.002379819,0.002378687,0.002377744,0,0,0,0,0.004884547,0.004884547,0.004886355,0,0,0,0.00263173,0.002633538,0.002629172,0,0,0,0.002335892,0.002336114,0.002335446,0,0,0,0.001551335,0.001551189,0.001550752,0,0,0,0.002079573,0.002078594,0.002080961,0,0,0,0.000803066,0.000803154,0.000802422,0,0,0,0.003015412,0.003014739,0.003014627,0,0,0,0.000692209,0.000688871,0.000688279,0,0,0,0.001178916,0.001175597,0.001236094,0,0,0,0.001035197,0.001032914,0.00111461,0,0,0,0.000916447,0.000888553,0.000906899,0,0,0,0,0.00096177,0.000939706,0.000923477,0,0,0,0.001158525,0.001144842,0.001077796,0,0,0,0.000568622,0.000728294,0.001014897,0.001152453,0.001057362,0,0,0,0.00064,0.00077918,0.000766898,0.000779841,0,0,0,0.000416652,0.000403354,0.000479075,0,0,0,0.000465749,0.000540386,0.000891627,0.000714723,0,0.000543232,0.000675844,0.00086373,0.00084024,0.000766284,0.001407496,0.001485951,0.001347996,0.000898193,0.000695679,0.000821137,0.000715856,0.000505213,0.000571298,0.000837521,0.001082386,0.000965964,0,0,0.000447573,0.000585394,0.000582547,0.00072711,0,0,0.000506112,0.000834754,0.001041667,0.00100447,0.00071582,0.000462727,0.000660764,0.000681708,0.000855297,0.000735767,0.000528001,0.000469102,0.000697194,0.000832572,0.001039594,0.001031019,0.000933097,0.000819627,0.000994704,0.00106291,0.001193273,0.001081154,0.00124257,0.000988405,0.000775203,0.000610148,0.000843304,0.00083673,0.000942589,0.000634993,0.000655041,0.000656404,0.00080997,0.000910301,0.001291309,0.001051454,0.000966619,0.000675895,0.000743744,0.00073458,0.00079071,0.000637678,0.00070979,0.000637498,0.000757427,0.000758606,0.000919148,0.001108063,0.00090806,0.000846421,0.000782266,0.000807634,0.000837552,0.000946963,0.000956073,0.00080888,0.000723892,0.000726513,0.000778073,0.000786509,0.000800448,0.000669503,0.00070223,0.000868819,0.001030663,0.001280414,0.000926552,0.000840111,0.000901875,0.001242413,0.001416024,0.001586633,0.000889736,0.000878552,0.000903094,0.000955759,0.000960558,0.000984347,0.000883757,0.000812019,0.000745862,0.001033003,0.001126281,0.001377152,0.00099094,0.000847662,0.000757442,0.000825804,0.000863982,0.000926878,0.000719398,0.000713242,0.00069175,0.000971296,0.001022806,0.001180539,0.000760329,0.00070553,0.000644749,0.000778211,0.000843621,0.000907423,0.000681319,0.000673751,0.000629,0.000767984,0.000760786,0.000879953,0.000592039,0.000690719,0.00068141,0.000938972,0.001014067,0.001031794,0.000875693,0.000789995,0.00081732,0.000960746,0.000989665,0.001048781,0.000840251,0.000780781,0.000646316,0.000843781,0.000890495,0.001009311,0.000847723,0.000785135,0.000745917,0.000915992,0.000915037,0.001001863,0.000840987,0.000731848,0.000705025,0.00077609,0.000888085,0.000924041,0.001000676,0.000766351,0.000665025,0.000741511,0.000777536,0.000890556,0.00090915,0.000837086,0.000715845,0.000735152,0.000752385,0.000778004,0.000805523,0.000747681,0.00065184,0.000744523,0.000999768,0.00109396,0.00121025,0.001040762,0.000893698,0.00090433,0.000882108,0.000908488,0.000970741,0.001207315,0.001005783,0.000897871,0.000898171,0.000942164,0.000927709,0.000884867,0.00077427,0.000722794,0.000843354,0.000891481,0.000961939,0.000966,0.000855134,0.000812637,0.000813817,0.000833547,0.000889376,0.001096618,0.001068451,0.000821645,0.000745184,0.000742557,0.000766711,0.000857764,0.000991211,0.001103268,0.001084179,0.000495855,0.000571723,0,0,0,0,0 +EDUCATIONAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000588378,0.000585541,0.000585037,0,0,0,0.000465362,0.000464051,0.000463535,0,0,0,0.001734654,0.001730828,0.00175551,0,0,0,0.000558809,0.000555346,0.000552987,0,0,0,0,0.000437168,0.000437072,0.000398774,0.001912412,0.001592103,0.002180549,0.000193087,0.000209888,0.000247363,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000205281,0.000400707,0.000490893,0.000607377,0.000639693,0.000625042,0.00033583,0.000236037,0.00021197,0.000138043,0.000158712,0.000144264,0.000195769,0.000181427,0.00022651,0.000256158,0.000228071,0.000233793,0.0002288,0.000259658,0.000241,0.000193113,0.000228691,0.00021942,0.000273423,0.000193027,0.000237612,0.000217474,0.00025305,0.000271953,0.000329664,0.000220838,0.000206247,0.000223813,0.000314795,0.000343112,0.00033961,0.000311941,0.000271082,0.000321922,0.000367691,0.000425035,0.000486564,0.000454942,0.00036723,0.000390174,0.000420733,0.000456852,0.000444009,0.000463054,0.000422931,0.000406186,0.000455074,0.000632177,0.000702105,0.000749099,0.00052853,0.000608789,0.000652021,0.000680778,0.000656223,0.000611372,0.000458124,0.000508991,0.000629643,0.000700708,0.000710663,0.000645667,0.000451711,0.000634278,0.000666217,0.000715153,0.000642666,0.000689581,0.000693907,0.000789513,0.000690256,0.000720261,0.00065404,0.000678012,0.000657669,0.000718319,0.000719373,0.00075567,0.000763767,0.000826873,0.000903614,0.000948945,0.000794526,0.000738592,0.000666975,0.000787902,0.00096103,0.001019093,0.00079613,0.000721664,0.000675677,0.000757291,0.001001117,0.00093629,0.000870445,0.000870391,0.00090515,0.000969749,0.001187124,0.001142607,0.000980699,0.001037623,0.001094397,0.001220025,0.001305618,0.001223138,0.001096498,0.001072995,0.001048496,0.001114909,0.001106562,0.001129765,0.001040425,0.001001802,0.001029743,0.001022383,0.001181542,0.001095042,0.00106627,0.001015813,0.001061519,0.00117898,0.001333421,0.001342255,0.001075014,0.000970881,0.000990431,0.001011406,0.00110809,0.001159755,0.001176457,0.001076883,0.001150896,0.001141491,0.001261683,0.001239002,0.001186894,0.001075482,0.00106713,0.001065107,0.001137758,0.001260525,0.001172596,0.001053164,0.001075297,0.001097499,0.001149374,0.001282731,0.001191185,0.001075598,0.001086483,0.00108342,0.001113779,0.001118403,0.001157107,0.001082896,0.001130211,0.001120778,0.001179116,0.001154473,0.001172428,0.001085746,0.001103665,0.001108104,0.001173613,0.001266604,0.00118097,0.001198473,0.001208945,0.001652851,0.002515579,0,0,0,0,0 +COLLEGE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002060157,0.002063558,0.002062706,0,0,0,0.002811951,0.002814424,0.00281591,0,0,0,0.007046304,0.007047825,0.007049345,0,0,0,0.002350545,0.002351097,0.002348888,0,0,0,0.0008726,0.000872185,0.000951098,0,0,0,0,0.000962108,0.000962108,0.000962464,0,0,0,0.001029807,0.001030515,0.001028807,0,0,0,0.002669591,0.002669845,0.002669082,0,0,0,0.001269274,0.001316161,0.001315789,0,0,0,0.004943891,0.004941564,0.004947191,0,0,0,0.005621464,0.005622079,0.005616953,0,0,0,0.00096791,0.001004913,0.00093044,0,0,0,0,0.004374333,0.004404983,0,0,0.020833333,0.006856327,0.006806088,0.0065822,0,0,0,0.015192211,0.015158706,0.014991501,0,0,0.005136986,0.008538603,0,0.008294809,0,0,0,0,0.003759645,0.00373697,0.003735885,0.002294894,0.001910524,0,0.000540645,0.000686905,0.000812764,0.001675822,0.000978075,0,0.001912639,0.001924778,0.0014861,0.000658545,0.000528681,0,0,0,0,0,0.000383449,0,0,0,0,0.006735877,0.005704572,0.006741265,0,0.01208491,0.010339375,0.009709086,0.001462221,0.000851098,0,0,0.012765957,0.010173229,0.009467809,0.000458313,0.00052682,0.008862013,0.014814481,0.011848173,0.006183715,0.000734328,0.000724533,0.008027816,0.010885041,0.009064595,0.003386498,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00036342,0.000357085,0,0,0,0,0.000622494,0.000555048,0.000423538,0.000279848,0.000223943,0.001621041,0.00182147,0.00174037,0.00103335,0.000489898,0.000554119,0.000973652,0.001084073,0.000618431,0.000471398,0.000270167,0.000224771,0.000394406,0.000532604,0.000640394,0.000613872,0.000559611,0.000416855,0.000560989,0.00066275,0.0007252,0.00067812,0.000636795,0.00058749,0.000513589,0.000706744,0.000714254,0.000683406,0.000582757,0.000561547,0.000565655,0.000733323,0.000706029,0.00077597,0.000702061,0.000688399,0.000445629,0.000629609,0.000678481,0.000726765,0.000751224,0.000758782,0.000755666,0.00073733,0.00077148,0.000727958,0.000763022,0.000753408,0.001090983,0.000954376,0.001042214,0.000954277,0.001295895,0.001292818,0.001448778,0.000698509,0.000840275,0.001013258,0.001083905,0.001074684,0.000938205,0.000757042,0.00072916,0.000601692,0.000740439,0.000765985,0.000935809,0.00087519,0.000794805,0.000696625,0.000666234,0.000639829,0.000695666,0.000642927,0.000770961,0.00069922,0.000736684,0.000677696,0.000654082,0.000436307,0.00047959,0.000610422,0.000683752,0.00070452,0.000738103,0.000981561,0.000929966,0.00074553,0.000620076,0.000581172,0.000692729,0.000875666,0.001081371,0.000873531,0.000917746,0.000853139,0.00092103,0.000928143,0.000819254,0.000832304,0.000884483,0.000943182,0.000991109,0.001016919,0.000870286,0.000726663,0.000821689,0.00083711,0.000856327,0.000641465,0.000674271,0.000821752,0.001009543,0.000998149,0.000999788,0.000704511,0.000633868,0.000591399,0.000748285,0.000770556,0.000797867,0.000742055,0.000660955,0.000710846,0.000748022,0.000867135,0.00094206,0.00110374,0.000893621,0.000801896,0.000712179,0.000755682,0.000734782,0.000770802,0.000666965,0.000719025,0.000773628,0.000826682,0.0008382,0.000979326,0.001092682,0.001067735,0.000802564,0.000820435,0.000811922,0.000876667,0.001005484,0.000978799,0.000903518,0.000910188,0.000873458,0.000938904,0.000773987,0.000851262,0.000787492,0.000956151,0.000938295,0.000965332,0.000740913,0.000787876,0.000714192,0.000834766,0.000840583,0.000922969,0.000736338,0.000697361,0.000724222,0.000722967,0.000735921,0.000753467,0.00073952,0.000734478,0.000859653,0.001054063,0.001614708,0.00125779,0,0,0,0,0 +VARIOUS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000240442,0.00024039,0.000209881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000337227,0.000594001,0.000625469,0.000497996,0.000701972,0.00102676,0.001134121,0.001063731,0.000837841,0.000710503,0.000759222,0.000775013,0.000912224,0.00102428,0.000885139,0.00113858,0.001203732,0.001241268,0.001264276,0.001276121,0.001297595,0.001157035,0.001141273,0.00115101,0.001216221,0.00112206,0.001080305,0.001045206,0.001094991,0.001083799,0.001099486,0.001060438,0.001009944,0.000959588,0.00114707,0.001127534,0.001120528,0.000933117,0.000956964,0.001014048,0.001169933,0.00116789,0.001171861,0.001048661,0.00105837,0.000988137,0.001063565,0.001072912,0.001148253,0.001078157,0.001137354,0.000984063,0.001097364,0.001065453,0.001096444,0.001048745,0.001010299,0.000962724,0.001143265,0.001082526,0.001055914,0.000926576,0.000863544,0.000969414,0.001079051,0.001099084,0.001102593,0.001074684,0.000999727,0.000887006,0.000871204,0.001023906,0.00098966,0.001009965,0.000792782,0.000773555,0.000820255,0.001022823,0.001055259,0.001062598,0.000900512,0.00082136,0.000927627,0.001074229,0.001005315,0.000978276,0.000847515,0.000837325,0.000869656,0.000974586,0.000971422,0.000960826,0.000795639,0.000687093,0.000738279,0.000883248,0.000910204,0.000935824,0.000844069,0.000737983,0.000785079,0.000916379,0.000952111,0.000943523,0.000894543,0.000773072,0.000781635,0.000878619,0.000891115,0.00090346,0.000847996,0.000786389,0.00077126,0.000838911,0.00087015,0.000855646,0.0008265,0.000703342,0.000690628,0.00080932,0.00084115,0.000851903,0.00080792,0.000739552,0.000757842,0.000781687,0.000826794,0.000817256,0.000789517,0.0007167,0.000678819,0.000776482,0.000774069,0.000772221,0.000731361,0.0007018,0.000764137,0.00091663,0.000868998,0.000833492,0.000811862,0.000768818,0.000747681,0.0008148,0.000869393,0.000818286,0.000776334,0.000702218,0.000639561,0.000711823,0.000795625,0.000846494,0.000857562,0.000834401,0.000653198,0.000719994,0.000794343,0.000807779,0.000795194,0.00076202,0.000747898,0.00076846,0.000814786,0.000806534,0.00080454,0.000760899,0.000682296,0.000738462,0.000790347,0.000790718,0.000785568,0.000778519,0.000844159,0.000785204,0.000796996,0.000815439,0.000808307,0.000770391,0.000585203,0.000625088,0.000672041,0.000688367,0.000686569,0.000743239,0,0,0,0,0 +EXISTING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000367884,0.000396,0.000469102,0.000348597,0.000685647,0.00077007,0.000913188,0.000914435,0.000837841,0.000775094,0.000665779,0.000725805,0.000658828,0.000889949,0.0009589,0.000956891,0.000737148,0.000708281,0.000666236,0.000667063,0.000591609,0.000624432,0.000658691,0.000703395,0.000718789,0.000802367,0.000772562,0.000738717,0.000645079,0.000684086,0.00066303,0.000720506,0.000744532,0.000810318,0.000735575,0.00068857,0.000648189,0.00069006,0.000716754,0.000721864,0.000742653,0.000809023,0.000793557,0.000821489,0.000742716,0.000778267,0.000733493,0.000715275,0.000711686,0.000767356,0.000859762,0.000846351,0.000804734,0.000700717,0.000705315,0.000665008,0.000677041,0.000717869,0.00072519,0.000751562,0.000873529,0.000913074,0.001074228,0.00074366,0.00075643,0.000796772,0.000885011,0.000924418,0.000957431,0.000760291,0.000717323,0.000719382,0.000848796,0.000899323,0.001027756,0.000889305,0.000855492,0.000733944,0.000776885,0.000766092,0.000827497,0.000736392,0.000744163,0.000823227,0.000871586,0.000871125,0.000841533,0.000753913,0.000743897,0.000698478,0.000821147,0.000844909,0.000932081,0.000739058,0.000742075,0.000721695,0.000804961,0.000834005,0.00092832,0.000883927,0.000854906,0.000727021,0.000790394,0.000799129,0.000856016,0.000889375,0.000867323,0.000769643,0.000865418,0.000912757,0.001027421,0.000954439,0.000799825,0.000745568,0.000873,0.000897168,0.000974673,0.000965291,0.000912356,0.000795645,0.00085498,0.000912639,0.001012234,0.001053078,0.000947803,0.000787163,0.00086523,0.00089976,0.000997334,0.00102265,0.000918192,0.000829734,0.000872557,0.000908138,0.000992628,0.000968165,0.000904563,0.000781942,0.000818057,0.000933722,0.000968904,0.000994007,0.00077317,0.000727602,0.000739829,0.000860911,0.000909118,0.001006617,0.000960522,0.000854501,0.000825693,0.000909036,0.000928185,0.000979604,0.000911908,0.000910111,0.000907283,0.000959303,0.000963672,0.000977714,0.000867474,0.000843998,0.000867353,0.000922838,0.000946321,0.000950911,0.000984757,0.000857879,0.000877648,0.000933606,0.000973644,0.00101451,0.001049282,0.000966267,0.00092259,0.000938536,0.000965143,0.000998491,0.001006068,0.000944329,0.000778448,0.000735693,0.00066114,0.000628895,0,0,0,0,0 +CRITICAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00036503,0.00036507,0.000364737,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000341265,0.000340304,0.000339926,0,0,0,0.000279783,0.000279166,0,0,0,0,0.000357638,0.000355421,0.000331792,0,0,0,0,0.00041531,0.000415219,0.000419762,0,0,0,0.000444101,0.000438856,0.00044172,0,0,0,0.000672008,0.000728294,0.000616188,0,0,0,0,0,0,0,0.000522885,0.000584881,0.000725953,0.000580619,0.000493274,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000436967,0.000457933,0,0,0,0,0,0,0,0,0,0.000428249,0.000382595,0.000409226,0,0,0,0,0,0,0,0.000429,0.000500375,0.000423296,0.000293849,0.00025669,0.000279848,0.000317253,0.000382493,0.000374629,0.000432172,0.000528977,0.000641935,0.000705242,0.000752368,0.000629853,0.000543888,0.00052825,0.000561317,0.000619934,0.000631049,0.000581579,0.000548909,0.000556322,0.000522304,0.000514016,0.000468025,0.00054225,0.000517707,0.000586643,0.000546165,0.000609659,0.000527377,0.000566614,0.0005181,0.00055602,0.000556175,0.000650947,0.000678011,0.000615876,0.000541221,0.000554039,0.000571854,0.000598907,0.000527328,0.000513015,0.000554195,0.000623352,0.000644142,0.000666614,0.000636147,0.000714378,0.000696106,0.000690123,0.000639592,0.000689118,0.000680549,0.000692827,0.000632065,0.000706055,0.000702114,0.000703793,0.000606042,0.00067195,0.000692634,0.000671236,0.000652746,0.000612475,0.000626752,0.000662818,0.000752834,0.000679662,0.000695893,0.000665272,0.00075396,0.000649334,0.00069105,0.000714594,0.000725636,0.000730625,0.000687553,0.000623101,0.000581313,0.000670833,0.000749587,0.000800155,0.000807632,0.000753913,0.000692741,0.000646242,0.000670872,0.000713536,0.000769337,0.000874744,0.000783828,0.000717722,0.00076514,0.000776803,0.000837828,0.000748998,0.000760545,0.000721493,0.000768158,0.000773777,0.000813877,0.000791316,0.000810894,0.000822768,0.00087122,0.000874725,0.000843724,0.000754071,0.000700799,0.000783378,0.000842356,0.000860837,0.000914057,0.000913726,0.000821484,0.000739701,0.000788273,0.000852702,0.000871185,0.000852053,0.000797834,0.000840554,0.00092084,0.000952687,0.000979706,0.000938134,0.000916405,0.000887939,0.000896162,0.000935473,0.000983264,0.001076625,0.000913682,0.000905406,0.000893969,0.001008895,0.001022211,0.001075353,0.001028061,0.000940594,0.00092197,0.000992664,0.001009461,0.001076944,0.000986482,0.0009815,0.000935168,0.00097375,0.000977669,0.001015052,0.000981632,0.000989838,0.001008929,0.00103402,0.001044327,0.001028466,0.001017489,0.000947138,0.000951257,0.000964918,0.000988454,0.001023014,0.001087922,0.001019847,0.00098538,0.001070048,0.001096469,0.001124527,0.001044023,0.001129403,0.00107166,0.001081448,0.001096643,0.001168462,0.001290654,0.001205527,0.001117268,0.00110569,0.000902711,0.001086273,0,0,0,0,0 +SUMMER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005740528,0.005749329,0.005760369,0,0,0,0.008114856,0.00812754,0.008142812,0,0,0,0.02039555,0.02042922,0.020420792,0,0,0,0.026010545,0.026033421,0.026047166,0,0,0,0.040264596,0.040273283,0.040281974,0,0,0,0.002820653,0.002821317,0.002818666,0,0,0,0,0,0,0,0,0,0,0.000814091,0.000814091,0.000814393,0,0,0,0.000858173,0.000858762,0.000857339,0,0,0,0.025218096,0.025220501,0.025213288,0,0,0,0.026607747,0.026605246,0.026597744,0,0,0,0.022012085,0.022001726,0.022026778,0,0,0,0.019565614,0.019567757,0.019549914,0,0,0,0.020735612,0.020730981,0.02073021,0,0,0,0.01733984,0.017256226,0.017241379,0,0,0,0.017900909,0.017850514,0.017830655,0,0,0,0.014996363,0.01496329,0.01488004,0,0,0,0,0.007263923,0.007255193,0,0,0,0,0.006120352,0.006119015,0.005687781,0,0,0,0.000946129,0.000934954,0.000901108,0,0,0,0,0.00052021,0.000471202,0,0,0,0,0,0,0,0,0,0,0,0,0.004201243,0.003630182,0.004140574,0.000422369,0,0.000527105,0.000716538,0.000667536,0.000729513,0,0,0,0.000355707,0,0,0,0,0,0,0.000380005,0,0,0,0,0.000457038,0.00036414,0,0,0,0,0.000406884,0.000402459,0.000388365,0,0,0,0.000389317,0.000417377,0.000409226,0,0,0,0.000561649,0.000486934,0.000506842,0,0.000363,0.000500375,0.000597595,0.000457098,0.000308028,0.00038295,0.000410563,0.000983553,0.001136804,0.001132992,0.001045652,0.000692614,0.000705242,0.000988405,0.000950835,0.000601866,0.000480873,0.00029902,0.000268275,0.000654714,0.001059085,0.000903413,0.000645845,0.000380535,0.000363573,0.00075974,0.000906369,0.000782723,0.000540905,0.000379215,0.000428609,0.000630784,0.000959588,0.000865633,0.000740213,0.00055004,0.000488909,0.000596649,0.000842175,0.000980709,0.000831059,0.000707339,0.000539246,0.000713007,0.001136794,0.001136915,0.000978117,0.000780878,0.000636605,0.000597593,0.001052918,0.001021989,0.00079909,0.000657225,0.000570581,0.000876996,0.000840296,0.0009372,0.000666064,0.000685658,0.000555271,0.000764705,0.000677262,0.000658003,0.00061231,0.000540618,0.000498349,0.000430652,0.000734298,0.000736262,0.000576683,0.000458711,0.00039434,0.000449515,0.000686036,0.000755652,0.000548731,0.000405331,0.00029225,0.0003671,0.000518306,0.000645216,0.000518439,0.00040588,0.000306146,0.000297129,0.000433099,0.000645847,0.00057311,0.000489468,0.000370936,0.000369874,0.00055718,0.000704117,0.000568086,0.000416229,0.000296306,0.000368207,0.000691171,0.000826598,0.000626123,0.000456852,0.000317447,0.000326273,0.000465212,0.000767006,0.000660667,0.000513945,0.000419192,0.000419726,0.000607566,0.000917894,0.000938163,0.000691986,0.000570925,0.000448369,0.000579587,0.000848745,0.001035581,0.000863115,0.000737623,0.000549676,0.000634429,0.000809832,0.00114036,0.000837425,0.000746427,0.000509336,0.000638945,0.000843164,0.001121998,0.000832673,0.00076235,0.000549691,0.000700205,0.000879031,0.001412982,0.001154669,0.000938338,0.000606555,0.000662671,0.000796535,0.001099266,0.000879721,0.000707846,0.000525101,0.000562614,0.000861402,0.001343684,0.00106623,0.000819566,0.000669235,0.00060535,0.000822002,0.000896619,0.000959047,0.000772772,0.000723501,0.000629917,0.000721808,0.000858525,0.000788502,0.000679125,0.000609925,0.000629417,0.000808908,0.001472807,0.001213847,0.000884186,0.000589816,0.000551766,0.000670594,0.000763691,0.001185517,0.00081664,0.000767288,0.00051065,0.000691422,0.000888518,0.001010862,0.000963714,0.000737426,0.000800412,0,0,0,0,0 +ALGORITHMS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000221195,0,0,0,0,0.000262301,0.000284097,0.000251857,0,0,0,0.000289631,0.00028621,0.0002827,0,0,0,0,0,0,0,0,0,0,0,0.000502857,0,0.000418308,0.000487401,0.000518538,0,0,0.000520815,0.000432165,0.000376416,0,0,0,0,0,0,0,0,0,0.000355707,0.000431865,0.000458313,0,0,0,0.000744945,0.000794556,0.000850274,0,0,0,0.000685558,0.000873935,0.001040756,0.000681857,0.000660328,0.000777651,0.001098588,0.00102444,0.000815566,0,0,0,0.000856498,0.000869535,0.00093006,0.000652905,0,0.000694091,0.000958108,0.00100633,0.001235428,0.001072994,0.000759001,0.000375281,0.000672294,0.001403944,0.001809664,0.001855834,0.001436969,0.000546418,0.000348792,0.000467213,0.00055358,0.000861545,0.000654868,0.00057534,0.000575346,0.000880712,0.000919107,0.000936403,0.00073957,0.000548224,0.000621371,0.000814215,0.000942123,0.000927711,0.000717742,0.000394295,0.000482,0.000630698,0.000896868,0.000908685,0.000849828,0.000420523,0.000447808,0.000614045,0.000836613,0.000899694,0.000866067,0.000701257,0.000779155,0.001039715,0.001131688,0.001171861,0.000998178,0.00075757,0.000623779,0.00081703,0.000969499,0.001084004,0.001037431,0.000724822,0.000688557,0.000786998,0.001027617,0.001038736,0.000978426,0.00045253,0.000492492,0.000634046,0.000921181,0.000959922,0.001002525,0.000608643,0.000629455,0.000801998,0.001086274,0.001067887,0.001072782,0.000719034,0.000542601,0.000617892,0.00075616,0.000819901,0.000841165,0.000751917,0.000635218,0.000606871,0.000689714,0.000842111,0.000903705,0.00085792,0.000492816,0.000507103,0.000838168,0.000956046,0.001004716,0.00078769,0.000503678,0.000543535,0.000756685,0.001066954,0.00116175,0.001078387,0.000401285,0.000451698,0.000541602,0.00097278,0.001045652,0.001152989,0.00038276,0.000460479,0.000725639,0.001020841,0.001147439,0.001143763,0.000763951,0.000591451,0.000655218,0.000873707,0.000900079,0.000876832,0.000532159,0.000466564,0.000699487,0.001044037,0.001094397,0.001115149,0.000686842,0.000534328,0.000477387,0.000680892,0.000870284,0.00104957,0.000960865,0.000573881,0.000755677,0.000934743,0.000997831,0.000958368,0.000873901,0.000721691,0.000646449,0.000673953,0.000808668,0.000823132,0.00087087,0.000501522,0.000568685,0.000719171,0.000944273,0.001007804,0.000944406,0.00055014,0.00049031,0.000726685,0.000937121,0.001020023,0.000991922,0.000521561,0.000459392,0.000707736,0.00088124,0.000946922,0.000903253,0.000539439,0.00051761,0.000709638,0.000844354,0.000878835,0.000840386,0.000441347,0.00048519,0.000786481,0.0008942,0.000944983,0.00079483,0.000473621,0.000539434,0.000746697,0.000980877,0.00107216,0.001085055,0.000699521,0.000579043,0.00063971,0.000915718,0.001054418,0.001100768,0.001022101,0.000569276,0.000554434,0.000529182,0.000788283,0.001200617,0,0,0,0,0 +OCEAN,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001480166,0.001480166,0.001480714,0,0,0,0.001373076,0.00137402,0.001371742,0,0,0,0.001048768,0.001048868,0.001048568,0,0,0,0.001316284,0.001316161,0.001315789,0,0,0,0.00070627,0.000705938,0.000706742,0,0,0,0.001022084,0.001022196,0.001021264,0,0,0,0.000856228,0.000856037,0.000856005,0,0,0,0.000692209,0.000688871,0.000688279,0,0,0,0.001085844,0.001082787,0.001081582,0,0,0,0.001426893,0.001451662,0.001560454,0,0,0,0.002324646,0.002288025,0.002300427,0.003023256,0.003479017,0.003412241,0,0.001683097,0.001660875,0.00167905,0,0.001592103,0,0.002123962,0.00221336,0.002120254,0.001675822,0.001548618,0.002409375,0.002739726,0.002601051,0.002066041,0.001865876,0.002379064,0.003253502,0.003879386,0.002782125,0.001737143,0.000701262,0.001010911,0.001900863,0.003370495,0.003715961,0.002511211,0.001319399,0.001008384,0.001403004,0.003970265,0.004466162,0.003081539,0.000788191,0.000921835,0.001459026,0.002552583,0.003028009,0.001765505,0.000889268,0.000664408,0.000687469,0.001149425,0.001720273,0.002161383,0.001951046,0.001520019,0.001275412,0.001062648,0.002147569,0.002158637,0.001675807,0.001165247,0.000999126,0.001477357,0.00191495,0.002093677,0.001383407,0.001061027,0.000815566,0.000838973,0.000977099,0.001119445,0.000817566,0.000869535,0.00093006,0.001808046,0.001762018,0.001665818,0.001024184,0.001136179,0.001108718,0.001348907,0.001485001,0.001501126,0.000946192,0.000571373,0.000333697,0.000500781,0.00057852,0.000637488,0.000413383,0.000385451,0.000319846,0.000506791,0.000554119,0.001357212,0.000932666,0.000651561,0.000563782,0.000771156,0.001073101,0.001372532,0.000915221,0.000660978,0.000517955,0.00065661,0.000959079,0.001006575,0.000851358,0.000581393,0.000554825,0.000508005,0.000727896,0.000813471,0.000728068,0.000633234,0.000609385,0.000613428,0.000723585,0.000929843,0.001102849,0.000917635,0.000698845,0.000689744,0.000837552,0.001136355,0.000909435,0.000607169,0.000479722,0.000439862,0.00059588,0.000994703,0.000958242,0.000802517,0.000581156,0.000535398,0.000584645,0.001006791,0.001196448,0.00100853,0.000706055,0.000619835,0.00061603,0.000988394,0.000961447,0.000798352,0.000593095,0.000608696,0.000623887,0.000922825,0.000753793,0.00079308,0.000920927,0.000971601,0,0.001123788,0.001504761,0.001201996,0,0.000704671,0.000648341,0.000876174,0.001127246,0.000944118,0.000741054,0.000621723,0.000637341,0.000723878,0.001154931,0.000952785,0.000708926,0.000557092,0.000565419,0.000802215,0.001085491,0.000804705,0.000667402,0.00067412,0.000763074,0.000847189,0.000916971,0.000771869,0.000584658,0.000450787,0.000484989,0.000609204,0.001049007,0.000982269,0.000603454,0.000614248,0.000626252,0.000828772,0.001060009,0.001146416,0.000783378,0.000719067,0.00070513,0.000765883,0.000919914,0.001014132,0.000796888,0.000791527,0.000803954,0.00097386,0.00131312,0.00115376,0.000896682,0.000610077,0.000723077,0.000758901,0.001098715,0.000848523,0.000691032,0.00071872,0.000865616,0.001007611,0.00112607,0.001187239,0.001070026,0.000883981,0.000822282,0.000822668,0.000920597,0.000862382,0.00078764,0.000705091,0.000801494,0.00088573,0.001079043,0.001043122,0.000945439,0.00072701,0.000804799,0.000796068,0.000892346,0.000862368,0.000939549,0.000862107,0.000993265,0.001024014,0.001123252,0.001565367,0.001223144,0.000902734,0.000793091,0.000803871,0.000916981,0.000947243,0.000786503,0.000653824,0.000741835,0.000811796,0.000910371,0.001059801,0.000973438,0.000845121,0.000702551,0.000694903,0.000698281,0.001208485,0.00129036,0.001506492,0.000963714,0.000928139,0,0,0,0,0,0 +FLOW,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000790912,0.000791082,0.000791253,0,0,0,0.001488678,0.001489028,0.001487629,0,0,0,0.001348564,0.001347923,0.001347388,0,0,0,0,0.001702191,0.001702191,0.001702821,0,0,0,0.001945191,0.001946528,0.001943301,0,0,0,0.001239453,0.001239571,0.001239216,0,0,0,0.001269274,0.001269155,0.001268797,0,0,0,0.001687201,0.001686407,0.001688327,0,0,0,0.001423617,0.001423773,0.001422475,0,0,0,0.001563547,0.001563198,0.00156314,0,0,0,0.001349808,0.001343299,0.001342143,0,0,0,0.001023795,0.001020913,0.001019778,0,0,0,0.00114711,0.001116663,0.001142475,0,0,0,0.001475256,0.001443899,0,0,0,0,0,0.001289646,0.00126751,0.001238299,0,0,0,0.001216451,0.001183003,0.001130802,0,0.001630125,0.002190341,0.001654174,0.001248504,0.001123636,0.001042696,0.001321702,0.001807501,0.002204197,0.001651887,0.000868571,0.000584385,0.000522885,0.000779841,0.001244491,0.001857981,0.001300448,0.000972188,0.000576219,0.00088971,0.000929211,0.001261034,0.001338037,0.001253941,0.001080772,0.00081057,0.00091893,0.001281081,0.001131734,0.000853698,0.00083051,0.000725662,0.000862069,0.000886201,0.001170749,0.001206101,0.001036377,0.001082167,0.000869439,0.001022652,0.001056354,0.001028336,0.000910349,0.000874235,0.001363714,0.00191495,0.001435664,0.001342719,0.001390312,0.001786477,0.001845741,0.001770992,0.001119445,0.00112902,0.001078223,0.001153274,0.001356034,0.001486702,0.001480727,0.001420642,0.001298491,0.001203751,0.001502192,0.002079002,0.002126595,0.001967082,0.001763093,0.001963678,0.002076767,0.001884856,0.001238548,0.00102054,0.001086271,0.001193273,0.001165619,0.001376902,0.001268699,0.001071961,0.000828256,0.000855148,0.000823615,0.000938964,0.000879525,0.001007049,0.000933145,0.000942123,0.000838173,0.000814904,0.000865526,0.000893271,0.000891606,0.000906811,0.00095877,0.001049353,0.000961688,0.000856013,0.000901879,0.000871041,0.000846531,0.000849304,0.001034451,0.001045558,0.001035645,0.000949107,0.000971272,0.000982115,0.001047229,0.000909435,0.000829255,0.000833051,0.00090114,0.00096241,0.001002414,0.000932421,0.000791432,0.000717364,0.000708521,0.000745372,0.000747201,0.000893163,0.000782651,0.000803965,0.000696629,0.000784805,0.000795917,0.000873801,0.000801998,0.000896689,0.000962433,0.001027131,0.000980501,0.000919497,0.000890143,0.000866495,0.000841572,0.000853931,0.000870425,0.000776378,0.000785017,0.000782321,0.000823475,0.000825677,0.000906596,0.000937483,0.000898767,0.000803804,0.000801202,0.000790414,0.000821591,0.000757121,0.000792922,0.000856681,0.000883404,0.000904156,0.000887697,0.000828553,0.000766747,0.000809093,0.000935803,0.000996458,0.001039094,0.000947262,0.000796402,0.000797512,0.000756029,0.000850934,0.000900562,0.00096235,0.000852693,0.000742399,0.000794128,0.000790211,0.000876832,0.000879032,0.000936938,0.000863724,0.000788907,0.000730339,0.000674478,0.000674466,0.000754238,0.000816779,0.000828134,0.000813544,0.000773695,0.000687913,0.000689857,0.000794008,0.00082434,0.000838271,0.000786734,0.000694726,0.000675246,0.000787628,0.000793604,0.000793481,0.000748217,0.0007656,0.000831614,0.000906653,0.000855014,0.000866463,0.00088534,0.000837268,0.000845389,0.000830524,0.000950136,0.000818286,0.000862342,0.000783041,0.000889722,0.000741613,0.000786374,0.000827818,0.000838826,0.00083372,0.000666042,0.000706501,0.000701168,0.000757097,0.000750386,0.000741869,0.000723982,0.000735048,0.000742001,0.000742245,0.000746356,0.000760899,0.000567408,0.000562769,0.000587885,0.000658574,0.000682574,0.000655904,0.000589071,0.000618482,0.000757088,0.000745785,0.000729889,0.00067915,0.000571174,0.000578206,0.000630039,0.000739995,0.000940853,0.001314962,0,0,0,0,0 +PROCESSING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000431898,0,0,0,0.000474539,0.000474591,0.000474158,0,0,0,0.000632864,0,0.000595482,0,0,0,0.000553767,0.000551097,0.000516209,0,0,0,0.000620482,0.000618735,0.000618047,0,0,0,0.000587544,0.000586248,0.000557305,0,0,0,0.001005856,0.000999622,0.000995377,0,0,0,0,0.000721327,0.000743023,0.00067162,0,0,0,0.001023364,0.001011277,0.001042458,0.001675822,0.001548618,0.001314204,0.00087878,0.001248504,0.001304868,0.001481725,0.001268834,0.001265251,0.001058014,0.001130238,0.001142857,0.001519402,0.001464078,0.001413462,0.000985222,0.000987052,0.00103139,0.000833304,0.00089314,0.00088971,0.001140395,0.000998319,0.000932571,0.001218114,0.001525795,0.001823782,0.001582602,0.001106388,0.000950656,0.000995981,0.001195934,0.001374938,0.001724138,0.001876662,0.00153098,0.001277049,0.001312744,0.001507305,0.001738878,0.001329447,0.001515639,0.001447288,0.001638628,0.001540319,0.001534178,0.000924459,0.00095711,0.00130203,0.00153666,0.001786477,0.001845741,0.001709924,0.00151125,0.001012225,0.001704289,0.001636905,0.002109387,0.001211387,0.001018,0.001387604,0.0017205,0.001900659,0.002084675,0.001518002,0.001532399,0.001444187,0.002367115,0.002335879,0.002503903,0.001716898,0.001001767,0.001085131,0.001319878,0.001611534,0.001554159,0.001343319,0.001194937,0.001120411,0.001256188,0.001326546,0.001348211,0.001305123,0.00098207,0.000933587,0.000985749,0.001123301,0.001265964,0.001297578,0.001022603,0.000916847,0.000840246,0.00096647,0.000932535,0.001008709,0.000775555,0.000895615,0.000925332,0.000993262,0.000983529,0.000975024,0.000941466,0.001079932,0.001043784,0.001087617,0.001043413,0.001032598,0.000876405,0.000953158,0.000982066,0.001138982,0,0.001358949,0.001218318,0.001121774,0.000942181,0.000929244,0.000932939,0.000916145,0.000898044,0.000773518,0.000806428,0.001128033,0.001190303,0.001311384,0.001043016,0.001022533,0.00096422,0.001078588,0.001073226,0.001122236,0.000861303,0.000848017,0.000989574,0.000960647,0.001008924,0.000970247,0.00108088,0.000954239,0.000935756,0.000964771,0.000987704,0.000994501,0.000945132,0.000787373,0.000806004,0.000869543,0.000940797,0.000986626,0.000967164,0.000859782,0.000873919,0.000856681,0,0.000941507,0.000989617,0,0.000910987,0.000786581,0.000877967,0.00088091,0.000948602,0.000798564,0.000717139,0.000721493,0.000836888,0.000886206,0.000981228,0.000775353,0.000783725,0.000711068,0.000826457,0.000829087,0.000862948,0.000747608,0.000738886,0.000749112,0.000930012,0.000966124,0.001003538,0.000843598,0.000736064,0.000693703,0.000780138,0.000784774,0.00081518,0,0.00067386,0.000703656,0.000807167,0.000780674,0.000836833,0.000750507,0.000755632,0.000687317,0.000686162,0.000704642,0.000724806,0.00067628,0.000559881,0.000628546,0.000722167,0.000778761,0.000778725,0.000778738,0,0.000697583,0.000717296,0.000811181,0.00081632,0.00078619,0.000549881,0.000555034,0.000698485,0.000734439,0.000759555,0.000752597,0.000695399,0.000688103,0.000684227,0.000740377,0.000755763,0.000735898,0.000560923,0.000559276,0.000690445,0.000705425,0.000736324,0.000648079,0.000494723,0.000550415,0.000654753,0.000698862,0.000702405,0.000726449,0.000738968,0.000672263,0.000611539,0.000738579,0.00079383,0.000839556,0.000761566,0.000625088,0.000571235,0.00063674,0.000673854,0,0,0,0,0,0 +EXPERIENCE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000192517,0.000220933,0.000279929,0.001475329,0.001614778,0.001471722,0.000787314,0.000354754,0.000503745,0.000752368,0.001114355,0.000933168,0.000855148,0.000632138,0.000561928,0.000564,0.000930526,0.000855383,0.000801444,0.000654123,0.000645655,0.000891171,0.001005912,0.000920368,0.000789483,0.00062487,0.000613354,0.000734192,0.001026606,0.000942389,0.000848663,0.000652278,0.000617422,0.000480419,0.000842175,0.000913565,0.00089087,0.000714377,0.000548424,0.000408494,0.000769522,0.000861855,0.0007598,0.000601309,0.000475847,0.000451086,0.000897993,0.000975435,0.000917137,0.000759816,0.00068309,0.000606881,0.000690045,0.000776707,0.000843956,0.00080222,0.000739236,0.00062685,0.000754284,0.000800175,0.000760904,0.000712815,0.000675244,0.000645977,0.000659568,0.00066524,0.000712026,0.000644122,0.000617043,0.000555764,0.000697328,0.000806551,0.000789232,0.000705835,0.000642666,0.000630764,0.00078454,0.000884337,0.000905401,0.000808241,0.000733359,0.000612205,0.000590298,0.000778001,0.00074773,0.000724541,0.000655577,0.000701938,0.000785249,0.000871131,0.000746855,0.000645676,0.000556003,0.000602238,0.000861898,0.001062499,0.000850035,0.00071661,0.000570964,0.000587533,0.000743427,0.000865233,0.00078054,0.000669787,0.000600898,0.000606627,0.000682973,0.000992164,0.000954705,0.000917185,0.000826729,0.000835159,0.000814722,0.000986871,0.001008231,0.000984325,0.000889464,0.000824514,0.000805946,0.001023787,0.001132146,0.000916751,0.000861621,0.000769107,0.000922921,0.001114692,0.001113329,0.000892906,0.000799556,0.000718251,0.00088363,0.00109423,0.001200973,0.001006839,0.000876354,0.000754232,0.000819411,0.000947346,0.001216482,0.001050595,0.0009171,0.000769544,0.000805084,0.001019522,0.001409535,0.001065459,0.000922066,0.000794146,0.000810542,0.000860533,0.000987385,0.000927989,0.000872046,0.000804155,0.000811279,0.000967484,0.000993623,0.000939127,0.000830496,0.000795177,0.000796526,0.000980068,0.00135339,0.001166482,0.000938441,0.000765097,0.000744086,0.000865197,0.001020048,0.001259465,0.000981169,0.000927743,0.000767447,0.000901854,0.001089439,0.001195673,0.001204643,0.00083914,0.000686067,0,0,0,0,0 +INVESTIGATE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00033,0.000312735,0.000348597,0.000652997,0.00088558,0.000957375,0.000821125,0.00060106,0.000594238,0.000619058,0.000676598,0.000760186,0.000973906,0.000988405,0.000962948,0.000935929,0.000926213,0.000944272,0.001040473,0.001033343,0.000899916,0.000894264,0.000890967,0.000982428,0.000968482,0.000996958,0.000922086,0.000942966,0.000934652,0.00094446,0.000890472,0.00090309,0.000932171,0.001051126,0.001005312,0.001016246,0.000896798,0.000922095,0.00090806,0.000927808,0.0009979,0.001061009,0.00112209,0.001154923,0.000935669,0.000941316,0.000979553,0.001039523,0.001013853,0.000909883,0.000918076,0.000995387,0.001007942,0.000985838,0.000912126,0.000768249,0.000882033,0.00089559,0.00090877,0.000840617,0.000857378,0.000816726,0.000876457,0.000949638,0.000926151,0.000915713,0.000825509,0.000703654,0.000809027,0.000856999,0.000901802,0.000893343,0.000887975,0.000866339,0.000914714,0.000933798,0.000970299,0.000924808,0.000913636,0.000845751,0.000869509,0.000907013,0.000893448,0.000849298,0.000819637,0.00078769,0.000763538,0.000803579,0.000925334,0.00093922,0.000954387,0.000859751,0.000828553,0.000833174,0.000950783,0.000952869,0.000979297,0.00092832,0.000834361,0.000760545,0.000894264,0.000851038,0.000884002,0.000806654,0.00086201,0.000915391,0.000991681,0.000862102,0.000826552,0.000741196,0.000756226,0.000754121,0.000860179,0.000810287,0.000812642,0.000740867,0.00077347,0.000803309,0.000887641,0.000859047,0.000830326,0.000774732,0.000730331,0.000735847,0.000807698,0.000788357,0.000769777,0.000725502,0.000659229,0.000739555,0.000764098,0.000791162,0.000744885,0.000740725,0.0007018,0.000804259,0.000840556,0.000831042,0.000788652,0.000770801,0.000736081,0.000783791,0.000806223,0.000803672,0.000807306,0.000808021,0.000825027,0.000809482,0.000813736,0.00086424,0.000833464,0.000834022,0.000783274,0.000682555,0.000701595,0.000734109,0.000775384,0.00078205,0.000762766,0.000719634,0.000748122,0.000733914,0.000774389,0.000773107,0.000800768,0.0007245,0.000761797,0.000797777,0.000816502,0.00080412,0.000783558,0.00071267,0.000724252,0.00079817,0.000804631,0.000796846,0.000753467,0.000619273,0.000656342,0.000714044,0.000752902,0.00075014,0,0,0,0,0,0 +PLANT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003745318,0.003751172,0.003758221,0,0,0,0.002266172,0.002269913,0.002268977,0,0,0,0.001933216,0.001934916,0.001935938,0,0,0,0.00201323,0.002013664,0.002014099,0,0,0,0.002037139,0.002037618,0.002035703,0,0,0,0.003569729,0.00356803,0.003566616,0,0,0,0,0.003404381,0.00347839,0.003479677,0,0,0,0.002059614,0.002061029,0.002057613,0,0,0,0.002002193,0.002002384,0.002001811,0,0,0,0.002068447,0.002068252,0.002067669,0,0,0,0.00184415,0.001843282,0.001845381,0,0,0,0.001277605,0,0.001240107,0,0,0,0.001228501,0.001228227,0.001228181,0,0,0,0.001142145,0.001136638,0.00113566,0,0,0,0.001085844,0.001082787,0.001081582,0,0,0,0.001203066,0.001200413,0.001281801,0,0,0,0.000938799,0.000910767,0.000929019,0,0,0,0,0.001071062,0.00102712,0.00100743,0,0,0,0.001061981,0.001011277,0.001007121,0.000931012,0.000978075,0,0.00087878,0.001092441,0.001341114,0.001591483,0.001480307,0.001174876,0.001322518,0.001130238,0.000822857,0.000701262,0.000941193,0.000974801,0.000933368,0.000812867,0.001210762,0.001111073,0.000864329,0.000650173,0.000760264,0.000945776,0.000892024,0.00057323,0.000603961,0.00052687,0.001123137,0.001164619,0.001222273,0.000853698,0.001063052,0.001336745,0.001388889,0.001251108,0.000855548,0.001099681,0.001001831,0.001352709,0.001255857,0.001176049,0.000734855,0.000952163,0.001274488,0.001332168,0.001306892,0,0.001136568,0.000895146,0.000914679,0.000854402,0.000838973,0.001038168,0.001287361,0.002219108,0.002191228,0.00219494,0.001607152,0.001486702,0.001758364,0.001519757,0.001590651,0.001742271,0.001716791,0.001617002,0.001125844,0.001319688,0.000897871,0.000795739,0.000589154,0.000727816,0.000637488,0.001253068,0.001144673,0.001291688,0.0007264,0.000856366,0.000781872,0.000763091,0.000759234,0.000765133,0.000855091,0.001105729,0.001112224,0.001233559,0.000974313,0.001110512,0.001004813,0.001178477,0.001144418,0.001011151,0.001023087,0.001155389,0.001354681,0.001507521,0.001240887,0.001069255,0.001134278,0.001227376,0.001376123,0.001363357,0.001294032,0.001048422,0.001062096,0.001010492,0.001038135,0.000975231,0.000894973,0.000804501,0.000904642,0.001006843,0.001024697,0.000970984,0.00087904,0.000972587,0.001035291,0.001063939,0.001054766,0.001094954,0.001210255,0.001040632,0.000903516,0.000939108,0.000957179,0.001027841,0.000918166,0.001096899,0.000882197,0.000906937,0.000860984,0.00098909,0.0010997,0.001150183,0.001086637,0.000895918,0.000842776,0.000829817,0.000946025,0.001067167,0.000953375,0.000829316,0.000764073,0.00076893,0.000788962,0.000957309,0.001001837,0.000866555,0.00088449,0.000876691,0.000975141,0.000933569,0.000771607,0.000744745,0.000718101,0.000735431,0.000756186,0.000713075,0.000814195,0.000775987,0.000790739,0.000749346,0.000755137,0.000939001,0.000913409,0.000898411,0.000856092,0.000852037,0.000847588,0.001021641,0.001032427,0.00099713,0.00084801,0.000831623,0.00080848,0.000917813,0.000921703,0.000805827,0.000744723,0.000714769,0.000727397,0.000721906,0.000972331,0.00099207,0.001003849,0.00088307,0.000857702,0.000813323,0.000973797,0.000958286,0.0008317,0.000733974,0.000674476,0.000529074,0.000687751,0.000719515,0.000769999,0,0.000754772,0.000684255,0.000620063,0.00066596,0.000644257,0.00064622,0.000630328,0.000636879,0.000694579,0.000780493,0.000783017,0.000714305,0.000662412,0.000600401,0.000670241,0.000851365,0.000931313,0.000778305,0.000758594,0.000649661,0.000955944,0.000890486,0.00079152,0.00066775,0.000624923,0.000681414,0.000958787,0.000931158,0.000822873,0.000590289,0.000606581,0.000616693,0.00110199,0.001045926,0.000871146,0.000515149,0.000398541,0.00033677,0.001209699,0.001077414,0.000879161,0.000502594,0.000433108,0.000440749,0.000723487,0.000946562,0.000963259,0.000800227,0.000686569,0,0,0,0,0,0 +TEMPERATURE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001222318,0.001222582,0.001222846,0,0,0,0.00211549,0.002115987,0.002113999,0,0,0,0.001427891,0.001427212,0.001426647,0,0,0,0,0.001998224,0.001998224,0.001998964,0,0,0,0.002174037,0.002175531,0.002171925,0,0,0,0.00114411,0.001144219,0.001143892,0,0,0,0.001363294,0.001363166,0.001362782,0,0,0,0.001098642,0.001098125,0.001099376,0,0,0,0.001241102,0.001241238,0.001240107,0,0,0,0.001451865,0.001451541,0.001451487,0,0,0,0.001211366,0.001205525,0.001170074,0,0,0,0.001116868,0.001113724,0.001112485,0,0,0,0.001119132,0.001088747,0.001031014,0,0,0,0.001318789,0.001288402,0.001349289,0.002325581,0.002391824,0.002559181,0,0.001464513,0.001442339,0.00144818,0.001912412,0,0,0.001274377,0.001259326,0.001148471,0,0.000815062,0.001204687,0.001344017,0.001456588,0.00108739,0.001097574,0.001163098,0.001988251,0.001763357,0.001391062,0.000868571,0.000818139,0.000801757,0.001023541,0.001244491,0.001393485,0.001165919,0.001076352,0.000950762,0.001026589,0.000929211,0.000840689,0.000770385,0.000824018,0.000921835,0.001134798,0.00122524,0.001164619,0.000633771,0.000746985,0.000764069,0.001069396,0.001101533,0.001303237,0.000990634,0.000851366,0.001070923,0.001120816,0.001159252,0.000818121,0.001010426,0.001218769,0.001056005,0.000790975,0,0,0.000837471,0.000813769,0.000731743,0.00066022,0.00072711,0.000732824,0.000839584,0.000778634,0.001078223,0.001227679,0.001205364,0.000991135,0.000832909,0.000792917,0.000779094,0.000665231,0.000889052,0.000990001,0.001125844,0.000946192,0.000881546,0.000975422,0.001045748,0.001101054,0.000819627,0.000917194,0.000887705,0.00089803,0.000810866,0,0.000840882,0.000817597,0.000982863,0.000992541,0.001067552,0.001185487,0.001045175,0.001095817,0.000946868,0.000944255,0.000935172,0.001134597,0.001224559,0.001076641,0.000940912,0.000902834,0.00085383,0.001097387,0.001116799,0.001160644,0.000912539,0.000891698,0.000873112,0.001022518,0.001266912,0.001237482,0.00115976,0.001064007,0.001066288,0.001101438,0.00115121,0.001043519,0.000853705,0.000912047,0.000942325,0.001232485,0.001426512,0.001325472,0.001017556,0.000947405,0.000915306,0.000982445,0.001055903,0.001185319,0.001010511,0.000969447,0.000810448,0.000854003,0.000970187,0.001099555,0.000969688,0.000862102,0.000903699,0.000935831,0.001134306,0.001111194,0.001044024,0.000916513,0.00085602,0.000858186,0.001003237,0.001098222,0.000978824,0.000863871,0.00084444,0.000852632,0.000977583,0.00113291,0.001003898,0.000866555,0.000870413,0.000933746,0.001009041,0.00119022,0.000944259,0.000876083,0.000779284,0.000826877,0.000859751,0.001050848,0.00097172,0.000990509,0.000908307,0.000939256,0.000993848,0.001266687,0.00105495,0.000920525,0.000794437,0.000773777,0.000822305,0.000825523,0.00096555,0.000776454,0.000770918,0.000734431,0.000805276,0.000891959,0.000858859,0.000854272,0.000768953,0.000754808,0.000701418,0.000730156,0.000848745,0.000906289,0.000855793,0.000772786,0.000664797,0.000686068,0.000793835,0.000773474,0.000655874,0.000642908,0.000645716,0.000647397,0.000669887,0.000663787,0.000738255,0.000711476,0.000780992,0.00071775,0.000868089,0.000791919,0.00081506,0.000682488,0.000680754,0.000665648,0.000898492,0.000781922,0.000701335,0.000640032,0.000666184,0.000668629,0.000722161,0.000682033,0.000666876,0.000686663,0.000692776,0.000703515,0.000706408,0.000689329,0.000709638,0.000712162,0.000710955,0.000699327,0.000619624,0.000663868,0.000644955,0.000663929,0.000648714,0.000649775,0.000550995,0.000605319,0.000616675,0.000663408,0.000662103,0.000688657,0.000702151,0.000786996,0.000802865,0.000748187,0.0006756,0.000624701,0.000555141,0.000665272,0.000635639,0.000533485,0.000457712,0.000743239,0,0,0,0,0 +QUESTIONS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000248998,0,0,0,0,0,0.000193773,0.000186885,0.000221432,0.00016893,0,0.00019178,0.000605627,0.000704017,0.000727231,0.000721319,0.000714192,0.000674434,0.000593822,0.000761611,0.000750288,0.000758584,0.000535956,0.000522521,0.000704663,0.000805322,0.000809369,0.000736965,0.00057271,0.000575634,0.000551382,0.000776085,0.000710949,0.000750427,0.00049729,0.000488168,0.00046692,0.000718237,0.000700419,0.000767164,0.000601201,0.000612741,0.000542163,0.000786468,0.000825869,0.000879723,0.000735204,0.000670846,0.000588142,0.00074266,0.000708284,0.00074058,0.00061679,0.000484102,0.000537011,0.000754911,0.000802586,0.000784393,0.000681852,0.000590435,0.000557745,0.000723621,0.000719913,0.000759535,0.000661929,0.000642132,0.000747294,0.000788345,0.000887091,0.000760907,0.000722011,0.000478121,0.000590047,0.000677346,0.000903954,0.000816486,0.000794466,0.000531383,0.000611772,0.000775084,0.000948728,0.000878624,0.000830769,0.000662059,0.000651253,0.000733239,0.000847726,0.000750303,0.000732855,0.000627963,0.000739058,0.000734483,0.000907084,0.00081065,0.000814556,0.000625641,0.000614068,0.00073035,0.000905321,0.000880349,0.000860855,0.000769331,0.000747988,0.000781635,0.000944004,0.000889457,0.000867119,0.000714496,0.000698055,0.000754121,0.000955886,0.000822402,0.000804486,0.000732207,0.000781721,0.00084511,0.000970935,0.000967242,0.000945405,0.000842145,0.000813323,0.000889815,0.001096553,0.001029608,0.000992382,0.000881365,0.000894185,0.000886037,0.001071223,0.000973487,0.001000774,0.000869954,0.00087406,0.000838909,0.001011411,0.001013831,0.000962077,0.000958818,0.000837268,0.000800783,0.000871979,0.000979241,0.000942288,0.000928734,0.000856517,0.000901522,0.000852933,0.000851134,0.000871685,0.000885427,0.000879394,0.000809158,0.000907658,0.000958106,0.000947285,0.00092902,0.000892631,0.000839211,0.000934064,0.001006857,0.000981283,0.00095234,0.000911891,0.000886282,0.000932,0.000950088,0.000896004,0.00087001,0.00081883,0.000736338,0.000731423,0.000784084,0.000849066,0.000846913,0.00082484,0.000777599,0.000814847,0.000991261,0.000864762,0.001004425,0,0,0,0,0,0 +PROTEIN,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000790912,0.000791082,0.000791253,0,0,0,0.001331975,0.001332288,0.001331037,0,0,0,0.001507219,0.001506502,0.001505905,0,0,0,0,0.001554174,0.001554174,0.001554749,0,0,0,0.000858173,0.000858762,0.000857339,0,0,0,0.001191781,0.001191895,0.001191554,0,0,0,0.001175254,0.001175143,0.001174812,0,0,0,0.001216354,0.001215782,0.001217166,0,0,0,0.001533126,0.001533294,0.001531896,0,0,0,0.001340183,0.001339884,0.001339834,0,0,0,0.00152286,0.001515517,0.001548627,0,0,0,0.001240964,0.001237471,0.001236094,0,0,0,0.001398914,0.001423746,0.001476858,0,0,0,0.001743484,0.001710465,0.00174744,0,0,0,0,0.001049203,0.001048974,0.001070394,0,0,0,0.001119907,0.00110668,0.001130802,0,0.000978075,0,0.001137245,0.001092441,0.000942405,0.000878059,0.001163098,0.001717126,0.001587022,0.001043297,0.001325714,0.001129811,0.001080629,0.000633621,0.000725953,0.000638681,0.000627803,0.000486094,0.00060503,0.000684392,0.000971448,0.000945776,0.000648745,0.00057323,0.000667536,0.000770041,0.000816827,0.00064054,0.000497963,0.000533561,0.000730848,0.000878433,0.000862069,0.000677683,0.000675432,0.000709471,0.001036377,0.001120816,0.001497368,0.000920387,0.000964497,0.000799817,0.000983177,0.000957496,0.000852321,0.000792393,0.000777651,0.000691704,0.000841504,0.000815566,0.001062699,0.000916031,0.001119445,0.000934361,0.001008661,0.00078125,0.000803576,0.000936072,0.000971727,0.001057222,0.000779094,0.000886974,0.000766424,0,0.000594196,0.000547795,0.000473423,0.000474876,0.000530238,0.000503872,0.000382493,0.000232528,0.000420492,0.000516675,0.000709507,0.000503745,0.000354055,0.000351264,0.000560453,0.000720125,0.0008105,0.000996969,0.000954462,0.001095817,0.001052075,0.001159536,0.001151555,0.001272504,0.00105466,0.000885412,0.000908041,0.001105673,0.001278361,0.001426233,0.0012271,0.001026606,0.001029805,0.001082776,0.00119005,0.001089568,0.000976335,0.000925247,0.000889149,0.000894018,0.000911447,0.001005062,0.000998953,0.001043519,0.000839442,0.001032696,0.000998338,0.00119819,0.001033257,0.001018491,0.001095147,0.001168366,0.001086826,0.001129108,0.001097999,0.001380089,0.001188837,0.001413489,0.001294523,0.001473408,0.001245897,0.001296094,0.000967865,0.001274579,0.001244088,0.001481732,0.001061249,0.001611556,0.001389665,0.001349025,0.001179887,0.001241179,0.001109486,0.001281729,0.001137394,0.0010712,0.000977221,0.001021456,0.001121583,0.001192388,0.001133766,0.001027914,0.001101506,0.001128566,0.00130617,0.001584822,0.001387613,0.001179055,0.001007917,0.001012345,0.00094852,0.001177873,0.001066614,0.001065989,0.000898826,0.00088091,0.000750457,0.000985813,0.000996446,0.000953697,0.000852049,0.000833298,0.000837957,0.000900778,0.00096346,0.000867721,0.000805734,0.000740347,0.00078178,0.000650656,0.000750312,0.000760928,0.000727619,0.000711061,0.000661969,0.000796159,0.000861467,0.000798131,0.000780952,0.000685678,0.000707319,0.000542215,0.000737847,0.000700918,0.000699217,0.00065147,0.000640149,0.000665991,0.000671673,0.000676171,0.000623488,0.00058543,0.00058434,0.00048807,0.000609121,0.000594874,0.000628276,0.000567091,0.000585664,0.000546605,0.000839017,0.000736179,0.000749218,0.00059999,0.000590738,0.000559465,0.000809482,0.000771403,0.000812586,0.000645837,0.000662029,0.000565811,0.00083668,0.000674611,0.000671992,0.000515704,0.000516189,0.000548565,0.000917479,0.000848356,0.00059542,0.000501454,0.000498908,0.000540348,0.000982413,0.000894939,0.000828425,0.000582832,0.000522006,0.00048038,0.000644296,0.000647166,0.000652621,0.000533218,0.000492223,0.000434862,0.0003407,0.000357193,0.000249215,0.000223719,0,0,0,0,0,0,0 +APPLICATION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000572115,0.000572508,0.000571559,0,0,0,0,0,0,0,0,0,0.000611132,0.000611075,0.000610902,0,0,0,0,0,0,0,0,0,0.000474539,0.000474591,0.000474158,0,0,0,0.000781774,0.000781599,0.00078157,0,0,0,0.000796041,0.000792202,0.00079152,0,0,0,0.000496386,0.000494988,0.000494438,0,0,0,0.001007218,0.001004997,0.001003149,0,0,0,0.000715276,0.000644201,0.000619346,0,0,0,0,0.00122407,0.00126751,0.001259287,0,0,0,0.001332304,0.001392891,0.001378165,0.001489619,0.001141087,0.001314204,0.001240631,0.001352546,0.001304868,0.001536604,0.001586043,0.001536376,0.001146182,0.001043297,0.001554286,0.001480443,0,0.001218502,0.001088929,0.000870928,0.000717489,0.001076352,0.000950762,0.001026589,0.00067579,0.000945776,0.001054211,0.001361422,0.001144347,0.001094269,0.000816827,0.000873464,0.001041195,0.000924839,0.001063052,0.001031203,0.001245211,0.00104259,0.000900576,0.00099326,0.001105469,0.001275412,0.001062648,0.000766989,0.000734855,0.000761731,0.000910349,0.000957496,0.00119325,0.00118859,0.001016929,0.000813769,0.000987853,0.001009748,0.001286425,0.000916031,0.000951528,0.000545044,0.000660847,0.000483631,0.000853799,0.001046198,0.001203091,0.001189375,0.001103717,0.00107704,0.001072994,0.001089001,0.001000751,0.000846592,0.00119172,0.00128345,0.001369782,0.00125035,0.000983553,0.001007622,0.000934427,0.000885729,0.000844652,0.001091446,0.001209689,0.000962948,0.000861386,0.000866992,0.000881321,0.000899085,0.000879525,0.000826454,0.00088969,0.000878178,0.000900352,0.000786696,0.000718066,0.000749195,0.000803267,0.000827266,0.000808515,0.000772235,0.000741085,0.000749392,0.000788877,0.000767756,0.000799501,0.000793429,0.00071288,0.000707542,0.000714168,0.000764952,0.000765404,0.000741176,0.000709294,0.000661673,0.000678481,0.000804325,0.000866544,0.000966697,0.000898317,0.000760282,0.000693889,0.00079909,0.000883246,0.000922172,0.00081736,0.000706739,0.000760856,0.000788796,0.000810448,0.000808433,0.000824529,0.000786155,0.00084392,0.000766028,0.000803585,0.000741817,0.000930515,0.000841518,0.000807284,0.000792939,0.000818697,0.000846839,0.00091742,0.000838488,0.000835916,0.000834845,0.000903842,0.000954778,0.00094716,0.00078454,0.000733856,0.000799322,0.000812933,0.000801546,0.000781708,0.000686542,0.000667163,0.000686538,0.000883404,0.000955674,0.001010988,0.000811231,0.000745871,0.000699183,0.000840042,0.000879766,0.000939241,0.00068291,0.000688831,0.000727021,0.000889446,0.000923683,0.000922234,0.000729744,0.000729387,0.000753296,0.000875365,0.000916982,0.000985769,0.000965211,0.000775068,0.000871995,0.00089438,0.000955002,0.000935224,0.000868349,0.000708802,0.000703648,0.000802916,0.000946204,0.001004974,0.001073365,0.000785837,0.000752939,0.000796535,0.000835158,0.000873015,0.000878972,0.000836019,0.000792581,0.00081558,0.00082841,0.000856844,0.000818235,0.000703954,0.000740787,0.000827046,0.00084734,0.000855084,0.000808499,0.000756177,0.000684718,0.000745462,0.000813119,0.000850271,0.000797736,0.000651361,0.000660083,0.000753223,0.000756155,0.000767723,0.000739645,0.000677051,0.000664798,0.00071058,0.00069492,0.000701396,0.000708283,0.000752246,0.000698732,0.000723805,0.000747505,0.00077712,0.00072612,0.000703398,0.000728854,0.000753198,0.000796627,0.000789406,0.000841506,0.000770525,0.000745764,0.000687835,0.000697747,0.000732905,0.000739487,0.000779603,0.000700991,0.00066084,0.000709879,0.000622998,0.000686067,0,0,0,0,0 +FIELDS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001110124,0.001110124,0.001110535,0,0,0,0,0,0,0,0,0,0.000524384,0.000524434,0.000524284,0,0,0,0,0,0,0,0,0,0.000627796,0.0006275,0.000628215,0,0,0,0.000584048,0.000584112,0.00058358,0,0,0,0.000781774,0.000781599,0.00078157,0,0,0,0.000657599,0.000688871,0.000688279,0,0,0,0.000589458,0.000587799,0.000587145,0,0,0,0.000671479,0.000669998,0.000640901,0,0,0,0.000916447,0.000910767,0.000906899,0,0,0,0,0.000765044,0.000743023,0.000734584,0,0,0,0.000598571,0.000572421,0.000565401,0,0.000896569,0,0,0,0.000471202,0.000713423,0.000740153,0,0.000881679,0,0.000548571,0.000662303,0.000662321,0.000731101,0.000622245,0,0,0,0,0,0,0.000893232,0.000608199,0.000644884,0.000635748,0.000729513,0.00061262,0.000582309,0,0.00049799,0.000431865,0.000611084,0,0,0.000495317,0.000567577,0.000552734,0.000425137,0,0,0,0.000571298,0.000582623,0.000666084,0.000738678,0.00072636,0,0.000732392,0.000878092,0.000932075,0.000615247,0,0.000671667,0.000700771,0.000591284,0.000483631,0,0.000660757,0.000509,0.00036342,0,0.000380132,0.000521169,0.000660001,0.000688016,0.000572695,0.000571373,0.000551883,0.000559696,0.000559858,0.000437135,0.000400465,0.00033873,0.000282941,0.000253395,0.00033583,0.000427817,0.000611684,0.000668126,0.000701174,0.00068722,0.000677939,0.000619217,0.000627493,0.000633532,0.000630924,0.000651636,0.000655057,0.000673187,0.00066275,0.000708765,0.000660222,0.00068211,0.000576405,0.000599762,0.000581845,0.000633234,0.000576677,0.000576622,0.000528021,0.00065089,0.000575773,0.000689752,0.000639034,0.00066687,0.00054154,0.000583032,0.000676247,0.000764056,0.000695167,0.000645789,0.000550867,0.000497351,0.00056806,0.000738227,0.000717364,0.000710124,0.000628845,0.000585833,0.000645526,0.000748967,0.000690886,0.000639034,0.000565397,0.000603441,0.000626799,0.000665294,0.000621277,0.000619374,0.000572531,0.000638287,0.000679063,0.000748099,0.000831188,0.000787394,0.000748963,0.0005905,0.000573108,0.000628405,0.000727033,0.000688364,0.000675296,0.000527327,0.000461661,0.000542146,0.000688762,0.000656915,0.000659606,0.000578304,0.000667293,0.000718319,0.000726835,0.000674092,0.000643985,0.000550701,0.000635128,0.000650976,0.000733613,0.000682653,0.000692144,0.000630321,0.00066088,0.000664298,0.000762958,0.000721664,0.000703233,0.000669402,0.000560991,0.000614441,0.00076828,0.000765944,0.000769082,0.000667503,0.000639883,0.00063986,0.000870814,0.000872288,0.000902358,0.000848629,0.000806472,0.000745151,0.000824238,0.000929821,0.000947003,0.000929264,0.000785659,0.000723849,0.00088573,0.000890582,0.000924667,0.000853532,0.000855308,0.000818155,0.001009303,0.001004417,0.001003811,0.000909285,0.00081664,0.000703954,0.000881711,0.000858011,0.000836789,0.000837075,0.000791634,0.000839017,0.000912004,0.001029001,0.000975872,0.000957403,0.000837623,0.000882642,0.000887427,0.000943649,0.000867341,0.000872456,0.000803043,0.000875212,0.000886806,0.000986341,0.000942583,0.00093858,0.000876211,0.000876171,0.000897747,0.000949236,0.000971347,0.000985778,0.000993325,0.000949587,0.00090592,0.00097052,0.000971208,0.000994754,0.000936406,0.000865197,0.000849741,0.000968368,0.000973964,0.000969365,0.000900628,0.000807661,0.00092647,0.001106068,0.001260573,0.001551137,0.001943857,0,0,0,0,0 +MEASUREMENTS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000861866,0.000862069,0.000861259,0,0,0,0.000793273,0.000792896,0.000792581,0,0,0,0,0,0,0,0,0,0,0.000800961,0.000801511,0.000800183,0,0,0,0.000667398,0.000667461,0.00066727,0,0,0,0.000752162,0.000752092,0.00075188,0,0,0,0.000627796,0.0006275,0.000628215,0,0,0,0.000949078,0.000949182,0.000948317,0,0,0,0.000781774,0.000781599,0.00078157,0,0,0,0.001038314,0.001033307,0.001032418,0,0,0,0.000837651,0.000835293,0.000834363,0,0,0,0.000895305,0.000949164,0.000975284,0,0,0,0.00084939,0.000844126,0.00088478,0,0,0,0,0.000983628,0.000983413,0.000965454,0,0.001592103,0.002180549,0.001351612,0.001221164,0.00116614,0,0,0,0.001292324,0.001196483,0.000869912,0,0.000581549,0,0.000881679,0.001130238,0.000868571,0.000857098,0.000732039,0.001072282,0.001296344,0.001916043,0.001390135,0.001180515,0.000691463,0.000718612,0.000929211,0.001261034,0.001054211,0.001182287,0.00098541,0.001215855,0.001123137,0.001455774,0.001222273,0.000889268,0.00086373,0.000916625,0.00105364,0.001303237,0.001350865,0.001241575,0.001105469,0.001159465,0.00111095,0.001124917,0.000734855,0.000914077,0.000873935,0.001040756,0.001079607,0.000924459,0.001076748,0.000773081,0.000914679,0.000854402,0.000783042,0.000977099,0.0010075,0.001206883,0.000869535,0.000669643,0,0.000605694,0.000740364,0.000892031,0.000649245,0.000665231,0.000950366,0.001419001,0.001594946,0.001195189,0.00112642,0.000988256,0.001045748,0.000821125,0.000746772,0.000710503,0.000654099,0.000602788,0.000608149,0.0007892,0.001062166,0.000993229,0.000949733,0.000878837,0.000996732,0.001073101,0.001230546,0.001184584,0.001129838,0.00109346,0.001047094,0.001106389,0.001089922,0.00095876,0.000823811,0.000751699,0.00072981,0.000842438,0.001096117,0.00122157,0.001138542,0.001046627,0.000961037,0.00092753,0.001177802,0.001237482,0.001169933,0.000983735,0.00097655,0.001039482,0.001106647,0.000988137,0.000810918,0.000896248,0.000927499,0.001065296,0.001048679,0.000958242,0.000908928,0.000902003,0.000921718,0.000958336,0,0.001090716,0.001026362,0.000835682,0.00073914,0.000762864,0.000931171,0.000982694,0.000860325,0.00080702,0.000798245,0.00079888,0.00091129,0.000893504,0.000899613,0.000841486,0.000896955,0.000926274,0.001015496,0.001002233,0.001092368,0.000981357,0.000938784,0.00082284,0.000807215,0.000917657,0.000878153,0.000939764,0.000875105,0.000890607,0.00083555,0.001013773,0.000965574,0.000831309,0.000750303,0.000738007,0.000844956,0.000944031,0.00081799,0.000737585,0.000754711,0.000798539,0.000875273,0.001106974,0.000945492,0.000866621,0.00075805,0.000738505,0.000782574,0.000877973,0.000975999,0.000830942,0.000803247,0.000792746,0.00082984,0.000835942,0.000927416,0.000836548,0.000828103,0.000799295,0.000825537,0.000822972,0.000836023,0.000763322,0.000734583,0.000679285,0.000700059,0.000662093,0.000749844,0.000647527,0.000677137,0.000722299,0.000847966,0.001014199,0.000911046,0.000749237,0.000716278,0.000711476,0.000699522,0.00074646,0.00087356,0.000867993,0.000811065,0.000708205,0.000687958,0.000722193,0.000785915,0.000800505,0.000676925,0.000676846,0.000675992,0.000719012,0.000719801,0.00060991,0.000692317,0.000740519,0.000770605,0.000741008,0.000697234,0.000733486,0.000705874,0.000694397,0.000675108,0.000685146,0.000695719,0.000723427,0.000687412,0.000724127,0.000710242,0.000766837,0.000630714,0.000606692,0.000600887,0.000690267,0.00073567,0.000746605,0.000749487,0.000824643,0.000676097,0.000616083,0.000553751,0.000566572,0.000565162,0.000584904,0.000588036,0.000507671,0.000483141,0,0,0,0,0,0 +INTEGRATED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000391696,0.000390832,0.000390113,0,0,0,0.000245876,0.000244352,0.000243314,0,0,0,0,0.000393451,0.000393365,0.000377786,0,0,0,0.00046341,0.000457937,0.000424051,0,0,0,0,0.00052021,0.00039871,0,0,0,0,0,0,0,0,0,0,0.000638681,0.000493274,0.000416652,0,0,0,0,0,0.000465749,0.000572173,0.000770041,0.000663672,0,0.000543232,0.000426849,0.000398645,0.00042012,0.000478927,0.000521295,0.000495317,0.000390209,0.000518188,0.000425137,0.000483022,0,0,0,0,0.000582823,0.000852321,0.000792393,0,0.000488261,0.000402459,0.00054371,0,0,0,0,0,0.000372024,0.000602682,0.00071582,0.000555273,0.000429496,0.000357085,0.000348454,0.000674454,0.000627001,0.000688016,0.000771893,0.001044796,0.000936918,0.0007659,0.000522534,0.00060106,0.000736339,0.00070082,0.000836522,0.000844652,0.000990698,0.000737615,0.000575346,0.000494193,0.000544831,0.000553448,0.000587306,0.000500895,0.00052036,0.000461998,0.00053927,0.000616816,0.000661326,0.000557783,0.000518674,0.000519761,0.000560791,0.00049131,0.000498812,0.000427417,0.00051178,0.000481855,0.000471671,0.000441668,0.00045259,0.000399058,0.00056145,0.0006104,0.00062959,0.000578892,0.000569076,0.000538469,0.000539249,0.000554195,0.000587444,0.000599662,0.000568015,0.000512773,0.000562322,0.000587478,0.000576616,0.000586694,0.000596699,0.000631437,0.000614919,0.00052507,0.000638483,0.000660975,0.000725733,0.000616446,0.000547122,0.000625194,0.000631525,0.000691457,0.000656223,0.00073826,0.000672565,0.000738629,0.000717911,0.000751275,0.000724848,0.000770306,0.000660627,0.000755652,0.00071874,0.000819981,0.000824258,0.000945132,0.000770379,0.000760654,0.000675315,0.000727299,0.000695787,0.000733848,0.000609547,0.000667163,0.000632809,0.000790018,0.000811422,0.000974822,0.000845875,0.000785726,0.000681968,0.000758503,0.00076765,0.000881514,0.000867405,0.000809613,0.000724257,0.000808587,0.000842116,0.00086324,0.000823242,0.000815074,0.000751934,0.000751852,0.000815565,0.0008779,0.000995374,0.000826486,0.000747931,0.000828816,0.000859354,0.000943884,0.000963228,0.000868737,0.000728512,0.000820813,0.000886267,0.000952081,0.000925823,0.000877817,0.000828233,0.000860323,0.00085773,0.00095744,0.001014199,0.000984287,0.000806204,0.00079279,0.000795,0.000820323,0.00083578,0.000851675,0.000819355,0.000788091,0.000851296,0.00086517,0.000934486,0.00085601,0.000809082,0.000817755,0.00087512,0.000894784,0.000925794,0.000762281,0.000755724,0.000808732,0.000866473,0.000892153,0.000907343,0.000917413,0.000834064,0.000803755,0.000812481,0.000825663,0.000873226,0.000895738,0.000902105,0.000817819,0.00083108,0.000817246,0.000864388,0.000846422,0.000835917,0.000797777,0.000875054,0.000877687,0.000904492,0.000815232,0.000856912,0.000859206,0.000898905,0.000948856,0.000996283,0.001098258,0.000957724,0.000890454,0.000968017,0.001042567,0.001143445,0,0,0,0,0 +INDUSTRY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000349734,0.000349658,0.000398774,0,0,0,0.000251014,0.000343452,0.000335707,0,0,0,0,0,0.000362463,0,0.000528681,0,0,0,0,0.000467508,0.000418308,0.000584881,0,0,0.00044843,0.000451373,0.000374543,0,0,0,0,0,0,0,0,0,0.000497963,0.000711415,0.001295595,0.001565902,0.001532567,0.000834072,0.00076549,0.001099681,0.001485473,0.001700549,0.002076994,0.001687375,0.001653424,0.001180683,0.001165247,0.001040756,0.001136428,0.001584786,0.00275169,0.002319242,0.00204888,0.00132044,0.001006768,0.001160305,0.001455278,0.001401542,0.0014956,0.001450893,0.001657375,0.001101261,0.001018,0.000925069,0.001233566,0.001425494,0.001287593,0.001056001,0.000875657,0.000796793,0.001208045,0.001386126,0.001590715,0.001380983,0.00129319,0.001253068,0.001495083,0.001562327,0.001723089,0.001528025,0.001371965,0.000720697,0.000491432,0.000490348,0.00051935,0.0005293,0.00043779,0.000446897,0.00057178,0.000694869,0.000721276,0.000636252,0.00044238,0.000487239,0.000579339,0.000610507,0.00060102,0.000532066,0.000472227,0.000508734,0.000503176,0.000599056,0.000623652,0.000631391,0.000441676,0.00034661,0.000431349,0.000544595,0.00058593,0.00057596,0.000542183,0.000597546,0.000572532,0.000537174,0.000555181,0.000608741,0.000651569,0.000608225,0.000587478,0.000617478,0.000748595,0.000789572,0.000876996,0.00067335,0.000614232,0.000750183,0.000958551,0.001113917,0.001183472,0.000733037,0.000741848,0.000785243,0.000868993,0.000913006,0.000930515,0.000783034,0.000771773,0.00071644,0.000857224,0.000856768,0.001048188,0.000770731,0.000783059,0.00074362,0.000900348,0.000919311,0.001003949,0.000778876,0.000791575,0.000848626,0.000891528,0.000900348,0.000905346,0.000728248,0.000697004,0.000668629,0.000793238,0.000811422,0.000861394,0.000739058,0.000821786,0.000715074,0.000731007,0.000709304,0.000792582,0.000748998,0.000715252,0.000717346,0.00077119,0.000766061,0.000817489,0.000734305,0.000775366,0.000742399,0.000857957,0.000874725,0.000908872,0.000795007,0.00082839,0.000841274,0.000907208,0.000909032,0.000910208,0.000833285,0.000746969,0.000726026,0.00080617,0.000859096,0.000891927,0.000804102,0.00062387,0.000621517,0.000718844,0.000724634,0.000728285,0.000686275,0.000721691,0.000754191,0.000796859,0.000782851,0.00080534,0.00071775,0.000727663,0.000732057,0.00079808,0.000822282,0.000848601,0.000836276,0.00072644,0.000724743,0.000762362,0.000761451,0.000774071,0.000733707,0.000903882,0.000805897,0.000733949,0.000678846,0.000680765,0.000731465,0.00089723,0.000840197,0.000825402,0.00071373,0.000705578,0.000669473,0.000823992,0.00074667,0.000749077,0.000745751,0.000768426,0.000724423,0.000792495,0.000851016,0.000905509,0.000886872,0.000875768,0.000873419,0.000875717,0.000919656,0.000936676,0.000836456,0.000862596,0.00083367,0.000969994,0.001040325,0.001066865,0.001277782,0.000978996,0.001486479,0,0,0,0,0 +SITE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000476713,0.000476758,0.000476622,0,0,0,0,0,0,0,0,0,0.000549321,0.000549063,0.000549688,0,0,0,0,0,0,0,0,0,0.000521182,0.000521066,0.000521047,0,0,0,0.000484546,0.00048221,0.000481795,0,0,0,0.00052741,0.000494988,0.000494438,0,0,0,0.000279783,0.000279166,0.000278652,0,0,0,0.00037999,0.000355421,0.000353912,0,0,0,0,0.00041531,0.000437072,0.000440751,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000324623,0,0,0.000693001,0.000844383,0.000672294,0.000310174,0.00025669,0.000324035,0.000373239,0.000455349,0.000413383,0.000478894,0.000442864,0.000439219,0.000486953,0.000663854,0.000811541,0.000767517,0.000826722,0.000786894,0.000761322,0.000674434,0.000906038,0.000793631,0.000807839,0.000636713,0.000676997,0.000807824,0.000853978,0.000852573,0.000727835,0.000698805,0.000628134,0.000720404,0.000862106,0.000803802,0.000766034,0.00067886,0.000745935,0.000914346,0.00100259,0.000868803,0.000731898,0.000658072,0.000649389,0.000768711,0.000944414,0.000880192,0.000749746,0.0006392,0.000617314,0.000828919,0.001007015,0.000946615,0.000712824,0.000562649,0.0005083,0.000827884,0.00100446,0.000869832,0.000746046,0.000796735,0.000923201,0.001095037,0.001006597,0.000763721,0.000675078,0.000651411,0.000698069,0.000907445,0.001020219,0.000951696,0.000750276,0.000666997,0.000679457,0.000888814,0.001106691,0.001031681,0.000812729,0.000708165,0.000651178,0.000728116,0.000991296,0.001082231,0.000851614,0.000835221,0.000775106,0.000929275,0.001077935,0.001057229,0.000902947,0.000793238,0.000753463,0.00081701,0.000906501,0.000910987,0.000832928,0.000775569,0.000744769,0.000837828,0.001145526,0.001198378,0.000956462,0.000754008,0.000650325,0.000658566,0.000855169,0.001145284,0.000976697,0.000805734,0.000710767,0.000747604,0.001100944,0.001388267,0.001105945,0.00081385,0.000661384,0.000685061,0.000985917,0.001379438,0.001066661,0.000804543,0.000624942,0.000668946,0.001014348,0.00129773,0.001088339,0.000749921,0.000621115,0.000583556,0.000838404,0.00124331,0.001051409,0.000838371,0.000652249,0.000642399,0.00085811,0.001234656,0.000982727,0.000718172,0.000542034,0.000530196,0.000637871,0.001113025,0.001026362,0.000798978,0.000642616,0.000615635,0.000691721,0.001010082,0.001147697,0.000832631,0.000674068,0.000599093,0.00060535,0,0.001026635,0.00102587,0.000821886,0,0.000666488,0.001167503,0.001118552,0.000931039,0.000611914,0.000525659,0.000570886,0.001188743,0.001184559,0.000939872,0.000663945,0.000567426,0.000535809,0.000841529,0.001222623,0.00107166,0.00066292,0.000498858,0.00046503,0.00096799,0.001669878,0.001948919,0.001841383,0.000762854,0.000571723,0,0,0,0,0 +IMPROVE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000176688,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000344008,0.000248998,0.000440773,0.000551883,0.000648069,0.000727816,0.001038195,0.001085131,0.00103955,0.000861125,0.0007264,0.000688451,0.000619597,0.000557177,0.000474867,0.000511668,0.000503612,0.000616308,0.000560056,0.000569335,0.000592364,0.000616004,0.000636713,0.000608044,0.000548167,0.000476761,0.000474565,0.000457383,0.00047223,0.000472948,0.000554952,0.00065191,0.000616177,0.000643813,0.000623652,0.000681678,0.000902723,0.000867956,0.000756896,0.000618572,0.000575373,0.000566782,0.000471625,0.000480951,0.00055827,0.00060468,0.000645789,0.000645179,0.000632292,0.000576667,0.000580827,0.000629586,0.000657225,0.000673045,0.000670025,0.000617701,0.000544884,0.000610903,0.000647262,0.000702105,0.000647658,0.000648047,0.000712684,0.000705822,0.000704805,0.000663831,0.000603681,0.00054585,0.000580013,0.00061199,0.000642918,0.000641157,0.000694706,0.000756615,0.000687135,0.00063028,0.000625468,0.000668203,0.000720004,0.000611772,0.000630786,0.000634976,0.000669819,0.000644299,0.00062417,0.000609547,0.000571245,0.000561171,0.000656917,0.000687777,0.000780844,0.000710188,0.000700321,0.000621055,0.000680756,0.000681847,0.000792582,0.000724215,0.000771869,0.000624741,0.000658999,0.000643712,0.000719968,0.000839205,0.000785815,0.000648407,0.000679734,0.000694709,0.000782848,0.000769153,0.000744599,0.000668766,0.000702676,0.000717735,0.000770694,0.000818847,0.000748786,0.000658893,0.000704484,0.000737623,0.000824514,0.000787503,0.000747844,0.000653003,0.000763005,0.000766664,0.000804361,0.000799527,0.000766351,0.000719515,0.000758604,0.000775258,0.00080534,0.00077517,0.000773256,0.000784436,0.000802075,0.000875694,0.000881018,0.000949366,0.000921857,0.000844819,0.000790528,0.000811181,0.00085178,0.000912148,0.000939282,0.000805897,0.000804106,0.000879937,0.000910409,0.00097415,0.00105319,0.000968986,0.000906342,0.000945718,0.00096188,0.001010553,0.001034882,0.001011055,0.000934072,0.000973685,0.000969728,0.00099587,0.000876903,0.000882586,0.000912939,0.00098786,0.001005629,0.001086735,0.001051912,0.001036182,0.00097541,0.001015396,0.001041148,0.00107943,0.001190448,0.001102834,0.000968859,0.000976621,0.001029853,0.000914756,0,0,0,0,0 +CARBON,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001006615,0.001006832,0.001007049,0,0,0,0.001018569,0.001018809,0.001017852,0,0,0,0,0,0,0,0,0,0,0.000814091,0.000814091,0.000814393,0,0,0,0.000572115,0.000572508,0.000571559,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00070627,0.000705938,0.000706742,0,0,0,0.000766563,0.000766647,0.000765948,0,0,0,0.000707319,0.000707161,0.000707135,0,0,0,0.000796041,0.000757758,0.000757106,0,0,0,0.000558434,0.000556862,0.000556242,0,0,0,0.000643501,0.000614165,0.000613035,0,0,0,0.000692923,0.000688629,0.000663585,0,0,0,0,0.00067761,0.000677462,0.000692608,0,0,0,0.000946129,0.000877712,0.000795095,0,0.000815062,0.00109517,0.000672008,0,0.00068868,0.000658545,0,0,0.000881679,0.000869414,0,0,0,0.000584881,0.000777807,0.000987052,0.000627803,0.000451373,0,0,0,0.000735603,0.000851478,0.000859845,0.000667536,0.000729513,0.000561568,0.000873464,0.000769579,0.000853698,0.00086373,0.000725662,0.000814176,0.000521295,0.000855548,0.000744945,0.00076001,0.000618381,0.000821137,0.000869254,0.000964497,0.000723644,0.000764693,0.000749344,0.0007955,0.000924459,0.000777651,0.000732392,0.00076833,0.000737893,0.000838973,0.000977099,0.000951528,0.000856498,0.000799972,0.000669643,0.000753352,0.000770883,0.001110546,0.000991146,0.000908943,0.000665231,0.000858395,0.001056001,0.001219665,0.000871492,0.000555048,0.000410704,0.000368221,0.000541196,0.00069213,0.000684666,0.000490574,0.000455166,0.00038854,0.00057091,0.000531083,0.000545065,0.000588062,0.000613527,0.000692466,0.000830203,0.000788811,0.000639737,0.000455137,0.000422037,0.000522304,0.000899529,0.001118773,0.000911608,0.000698493,0.000612495,0.00062964,0.000605964,0.000627337,0.00059403,0.000601252,0.000554299,0.000527548,0.000525228,0.000863979,0.00084504,0.000744688,0.000555613,0.000680946,0.00078248,0.001076938,0.000778267,0.000539933,0.000455305,0.000471163,0.000617314,0.000975425,0.000774627,0.000744877,0.000744606,0.000734168,0.000789572,0.000771757,0.000876468,0.000822279,0.000741909,0.000643148,0.000702105,0.000840135,0.000892392,0.000661648,0.000571319,0.000600686,0.000559216,0.000684428,0.000630327,0.000651036,0.000745862,0.000847592,0.000904997,0.000937852,0.000974001,0.000884857,0.000710447,0.000625468,0.000621386,0.000890371,0.00116973,0.001010082,0.000658881,0.000574801,0.000535756,0.000652088,0.000741081,0.000763081,0.000643257,0.000552798,0.000516476,0.000590154,0.000814118,0.00065667,0.000658133,0.000579307,0.000622357,0.000645923,0.000804071,0.000794515,0.000733932,0.000672138,0.00066245,0.000673014,0.000868851,0.000854783,0.00070017,0.000723668,0.00078514,0.000914212,0.0010557,0.000832199,0.000623866,0.000654216,0.000657676,0.000714888,0.000705405,0.000741516,0.000763322,0.000796408,0.000827129,0.000854591,0.000844676,0.000813831,0.000658479,0.000674683,0.000667815,0.00069767,0.000655849,0.000637732,0.00051394,0.000639767,0.000847393,0.001106874,0.001362131,0.000979335,0.000801896,0.00072816,0.000851296,0.00084716,0.000912661,0.000722192,0.000720455,0.000740768,0.00078341,0.000820847,0.000858616,0.000953442,0.000757292,0.000873492,0.000882108,0.000945481,0.000953699,0.00104952,0.000899072,0.000813167,0.000785312,0.000792804,0.000820981,0.001232727,0.001074972,0.000836015,0.00079952,0.000829284,0.000960242,0.001008204,0.000772777,0.000756913,0.000739687,0.000787487,0.0007718,0.000678483,0.000917864,0.00080756,0.000813638,0.000700332,0.000754203,0.000733508,0.000888518,0.000714044,0.000628135,0.000305142,0,0,0,0,0,0 +RECENT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000783515,0.000783699,0.000782963,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000572115,0.000572508,0.000571559,0,0,0,0.000619726,0.000619785,0.000619608,0,0,0,0.000564122,0.000564069,0.00056391,0,0,0,0.000627796,0.0006275,0.000628215,0,0,0,0,0,0,0,0,0,0.000372273,0.00037219,0.000372176,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000212396,0,0.000176688,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00072636,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000528001,0.000469102,0.000298797,0.000310174,0.000269524,0.000338763,0.000317253,0.000764986,0.000671748,0.000654099,0.00055358,0.00055747,0.000486953,0.000486826,0.000841822,0.000946972,0.000919107,0.000860337,0.000750446,0.000745427,0.000713199,0.000811928,0.000773735,0.000785943,0.000724011,0.000753328,0.000817304,0.000805322,0.000833232,0.000856215,0.000853523,0.000854833,0.000807272,0.000776085,0.000767756,0.000740203,0.000793429,0.000728377,0.000698948,0.000708064,0.000730325,0.000746049,0.000771006,0.000761284,0.000754948,0.000721268,0.000672186,0.000657321,0.000628032,0.000767232,0.000817661,0.000873457,0.0008566,0.000827142,0.000791581,0.000841916,0.000848644,0.000901535,0.000799828,0.000767938,0.000691978,0.000730891,0.000772876,0.000800175,0.000714789,0.000696796,0.000625789,0.000607526,0.000666067,0.000755201,0.000789996,0.000803046,0.00078868,0.000727398,0.000739676,0.000730203,0.000822405,0.000764073,0.000771767,0,0.000770379,0.000783329,0.00088299,0.000794164,0.000783456,0.000685989,0.000766746,0.000805711,0.000888023,0.00082222,0.000816574,0.000718377,0.000710188,0.000814195,0.000875303,0.000832457,0.000796251,0.000702091,0.000721461,0.000769981,0.000946786,0.000876306,0.00085865,0.000762107,0.000745707,0.000804625,0.000912673,0.000842207,0.000831623,0.000751876,0.000762689,0.00077126,0.000899171,0.000857322,0,0.000822651,0.000872474,0.000776048,0.000827968,0.000773631,0.000762397,0.000725987,0.000776438,0.000917809,0.000944596,0.000897942,0.000825818,0.000781167,0.000735294,0.000841378,0.000852025,0.000842441,0.000824613,0.000793166,0.00073051,0.000711249,0.000808131,0.000809067,0.000772827,0.00076864,0.000711281,0.00077317,0.000799076,0.000831838,0.000790514,0.000780107,0.000777793,0.000792962,0.000804329,0.000767871,0.000734005,0.000722082,0.000687154,0.000735765,0.000841424,0.000854578,0.000757619,0.000715137,0.000696341,0.000813121,0.00083964,0.000833993,0.000796598,0.00078247,0.000769382,0.00068933,0.000724736,0.000787561,0.000774066,0.000782369,0.000736527,0.000778415,0.000792375,0.000825167,0.000775808,0.000739541,0.00071962,0.000787619,0.000901913,0.000901655,0.000804529,0.000775568,0,0,0,0,0,0 +LEAD,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000268228,0.000266566,0.000265434,0,0,0,0,0.000524602,0.000524487,0.000482727,0,0,0,0.000212396,0.000248049,0.000229694,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00033,0,0.000323697,0.000228549,0.000269524,0.000265119,0.000466548,0.000455349,0.00043922,0.00035041,0.000369054,0.000371647,0.000604493,0.000663854,0.000678303,0.000698496,0.000739076,0.000776402,0.000866457,0.000883469,0.000795844,0.000674701,0.000590426,0.000564585,0.000629983,0.000721272,0.000709902,0.000673841,0.000632382,0.000655875,0.000613354,0.000606656,0.000560521,0.000524497,0.00054397,0.000570488,0.000623009,0.000577278,0.000615876,0.000614469,0.00066107,0.000652793,0.000692988,0.000672158,0.000597546,0.000613282,0.000623352,0.000645789,0.000647323,0.000647713,0.000665605,0.000598562,0.000608398,0.000565855,0.000568572,0.000515674,0.000609354,0.000612251,0.000682612,0.000637662,0.000641346,0.000608643,0.000666638,0.000634307,0.000557228,0.000588673,0.00059916,0.000692119,0,0.000603687,0.000663479,0.000657366,0.000689386,0.0006661,0.000643688,0.000677346,0.000681421,0.000703506,0.000686646,0.00070175,0.000744888,0.000713242,0.000690256,0.000674511,0.000684654,0.000680006,0.00067371,0.000658637,0.000699971,0.000692339,0.00069164,0.000721664,0.000750606,0.000799012,0.000790554,0.000769881,0.00075049,0.00069585,0.000696678,0.000681282,0.000689703,0.000665063,0.000653632,0.000668198,0.00065677,0.000666689,0.000697446,0.000723668,0.000738657,0.000770032,0.00080147,0.000803633,0.000751475,0.000771803,0.00078669,0.000833235,0.000853911,0.0007815,0.00071981,0.000756547,0.000776782,0.000774732,0.000715577,0.000687857,0.000744725,0.00080226,0.00082971,0.000860954,0.000894185,0.000843164,0.000807442,0.000842441,0.000851189,0.000870891,0.00081983,0.000771432,0.000805637,0.000852018,0.000849318,0.000849321,0.00084322,0.000853886,0.000827665,0.000814,0.000824098,0.000831409,0.000818729,0.000797682,0.000765131,0.000885827,0.000892966,0.000918096,0.000919614,0.000988971,0.00092851,0.000897871,0.000896603,0.000911097,0.000912036,0.000921827,0.00085562,0.000838037,0.000880174,0.000906194,0.000916981,0.000851112,0.000789249,0.000862788,0.000892244,0.000924386,0.000862501,0.00071004,0.000690191,0.000818124,0.000913316,0.000922918,0.000915345,0.000801648,0.000857263,0.000896055,0.000963714,0.001106138,0.001600823,0,0,0,0,0 +WIDE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000228549,0.000295193,0.000353492,0.000391901,0.000418921,0.000400465,0.000397131,0.000455166,0.000473005,0.000436579,0.000339303,0.000429996,0.000521801,0.000563782,0.000595416,0.000605432,0.000548224,0.000508116,0.000480295,0.000475325,0.000460125,0.000532822,0.00053855,0.000552728,0.00054236,0.000530962,0.0005247,0.000450778,0.000537718,0.000545289,0.00059912,0.000650699,0.00067886,0.000706822,0.000631519,0.000601554,0.000537152,0.000558761,0.000541942,0.000557603,0.000571891,0.000650013,0.000711081,0.000677931,0.000691917,0.000681618,0.000655424,0.000631177,0.000583044,0.000618992,0.000605929,0.00061679,0.000585833,0.000587094,0.000570642,0.000583323,0.000617093,0.00065316,0.000746498,0.000674606,0.000645244,0.000691731,0.000754195,0.000825509,0.000907445,0.000844767,0.000842795,0.000863553,0.000864448,0.000883719,0.000860209,0.000841311,0.00085745,0.000790614,0.000821145,0.000824258,0.000916737,0.000858179,0.000806004,0.000769441,0.000859855,0.000855818,0.000921299,0.000792411,0.000784396,0.000792504,0.000779284,0.000781798,0.000751254,0.000687093,0.000761054,0.000781284,0.000822028,0.000792819,0.000809744,0.0007132,0.00077753,0.000711818,0.000806566,0.000799129,0.0008512,0.000793596,0.000764916,0.000663391,0.000749365,0.000781759,0.000847996,0.000833788,0.000757929,0.00076211,0.00081385,0.000845266,0.00086691,0.000802346,0.000699715,0.000675055,0.00080373,0.000859096,0.00091267,0.000852053,0.00072185,0.000754308,0.000808802,0.000824261,0.000867448,0.000840095,0.000825301,0.00073933,0.000769185,0.00080563,0.000812832,0.00084535,0.000709426,0.000763235,0.000765118,0.000820963,0.000815464,0.000827347,0.000805032,0.000804794,0.000801794,0.000849932,0.000854798,0.000835524,0.000731601,0.000722798,0.00083957,0.000802193,0.00082057,0.000775093,0.000869707,0.000782548,0.000802814,0.000794717,0.000813714,0.000823967,0.000784858,0.000798966,0.000825906,0.000869069,0.000871417,0.000872022,0.000883937,0.000816701,0.000804278,0.000799313,0.000823951,0.000838986,0.000773155,0.000778033,0.000771173,0.000837056,0.000878883,0.000894742,0.000961978,0.000776895,0.000739245,0.000718484,0.000724711,0.001086273,0,0,0,0,0 +PRODUCTION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001096921,0.001097179,0.001096148,0,0,0,0,0,0,0,0,0,0,0,0.001258141,0.001332642,0,0,0,0.000915384,0.000916013,0.000914495,0,0,0,0.000667398,0.000667461,0.00066727,0,0,0,0.000470102,0.000470057,0.000469925,0,0,0,0.000392372,0.000392188,0.000392634,0,0,0,0.000620551,0.000620619,0.000620053,0,0,0,0.000483955,0.000521066,0.000521047,0,0,0,0,0,0,0,0,0,0.000620482,0.000618735,0.000618047,0,0,0,0.000559566,0.000558332,0.00058517,0,0,0,0.000692923,0.000688629,0.000729943,0,0,0,0,0.000786902,0.000743023,0.000755572,0,0,0,0.001119907,0.001163922,0.001095464,0.001117214,0.001141087,0,0.000568622,0.000572231,0.000906158,0.001756119,0.001850383,0.002078626,0.00123435,0.001043297,0.000777143,0.000740221,0.000627462,0,0.000933368,0.000870928,0.000986547,0.000729141,0.00089314,0.000684392,0.00067579,0.00068306,0.000729838,0.000752365,0.000572173,0.000567399,0.000510517,0.00064054,0,0.000569132,0.000730848,0.000916625,0.000814176,0.000573424,0.000540346,0.000532104,0.000518188,0.000541084,0.000821137,0.000715856,0.000688927,0.000495125,0.000983177,0.001082386,0.001420535,0.000924459,0.000777651,0.000651015,0.000731743,0.001009748,0.001174562,0.001465649,0.001063473,0.000817566,0.000556502,0.000558036,0.000602682,0.001046198,0.001018,0.001123299,0.000876481,0.000950329,0.000919709,0.000957001,0.000969477,0.000796793,0.000848896,0.001039594,0.001119392,0.001175702,0.000673916,0.000671748,0.000607377,0.000787314,0.000962903,0.001125029,0.001076919,0.000750978,0.000767517,0.000798296,0.000865583,0.000986093,0.000769091,0.000762174,0.000782195,0.000948518,0.000987403,0.001159671,0.000984135,0.000874934,0.000788887,0.000833232,0.000908685,0.000901557,0.000737639,0.000664096,0.00063963,0.000721277,0.000762695,0.000866067,0.000790367,0.000690355,0.00067144,0.000747638,0.000916726,0.0011175,0.001336888,0.001052263,0.000751831,0.000752618,0.000757814,0.000902394,0.001037112,0.000854958,0.000775914,0.000662881,0.000692491,0.000691127,0.000771757,0.000759606,0.000816335,0.000715708,0.000752853,0.00076624,0.000983192,0.000916296,0.000740025,0.000646897,0.000668764,0.000684754,0.000965121,0.000864262,0.000809651,0.00071644,0.000753683,0.000807121,0.00098689,0.00106999,0.000880942,0.000675892,0.000663905,0.000696576,0.000809244,0.000818528,0.000735917,0.000654398,0.000705011,0.000727793,0.000851503,0.000834117,0.000778001,0.000668629,0.000649404,0.000654289,0.000784132,0.000918048,0.000836969,0.000687265,0.000684549,0.000669263,0.000756698,0.000801317,0.000762432,0.000725639,0.000697406,0.00075063,0.000806654,0.000996557,0.000913301,0.000741036,0.000748536,0.000731896,0.000770032,0.000829479,0.000813155,0.000718392,0.000729757,0.000737754,0.000778391,0.000732218,0.000737881,0.000636516,0.000581646,0.000543428,0.000549676,0.000888938,0.000975797,0.000921323,0.000659145,0.000654583,0.000644788,0.000665991,0.000746701,0.000733138,0.000736627,0.000703123,0.000725742,0.000744865,0.000796964,0.000652242,0.000717173,0.000675234,0.000710289,0.00069144,0.000775294,0.000769057,0.000678802,0.000631636,0.000620917,0.000679125,0.000915682,0.000881155,0.000804106,0.000700127,0.000683648,0.000684427,0.000987136,0.000869635,0.000724697,0.000686037,0.000691836,0.000765005,0.000913131,0.000864336,0.000814786,0.000824651,0.000852692,0.000854209,0.000898005,0.000753561,0.000771773,0.00070101,0.00071392,0.000749125,0.000994057,0.000987779,0.000840426,0.000772205,0.000736524,0.000746109,0.000785615,0.000895215,0.000781248,0.000778716,0.000521284,0,0,0,0,0,0 +CELLS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001222318,0.001222582,0.001222846,0,0,0,0.001018569,0.001018809,0.001017852,0,0,0,0.002221165,0.002220108,0.002219228,0,0,0,0,0.001110124,0.001110124,0.001110535,0,0,0,0.001373076,0.00137402,0.001371742,0,0,0,0.00152548,0.001525626,0.001525189,0,0,0,0.000799173,0.000799097,0.000798872,0,0,0,0.001020168,0.001019688,0.001020849,0,0,0,0.001131593,0.001131717,0.001130685,0,0,0,0.001191274,0.001191008,0.001190964,0,0,0,0.001107535,0.001102194,0.001101246,0,0,0,0.000837651,0.000835293,0.000834363,0,0,0,0.000923284,0.000949164,0.000947418,0,0,0,0.000894095,0.000866339,0.00086266,0,0,0,0,0.001311504,0.001376778,0.001364228,0.001912412,0,0,0.000888202,0.000896793,0.000918777,0,0.000978075,0,0.001188938,0.00104042,0.001051144,0.001042696,0.001321702,0.001626751,0.001410686,0.000956355,0.000822857,0.000701262,0.000732039,0.000584881,0.000881514,0.000812867,0.000941704,0.000937467,0.001066006,0.000992369,0.001098158,0.000945776,0.000851478,0.000716538,0.000667536,0.000851098,0.000714723,0,0.000543232,0.000640273,0.00089695,0.00084024,0.000718391,0,0.000540346,0.000673998,0.000898193,0.000888923,0.000869439,0.000818121,0.000780784,0.000914077,0.001056005,0.001165647,0.000965964,0,0,0.000488261,0.000695156,0.000737893,0.001118631,0.000916031,0.000895556,0.000934361,0.000904316,0.000892857,0.000803576,0.000825946,0.000694091,0.000561649,0.000649245,0.000855297,0.000797081,0.000660001,0.000625469,0.000697194,0.000489748,0.000449207,0.000397679,0.000503872,0.000455349,0.000452138,0.000548976,0.000664297,0.000810866,0.000654868,0.000516331,0.000508727,0.000844821,0.000935689,0.001067552,0.001062225,0.000938686,0.00087849,0.000923997,0.001048698,0.001111761,0.001134597,0.00108351,0.001008532,0.001021033,0.001065901,0.001118566,0.001126946,0.001082329,0.00102356,0.000985031,0.000910634,0.000967171,0.001030899,0.001065445,0.000804936,0.000758931,0.00079171,0.000842825,0.00084673,0.000939536,0.000970647,0.000876117,0.000936464,0.000892903,0.00090025,0.000555183,0.000823399,0.000931097,0.001233443,0.001118886,0.001139154,0.000666517,0.000804125,0.00083813,0.001086663,0.001044944,0.001117292,0.000975389,0.00105706,0.000882197,0.000996605,0.000931731,0.001036642,0.000661358,0.00105271,0.000961165,0.00097683,0.00091983,0.000961736,0.00100528,0.001089752,0.000976866,0.000923305,0.000938784,0.001011525,0.001026259,0.00110742,0.001030696,0.000893448,0.000980681,0.001024198,0.001196492,0.001045854,0.000844078,0.00076564,0.000723468,0.000748311,0.000793995,0.000958466,0.000846459,0.000823659,0.000785051,0.000812268,0.000808184,0.000704939,0.000647313,0.000628887,0.000684267,0.000698824,0.000730804,0.000647648,0.000762826,0.000666115,0.000678076,0.000615266,0.000637599,0.000577403,0.00065319,0.000612051,0.000553732,0.000529403,0.000521493,0.000649715,0.000768778,0.000673812,0.000610932,0.000525047,0.000533082,0.000510863,0.000599875,0.000602351,0.000558556,0.000526936,0.000501914,0.00046146,0.000591287,0.000591959,0.00057465,0.000502665,0.000466348,0.000378015,0.000505169,0.000522542,0.000591318,0.000569729,0.000560451,0.000578349,0.000875127,0.000806223,0.000722929,0.000574156,0.000572631,0.000565763,0.000750481,0.000743181,0.000847279,0.000729661,0.00073121,0.000648297,0.000866038,0.000712634,0.000733168,0.000574746,0.000586687,0.000565731,0.0008653,0.000758291,0.000672249,0.000705425,0.000751706,0.000841485,0.00082532,0.000782386,0.000710477,0.000702085,0.00069089,0.00072141,0.000920423,0.00084257,0.000848642,0.000742782,0.000731699,0.000682094,0.000685409,0.000725548,0.000753246,0.000791623,0.000928139,0.000857584,0,0,0,0,0 +QUANTUM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000572115,0.000572508,0.000571559,0,0,0,0.000619726,0.000619785,0.000619608,0,0,0,0.000987213,0.00098712,0.000986842,0,0,0,0.000510084,0.000509844,0.000510424,0,0,0,0.000511042,0.000511098,0.000510632,0,0,0,0.000744546,0.00074438,0.000744352,0,0,0,0.000796041,0.000792202,0.00079152,0,0,0,0.000961747,0.000989976,0.000988875,0,0,0,0.000727436,0.000753748,0.000724496,0,0,0,0.000804685,0.000799698,0.000796302,0,0,0,0,0.000633894,0.000633755,0.000650632,0,0,0,0.000753041,0.000744147,0.000795095,0.001303417,0.001222594,0,0.000516929,0,0.000362463,0,0,0,0,0,0.000822857,0.001051893,0.000941193,0.000731101,0.000518538,0,0.000672646,0.000659699,0.000576219,0.000410635,0,0,0,0.000501576,0.000540386,0.000648456,0.000510517,0.000757002,0.000633771,0.000818127,0.000664408,0.000802047,0.000574713,0.000625554,0.000540346,0.000744945,0.000725464,0.000734328,0.000531324,0.000664724,0.000734855,0.000914077,0.000691865,0.000707714,0,0,0,0.000691704,0.000621982,0.00054371,0,0.000610687,0.000895556,0.001440473,0.00125213,0.001153274,0.000502235,0,0.000555273,0.000693802,0.000844019,0.000696908,0.000643797,0.000561001,0.000688016,0.000697194,0.000620347,0.000487711,0.000441865,0.000223943,0.000346065,0.000348792,0.000502254,0.000541279,0.000692614,0.000470162,0.000354055,0.000448164,0.000527323,0.000492717,0.000453775,0.000362534,0.000461455,0.000468324,0.000528325,0.000485982,0.000497432,0.000520285,0.000532138,0.000523913,0.000525924,0.000584655,0.00065826,0.000731591,0.000530824,0.000517873,0.000569271,0.000609385,0.000599115,0.000528021,0.000569529,0.00052994,0.000553429,0.000628016,0.00066511,0.000738881,0.000683299,0.000717055,0.000743681,0.000722456,0.000680385,0.000621601,0.000666991,0.000691426,0.000698322,0.00059629,0.000567458,0.000534418,0.000459546,0.000539793,0.000651879,0.000624693,0.000558126,0.000477634,0.000483793,0.000608208,0.000767366,0.000627682,0.000608696,0.000446992,0.000484483,0.000614081,0.000714955,0.000750276,0.000668201,0.000581581,0.000494467,0.000496882,0.000606871,0.000768499,0.000644104,0.000627061,0.000318424,0.00047299,0.000505041,0.000909883,0.000756626,0.000766757,0.000358948,0,0.000799316,0.001053687,0.00082544,0.000757327,0.00047015,0.000562954,0.00052192,0.000919002,0.000928218,0.001026203,0.000736415,0.000492907,0.000409524,0.000782308,0.000815662,0.000908251,0.000812673,0.000741146,0.000616531,0.000971248,0.000993075,0.001012484,0.000758284,0.000553704,0.000679851,0.000946434,0.000919323,0.000855646,0.000734132,0.000497084,0.000536145,0.000857805,0.000919246,0.000926225,0.000701096,0.000400207,0.000519892,0.000881623,0.001035332,0.000925445,0.00082941,0.000532454,0.000576996,0.001025402,0.00113058,0.001112393,0.000838115,0.000448195,0.000390275,0.000919125,0.000963889,0.000830855,0.000863009,0.000659695,0.000730688,0.000581796,0.000885354,0.000994601,0.001019269,0.000904801,0.000590001,0.000787082,0.000975258,0.000880371,0.000837385,0.000638753,0.000308251,0.000418259,0.00061364,0.000924296,0.000970841,0.000996373,0,0.000457589,0.000645965,0.001055507,0.001127559,0.001132441,0.000349354,0.000538062,0.000863717,0.00099753,0.001019703,0.000862501,0.000310314,0.000354955,0.000481249,0.000865278,0.00085958,0.000882233,0.000324668,0.000370588,0.000515232,0.000589415,0.00083914,0,0,0,0,0,0 +COLLABORATION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000759001,0.000688016,0.000547795,0,0,0,0,0,0,0.000151844,0.000159923,0.00016893,0,0,0.000230138,0.000364432,0.000435865,0.000459021,0.000485796,0.000453567,0.00052036,0.000514602,0.000535007,0.000519816,0.00064252,0.000631513,0.000586782,0.000454021,0.000431531,0.00042453,0.000458168,0.000451545,0.000481317,0.000447741,0.000512985,0.000539817,0.000620216,0.000612147,0.000601554,0.000535117,0.000520986,0.000462762,0.000497942,0.000460484,0.00071414,0.000623469,0.000603244,0.000485989,0.000482277,0.000474219,0.000559453,0.000591911,0.00048127,0.000474484,0.000444009,0.000543738,0.000514751,0.000531014,0.000554363,0.000580067,0.000595777,0.000598239,0.000714445,0.000703571,0.000657145,0.000594012,0.000570629,0.000657513,0.000659568,0.000684179,0.000542847,0.000561048,0.000543282,0.00058437,0.000606986,0.000622532,0.000621987,0.000610326,0.000578825,0.000653074,0.000903496,0.000855478,0.0007799,0.000760145,0.000790414,0.000843527,0.000805243,0.000703398,0.000708926,0.000655844,0.000689064,0.000733172,0.000782362,0.000766747,0.000638269,0.000695927,0.000678415,0.000762938,0.000771027,0.000796402,0.000714582,0.000686288,0.000637099,0.000641711,0.000830084,0.000927931,0.000787351,0.000649063,0.000650762,0.00073906,0.000958748,0.000910277,0.000864906,0.000879414,0.000874924,0.000892889,0.000738406,0.000823301,0.00074716,0.000802103,0.00080715,0.000869111,0.000822544,0.000757842,0.000755677,0.0007949,0.000859286,0.000872087,0.000956728,0.000880678,0.000861932,0.000883952,0.000901304,0.000920522,0.000885225,0.000813377,0.000801896,0.000844027,0.000931744,0.000948733,0.001003927,0.000881499,0.000876268,0.00078865,0.000885454,0.000909118,0.000999269,0.000899162,0.000802761,0.000834173,0.000862998,0.000878221,0.00087803,0.000814662,0.000831611,0.000905401,0.001030362,0.001053886,0.00105011,0.000773987,0.000787344,0.000840058,0.000925176,0.000942308,0.000975511,0.000958966,0.000872978,0.000820995,0.000836378,0.000846341,0.000859142,0.000767896,0.000794167,0.000801691,0.00084186,0.000875264,0.000899157,0.001006068,0.000855031,0.00082045,0.000701274,0.000597569,0,0,0,0,0,0 +MAGNETIC,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002678204,0.002682625,0.002681518,0,0,0,0,0,0,0,0,0,0.001150417,0.001150665,0.001150914,0,0,0,0.002037139,0.002037618,0.002035703,0,0,0,0.002221165,0.002220108,0.002219228,0,0,0,0,0.003552398,0.003552398,0.003553713,0,0,0,0.002517306,0.002519036,0.002514861,0,0,0,0.002574248,0.002574493,0.002573757,0,0,0,0.002397518,0.002397292,0.002396617,0,0,0,0.002354234,0.002353126,0.002355805,0,0,0,0.00302975,0.003030082,0.003027319,0,0,0,0.002792048,0.002791425,0.002791321,0,0,0,0.002422732,0.002411049,0.002408975,0,0,0,0.001520181,0.001515901,0.001483313,0,0,0,0.001930502,0.001898328,0.001783376,0,0,0,0.001967008,0.001977031,0.002034993,0.004418605,0.004783649,0,0,0.002098407,0.002119802,0.002056836,0,0.001910524,0.003488879,0.002143271,0.002156118,0.001996572,0.001768923,0.001630125,0.00186179,0.002067718,0.00202882,0.001594839,0.001097574,0.001321702,0.002259376,0.0024687,0.001912711,0.001188571,0.00116877,0.001638373,0.002242043,0.002022297,0.001393485,0.001165919,0.00170133,0.001613414,0.00177942,0.001393817,0.001261034,0.00129749,0.001468902,0.001684733,0.001580611,0.001429447,0.001514005,0.001131734,0.001636254,0.001661019,0.002253371,0.002586207,0.002189439,0.001981268,0.001241575,0.001554565,0.001430007,0.001690576,0.00158511,0.001515639,0.001371115,0.001602214,0.001581949,0.001875107,0.001452721,0.001375845,0.001261342,0.001609835,0.001631131,0.001957604,0.001343511,0.001455278,0.001206883,0.001321693,0.001153274,0.001104917,0.001211387,0.001434455,0.001057222,0.000844019,0.000665231,0.000582483,0.001023001,0.001344759,0.001344588,0.000963171,0.000834242,0.000824815,0.000951759,0.000928911,0.000839685,0.000759222,0.000811918,0.001064261,0.001074655,0.001017909,0.000896329,0.000814451,0.000800665,0.000779025,0.000735945,0.000780923,0.000823393,0.000834799,0.00076734,0.000746148,0.000724011,0.000778973,0.00072038,0.000661514,0.000612495,0.000660645,0.000823964,0.000930665,0.000822504,0.000582063,0.000573235,0.000523459,0.000642566,0.000736126,0.000741916,0.000742653,0.000676809,0.000700301,0.000727408,0.000839269,0.000903606,0.000847592,0.000879012,0.000800647,0.00083166,0.000740244,0.000803317,0.00083577,0.000783955,0.000738977,0.000687108,0.000648977,0.000826384,0.000865869,0.001014954,0.000909183,0.000899572,0.00067627,0.000762252,0.000853034,0.000927432,0.000902364,0.000943439,0.000776711,0.00090975,0.000890143,0.000862082,0.000846388,0.000801447,0.000802998,0.000759439,0.000963163,0.001038027,0.001082048,0.001039899,0.000912681,0.000787373,0.00071118,0.000992056,0.00096895,0.001024198,0.000869451,0.000988107,0.000910155,0.00090444,0.000820073,0.00081915,0.000803859,0.000906501,0.000901498,0.000934893,0.000782206,0.000777947,0.000666206,0.000994074,0.000851131,0.000946786,0.000897532,0.000910456,0.000854812,0.000629404,0.000756556,0.000886792,0.000873707,0.000856977,0.000777508,0.000732527,0.000700799,0.000978336,0.000912196,0.0009031,0.000748564,0.000616714,0.000667001,0.000820509,0.000714246,0.000699264,0.000587013,0.000647339,0.000605874,0.00065711,0.000677137,0.000652248,0.000644788,0.000549358,0.000559132,0.000594436,0.000702441,0.00070692,0.000733234,0.00065714,0.000769608,0.000737046,0.000708183,0.000556541,0.000590707,0.00060811,0.000802907,0.000716166,0.000773628,0.000725284,0.000724277,0.000638189,0.000698561,0.000514269,0.000605199,0.000614566,0.000631281,0.000562403,0.00047155,0.000537235,0.000592934,0.000654165,0.000654795,0.000648575,0.000426128,0.000443063,0.000496352,0.000627109,0.000638683,0.000650624,0.00044783,0.000488648,0.000563738,0.000544693,0.000550793,0.000500536,0.00047862,0.000514506,0.000626798,0.000654513,0.000634581,0.000622493,0.000553137,0.000542487,0.000369623,0.000322672,0.000305142,0.000971928,0,0,0,0,0 +ASSOCIATED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000629327,0.000629759,0.000628715,0,0,0,0.000619726,0.000619785,0.000619608,0,0,0,0.000517112,0.000517063,0.000516917,0,0,0,0,0,0,0,0,0,0.00036503,0.00036507,0.000364737,0,0,0,0.0004095,0.000409409,0.000409394,0,0,0,0.000346105,0.000344436,0.000344139,0,0,0,0.000403313,0.000402178,0.000401731,0,0,0,0.000307761,0.000307082,0.000306518,0,0,0,0.000424695,0.000422063,0.00042027,0,0,0,0,0.000633894,0.000633755,0.000587667,0,0,0,0.000386175,0.000362533,0.000371044,0,0,0,0,0.000572231,0.000652434,0.000823181,0.000740153,0,0,0,0.000548571,0.000506467,0.000592603,0.000584881,0.000570391,0,0,0.000381931,0.00028811,0.000376416,0,0,0.000486559,0.000609057,0.000508598,0.000405285,0,0,0,0.00046242,0.000531526,0.000458313,0,0,0,0,0.000345459,0.000502435,0.000627928,0.000664724,0.000459284,0,0.000582623,0.000624454,0.000852321,0,0.000598193,0.000488261,0.00051222,0.00054371,0,0.000610687,0.000559722,0.000545044,0.000347814,0.000372024,0,0.000605694,0.000740364,0.000528611,0.000357085,0,0.000398541,0.000858001,0.000844383,0.000796793,0.000587698,0.000590387,0.000559696,0.00057852,0.000655702,0.000723421,0.0007125,0.000651995,0.000591256,0.000604493,0.000560588,0.000744922,0.000764756,0.000767502,0.000758041,0.000750446,0.000804588,0.000792784,0.000843947,0.000841943,0.000818276,0.000752219,0.000849498,0.000869695,0.000852573,0.000789483,0.0008109,0.000801794,0.00084794,0.000758531,0.000784613,0.000740213,0.00076883,0.000751523,0.000786492,0.000727594,0.00070196,0.000697271,0.000689744,0.000706756,0.000724148,0.00070831,0.000733493,0.000764109,0.000775936,0.000793078,0.000805786,0.000832006,0.000869024,0.000802116,0.000801494,0.000691127,0.000701597,0.000687262,0.000745004,0.000792933,0.000777537,0.000779742,0.000689275,0.00067195,0.000606966,0.000594376,0.000608696,0.000639104,0.000645977,0.000708305,0.000691281,0.000734093,0.000741643,0.000748963,0.000751917,0.00080461,0.000726287,0.000769881,0.00073146,0.000777442,0.000713919,0.000756218,0.000806004,0.000767947,0.00075428,0.000694395,0.000819597,0.000814868,0.000852604,0.000782057,0.000805046,0.00079983,0.00081701,0.000834327,0.000774339,0.000794526,0.000796428,0.000814556,0.000786341,0.000771027,0.000713365,0.000720111,0.000742889,0.000763857,0.000775351,0.000800438,0.000808804,0.000810509,0.000748536,0.000734431,0.000704883,0.00065281,0.000778877,0.000773925,0.000715504,0.000667315,0.00063984,0.000763157,0.000888729,0.000883912,0.000777698,0.000732828,0.000687614,0.000722954,0.00071985,0.000774843,0.00072048,0.000732417,0.000708803,0.000760649,0.000735982,0.000774005,0.000789534,0.000803353,0.000766946,0.000732105,0.000645595,0.000715845,0.000697196,0.000714139,0.00073046,0.00075989,0.000839017,0.000834813,0.000752973,0.000750472,0.000734839,0.000747353,0.000757561,0.000743181,0.000740888,0.000724449,0.000725445,0.000718512,0.000744939,0.000802173,0.000781167,0.000769114,0.000759945,0.000757542,0.000900086,0.000846904,0.000820851,0.000788416,0.000795846,0.000810947,0.000853456,0.00080572,0.000783846,0.000752042,0.000746546,0.000743246,0.000817861,0.000819265,0.00080756,0.000780012,0.000776337,0.000765976,0.000769582,0.000767965,0.000845652,0.000847552,0.001029853,0.000686067,0,0,0,0,0 +INSTITUTE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004209721,0.004216175,0.00422427,0,0,0,0.006554307,0.006564551,0.006576887,0,0,0,0.027812114,0.027858027,0.027846535,0,0,0,0.04112478,0.04116095,0.041182682,0,0,0,0.045153868,0.04516361,0.045173356,0,0,0,0.001723733,0.001724138,0.001722518,0,0,0,0.0008726,0.000872185,0.00087184,0,0,0,0,0.001332149,0.001332149,0.001332642,0,0,0,0,0,0,0,0,0,0.043857558,0.04386174,0.043849197,0,0,0,0.046587063,0.046582683,0.046569549,0,0,0,0.036843757,0.036826418,0,0,0,0,0.030553021,0.030556367,0.030528504,0,0,0,0.032946169,0.032901593,0.032900368,0,0,0,0.027826809,0.027692626,0.0276688,0,0,0,0.032203022,0.032081426,0.032138443,0,0,0,0.017094734,0.017057034,0.017025664,0,0,0,0.012517323,0.012617456,0.012608109,0.002325581,0,0,0.005630631,0.00697283,0.006862038,0.006464341,0,0,0,0.000888202,0.000858631,0.000795095,0,0,0,0,0,0.000362463,0,0,0,0,0,0.000685714,0.001870033,0.002056681,0.002534484,0.001192637,0,0.000762332,0.001770772,0.002420122,0.002498032,0.001647238,0,0.000446012,0.000537403,0.000667536,0.000607927,0,0,0,0.000391278,0.000465085,0.000381927,0,0,0,0,0.000414551,0.000425137,0,0,0,0.000380865,0.000436967,0.000582823,0.000625036,0,0,0.000406884,0.000621982,0.000737893,0.000950836,0.000671756,0.000671667,0.000622907,0.000626065,0.000558036,0.000652905,0.000660757,0.000462727,0.000495573,0.000454472,0.000475165,0.000490512,0.000759001,0.00090693,0.000622494,0.000375473,0.000308028,0.000309306,0.000373239,0.000619274,0.00065883,0.000642418,0.000541279,0.000473005,0.000369413,0.000413065,0.000478446,0.000530084,0.000634847,0.000629515,0.000710567,0.00085586,0.000915221,0.000823363,0.000690606,0.000723764,0.000777293,0.000887966,0.000809445,0.000694385,0.000640336,0.00069165,0.000823964,0.000872068,0.000865152,0.000767556,0.000755706,0.000680905,0.000785048,0.000724503,0.000796343,0.00079352,0.000753934,0.000707339,0.0006448,0.000727861,0.000906521,0.000937241,0.000808634,0.000700154,0.000675188,0.000821208,0.000926683,0.000764829,0.000632613,0.000580282,0.000564554,0.000652485,0.000731781,0.00072519,0.000659169,0.000622578,0.000607591,0.000587834,0.000709133,0.000647066,0.000634087,0.000535278,0.00052688,0.000526779,0.00058159,0.000596585,0.000516366,0.000541785,0.000543282,0.000629321,0.000705798,0.000677346,0.000551495,0.000462404,0.000398652,0.000438087,0.000566455,0.000519471,0.000464653,0.00046336,0.000489834,0.000508509,0.000455556,0.000466801,0.000455205,0.000519523,0.000516476,0.000550701,0.000441702,0.000501043,0.000442286,0.000483546,0.000462192,0.000507065,0.000440587,0.000420848,0.000364893,0.000361843,0.000380275,0.000423794,0.000485736,0.000514124,0.000453612,0.00046338,0.000478352,0.000555363,0.000726063,0.000670329,0.000589601,0.000525225,0.000501969,0.000474347,0.000424893,0.000465265,0.000588031,0.000610119,0.000612955,0.00055901,0.000497953,0.000447907,0.000605089,0.00060517,0.000636681,0.00055294,0.000518932,0.0004716,0.000640257,0.000605581,0.00059682,0.000515043,0.00048488,0.000465048,0.000624805,0.000625279,0.000639626,0.000541001,0.000580334,0.000497038,0.000781922,0.000642187,0.000568989,0.000446637,0.00045345,0.000516841,0.00075102,0.000578987,0.000509026,0.000429021,0.000439015,0.000458706,0.000432977,0.000408466,0.000422177,0.000430157,0.000454525,0.000400038,0.000396578,0.00038212,0.000427229,0.000431362,0.000457218,0.000522859,0.000759051,0.000624105,0.00056618,0.000470829,0.000497177,0.000436543,0.000453554,0.00065849,0.000482178,0.000465078,0.000313454,0.0003407,0.00039068,0.000420026,0.000421625,0.00024157,0,0,0,0,0,0 +OPTICAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000915384,0.000916013,0.000914495,0,0,0,0.000905754,0.00090584,0.000905581,0,0,0,0.000705152,0.000705086,0.000704887,0,0,0,0.000902456,0.000902032,0.000903059,0,0,0,0.000912575,0.000912675,0.000911843,0,0,0,0.000930683,0.000930475,0.00093044,0,0,0,0.00076143,0.000757758,0.000757106,0,0,0,0.000899699,0.000897166,0.000896168,0,0,0,0.000727436,0.000697915,0.000668766,0,0,0,0.001095266,0.001110692,0.001105974,0.00255814,0.002609263,0.002559181,0,0.00109292,0.001180096,0.001154347,0,0,0,0.001428847,0.001411971,0.00130749,0.000931012,0.001141087,0.001204687,0.001085552,0.001144462,0.001014897,0.000932938,0.000687285,0.001265251,0.001587022,0.001478004,0.00096,0.000740221,0.00104577,0.001023541,0.001451906,0.001161238,0.000807175,0.000486094,0.000432165,0.000581734,0.000549079,0.000840689,0.000689292,0.001289768,0.001271496,0.001418497,0.001327343,0.000931695,0.001041195,0.000569132,0.000697628,0.000572891,0.000622605,0.000521295,0.000720461,0.000638524,0.000690918,0.000811626,0.000966044,0.000971519,0.000780784,0.000799817,0.000801107,0.000874235,0.001136428,0.001650819,0.001495484,0.001098588,0.00076833,0.000893239,0.001230494,0.001587786,0.001679167,0.001167951,0.001182568,0.001041667,0.001104917,0.001431639,0.001295636,0.001123299,0.000844019,0.000982007,0.001348907,0.001452001,0.001344759,0.001394388,0.001861042,0.001514471,0.001355053,0.000914435,0.001019981,0.001007622,0.000864345,0.001291688,0.001469694,0.00169594,0.001106423,0.000902385,0.000770278,0.000765133,0.000726565,0.00073957,0.000638937,0.000697894,0.000688423,0.000741762,0.000761071,0.000783562,0.000820647,0.000822543,0.00074369,0.000725847,0.000641565,0.000853523,0,0.000889523,0.000778217,0.000828006,0.000801546,0.000852098,0.000871728,0.000833582,0.000771139,0.000870408,0.000874497,0.001011946,0.000987812,0.000894861,0.000635694,0.000779908,0.000794057,0.001000992,0.000909883,0.000915207,0.000778131,0.000846006,0.000860805,0.00094829,0.001020823,0.000932117,0.000861907,0.000919802,0.000911926,0.001012651,0.000920767,0.000977382,0.000842098,0.000887722,0.000875667,0.000994796,0.000903599,0.000938992,0.000963533,0.000837072,0.001014944,0.000991525,0.001213691,0.000892129,0.000931841,0.000822405,0.000730295,0.000672459,0.000758539,0.000928986,0.000863723,0.00088299,0.000839913,0.000834944,0.00077772,0.000766746,0.000871788,0.000832801,0.000865156,0.000820438,0.000844956,0.000724623,0.000736381,0.000724343,0.000840042,0.000884342,0.000937681,0.000834361,0.00076432,0.000782308,0.000874285,0.00100084,0.000986044,0.000921302,0.000691768,0.000867721,0.000834747,0.00081641,0.000712359,0.000596794,0.000666521,0.000910987,0.001022657,0.001052134,0.001030478,0.000827097,0.000752421,0.000622841,0.000769563,0.000761598,0.000789252,0.000582789,0.000605874,0.000772105,0.000794082,0.000745649,0.000719936,0.00061021,0.000705614,0.000697224,0.000760232,0.00072894,0.000712632,0.0006061,0.00060365,0.000690902,0.000730158,0.000694357,0.000702365,0.000654735,0.000626608,0.000613244,0.000587732,0.000547031,0.000529627,0.000460798,0.000566401,0.000628725,0.000691546,0.00065018,0.000636566,0.00062921,0.000697234,0.000623095,0.000619287,0.000568476,0.00057892,0.000552297,0.000450043,0.000477927,0.000545886,0.000617174,0.000638014,0.000614148,0.000464243,0.000468059,0.000573025,0.000612914,0.000630118,0.000571082,0.000328722,0.000405151,0.00051881,0.000665922,0.000656297,0.000652661,0.000416857,0.000424167,0.000392024,0.000456043,0.00041957,0,0,0,0,0,0 +ISSUES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000231705,0.000209888,0.000212025,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000418308,0.000487401,0,0,0,0,0,0,0,0,0,0,0,0.000445813,0.000561568,0.000757002,0,0,0.000431865,0.000534698,0.000670498,0.000573424,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000406884,0.000365872,0,0,0,0,0,0.000347814,0.000446429,0,0,0,0.000429496,0.000389547,0.00053852,0.000521169,0.000429,0.000344008,0.000323697,0.000555048,0.000590387,0.00063334,0.000559858,0.000418921,0.000452138,0.000560656,0.000639693,0.000658828,0.000604493,0.000486826,0.000502671,0.000626713,0.000703543,0.000721319,0.000757697,0.000595553,0.000587701,0.000519176,0.000590426,0.000572047,0.000504614,0.000330182,0.000416511,0.000614263,0.000785505,0.000818055,0.000779625,0.000620444,0.000590984,0.000635366,0.000693734,0.000754516,0.000743141,0.000565655,0.000590096,0.000655163,0.000796431,0.000809393,0.000837552,0.000750143,0.000746203,0.000757943,0.000797143,0.000856659,0.000865955,0.000782654,0.000694295,0.00067172,0.000723418,0.000750198,0.000801627,0.000743693,0.000731781,0.000727172,0.000737772,0.000778908,0.000784805,0.000790715,0.000746316,0.000805643,0.000790367,0.000766209,0.000728503,0.000780556,0.000796031,0.000854632,0.000884149,0.00087408,0.000839746,0.000802998,0.000849781,0.000947502,0.000885986,0.000902677,0.000854051,0.00088023,0.000770379,0.000801882,0.000872531,0.000876278,0.000896173,0.00077772,0.000757121,0.000812105,0.000902947,0.000952101,0.000959538,0.000925506,0.00076504,0.000770543,0.000834253,0.000929166,0.000952985,0.000945482,0.000674649,0.00074356,0.000772633,0.000871253,0.000854241,0.000884911,0.000848327,0.000865233,0.000862272,0.000869562,0.000869654,0.00087256,0.000963057,0.000963598,0.000896808,0.000938564,0.000952778,0.001016046,0.000932289,0.000885094,0.000873966,0.000871249,0.000879075,0.000839034,0.000789347,0.000777838,0.000821388,0.000902849,0.000905208,0.000929608,0.000862069,0.000821728,0.000826018,0.000796859,0.000798797,0.000759454,0.00072732,0.000689365,0.000692149,0.000699194,0.000723371,0.000726137,0.000737073,0.00063298,0.000668994,0.000684436,0.000723346,0.000728804,0.000734757,0.000733961,0.00069144,0.000632183,0.000685795,0.000694217,0.000743053,0.000710077,0.00068197,0.000671992,0.000700667,0.000701396,0.000723956,0.00065441,0.000682753,0.000675282,0.000693736,0.000686166,0.000679465,0.000597888,0.000588848,0.000573954,0.000627955,0.000639713,0.000665142,0.000523326,0.000527055,0.000535243,0.000565643,0.000566418,0.000566572,0.000545121,0.000553649,0.000590836,0.000572205,0.000470427,0,0,0,0,0,0 +NETWORKS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000403313,0.000371241,0.000370828,0,0,0,0,0,0,0,0,0,0.000312933,0.000333207,0.000331792,0,0,0,0,0.000284159,0.000262243,0.000230869,0,0,0,0.000502027,0.000477017,0.000477057,0,0,0,0,0,0,0,0,0,0,0,0.000502857,0,0.000383449,0,0,0,0,0,0,0,0,0,0.000486559,0.000680711,0.000540386,0.000648456,0,0,0,0.000391278,0.000398645,0.000534698,0.00052682,0,0,0,0,0.000463786,0,0,0,0.000457038,0.000582623,0.000582823,0,0,0,0.00052895,0.000548807,0.000504874,0,0,0,0.000467181,0.000556502,0.000483631,0,0,0,0.000495573,0.000551858,0.000633553,0.000674454,0.000495,0.000406555,0.000473096,0.000783597,0.000795739,0.000736442,0.000429225,0.000200353,0.000232528,0.00035041,0.000369054,0.000405433,0.000201498,0.000236037,0.000224082,0.000270564,0.000367169,0.000375086,0.000377036,0.000224811,0.000208144,0.000281316,0.000355961,0.000412869,0.000338499,0.000253247,0.000296011,0.000338975,0.000353975,0.000317205,0.000332541,0.000272306,0.000301585,0.000300626,0.000413142,0.000445758,0.000477734,0.000333194,0.000369526,0.000394725,0.000509968,0.000490915,0.000463522,0.000311941,0.000326464,0.000446208,0.000524248,0.000609546,0.000623745,0.000512773,0.000352885,0.000447813,0.000502458,0.000583488,0.000536427,0.000456038,0.000356152,0.000424018,0.00053092,0.000592409,0.000577211,0.000403161,0.000345271,0.000490312,0.000608467,0.000611365,0.000597258,0.000453722,0.000376896,0.000411928,0.000491357,0.000589944,0.000594347,0.000565981,0.000372661,0.000401318,0.000450595,0.000505499,0.000560382,0.000584116,0.000475822,0.000371051,0.000372021,0.000468052,0.000498183,0.000514492,0.000404226,0.00047959,0.00045819,0.000676238,0.000700656,0.000762761,0.000357981,0.000379578,0.00051909,0.000710148,0.000764218,0.000748897,0.000344208,0.00040575,0.000434001,0.000638784,0.000725278,0.000724784,0.000599758,0.000409627,0.000553053,0.000696313,0.000775843,0.000820228,0.0006959,0.000531312,0.000560062,0.001014106,0.001138885,0.001315279,0.000936415,0.000621565,0.000469928,0.000742718,0.000958191,0.001166766,0.00111025,0.000661862,0.000694073,0.000969091,0.001060098,0.001121652,0.001014199,0.000857455,0.000720754,0.000832673,0.00092712,0.001088145,0.001051105,0.000818848,0.000613581,0.00078909,0.001181,0.00125129,0.001419585,0.000906988,0.00078907,0.00069758,0.001055311,0.00114979,0.001290023,0.000670241,0.000597367,0.00075091,0.000928147,0.000971424,0.001027323,0.0007376,0,0.000845166,0.001051262,0.001062847,0.001070261,0.000595709,0.000626099,0.000915876,0.001060767,0.001118865,0.001033194,0.000722155,0.000734344,0.000851643,0.000890095,0.000927584,0.00086922,0.000909904,0.000740386,0.000766478,0.000802229,0.000901202,0.000930061,0.000917887,0.000765733,0.000747646,0.000929296,0.000775568,0.000800412,0,0,0,0,0 +ORGANIC,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003433208,0.003438575,0.003445036,0,0,0,0.005974454,0.005984317,0.005981848,0,0,0,0.002636204,0.002638522,0.002639916,0,0,0,0.001006615,0.001006832,0.001007049,0,0,0,0.002977356,0.002978056,0.002975258,0,0,0,0.00206251,0.002061529,0.002060712,0,0,0,0,0.002072232,0.002072232,0.002072999,0,0,0,0.001373076,0.00137402,0.001371742,0,0,0,0.001763837,0.001764005,0.0017635,0,0,0,0.001457315,0.001457178,0.001456767,0,0,0,0.001294829,0.001294219,0.001295693,0,0,0,0.001715642,0.001715829,0.001714265,0,0,0,0.001489092,0.00148876,0.001488704,0,0,0,0.001245977,0.001239968,0.001238902,0,0,0,0.001240964,0.001237471,0.001236094,0,0,0,0.001482849,0.001479579,0.001448993,0,0,0,0.001452904,0.001466113,0.001548364,0,0,0,0,0.00205469,0.002010533,0.001951895,0.002103653,0.001751313,0.002616659,0.001737787,0.001774504,0.001643197,0.001210316,0.001467112,0.00186179,0.001860946,0.001612652,0.001232375,0.000878059,0.00084589,0.001084501,0.001058014,0.000869414,0.001234286,0.00116877,0.00104577,0.000682361,0.000777807,0.001045114,0.001210762,0.001249957,0.001008384,0.001026589,0.001055922,0.00136612,0.00117585,0.001074807,0.001271496,0.00133744,0.001327343,0.000989926,0.000995926,0.001244976,0.001195934,0.001374938,0.001532567,0.001772403,0.001395893,0.00099326,0.001036377,0.001043519,0.00111095,0.000869254,0.00087264,0.001142596,0.001310902,0.001581949,0.001477357,0.001056524,0.001016929,0.0010579,0.001207376,0.001009748,0.001062699,0.001221374,0.001063473,0.000895429,0.000730409,0.000855655,0.001054693,0.001321513,0.001295636,0.000892031,0.000746632,0.000696908,0.000735767,0.000957001,0.001157118,0.001020891,0.000881546,0.000603221,0.00063334,0.000783801,0.001274976,0.001201395,0.000911066,0.000627391,0.000405433,0.000520536,0.000855634,0.001035623,0.000924885,0.000855148,0.000899682,0.001192738,0.001266042,0.001163157,0.000958304,0.000888836,0.000798378,0.000930871,0.001138007,0.001160467,0.000842301,0.000781528,0.00072981,0.000923726,0.001065095,0.001093625,0.000987163,0.000800463,0.000652278,0.000748729,0.001150681,0.001205972,0.001131275,0.000878278,0.000930802,0.000867382,0.001251476,0.000982307,0.00084148,0.000820124,0.00079241,0.000876672,0.000979281,0.001035705,0.000979868,0.000815737,0.000742183,0.000695145,0.000796312,0.000968289,0.000897572,0.000805344,0.000671945,0.000778054,0.001006601,0.001219072,0.000907716,0.000704541,0.000648741,0.00068095,0.000888219,0.000942241,0.000849897,0.00093858,0.000939094,0.000953225,0.000927636,0.000974001,0.000974909,0.000863871,0.000764073,0.000702251,0.000732173,0.000897831,0.000861662,0.000776911,0.000770703,0.000766757,0.000855492,0.001029813,0.000858998,0.000705941,0.000632229,0.000658153,0.000774269,0.001056622,0.000956536,0.000854116,0.000672223,0.000650958,0.00069741,0.001151033,0.001009657,0.000793366,0.000730761,0.000720869,0.000816285,0.000953228,0.001017798,0.000777816,0.000660668,0.000605969,0.000609831,0.00082517,0.000881712,0.000831822,0.000622146,0.000602808,0.000580185,0.000789971,0.000834206,0.000691216,0.000623948,0.000629737,0.000687614,0.000942422,0.000903812,0.00069818,0.00065751,0.000691165,0.000776529,0.000826572,0.000878892,0.000735615,0.00065279,0.000564169,0.000577785,0.000623645,0.000775079,0.000589886,0.000644257,0.000567091,0.000587826,0.000637871,0.000845389,0.000753333,0.000649698,0.000589657,0.00058772,0.000567862,0.000672601,0.000617749,0.000635267,0.000614566,0.000654342,0.000650342,0.000693564,0.000547048,0.000573169,0.000556458,0.000572348,0.000573194,0.000760942,0.000685658,0.000510505,0.000492687,0.000482189,0.000575976,0.000736223,0.000678068,0.000639893,0.000641384,0.000646111,0.000610553,0.000312944,0.000584421,0.000572804,0.000596267,0.000510922,0.000564364,0.000537104,0.000665272,0.000526432,0.00052488,0.000266999,0,0,0,0,0,0 +TRANSPORT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000790912,0.000791082,0.000791253,0,0,0,0.001175272,0.001175549,0.001174444,0,0,0,0.001269237,0.001268633,0.00126813,0,0,0,0,0.001332149,0.001332149,0.001332642,0,0,0,0.001716345,0.001717524,0.001714678,0,0,0,0.001287124,0.001287247,0.001286879,0,0,0,0.001316284,0.001316161,0.001315789,0,0,0,0.00113788,0.001137344,0.001138639,0,0,0,0.001277605,0.001277745,0.00127658,0,0,0,0.001191274,0.001191008,0.001190964,0,0,0,0.001730523,0.001722178,0.001720697,0,0,0,0.001240964,0.001268407,0.001266996,0,0,0,0.001538806,0.001535412,0,0,0,0,0.00160937,0.001599396,0.001592603,0.00255814,0.002609263,0.002559181,0,0.001748672,0.00174829,0.00178399,0,0,0,0.00169917,0.001698182,0.001696203,0.001303417,0.002037656,0.002299858,0.001809253,0.001768715,0.0014861,0.001536604,0.001744647,0.002892002,0.00290954,0.002173535,0.001142857,0,0.001010911,0.001657162,0.002281566,0.002090228,0.001704036,0.001145794,0.00146936,0.001539883,0.001900659,0.001733922,0.001256944,0.001182287,0.001335071,0.001459026,0.002042067,0.001921621,0.00208239,0.001529541,0.001627799,0.001298552,0.001532567,0.001198978,0.001666066,0.001383469,0.001416382,0.001236763,0.00154567,0.001533978,0.00119414,0.00087599,0.000873935,0.001082386,0.001420535,0.002377179,0.002213316,0.001668226,0.00128055,0.001436949,0.001677946,0.001587786,0.001399306,0.001518337,0.001599944,0.001488095,0.001356034,0.001431639,0.001295636,0.001156337,0.001038792,0.001203751,0.001348907,0.001881002,0.002032775,0.001543786,0.001208045,0.001219277,0.001443427,0.00125035,0.00069213,0.00058132,0.000619058,0,0.000979796,0.001276153,0.001032662,0.000805485,0.000706778,0.00075092,0.000818369,0.000942589,0.001057007,0.000933587,0.000807354,0.000756683,0.000756097,0.000908931,0.000913611,0.000809445,0.000673841,0.000688063,0.00074412,0.000750066,0.000672147,0.000661049,0.000735575,0.000729884,0.000740203,0.000684472,0.000871728,0.000756239,0.000697891,0.000601259,0.000638717,0.000676925,0.000776138,0.000763693,0.000680519,0.00067075,0.000680385,0.000758782,0.000832774,0.000711509,0.000775914,0.000729472,0.000748595,0.000715236,0.000652485,0.000678915,0.000709339,0.000719845,0.000662346,0.000632907,0.000572228,0.000629455,0.000603321,0.000730161,0.000770213,0.000857845,0.000742105,0.000734298,0.000679444,0.000732622,0.00065255,0.000651087,0.000559851,0.000654981,0.00072433,0.000717358,0.000842111,0.000854051,0.00092485,0.000892167,0.000746224,0.000729101,0.000678031,0.000731968,0.000785696,0.000972067,0.00088884,0.000758177,0.000642963,0.000690352,0.000851531,0.001186534,0.000916681,0.000791878,0.000762296,0.000805404,0.000770739,0.000793056,0.000686944,0.000711818,0.000706503,0.000708745,0.000780166,0.000820962,0.000852693,0.000696084,0.000699629,0.000700625,0.000702747,0.000853178,0.000775068,0.000824733,0.000740447,0.000789656,0.000756262,0.000804409,0.000821484,0.000799374,0.000715873,0.000635331,0.000620201,0.000560658,0.000677859,0.000621517,0.000646878,0.000641351,0.000693031,0.000704868,0.00073241,0.000657595,0.000713022,0.000712994,0.00075009,0.00077836,0.000833438,0.000791919,0.000752133,0.000660727,0.000651218,0.000609102,0.000709447,0.000676141,0.000735135,0.000707846,0.000740875,0.000721111,0.000651361,0.000675761,0.000723156,0.000724015,0.000725925,0.000712377,0.00073393,0.000697915,0.000637169,0.000637445,0.000630897,0.000632156,0.000591361,0.000620288,0.000638889,0.000656916,0.00065674,0.000687099,0.000832354,0.000738462,0.000690973,0.000696176,0.000707523,0.000703774,0.00060222,0.000639995,0.000647926,0.000627492,0.00060623,0.000611456,0.000649335,0.000700991,0.000792448,0.000705577,0.000928139,0.000686067,0,0,0,0,0 +DEVICES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000268228,0.000244352,0.000265434,0,0,0,0,0,0,0,0,0,0,0.000366866,0.000381614,0.000353376,0,0,0,0,0.000572231,0.000471202,0.000548787,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000317874,0,0,0,0,0.000355707,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000965964,0.001122557,0.00095711,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000429198,0.000561001,0.000625469,0.000572695,0.000897871,0.00088558,0.000854273,0.00048521,0.000309637,0.000503811,0.000572336,0.001057954,0.001047368,0.001074655,0.00038356,0.000532952,0.000438976,0.000442972,0.000367217,0.000377036,0.000315525,0.0003918,0.000434553,0.000560585,0.000557124,0.000570433,0.000381473,0.000374598,0.000326648,0.000421588,0.00040545,0.000543151,0.000303328,0.000380789,0.000341136,0.000413142,0.000415086,0.00049729,0.000538534,0.000524211,0.000408968,0.000476915,0.00046804,0.000571371,0.000445629,0.000451803,0.000358597,0.00051563,0.000538707,0.000655897,0.000524339,0.000438955,0.000343619,0.00043284,0.000484102,0.000558527,0.000494626,0.000475797,0.000431944,0.000581944,0.000577324,0.000646409,0.00052541,0.000539154,0.000625194,0.000649459,0.00066209,0.000627691,0.000569075,0.000519857,0.000582381,0.000539904,0.000577904,0.000541863,0.000684489,0.000640865,0.000720415,0.000620605,0.000621974,0.000560382,0.000626707,0.00063443,0.000595742,0.000590154,0.000580666,0.000637341,0.000654082,0.000705791,0.000703398,0.000607437,0.000662284,0.000620802,0.000759474,0.000730397,0.000772441,0.000599867,0.000745229,0.000740193,0.000831587,0.000669141,0.000632215,0.000804423,0.000914714,0.000997533,0.000937885,0.00065905,0.000570552,0.000728777,0.000868733,0.000897544,0.000891784,0.000747608,0.000714129,0.000871995,0.000941415,0.000970573,0.000944846,0.000789971,0.000701532,0.000645218,0.000798035,0.000800757,0.000826589,0.000582789,0.000627869,0.000714607,0.000878315,0.000825818,0.00088322,0.000669371,0.000787787,0.000771528,0.000866045,0.000822335,0.000795039,0.00071456,0.000709426,0.000820602,0.000809067,0.000841405,0.000841397,0.000888853,0.000870878,0.000864832,0.000752034,0.000807306,0.00078237,0.000790389,0.000641921,0.000636564,0.00084805,0.000843454,0.000871975,0.000840537,0.0009431,0.000912564,0.000902577,0.000825021,0.000825066,0.000809786,0.000830514,0.000791702,0.000818829,0.000905305,0.000927595,0.000955153,0.000804219,0.000771405,0.000842356,0.000928771,0.000968526,0.000946484,0.000762636,0.000778033,0.000821645,0.000890498,0.000950666,0.000987454,0.0010702,0.000863961,0.000604837,0.000619531,0.000495855,0,0,0,0,0,0 +VARIETY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000326499,0.000462042,0.000471323,0.000447887,0.000546418,0.000645911,0.00070082,0.000578184,0.000473005,0.000369413,0.000472074,0.000787316,0.000927646,0.000938057,0.000936403,0.000873708,0.000753315,0.000789723,0.000805066,0.000831285,0.000798378,0.000764756,0.000855909,0.000814684,0.000856681,0.000799426,0.000837135,0.000794404,0.000841046,0.000910847,0.000895482,0.000912355,0.000869023,0.000877242,0.000821362,0.000948163,0.000887115,0.000840503,0.000740771,0.00078248,0.000917254,0.000958988,0.000957616,0.000890503,0.00088796,0.000859525,0.000848196,0.000946766,0.000904494,0.000897462,0.000823936,0.000809663,0.000775265,0.0007763,0.000792558,0.00083844,0.000832389,0.000840501,0.000790715,0.000865833,0.000838452,0.000839044,0.000827612,0.000802684,0.000819007,0.000857764,0.000845162,0.000816477,0.000753683,0.000783006,0.000735571,0.000787671,0.000745864,0.000794761,0.000793191,0.000817165,0.000793018,0.000801534,0.000806004,0.000830698,0.000822317,0.000807113,0.000765755,0.000747497,0.000767344,0.000801459,0.000838321,0.000842333,0.000853175,0.00079391,0.000892008,0.000942838,0.000864693,0.000823708,0.000736415,0.000721461,0.000769981,0.00078369,0.000824759,0.000798027,0.000798226,0.000789036,0.000808804,0.000813233,0.000755997,0.000749644,0.00072838,0.000704518,0.00074079,0.000756202,0.000766102,0.000757773,0.000716813,0.000627026,0.000636105,0.000727269,0.000765496,0.000745615,0.000721839,0.000687913,0.000753843,0.00076526,0.000755645,0.000710624,0.000699525,0.000640636,0.000689537,0.000744284,0.000721162,0.000696289,0.000658319,0.000630025,0.000640124,0.000684667,0.000723166,0.000747769,0.000753512,0.00070632,0.000664841,0.000664705,0.000701335,0.000720117,0.000735594,0.000709565,0.000625401,0.000636564,0.000700027,0.00069231,0.000694217,0.000663295,0.000660537,0.000659892,0.000659757,0.00065103,0.000645834,0.000634395,0.000571794,0.000627551,0.000686401,0.000714776,0.000709573,0.00067183,0.000581476,0.000614928,0.000661254,0.000677375,0.000681295,0.000671861,0.000552254,0.00057725,0.000616234,0.000655714,0.000659313,0.000654869,0.000589211,0.000602763,0.000641239,0.000709879,0.000737426,0.000571723,0,0,0,0,0 +COURSES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000783515,0.000783699,0.000782963,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000289631,0.00028621,0.000300369,0,0,0,0,0,0.00039871,0,0,0,0,0,0,0,0,0,0,0.001045114,0.000762332,0.000659699,0,0,0,0,0,0,0.000508598,0.000607927,0.000765775,0,0,0.000355707,0.000365424,0.000611084,0.000766284,0.001407496,0.001260807,0.000957786,0.000552734,0.000541084,0.00067623,0.000715856,0,0,0.000400553,0.001040756,0.001306892,0.000924459,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000186619,0.001857822,0.002079835,0.002079099,0.001451611,0.000929117,0.000839574,0.000486826,0.001090129,0.000643279,0.000549569,0.000222953,0.000119636,0.00014593,0.000453019,0.000727304,0.000801444,0.00082325,0.000673863,0.000657159,0.000728239,0.000708765,0.000644313,0.000517545,0.00038427,0.000651466,0.000932171,0.00081233,0.000693734,0.000494832,0.000525228,0.000391309,0.000882279,0.001064131,0.001064007,0.000841065,0.000598907,0.000386212,0.000559653,0.000969841,0.000950827,0.0009588,0.000615171,0.00039711,0.000754544,0.001055243,0.000992808,0.000868819,0.000735327,0.000761233,0.000595442,0.000685563,0.000871537,0.001035344,0.000973833,0.000723088,0.000480723,0.001120974,0.001196439,0.001222731,0.000873062,0.000611372,0.000623828,0.000909082,0.001260758,0.001240085,0.001170254,0.0007417,0.000567462,0.001055172,0.001125105,0.001086707,0.000849795,0.000734201,0.000702404,0.00088846,0.0010817,0.000972469,0.000903131,0.000486573,0.000343271,0.000517957,0.000731313,0.00082866,0.000816574,0.000992905,0.001013317,0.001091287,0.00064489,0.000539485,0.000409566,0.000664646,0.001002335,0.001154972,0.000740843,0.00070246,0.000541203,0.000629671,0.000907619,0.000967639,0.000852737,0.00064409,0.000633859,0.000593811,0.000689437,0.000676042,0.000744386,0.000788194,0.000787432,0.000754337,0.000651778,0.000645192,0.000729756,0.00082244,0.000843912,0.00083696,0.000667626,0.000605874,0.000558544,0.00075401,0.000767442,0.000810855,0.000659229,0.000557346,0.000569668,0.000607209,0.00066288,0.000767882,0.000907555,0.000871736,0.000693397,0.000615291,0.000665343,0.000664185,0.000755922,0.000788039,0.000781922,0.000665658,0.000759514,0.000763509,0.000860715,0.000748121,0.000732206,0.000610596,0.000658432,0.000648577,0.000721921,0.000717417,0.000738392,0.000653168,0.000658345,0.000632092,0.000659024,0.000593535,0.000597045,0.000622715,0.000669774,0.000669447,0.000655713,0.000440796,0.000529826,0.000537733,0.000681672,0.000688971,0.000744926,0.000573292,0.000521676,0.00051881,0.000686338,0.00074316,0.000818954,0.000731504,0.000591601,0.000518032,0.000602322,0.000813711,0.000914756,0,0,0,0,0 +MULTI,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000357638,0.000355421,0.000376031,0,0,0,0,0.000590177,0.000590048,0.000566679,0,0,0,0.00046341,0.000438856,0.000424051,0,0,0,0,0,0.00039871,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000446012,0.000358269,0.000317874,0,0.000510517,0.000582309,0.00067904,0.00046242,0.000531526,0.000458313,0.00052682,0.000677683,0.000675432,0.000638524,0.00058728,0.000541084,0.00067623,0.000562458,0.00059707,0.000571298,0.000509795,0.000541193,0,0,0,0.000447573,0.000548807,0.000582547,0,0,0,0.000545044,0.000626065,0.000706845,0.000502235,0,0.000647818,0.000627726,0.000584321,0.00053852,0.000551826,0.000528001,0.000437828,0.000373497,0.000408123,0.000462042,0.000500781,0.000503872,0.000382493,0.000426302,0.000397131,0.000418261,0.000439219,0.00045337,0.000457322,0.000363376,0.000334063,0.000381382,0.00036984,0.000380661,0.000323413,0.000330582,0.000322484,0.000353829,0.000358151,0.0004576,0.000407118,0.000395554,0.000326648,0.000326134,0.000350595,0.00039905,0.000361925,0.00033814,0.000432816,0.000471671,0.000503011,0.000444209,0.000321571,0.000343745,0.000400829,0.000549317,0.000577133,0.000578255,0.000464197,0.000399335,0.000413609,0.000400726,0.000439862,0.000409399,0.00039711,0.000344279,0.000365788,0.000366249,0.000394335,0.000407845,0.000459546,0.000475797,0.000416093,0.000460591,0.000501902,0.000555271,0.000629451,0.000560401,0.000490312,0.000434254,0.000439168,0.000460307,0.000569075,0.000497113,0.000525563,0.00046929,0.000565864,0.000564559,0.000615019,0.000513821,0.000616659,0.000641338,0.000649928,0.000624223,0.000606426,0.000478655,0.000424647,0.000463159,0.000574801,0.000617859,0.000678012,0.000513303,0.000500905,0.000483562,0.000681605,0.000740583,0.000789064,0.000476346,0.000501043,0.000497903,0.000630506,0.00064867,0.000714572,0.000581024,0.000620892,0.000602626,0.00075704,0.000778186,0.000815081,0.000679574,0.00062907,0.000651131,0.000765115,0.000791056,0.000831976,0.000708827,0.000655095,0.000687671,0.000815988,0.000836368,0.000870759,0.000771408,0.000716072,0.000663866,0.0007175,0.00079756,0.000849405,0.000907381,0.00081583,0.000736511,0.000758916,0.000776004,0.000858171,0.000904327,0.000873533,0.000765336,0.000793604,0.000795,0.000824069,0.000789525,0.000751371,0.000796907,0.000919939,0.001045822,0.00105895,0.001063449,0.000751929,0.000783352,0.000837471,0.000979747,0.001020023,0.000992972,0.000684401,0.000647539,0.000838799,0.000968539,0.001010819,0.001045728,0.000904569,0.000851236,0.000816931,0.000919593,0.000943956,0.001002344,0.00100227,0.000835282,0.000858255,0.000898291,0.000951671,0.000933098,0.000806563,0.000761797,0.000752269,0.000872368,0.000907753,0.000961601,0.000809972,0.000745764,0.000734786,0.000885094,0.000953682,0.001007321,0.001030118,0.000904145,0.000943658,0.000980924,0.001042567,0.000914756,0,0,0,0,0 +KEY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00033,0.000312735,0,0.000293849,0.000308028,0.000324035,0.000279929,0.000364279,0.000348792,0.000327049,0.000319846,0.000354754,0.000436579,0.000339303,0.000302814,0.000331302,0.000326899,0.000354102,0.000416914,0.00041807,0.000345886,0.000244722,0.000328251,0.000380535,0.000485808,0.00039109,0.000314348,0.000314322,0.000357952,0.000388755,0.000410134,0.000355032,0.000377742,0.000353929,0.000344285,0.000329206,0.000349221,0.000430053,0.000406765,0.000390656,0.00039192,0.000425811,0.000509415,0.000534755,0.000475122,0.000419721,0.000416525,0.000446451,0.000447982,0.000470363,0.000384444,0.000443379,0.0004283,0.00047769,0.000417891,0.000501642,0.000425713,0.000465628,0.000428873,0.000451163,0.00043544,0.000483793,0.000424949,0.000422872,0.000439377,0.000483219,0.000524978,0.000519089,0.000529604,0.000494787,0.000542847,0.000534561,0.000563141,0.000565981,0.000522291,0.000530523,0.000514176,0.000595185,0.0005845,0.00063482,0.000495648,0.000507103,0.000539356,0.000561897,0.000571937,0.00055238,0.000641628,0.00059256,0.000616392,0.00064833,0.000690352,0.000746323,0.000710188,0.000658568,0.000561465,0.000675068,0.000697864,0.000786341,0.000589285,0.000617117,0.000638563,0.000701449,0.000724176,0.000763311,0.000802718,0.000729387,0.000648407,0.000733616,0.000766546,0.00082984,0.000814397,0.000695086,0.000692397,0.000766102,0.000808934,0.000842856,0.000913726,0.000863285,0.000760835,0.000737837,0.000736025,0.000796512,0.000853897,0.000907811,0.000817281,0.000787539,0.000797019,0.000832194,0.000894185,0.000844951,0.000786389,0.000782208,0.000835244,0.000885874,0.00097295,0.000899092,0.000835568,0.000795083,0.000842724,0.000857246,0.000905717,0.000868754,0.00076048,0.000741707,0.000884162,0.000940051,0.001033908,0.000981762,0.000928192,0.000877346,0.00086517,0.000878701,0.000916205,0.001097226,0.00100333,0.000961871,0.000980725,0.000994739,0.001009807,0.000954439,0.000900652,0.000956312,0.000987127,0.001014536,0.001031497,0.000989447,0.000945726,0.000884149,0.000924474,0.000925026,0.00096496,0.000936202,0.000973438,0.000955456,0.000939136,0.000925331,0.000924174,0.001006068,0.00103586,0.001066865,0.000942203,0.000851854,0,0,0,0,0,0 +OPPORTUNITIES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000212224,0.000166848,0.000162017,0,0.000309637,0.000400465,0.000478894,0.000467468,0.000456112,0.000319038,0.000250789,0.000466333,0.000507997,0.000497455,0.000411808,0.000297278,0.000295804,0.000388739,0.000443701,0.000483851,0.000465099,0.000391781,0.000301331,0.000340543,0.000402661,0.000435508,0.000403065,0.000395355,0.000268859,0.000386881,0.00038591,0.000461342,0.000460071,0.000458177,0.000360314,0.000363797,0.000390656,0.000409234,0.000387101,0.000357967,0.000271091,0.000381846,0.000411571,0.000448124,0.000418445,0.000396539,0.000273736,0.000416003,0.000454464,0.000496404,0.000471278,0.000452045,0.00034729,0.000356152,0.000441851,0.000441284,0.000459391,0.00039831,0.000397959,0.000339959,0.000417403,0.000453468,0.000463196,0.000460307,0.000430652,0.000487366,0.000497154,0.00044281,0.000441856,0.000409944,0.000443386,0.000423479,0.00046592,0.000434009,0.000429791,0.000404326,0.000446199,0.000393686,0.000449384,0.000446724,0.000499725,0.000496792,0.000490562,0.000439515,0.000539272,0.000534306,0.000539917,0.000499733,0.000486589,0.00051965,0.000639589,0.000573383,0.000543278,0.000471344,0.000583515,0.00066088,0.000747335,0.000641327,0.000637773,0.000575373,0.000616428,0.000570112,0.00063325,0.000596643,0.000675589,0.000662594,0.000705951,0.000728218,0.000818868,0.000693579,0.00078962,0.000771861,0.000841894,0.00077347,0.000857832,0.000803104,0.000881825,0.000828728,0.000886742,0.00080779,0.000929807,0.00084466,0.000821069,0.000807138,0.000810855,0.000841785,0.000919978,0.000868124,0.000821278,0.000818539,0.000861526,0.00093786,0.000913682,0.00085178,0.000816059,0.000785355,0.000772962,0.000820403,0.000923981,0.000879127,0.000916336,0.000913225,0.000925716,0.000963581,0.001113922,0.001153969,0.001013805,0.000941611,0.000920498,0.0009462,0.001194471,0.001112494,0.001002341,0.000933178,0.00092902,0.000976221,0.00126099,0.001172301,0.001065489,0.000991218,0.000991797,0.001022166,0.001205155,0.001159852,0.001061536,0.000970134,0.000941658,0.000949843,0.001122916,0.001097134,0.00104349,0.000952947,0.000954888,0.00096538,0.001130324,0.001256873,0.001341282,0.001325107,0.001042567,0.001029101,0,0,0,0,0 +OBJECTIVE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000660001,0.000625469,0.000622494,0.000685647,0.000872746,0.000927917,0.000914435,0.00069213,0.000736339,0.000876025,0.00103335,0.001131833,0.000940323,0.000811377,0.000835766,0.000844821,0.000926213,0.000923288,0.001054975,0.000989958,0.001034598,0.000930858,0.000969833,0.000974967,0.001006093,0.000910405,0.000825162,0.000801213,0.000845164,0.00085383,0.000942201,0.00099271,0.000993097,0.000904011,0.000872763,0.000899694,0.001070012,0.001123561,0.001068474,0.000968501,0.001043546,0.001027577,0.001046366,0.000932108,0.000921095,0.000980029,0.00099248,0.001023049,0.001031001,0.000963859,0.000926683,0.000831336,0.000858113,0.000844775,0.000863908,0.000712121,0.000784648,0.000806428,0.000877053,0.000879014,0.000918137,0.00092857,0.000937543,0.000975156,0.000905656,0.000906369,0.000823607,0.000868993,0.000844767,0.000928022,0.000904744,0.000877691,0.000812795,0.000737614,0.000765085,0.000835916,0.00080029,0.000804839,0.00077886,0.000866033,0.000761882,0.000758592,0.000764959,0.000835221,0.00084886,0.00083555,0.000802035,0.000820631,0.000761162,0.000808266,0.00079339,0.000859751,0.000713075,0.000768645,0.000712425,0.000849523,0.000847733,0.000982927,0.000861898,0.000839808,0.000733932,0.000766136,0.000771573,0.000786186,0.0007115,0.000685498,0.000622525,0.000654037,0.000650762,0.000701679,0.000745453,0.000761738,0.000713665,0.000679871,0.000665832,0.000624445,0.000633214,0.000647009,0.000622841,0.000593035,0.000573796,0.000621238,0.000593855,0.000621871,0.000607827,0.00062398,0.000620336,0.000617883,0.000586545,0.000564491,0.000570906,0.000571395,0.000582393,0.000570293,0.000585365,0.000579942,0.000606098,0.000590319,0.000561816,0.000550366,0.000563469,0.000584126,0.000693295,0.000713541,0.000704617,0.000669202,0.000646586,0.000632481,0.000608342,0.000684608,0.000731833,0.000752349,0.00073351,0.000675216,0.000670931,0.000637169,0.00065939,0.000648821,0.000689624,0.000658759,0.000713258,0.000677303,0.00072062,0.000701548,0.000717637,0.000611956,0.000643752,0.000588813,0.000625806,0.000619882,0.000655904,0.000562773,0.000553945,0.000626798,0.000680333,0.000688871,0.000682094,0.000591216,0.000571509,0.000582436,0.00069267,0.000928139,0.001372134,0,0,0,0,0 +TEACHING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001150417,0.001150665,0.001150914,0,0,0,0.000940218,0.000940439,0.000939555,0,0,0,0.001507219,0.001506502,0.001585163,0,0,0,0,0,0.000888099,0.000888428,0,0,0,0.00074375,0.000744261,0.000743027,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000392372,0.000392188,0.000392634,0,0,0,0.000547545,0.000547605,0.000547106,0,0,0,0.000781774,0.000781599,0.00078157,0,0,0,0.000380715,0.000378879,0.000378553,0,0,0,0.000465362,0.000464051,0.000494438,0,0,0,0,0,0,0,0,0,0.000245876,0.000244352,0.000243314,0,0,0,0,0.000240442,0.000284097,0.000293834,0,0,0,0,0,0,0,0,0,0,0.000728294,0.000543695,0.000603666,0,0,0,0,0.000731429,0.000701262,0.000627462,0,0,0.000580619,0.001165919,0.000902746,0.000691463,0.000376416,0.000591316,0.00068306,0.000405466,0.000358269,0.000445024,0.000607927,0.000663672,0,0.000588502,0.000533561,0.000564747,0.000763854,0.000909962,0.000729813,0.000495317,0.000425683,0.000621826,0.000734328,0.000724533,0.000511326,0,0,0.00036414,0.000874235,0.001079607,0.00072636,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000380132,0.00030657,0.000363,0.000312735,0.000622494,0.000457098,0.000295193,0.000220933,0.000410563,0.001566399,0.001795634,0.001985657,0.001869872,0.001587945,0.001091446,0.000870386,0.000672247,0.000438976,0.000658535,0.0006164,0.000772198,0.000386518,0.000569335,0.000580929,0.000754551,0.000785943,0.000865052,0.000554578,0.000537011,0.000515652,0.000747722,0.000770355,0.000931116,0.000696276,0.000758531,0.000631102,0.000636927,0.000566398,0.000636978,0.000395183,0.000615876,0.000693821,0.000788562,0.00074253,0.000731997,0.000631308,0.000539249,0.000615319,0.000657823,0.000995043,0.001061009,0.001341692,0.000688557,0.000676154,0.000699203,0.000695697,0.000745372,0.000736677,0.000623266,0.000572623,0.000652273,0.000772051,0.000832062,0.000801119,0.000727725,0.000865793,0.000862102,0.000831617,0.000715188,0.000819007,0.000643323,0.000639198,0.000672306,0.000679037,0.00066669,0.00057211,0.000615456,0.000751737,0.000659306,0.000610326,0.000493704,0.0005902,0.000691075,0.000824557,0.000708185,0.000692107,0.00061925,0.000572322,0.000468389,0.000503036,0.000561171,0.000702,0.000728992,0.000823585,0.00079391,0.000892008,0.000655484,0.000561292,0.000462192,0.000553871,0.0007132,0.000841695,0.000639945,0.000617558,0.00051034,0.000582717,0.000697818,0.000750286,0,0.000605129,0.000592447,0.000650415,0.00082517,0.000830294,0.00073257,0.000694124,0.000682144,0.000686023,0.000792033,0.000808762,0.000839157,0.000783392,0.000756803,0.000702134,0.000654716,0.000729848,0.000644789,0.000655056,0.000677933,0.000719008,0.000823191,0.000725264,0.000656357,0.000633255,0.00068414,0.000809086,0.00095381,0.000879031,0.000646006,0.000553362,0.000596105,0.000604394,0.000704336,0.000870878,0.000829095,0.000711663,0.000809244,0.000810285,0.001136774,0.001264962,0.001387584,0.000941336,0.000829555,0.000784538,0.000779865,0.000944935,0.000745751,0.000688933,0.000727315,0.000733657,0.000772469,0.00064354,0.000713258,0.000681347,0.000763285,0.000746356,0.000782106,0.000616646,0.000632772,0.000566524,0.000779437,0.000811157,0.000922969,0.000667964,0.000605933,0.000588063,0.000729572,0.000793227,0.000946984,0.001098258,0.000870658,0.000568435,0.000537787,0.00075014,0.000571723,0,0,0,0,0 +EQUIPMENT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001880436,0.001880878,0.001879111,0,0,0,0.002300492,0.002299397,0.002298486,0,0,0,0,0.002220249,0.002220249,0.002221071,0,0,0,0.001773557,0.001774775,0.001771834,0,0,0,0.002192878,0.002193087,0.00219246,0,0,0,0.00300865,0.003008367,0.003007519,0,0,0,0.002432708,0.002431563,0.002434332,0,0,0,0.002482205,0.002482477,0.002480213,0,0,0,0.002047502,0.002047045,0.002121404,0,0,0,0.002215069,0.002204388,0.002202492,0,0,0,0.001178916,0.001175597,0.001174289,0,0,0,0.001203066,0.00122833,0.001226071,0,0,0,0.009812687,0.009774085,0.009754695,0.005116279,0.004783649,0.004478567,0,0.005792476,0.005813064,0.005813709,0.002677376,0,0,0.008244835,0.008204698,0.009346785,0.009961829,0.008395142,0,0.002377875,0.002601051,0.021457827,0.030238174,0.029024584,0,0.00123435,0.00121718,0.01664,0.014025245,0.012584097,0.000877321,0.001555613,0.001683795,0.001479821,0.001666609,0.010746492,0.012455942,0.01495185,0.001681379,0.001338037,0.002830324,0.004799898,0.006038745,0.005360425,0.002562162,0.003938434,0.0058336,0.006511195,0.007485773,0.005555556,0.007871553,0.006754323,0.005817666,0.005423705,0.006029219,0.006714003,0.003834944,0.004041703,0.003770567,0.003787051,0.003954873,0.004091142,0.00455626,0.003469522,0.003499207,0.003658715,0.002563206,0.002349125,0.002198473,0.002798612,0.004710737,0.004869396,0.004724702,0.002812516,0.002312648,0.003331637,0.004625347,0.005973056,0.005543588,0.004506576,0.001716002,0.001063297,0.003311671,0.004048583,0.004132709,0.003579109,0.002836615,0.003424221,0.003449167,0.003924592,0.0034445,0.002922495,0.001679148,0.00134246,0.00268293,0.002161747,0.001902172,0.001238046,0.000754071,0.001171385,0.001900844,0.002305418,0.002086739,0.001954908,0.001401008,0.001432927,0.001642466,0.001961944,0.001861349,0.001531171,0.001078912,0.001468383,0.001949638,0.001961533,0.001793725,0.001506988,0.001173381,0.000631519,0.001581227,0.001686739,0.001602307,0.001154265,0.00088115,0.000609027,0.000956073,0.001544411,0.001564125,0.001499154,0.001140317,0.000693979,0.001279569,0.001179389,0.001254631,0.001014691,0.000916145,0.000687565,0.000907075,0.000951069,0.001201121,0.001247898,0.001245561,0.001017006,0.001258911,0.001405319,0.001389867,0.001193364,0.001108922,0.000957431,0.000747294,0.001152925,0.00119897,0.00134483,0.001205717,0.001131961,0.001078459,0.001086495,0.001042173,0.00100634,0.000998757,0.000847779,0.000642927,0.000735917,0.000929306,0.000865721,0.000829378,0.000662059,0.000407434,0.000530746,0.000465652,0.000649404,0.000627242,0.000807146,0.000655336,0.000631997,0.000589274,0.000596373,0.000623501,0.000688049,0.000754505,0.000669959,0.000485142,0.000773212,0.000767164,0.000753679,0.000367152,0.000397087,0.000521722,0.00062005,0.000633014,0.000579927,0.000364109,0.000272321,0.000283576,0.000484604,0.000489364,0.000566715,0.00029495,0.000318052,0.00030334,0.000492976,0.00054103,0.000621238,0.000405739,0.000263945,0.000212192,0.000471052,0.000472452,0.000526963,0.000245098,0.000205432,0.000200622,0.000248255,0.00025437,0.000282805,0.000224895,0.000218846,0.000208268,0.000278679,0.00025651,0.000257174,0.000202373,0.000152935,0.000148665,0.000170874,0.000204087,0.000221055,0.000229874,0.00020532,0.000191283,0.000204303,0.000243655,0.000257029,0.000308129,0.000394487,0.000363063,0.000268232,0.000225196,0.000216274,0.000247041,0.00024785,0.00018013,0.00016882,0.000214491,0.000222703,0.000227337,0.000166471,0.00016334,0.000198748,0.000189085,0.000195752,0.000170485,0.000136749,0.000105769,0.000120899,0.000174737,0.000196648,0.000215592,0.000186383,0.000151807,0.000100806,0.000116162,0,0,0,0,0,0,0 +SPACE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000861866,0.000862069,0.000861259,0,0,0,0.000951928,0.000951475,0.000951098,0,0,0,0,0.001776199,0.001776199,0.001776856,0,0,0,0.001544711,0.001545772,0.00154321,0,0,0,0.001430138,0.001430274,0,0,0,0,0.001363294,0.001363166,0.001362782,0,0,0,0.000549321,0.000549063,0.000549688,0,0,0,0.000584048,0.000584112,0.00058358,0,0,0,0.00055841,0.000558285,0.000558264,0,0,0,0.000519157,0.000516653,0.000516209,0,0,0,0.000465362,0.000464051,0.000463535,0,0,0,0.000447653,0.000446665,0.000445844,0,0,0,0.000625866,0.000621987,0.000619346,0,0,0,0,0.000568318,0.000568194,0.000608656,0,0,0,0.000559954,0.00055334,0.000530063,0,0,0,0,0,0.000507449,0.000658545,0.000528681,0,0,0,0.000548571,0.000467508,0.000453167,0,0,0,0,0.000624978,0.000489787,0.000444855,0,0,0.000648745,0.000644884,0.000445024,0,0,0,0,0.00049799,0.000631187,0.000572891,0,0,0.000585375,0.000532104,0.000656372,0.000463786,0,0,0,0.000380865,0.000400553,0.000457933,0,0,0,0.000569638,0.00051222,0.000466038,0,0,0,0.000622907,0.000591284,0.00063244,0.000602682,0.00055063,0.000740364,0.000759878,0.000746632,0.000443487,0,0,0.000406555,0.000448196,0.000489748,0.000526214,0.000530238,0.000615844,0.000437135,0.000516729,0.000432172,0.000492071,0.000456112,0.000419787,0.00038356,0.000708584,0.000753713,0.000701174,0.000613777,0.000377036,0.000402294,0.000532604,0.000727304,0.000726842,0.000666559,0.000448197,0.000378267,0.000623456,0.000813539,0.000886925,0.000779895,0.000569015,0.000386054,0.000374696,0.000701461,0.000722999,0.00076883,0.000502878,0.000670262,0.000681761,0.000850491,0.000724029,0.000728454,0.000518594,0.000360217,0.000440143,0.000839442,0.000861777,0.000886313,0.000655897,0.000624581,0.000573798,0.000775914,0.000673475,0.00074058,0.000580627,0.000617405,0.000531446,0.00069547,0.000703297,0.00075971,0.000678476,0.000725689,0.000687886,0.000980624,0.00092487,0.000906369,0.000692363,0.000457567,0.000458124,0.000575279,0.000787054,0.000882507,0.000946133,0.000878598,0.000759439,0.000718457,0.000883221,0.000826969,0.000817165,0.000517186,0.000382357,0.000498857,0.000788864,0.000736684,0.00072501,0.000480591,0.000455556,0.000609612,0.000934289,0.000928486,0.000938931,0.000646046,0.000485007,0.000575061,0.000866034,0.000911152,0.000944976,0.000761378,0.000545226,0.000613343,0.000895646,0.000888435,0.000875184,0.000673014,0.00045609,0.000468145,0.000952177,0.000913496,0.000957549,0.000746536,0.000648501,0.000569399,0.00085309,0.000781068,0.000798554,0.000634067,0.000569274,0.00054705,0.000740944,0.00082,0.000828728,0.000779918,0.000726642,0.000705853,0.000882992,0.000773637,0.000734752,0.000599328,0.000596687,0.000655596,0.000920138,0.000837557,0.00081702,0.000622734,0.000521565,0.000472342,0.000788177,0.000816059,0.000745791,0.000723976,0.000575373,0.000535272,0.000586084,0.000679741,0.000728513,0.000735594,0.000689622,0.000552241,0.000578552,0.000723927,0.000747469,0.000759075,0.000687154,0.00047155,0.000553181,0.000718109,0.000786357,0.00080296,0.000717985,0.000493525,0.000522959,0.000685391,0.000716529,0.000723618,0.000667589,0.000611956,0.000601202,0.000692831,0.000697787,0.000722876,0.000641627,0.00035502,0.000475066,0.000591585,0.000698348,0.000690077,0.000686508,0,0.000464351,0.000470429,0.00052488,0.000711997,0.000971928,0,0,0,0,0 +RESOURCES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000346105,0.000344436,0.000344139,0,0,0,0.000465362,0.000433115,0.000494438,0,0,0,0.000307761,0.000307082,0.000278652,0,0,0,0.000447047,0.000444277,0.000464509,0,0,0,0,0.000459026,0.000437072,0.000482727,0,0,0,0.000559954,0.000534259,0.000512395,0,0,0,0.000930473,0.000884357,0.000797419,0.000768302,0.000687285,0,0,0,0.000594286,0.000467508,0.000453167,0,0,0,0,0,0.000547408,0.000650173,0.000886974,0.000945776,0.000973118,0.001218114,0.00085826,0.000851098,0,0,0.00067904,0.000533561,0.00083051,0.000802047,0.001101533,0.000781942,0.000630403,0.00049663,0.00058728,0.000772977,0.000917741,0.000562458,0,0,0,0.000416302,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000429496,0.000389547,0.000411809,0.000398541,0,0.000375281,0.000298797,0.000359148,0.0003722,0.000427136,0.00057852,0.000528204,0.000529647,0.000513935,0.000528977,0.000540577,0.000369413,0.00057534,0.000472389,0.000474867,0.000480873,0.00049312,0.000467669,0.000422014,0.000434654,0.000464285,0.000436958,0.000425304,0.000404318,0.000487259,0.00047938,0.000449912,0.000439485,0.00045315,0.000450778,0.000382607,0.000383835,0.000413628,0.000475113,0.000490742,0.00049729,0.000418429,0.000392442,0.000408968,0.000517838,0.000550739,0.00058055,0.000415921,0.000437229,0.000537895,0.000583136,0.000627668,0.000634462,0.000636147,0.000656998,0.000616297,0.000614451,0.000655622,0.000646927,0.000638453,0.000478579,0.000540921,0.000564017,0.000726798,0.000756113,0.000858342,0.000610864,0.000563221,0.000626401,0.000675438,0.000751328,0.000711344,0.00047112,0.000475848,0.000472232,0.000546601,0.000564559,0.000629321,0.000516644,0.000514861,0.000489296,0.000535783,0.000527752,0.000598313,0.00057212,0.000593681,0.000525909,0.00057832,0.000564979,0.000584287,0.000455556,0.000503036,0.000522366,0.000675165,0.000709672,0.000751254,0.00055718,0.000527613,0.000582653,0.0007092,0.000742481,0.000828467,0.00066088,0.000575599,0.000480995,0.00063373,0.000717563,0.000812673,0.000688696,0.000649969,0.000510825,0.000723668,0.000796972,0.000937709,0.000909195,0.000662712,0.000523433,0.00066348,0.000714027,0.000849592,0.000827097,0.000686993,0.000586788,0.000603611,0.000709653,0.000783029,0.000912914,0.000759842,0.000721452,0.000778544,0.000849168,0.000908269,0.000958418,0.000721691,0.000668741,0.000707325,0.00078437,0.000859654,0.00090915,0.00078055,0.000604851,0.000637265,0.00074645,0.000755673,0.000835283,0.000768922,0.000743327,0.000684436,0.000796327,0.000798213,0.000869112,0.000667881,0.000680465,0.000630641,0.000804365,0.00084363,0.000960516,0.000752278,0.000710181,0.000815049,0.00097968,0.001003701,0.001026227,0.000771813,0.000791702,0.000822873,0.000838678,0.000841322,0.000805857,0.000682296,0.000717873,0.000736481,0.000854104,0.000894959,0.001005272,0.001057171,0.000942962,0.000758261,0.000848465,0.000910853,0.000957286,0.001030118,0.000788057,0.000772847,0.000671158,0.000648426,0,0,0,0,0,0 +CAREER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000270322,0.00026713,0.000300369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001569507,0.001215236,0.001123628,0,0,0,0,0,0,0,0,0,0,0.001102693,0.001063052,0.001222167,0,0,0,0.000851366,0.000829101,0.000888923,0,0,0,0.001333029,0.001347316,0.001540319,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000140164,0.000123018,0,0,0,0,0.000107673,0.000113704,0.00012328,6.16E-05,0.000268196,0.000232631,0.000233286,0.000157731,0.000164153,0.000156712,0.000285303,0.000256717,0.000267071,0.00018693,0.00020034,0.000177355,0.000227496,0.000261983,0.000268645,0.00022895,0.000229013,0.000206739,0.000185969,0.000206247,0.000236021,0.000221931,0.000225222,0.000195046,0.00015597,0.000282741,0.000260798,0.000285823,0.000225697,0.000216489,0.000107952,0.000200829,0.000272678,0.00026939,0.000261287,0.000251136,0.000315719,0.000308851,0.000265507,0.000235811,0.000237238,0.000229534,0.000278311,0.000393078,0.000707216,0.000766028,0.000731503,0.000582041,0.000284538,0.000415886,0.000594218,0.00078117,0.000669405,0.000604277,0.00032079,0.000386777,0.000832001,0.000891514,0.000833957,0.000621386,0.000638877,0.000994129,0.001158503,0.000932294,0.000653396,0.000492617,0.000506515,0.001058687,0.001123306,0.000944737,0.000631156,0.000508749,0.000465219,0.001085491,0.001208956,0.001099095,0.000705408,0.000549139,0.000525788,0.00117857,0.001275753,0,0.000690331,0.000533487,0.00055021,0.001112859,0.001168273,0.001002579,0.00064409,0.000599208,0.000534003,0.001068627,0.001234015,0.000948797,0.000570835,0.000482691,0.000493591,0.001130298,0.001288566,0,0.000680892,0.000580189,0.000524785,0.000888938,0.001183754,0.001082863,0.00065751,0.000530827,0.000479648,0.000924611,0.001211155,0,0.000839999,0.000771461,0.000643336,0.001140425,0.00142797,0.001336908,0.000880984,0.000638967,0.000512186,0.000761874,0.001401902,0.001612447,0.001122888,0.00082539,0.000620917,0.000768346,0.001491523,0.001741928,0.001199606,0.000885583,0,0.000743053,0.001324744,0.001303839,0.001103986,0.000727315,0.000655393,0.00073963,0.001613198,0.001484624,0.001128165,0.000769129,0.00069486,0.000777016,0,0.001792624,0.001394949,0.000990546,0.00080284,0,0.001559459,0.001516626,0.00155291,0.00096916,0.000874057,0.000735072,0.001212493,0.001785965,0.002217736,0.002478123,0.003216701,0.00428792,0,0,0,0,0 +INSTITUTIONS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000415326,0.000413323,0.000412967,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000240442,0.00024039,0.000293834,0,0,0,0.000598571,0.000591501,0.000777426,0.002793036,0.002526693,0.001971307,0,0,0.000797419,0.001207332,0.001163098,0,0,0,0.000868571,0.001090852,0.00104577,0.000584881,0,0,0.000538117,0.000798583,0.001267683,0.001095028,0.000886974,0,0,0,0.00098541,0.001215855,0.00153155,0,0,0,0.001328815,0.00168048,0.001819923,0,0,0.000567577,0.000967285,0.001159465,0.000724533,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000330382,0.000389547,0.000380132,0.000398541,0,0,0,0.000228549,0.000154014,0.000162017,0,0.000309637,0.000284201,0.000315369,0.000295243,0.000320968,0.000251872,0.000309798,0.000539008,0.000668126,0.000646691,0.000603285,0.000431416,0.000295804,0.00045608,0.000489444,0.000699132,0.000654123,0.000661326,0.000429557,0.000403413,0.000478673,0.00056278,0.000665415,0.00078332,0.000510143,0.000450854,0.000370986,0.000530199,0.000617517,0.000745935,0.000573403,0.000464056,0.000400829,0.000464323,0.000453964,0.000495647,0.000412207,0.0005101,0.00053382,0.000475414,0.000481047,0.000492994,0.000597593,0.000516418,0.000556441,0.000584183,0.000625165,0.000679072,0.000677041,0.000539793,0.000578567,0.000525404,0.000611607,0.000573836,0.000691876,0.000578993,0.000477553,0.000488055,0.000536613,0.000642908,0.000803627,0.000695309,0.000617892,0.00059875,0.000638102,0.000635484,0.00065997,0.000590047,0.00055793,0.00048515,0.000484534,0.000489448,0.000547608,0.000637262,0.000575128,0.000527403,0.000544301,0.000549672,0.000546398,0.00036252,0.000407118,0.000576095,0.000632229,0.000695504,0.000654265,0.000675545,0.000633895,0.00054425,0.000479753,0.000440455,0.000441537,0.000462616,0.000611456,0.000525225,0.000561968,0.000557737,0.000581513,0.000645367,0.000528753,0.000494478,0.000484103,0.000498636,0.000557499,0.000829479,0.000877903,0.000731389,0.000716216,0.000746652,0.000814954,0.000789971,0.000776048,0.00071608,0.000820813,0.00078797,0.000848368,0.000793036,0.000763841,0.000725559,0.000772001,0.000841385,0.000884148,0.000892495,0.000723478,0.000721992,0.000791976,0.00090586,0.001031022,0.00123453,0.001061403,0.00078693,0.000678218,0.000766892,0.000784488,0.000895797,0.000760426,0.000746185,0.00073889,0.000831203,0.000863851,0.000914248,0.000932202,0.000898402,0.000700798,0.000771791,0.000760516,0.000875303,0.000891725,0.000908885,0.000814108,0.000851146,0.00083343,0.000873226,0.000752246,0.000852714,0.000876451,0.000891278,0.00086473,0.000867781,0.000790151,0.000761797,0.000685401,0.000799313,0.000815635,0.000888536,0.000754747,0.000715288,0.000656143,0.000800428,0.0008258,0.000913873,0.0009239,0.00089075,0.000778448,0.000632438,0.000368713,0,0,0,0,0,0 +RESPONSE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000962108,0.000962108,0.000962464,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000658142,0.00065808,0.000657895,0,0,0,0.000627796,0.0006275,0.000628215,0,0,0,0.000438036,0.000438084,0.000437685,0,0,0,0.000744546,0.00074438,0.000744352,0,0,0,0.000622988,0.000619984,0.000619451,0,0,0,0.00068253,0.000680609,0.000648949,0,0,0,0.000643501,0.000614165,0.000613035,0,0,0,0.000670571,0.000688629,0.000685704,0,0,0,0,0.000371593,0.000393365,0.000398774,0,0,0,0.000637189,0.000610582,0.000618407,0,0,0,0.000568622,0,0.00039871,0,0,0,0.000881679,0,0.000502857,0.000467508,0.000592603,0.000779841,0.000881514,0.000812867,0.000627803,0.000555536,0.000432165,0.000444855,0.000506842,0.000945776,0.000810931,0.00057323,0.000317874,0.000405285,0.000867878,0.001164619,0.001131734,0.000782556,0.000697628,0.000611084,0.000718391,0.000886201,0.000675432,0.000780419,0.000898193,0.001120816,0.001352461,0.001073784,0.001148211,0.00099025,0.001310902,0.001207277,0.001136428,0.000792393,0.001076748,0.001017211,0.000987853,0.000854402,0.000838973,0.000793893,0.000783611,0.000934361,0.000834754,0.000967262,0.000904023,0.001211387,0.000925455,0.000991146,0.000973868,0.001172073,0.000919709,0.001386001,0.001188391,0.001195189,0.000685647,0.000821408,0.000972104,0.001306336,0.001019981,0.000839685,0.000852664,0.000971841,0.001081154,0.001276153,0.00115068,0.00087816,0.000657083,0.000686961,0.000674105,0.000750446,0.000895301,0.000896855,0.000846235,0.000765209,0.00080584,0.000839978,0.000778973,0.00065751,0.000716983,0.000761642,0.000899145,0.000942201,0.000982369,0.000828596,0.00080167,0.000721277,0.000703397,0.000656535,0.000674136,0.000647386,0.000712133,0.000782266,0.00081995,0.000823784,0.000794706,0.000754948,0.000617357,0.00063197,0.000647437,0.000767356,0.000898317,0.000806186,0.00067172,0.0007552,0.000732566,0.000809663,0.000645469,0.000690045,0.00069547,0.000692265,0.000761081,0.000757801,0.00072829,0.000549777,0.000565044,0.000630244,0.000674104,0.000713286,0.000757485,0.000714803,0.000755201,0.000723796,0.000760907,0.000753218,0.00075396,0.000683212,0.000710626,0.000704918,0.00077805,0.000771767,0.000811272,0.000699572,0.000742101,0.000664857,0.000633454,0.000612292,0.000670035,0.000763538,0.000684215,0.000610422,0.000630083,0.000654289,0.000741391,0.000770814,0.000679445,0.000591922,0.000641883,0.000674983,0.000748897,0.000674649,0.000647313,0.000735314,0.000717621,0.000757243,0.000730804,0.00076167,0.000683408,0.000622525,0.00069051,0.00072598,0.000783916,0.000797161,0.000731268,0.000724299,0.000721205,0.000714027,0.000682175,0.000602275,0.000607026,0.000634029,0.000637777,0.000649716,0.000668946,0.000687913,0.00071985,0.000689966,0.000648514,0.00068883,0.000744985,0.000907708,0.000825301,0.000669979,0.000627557,0.000661361,0.000706077,0.00080069,0.000687541,0.000577415,0.000592317,0.000697654,0.000725417,0.000719217,0.000518279,0.000553206,0.000586793,0.000645199,0.000677501,0.000745253,0.000693841,0.000700848,0.000688463,0.000663644,0.000646175,0.000608758,0.0005743,0.00071754,0.000742579,0.000749782,0.000720514,0.000718732,0.000726156,0.00070309,0.000702576,0.000692567,0,0.000697278,0.000663539,0.000675322,0.000589742,0.000625269,0.000598772,0.000663462,0.000891495,0.000779826,0.00076413,0.000772806,0.000775733,0.000769655,0.000657352,0.000730013,0.000828851,0.000830343,0.000953568,0.000628895,0,0,0,0,0 +ADDRESS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000163249,0.000166848,0.000162017,0,0.000200353,0.000310037,0.00035041,0.000381355,0.000337861,0.000419787,0.000413065,0.000339151,0.000306455,0.00032453,0.000356725,0.00042054,0.000382574,0.000348947,0.000331632,0.000362355,0.000363125,0.000404318,0.000330182,0.000348402,0.000351301,0.00038977,0.000398295,0.00038427,0.000389501,0.000380789,0.000362457,0.000394206,0.000404862,0.000463765,0.00074,0.000647386,0.000555464,0.000451731,0.000485636,0.000514004,0.000460484,0.000478037,0.000476771,0.000529993,0.000510701,0.000523002,0.000466508,0.00048199,0.000556441,0.000561481,0.000564252,0.000538436,0.000529706,0.000550923,0.000477516,0.000445421,0.000442935,0.000477634,0.000486394,0.000478067,0.00051583,0.000514955,0.000523265,0.000509762,0.00054216,0.000552348,0.000582381,0.000584038,0.000568272,0.000561722,0.00058437,0.000615456,0.00059904,0.00057361,0.000583537,0.000595849,0.000616567,0.000552294,0.000560699,0.000551308,0.000619377,0.000628991,0.000682,0.000635212,0.000594691,0.000558186,0.000613982,0.000637546,0.000710157,0.000684206,0.000641487,0.000638269,0.000698771,0.000720745,0.000713012,0.000592039,0.00061523,0.000599862,0.000650913,0.000659143,0.000713949,0.000804999,0.000756556,0.000709706,0.00068305,0.000700625,0.000702747,0.000726063,0.000708416,0.000719573,0.000729044,0.000763705,0.000793786,0.000839473,0.000708802,0.000658893,0.000715873,0.000791966,0.000864962,0.000925823,0.000847824,0.000813174,0.000822705,0.000817256,0.000808072,0.000784314,0.000778855,0.000766575,0.00072279,0.000747163,0.000795039,0.00086768,0.000838909,0.000749517,0.00074614,0.000814369,0.000832032,0.000851156,0.00071582,0.000686148,0.00073044,0.000811181,0.000838954,0.000898503,0.000849602,0.00078081,0.00077481,0.000799153,0.000817207,0.00083781,0.000877047,0.000852463,0.000825402,0.000818751,0.000820884,0.000832176,0.000800077,0.000813492,0.000854211,0.000870823,0.000898169,0.000895774,0.000998825,0.000940235,0.000908296,0.000876129,0.000869371,0.000890215,0.000904644,0.00086229,0.000836905,0.000882692,0.000896979,0.000896949,0.000953961,0.000982281,0.000999661,0.000907785,0.000788283,0.000628895,0,0,0,0,0 +INCREASE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000244874,0.000218186,0.000294577,0.000373239,0.00060106,0.000503811,0.000513935,0.000405959,0.000405433,0.000319038,0.000368808,0.000635909,0.000610148,0.000639585,0.00059017,0.00063806,0.000615273,0.000569335,0.000580929,0.00066716,0.000711328,0.000714608,0.000583429,0.000560587,0.000544414,0.000602552,0.0006201,0.000690947,0.000585975,0.000581845,0.000539421,0.000659306,0.000701353,0.000785048,0.000596649,0.000610147,0.000604296,0.000659496,0.000638717,0.000681515,0.000627595,0.000545078,0.00051752,0.000529993,0.000573303,0.000623745,0.000686268,0.000588142,0.000545357,0.000535753,0.000597915,0.000624827,0.000631437,0.000567617,0.000487423,0.000557122,0.000600637,0.000670038,0.000637254,0.00051525,0.000550462,0.000652021,0.000694126,0.00071709,0.000626752,0.000623828,0.000570544,0.000536962,0.000622451,0.000668109,0.000764176,0.000587224,0.000540311,0.000537673,0.000609162,0.000627061,0.000683497,0.000580616,0.00054833,0.000513957,0.000584185,0.000605334,0.000654082,0.00053576,0.000552061,0.000537291,0.000586073,0.000593755,0.000624675,0.000698641,0.000685138,0.000631648,0.000597321,0.00057774,0.000649044,0.000762766,0.000783192,0.000653766,0.000627666,0.000630485,0.000681442,0.000738866,0.00064788,0.000592557,0.000685537,0.000714147,0.000780712,0.000730372,0.000647477,0.00060378,0.000649227,0.000676213,0.000714888,0.00071778,0.000728794,0.000708621,0.000705297,0.000733628,0.000770584,0.000864963,0.000735847,0.000642051,0.00066487,0.000737865,0.000783023,0.000863759,0.000735982,0.000622919,0.000593371,0.00068414,0.000795976,0.00097614,0.000815201,0.000695891,0.000630273,0.00070227,0.000703806,0.000767826,0.000688206,0.000689006,0.000679741,0.000672971,0.000687309,0.000706416,0.000811842,0.000755724,0.000736262,0.000763104,0.000765801,0.00081395,0.00084035,0.000845103,0.000797167,0.000809869,0.00080296,0.000838147,0.000843559,0.000875957,0.000836015,0.000838094,0.000830622,0.000855905,0.000940209,0.00086886,0.000833069,0.00081704,0.000839944,0.00086754,0.001028244,0.000907108,0.0008416,0.000857472,0.000874661,0.000900628,0.000915883,0.000993443,0.00098846,0.001088481,0.000966282,0.000971928,0,0,0,0,0 +ADVANCED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00152548,0.001525626,0.001525189,0,0,0,0,0,0,0,0,0,0.000549321,0.000549063,0.000549688,0,0,0,0.00036503,0.00036507,0.000364737,0,0,0,0.000446728,0.000446628,0.000446611,0,0,0,0,0,0,0,0,0,0.000465362,0.000464051,0.000463535,0,0,0,0.000335739,0.000307082,0.000306518,0,0,0,0.000268228,0.000266566,0.000265434,0,0,0,0,0.000240442,0.00024039,0.000209881,0,0,0,0.000347557,0.000324372,0.0002827,0,0,0,0.000516929,0.000572231,0.00039871,0,0,0,0,0,0.00064,0.001675238,0.001917245,0.002485744,0.001037075,0,0.000627803,0.001597167,0,0.002395374,0.001647238,0,0,0.000537403,0.000953622,0.001134798,0.000969982,0,0,0,0,0.000534698,0.000574713,0.000521295,0,0.000425683,0.000518188,0.000425137,0,0,0,0,0,0.000832605,0.001136428,0.001254622,0,0.000610327,0.000585394,0.000582547,0,0,0,0.000389317,0.000347814,0.000483631,0.000602682,0.000825946,0.000740364,0.000627726,0.000649245,0.000570198,0.00061314,0.000429,0.000375281,0.000697194,0.000571373,0.000590387,0.000441865,0.000503872,0.001238548,0.001472678,0.001495083,0.000996445,0.000641935,0.001108238,0.001209689,0.00102351,0.000604627,0.000589839,0.000445906,0.000391537,0.000339189,0.000477507,0.000590077,0.000650108,0.000611841,0.000576701,0.00046482,0.000578924,0.000571121,0.000636359,0.00058671,0.00058749,0.000506696,0.000645818,0.000543686,0.000538806,0.000455981,0.00054199,0.000480419,0.000630199,0.000632781,0.000684679,0.000612324,0.000553014,0.000445629,0.000513015,0.000639769,0.000639151,0.0006392,0.000604454,0.00057446,0.000702902,0.000693889,0.00069315,0.000698903,0.000677063,0.000687565,0.000598224,0.000602344,0.000761216,0.000877643,0.000909698,0.000808923,0.000645391,0.000816579,0.000900532,0.000897025,0.000865453,0.000680583,0.000614081,0.000658138,0.000714969,0.000787394,0.000800028,0.000798911,0.000578754,0.000659727,0.000637191,0.000799015,0.000780279,0.000784905,0.000475822,0.000552453,0.00064394,0.000742549,0.000779281,0.000865462,0.00068975,0.00063519,0.000532814,0.000688046,0.000701944,0.000856463,0.000791023,0.000814195,0.000662105,0.000660846,0.000607485,0.000644363,0.000622329,0.000656749,0.00058604,0.000631709,0.000654734,0.000686258,0.000732024,0.000762826,0.0006811,0.000707089,0.000709077,0.000750808,0.000700209,0.000656999,0.00070185,0.000797459,0.0007815,0.000802445,0.000651778,0.000599756,0.00062657,0.000684146,0.000709653,0.000682428,0.000568035,0.000533889,0.000568127,0.000673865,0.000668593,0.000703236,0.000605139,0.000623441,0.000585767,0.000637325,0.000664398,0.000695776,0.00067947,0.000610945,0.000623558,0.000623281,0.000681169,0.000688678,0.000746993,0.000709447,0.000656129,0.00063092,0.000658762,0.000665429,0.000705367,0.000653721,0.000667922,0.000641434,0.000707511,0.000712954,0.000756006,0.000741269,0.000686876,0.000732226,0.000752394,0.000768309,0.000767244,0.000726156,0.000675489,0.000664162,0.000702502,0.000714923,0.000721878,0.000647126,0.000695911,0.000692831,0.00072948,0.000729913,0.000748285,0.000786304,0.000831814,0.000840426,0.00081604,0.000803481,0.000793201,0.000787619,0.000904145,0.000870853,0.001006737,0.000737426,0.001372134,0,0,0,0,0 +STATES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001078516,0.001078749,0.001078981,0,0,0,0.001253624,0.001253918,0.00125274,0,0,0,0.001348564,0.001347923,0.001347388,0,0,0,0,0.001110124,0.001110124,0.001110535,0,0,0,0.001430288,0.00143127,0.001428898,0,0,0,0.000572055,0.00057211,0.000571946,0,0,0,0.000987213,0.00098712,0.000986842,0,0,0,0.000902456,0.000902032,0.000903059,0,0,0,0.000876072,0.000876168,0.000875369,0,0,0,0.000707319,0.000707161,0.000707135,0,0,0,0.000934482,0.000895533,0.000894762,0,0,0,0.001178916,0.001113724,0.001112485,0,0,0,0.001426893,0.001451662,0.001365397,0,0,0,0.001117618,0.001066264,0.001105974,0,0.002826701,0.003412241,0,0.001486371,0.001486046,0.001574109,0.002486135,0.001592103,0,0.000965437,0.000954035,0.001007121,0.001024113,0.001548618,0.00109517,0.001447402,0.001300525,0.001449853,0.001371968,0.001163098,0,0.001146182,0.001478004,0.001188571,0.001012934,0.000976052,0.000877321,0.000881514,0.000812867,0.000941704,0.000729141,0.000662652,0.000581734,0.000718027,0.000788146,0.000729838,0.000609057,0.000603961,0.000688984,0.000765775,0.000698771,0.00072431,0.000604702,0.000664408,0.000611084,0.000622605,0,0,0.000461156,0.000552734,0.00065703,0,0.000562458,0.00059707,0.000837904,0.000946763,0.000999126,0.000965964,0.000792393,0.00095711,0.000854457,0.001353725,0.00132044,0.001398288,0.000793893,0.000895556,0.000700771,0.000660847,0.000483631,0.000753352,0.000770883,0.000879182,0.000792917,0.00071417,0.000855297,0.001134308,0.001188001,0.001063297,0.000697194,0.000718297,0.000641725,0.00063334,0.000541196,0.000564632,0.000684666,0.000747541,0.000775013,0.000709507,0.000688451,0.000811377,0.000696472,0.000806169,0.000784083,0.000855091,0.000899085,0.000934742,0.000921343,0.000834799,0.000805707,0.000795891,0.000858783,0.000855909,0.000754434,0.000768343,0.000759653,0.00082521,0.000816574,0.000885856,0.000877337,0.000822991,0.000776363,0.000748382,0.000799017,0.000956964,0.000936705,0.000887115,0.000868834,0.000842825,0.000839846,0.000779852,0.000833649,0.000835367,0.000795707,0.000764404,0.00072663,0.000782654,0.000866434,0.000860156,0.000703744,0.000646004,0.000646927,0.000761233,0.000829167,0.000715283,0.000692265,0.000674688,0.000737548,0.000808923,0.000764908,0.000699925,0.000675078,0.000676773,0.000707579,0.000657513,0.000705056,0.000738629,0.00083413,0.000769334,0.000750381,0.000651797,0.000691682,0.000685177,0.000721505,0.000668564,0.000675296,0.000653074,0.000787373,0.000729733,0.000673821,0.000640492,0.000642907,0.000636135,0.000708999,0.000694872,0.000680569,0.000610761,0.000600194,0.000578647,0.000666884,0.000688934,0.000724343,0.00064852,0.000610917,0.000567913,0.000625083,0.000766207,0.000754665,0.000680224,0.000615054,0.000559842,0.00060888,0.000652059,0.000738312,0.000654037,0.000627943,0.000568179,0.000680819,0.000754121,0.000678218,0.000586514,0.000575374,0.00057345,0.000614651,0.00061066,0.000641489,0.000578393,0.000554616,0.000514414,0.000558814,0.000619871,0.000651634,0.000680408,0.000681047,0.00067262,0.000630494,0.000619869,0.000749237,0.000715464,0.000697808,0.000618988,0.000598125,0.000638301,0.000669701,0.000691203,0.000683806,0.000708848,0.000700368,0.000694579,0.00062468,0.000661903,0.000624532,0.000621671,0.000565763,0.000594721,0.00058796,0.000572048,0.000632373,0.000635605,0.000658523,0.000506412,0.000569126,0.000573169,0.000653643,0.000652405,0.000694102,0.000713112,0.000729238,0.000790524,0.000793091,0.000795177,0.000771078,0.000635403,0.000595711,0.000638036,0.000716051,0.000750384,0.000718051,0.000583811,0.000654336,0.000665533,0.000646107,0.000623723,0.000616607,0.000583199,0.000707689,0.000778448,0.000808832,0.000546712,0.000686067,0,0,0,0,0 +DIMENSIONAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000474539,0.000474591,0.000474158,0,0,0,0.000446728,0.000446628,0.000446611,0,0,0,0,0,0,0,0,0,0.000589458,0.000587799,0.000587145,0,0,0,0.000307761,0.000307082,0.000306518,0,0,0,0.000514104,0.000510918,0.000530868,0,0,0,0,0.000502743,0.000502633,0.000545691,0,0,0,0.000733732,0.000686905,0.00072442,0,0,0,0.000620315,0.000624252,0.000471202,0,0,0,0,0,0,0.000545426,0.000801757,0.000974801,0.000881514,0.000580619,0.000493274,0.000590257,0.000432165,0.000650173,0.000633553,0.000788146,0.000770385,0.000644884,0.000603961,0.000405285,0,0,0.000633771,0.00096041,0.000963391,0.000878433,0.00052682,0,0.000630403,0.00099326,0.001070923,0.001236763,0.00111095,0.001022652,0.001010426,0.001104509,0.000983177,0.000915865,0.000568214,0.000792393,0.000598193,0.000935834,0.000841504,0.001009748,0.00072711,0.001038168,0.000727639,0.001012225,0.000660847,0.000669643,0,0,0.000740364,0.00109026,0.00142834,0.001457172,0.001195622,0.000759001,0.000781836,0.000921292,0.001142745,0.001219277,0.001222494,0.001194364,0.000783199,0.000684666,0.0007125,0.000775013,0.000996689,0.000722034,0.000781872,0.000962948,0.000831017,0.000805403,0.000692466,0.000627184,0.000575832,0.000667285,0.000816502,0.000829154,0.000783455,0.000608044,0.000605868,0.00077801,0.000969673,0.000994311,0.000922995,0.000702032,0.000579081,0.000606216,0.000878425,0.000841777,0.000877202,0.000639772,0.000701257,0.000730458,0.000909496,0.000909758,0.000920245,0.000787069,0.000876405,0.000789926,0.000843517,0.000820124,0.000851717,0.000808082,0.000697834,0.000720116,0.000971001,0.000876274,0.00085279,0.000632863,0.000603373,0.00066222,0.000850018,0.00088119,0.000859816,0.00075105,0.000556622,0.000560401,0.000780125,0.000853135,0.000858314,0.000743719,0.000603681,0.000646572,0.000679444,0.00099007,0.00094391,0.000951807,0.000649754,0.000570285,0.0006656,0.000973064,0.00091316,0.000934916,0.000588172,0.000577784,0.000643154,0.001011479,0.00094197,0.000993583,0.000656076,0.000664085,0.000647979,0.000799967,0.000786798,0.000829453,0.00069865,0.000638015,0.000614916,0.000781284,0.000787895,0.000808836,0.000681808,0.000633344,0.000586922,0.00076434,0.000695385,0.000709847,0.000574289,0.000538186,0.000564282,0.000874532,0.000789155,0.000787675,0.000577791,0.000523541,0.000611295,0.000984244,0.000815275,0.000782983,0.00052438,0.000451707,0.000403472,0.000752133,0.000669504,0.000696866,0.000504043,0.000475822,0.000397917,0.000783056,0.000740925,0.000723855,0.000538096,0.000449628,0.000543055,0.000728184,0.00072686,0.000689456,0.000559992,0.000441815,0.000421278,0.000826838,0.000848022,0.00075766,0.000698043,0.000535692,0.000471549,0.000644693,0.000727624,0.000702034,0.000644305,0.000518528,0.000413001,0.000484479,0.00072701,0.000664513,0.000662029,0.000517411,0.000333938,0.000423165,0.000615522,0.000573178,0.000592661,0.000441091,0.000278287,0.000418367,0.000543864,0.000646396,0.000638683,0.000614996,0.000370456,0.000477667,0.000726265,0.000709068,0.000719038,0.000558484,0.000326093,0.000277869,0.000617408,0.00068934,0.000719031,0.000607777,0.000386795,0.000392912,0.000529232,0.000623833,0.000978996,0.000571723,0,0,0,0,0 +MATERIAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000686538,0.00068701,0.000685871,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000346105,0.000344436,0.000344139,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000245876,0.000244352,0.000221195,0,0,0,0,0.000240442,0.000262243,0.000272846,0,0,0,0.000289631,0.00026713,0.000335707,0.001024113,0.0013041,0.001423721,0.000620315,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000405466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00030657,0.000462,0.000437828,0.000398396,0.000587698,0.000731566,0.000854273,0.000970421,0.000801413,0.000723421,0.000759222,0.000811918,0.000979796,0.00102428,0.001121175,0.000908441,0.000604627,0.000554307,0.000516727,0.000670688,0.000682322,0.00061831,0.000576354,0.000645845,0.000688943,0.000818038,0.000746917,0.000715141,0.00055674,0.000584655,0.00058194,0.000709422,0.000506696,0.000450854,0.000492515,0.000561185,0.000605249,0.000692854,0.000732252,0.000635928,0.000600227,0.000695697,0.000798836,0.000858204,0.00085041,0.000658758,0.000560307,0.000613298,0.000642495,0.00083166,0.000863618,0.000829137,0.000682804,0.00058721,0.000586694,0.000578618,0.000750709,0.000734564,0.000729153,0.000657789,0.000630806,0.000646409,0.000691876,0.000669294,0.000687166,0.000658426,0.000734172,0.000705677,0.000853613,0.000744045,0.000781243,0.000769401,0.000754887,0.000747544,0.000772349,0.000767908,0.00075761,0.000666217,0.000769896,0.000763255,0.000930934,0.000688243,0.000729733,0.000687268,0.0006968,0.000676305,0.000727866,0.000834117,0.000746028,0.000674599,0.000693413,0.000727704,0.000849887,0.000874744,0.000778135,0.000676672,0.000703512,0.000723033,0.000759818,0.000715954,0.000645425,0.000648238,0.000685278,0.000725278,0.000754883,0.000754829,0.000758646,0.000751934,0.000726155,0.000694709,0.000681387,0.000702364,0.000750312,0.000772744,0.00076824,0.000748134,0.000734132,0.000678591,0.000686993,0.000740944,0.000722381,0.000697665,0.000624349,0.000545904,0.000647865,0.000687228,0.000713938,0.00067015,0.000654993,0.000540906,0.000551987,0.000557284,0.000637325,0.000665917,0.000716378,0.000725725,0.000725839,0.000678431,0.000679217,0.000718096,0.000705967,0.000741041,0.000688206,0.000687577,0.000696641,0.000645199,0.000635251,0.000599352,0.000663161,0.000671058,0.000703882,0.000700127,0.000710071,0.000723284,0.000755948,0.000669704,0.000765167,0.000751872,0.000793401,0.000729181,0.000669629,0.000691468,0.000682358,0.000687307,0.000670784,0.00068201,0.000630714,0.000613555,0.000610174,0.000705845,0.000722236,0.000731488,0.000570662,0.000589799,0.000681966,0.000746986,0.000767288,0.000783635,0.00079764,0.00079922,0.000683242,0.000709879,0.000622998,0.000857584,0,0,0,0,0 +DESIGNED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000277524,0.000359366,0.000427136,0.000522534,0.00069213,0.000749257,0.000817623,0.000775013,0.000793973,0.000688451,0.000663854,0.000611684,0.000634996,0.000682224,0.000689843,0.000721443,0.000776979,0.000817271,0.000752463,0.000782261,0.000780968,0.000824307,0.000762945,0.00077801,0.00074369,0.000825278,0.000789435,0.000960675,0.000872068,0.000977866,0.000895482,0.000903748,0.00085471,0.00088283,0.000728377,0.000802072,0.000840317,0.000894018,0.000869218,0.000867382,0.000779852,0.000862798,0.000908717,0.000942209,0.000963742,0.000878816,0.000774943,0.000806186,0.000944398,0.000894435,0.000886452,0.000801627,0.000824376,0.000726216,0.000879739,0.000886706,0.000946209,0.000840501,0.000785513,0.000719757,0.000834807,0.000896689,0.000894355,0.000867355,0.000834388,0.000864262,0.000826223,0.000779698,0.000781374,0.000775914,0.000833647,0.000863897,0.000859408,0.000735327,0.000703506,0.000675296,0.000726088,0.000776043,0.000826618,0.000811275,0.000776568,0.000715269,0.000687983,0.000705791,0.000728976,0.000674599,0.000696633,0.000700656,0.000789064,0.000799684,0.000698423,0.000570735,0.000575514,0.00058346,0.000692729,0.000773781,0.000805838,0.00070076,0.000691342,0.000653632,0.000682646,0.000768512,0.000773276,0.000678375,0.000717866,0.000719218,0.000790324,0.000764844,0.000748407,0.000621503,0.000614307,0.000613189,0.000659083,0.00064559,0.000639739,0.000579329,0.00063615,0.000643323,0.000680354,0.000645494,0.000661862,0.000637945,0.00066487,0.00066548,0.00068932,0.000706558,0.000698469,0.000596913,0.000610464,0.000612765,0.00066581,0.000677875,0.000609121,0.000572426,0.000573339,0.000617866,0.000625285,0.000646799,0.000620235,0.000631828,0.000609326,0.000655533,0.000659394,0.000715863,0.000693841,0.000674194,0.000612138,0.000607182,0.000604377,0.000616257,0.000697234,0.00068565,0.000683286,0.00063431,0.000635677,0.000644097,0.00064354,0.000623193,0.00060654,0.000651656,0.000649383,0.000642989,0.000567408,0.000649243,0.000679829,0.000682746,0.000678736,0.000666822,0.00059959,0.000634617,0.000624451,0.000646107,0.000650265,0.000669585,0.000757558,0.000707689,0.000700043,0.000623833,0.000610283,0.000628895,0,0,0,0,0 +INTERACTION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000783515,0.000783699,0.000782963,0,0,0,0.001110582,0.001110054,0.001109614,0,0,0,0,0.000888099,0.000888099,0.000888428,0,0,0,0.001087019,0.001087766,0.001085963,0,0,0,0.000810411,0.000810489,0.000810257,0,0,0,0.001081234,0.001081132,0.001080827,0,0,0,0.001059405,0.001058907,0.001060112,0,0,0,0.000985581,0.000985689,0.00098479,0,0,0,0.001079592,0.001079351,0.001079311,0,0,0,0.001107535,0.001102194,0.001101246,0,0,0,0.00105482,0.00105185,0.001081582,0,0,0,0.001035197,0.001116663,0.001198205,0,0,0,0.001408199,0.001377257,0.001393528,0,0,0,0,0.001486371,0.0015079,0.001469168,0,0,0,0.001370921,0.001411971,0.001378165,0.001396518,0.002037656,0.002737926,0.002119411,0.001508609,0.001232375,0.000823181,0.00111023,0.001355626,0.001498854,0.001304121,0.00064,0.000584385,0.00104577,0.001705902,0.001814882,0.0012193,0.001121076,0.001180515,0.001152439,0.001163467,0.001182632,0.000945776,0.000851478,0.000716538,0.00073111,0.00081057,0.001021033,0.000989926,0.000588502,0.000746985,0.00086373,0.000993011,0.000718391,0,0,0.000461156,0.000863647,0.000966221,0.001255857,0.000920387,0.001056354,0.001142596,0.001347316,0.001248907,0.001136428,0.000858426,0.001016929,0.000976523,0.001097615,0.001165094,0.001118631,0.000854962,0.000895556,0.000856498,0.000869535,0.000744048,0.000753352,0.000825946,0.000879182,0.000792917,0.000844019,0.000665231,0.00101168,0.000957001,0.001313485,0.001020891,0.001028471,0.000834242,0.000795357,0.000503872,0.000400707,0.000516729,0.00068914,0.000787314,0.000878438,0.000738825,0.00057534,0.000575346,0.000737148,0.000767502,0.000865583,0.000906336,0.000879525,0.000771357,0.00075475,0.000771603,0.000808327,0.000849381,0.000807824,0.000788489,0.000797104,0.000761642,0.00079182,0.000764845,0.000779001,0.000688466,0.000637498,0.000693734,0.000699308,0.000787842,0.000736126,0.000739052,0.000699925,0.000672087,0.000651034,0.000683809,0.000846696,0.000827819,0.000723306,0.000722456,0.000728161,0.000780217,0.00075181,0.000697164,0.000651768,0.000647747,0.000686079,0.000751399,0.000663009,0.000653873,0.000602344,0.000695023,0.000674688,0.000744299,0.0007517,0.000799435,0.00071633,0.000667393,0.000642067,0.000658125,0.000657513,0.000753793,0.000691281,0.000662008,0.00058874,0.000587255,0.000621148,0.000756615,0.000736076,0.000709065,0.000688364,0.000672459,0.000636848,0.000577784,0.000618418,0.000623023,0.000665127,0.000651256,0.000687983,0.000702583,0.000799316,0.000725343,0.000704147,0.000647849,0.000631251,0.000655336,0.000664261,0.000712425,0.000683601,0.000692144,0.000675567,0,0.000647313,0.000648238,0.000655966,0.000660246,0.000705521,0.000645367,0.000649969,0.000589832,0.000592695,0.000579769,0.000591675,0.000637729,0.000691277,0.000749112,0.000684147,0.000661384,0.000606164,0.000660028,0.000667001,0.000666353,0.000680079,0.000709653,0.000756064,0.000691601,0.000589877,0.00052295,0.000606806,0.000631233,0.000694886,0.000720081,0.000702041,0.000631588,0.000625115,0.000617321,0.000627416,0.00062205,0.000687541,0.000698385,0.00075413,0.000727327,0.000719654,0.0006716,0.00067971,0.000684718,0.000716357,0.000718826,0.000715978,0.00069382,0.000606521,0.00055817,0.000656853,0.000651049,0.000673559,0.000625119,0.000620171,0.000609603,0.000595757,0.000593033,0.00060939,0.000623199,0.000678326,0.000621741,0.000618671,0.000654578,0.00067279,0.000700672,0.000837044,0.000717873,0.000684472,0.000642458,0.000649949,0.000640787,0.000646926,0.000670471,0.000622103,0.000628693,0.000606833,0.000608513,0.00050103,0.000509,0.000540433,0.00052488,0.000495855,0.000743239,0,0,0,0,0 +AMERICAN,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000934714,0.000934915,0.000935117,0,0,0,0.001331975,0.001332288,0.001331037,0,0,0,0.00118991,0.001189343,0.001188872,0,0,0,0,0.001184133,0.001184133,0.001184571,0,0,0,0.001201442,0.001202267,0.001200274,0,0,0,0.001477809,0.00147795,0.001477527,0,0,0,0.000940203,0.000940115,0,0,0,0,0.000902456,0.000902032,0,0,0,0,0.000949078,0.000949182,0.000948317,0,0,0,0.001042365,0.001079351,0.001079311,0,0,0,0.00076143,0.000723315,0.000722693,0,0,0,0.000589458,0.000587799,0.000587145,0,0,0,0.00081137,0.000809581,0.000863823,0,0,0,0.000827037,0.000844126,0.00086266,0,0,0,0,0.000743186,0.000743023,0.000755572,0,0,0,0.000849585,0.000782308,0.00086577,0.001024113,0.001059581,0,0.00087878,0.000780315,0.000616188,0,0.000581549,0,0,0,0.000594286,0.000623344,0.000662321,0.000487401,0.000518538,0.000696743,0.000672646,0.000729141,0.000489787,0.000479075,0,0,0.000446012,0.000394096,0.000572173,0.000567399,0.000765775,0.000931695,0.000814848,0.000640273,0.000631187,0.00042012,0,0,0.000630403,0.000709471,0.000656372,0.000579733,0.000483022,0,0,0.000571298,0.000655451,0.000666084,0.000568214,0,0.000598193,0.000610327,0.000731743,0.00066022,0.000615247,0,0,0.000661839,0.000834754,0.00093006,0.000954246,0.000936072,0.000694091,0.000825955,0.000779094,0.001013685,0.000950366,0.000759001,0.000656743,0.000672294,0.000506073,0.0003722,0.000265119,0.000317253,0.000364279,0.000477974,0.000560656,0.000615089,0,0.000436579,0.000486826,0.000442108,0.000491432,0.000544831,0.0006164,0.000721443,0.000662602,0.000566274,0.000487157,0.000618135,0.00067402,0.000780427,0.000541755,0.000670608,0.000647134,0.000694029,0.000641565,0.000642913,0.000616997,0.000584892,0.000592724,0.000638649,0.000662502,0.000704029,0.000581152,0.000478378,0.000500528,0.000582371,0.000642236,0.000651684,0.000683299,0.000629609,0.000672369,0.000647769,0.000645789,0.00060231,0.000609159,0.000634046,0.000638466,0.000608398,0.000650813,0.00063889,0.000694581,0.000595442,0.000550828,0.000519888,0.000515615,0.000540081,0.000572228,0.000618832,0.000510362,0.000470121,0.000497902,0.000545901,0.000757485,0.000610832,0.000598953,0.000557558,0.000545397,0.000522004,0.000461775,0.000513821,0.000497243,0.000481003,0.000401837,0.000407164,0.000413749,0.000521139,0.000478243,0.000464653,0.000470398,0.000492617,0.00051848,0.00050047,0.000471064,0.000459682,0.000447605,0.000473973,0.000493165,0.000629354,0.000544694,0.000501876,0.000438984,0.000424439,0.000446218,0.000556241,0.000551065,0.000526607,0.000501324,0.000513647,0.000569473,0.000624843,0.00062071,0.000540793,0.000506485,0.000503706,0.000521187,0.000661428,0.000666521,0.000601417,0.000525938,0.000508642,0.000508985,0.000624964,0.000647009,0.000641489,0.000610932,0.000568202,0.000552788,0.000496109,0.000569881,0.000637945,0.000653421,0.000685717,0.000658704,0.000726842,0.000769923,0.000691032,0.000651976,0.000606691,0.000624607,0.00062205,0.000651067,0.000571179,0.000514407,0.00051236,0.000505703,0.000553549,0.000590498,0.000601809,0.000515439,0.000517322,0.000512275,0.000581508,0.000658441,0.001196302,0.002549547,0.002485192,0.00254146,0.001995337,0.001187132,0.00096408,0.000721874,0.00070328,0.000696616,0.00070679,0.000439172,0.000566539,0.000608562,0.000598471,0.000563111,0.000525928,0.000492379,0.000511982,0.000517301,0.000500645,0.000486182,0.000470302,0.000376058,0.00051092,0.000536417,0.00048518,0.000436727,0.000411316,0.000434894,0.000504535,0.000526432,0.000434532,0.000228856,0,0,0,0,0,0 +UNIQUE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000166848,0.000220933,0.000205281,0.000218567,0.000206692,0.000303689,0.000381355,0.000422326,0.000436579,0.000442569,0.000442108,0.000557692,0.000582733,0.000663614,0.000703316,0.000674434,0.000737687,0.00061981,0.000598952,0.000502406,0.000564164,0.000644336,0.000628695,0.000597828,0.00059062,0.00060579,0.00058749,0.000534271,0.000523965,0.000498912,0.000516428,0.000500966,0.000550372,0.000507539,0.000509888,0.000492389,0.00051469,0.000517308,0.000566782,0.000620168,0.000667502,0.000605132,0.000601807,0.00057495,0.000621601,0.000566749,0.000677081,0.000647334,0.000608398,0.000545016,0.000568572,0.000575309,0.000642743,0.000628102,0.000645378,0.000662346,0.000654848,0.000647658,0.000576337,0.000497603,0.000573881,0.00056865,0.000641006,0.00056523,0.000643323,0.000679444,0.000603163,0.000547805,0.000504982,0.000543505,0.000570285,0.000600998,0.000583285,0.000603338,0.000627061,0.000632792,0.00063443,0.000624602,0.000626011,0.000607647,0.000581678,0.000608217,0.000664085,0.00070553,0.000650719,0.00064511,0.00062853,0.000675636,0.000710188,0.00069273,0.000613109,0.000595425,0.000575452,0.000642803,0.00068291,0.000713365,0.000686938,0.00068831,0.000663552,0.000656158,0.000618002,0.000656239,0.000671564,0.000683879,0.000663439,0.000681387,0.0006959,0.000775068,0.000700668,0.000720492,0.00071551,0.000747602,0.000734281,0.000716072,0.000689973,0.000718313,0.000688875,0.000692799,0.000608609,0.000693856,0.000739249,0.000763005,0.000755767,0.000736635,0.000709939,0.000759205,0.000720754,0.000734999,0.000728181,0.000766946,0.00075922,0.000707602,0.000654736,0.00066823,0.000662046,0.000658422,0.000699376,0.000756177,0.000716166,0.000694763,0.000686533,0.000700889,0.000714814,0.000851962,0.000851365,0.000778664,0.000737045,0.00071968,0.000728738,0.000803654,0.000821799,0.000809402,0.00073045,0.000721111,0.000709776,0.000845733,0.000851262,0.000790524,0.000779065,0.000765082,0.000795678,0.000914418,0.000827682,0.000781989,0.00072572,0.000740148,0.00077264,0.000923053,0.000914278,0.000875639,0.000826248,0.000797449,0.000781428,0.000801648,0.000872891,0.000840051,0.000860459,0.000737426,0.000800412,0,0,0,0,0 +QUALITY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000307761,0.000334999,0.000334383,0,0,0,0.000357638,0.000377635,0.000353912,0,0,0,0,0.000284159,0.000284097,0.000251857,0,0,0,0.000212396,0.000228968,0.000265032,0,0,0,0,0,0,0.000548787,0,0,0,0.000869414,0.000502857,0.000506467,0,0,0,0,0,0,0,0,0,0,0,0,0.000381449,0.000486342,0,0,0,0,0.000332204,0.00042012,0,0,0,0.000390209,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000396458,0,0.000316776,0.000337227,0.000396,0.000375281,0.000348597,0.000375473,0.000590387,0.000648069,0.000877111,0.000892483,0.000839685,0.000840984,0.000775013,0.000810866,0.000755617,0.000619597,0.000605627,0.000563214,0.000596946,0.000584924,0.000612683,0.000500895,0.000532604,0.000507741,0.000560585,0.000562098,0.000626849,0.000548167,0.000544869,0.000456075,0.000477269,0.00044838,0.000554236,0.000599762,0.000639725,0.000575667,0.000533642,0.000519369,0.000631391,0.000914346,0.000873685,0.000681613,0.000571353,0.000580652,0.000695283,0.000694439,0.000553823,0.000480846,0.00060468,0.000663911,0.000780217,0.000771087,0.000682819,0.000554224,0.000523646,0.000532192,0.000560536,0.000677041,0.000690045,0.000612251,0.000610903,0.000643148,0.000698729,0.000829731,0.000682574,0.000734557,0.000576443,0.000644737,0.000576335,0.000799782,0.000750543,0.000722058,0.000642883,0.000700708,0.000740452,0.000901074,0.000742499,0.000685177,0.000574992,0.000675552,0.000690902,0.000772736,0.000583449,0.000538023,0.000552802,0.000694453,0.000729184,0.000853498,0.000676918,0.000645847,0.000589528,0.000736349,0.000768919,0.000844956,0.000730397,0.000711709,0.00059457,0,0.000699008,0.00085187,0.000658127,0.000702042,0.000639945,0.000727728,0.000762755,0.000760903,0.000672733,0.000543383,0.000518998,0.000619221,0.000662594,0.000759352,0.000766998,0.000658903,0.000541157,0.000668469,0.000687335,0.000783202,0.000779658,0.000716072,0.00062657,0.000649166,0.000683281,0.00073947,0.00079488,0.000727849,0.000703656,0.000675501,0.000724634,0.000733852,0.000791075,0.000694896,0.000636542,0.000638953,0.000653768,0.000712632,0.0007337,0.000705778,0.000638523,0.000615291,0.000661387,0.000669948,0.000710289,0.000717944,0.000679,0.000674108,0.000674262,0.00069259,0.000744204,0.000811842,0.00078865,0.000673043,0.000722712,0.000721121,0.000811224,0.000834846,0.000738392,0.000677639,0.000707982,0.000731268,0.000735898,0.000737027,0.000671131,0.00066214,0.000725296,0.000756388,0.00079483,0.000808908,0.000684931,0.00069376,0.000747744,0.000786208,0.000812112,0.00071793,0.000713496,0.000671402,0.000700149,0.000750398,0.000771862,0.000915883,0.000734478,0.000674841,0.000593717,0.000572141,0,0,0,0,0,0 +ACTIVITY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000934714,0.000934915,0.000935117,0,0,0,0,0,0,0,0,0,0.001110582,0.001110054,0.001109614,0,0,0,0,0.001036116,0.001036116,0.0010365,0,0,0,0.000800961,0.000801511,0.000800183,0,0,0,0.000715069,0.000715137,0.000714933,0,0,0,0.000940203,0.000940115,0.00093985,0,0,0,0.000667033,0.000666719,0.000667478,0,0,0,0.000766563,0.000766647,0.000765948,0,0,0,0.000930683,0.000930475,0.00093044,0,0,0,0.000380715,0.000378879,0.000378553,0,0,0,0,0,0,0,0,0,0.000559566,0.000586248,0.00058517,0,0,0,0.000871742,0.000844126,0.000840541,0,0,0,0,0.000524602,0.000524487,0.000524703,0,0,0,0.00077235,0.000744147,0.000671414,0,0,0,0.000516929,0.00052021,0.000471202,0,0,0,0,0,0.000457143,0.000506467,0.000627462,0.000828581,0.001088929,0,0.000852018,0.000659699,0.000633841,0.000547514,0.000464606,0,0.000446012,0.000394096,0.000445024,0.000445813,0.00061262,0,0,0.000533561,0.001029832,0.001298552,0.001293103,0.000886201,0.000990634,0.001135154,0.001554565,0.001545953,0.002173598,0.001636243,0.001791209,0.001066423,0.001092419,0.000957496,0.001079607,0.001452721,0.001914219,0.001424096,0.001170789,0.000776729,0.000783042,0.001282443,0.001735139,0.001440473,0.001217349,0.001004464,0.00115514,0.000881009,0.000832909,0.000660764,0.000811557,0.000760264,0.000705111,0.000693001,0.000656743,0.000497996,0.000571373,0.000564718,0.000692256,0.000634506,0.000746772,0.000607157,0.000584017,0.000602788,0.000743293,0.000923532,0.00076712,0.000684359,0.000750952,0.000739076,0.000784271,0.000804826,0.000769091,0.000737687,0.000651829,0.00072471,0.000671533,0.000724011,0.000778973,0.000783249,0.000782723,0.000747722,0.00081567,0.000879387,0.000823811,0.000721975,0.000624706,0.000602499,0.000603204,0.000659328,0.000840733,0.000727594,0.000628712,0.000602833,0.000663351,0.000789364,0.000846696,0.000772437,0.000672369,0.000673622,0.000662264,0.00066447,0.000555183,0.000631177,0.000722708,0.000811197,0.00075661,0.000753408,0.000617405,0.000709522,0.000608288,0.000719845,0.000696629,0.000776366,0.000723088,0.000892392,0.000747316,0.000723756,0.000632723,0.000682852,0.000657513,0.000812276,0.000672342,0.000610519,0.000534561,0.000568814,0.000612975,0.000767908,0.000728245,0.000691096,0.000745437,0.000787373,0.000845751,0.000807199,0.00071118,0.000678303,0.000688588,0.000723618,0.000781708,0.000795619,0.000767344,0.000674599,0.000644037,0.00061565,0.000654265,0.00066111,0.000631997,0.000610461,0.000683601,0.000720745,0.000809744,0.000762766,0.000728463,0.000662059,0.000666074,0.000658041,0.000674218,0.000681854,0.00062907,0.000529896,0.000561195,0.000576389,0.000657891,0.000637729,0.000658903,0.000608506,0.000703389,0.00070513,0.000748564,0.000761095,0.000894181,0.000856561,0.000766309,0.000727234,0.000757101,0.000805946,0.000729848,0.000618779,0.000675501,0.000677933,0.000698597,0.000682894,0.000764564,0.000726946,0.000719534,0.000656805,0.000632098,0.000505615,0.000543467,0.000568685,0.000587323,0.000611931,0.000628887,0.000669616,0.000713696,0.000714737,0.000688191,0.00064197,0.000632988,0.000583607,0.000531001,0.000501725,0.000571277,0.000618041,0.000638968,0.000658523,0.000644024,0.000616962,0.000592934,0.000613933,0.000607597,0.000617975,0.000565271,0.000626099,0.00059441,0.000635291,0.00063467,0.000666741,0.000729189,0.000575122,0.000612031,0.000564031,0.000585977,0.000551766,0.000523326,0.000543189,0.000572804,0.000635298,0.000644233,0.000655605,0.00066136,0.000680899,0.000697243,0.000589415,0.000394141,0,0,0,0,0,0 +INVESTIGATORS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000141179,0.000147288,0,0.000182139,0.000167937,0.000151844,0.000184527,0.000287182,0.000604493,0.000708111,0.00066619,0.000784082,0.000829091,0.000876075,0.000844705,0.000832196,0.000795844,0.000679275,0.00068208,0.000751122,0.000959079,0.001093127,0.000943043,0.000856681,0.000803403,0.00083952,0.000846133,0.000810024,0.000773763,0.000889086,0.000910634,0.000891515,0.00075711,0.00056178,0.000613012,0.000718237,0.000739768,0.000753088,0.00071364,0.000739002,0.000792841,0.000711081,0.000617607,0.000551886,0.000527289,0.000597593,0.000711509,0.000656201,0.000611425,0.000569061,0.0005525,0.000480594,0.00055927,0.000632065,0.000620556,0.000584181,0.00051814,0.000502,0.000555089,0.000627016,0.000640492,0.000622044,0.000637202,0.000638287,0.00061733,0.000553972,0.000600221,0.000645326,0.00067662,0.0005905,0.00053923,0.000514861,0.000599872,0.000609162,0.000642666,0.000598313,0.000648591,0.000641093,0.000661869,0.000605301,0.00061925,0.000650094,0.00081166,0.000763081,0.000680569,0.000644037,0.000647849,0.000708513,0.000707301,0.000713607,0.000787905,0.000800221,0.000792819,0.00069585,0.000693924,0.000728463,0.000722875,0.00067416,0.000643712,0.000639303,0.000649928,0.000741927,0.000726052,0.000755168,0.000720063,0.000709155,0.000616184,0.000647477,0.000669947,0.000694124,0.000682886,0.000698532,0.00071778,0.000779682,0.000698676,0.000747599,0.000756004,0.000790289,0.000763528,0.000697855,0.000747463,0.000714755,0.000739422,0.000722719,0.000735294,0.000632373,0.000589482,0.000624302,0.000708438,0.000746344,0.00074008,0.000649243,0.000668454,0.00070219,0.000761617,0.000759995,0.000777746,0.000615987,0.000686148,0.000707907,0.000776306,0.000773316,0.000804034,0.000608881,0.000617749,0.00060597,0.000648009,0.000650018,0.000649661,0.00057797,0.00063904,0.000690815,0.000740377,0.000748593,0.000713507,0.000493525,0.000597045,0.000650009,0.000696658,0.000686166,0.00072103,0.000703398,0.000591593,0.000556308,0.000596262,0.000625,0.000616432,0.000539105,0.000561116,0.000595106,0.000627492,0.000621311,0.000615871,0.000567166,0.00052686,0.000498431,0.000425927,0.000228856,0,0,0,0,0,0 +FORMATION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002060157,0.002063558,0.002062706,0,0,0,0.002108963,0.002110818,0.002111932,0,0,0,0.00136612,0.001366415,0.00136671,0,0,0,0.001175272,0.001175549,0.001174444,0,0,0,0,0,0,0,0,0,0,0.001184133,0.001184133,0.001184571,0,0,0,0.001258653,0.001259518,0.00125743,0,0,0,0.000858083,0.000858164,0.000857919,0,0,0,0.000705152,0.000705086,0.000704887,0,0,0,0.001059405,0.001058907,0.001060112,0,0,0,0.000839569,0.000839661,0.000838896,0,0,0,0.001005137,0.001004913,0.001004876,0,0,0,0.000865261,0.000861089,0.000860348,0,0,0,0.00068253,0.000680609,0.000679852,0,0,0,0.000783392,0.000781664,0.000835957,0,0,0,0.000715276,0.000710843,0.000685704,0,0,0,0,0.000918053,0.000961559,0.000923477,0,0,0,0.000675806,0.000725066,0.000777426,0.001024113,0.000896569,0.00109517,0.00087878,0.000988399,0.000616188,0.000548787,0,0.000994126,0.001058014,0.001043297,0.000777143,0.000740221,0.000662321,0.000584881,0.000674099,0.000754805,0.000538117,0.000729141,0.000806707,0.000958149,0.000760264,0.000630517,0.000892024,0.000967326,0.001017197,0.000972684,0.000816827,0.000873464,0.000588502,0.000604702,0.000664408,0.00084024,0.00105364,0.001198978,0.001035663,0.000922313,0.000794556,0.000888923,0.00111095,0.000869254,0.00087264,0.000799817,0.001056005,0.000915865,0.000852321,0.000660328,0.001076748,0.001220653,0.001170789,0.001126257,0.000838973,0.000732824,0.000615695,0.000817566,0.000834754,0.000818452,0.000753352,0.001046198,0.001249364,0.001057222,0.000908943,0.000823619,0.000889052,0.001023001,0.000875657,0.000896392,0.000587698,0.000577552,0.000530238,0.000746478,0.000764986,0.000620075,0.000478894,0.000528977,0.000658828,0.0007892,0.000885139,0.000835766,0.000709539,0.000665642,0.000666236,0.000862832,0.000950518,0.000930526,0.000745601,0.000720447,0.000666559,0.000846246,0.000900788,0.000874934,0.000758071,0.000751699,0.00075843,0.000908946,0.000927219,0.000859059,0.00076116,0.000679963,0.000672726,0.000717997,0.000856231,0.000802072,0.000748757,0.000690975,0.000714377,0.000768712,0.000887545,0.000865713,0.000684594,0.000685113,0.00063261,0.000752352,0.000952293,0.0009066,0.000758179,0.000659854,0.00064921,0.000685099,0.000705105,0.000745693,0.000703395,0.000733635,0.000648633,0.000680164,0.000637254,0.000799435,0.000707216,0.000632806,0.000595347,0.000608671,0.000672893,0.000753793,0.000662873,0.000678191,0.000626063,0.000679457,0.000676316,0.000869543,0.000830043,0.000814112,0.000730295,0.000713601,0.000691609,0.000841186,0.000810127,0.000799322,0.000719088,0.000699961,0.000703936,0.000802035,0.000735371,0.000710418,0.000623642,0.000618226,0.000634539,0.000756379,0.000836969,0.000827632,0.000783154,0.000753922,0.000674007,0.000737983,0.000769981,0.000841742,0.000714589,0.000644814,0.000559842,0.000567832,0.00062071,0.000713792,0.000710405,0.000686258,0.000625851,0.000592485,0.000714129,0.00083773,0.000699113,0.000653969,0.000539774,0.000532147,0.000574312,0.000729756,0.00070123,0.000711251,0.000639906,0.000625207,0.000689857,0.000639314,0.000688586,0.000667037,0.000676331,0.000554429,0.000539482,0.000531277,0.00064465,0.000633267,0.0006527,0.00053592,0.000563528,0.0006485,0.000742144,0.000648198,0.000638972,0.00052974,0.000645725,0.000658988,0.000628104,0.000543802,0.000524346,0.000500684,0.000606521,0.000683601,0.000690775,0.000618475,0.000592847,0.000524228,0.00052843,0.000548275,0.00060611,0.000568476,0.000566374,0.000559014,0.000710938,0.000611572,0.000622715,0.0006312,0.000671453,0.000662499,0.000529893,0.000455705,0.000495012,0.000571014,0.000600051,0.000610553,0.000589071,0.000618482,0.000611539,0.000661719,0.000647249,0.000634266,0.000434894,0,0.000473229,0.00052488,0.000622998,0.000971928,0,0,0,0,0 +GRANT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000344436,0.000344139,0,0,0,0.000341265,0.000340304,0.000339926,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000540645,0.000534259,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000931695,0.001222273,0.001493971,0.001295595,0.001069396,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.006184644,0.005707595,0.005980815,0,0,0,0.005839757,0.005565024,0.005989583,0.000652905,0,0.000786636,0.004955729,0.004934264,0.004624937,0.000705111,0.000561001,0.000375281,0.003759867,0.003052762,0.003131618,0.001575986,0.001436969,0.000673916,0.002467381,0.002581354,0.002829411,0.001368336,0.001561608,0.001681763,0.002313497,0.001824923,0.001698452,0.001319358,0.001109355,0.000879525,0.001059085,0.001271639,0.001325794,0.001231144,0.000949677,0.000900788,0.001029488,0.001279886,0.001262774,0.001206811,0.000846133,0.000772108,0.000782902,0.000927464,0.001008755,0.001053051,0.00103928,0.001266912,0.001366386,0.001267597,0.001131688,0.001013501,0.000993589,0.00095439,0.001005626,0.000908717,0.00084885,0.000807237,0.000808082,0.000867473,0.000929552,0.000917795,0.000833898,0.000812715,0.000805645,0.000775265,0.00078743,0.000737079,0.000770869,0.000722684,0.000710544,0.000694477,0.00090036,0.000829339,0.000803177,0.000763539,0.000823607,0.000811317,0.000841518,0.000840428,0.000882677,0.000857224,0.000883719,0.000939896,0.000979648,0.000882899,0.000785086,0.000757084,0.000774604,0.000778821,0.000815695,0.000760654,0.000760477,0.000685069,0.000667955,0.000578304,0.000676918,0.000671426,0.000647734,0.000659064,0.000655577,0.000706869,0.000698641,0.000681342,0.000671375,0.000643779,0.00065439,0.000600677,0.00063059,0.000569937,0.000608155,0.000723686,0.000778186,0.000827121,0.0007115,0.000718937,0.000675651,0.00067476,0.000656678,0.000642939,0.00063342,0.000637955,0.000623866,0.000729757,0.000742203,0.000824575,0.000756969,0.000659731,0.000559438,0.000657301,0.000682481,0.000755027,0.000645494,0.000621871,0.00053664,0.0005422,0.000526157,0.000544591,0.000486815,0.000525191,0.000525085,0.000580348,0.000547464,0.000538454,0.000464145,0.000514288,0.000512565,0.00048544,0.000432572,0.000425741,0.000433514,0.000465177,0.000507463,0.000525767,0.00051603,0.000506239,0.000497535,0.000582921,0.000540923,0.000477992,0.000446049,0.000439591,0.000430153,0.00047155,0.000484493,0.000501641,0.000455094,0.000454055,0.000444076,0.000406561,0.000429989,0.000473101,0.000455282,0.000442062,0.000436859,0.000508791,0.000487275,0.000427215,0.000464117,0.000463792,0.00048374,0.000497028,0.000505542,0.000478902,0.000432339,0.000408376,0.000403223,0.000382787,0.000520162,0.000568435,0.000623833,0.000508569,0,0,0,0,0,0 +APPROACHES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000268228,0.00028878,0.000287553,0,0,0,0,0,0,0,0,0,0,0.000270322,0.00026713,0.0002827,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000358269,0.000317874,0,0,0,0,0.000355707,0,0,0,0,0,0,0,0,0.000483022,0,0,0,0.000473381,0.000582823,0.000568214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000495,0.000469102,0.000348597,0.000261199,0.000385035,0.000441865,0.000447887,0.000327851,0.000284201,0.00033873,0.000430563,0.000523684,0.000486953,0.000413065,0.000375489,0.000405845,0.000416914,0.000417054,0.000438666,0.000481175,0.000511177,0.000478008,0.000477456,0.000447689,0.000401183,0.000343005,0.000408652,0.000458129,0.000473292,0.000469845,0.000435999,0.000510143,0.00048741,0.000513836,0.000475113,0.00046825,0.000444209,0.000406806,0.000415359,0.000433384,0.000472193,0.000503231,0.000481879,0.000475338,0.000475122,0.000470658,0.000514193,0.000512348,0.000550867,0.00053205,0.00059388,0.000529838,0.00049035,0.000448837,0.000502272,0.00047007,0.000459102,0.000505256,0.000524025,0.000571839,0.000543456,0.000541016,0.000494003,0.00049578,0.000589253,0.000600686,0.00064481,0.00057292,0.000523106,0.000542135,0.000542847,0.000535765,0.000533352,0.00049038,0.000488412,0.000518777,0.000498972,0.000489193,0.000463911,0.000527327,0.000512642,0.000535962,0.000494534,0.00050559,0.000505141,0.000524462,0.0005518,0.000532877,0.000541768,0.000630083,0.000667169,0.000685499,0.000560067,0.000523818,0.000549547,0.00064852,0.000689856,0.000737975,0.000594792,0.000571824,0.000572218,0.000588247,0.000624974,0.000669402,0.0007115,0.00063743,0.000577572,0.000613419,0.000626252,0.000683523,0.000702364,0.00065319,0.000584875,0.00068486,0.000692525,0.000731245,0.000649715,0.000639739,0.000671325,0.000700416,0.000772786,0.000813106,0.000818856,0.000657863,0.000621517,0.000691039,0.000703619,0.000729213,0.000748817,0.000764564,0.000728184,0.000661743,0.000697049,0.000719187,0.00081026,0.000787845,0.000717092,0.000687208,0.000696335,0.000713171,0.000731121,0.000613863,0.000607526,0.000698519,0.00080989,0.000825374,0.000841822,0.000733961,0.00069928,0.000689234,0.000707077,0.000722082,0.000736236,0.000744939,0.000718767,0.000732226,0.000810914,0.000830443,0.000871733,0.000808773,0.000825114,0.000813775,0.000858549,0.000854698,0.000862691,0.000912073,0.000871605,0.00089065,0.000853567,0.000864893,0.000890215,0.001057171,0.000971645,0.000865075,0.000772806,0.000801672,0.000815275,0.000937928,0.000828241,0.000784048,0.000821739,0.000889996,0.001143445,0,0,0,0,0 +STRUCTURAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000862813,0.000862999,0.000863185,0,0,0,0.000940218,0.000940439,0.000939555,0,0,0,0.00118991,0.001189343,0.001188872,0,0,0,0,0.000888099,0.000888099,0.000888428,0,0,0,0.000972596,0.000973264,0.000971651,0,0,0,0.001287124,0.001287247,0.001286879,0,0,0,0.000987213,0.00098712,0.000986842,0,0,0,0.001334066,0.001333438,0.001334956,0,0,0,0.001423617,0.001423773,0.001422475,0,0,0,0.001712456,0.001712074,0.001749228,0,0,0,0.001280587,0.001274412,0.001273315,0,0,0,0.001178916,0.001175597,0.001174289,0,0,0,0.001370936,0.001395829,0.001365397,0,0,0,0.001408199,0.001377257,0.001349289,0,0,0.002559181,0,0.001551946,0.0015079,0.001469168,0,0,0,0.001197142,0.001125761,0.001130802,0.000931012,0.000978075,0,0.000930473,0.000988399,0.000833666,0.000932938,0.001057362,0.001626751,0.00167519,0.001738828,0.001188571,0.000973975,0.001080629,0.001121022,0.001244491,0.000812867,0.000852018,0.000798583,0.000921951,0.001095028,0.001436053,0.00136612,0.001094757,0.000716538,0.00073111,0.000688984,0.001072085,0.001048157,0.001086464,0.000853698,0.000930171,0.000993011,0.001245211,0.001146849,0.00112572,0.001064207,0.001243652,0.001275412,0.001255857,0.001124917,0.001285996,0.001333029,0.001310902,0.001165647,0.000909143,0.000924459,0.00089729,0.001424096,0.001646422,0.001747641,0.001789809,0.001221374,0.001343334,0.001401542,0.001704289,0.001748512,0.001607152,0.001596828,0.001619546,0.001354566,0.001201104,0.001013685,0,0.001287001,0.001219665,0.001319688,0.001371294,0.001411795,0.00139924,0.001679575,0.001457115,0.00116264,0.000911066,0.000996445,0.001182512,0.001578399,0.001357212,0.001199142,0.001104341,0.001101507,0.00105706,0.000942589,0.000954462,0.000918282,0.000898838,0.000848337,0.000905326,0.00093714,0.000955284,0.000833021,0.000805322,0.000787494,0.000841905,0.000875692,0.000906537,0.000886476,0.000916803,0.000936455,0.0009365,0.00099458,0.001030576,0.00097108,0.000860664,0.000780692,0.000772443,0.000807721,0.000891259,0.000999796,0.000957616,0.000907738,0.000823711,0.000833803,0.000890606,0.000875041,0.000749311,0.000805143,0.000796685,0.000809663,0.000705105,0.000859773,0.000735097,0.000808102,0.00080222,0.000882694,0.000832332,0.000873801,0.000812934,0.000772433,0.000750191,0.000783663,0.000776711,0.000734298,0.000672342,0.000750276,0.000794618,0.000841165,0.000849993,0.000838488,0.000794805,0.00074362,0.0006872,0.000680971,0.000673356,0.000798702,0.000803943,0.0007545,0.000697973,0.000686046,0.000735843,0.000875822,0.000852604,0.000777579,0.000718101,0.000712248,0.000715089,0.000718849,0.000740177,0.0007548,0.000695927,0.000669263,0.000647483,0.000784795,0.000734124,0.000612301,0.000596333,0.000584191,0.000579105,0.000604319,0.000658329,0.000709706,0.000678905,0.000663439,0.000666435,0.000713136,0.000731268,0.000672311,0.000597916,0.00057834,0.000580185,0.000639402,0.000645192,0.000563167,0.000580833,0.000584984,0.000611904,0.000549592,0.000469902,0.00046956,0.000581454,0.000632011,0.000665198,0.000642326,0.000568064,0.000496602,0.00051279,0.000503424,0.000541263,0.000518375,0.00051064,0.000498846,0.000535383,0.000507085,0.000494897,0.000494028,0.000603243,0.00057179,0.000596182,0.000538635,0.000537926,0.000493337,0.000587641,0.000608342,0.000585155,0.000530307,0.000527029,0.00050923,0.000552282,0.000543368,0.000535523,0.000484354,0.000480342,0.00043512,0.000502222,0.0004634,0.000507472,0.000490349,0.000504258,0.000467397,0.000522859,0.000532571,0.000562809,0.00051676,0.000498976,0.000474502,0.000399727,0.000408736,0.000495335,0.000534419,0.000535051,0.000501085,0.000312643,0.000317009,0.000378023,0.000507671,0.000699283,0.000628895,0,0,0,0,0 +ELECTRON,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000934714,0.000934915,0.000935117,0,0,0,0.002037139,0.002037618,0.002035703,0,0,0,0.001665873,0.001665081,0.001664421,0,0,0,0,0.002368265,0.002368265,0.002369142,0,0,0,0.001945191,0.001946528,0.001943301,0,0,0,0.002192878,0.002193087,0.00219246,0,0,0,0.002491538,0.002491304,0.002490602,0,0,0,0.001765675,0.001764844,0.001766854,0,0,0,0.002080672,0.0020809,0.002079002,0,0,0,0.002270866,0.002270359,0.002270274,0,0,0,0.002145848,0.002135501,0.002133664,0,0,0,0.002047591,0.002041827,0.002039555,0,0,0,0.002434111,0.002428743,0.002452141,0,0,0,0.002391703,0.002421308,0.002433144,0.00255814,0.002174386,0,0,0.002382566,0.002425752,0.002329681,0.001912412,0.001910524,0.002616659,0.002239815,0.002156118,0.002120254,0.00158272,0.001874643,0.00186179,0.002429568,0.002288925,0.00217478,0.001920755,0.001744647,0.001536376,0.001587022,0.001738828,0.001965714,0.001675238,0.001638373,0.001510942,0.001555613,0.002322476,0.001973094,0.00204854,0.00178628,0.001916299,0.001985133,0.00204918,0.001824596,0.002042132,0.002352268,0.002553295,0.002246273,0.001514005,0.001448619,0.001565112,0.001993223,0.002482527,0.002490421,0.002293698,0.001981268,0.002234835,0.002210937,0.002087037,0.002366807,0.002607762,0.002342351,0.001942413,0.001529386,0.001540319,0.001363714,0.001254622,0.001734761,0.001953046,0.00204888,0.001747641,0.001901672,0.002015267,0.002630695,0.001946586,0.002086884,0.001636905,0.001908493,0.001706954,0.001943455,0.001850139,0.002045123,0.001900659,0.001747448,0.001518002,0.001469852,0.001469087,0.001371294,0.001360457,0.001369782,0.001231688,0.001238548,0.001214313,0.001273156,0.001131764,0.000878438,0.000671659,0.000914643,0.001053792,0.001109863,0.001047024,0.001112143,0.001247118,0.001337035,0.001209071,0.000969739,0.000914414,0.000905326,0.001128329,0.001375225,0.00132288,0.001191547,0.001020163,0.00094446,0.001041963,0.001306379,0.001276404,0.000953049,0.000834891,0.000752472,0.000963849,0.001235917,0.001197378,0.001049888,0.001090765,0.001048692,0.001135858,0.001180918,0.001282537,0.001000403,0.001087275,0.001018107,0.001251776,0.001129643,0.001144726,0.001015339,0.000886868,0.000783861,0.000809663,0.000810344,0.00102672,0.000893609,0.000926697,0.000818676,0.000943454,0.00090256,0.001059716,0.000894957,0.000871069,0.000775553,0.000764642,0.000715189,0.001101447,0.001055861,0.000810592,0.000671813,0.000649668,0.000719225,0.000739676,0.000679304,0.000814112,0.000767567,0.000817165,0.000640905,0.000855347,0.000773022,0.00089793,0.000773049,0.000809896,0.00070593,0.000939985,0.000844078,0.000732805,0.000583927,0.00055254,0.000493165,0.000545632,0.000643385,0.000802472,0.000740489,0.000747058,0.000649044,0.000724215,0.000634102,0.000782308,0.000761083,0.000778186,0.000668198,0.000497138,0.000537113,0.000675651,0.00065155,0.00061104,0.000535071,0.000493378,0.000575112,0.00061914,0.000601479,0.000570184,0.000545547,0.000540398,0.000574312,0.000590518,0.000597916,0.000567403,0.000535156,0.000335657,0.000341929,0.000459977,0.000537293,0.000537054,0,0.000361731,0.000335837,0.000385145,0.000485116,0.000445716,0.000425145,0.00030624,0.000330093,0.000473904,0.000516405,0.000520273,0.000502101,0.000449386,0.000522527,0.000511752,0.000521072,0.000465654,0.000449655,0.000410414,0.000370521,0.000338665,0.000477992,0.00050946,0.000531833,0.000507867,0.00052109,0.000453829,0.000450818,0.000447779,0.000463614,0.000470198,0.000330466,0.000281817,0.000360891,0.000468725,0.000505596,0.000483514,0.000253223,0.000336289,0.000374277,0.000422755,0.000417093,0.000393039,0.000205123,0.000211539,0.000284055,0.00042033,0.000427679,0.000425297,0.000236486,0.000209851,0.000246415,0.000258138,0.000355999,0.000686067,0,0,0,0,0 +APPLIED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000476713,0.000476758,0.000476622,0,0,0,0.000517112,0.000517063,0.000516917,0,0,0,0.00043161,0.000431406,0.000431898,0,0,0,0.000511042,0.000511098,0.000510632,0,0,0,0.000819001,0.000818818,0.000818787,0,0,0,0.000553767,0.000585541,0.000585037,0,0,0,0.000744579,0.000742482,0.000772559,0,0,0,0.000839349,0.000809581,0.000808092,0,0,0,0.000827037,0.000777484,0.000840541,0,0,0,0,0.001005486,0.000983413,0.001091382,0.002103653,0.001751313,0,0.000946129,0.000954035,0.000954114,0.001024113,0.000896569,0,0.000620315,0.000884357,0.000978651,0.001262211,0.001004494,0.000903751,0,0,0.000548571,0.000701262,0.000592603,0.000487401,0,0,0,0.000416652,0.000460976,0.000581734,0.000591316,0.00068306,0.000567652,0.000895672,0.000635748,0.000607927,0,0,0.000588502,0.000604702,0.000498306,0.000649276,0.00052682,0.000729813,0.000585375,0.000532104,0.000449097,0.000502435,0.00067623,0.000664724,0.000551141,0.000609385,0.000691865,0.000666084,0,0.000660328,0,0.000935834,0.000804917,0.001475785,0.001286425,0.001282443,0,0.000389317,0,0,0,0,0,0.000462535,0.000616783,0.000665231,0.000705111,0.000660001,0.000875657,0.000622494,0.000685647,0.000667394,0.000721713,0.000690492,0.00050999,0.000607157,0.000619058,0.000848823,0.000793973,0.000856366,0.000590092,0.000720697,0.00068193,0.000731969,0.00068722,0.000710567,0.000686266,0.000734626,0.000711294,0.000679949,0.000666559,0.000617446,0.000637925,0.00065751,0.000749853,0.000741756,0.00073935,0.000702032,0.000654913,0.000633632,0.000688669,0.00066447,0.000695218,0.000597866,0.000705131,0.000604418,0.000758931,0.000742916,0.000797076,0.000729703,0.00075757,0.000763693,0.000725343,0.000778472,0.000779231,0.000799508,0.000740244,0.000740199,0.000780348,0.000715851,0.00071333,0.000650945,0.000582325,0.00055927,0.000673674,0.000781901,0.000774794,0.00075105,0.000569627,0.00061352,0.000699925,0.000776276,0.000747521,0.000696167,0.000592146,0.000682312,0.000731527,0.00075616,0.000713952,0.000703571,0.000588456,0.000516644,0.000589252,0.000709065,0.000724471,0.000713601,0.000640905,0.000651423,0.000674075,0.000750018,0.000719088,0.000733359,0.000650094,0.000615963,0.00067782,0.00075967,0.000810413,0.000807558,0.000723308,0.000539859,0.000531409,0.000614434,0.000684549,0.00070816,0.000680248,0.000558995,0.000560501,0.000634416,0.000685278,0.000683393,0.000660974,0.000560991,0.000660419,0.000720603,0.00071455,0.000684567,0.000645075,0.00052785,0.000618912,0.000705394,0.000694837,0.000665091,0.00063118,0.000618776,0.000599756,0.000634029,0.000619067,0.00064572,0.000599458,0.000621519,0.00062587,0.000711869,0.000684497,0.000689608,0.000657776,0.000635565,0.00055556,0.000658833,0.00068372,0.000680344,0.00062648,0.000556655,0.000572647,0.000641018,0.000669228,0.000655452,0.00065338,0.000596206,0.000569257,0.00057179,0.000636553,0.000661345,0.00065713,0.000629792,0.000568761,0.000666354,0.000692317,0.000639322,0.000620712,0.000561721,0.000488064,0.000533556,0.000634345,0.000616545,0.000619546,0.000569462,0.000517441,0.000544749,0.000599464,0.000617758,0.00062397,0.000603969,0.00058851,0.000536689,0.000573025,0.000586055,0.00060261,0.000574441,0.000525956,0.000518091,0.000565762,0.000613081,0.000612866,0.000607041,0.000523075,0.00052686,0.000568435,0.000576508,0.000699283,0.000857584,0,0,0,0,0 +MANAGEMENT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000595637,0.000595504,0.000595482,0,0,0,0,0,0,0,0,0,0.000837651,0.000835293,0.000834363,0,0,0,0.001035197,0.001004997,0.001031014,0,0,0,0.000938799,0.000977409,0.000973258,0.003023256,0.002609263,0.002559181,0,0.001551946,0.001573461,0.001616085,0,0,0,0.001930875,0.001965311,0.001925897,0.002513732,0.002119162,0.002299858,0.000982166,0.000988399,0.000978651,0.001207332,0.00111023,0.000994126,0,0,0.00096,0.000857098,0.000941193,0.000536141,0.000518538,0,0.00058296,0.000624978,0.000691463,0.000787051,0.000929211,0.001050862,0.000932571,0.000788191,0.00073111,0.000851098,0.000969982,0.000873464,0,0,0.000398645,0.000725662,0.000862069,0.000834072,0.000585375,0.000603051,0.00076001,0.000850274,0.000869439,0.000511326,0,0.000380865,0.000655451,0.000749344,0.0007955,0,0,0.000610327,0.000841504,0.000970911,0.000783042,0,0,0.000622907,0.000765191,0.000706845,0.000703129,0.00071582,0.000694091,0.000594687,0.000486934,0.000633553,0.000766424,0.000594001,0.000375281,0.000348597,0.000342824,0.000462042,0.000500781,0.000634506,0.000655702,0.00058132,0.000805943,0.000651995,0.000658828,0.000251872,0.000295046,0.000320983,0.00041965,0.000452447,0.000490497,0.00047492,0.000394406,0.000385678,0.000354504,0.000364487,0.000365613,0.000401183,0.000375061,0.000351021,0.000341029,0.000361929,0.000403065,0.000439694,0.000458439,0.00042953,0.000409363,0.000485442,0.000478474,0.000539197,0.000387435,0.000352339,0.000268576,0.000472193,0.000512029,0.000628737,0.000419634,0.000381846,0.000454358,0.000485468,0.000527175,0.000503711,0.000427953,0.000375837,0.000399041,0.000497918,0.000549825,0.000564554,0.000491118,0.000431278,0.000463646,0.000466107,0.000588295,0.000595777,0.000699679,0.000478067,0.000477553,0.000457311,0.000484554,0.000504055,0.000588301,0.000516608,0.000494787,0.000481059,0.00056466,0.00059151,0.000641581,0.000457357,0.00039153,0.000355224,0.000444933,0.000490866,0.000565862,0.000399351,0.000430831,0.000478099,0.000621723,0.000637341,0.000642117,0.000420266,0.000456143,0.000413416,0.000516303,0.000525492,0.000595085,0.000424381,0.000432719,0.000482013,0.000634298,0.000679559,0.0007723,0.000567256,0.000617117,0.000526607,0.000626655,0.000681188,0.000753679,0.000693257,0.000537113,0.000495841,0.000695484,0.000738657,0.000833044,0.000756226,0.000578921,0.000500984,0.000701963,0.000767412,0.000871721,0.000763157,0.000639739,0.000538303,0.000540972,0.000680084,0.000813106,0.000920291,0.00067186,0.000599613,0.000775272,0.000776782,0.000898064,0.000924611,0.000918192,0.000702178,0.000699999,0.000760072,0.00083156,0,0.000693012,0.000586145,0.000671226,0.000767551,0.000759995,0.000791634,0.000556513,0.000576078,0.000561444,0.00074143,0.000789914,0.00087541,0.000684401,0.000592663,0.000626015,0.000734005,0.000771566,0.000828948,0.000669711,0.000659892,0.000690815,0.000757097,0.000744411,0.000768737,0.0006805,0.000704542,0.000721783,0.000738154,0.000747025,0.000721878,0.00086518,0.000855134,0.000739267,0.000771917,0.000774053,0.000919609,0.000988797,0.000978816,0.000875639,0.000795624,0.000821578,0.000804973,0.001014085,0.000834939,0.000789648,0.00069267,0.00066114,0.000571723,0,0,0,0,0 +SYNTHESIS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004057428,0.00406377,0.004071406,0,0,0,0.00473836,0.004746182,0.004744224,0,0,0,0.003339192,0.003342128,0.003343893,0,0,0,0.001941329,0.001941748,0.001942167,0,0,0,0.00266395,0.002664577,0.002662073,0,0,0,0.002300492,0.002299397,0.002298486,0,0,0,0,0.003108348,0.003108348,0.003109499,0,0,0,0.002402883,0.002404534,0.002400549,0,0,0,0.00190685,0.001907032,0.001906487,0,0,0,0.002256487,0.002256275,0.002255639,0,0,0,0.001961861,0.001960938,0.001963171,0,0,0,0.00266472,0.002665012,0.002662582,0,0,0,0.002419775,0.002419235,0.002456362,0,0,0,0.002768837,0.002755485,0.002753114,0,0,0,0.002978314,0.002969929,0.002966625,0,0,0,0.00212635,0.002149577,0.002117759,0,0,0,0.00245876,0.00237688,0.002366785,0,0.002174386,0,0,0.002426283,0.002382045,0.002476598,0.003059858,0.003821048,0.003706934,0.002336358,0.00221336,0.00217326,0.001768923,0.001874643,0.001752272,0.00175756,0.001768715,0.001558592,0.001536604,0.001427439,0.001626751,0.00167519,0.001564945,0.001874286,0.001714197,0.001952104,0.001705902,0.002229712,0.002032166,0.00206278,0.001562446,0.001354116,0.001368785,0.00147829,0.001418663,0.001216397,0.001218114,0.001430433,0.001459026,0.001480498,0.001339312,0.001041195,0.000995981,0.001295595,0.001565902,0.001676245,0.001616014,0.001621037,0.001383469,0.001623657,0.001352709,0.00154567,0.000766989,0.000826712,0.001447288,0.002112009,0.002414554,0.001931928,0.001254622,0.001495484,0.001505473,0.001719596,0.001631131,0.002125399,0.001832061,0.001959028,0.001907654,0.001808633,0.001636905,0.001858269,0.001872144,0.001850909,0.001288489,0.001103717,0.001298784,0.001348907,0,0.001094571,0.00114539,0.000914196,0.001129436,0.001104663,0.001306336,0.000783199,0.000762175,0.000642418,0.000750409,0.00077708,0.000772408,0.000781872,0.000914498,0.00093869,0.000914369,0.000868206,0.000812077,0.00085586,0.000884612,0.000855383,0.000863258,0.000855583,0.000984153,0.000945667,0.000874934,0.000723146,0.000753687,0.000760815,0,0.00085828,0.000880384,0,0.000919241,0.000834262,0.00080181,0.000825236,0.000865092,0.000887115,0.000897166,0.000916726,0.000938517,0.00105837,0.001034774,0.000737568,0.000933591,0.000950563,0.00119819,0.000956148,0.000892255,0.000877891,0.000912597,0.000843172,0.000908108,0.000733169,0.000784648,0.00066773,0.000784659,0.000777537,0.000816872,0.000655461,0.000698509,0.000701748,0.00066355,0.000626049,0.000646712,0.000707499,0.000731049,0.000712588,0.000667893,0.00064051,0.000624136,0.000756003,0.000869543,0.000912264,0.000740855,0.000700012,0.000625642,0.00067944,0.000807199,0.000713242,0.000672327,0.000697973,0.000768149,0.000847515,0.000981691,0.000814237,0.000679076,0.00053133,0.000519052,0.000544125,0.000782362,0.000793318,0.000713749,0.000580255,0.000526258,0.000496144,0.000762766,0.000668072,0.000623359,0.000544786,0.000550021,0.000570677,0.000752548,0.000792085,0.000636147,0.000525551,0.000493565,0.000528663,0.000678664,0.00069699,0.000636864,0.000560858,0.000539784,0.000519569,0.000575462,0.000592486,0.000584302,0.000526329,0.000481893,0.000469818,0.000623363,0.000791835,0.000640683,0.000571641,0.000528492,0.000565001,0.000537525,0.000728837,0.000693509,0.000584418,0.000529241,0.000510361,0.00056782,0.000663833,0.000607346,0.000596312,0.000488622,0.000463201,0.000471211,0.000552264,0.000491739,0.000544544,0.000532176,0.000557542,0.000512231,0.000535721,0.000531515,0.000542752,0.000512935,0.000515498,0.000492869,0.000530265,0.000495532,0.000543993,0.000488011,0.000485122,0.000483633,0.000621799,0.000544749,0.000456927,0.000507882,0.000539035,0.000568341,0.000558029,0.000509237,0.000556308,0.000553825,0.000562308,0.000520692,0.000331352,0.000532433,0.000514115,0.000583658,0.000518764,0.000535668,0.00036475,0.000392912,0.000383623,0.000400114,0.00041957,0.000800412,0,0,0,0,0 +MULTIPLE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0004694,0.00046649,0.000464509,0,0,0,0,0.000218584,0.000218536,0.000209881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00034721,0,0,0,0,0,0,0,0,0,0,0,0.00046242,0.000531526,0.000496505,0,0,0,0.000425683,0.000380005,0.000386488,0,0,0,0.000495125,0.000473381,0.000541193,0,0.000858426,0.001076748,0.001017211,0.00076833,0.00066022,0.000559315,0,0,0,0.000347814,0,0,0.00055063,0.000462727,0.000462535,0.000324623,0.00053852,0.000398541,0.000429,0.000312735,0.000722094,0.000718297,0.000667394,0.000515509,0.000373239,0.000346065,0.000387547,0.000373771,0.000393657,0.000354754,0.000486953,0.000413065,0.000387602,0.000367193,0.000433496,0.0004223,0.00042779,0.000299748,0.000315277,0.000306474,0.000355961,0.000355664,0.00037611,0.000330182,0.000379837,0.000347192,0.000342043,0.00030051,0.000306677,0.000324009,0.000322909,0.000388042,0.000404535,0.000441668,0.000399508,0.000286702,0.000343745,0.000451696,0.00049895,0.00047156,0.000415334,0.000356504,0.000373102,0.000397309,0.00041078,0.000444804,0.00041583,0.000323857,0.000295506,0.000345836,0.000458568,0.000487308,0.000520354,0.000466562,0.000375629,0.000350707,0.000388882,0.000423737,0.000447254,0.000436974,0.000440884,0.000422872,0.000459873,0.000487223,0.000532587,0.000503709,0.000458124,0.00048295,0.000486944,0.000511686,0.000506401,0.000529202,0.000564638,0.000526607,0.00054182,0.00056956,0.000602943,0.000671327,0.000526803,0.000521532,0.000430289,0.000489167,0.000470352,0.000512497,0.000445932,0.000503036,0.000480577,0.000586073,0.000592467,0.000654265,0.000485007,0.000514328,0.000521739,0.000640935,0.000657822,0.000711452,0.000550734,0.000579373,0.000587422,0.000648891,0.000671268,0.000656158,0.000595197,0.000478595,0.00053262,0.00068305,0.000746263,0.00076576,0.000654965,0.000548451,0.000615595,0.000679159,0.000708096,0.000742791,0.000748719,0.000656096,0.000621598,0.000650793,0.000732828,0.000767472,0.00080779,0.000711852,0.000614672,0.000651785,0.000638238,0.000693959,0.000698107,0.00069311,0.000682363,0.000670697,0.000705401,0.000747281,0.000770385,0.000700307,0.00067469,0.000739148,0.00081305,0.000826269,0.000773778,0.000573505,0.000583225,0.000660025,0.000768556,0.000806512,0.000851268,0.000736321,0.000645972,0.000727781,0.000773094,0.000805196,0.000796226,0.000735765,0.000750658,0.000817872,0.000849056,0.000855535,0.00084785,0.000728331,0.000758291,0.000821862,0.000861471,0.000869411,0.000850815,0.000787806,0.000765914,0.000826568,0.000861088,0.000890481,0.000907852,0.001020354,0.00094834,0.000888551,0.000897103,0.000924727,0.000927118,0.000885821,0.000752338,0.000770047,0.000783018,0.000877282,0.000686067,0,0,0,0,0 +PROVIDING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000931012,0.001059581,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000195899,0.000205352,0.000265119,0.000242605,0.000528204,0.000555484,0.000502254,0.000381355,0.000270289,0.000352621,0.000398312,0.000532952,0.000444497,0.000438234,0.000356725,0.000286402,0.000248476,0.000355069,0.000450563,0.000569111,0.000564585,0.000545359,0.000445586,0.000508195,0.000486891,0.000487212,0.000469845,0.000509897,0.000503249,0.000545289,0.000477591,0.000492328,0.000447802,0.000528021,0.000894974,0.000836446,0.000712133,0.000459601,0.000417013,0.000385503,0.000415921,0.000428484,0.000438059,0.000450997,0.000474458,0.000462986,0.000431809,0.000533632,0.000523188,0.000541807,0.000520971,0.000544463,0.000568293,0.000531446,0.000491386,0.000532299,0.000560869,0.000587338,0.000504601,0.000411669,0.000424694,0.000461154,0.000449847,0.000439384,0.000388355,0.000370398,0.000430867,0.000423685,0.000468343,0.000466683,0.00049651,0.000488412,0.000497243,0.000518322,0.000511323,0.000495123,0.000468509,0.000419177,0.00042877,0.000416843,0.000439899,0.000449478,0.000452673,0.000368936,0.000422039,0.000413416,0.000454046,0.000448214,0.00050796,0.000617806,0.000607325,0.000533657,0.000528108,0.000514818,0.000602238,0.000594792,0.000637877,0.000543193,0.000574097,0.00054451,0.000567065,0.000599758,0.000558012,0.000546242,0.000557879,0.000605969,0.000645075,0.000698055,0.000658903,0.000588419,0.000682722,0.000686593,0.000762035,0.000686842,0.000665184,0.000621598,0.000653234,0.000691272,0.000733247,0.000818856,0.000741846,0.000677645,0.000691039,0.00071685,0.000749624,0.00076403,0.000719905,0.000694747,0.000672325,0.000694771,0.000745408,0.0008613,0.000813377,0.000702126,0.000681215,0.000757001,0.00077008,0.000826355,0.000802907,0.000770487,0.000762362,0.000763389,0.000769544,0.000791438,0.000842522,0.000815304,0.000695401,0.000730096,0.000728808,0.00079759,0.000809158,0.000754337,0.000717168,0.000745079,0.00075397,0.0007762,0.000856604,0.000823661,0.0008532,0.000821145,0.000828616,0.000815188,0.000834699,0.001087104,0.000954732,0.000890632,0.000793884,0.000813791,0.000854678,0.000833607,0.001003581,0.000924725,0.000956698,0.000898421,0.001012081,0.000975584,0.000938057,0.000950808,0.000928139,0.001029101,0,0,0,0,0 +REGION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000783515,0.000783699,0.000782963,0,0,0,0.000793273,0.000792896,0.000792581,0,0,0,0,0,0,0,0,0,0,0.000629327,0.000629759,0.000628715,0,0,0,0.000572055,0.00057211,0.000571946,0,0,0,0.000705152,0.000705086,0.000704887,0,0,0,0.000667033,0.000666719,0.000667478,0,0,0,0.000584048,0.000584112,0.00058358,0,0,0,0.000521182,0.000521066,0.000521047,0,0,0,0.000622988,0.000619984,0.000619451,0,0,0,0.000434337,0.000433115,0.000432633,0,0,0,0.000587544,0.000586248,0.000613035,0,0,0,0.000961152,0.000955195,0.000973258,0,0.002174386,0.002132651,0,0.001027345,0.00102712,0.001049406,0,0,0,0.000753041,0.000744147,0.000742089,0,0,0,0.000723701,0.000936378,0.000724927,0.000548787,0.000634417,0,0.001146182,0.000869414,0.00064,0,0.00034859,0,0.000518538,0.000638681,0.00044843,0.000486094,0.000316921,0.000410635,0,0.000525431,0,0.000501576,0.000349661,0.000445813,0,0.00064054,0.000452694,0.00046242,0.000498306,0.000458313,0,0,0,0.000461156,0.000518188,0.000463786,0.000531324,0.000511326,0.00059707,0.000685558,0.000619037,0.000582823,0,0,0,0.00052895,0.000585394,0.00066022,0.000559315,0,0.000559722,0.000428249,0.00048694,0.000446429,0.000552458,0,0,0,0.000357085,0.000348454,0.000459855,0.000363,0.000500375,0.000473096,0.000391798,0.000385035,0.000353492,0.000354577,0.000364279,0.000465056,0.000420492,0.000418261,0.000320968,0.000352621,0.000368808,0.000484502,0.000676409,0.000701174,0.000789516,0.000826578,0.000820364,0.000768296,0.000692998,0.000677817,0.000659097,0.000714608,0.000750123,0.000644413,0.000562903,0.000540905,0.00059625,0.000742676,0.00084794,0.00082555,0.000663083,0.000550856,0.000539817,0.000589484,0.000755498,0.000704677,0.000675509,0.000620146,0.000643995,0.000672336,0.000835555,0.000775352,0.000735531,0.000644896,0.0006392,0.000636605,0.000778798,0.000745937,0.000680587,0.00059629,0.000593106,0.000610763,0.000841916,0.000831949,0.000796521,0.000686749,0.000688401,0.000713919,0.000858342,0.000881769,0.000709039,0.000623839,0.000573989,0.000606768,0.000626752,0.000766789,0.000821488,0.000798823,0.000760907,0.000754637,0.000784609,0.000759439,0.000693007,0.000645484,0.000641775,0.00065969,0.000752455,0.000886502,0.000795697,0.000630493,0.000611166,0.000628991,0.000783702,0.000920736,0.000882445,0.000810414,0.000676238,0.00064141,0.000603305,0.000646676,0.000645283,0.000683293,0.000626713,0.000609773,0.000549191,0.000823347,0.000813387,0.0007519,0.000686288,0.000676779,0.000740436,0.000814121,0.000871502,0.000709706,0.000697971,0.000659213,0.000710223,0.000745453,0.000765547,0.000584875,0.00053449,0.000509384,0.000553245,0.00064559,0.000765143,0.000759592,0.00066625,0.000616151,0.00056627,0.000615986,0.000685857,0.000633838,0.000595357,0.000587646,0.00065221,0.000775862,0.000802078,0.000636542,0.00055186,0.000513295,0.000518789,0.000642785,0.00076049,0.00066596,0.000589321,0.000586214,0.000600792,0.000650767,0.000666965,0.000887703,0.00075579,0.000661991,0.000537926,0.000546869,0.000632481,0.000903106,0.000668418,0.000655827,0.000578915,0.000634663,0.000576135,0.000596111,0.000632463,0.000614978,0.000614169,0.000575433,0.000613102,0.00063772,0.000654053,0.000579185,0.000555086,0.000542893,0.000644782,0.000598456,0.000552593,0.000542544,0.000553992,0.000560164,0.000691632,0.000697361,0.000674923,0.000556036,0.000510922,0.000483426,0.000543117,0.000640715,0.000688842,0.000610926,0.000648426,0,0,0,0,0,0 +PARTICIPATION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.018838079,0.018842143,0.018846209,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000372273,0.000409409,0,0,0,0,0.000346105,0.000344436,0,0,0,0,0.00279217,0.002815246,0.002812114,0,0,0,0.006882659,0.006839563,0.006715524,0,0,0,0.000245876,0.000222138,0.000619346,0.004883721,0.00456621,0,0,0.000262301,0.000393365,0.000377786,0,0,0,0.001486774,0.001869908,0.001872891,0.00307234,0.000978075,0,0.002688033,0.002705093,0.001884809,0,0,0,0.004408394,0.020952878,0.011108571,0.007752844,0.00034859,0.000536141,0.001088929,0.001335424,0.007174888,0.005381758,0.004552133,0.003353523,0.004477108,0.005149222,0.000729838,0,0.000317874,0.000445813,0.000663672,0.006114249,0.005477592,0.004304059,0.001029832,0.000496505,0.00704023,0.007610905,0.006529179,0,0,0,0.001062648,0.010993506,0.01093097,0.008683729,0.00138373,0.000499563,0.000738678,0.000660328,0.000777651,0.000732392,0.000804917,0.000815566,0.001062699,0.00140458,0.001455278,0.000817566,0.000591284,0.000483631,0.001205364,0.001156324,0.001203091,0.000462535,0.000422009,0,0.00061314,0.000792001,0.000875657,0.000497996,0.000375473,0.000333697,0.000294577,0.000298591,0.000309637,0.000271283,0.000292008,0.000282941,0.000354754,0.000402996,0.000398312,0.000423939,0.000386519,0.000383751,0.000330495,0.000282777,0.000347077,0.000416288,0.000441414,0.000436958,0.000405407,0.000366707,0.000381473,0.000437467,0.000419096,0.000411645,0.000403065,0.000450778,0.000389501,0.000417344,0.000388042,0.000475113,0.000474384,0.000522434,0.00029445,0.000363797,0.000345893,0.000428121,0.000376544,0.000383209,0.000293373,0.0005101,0.000493071,0.000406471,0.0003196,0.000306514,0.000385544,0.000479121,0.000465548,0.000405598,0.000384717,0.000373691,0.000392894,0.000422931,0.000376465,0.000368197,0.000388083,0.000405061,0.000429171,0.000379798,0.000379126,0.00041632,0.000380435,0.000388027,0.000273002,0.000461373,0.000452174,0.000375138,0.000290156,0.00028228,0.000359612,0.00046865,0.000436556,0.000369046,0.000348259,0.00034616,0.000354931,0.000362531,0.000362805,0.00034214,0.000303823,0.000288056,0.000291146,0.000388185,0.000481721,0.000417893,0.000369248,0.000316841,0.000327133,0.000427268,0.000472575,0.000454204,0.000391577,0.000346644,0.000329202,0.000421311,0.000420848,0.000406358,0.000366896,0.000386889,0.000409347,0.000526784,0.000562192,0.000479494,0.000431051,0.000414966,0.000416522,0.000545086,0.000620816,0.000576604,0.000610031,0.000597618,0.00065331,0.000686842,0.000741516,0.000698676,0.000646726,0.00061775,0.000636795,0.000700823,0.000739846,0.000696811,0.000634611,0.000641351,0.000646643,0.00076572,0.000836019,0.000747999,0.000684534,0.000676547,0.000747281,0.000850135,0.000882679,0.000738293,0.000683212,0.000662046,0.00067427,0.000752946,0.000783791,0.00076048,0.000781139,0.000793744,0.000811794,0.000812431,0.000932202,0.000904674,0.000777893,0.000763538,0.000748506,0.00077782,0.00084035,0.000854916,0.000826343,0.000819274,0.000808935,0.000848596,0.000917479,0.000944232,0.000904756,0.000864978,0.000856704,0.000867781,0.001024617,0.000888076,0.000794991,0.000749356,0.00073759,0.000737367,0.000841529,0.000880217,0.000833383,0.000780612,0.000806497,0.000867517,0.001078217,0.001020233,0.001016462,0.000959412,0.00099171,0.000743239,0,0,0,0,0 +ENABLE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000308028,0.000368221,0.000466548,0.000437135,0.000542566,0.000513935,0.000528977,0.00038854,0.000419787,0.000486826,0.000478446,0.00041965,0.000400333,0.000393447,0.000453168,0.000548224,0.000498933,0.000416256,0.000436958,0.000475048,0.000510882,0.000432763,0.000442706,0.000451966,0.000453406,0.00041499,0.000406439,0.000361925,0.00039602,0.000377382,0.000444128,0.000413041,0.000449796,0.00035644,0.000392442,0.000384552,0.000388772,0.000380063,0.000399271,0.000397353,0.000396421,0.000387121,0.000432325,0.000448099,0.000469416,0.000377833,0.000335672,0.000336968,0.000364736,0.000391129,0.0004199,0.000389386,0.000358935,0.000376465,0.000381987,0.000412766,0.00038312,0.000410964,0.000366518,0.00038824,0.000388138,0.000399123,0.00039944,0.000499863,0.000441878,0.000461643,0.000392791,0.000426204,0.000409944,0.000453602,0.00039807,0.000393487,0.000364899,0.000386695,0.000398652,0.00045634,0.000444667,0.00039991,0.000421325,0.00043286,0.000455045,0.00043672,0.000391393,0.00045188,0.000425355,0.000494835,0.000484277,0.000560564,0.000502328,0.00052192,0.000466122,0.000551811,0.00054113,0.000591316,0.000487399,0.000469915,0.000469938,0.000594312,0.000666859,0.000713949,0.000631685,0.000555922,0.000498565,0.000533011,0.000569628,0.000619443,0.000648501,0.000533217,0.000509255,0.000605755,0.000636174,0.000701418,0.00070128,0.000590669,0.000492305,0.000560496,0.000635331,0.000749841,0.000734019,0.000637867,0.000562651,0.000663234,0.000672485,0.000748696,0.000769101,0.000748487,0.000590721,0.000614534,0.000644656,0.000716378,0.000703395,0.000616416,0.000577415,0.000662236,0.000749747,0.000781606,0.000835283,0.000779542,0.000730461,0.000691947,0.000746597,0.000767281,0.000795637,0.000778801,0.000732206,0.00078329,0.000851706,0.000872456,0.000940747,0.001007319,0.000880674,0.000767991,0.000817184,0.000839404,0.000897855,0.000841385,0.000819303,0.000795579,0.00090998,0.000940302,0.000967877,0.000837044,0.000793366,0.000874861,0.000990009,0.001033137,0.001079176,0.001041393,0.001005706,0.000877987,0.000990777,0.001076737,0.001159633,0.001204476,0.000910842,0.000770047,0.000826041,0.00083914,0.001372134,0,0,0,0,0 +EFFORT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000660001,0.000719289,0.000572695,0.000506073,0.000539049,0.000559696,0.00067183,0.000673916,0.000684666,0.00070082,0.001119463,0.001283871,0.001208987,0.000560588,0.000660134,0.000665365,0.0007296,0.000723942,0.000746821,0.000627105,0.000642797,0.000569493,0.000609609,0.000584483,0.000698937,0.000609074,0.000610358,0.000519761,0.00059062,0.000565245,0.000679862,0.000603209,0.000621447,0.00059912,0.000624877,0.000615473,0.000625803,0.000546283,0.000584366,0.000620573,0.000676809,0.000679186,0.000692988,0.000694439,0.000693736,0.000656069,0.000653514,0.000662264,0.000677331,0.000636147,0.000579536,0.000609647,0.000614451,0.000618753,0.000642909,0.000617405,0.000715087,0.000707358,0.000661927,0.000648633,0.000622781,0.000754301,0.000711789,0.000741848,0.000698136,0.000728833,0.000677146,0.000699809,0.000705056,0.000750466,0.000707613,0.00071636,0.000709245,0.000713095,0.000575931,0.000587294,0.000527998,0.000566066,0.00057315,0.000630764,0.000600442,0.000556576,0.000521427,0.000592397,0.000603943,0.000697954,0.000510094,0.000554193,0.000522366,0.000621495,0.000623378,0.000701938,0.000635128,0.000616814,0.000617082,0.000714889,0.000728753,0.000759818,0.000702185,0.000677508,0.000615066,0.000590269,0.000623872,0.000626059,0.000668172,0.000570552,0.000553053,0.000600156,0.000652452,0.000720904,0.000736836,0.000651286,0.000578967,0.000679159,0.000697715,0.000753375,0.000676529,0.000637922,0.00057187,0.000591408,0.00062654,0.000686577,0.00080779,0.000773839,0.000659848,0.000643607,0.000686495,0.000774673,0.000892495,0.00079136,0.000689794,0.000638139,0.000670473,0.000692031,0.00073689,0.000672951,0.000619817,0.000606301,0.000633691,0.000644015,0.000690448,0.000647849,0.000594661,0.000614021,0.000663283,0.000697871,0.000728459,0.000674961,0.0006397,0.000593635,0.000646271,0.000647616,0.000685791,0.000633015,0.000605923,0.000612698,0.000642148,0.000650016,0.000649322,0.00064354,0.000639173,0.000653042,0.000703671,0.000718936,0.000754113,0.000780772,0.000672577,0.000630606,0.000680598,0.000709442,0.000732328,0.00059433,0.00057725,0.000564588,0.000558438,0.000582705,0.000600419,0.000667372,0.000616158,0.000596437,0.000615228,0.000572141,0,0,0,0,0,0 +TERM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003090235,0.003095336,0.003094059,0,0,0,0.002987698,0.002990325,0.002991904,0,0,0,0.002516537,0.00251708,0.002517623,0,0,0,0.001723733,0.001724138,0.001722518,0,0,0,0.001665873,0.001665081,0.001664421,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000193087,0.000190807,0.000176688,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000660847,0.000818452,0.000904023,0.000605694,0.000509,0.000561649,0.000811557,0.000950329,0.000981023,0.000957001,0.000781836,0.000522895,0.000473423,0.000474876,0.000559696,0.000634506,0.000637488,0.000607157,0.000443853,0.000381355,0.000287182,0.000319038,0.000472074,0.000296757,0.00048591,0.000504561,0.000582301,0.000594556,0.000536392,0.000526482,0.000564919,0.000722579,0.000815788,0.000896394,0.000705243,0.000652271,0.000638916,0.000713915,0.000751275,0.000738981,0.000554952,0.000542243,0.000603384,0.000686849,0.000748382,0.000857686,0.000805864,0.000696084,0.000590053,0.000668939,0.000731973,0.000764122,0.000675871,0.000673332,0.000674406,0.000713838,0.000708391,0.000737348,0.000767232,0.000636915,0.0006429,0.000541807,0.000549825,0.000532409,0.000578817,0.000514751,0.000566679,0.000653652,0.00068703,0.000685227,0.000598239,0.00060024,0.000532235,0.000544418,0.000583333,0.000648615,0.00075364,0.000659568,0.000565809,0.000589923,0.000604391,0.000668109,0.00067836,0.00067192,0.000622532,0.000644102,0.000649928,0.000656853,0.000622651,0.000552294,0.000597804,0.000582684,0.000626416,0.00064569,0.000687983,0.000686542,0.000601086,0.000580573,0.000603248,0.000633682,0.000621388,0.000591824,0.000559877,0.000618406,0.000644728,0.000688712,0.000692729,0.000721461,0.000679395,0.000635798,0.000602397,0.000604031,0.000611612,0.000647648,0.000683408,0.000608903,0.000646576,0.000624562,0.000680319,0.000687282,0.000664616,0.000557699,0.000570835,0.000576115,0.000635991,0.000631152,0.000605208,0.000556951,0.000629642,0.000646519,0.000719765,0.000722954,0.000743845,0.000633838,0.000592903,0.000620336,0.000650354,0.000708249,0.000664528,0.000611774,0.000593371,0.000610487,0.000648018,0.000792715,0.000718544,0.000643512,0.000542375,0.000565113,0.000561892,0.000652751,0.000694579,0.000650411,0.00060651,0.000672971,0.000695608,0.000735807,0.000698561,0.000628725,0.000596719,0.000609354,0.00060726,0.000612849,0.000609162,0.000656212,0.000672933,0.000733584,0.000744411,0.00077023,0.000773987,0.000784439,0.000731892,0.000641136,0.000613938,0.000602272,0.000750291,0.000665714,0.000638036,0.000627418,0.000652508,0.000703774,0.000865197,0.000873046,0.000726569,0.000753591,0.000716015,0.000752731,0.000745533,0.000767965,0.000733645,0.000550694,0.000521284,0,0,0,0,0,0 +COMPUTING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002266172,0.002269913,0.002268977,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001410327,0.001410658,0.001409333,0,0,0,0.001586546,0.001585791,0.001585163,0,0,0,0,0.00259029,0.00259029,0.002591249,0,0,0,0.001258653,0.001259518,0.00125743,0,0,0,0.000715069,0.000715137,0.000714933,0,0,0,0.000799173,0.000799097,0.000798872,0,0,0,0.000549321,0.000549063,0.000549688,0,0,0,0.001131593,0.001131717,0.001130685,0,0,0,0.00137741,0.001377103,0.001377052,0,0,0,0.001142145,0.001136638,0.00113566,0,0,0,0.00068253,0.000649672,0.000648949,0,0,0,0.001874545,0.001814578,0.001811241,0,0,0,0.000536457,0.000599773,0.000641465,0,0,0,0,0.00041531,0.000393365,0.000356798,0,0,0,0.000251014,0.000248049,0.000265032,0,0,0,0,0.00052021,0.000362463,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000332204,0.000534698,0.000766284,0.000886201,0.000945605,0.000673998,0.000621826,0.000618381,0.000627928,0.000562458,0,0.000380865,0.000509795,0.000582823,0,0,0,0,0,0,0,0,0,0.000545044,0.000799972,0.000818452,0.000652905,0,0.000462727,0.000495573,0.000422009,0.000411809,0.000551826,0.000594001,0.000562922,0.000423296,0.000489748,0.000539049,0.000589154,0.00057852,0.000473562,0.000413383,0.000385451,0.000356752,0.000320968,0.000235081,0.000250789,0.00040577,0.000408606,0.000447709,0.00039607,0.000311779,0.000216923,0.000336703,0.00043684,0.000415643,0.000358151,0.000231934,0.000246835,0.000343163,0.000497163,0.000542894,0.000531855,0.000395355,0.000282647,0.000307677,0.00038591,0.000438963,0.000443713,0.000396715,0.000344817,0.000378119,0.000516805,0.000527282,0.000534903,0.000410745,0.000323081,0.000422654,0.000560307,0.000563027,0.000571655,0.000512285,0.000462652,0.000450431,0.000547573,0.00053878,0.00055784,0.000482181,0.000477086,0.000386759,0.000433925,0.000492308,0.000569097,0.000612654,0.000530612,0.000419637,0.000484844,0.000591815,0.000622044,0.000618181,0.000553695,0.000448377,0.000435602,0.00048253,0.000528541,0.000540445,0.000482207,0.000344429,0.000360207,0.000483768,0.00050084,0.000534846,0.00043403,0.000368196,0.000373112,0.000427301,0.000470398,0.000471743,0.000440708,0.000307982,0.000334647,0.000346254,0.000529183,0.000565419,0.000613168,0.000438816,0.000400455,0.000360185,0.000505353,0.000542275,0.00062096,0.000297396,0.000303841,0.000337249,0.000532657,0.000630485,0.000653751,0.000510821,0.0003323,0.000386865,0.000614248,0.000704006,0.000766828,0.000536468,0.000350399,0.000399369,0.000566559,0.000616896,0.000640802,0.000497084,0.000339862,0.000305826,0.000411627,0.000594574,0.000720802,0.000818856,0.000435909,0.000499678,0.000654238,0.000727747,0.000757974,0.000836714,0.000727051,0.000642734,0.00060965,0.000644656,0.000713569,0.00071775,0.000687541,0.00060984,0.000704188,0.000879651,0.000946572,0.000970199,0.00077317,0.000739038,0.000723868,0.00085187,0.000918172,0.000917397,0.000644281,0.000515836,0.000552004,0.000820435,0.000859004,0.001055272,0.000959614,0.00087822,0.000737873,0.000776429,0.000787427,0.000859791,0.000723982,0.000621741,0.000637878,0.000802443,0.000835303,0.000830457,0.000640092,0.000772777,0.000831211,0.0009841,0.001008188,0.00106238,0.000652185,0.000674056,0.00055285,0.000768603,0.000892757,0.001011735,0.001090242,0.000607228,0.000523632,0.000516276,0.000470427,0.000686067,0,0,0,0,0 +BROAD,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000179574,0.000166848,0.000162017,0,0,0.000155019,0.000151844,0.000147621,0,0,0.000236037,0.000351264,0.00041965,0.000402701,0.000406562,0.00042054,0.000453567,0.000413227,0.000345355,0.000351698,0.000338254,0.000363573,0.000326977,0.000332685,0.00033692,0.000334088,0.000336285,0.000325152,0.000368819,0.000392974,0.00041576,0.000399371,0.000400773,0.000368777,0.00038356,0.000369526,0.000333685,0.000292759,0.000283288,0.000323547,0.000389926,0.000352698,0.000334147,0.000327475,0.000332779,0.000323661,0.000420243,0.0004533,0.00042121,0.000348088,0.000323804,0.0003094,0.00036483,0.000347805,0.000394298,0.000346132,0.000393568,0.000364555,0.000457783,0.000406357,0.000426517,0.00044322,0.000467201,0.000494545,0.000446032,0.000441878,0.000407193,0.000428099,0.000403329,0.000402851,0.000363699,0.000381131,0.000375868,0.000377339,0.000347094,0.000344741,0.000371157,0.000433338,0.00042877,0.000391444,0.000416437,0.000414689,0.000474608,0.000484429,0.000496642,0.000498487,0.000469073,0.000466246,0.000424122,0.000430155,0.000417536,0.000419775,0.000455102,0.000471344,0.000507065,0.000454355,0.000403863,0.000393918,0.000425519,0.000470659,0.000481584,0.000494858,0.000455606,0.000448164,0.000499024,0.000510468,0.000525459,0.000545086,0.000592251,0.000724299,0.000826678,0.000843783,0.000881343,0.000895163,0.000890546,0.00078197,0.000770377,0.000784774,0.000819329,0.000853897,0.000887815,0.000855612,0.000861959,0.000828931,0.000816422,0.000779243,0.000735982,0.000802489,0.000787906,0.000810946,0.000808149,0.000808665,0.00082432,0.000738293,0.000751134,0.000745791,0.000767199,0.000818419,0.000847513,0.000819089,0.000814,0.000858974,0.00085857,0.000835524,0.000785882,0.000805897,0.000847279,0.000821303,0.000823933,0.000820086,0.000908239,0.000905205,0.000910107,0.000860029,0.000866289,0.000853821,0.000852255,0.000864336,0.000817819,0.00082582,0.00080989,0.00079483,0.000729189,0.000750816,0.000807064,0.000857865,0.000862334,0.000872579,0.000823121,0.000930413,0.000872118,0.000896503,0.000858977,0.000873404,0.000823694,0.000859496,0.000887654,0.000808832,0.000775568,0.000686067,0,0,0,0,0 +METHOD,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000572055,0.00057211,0.000571946,0,0,0,0.000470102,0.000470057,0.000469925,0,0,0,0,0,0,0,0,0,0.000474539,0.000474591,0.000474158,0,0,0,0.000446728,0.000446628,0.000446611,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000279783,0.000307082,0.000334383,0,0,0,0.000223524,0.000222138,0.000221195,0,0,0,0,0.000327876,0.000371512,0.000356798,0,0,0,0.000424792,0.000438856,0.00044172,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000349661,0,0.000510517,0.000698771,0.000543232,0.000391278,0.000431865,0.00042012,0.000478927,0.000521295,0.000450288,0.000390209,0.000414551,0.000463786,0.000483022,0,0,0,0,0,0,0,0,0,0.000439046,0.000621383,0.000615247,0.000610687,0,0.000583976,0.00048694,0.000372024,0,0.000605694,0.000509,0.000396458,0.000357085,0.000380132,0.000459855,0.000792001,0.000875657,0.000846592,0.000979496,0.001193608,0.001178307,0.001306336,0.000947125,0.001059295,0.000922746,0.000934936,0.00094601,0.001276153,0.001253946,0.000999285,0.000850342,0.000878837,0.000870829,0.001040473,0.000915021,0.000774418,0.000660978,0.000748157,0.000775994,0.000808635,0.000718066,0.000712521,0.000704656,0.000701983,0.00072981,0.000724201,0.000747979,0.000764624,0.000793141,0.000815956,0.000830172,0.000877242,0.000736126,0.000676032,0.000712133,0.000815319,0.000842825,0.000858204,0.000772424,0.000749118,0.000654032,0.000762672,0.000784173,0.000958123,0.000921449,0.000760282,0.000636249,0.000603857,0.000666843,0.000697154,0.000792804,0.000715087,0.000717265,0.000710192,0.000704857,0.00066835,0.000686674,0.000706477,0.000865793,0.000789086,0.000823608,0.00071709,0.000861303,0.000809027,0.000781243,0.00079441,0.000750071,0.000760311,0.000717181,0.000686036,0.000677346,0.000698007,0.00077805,0.00077886,0.000738257,0.000560791,0.000634909,0.000724619,0.00076601,0.000770932,0.000731854,0.000696167,0.000699135,0.000688031,0.00069878,0.000689064,0.000710157,0.000672658,0.000664261,0.000681968,0.000747126,0.000788243,0.000781661,0.000655373,0.000635989,0.00070076,0.000712567,0.000693313,0.000685054,0.000665891,0.00064161,0.000694722,0.000731958,0.000736966,0.000702747,0.000512769,0.000544643,0.000614414,0.000670607,0.000653227,0.000619634,0.000499146,0.000505249,0.000522142,0.000577579,0.000595373,0.000591161,0.000523773,0.000497896,0.000609196,0.000596175,0.000579863,0.000531602,0.000505409,0.000505541,0.000591959,0.000629999,0.000634785,0.000619924,0.000575795,0.000534349,0.000559955,0.00058133,0.000555222,0.000555409,0.000485099,0.000514031,0.000563213,0.000642187,0.00062324,0.000608091,0.000538472,0.000446041,0.000525244,0.000615993,0.000581992,0.000575071,0.000526273,0.00052476,0.000534782,0.000550581,0.000579448,0.000590869,0.000576926,0.000554401,0.000530223,0.000524657,0.000545871,0.000543716,0.000564948,0.000569752,0.000507864,0.000542377,0.000588204,0.000623081,0.000595437,0.000402356,0.000451761,0.000535243,0.000562041,0.000541083,0.000534196,0.000472972,0.00050007,0.000425626,0.000447439,0.000495855,0.000686067,0,0,0,0,0 +PROTEINS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003827019,0.003832886,0.003840246,0,0,0,0,0,0,0,0,0,0.002060157,0.002063558,0.002062706,0,0,0,0,0,0,0,0,0,0.000934714,0.000934915,0.000935117,0,0,0,0.000861866,0.000862069,0.000861259,0,0,0,0.001665873,0.001665081,0.001664421,0,0,0,0,0.000962108,0.000962108,0.000962464,0,0,0,0.001087019,0.001087766,0.001085963,0,0,0,0.000858083,0.000858164,0.000857919,0,0,0,0.001222264,0.001222149,0.001221805,0,0,0,0.000980931,0.000980469,0.000981585,0,0,0,0.001131593,0.001131717,0.001130685,0,0,0,0.000819001,0.000818818,0.000818787,0,0,0,0.001245977,0.001274412,0.001273315,0,0,0,0.00068253,0.000680609,0.000679852,0,0,0,0.001119132,0.001116663,0.001142475,0,0,0,0.000782333,0.000777484,0.000774182,0,0,0,0,0.000983628,0.000917852,0.000923477,0,0,0,0.000656497,0.000629663,0.000600739,0,0,0,0.001137245,0.000988399,0.000978651,0.000603666,0.000898758,0,0.000881679,0,0.000777143,0.000740221,0.000836616,0.000682361,0.000622245,0,0,0,0.000547408,0.000787051,0.000886974,0,0.000405466,0,0.000476811,0.000567399,0.000816827,0.000989926,0.00072431,0.000640273,0.000631187,0.000687469,0.000766284,0.000521295,0.000720461,0.000638524,0.000725464,0.000425137,0,0.000562458,0.000688927,0.000761731,0.000582623,0.000541193,0.000625036,0.000660328,0.000717832,0.000610327,0.000914679,0.001048584,0.001174562,0.000854962,0.000671667,0.000622907,0.000626065,0.00063244,0.000602682,0,0,0.000396458,0.000551858,0.000443487,0.000490512,0.000396,0.000594196,0.000672294,0.000506073,0.000449207,0.000368221,0.000410563,0.000346065,0.000297119,0.00033873,0.000356752,0.000422326,0.00033583,0.00019178,0.000351264,0.00051904,0.000691699,0.000763287,0.000946214,0.000800644,0.000719321,0.000745601,0.000927203,0.001027197,0.001096986,0.00088476,0.000819923,0.000821757,0.000896868,0.000996931,0.001045658,0.000941006,0.000819457,0.000750499,0.000769477,0.000828128,0.000821367,0.000705131,0.000638793,0.000569707,0.000672087,0.00066511,0.000828373,0.000776138,0.000819075,0.000627544,0.000841669,0.000841833,0.000988132,0.000747955,0.000897993,0.000968784,0.00101551,0.000905688,0.000896054,0.000884012,0.000962724,0.000883702,0.000985995,0.000906441,0.001009276,0.000910363,0.001006597,0.000761898,0.000954333,0.000938406,0.001105117,0.000715189,0.000997475,0.000859367,0.000854726,0.000766927,0.000822724,0.000852036,0.001126454,0.000978824,0.000899808,0.000781544,0.00081149,0.000851835,0.001030948,0.000896706,0.000805299,0.000794164,0.000878083,0.000961182,0.001196637,0.000950653,0.000888023,0.000781431,0.000820438,0.000762761,0.001024865,0.000850255,0.000876627,0.000700667,0.000723033,0.000605358,0.000812332,0.000832259,0.000809952,0.000783319,0.00079472,0.000792206,0.000820962,0.000796265,0.00074921,0.000703774,0.000666819,0.000642939,0.000586021,0.000664616,0.000640408,0.000623572,0.000591686,0.000571526,0.000517709,0.00061793,0.000647705,0.000606051,0.000529842,0.000504043,0.000442625,0.000565882,0.000543485,0.000511941,0.000442875,0.000430477,0.000415822,0.000518046,0.000530039,0.000532325,0.000492794,0.000482268,0.00035728,0.000516112,0.000487622,0.000508414,0.000447079,0.00044303,0.000445418,0.000658469,0.000583225,0.000614021,0.000466946,0.000470026,0.000367378,0.000538081,0.000592663,0.000665334,0.000515975,0.000509253,0.000418564,0.00063485,0.000500438,0.000466818,0.000378287,0.000381765,0.000417208,0.000584839,0.000601403,0.0004822,0.000401513,0.000403273,0.000398687,0.000628369,0.000678068,0.000640822,0.000481307,0.00040238,0.000379601,0.000499658,0.000476859,0.00050942,0.000408921,0.000389073,0.000350244,0.000318655,0.00036389,0.000288418,0.000305463,0.00024157,0,0,0,0,0,0 +IDENTIFY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000212224,0.000320862,0.000412408,0.000503872,0.000546418,0.000620075,0.000595697,0.000504373,0.000405433,0.000285455,0.000324551,0.000320983,0.00045278,0.00050693,0.000571809,0.000667063,0.000567944,0.000514238,0.000512315,0.00053927,0.000564585,0.000557896,0.000564195,0.000510815,0.000532088,0.000582666,0.000646335,0.000657693,0.000599762,0.000590984,0.000535157,0.000576677,0.000580712,0.000653741,0.000639267,0.000555721,0.00051884,0.000546169,0.000584171,0.000665452,0.000631308,0.000603375,0.000531783,0.000581699,0.00062602,0.000668757,0.000678557,0.000605356,0.000527621,0.000552401,0.000543413,0.000665008,0.000684057,0.00066222,0.000584511,0.000621935,0.000615721,0.000644721,0.000595638,0.000576337,0.000508539,0.000600781,0.000644737,0.000736111,0.000688274,0.000614081,0.000568176,0.000519309,0.000569476,0.000587255,0.000621148,0.000575931,0.000571633,0.000594343,0.000619644,0.000619967,0.000646989,0.000580616,0.000606049,0.000600612,0.000647531,0.000669347,0.000737837,0.000795619,0.000690609,0.00060296,0.000625789,0.000646561,0.000711801,0.000687093,0.000671853,0.000689914,0.000722474,0.000741337,0.000723933,0.000691171,0.000641651,0.000597097,0.000651923,0.000676779,0.000751271,0.000729744,0.000718937,0.000623887,0.000673103,0.000676116,0.000718768,0.000706673,0.000645573,0.000612051,0.000626422,0.000628018,0.000659083,0.000678591,0.000746969,0.000641489,0.000621508,0.000612955,0.000655463,0.000687913,0.000643866,0.000624255,0.000599446,0.000621115,0.000631799,0.000718391,0.00069311,0.000611774,0.000614534,0.000632507,0.000675175,0.000649165,0.000629182,0.000589886,0.000603304,0.000636329,0.000657702,0.000662671,0.0006436,0.000623251,0.000641248,0.000648428,0.000651849,0.000632941,0.000575841,0.000627157,0.000639892,0.000656261,0.000657705,0.000685791,0.000693564,0.000635361,0.000635286,0.000667227,0.000689447,0.000705298,0.000808773,0.000742312,0.000674271,0.000639382,0.000644033,0.000698975,0.000754981,0.000694539,0.000607388,0.000658036,0.000667861,0.00072141,0.000823121,0.000797753,0.000707789,0.000668324,0.000649058,0.000674,0.000635306,0.000696527,0.000691642,0.000739995,0.000724711,0,0,0,0,0,0 +GENETIC,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002266172,0.002269913,0.002268977,0,0,0,0,0,0,0,0,0,0.001294219,0.001294498,0.001294778,0,0,0,0.001410327,0.001410658,0.001409333,0,0,0,0.001665873,0.001665081,0.001664421,0,0,0,0,0.00214624,0.00214624,0.002147035,0,0,0,0.001315865,0.001316769,0.001314586,0,0,0,0.001477809,0.00147795,0.001477527,0,0,0,0.001175254,0.001175143,0.001174812,0,0,0,0.001883387,0.001882501,0.001884644,0,0,0,0.001788648,0.001788843,0.001787212,0,0,0,0.001489092,0.00148876,0.001488704,0,0,0,0.001695913,0.001687735,0.001686283,0,0,0,0.001147892,0.00114466,0.001174289,0,0,0,0.001287001,0.001423746,0.001421127,0,0,0,0.00122938,0.001199547,0.001194452,0,0,0,0,0.001333362,0.001376778,0.00134324,0,0.001751313,0.002180549,0.001351612,0.001259326,0.00130749,0.001396518,0.001548618,0.001423721,0.000930473,0.000780315,0.000724927,0.000823181,0.001004494,0.001174876,0.001410686,0.001130238,0.001051429,0.000740221,0.000732039,0.000731101,0.000725953,0.000696743,0.000538117,0.000624978,0.000777896,0.000855491,0.000886974,0.00068306,0.000567652,0.000609057,0.000699323,0.000770041,0.000561568,0.000698771,0.000769579,0.001102693,0.001063052,0.001145782,0.000909962,0.000573424,0.000630403,0.000709471,0.000932739,0.001082167,0.001062648,0.000869254,0.000642998,0.000723644,0.000983177,0.001165647,0.001477357,0.001452721,0.001016929,0.001098588,0.000987853,0.001087421,0.000894905,0.001038168,0.0010075,0.00112902,0.001043442,0.001264881,0.00115514,0.001321513,0.000925455,0.000958108,0.000973868,0.00107704,0.000919709,0.000660001,0.000500375,0.000647394,0.000620347,0.000539049,0.000515509,0.000410563,0.000364279,0.000297119,0.00035041,0.000455166,0.000540577,0.000503745,0.000442569,0.000369433,0.000505236,0.000580364,0.000640007,0.000790325,0.000757259,0.000756052,0.00072273,0.000716184,0.000751122,0.000908931,0.000990547,0.00084088,0.000735472,0.000717892,0.000884835,0.000960675,0.000882409,0.000679327,0.00066948,0.000888255,0.001038738,0.001095156,0.000786492,0.000664574,0.000667371,0.00064533,0.000793557,0.000819194,0.000883832,0.000632524,0.000615319,0.000731074,0.00074134,0.000812369,0.000898317,0.000829137,0.000713841,0.000682556,0.000655622,0.000735327,0.000722645,0.000701174,0.000657823,0.000763974,0.000740511,0.000794931,0.000621648,0.000860521,0.000681698,0.000856978,0.000803585,0.000960558,0.000672893,0.000594586,0.000688914,0.000698786,0.000697097,0.000656761,0.000670187,0.000835665,0.000759568,0.000725651,0.000715153,0.000754743,0.000803159,0.000951645,0.000975039,0.000812769,0.000790645,0.000754233,0.000899363,0.000939985,0.000871788,0.000855188,0.000747083,0.000758615,0.000716733,0.000779475,0.000721198,0.000708453,0.000673171,0.000666975,0.000639682,0.000688417,0.000620892,0.000675881,0.000733793,0.0007848,0.000754883,0.000770792,0.000792085,0.000754658,0.000699629,0.000675271,0,0.000545086,0.000504651,0.000538794,0.000544467,0.000547198,0.000569602,0.000666216,0.000716072,0.00071608,0.00065242,0.000600967,0.000554862,0.000604921,0.000675859,0.000662586,0.000543836,0.000554956,0.000523252,0.000488506,0.000559132,0.000557284,0.00057872,0.000567206,0.000561865,0.00058696,0.00055441,0.000528777,0.000490435,0.000486643,0.00048049,0.000470219,0.000522527,0.000551777,0.000538911,0.000488905,0.00046399,0.000471294,0.000689121,0.000714959,0.000673043,0.00049339,0.000478986,0.000398795,0.000519256,0.000484493,0.000527994,0.000466066,0.000463614,0.000488857,0.00079138,0.000676942,0.000565093,0.000464049,0.000488877,0.000503025,0.000586165,0.000550415,0.00047458,0.000392136,0.0003576,0.00038464,0.000867827,0.000788789,0.000657316,0.000413124,0.000358912,0.000333321,0.000476981,0.000640715,0.000722444,0.000722786,0.00108071,0,0,0,0,0,0 +BASIC,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001253624,0.001253918,0.00125274,0,0,0,0.0008726,0.000872185,0.00087184,0,0,0,0,0.000962108,0.000962108,0.000962464,0,0,0,0.000629327,0.000629759,0.000685871,0,0,0,0.001191781,0.001191895,0.001191554,0,0,0,0.000658142,0.00065808,0.000657895,0,0,0,0.000510084,0.000509844,0.000510424,0,0,0,0.000474539,0.000474591,0.000474158,0,0,0,0,0.00037219,0.000372176,0,0,0,0.000484546,0.00048221,0.000481795,0,0,0,0.000589458,0.000587799,0.000587145,0,0,0,0.000307761,0.000307082,0.000306518,0,0,0,0.000581161,0.00057756,0.000552987,0,0,0,0,0.00041531,0.000415219,0.000419762,0,0,0,0.000444101,0.000438856,0.000530063,0.001303417,0.001385606,0.001314204,0.000620315,0.000624252,0.000434956,0,0,0,0,0,0,0,0.00034859,0,0,0,0,0,0,0,0.000422369,0.000577974,0,0.000429923,0.000413236,0.00052687,0,0,0,0.000355707,0.000365424,0.000572891,0.000766284,0.001146849,0.001035663,0.000780419,0.000414551,0,0,0.000511326,0.000642998,0.000609385,0.000764693,0.000790975,0.0007955,0.000858426,0.000777651,0.000447573,0.000439046,0.000388365,0.000615247,0.000610687,0,0.000428249,0,0.001041667,0.001255587,0.00126645,0,0,0,0,0.00061314,0.000594001,0.000750563,0.000497996,0.000636672,0.000616056,0.000662798,0.000634506,0.000673916,0.000813848,0.000899386,0.00103335,0.00094601,0.000923532,0.000722863,0.000950835,0.000966298,0.000985434,0.000949518,0.000942589,0.000871637,0.000850941,0.000898838,0.000897362,0.000930198,0.000843112,0.000878349,0.000877554,0.000918313,0.000845164,0.000827595,0.000690947,0.000741085,0.000755485,0.000837916,0.000914077,0.000909918,0.000880036,0.000790367,0.00084504,0.000848456,0.000821615,0.000788279,0.000759533,0.00075757,0.000839479,0.000888342,0.000883321,0.000876429,0.000859525,0.000848196,0.000852089,0.000815818,0.000770334,0.000742183,0.000755418,0.000705105,0.000715087,0.000741042,0.000777764,0.000766566,0.000715607,0.000619047,0.000640079,0.000694457,0.000736566,0.000710145,0.000701873,0.000619062,0.000822024,0.000880673,0.000897389,0.000784986,0.000753218,0.00067223,0.000643688,0.000730203,0.000821023,0.000865406,0.000834189,0.00070175,0.000747721,0.000855478,0.000902412,0.000798856,0.000773715,0.00070593,0.000699375,0.00079079,0.000882053,0.000845835,0.000801118,0.000675636,0.000545632,0.000586448,0.000737585,0.000763244,0.000796251,0.000720813,0.000732476,0.000694493,0.000742225,0.000735814,0.000719767,0.000648935,0.00055871,0.00062907,0.000720603,0.000621708,0.000604279,0.000546819,0.000581712,0.000611295,0.000660495,0.000632123,0.000625052,0.000586921,0.000583712,0.000597938,0.000652677,0.000630456,0.000614553,0.000563159,0.000520084,0.000505895,0.000570865,0.000588814,0.000566631,0.000539952,0.000480054,0.00057521,0.000585767,0.000564883,0.00055202,0.00051317,0.00049764,0.000506993,0.000612334,0.000597311,0.000514998,0.000492736,0.000428554,0.000435439,0.00051747,0.000593365,0.000570281,0.000545471,0.000491237,0.000427161,0.000522108,0.000559713,0.000550286,0.000535676,0.000499686,0.000491733,0.000528649,0.000572228,0.000520406,0.000512604,0.000470945,0.000467436,0.000445968,0.00043772,0.000457036,0.000465469,0.000476728,0.000400937,0.000487275,0.000485725,0.00045982,0.000422211,0.000407316,0.000386578,0.000392602,0.000420213,0.000462963,0.000463268,0.000462823,0.000368758,0.000415237,0.000450828,0.000511973,0.000483141,0,0,0,0,0,0 +COMPONENTS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00036503,0.00036507,0.000364737,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000212396,0.000209888,0.000194357,0,0,0,0,0,0,0,0,0,0,0,0,0.00038959,0,0,0,0,0,0,0,0,0,0,0,0,0.000476811,0.000486342,0.00061262,0,0,0,0.000398645,0,0,0,0.000450288,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000402459,0.000427201,0.000671178,0,0,0,0,0,0,0,0,0,0,0.000316776,0.000429198,0.000363,0.000344008,0,0.000391798,0.000449207,0.000544967,0.000709154,0.000728558,0.000788012,0.000595697,0.000516675,0.000439219,0.000503745,0.000634349,0.000587459,0.00054941,0.000532987,0.000542957,0.000565553,0.000579776,0.000560152,0.000574067,0.000586163,0.000564585,0.000636252,0.000653953,0.000670608,0.000585502,0.000584655,0.0005724,0.000698337,0.00065836,0.000642771,0.000573535,0.000581842,0.000599115,0,0.000608273,0.00065598,0.000551395,0.000607554,0.000573613,0.000608085,0.000557037,0.000603375,0.000535858,0.000594626,0.000598014,0.000743778,0.000705545,0.00065126,0.000611864,0.000612938,0.000586694,0.00055049,0.000515674,0.000520316,0.000578567,0.000616419,0.000662346,0.000691978,0.000772508,0.000725069,0.000679875,0.000685326,0.000722159,0.000732307,0.000661358,0.000643323,0.000646301,0.000644355,0.000656162,0.000651087,0.000711052,0.000702975,0.000702796,0.000613694,0.000683705,0.000690902,0.000809244,0.000702404,0.000702935,0.000705196,0.000748414,0.000752841,0.000755784,0.00068975,0.000630927,0.000640272,0.000721321,0.000777934,0.000831805,0.000799684,0.00076485,0.000736261,0.000785051,0.000781379,0.000808184,0.000625083,0.000671846,0.000634416,0.000725707,0.000734096,0.000792206,0.000725183,0.000652059,0.000608903,0.000676418,0.000710767,0.000761488,0.000749762,0.000674138,0.000606143,0.000672745,0.000682144,0.000716813,0.00066209,0.00061793,0.000550735,0.000597103,0.000632934,0.00067102,0.000662093,0.000583879,0.00059003,0.000660781,0.000684938,0.000725502,0.000676133,0.000619869,0.000578337,0.000603139,0.000617321,0.000677984,0.00068585,0.000669304,0.000546237,0.000608299,0.000653474,0.00067283,0.000658703,0.000554388,0.000554636,0.000557688,0.000582552,0.000589984,0.000579408,0.000519201,0.00049075,0.00057359,0.000561144,0.000580836,0.000571265,0.000588979,0.000534782,0.000510111,0.000591466,0.000605208,0.000641858,0.000571794,0.000517149,0.000487254,0.000579185,0.000609257,0.000637051,0.000572097,0.000576495,0.000582312,0.0005737,0.000567426,0.000565203,0.000549624,0.000532433,0.000494161,0.000575851,0.000625533,0.000668113,0.000691422,0.000529092,0.000540433,0.000567903,0.000737426,0.000857584,0,0,0,0,0 +GENERATION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000357638,0.000333207,0.000309673,0,0,0,0,0.000262301,0.00024039,0.000272846,0,0,0,0.000386175,0.000343452,0.000353376,0,0,0,0,0.000572231,0.00039871,0,0,0,0,0,0,0,0.000383449,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000355707,0,0,0,0,0,0,0.000345459,0.000425137,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000389317,0.000382595,0.000372024,0,0,0,0.000396458,0.000422009,0.000475165,0.000429198,0.000363,0.000344008,0,0.000375473,0.0003722,0.000456594,0.000429225,0.000273209,0.00036171,0.00036209,0.000504373,0.000473005,0.000604493,0.000486826,0.000411827,0.000317498,0.000343481,0.000367217,0.000391537,0.000362853,0.000330582,0.000359078,0.000358092,0.000348202,0.000335364,0.000333388,0.000316967,0.000314322,0.000314202,0.000336285,0.000321457,0.000317116,0.000298538,0.000296362,0.000332235,0.00034352,0.000382746,0.000410681,0.000389578,0.000378448,0.000363588,0.00039062,0.000454343,0.000460484,0.000431399,0.000342297,0.000396417,0.000405266,0.000475847,0.000443375,0.000398789,0.000363571,0.000376843,0.00037029,0.000351591,0.000357814,0.000514751,0.000455721,0.000457833,0.000396311,0.000448942,0.00047599,0.000462132,0.000406467,0.000386857,0.000404462,0.000450797,0.000511399,0.000597835,0.000490052,0.00044281,0.000411756,0.000426965,0.000482207,0.00039807,0.000362165,0.000351077,0.000423967,0.000462493,0.000527327,0.000467325,0.000434954,0.000385468,0.000456322,0.00046896,0.000530445,0.000391393,0.000475327,0.000416401,0.000525963,0.000525492,0.000644402,0.000606258,0.000533307,0.000409181,0.000552759,0.000569731,0.000708331,0.000512182,0.000528419,0.000492053,0.000556914,0.000583088,0.000610408,0.000567832,0.000499494,0.000499927,0.00055705,0.000575544,0.000620511,0.00061403,0.000563686,0.000584875,0.000636399,0.000681403,0.000673515,0.000657965,0.000592486,0.000539547,0.00056619,0.000616151,0.000683465,0.000702667,0.000597876,0.000539378,0.00061662,0.000633568,0.000696742,0.000691346,0.000668101,0.000601867,0.000621046,0.000631748,0.000646145,0.00070499,0.00071672,0.000707115,0.000700193,0.000708864,0.000716052,0,0.000754053,0.000784781,0.000715418,0,0.000741629,0.000772544,0.000738681,0.000738477,0.000779435,0.000801759,0.000813844,0.000843263,0.000895395,0.000854916,0.000824461,0.000780609,0.000773686,0.000808293,0.000945743,0.000925348,0.000929018,0.00092576,0.000945652,0.000932249,0.000893316,0.000912783,0.000976093,0.00093468,0.000934621,0.000898614,0.000923053,0.000939376,0.000940197,0.000988975,0.000995907,0.001009528,0.001004064,0.000942097,0.000943658,0.000989528,0.001118853,0.001200617,0,0,0,0,0 +COST,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000306018,0.000305951,0.000356798,0,0,0,0.000270322,0.000248049,0.000247363,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000345459,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000273898,0.000342824,0.000577552,0.000603883,0.000746478,0.000273209,0.000284201,0.000233607,0.000430563,0.000574363,0.000822783,0.000649102,0.000472389,0.000408606,0.000416914,0.000403939,0.000449542,0.000453567,0.000575457,0.000542048,0.000579768,0.000527278,0.000617446,0.000557783,0.000563206,0.000509489,0.000550848,0.00055809,0.000650303,0.000585975,0.000572706,0.000477591,0.000521592,0.000515279,0.000611834,0.000778744,0.000713271,0.000547325,0.000552465,0.000543701,0.000697577,0.000571891,0.000638354,0.000486958,0.000501267,0.000495874,0.000679475,0.000840485,0.000677081,0.000401258,0.000351115,0.000373496,0.000435972,0.000582325,0.000542575,0.000471572,0.000452316,0.000475847,0.000546832,0.000798518,0.000780843,0.000628839,0.000489336,0.000560641,0.000618181,0.000980501,0.000880508,0.00083806,0.000559029,0.00058272,0.000567396,0.001021626,0.000962708,0.000812424,0.000425715,0.0005253,0.000541939,0.000872117,0.000713733,0.000680259,0.000475111,0.000573628,0.000567762,0.000819597,0.000789203,0.000686346,0.000404461,0.000543138,0.000553828,0.000769337,0.000629354,0.00061112,0.000409181,0.000517678,0.000496513,0.000645923,0.000542473,0.000518982,0.000447823,0.000522549,0.000543408,0.000587533,0.000581515,0.000545473,0.000490392,0.000492393,0.000528216,0.000635463,0.000769153,0.000617008,0.000570696,0.000558007,0.000599101,0.00059558,0.000676529,0.000512519,0.000400309,0.000454742,0.000517855,0.000560047,0.000571724,0.000525891,0.000524319,0.00048659,0.000488019,0.000566857,0.000699797,0.000716332,0.000578337,0.00054372,0.000533037,0.000582467,0.000638,0.000660185,0.000577415,0.000549367,0.000536099,0.000546764,0.000624975,0.000728564,0.000647552,0.000578343,0.000581906,0.000614881,0.000640288,0.000792962,0.000603638,0.00067844,0.000613263,0.000646175,0.000678974,0.000974292,0.000821799,0.00073505,0.00066775,0.000686459,0.000744854,0.001106628,0.00087741,0.000739979,0.000663929,0.000710911,0.000702368,0.000984757,0.000757679,0.00079592,0.000750967,0.00080412,0.000856622,0.001128175,0.000950132,0.000780563,0.000707955,0.000795639,0.000874139,0.001226522,0.001143018,0.000714044,0.000860459,0.000508569,0,0,0,0,0,0 +ECONOMIC,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000629327,0.000629759,0.000628715,0,0,0,0.000715069,0.000715137,0.000714933,0,0,0,0.000517112,0.000517063,0.000516917,0,0,0,0.000784745,0.000784375,0.000785268,0,0,0,0.00073006,0.00073014,0.000729474,0,0,0,0.001005137,0.001004913,0.001004876,0,0,0,0.001003703,0.001033307,0.001032418,0,0,0,0.000868675,0.000866229,0.000865266,0,0,0,0.000699457,0.000697915,0.000668766,0,0,0,0.001072913,0.001088478,0.001061735,0,0,0,0,0.00122407,0.001245657,0.001280275,0,0.001751313,0,0.001351612,0.001240245,0.001219146,0,0.0013041,0.001642755,0.001137245,0.001248504,0.001123636,0.001371968,0.00111023,0.001174876,0,0,0.0016,0.001480443,0.001533796,0.000828581,0.000985222,0.000754805,0.00206278,0.00170133,0.001584603,0.000718612,0.001182632,0.001261034,0.001013664,0.001218114,0.001303284,0.001580611,0.001072085,0.001048157,0.000814848,0.000853698,0.00089695,0.001069396,0.001149425,0.00099046,0.000630403,0.000744945,0.001036377,0.00131406,0.001159252,0.000664724,0,0,0.000655451,0.000749344,0.001079607,0,0,0.00052895,0.000621982,0.00066022,0,0,0.000671667,0.000661839,0.000973879,0.000892857,0.001054693,0,0.000601546,0.000495573,0.000746632,0.000760264,0.000919709,0.000594001,0.000469102,0,0.000538723,0.00062889,0.000721713,0.000541196,0.000309637,0.000310037,0.000455533,0.000516675,0.000641935,0.000486953,0.000368808,0.000339151,0.000704017,0.00064906,0.000689843,0.000398788,0.000571888,0.000563213,0.000674701,0.000750288,0.000818276,0.000724011,0.00061228,0.000523913,0.000737527,0.000680108,0.000765585,0.000583795,0.000558399,0.000496549,0.00054795,0.000576677,0.000633876,0.000544784,0.00053466,0.000444004,0.000445592,0.000505246,0.000552499,0.000635621,0.000661017,0.000711225,0.000709044,0.000535738,0.000520585,0.000409399,0.000647713,0.000484859,0.000598562,0.000547861,0.000597915,0.000582636,0.000473578,0.000375629,0.000408167,0.000428873,0.00045802,0.000428689,0.000421368,0.000401045,0.000384594,0.000476526,0.000531274,0.000614377,0.000507554,0.000454875,0.000447439,0.00045605,0.000459915,0.000438313,0.000445429,0.000383954,0.000430683,0.000464417,0.000484534,0.000485192,0.000468509,0.000589113,0.000579251,0.000621529,0.000553686,0.000552455,0.000500532,0.000619171,0.000477458,0.000555201,0.00047122,0.000512612,0.000410971,0.000427268,0.000470677,0.000658133,0.000652313,0.000668119,0.000603798,0.000619575,0.000685057,0.000662059,0.000599365,0.000581986,0.000606796,0.000604319,0.000612351,0.000618438,0.000617563,0.000585685,0.000597015,0.000601103,0.000630338,0.000535249,0.000540191,0.000580564,0.000628294,0.000693029,0.000588851,0.000576843,0.000554801,0.000640126,0.000662723,0.000754306,0.000585878,0.000588661,0.000658327,0.000700505,0.000731069,0.000758959,0.000702041,0.000695986,0.000742325,0.000737292,0.000745408,0.000681065,0.000680246,0.000520047,0.000531387,0.00062446,0.000659863,0.000719217,0.000622359,0.000643263,0.000645003,0.000624532,0.000615635,0.00060355,0.000620681,0.000551898,0.000494182,0.000548983,0.000561139,0.000618302,0.000596318,0.000683197,0.000652227,0.0006991,0.000672121,0.000685146,0.000487003,0.000629004,0.000677303,0.000686138,0.000641358,0.000624327,0.000586165,0.000627281,0.000615746,0.000677912,0.000679376,0.000758363,0.000744228,0.00079596,0.000710136,0.000713359,0.000679219,0.000663698,0.000571174,0.000584904,0.000588036,0.000546392,0.000495855,0,0,0,0,0,0 +ICE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000962108,0.000962108,0.000962464,0,0,0,0,0,0,0,0,0,0.000715069,0.000715137,0.000714933,0,0,0,0,0,0,0,0,0,0.000667033,0.000666719,0.000667478,0,0,0,0.00073006,0.00073014,0.000729474,0,0,0,0.000446728,0.000446628,0.000446611,0,0,0,0.000692209,0.000688871,0.000688279,0,0,0,0.000558434,0.000556862,0.000556242,0,0,0,0.000867327,0.000865414,0.000919553,0,0,0,0.000558809,0.00057756,0.000575107,0,0,0,0,0.000808761,0.000808584,0.000797549,0,0,0,0.00092682,0.000934954,0.00086577,0,0,0,0.000827087,0.000884357,0.000579941,0,0,0,0,0,0,0,0.000766898,0.001072282,0.001037075,0,0.00044843,0.000555536,0.000691463,0.000787051,0.001224869,0.00136612,0.001135304,0.000680711,0.000445024,0,0,0.000582309,0.000497963,0.000391278,0.000332204,0.000458313,0.000574713,0.000677683,0.000675432,0.000532104,0.000518188,0.000579733,0.000917741,0.000971519,0.000688927,0.000571298,0.000655451,0.000790975,0.0007955,0.000660328,0.000658013,0,0.000658569,0.00066022,0.000894905,0.000671756,0.000615695,0.000622907,0.000834754,0.001041667,0.001205364,0.000936072,0.000555273,0.000561649,0.000454472,0.000380132,0.000367884,0,0,0.000273898,0.000489748,0.000410704,0.000441865,0.000335915,0.000400707,0.000374629,0.00036209,0.000282941,0.000270289,0.000352621,0.000545835,0.000557177,0.000350628,0.000331636,0.000301643,0.000406038,0.00043779,0.000541786,0.000535186,0.000560585,0.000509868,0.000448197,0.000496876,0.000471521,0.000525924,0.000437497,0.00039114,0.00037688,0.000517036,0.000557475,0.000505308,0.000494049,0.000451892,0.000385539,0.000457173,0.000469785,0.000563603,0.000439139,0.000367746,0.000330431,0.000605313,0.000734544,0.000678481,0.000426579,0.000372317,0.000227206,0.000431809,0.000496335,0.000656201,0.000491864,0.000469675,0.000343554,0.000459546,0.000920987,0.000957014,0.001025986,0.000733655,0.000641346,0.000270508,0.00051525,0.00049578,0.00042913,0.000319031,0.000311944,0.00036144,0.000513359,0.000677077,0.000700257,0.00064653,0.000618462,0.00050877,0.0009373,0.001280302,0.001154131,0.000898018,0.000632735,0.000659158,0.000767547,0.000583374,0.000457182,0.000442245,0.000514882,0.000638129,0.001049062,0.001119043,0.000859666,0.000748156,0.000650425,0.00069865,0.000652449,0.000590244,0.000558817,0.000700667,0.000751634,0.000844069,0.000729722,0.000715252,0.00055425,0.000508399,0.000451921,0.000514091,0.000789036,0.001001078,0.000694722,0.000576945,0.000488494,0.000652551,0.000564476,0.000946459,0.000703031,0.000615732,0.000443394,0.000406996,0.000507396,0.000785135,0.000713594,0.000567817,0.000449127,0.000433518,0.000615986,0.000735847,0.000809067,0.000647696,0.00063746,0.000593761,0.000588235,0.000541269,0.000516416,0.000580348,0.000706161,0.000732298,0.00077836,0.000826143,0.000750764,0.000590319,0.000799862,0.00078953,0.000992023,0.000331359,0.00043456,0.000449718,0.000555427,0.000550752,0.000563664,0.000295001,0.000398245,0.000594406,0.000667553,0.000675481,0.00066943,0.000456872,0.000562993,0.00054117,0.000664093,0.000665549,0.000738883,0.000882693,0.000759744,0.000611595,0.000601394,0.000607919,0.000646382,0.000471277,0.000496883,0.00052566,0.000608079,0.000650589,0.00067606,0.000660075,0.000521676,0.000516463,0.000571648,0.000589943,0.000591589,0.000685409,0.000631785,0.000596437,0.000490462,0.000394141,0,0,0,0,0,0 +EFFORTS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000310174,0.000320862,0.000368221,0.000261267,0.000291423,0.000335874,0.00035041,0.00034445,0.000287182,0.00033583,0.000295046,0.000436052,0.000369954,0.00042639,0.000390824,0.000431416,0.000374685,0.000440775,0.000487157,0.000473193,0.000432766,0.000344767,0.00029492,0.000369358,0.000361573,0.000407667,0.000369675,0.000402745,0.000365372,0.000368604,0.00038591,0.000418306,0.000417131,0.00040789,0.00038356,0.000389578,0.000376413,0.000404512,0.000406456,0.000458932,0.00045677,0.000553823,0.000476771,0.000440942,0.000375612,0.000375104,0.000389399,0.000421741,0.000390174,0.000376843,0.000399144,0.000409854,0.000438498,0.000464667,0.000447795,0.000473002,0.000492303,0.000519828,0.000499399,0.000419637,0.00040829,0.00044322,0.000464531,0.000492643,0.000492173,0.000425633,0.000452174,0.000425156,0.000421388,0.000415618,0.000474034,0.000542053,0.00052465,0.000402218,0.000404167,0.000383046,0.00050096,0.000608939,0.00057719,0.000487064,0.000503244,0.000507924,0.000572322,0.000429891,0.000485984,0.000411923,0.000441165,0.000416015,0.000463575,0.000470572,0.000559877,0.000568086,0.000584047,0.000545707,0.000536709,0.000553487,0.000600132,0.000581894,0.000545796,0.000551123,0.000581513,0.00065905,0.000597721,0.000557139,0.000552077,0.000562021,0.000592743,0.000687282,0.000662712,0.000608506,0.000657779,0.000676954,0.000718737,0.000688904,0.000668819,0.000666353,0.000662996,0.000680883,0.000703171,0.000698978,0.000675859,0.000609196,0.000632976,0.000712959,0.000781167,0.000926302,0.000766351,0.000663787,0.000673139,0.000706161,0.000724806,0.000770385,0.000702131,0.000647253,0.000622283,0.000640945,0.000671389,0.000739057,0.000817776,0.000736179,0.000690069,0.000708492,0.000721259,0.000733707,0.000757561,0.000718095,0.000725468,0.000770488,0.000774449,0.000803043,0.000689894,0.000744525,0.000737873,0.000802554,0.000790414,0.000813518,0.000671803,0.000719069,0.000751099,0.000732309,0.000718936,0.000714244,0.000764359,0.000706892,0.000699332,0.000732166,0.000754222,0.000765081,0.000799453,0.000792375,0.000778216,0.000766201,0.000789607,0.000804238,0.000881813,0.000832706,0.00081485,0.000774413,0.000648426,0.000914756,0,0,0,0,0 +TECHNOLOGIES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000312735,0,0.000212224,0.000320862,0.000368221,0.000429225,0.000236781,0.000245446,0.000245287,0.00034445,0.000354754,0.000402996,0.000280294,0.000199857,0.00022639,0.00028426,0.000296397,0.000308154,0.00014593,0.000156108,0.000194405,0.000260043,0.000290998,0.000319693,0.000217984,0.00023838,0.000215711,0.0002446,0.00021942,0.000236474,0.000158558,0.000176686,0.000164172,0.0001928,0.000192207,0.000201151,0.000209215,0.000226299,0.000191259,0.000243966,0.000253375,0.000351083,0.000308227,0.00030023,0.000240423,0.000259969,0.00026194,0.000295796,0.0003547,0.000324196,0.000288197,0.000270903,0.000309377,0.000341545,0.000410434,0.000328328,0.000322967,0.000368197,0.000441564,0.000491136,0.000530612,0.000363862,0.00030804,0.000370204,0.000427155,0.000490741,0.000484483,0.000412636,0.000423765,0.00039132,0.000481587,0.000503564,0.000612975,0.000446064,0.000436556,0.000406365,0.000493852,0.000492285,0.000533411,0.000402183,0.00038548,0.00039742,0.000491513,0.000524623,0.000590269,0.000410642,0.000443354,0.000450727,0.000501275,0.000511324,0.000570427,0.000548519,0.00058455,0.000454204,0.000632402,0.000616637,0.000753577,0.000509429,0.000535967,0.000529371,0.000663042,0.000746221,0.000825917,0.000741146,0.000612351,0.000548966,0.000587721,0.000634704,0.000690999,0.000766998,0.000599869,0.000532886,0.000634261,0.000676954,0.000742791,0.000713655,0.000574312,0.000515926,0.000575139,0.000680084,0.000760213,0.000754306,0.000555884,0.000547592,0.000647696,0.000652248,0.000691175,0.000709939,0.00077171,0.000686078,0.00065686,0.000621118,0.000656446,0.000658735,0.000687541,0.000594874,0.000636266,0.000748428,0.00078809,0.000885877,0.000887871,0.000746185,0.000671292,0.000647783,0.000666938,0.000689622,0.000743401,0.000680465,0.000656853,0.000684926,0.000699502,0.00078191,0.000917413,0.000829158,0.000793402,0.000735674,0.000745606,0.000716493,0.000787032,0.000711806,0.00076323,0.000839847,0.000890812,0.000905105,0.000977723,0.000861997,0.000922226,0.000921788,0.000947416,0.000942285,0.001001946,0.000926827,0.000831036,0.000874285,0.000913869,0.000971266,0.001000056,0.000944329,0.000859653,0.000864762,0.000711997,0.000800412,0,0,0,0,0 +METAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001175272,0.001175549,0.001174444,0,0,0,0.00118991,0.001189343,0.001188872,0,0,0,0,0.001480166,0.001480166,0.001480714,0,0,0,0.001201442,0.001202267,0.001200274,0,0,0,0.001239453,0.001239571,0.001239216,0,0,0,0.001128244,0.001128138,0.00112782,0,0,0,0.001530252,0.001529532,0.001531273,0,0,0,0.001825151,0.00182535,0.001823686,0,0,0,0.002233639,0.00223314,0.002233057,0,0,0,0.001730523,0.001722178,0.001720697,0,0,0,0.001644278,0.001639649,0.001637824,0,0.006648936,0.007600434,0.001706676,0.001674995,0.001588319,0,0,0,0.00169878,0.001666037,0.001636842,0,0,0,0,0.002382566,0.002360191,0.002476598,0.002868617,0.002388155,0,0.001795713,0.001850827,0.001943566,0.002793036,0.002934224,0.003175994,0.002481261,0.002132862,0.001703578,0.001646362,0.001903251,0.002349751,0.002116029,0.001825769,0.0016,0.001402525,0.001568655,0.001705902,0.001866736,0.001625733,0.001524664,0.00170133,0.001526981,0.001676761,0.00135158,0.001418663,0.001094757,0.001289768,0.001430433,0.001418497,0.001429447,0.00122285,0.001312811,0.001422829,0.001561358,0.00168048,0.001532567,0.001251108,0.001440922,0.00148989,0.001727295,0.001623251,0.001400763,0.001022652,0.001515639,0.001637721,0.002039181,0.001873361,0.002102392,0.00191495,0.002153496,0.001953046,0.001829358,0.001553458,0.001677946,0.001954198,0.001735139,0.001674064,0.001634726,0.002083333,0.002260057,0.00198227,0.001665818,0.001255451,0.001460802,0.001710593,0.001716791,0.001749002,0.001376032,0.001469087,0.001208045,0.001013925,0.000913188,0.001101054,0.001220334,0.001175559,0.001074591,0.000984143,0.000929117,0.001208987,0.001519488,0.001247593,0.001007711,0.000919107,0.000965256,0.000888209,0.00110828,0.001025415,0.001033778,0.000884573,0.000850609,0.0009152,0.001134801,0.00107926,0.000799159,0.000636359,0.000636795,0.00075376,0.000920325,0.000828596,0.000910407,0.000769477,0.000754516,0.000695647,0.000759372,0.00081353,0.000925773,0.000920776,0.00089913,0.00081231,0.001036089,0.000909435,0.000719231,0.000692294,0.000686975,0.000887389,0.001033257,0.001050049,0.001044158,0.000892922,0.000846378,0.000851854,0.000757725,0.000779083,0.000707358,0.000896359,0.000829647,0.000892821,0.000832332,0.001046436,0.000794707,0.000609748,0.000549962,0.000673342,0.000815162,0.001036465,0.000949328,0.000894446,0.000725992,0.000693642,0.000739657,0.001075636,0.000943586,0.000865253,0.000661575,0.000624223,0.0005902,0.000985632,0.000818373,0.000688762,0.000557205,0.000588636,0.000680006,0.000885447,0.000897366,0.000740268,0.00064833,0.000573147,0.000641114,0.000860309,0.000806603,0.000757448,0.000597321,0.000592612,0.000580395,0.00084813,0.000707703,0.000612301,0.000562979,0.000551123,0.000579105,0.000622563,0.000737747,0.000689273,0.000569485,0.000511313,0.000450698,0.00050846,0.000533217,0.000573059,0.000498857,0.00052273,0.000482045,0.0005899,0.00055432,0.00057187,0.00052877,0.000485888,0.000424184,0.000293239,0.000291939,0.000417539,0.000520119,0.000522266,0.000497275,0.000425963,0.000476959,0.000463165,0.000490813,0.00043053,0.000466348,0.000371635,0.000430397,0.000405313,0.000434499,0.000402898,0.000378917,0.000366057,0.000439687,0.000413118,0.000454413,0.000424966,0,0.000432457,0.000467281,0.000432738,0.000457947,0.000423464,0.000431424,0.000436288,0.000570631,0.00052129,0.000463053,0.000431059,0.000434937,0.000398549,0.000389168,0.000361714,0.00038212,0.000395085,0.000406617,0.000395294,0.000314184,0.000388448,0.000403997,0.000469489,0.000464432,0.000472822,0.000378688,0.000435627,0.00049064,0.000578854,0.000562799,0.000555535,0.000322663,0.00039068,0.000338821,0.000451741,0.000266999,0.000800412,0,0,0,0,0 +LEVELS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000251014,0.000248049,0.000247363,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000348597,0.000408123,0.000359366,0.000353492,0.000317253,0.000346065,0.000413383,0.000513935,0.000504373,0.000422326,0.000436579,0.000516331,0.000502671,0.000474867,0.000525881,0.000537711,0.000612683,0.000469343,0.000596883,0.00057178,0.000626661,0.000577021,0.000595507,0.000593046,0.000578924,0.000564958,0.000572723,0.000589095,0.000598575,0.000565293,0.000542243,0.000567139,0.000550856,0.00055004,0.00051964,0.000495916,0.000472649,0.000470008,0.000465897,0.00047156,0.000495647,0.00050876,0.000475122,0.000486958,0.000519939,0.000548592,0.000578732,0.000663135,0.000570929,0.000523188,0.000593263,0.000599518,0.000614781,0.000424466,0.000473015,0.000447795,0.000477139,0.000508759,0.000595777,0.000668467,0.000669294,0.000577803,0.000602062,0.000602021,0.000637202,0.000595991,0.000597835,0.000577646,0.000548731,0.000574292,0.000574488,0.000623192,0.000547699,0.000659727,0.000639955,0.000655751,0.000595849,0.000557749,0.000481487,0.000544208,0.000552802,0.000605301,0.000609509,0.0006481,0.000660877,0.000596823,0.00058505,0.000598954,0.000627242,0.000703582,0.000655336,0.000616814,0.000570735,0.000632402,0.000650958,0.000680248,0.000608561,0.000624666,0.00063027,0.000689321,0.000717563,0.000721172,0.000636245,0.000549653,0.000533982,0.000605129,0.000615266,0.000664299,0.000657119,0.000613199,0.00058133,0.000620008,0.000636174,0.000669667,0.000670341,0.000681541,0.000687487,0.000681706,0.000660904,0.000640943,0.000641806,0.000717851,0.000642051,0.000626433,0.000627341,0.00067262,0.000730223,0.000759205,0.000686078,0.000672325,0.000659083,0.00066581,0.000636405,0.000612769,0.000549978,0.000551364,0.000580939,0.000598631,0.000625967,0.000628732,0.000627539,0.000627165,0.000669741,0.000666938,0.000721111,0.000611241,0.000570713,0.000602116,0.000621949,0.000639449,0.000635345,0.000662372,0.000680744,0.000635286,0.000624383,0.000623728,0.000644843,0.000747898,0.000726332,0.000634846,0.000631785,0.000617282,0.000662499,0.000607267,0.000654733,0.000594386,0.000585518,0.000566786,0.000584519,0.000675853,0.000631031,0.000611539,0.00066352,0.000671981,0.000679886,0.000591216,0.000567044,0.000630039,0.000666856,0.000775568,0.000686067,0,0,0,0,0 +ABILITY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000620315,0.000624252,0.000434956,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.006377767,0.007881463,0.006081985,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000179683,0.000220933,0.000279929,0.000273209,0.000284201,0.000233607,0.000295243,0.000320968,0.000369413,0.000354055,0.000399714,0.000433454,0.000428759,0.000432791,0.000453168,0.000508783,0.000578518,0.000596938,0.000558453,0.000527278,0.000501479,0.000609074,0.000555347,0.000583447,0.000580677,0.00062964,0.000639218,0.000489461,0.000444761,0.000413628,0.000437242,0.000453937,0.000494496,0.000480419,0.000486972,0.000474077,0.000495802,0.000517308,0.000534656,0.00049762,0.000489696,0.000450283,0.000550101,0.000548592,0.000643036,0.000586026,0.000562322,0.000467765,0.000449488,0.000413571,0.000446018,0.00048761,0.00058153,0.000552809,0.000557122,0.0005211,0.000555271,0.000546218,0.00058696,0.000546817,0.000545699,0.000556636,0.00056302,0.000576766,0.000630327,0.000639198,0.000585509,0.000604391,0.000622717,0.000664057,0.00053923,0.000579464,0.000570846,0.00064061,0.000597268,0.000626707,0.000552294,0.000568944,0.000504992,0.000558378,0.000558021,0.000604228,0.000481221,0.000505168,0.000574603,0.000600027,0.000625954,0.00063947,0.000638015,0.000607325,0.000557493,0.000598269,0.000590324,0.000631881,0.00066088,0.000651087,0.000573601,0.000582183,0.000591906,0.000651343,0.000647648,0.000662509,0.000595281,0.0006043,0.000603433,0.000626919,0.000637729,0.000617008,0.000555336,0.000596491,0.000599101,0.000661969,0.000600213,0.000656096,0.000535817,0.000610932,0.000596972,0.000662723,0.000684224,0.000651864,0.000607827,0.00062398,0.000640573,0.000671693,0.000642326,0.000607364,0.000590721,0.000614534,0.000635544,0.000647081,0.00065076,0.000609121,0.000540001,0.000599309,0.00061325,0.000621683,0.000639855,0.000662717,0.000674712,0.000631859,0.000653595,0.000651849,0.000680175,0.000682041,0.000627157,0.000693088,0.000632373,0.000635125,0.000587626,0.000695399,0.000677064,0.000658815,0.000694397,0.000705578,0.000724703,0.000660933,0.0006813,0.00062878,0.000656916,0.000649383,0.000685403,0.000698709,0.000672577,0.00066404,0.000660185,0.000663383,0.000680259,0.000639036,0.000647166,0.000671402,0.000682735,0.000687061,0.000682094,0.000707455,0.000712154,0.000719644,0.00069267,0.000686569,0.000571723,0,0,0,0,0 +DNA,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000572055,0.00057211,0.000571946,0,0,0,0.000517112,0.000517063,0.000516917,0,0,0,0.000588558,0.000588281,0.000588951,0,0,0,0.000876072,0.000876168,0.000875369,0,0,0,0.000893455,0.000893256,0.000893223,0,0,0,0.000622988,0.000619984,0.000619451,0,0,0,0.000713554,0.000711546,0.000710754,0,0,0,0.001007218,0.00106083,0.001058879,0,0,0,0.000804685,0.000799698,0.000796302,0,0,0,0,0.001005486,0.00102712,0.000986442,0,0,0,0.000849585,0.00082047,0.000848101,0,0.000896569,0,0.000982166,0.000936378,0.000942405,0.000768302,0.00084589,0.000903751,0,0,0.000548571,0.000584385,0.000453167,0,0,0.000812867,0.00058296,0.000520815,0.000576219,0.000718612,0.000886974,0.000630517,0.000648745,0.000465749,0.000508598,0.000445813,0.000510517,0.000582309,0.000633771,0.00049799,0.000564747,0.00042012,0.000478927,0.000573424,0.000630403,0.000567577,0.000414551,0.000541084,0.000627928,0.000613591,0.000505213,0.000609385,0.000983177,0.001040756,0.001136428,0.000792393,0.000837471,0.000813769,0.000585394,0.000466038,0,0,0,0.000545044,0.000591284,0.00063244,0,0.000825946,0.000879182,0.000858993,0.000746632,0.000696908,0.00061314,0.000462,0.000406555,0.000373497,0.000342824,0.000308028,0.000309306,0.000298591,0.000400707,0.000490893,0.000584017,0.000516675,0.000456112,0.000251872,0.000250789,0.000460277,0.000513519,0.000701174,0.000723942,0.000953465,0.000705986,0.000688712,0.000676988,0.000671423,0.000775994,0.000886992,0.001089922,0.000893271,0.000852573,0.000755676,0.00078705,0.000690947,0.000727298,0.000715883,0.000618309,0.000678242,0.000736114,0.000846511,0.000844608,0.000824988,0.000787416,0.000642182,0.00066511,0.000725113,0.000872691,0.000760778,0.000637732,0.000800016,0.000777583,0.000880959,0.000670846,0.000760282,0.000813601,0,0.000926527,0.000932217,0.000743693,0.000781865,0.000717265,0.00089498,0.000844731,0.000977209,0.00077771,0.000881769,0.000670762,0.00089797,0.000878337,0.001059467,0.000619062,0.000708305,0.000740997,0.000863553,0.00087408,0.000852513,0.000831603,0.000982471,0.000969036,0.000924687,0.000969068,0.000985989,0.000918765,0.000719398,0.00071118,0.000675315,0.000769529,0.000787631,0.00090734,0.00086299,0.00083342,0.000825339,0.000751376,0.000735431,0.000793995,0.000967126,0.000893906,0.000660781,0.000598269,0.00057774,0.000636562,0.00079581,0.00068317,0.000722875,0.000744911,0.000771573,0.000757291,0.000718342,0.000741927,0.00066884,0.000562853,0.000534977,0.000517983,0.000510614,0.000617008,0.000671129,0.000704101,0.000656193,0.000638877,0.000488833,0.000581581,0.000560681,0.000673571,0.000614553,0.000604644,0.000450002,0.000539888,0.000543485,0.000569187,0.000571301,0.00060675,0.000496957,0.000476959,0.000475549,0.000463953,0.000502665,0.000500996,0.0004785,0.000428573,0.000485128,0.000487438,0.000460926,0.000450234,0.000401769,0.000369592,0.000413118,0.000488212,0.000489551,0.000488887,0.000450301,0.000387041,0.000376294,0.000493411,0.000447352,0.000471779,0.000432198,0.000609162,0.000529876,0.000474347,0.000399187,0.000391921,0.000393325,0.000497874,0.000495359,0.000513537,0.000430736,0.000435374,0.000403777,0.000443141,0.000535316,0.000610174,0.000497959,0.000453557,0.00038464,0.000636407,0.000580836,0.000550502,0.00036929,0.000344435,0.000290644,0.000320659,0.000325939,0.00032482,0.000275347,0.000394141,0,0,0,0,0,0 +ACTIVE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000705152,0.000705086,0.000704887,0,0,0,0,0,0,0,0,0,0.00036503,0.00036507,0.000364737,0,0,0,0.000521182,0.000521066,0.000521047,0,0,0,0.000484546,0.00048221,0.000481795,0,0,0,0.000372289,0.000371241,0.000370828,0,0,0,0.000531587,0.000530415,0.000501574,0,0,0,0.000536457,0.000533132,0.000530868,0,0,0,0,0.00041531,0.000393365,0.000377786,0,0,0,0.00046341,0.000496098,0.000477057,0,0,0,0.000672008,0.000728294,0.000579941,0.000548787,0.000528681,0,0,0,0,0,0.00034859,0,0.000622245,0,0.000493274,0.00034721,0,0,0,0,0,0.000501576,0.000349661,0.000405285,0,0,0.000497963,0.000426849,0,0.000381927,0,0,0,0,0,0.000386488,0,0,0,0.000418952,0.000546209,0.000582823,0.000625036,0.000858426,0.00089729,0.000610327,0,0,0,0,0.000671667,0,0.000347814,0,0,0,0.000601546,0.000561649,0.000519396,0,0.000367884,0.00033,0.000437828,0.000448196,0.000473423,0.000385035,0.000324035,0.000559858,0.000728558,0.000594238,0.000397131,0.000405959,0.000591256,0.000537327,0.000472074,0.000563234,0.000695735,0.000677486,0.000640007,0.0005293,0.000623161,0.000658102,0.000633532,0.000628793,0.000606867,0.000592372,0.000593046,0.000691565,0.00069233,0.000713915,0.00068688,0.000694642,0.000689382,0.000688466,0.000673744,0.000626599,0.00059298,0.000600659,0.000588901,0.000610147,0.000596157,0.000577649,0.00054898,0.000601201,0.00075757,0.000804501,0.000737568,0.000626224,0.000607899,0.000593736,0.000663135,0.000720116,0.000625165,0.000623532,0.000581885,0.000644918,0.000663009,0.000681697,0.00065386,0.000668822,0.000644519,0.000643034,0.000684073,0.00081537,0.000801998,0.000668674,0.000595347,0.000540195,0.000519089,0.000666067,0.000669975,0.000685546,0.000626063,0.000607114,0.000594586,0.000728384,0.000738033,0.000604018,0.00056956,0.00053059,0.000636848,0.000699572,0.000733856,0.000676809,0.000606474,0.00054828,0.000578304,0.000660877,0.000731108,0.000685046,0.000691266,0.000669745,0.000695362,0.000759266,0.000732585,0.000635621,0.000575514,0.000539986,0.000575714,0.000715954,0.000747335,0.000646856,0.000623623,0.000569861,0.000600776,0.000695537,0.000748196,0.00071243,0.000587721,0.000562867,0.000546819,0.000540777,0.000626529,0.000610869,0.000588652,0.000573891,0.000574412,0.000660028,0.000681541,0.000619111,0.000560496,0.000526646,0.000543453,0.000542215,0.00057588,0.000513367,0.000538111,0.000531606,0.000534385,0.000564571,0.000605578,0.000650164,0.000657674,0.000633267,0.000618052,0.00060291,0.000636477,0.000614828,0.000595314,0.000610612,0.000620242,0.000645807,0.000637228,0.000607526,0.000579282,0.000568344,0.000562823,0.000567862,0.000606521,0.000584824,0.000560484,0.000543337,0.000547207,0.000527636,0.000592649,0.000593657,0.000610816,0.000565863,0.000562192,0.000550057,0.000595709,0.00059414,0.000570148,0.000556976,0.000549735,0.000560707,0.000651816,0.000635517,0.000668684,0.000596262,0.000593014,0.000557644,0.000607479,0.000598763,0.000640883,0.000579454,0.000573053,0.000544498,0.000595224,0.000607228,0.000576835,0.000572205,0.000622998,0.001029101,0,0,0,0,0 +INTERDISCIPLINARY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000341265,0.000340304,0.000339926,0,0,0,0.000419674,0.000418749,0.000417979,0,0,0,0.000558809,0.000555346,0.000575107,0,0,0,0,0.000437168,0.000437072,0.000419762,0,0,0,0.000386175,0.000400695,0.000406382,0,0,0,0.000672008,0.00052021,0.00039871,0,0,0,0,0,0,0,0,0,0,0,0,0.00034721,0,0,0,0,0,0,0.000317874,0.000405285,0,0,0,0,0,0,0,0,0.000495317,0.000922313,0.000932739,0.000772977,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000195899,0.000192517,0.000176746,0,0.000254995,0.000271283,0.000292008,0.000270639,0.000270289,0.000302247,0.000236037,0.000266476,0.000184977,0.000208457,0.00017574,0.000199394,0.000205091,0.000235692,0.000194405,0.000185441,0.000189024,0.000241337,0.000230807,0.000225282,0.000197222,0.000180965,0.00015264,0.000140406,0.000162005,0.000164501,0.000170568,0.000158371,0.000149267,0.000159245,0.00017822,0.000249215,0.000197363,0.000239244,0.000212906,0.00024094,0.000193106,0.000241933,0.00025061,0.000280077,0.000275119,0.000289366,0.000242893,0.000329934,0.00035027,0.000320847,0.000314186,0.000335518,0.000424466,0.000297721,0.000265507,0.000315794,0.00042648,0.000454005,0.000494197,0.000310744,0.000349963,0.00042913,0.000464531,0.000485034,0.000372975,0.000282672,0.000305395,0.000347186,0.000421388,0.000446824,0.000474034,0.000400893,0.000456132,0.000393925,0.000400672,0.000353254,0.000403608,0.000351202,0.000344253,0.000413855,0.000472744,0.000509316,0.000434725,0.000295149,0.000355962,0.000379089,0.000423991,0.000417303,0.000476726,0.000487894,0.000444106,0.000386669,0.00041054,0.000427871,0.000469621,0.000424065,0.000469915,0.000414651,0.000520528,0.000501522,0.00054419,0.000465212,0.000493224,0.000415471,0.000499024,0.000513848,0.000593811,0.000672201,0.000679851,0.000720755,0.000734033,0.000794847,0.000784164,0.000798221,0.000645192,0.00062657,0.000706924,0.000726435,0.000784066,0.000710044,0.000703854,0.000706394,0.000772819,0.000792349,0.000806217,0.000752197,0.000700255,0.000697224,0.000738255,0.000795759,0.000825942,0.00089639,0.000813377,0.000758247,0.00073715,0.000751066,0.000746308,0.00078965,0.000711571,0.000781922,0.000735135,0.000878995,0.000888748,0.000970929,0.000823642,0.000791785,0.000779435,0.000803496,0.000801833,0.000811905,0,0.000800947,0.000773638,0.000832859,0.000817299,0.000865016,0.000800077,0.000836735,0.000775361,0.000853874,0.000846673,0.000880505,0.000787806,0.000765914,0.000777345,0.000821874,0.000839304,0.000865021,0.000862568,0.000892766,0.000814603,0.000822044,0.000791417,0.000804973,0.000793632,0.000866193,0.000915656,0.000778716,0.000584855,0.000686067,0,0,0,0,0 +HIGHLY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000306018,0.000284097,0.000293834,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000337227,0,0.000344008,0,0.000277524,0.000308028,0.000397679,0.000354577,0.000346065,0.000232528,0.000210246,0.000233734,0.000354754,0.000856366,0.001062166,0.000817597,0.000720582,0.000722494,0.000708204,0.000703316,0.000615273,0.000667285,0.00058779,0.000564848,0.000489971,0.000576701,0.000602663,0.000644413,0.000527979,0.000497155,0.00046269,0.000713117,0.000741085,0.000676281,0.000498912,0.000562906,0.000572533,0.000625803,0.000588901,0.000613012,0.000529013,0.000519412,0.000494434,0.000553014,0.000586745,0.000550908,0.000515483,0.000524248,0.000546944,0.000615171,0.000643858,0.000576667,0.000554224,0.000514565,0.000500132,0.000476154,0.000491118,0.000542575,0.000477516,0.000486792,0.000447049,0.000464132,0.000460384,0.000531186,0.000508539,0.000482931,0.000468535,0.000464111,0.000488328,0.000594586,0.000530298,0.000504597,0.000485198,0.000517749,0.000604802,0.000632395,0.000534438,0.000468563,0.000457745,0.00046533,0.000476622,0.000501313,0.00054833,0.000597624,0.000611166,0.000610901,0.000616193,0.00053576,0.000539272,0.000577588,0.000594661,0.000616938,0.000598373,0.000669771,0.000595937,0.000531008,0.000538537,0.000549139,0.000603798,0.000553487,0.000541629,0.000562543,0.000615537,0.000629383,0.000636895,0.000551869,0.000518304,0.000517636,0.000592695,0.000598363,0.000617307,0.000545086,0.000580825,0.000600235,0.00060433,0.000607257,0.000614823,0.000674466,0.000581581,0.000564411,0.000569444,0.000610557,0.000611904,0.000590166,0.000533889,0.000569496,0.000603535,0.000613331,0.000634583,0.000633874,0.000619869,0.000584529,0.000623488,0.00064086,0.000649891,0.00058377,0.000568999,0.000569932,0.000600308,0.000653474,0.000668507,0.000704336,0.000662717,0.000617533,0.000640309,0.000687179,0.000708433,0.000703267,0.000611241,0.000602071,0.000669189,0.000644534,0.000652901,0.000627846,0.000662372,0.000643947,0.000639992,0.000642148,0.00065121,0.000661263,0.0006805,0.000682753,0.000644955,0.000706009,0.000714923,0.000737147,0.000686985,0.000632772,0.000649181,0.000651053,0.000664662,0.000694536,0.000786304,0.000763691,0.000748871,0.000709156,0.000712999,0.000741694,0.000811669,0.000808149,0.000630039,0.000679763,0.000597569,0,0,0,0,0,0 +RESULT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000195899,0.000295193,0.000324035,0.000410563,0.000546418,0.000555484,0.000560656,0.000455166,0.000422326,0.000419787,0.00038356,0.000605627,0.000634996,0.000665642,0.000658368,0.000710567,0.000642881,0.000642797,0.000599226,0.000656502,0.0006392,0.000695803,0.000583429,0.000563206,0.000511544,0.000572723,0.00060579,0.000713117,0.00065836,0.000584892,0.000537289,0.000559463,0.000588891,0.000636978,0.000588901,0.000504159,0.000484251,0.0005383,0.000563056,0.000605791,0.000609027,0.000603375,0.00054197,0.000591753,0.000609546,0.000666614,0.000597593,0.000550846,0.000503236,0.000517592,0.000503338,0.000518345,0.000554261,0.000589877,0.000576586,0.000604008,0.000600637,0.000627844,0.000603441,0.000571025,0.000539526,0.000539294,0.000590008,0.000620083,0.000726725,0.000636825,0.000589483,0.000557558,0.000599575,0.000618462,0.000694706,0.000649334,0.000589252,0.000599872,0.000611491,0.000642666,0.000606426,0.000580616,0.000566883,0.000576707,0.000588878,0.000606726,0.000697954,0.000792411,0.00070553,0.000619377,0.000607541,0.000629818,0.000667416,0.000669771,0.000645283,0.000581328,0.000627661,0.000628077,0.000664646,0.000622329,0.000630328,0.000599862,0.000581172,0.000553328,0.000588737,0.000583795,0.000583092,0.000535344,0.000598498,0.000602588,0.000642939,0.000642038,0.000611295,0.00056597,0.000551594,0.000585013,0.000590769,0.000614651,0.000605208,0.00060295,0.000606865,0.000614553,0.000640943,0.000687913,0.000585878,0.00060372,0.000623162,0.000640573,0.000629944,0.000608519,0.000619869,0.000608059,0.00061372,0.000602894,0.000624607,0.000636405,0.000632829,0.000621064,0.000604303,0.000599402,0.000604394,0.000587278,0.00058625,0.000581796,0.000575527,0.000578031,0.00058093,0.000609848,0.000667881,0.000624021,0.000584384,0.00061196,0.000615908,0.000648297,0.000609162,0.000604697,0.000627757,0.000677155,0.000687057,0.000679922,0.000656585,0.000617383,0.000622715,0.000583276,0.000585181,0.000564948,0.000558029,0.000601202,0.000613889,0.000620434,0.000614765,0.000623991,0.000612739,0.000620275,0.000622103,0.000671927,0.000687061,0.000716677,0.000727496,0.000709921,0.000602037,0.000628135,0.000533998,0.000628895,0,0,0,0,0 +INVOLVED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000223524,0.000244352,0.000243314,0,0,0,0,0,0,0,0,0,0,0,0,0.000176688,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00033,0,0.000298797,0.000244874,0.000282359,0.000279848,0.000429225,0.000582846,0.000555484,0.000478894,0.000590486,0.000625042,0.000654868,0.000531083,0.000599571,0.000742669,0.000772239,0.000839353,0.000833829,0.000761203,0.000697894,0.000699859,0.000692738,0.000721276,0.000680131,0.000721272,0.000673228,0.000741636,0.000753687,0.00078705,0.00078332,0.000672147,0.000691512,0.000684404,0.000692013,0.000672726,0.000656535,0.000759372,0.000847904,0.000765035,0.000714585,0.000652793,0.000695283,0.000675871,0.000684991,0.000682556,0.000729638,0.000719923,0.000673044,0.000539761,0.000662736,0.00073601,0.000738552,0.000690888,0.000654963,0.000663009,0.000703957,0.000717265,0.000689507,0.000691144,0.000675101,0.000697078,0.000661326,0.000623371,0.000668674,0.00066476,0.000713286,0.000645977,0.000672565,0.000620259,0.00062523,0.000627266,0.000663853,0.000592543,0.000604163,0.000571633,0.000558406,0.000562572,0.000557545,0.000655102,0.000671249,0.000630786,0.000585672,0.000618204,0.000648473,0.000674024,0.000664085,0.000660768,0.000622362,0.00059144,0.000582163,0.000608237,0.000750606,0.000669955,0.00064489,0.000566033,0.000569731,0.000535149,0.000570009,0.000607681,0.000612301,0.000644848,0.000617258,0.000611612,0.000538186,0.000570552,0.000578935,0.000530524,0.000518919,0.000516915,0.000620493,0.000712225,0.000725481,0.000673457,0.00064433,0.000632142,0.000655903,0.000706985,0.000718567,0.000681706,0.000653712,0.000609829,0.000608609,0.000685857,0.000711869,0.000687768,0.000653027,0.000603967,0.000554429,0.000576996,0.000642734,0.000616976,0.000624914,0.000613369,0.000668305,0.000691188,0.000688408,0.000656243,0.000629076,0.000614479,0.000602158,0.000584126,0.000554636,0.000631859,0.000628407,0.00063676,0.000584657,0.000568761,0.000628725,0.000640663,0.000578517,0.000571228,0.000524228,0.000532099,0.000542142,0.000543993,0.000529289,0.000515591,0.000523935,0.000582664,0.000554918,0.00057217,0.00057334,0.000587856,0.000567493,0.000475966,0.000502374,0.000505228,0.000488827,0.000478506,0.000453506,0.000447063,0.000480444,0.000527027,0.000495989,0.000481365,0.000448107,0.000402828,0.000370588,0.000428426,0.000387207,0.000495855,0,0,0,0,0,0 +GEOMETRY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000740083,0.000740083,0.000740357,0,0,0,0,0,0,0,0,0,0.000667398,0.000667461,0.00066727,0,0,0,0.001222264,0.001222149,0.001221805,0,0,0,0.001216354,0.001215782,0.001217166,0,0,0,0.000876072,0.000876168,0.000875369,0,0,0,0.001005137,0.001004913,0.001004876,0,0,0,0.001142145,0.001136638,0.00113566,0,0,0,0.000961747,0.00095904,0.000957973,0,0,0,0.001342958,0.001339996,0.001309666,0,0,0,0.001095266,0.001088478,0.001083855,0,0,0,0,0.001289646,0.00126751,0.001238299,0,0,0,0.001274377,0.001259326,0.001272152,0.001396518,0.001222594,0,0.000516929,0.00052021,0.000652434,0.000658545,0.000634417,0,0,0,0.001142857,0.001636279,0.001533796,0.001267242,0,0,0.00044843,0.001006909,0.000864329,0.00088971,0,0,0.000648745,0.001253941,0.001112559,0.000972684,0,0,0,0.001209405,0.001129493,0.001145782,0,0,0.000495317,0.001099681,0.001036377,0.001043519,0,0,0.000459284,0.001409202,0.001456558,0.001415428,0,0,0,0.001017211,0.000987853,0.000970911,0,0,0,0.001245815,0.001182568,0.001116071,0,0,0.000462727,0.00145368,0.001395877,0.001457172,0.001103651,0.000528001,0.000344008,0.000971091,0.00115907,0.000949753,0.00063334,0.000354577,0.000437135,0.000529647,0.000654099,0.000762711,0.000793973,0.000486953,0.000309798,0.000950835,0.000869668,0.000800665,0.000574432,0.000293653,0.000362853,0.000569335,0.000864532,0.000799313,0.000721276,0.000372975,0.000362239,0.000581543,0.000764234,0.000755676,0.000617715,0.000347321,0.000361925,0.000399067,0.000835783,0.000738491,0.000791322,0.000349221,0.000410681,0.000421088,0.000848456,0.000764952,0.000811153,0.000452048,0.00040478,0.000367272,0.001065603,0.000903429,0.000976921,0.000441551,0.000346989,0.000418872,0.000769263,0.000687096,0.000679667,0.0003757,0.000238543,0.000225378,0.000768781,0.000725361,0.000732283,0.000415187,0.000293917,0.000268249,0.000807466,0.000699417,0.000720824,0.000325258,0.000319144,0.000324911,0.000494787,0.000722324,0.000629674,0.00059151,0.000247233,0.000206093,0.000338673,0.000645484,0.000634786,0.000622805,0.000324509,0.00022375,0.00038548,0.000838168,0.000756626,0.000757016,0.000287158,0.00018928,0.000334647,0.000810414,0.000732055,0.000739295,0.000343571,0.000196312,0.000366293,0.000744206,0.000665586,0.000660111,0.000296438,0.000223047,0.000349134,0.000876296,0.000738847,0.000709847,0.000429814,0,0.000455606,0.001107468,0.000794128,0.000750489,0.000334286,0.000327482,0.000340878,0.000719573,0.000560858,0.000533111,0.000269406,0.000200071,0.000274434,0.000707378,0.000693908,0.000661703,0.000469818,0.000337501,0.000493897,0.000896682,0.000696764,0.000621115,0.000335846,0.000309331,0.000360846,0.001071223,0.000884766,0.000844355,0.000412034,0.00030624,0.000330093,0.00091663,0.000899962,0.000687103,0.000598631,0.000305543,0.000384461,0.000548918,0.000716357,0.000645199,0.000591493,0.000455549,0.000363441,0.000540923,0.000665334,0.000572437,0.00055057,0.000421291,0.000455037,0.000583845,0.000859284,0.000594078,0.000558607,0.000324661,0.000306551,0.000522959,0.000747055,0.000637629,0.000593875,0.000473335,0.000443141,0.000625908,0.000812637,0.000637624,0.000599411,0.00038632,0.000378688,0.000492993,0.000704268,0.000659317,0.00060804,0.000486369,0.000264544,0.000448724,0.000722444,0.00101104,0.001385852,0.000686067,0,0,0,0,0 +SERIES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000783515,0.000783699,0.000782963,0,0,0,0.000793273,0.000792896,0.000792581,0,0,0,0,0,0.000740083,0.000740357,0,0,0,0,0.000744261,0.000743027,0,0,0,0.000572055,0.00057211,0.000571946,0,0,0,0.000705152,0.000705086,0.000704887,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000519157,0.000516653,0.000516209,0,0,0,0.000465362,0.000494988,0.000494438,0,0,0,0.000279783,0.000307082,0.000334383,0,0,0,0.000357638,0.000355421,0.000287553,0,0,0,0,0.000524602,0.000524487,0.000545691,0,0,0,0.000386175,0.000362533,0.000353376,0,0,0,0,0,0.000434956,0.000768302,0.000581549,0.000903751,0,0,0,0,0.000453167,0.000633621,0,0,0,0.000416652,0.000662652,0.000752832,0.0008025,0,0,0.000358269,0.000381449,0.000405285,0,0,0,0,0,0,0,0,0,0.000461156,0.000518188,0.000502435,0,0,0,0.000457038,0.000509795,0.000624454,0.000568214,0,0,0,0,0,0,0,0.000615695,0.000506112,0.000417377,0.000372024,0,0,0,0,0,0,0,0,0.000312735,0.000373497,0.000457098,0.000500545,0.000544967,0.00067183,0.000801413,0.000749257,0.000572336,0.000615089,0.000591256,0.000621285,0.000634349,0.000623796,0.0007123,0.000696437,0.000734434,0.000703316,0.000800644,0.000854002,0.000878254,0.000822759,0.00077102,0.000680131,0.000762945,0.000688945,0.000745744,0.000660222,0.00072504,0.000757455,0.000854833,0.000776809,0.000786745,0.000731606,0.000756561,0.00069006,0.00080199,0.000853633,0.000803693,0.000747638,0.000737252,0.000789364,0.000816987,0.000856968,0.000855742,0.000741128,0.000731455,0.000690192,0.000840485,0.000771758,0.000802517,0.000785469,0.00075661,0.000677063,0.000733169,0.000717869,0.000796521,0.000717087,0.000717199,0.00066835,0.000639855,0.000695854,0.000745493,0.000744252,0.000680778,0.000618181,0.000496018,0.000529604,0.000653403,0.000766458,0.000707932,0.000692223,0.000586413,0.000702975,0.000769356,0.000761588,0.000698847,0.000665365,0.000628736,0.000815695,0.000859601,0.000764959,0.00068155,0.000603943,0.000616193,0.000680126,0.000675689,0.000713403,0.000652624,0.000673609,0.00066906,0.000819892,0.000762952,0.00079585,0.000683601,0.000662399,0.000569473,0.000718707,0.000694493,0.000711818,0.000603408,0.000590804,0.000523723,0.000599758,0.00063534,0.000626612,0.00058109,0.000574699,0.000576723,0.000650656,0.000685564,0.00062623,0.000588652,0.000581306,0.000601353,0.000651778,0.000650644,0.000634029,0.000583273,0.000556214,0.000523748,0.000501641,0.000553885,0.000570865,0.00052748,0.000495024,0.000462948,0.000525693,0.00055556,0.000608059,0.000532325,0.000567966,0.000547818,0.000617265,0.00053982,0.000658477,0.000619286,0.000536099,0.000537399,0.00044145,0.000518279,0.000593232,0.000540789,0.000545739,0.000527364,0.000555266,0.000608881,0.000569145,0.000521936,0.000482966,0.000473221,0.000478554,0.00058164,0.000587525,0.000559052,0.000487489,0.000476758,0.000474676,0.000591361,0.000601403,0.000580257,0.000520156,0.000502252,0.000510659,0.000555685,0.000501001,0.000430001,0.000410937,0.000413255,0.000418233,0.000560143,0.000562909,0.000521158,0.000470169,0.00043914,0.000434862,0.000442911,0.000616158,0.000767247,0.000826041,0.000877282,0.000686067,0,0,0,0,0 +DYNAMIC,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000572055,0.00057211,0.000571946,0,0,0,0.000564122,0.000564069,0.00056391,0,0,0,0.000823982,0.000823594,0.000824532,0,0,0,0.000547545,0.000547605,0.000547106,0,0,0,0.000781774,0.000781599,0.00078157,0,0,0,0.000830651,0.000826646,0.000825934,0,0,0,0.000589458,0.000587799,0.000587145,0,0,0,0.000727436,0.000697915,0.000696631,0,0,0,0.000961152,0.000955195,0.000995377,0,0,0,0,0.001071062,0.001048974,0.001049406,0,0,0,0.00092682,0.000877712,0.000830433,0,0.000815062,0,0.001085552,0.001196483,0.000978651,0.000768302,0.000581549,0.001084501,0.001587022,0.001651887,0.00096,0.000584385,0.000522885,0.000536141,0.000674099,0.000754805,0.000717489,0.000520815,0.000403354,0.000410635,0.00067579,0.001103405,0.001094757,0.000895672,0.000667536,0.000567399,0.000867878,0.000989926,0.000814848,0.000569132,0.000631187,0.000763854,0.001149425,0.001251108,0.001215778,0.001028734,0.001036377,0.001120816,0.001062648,0.000971519,0.001102283,0.001142596,0.001128833,0.000999126,0.000965964,0.000990491,0.00089729,0.00130203,0.001170789,0.00120393,0.000783042,0.000793893,0.000783611,0.000856498,0.000973879,0.001078869,0.001205364,0.001486702,0.001341909,0.00109026,0.001266028,0.001362139,0.001563506,0.001320001,0.001282212,0.001244989,0.001583518,0.001771161,0.001826376,0.001548941,0.000801413,0.000904276,0.001004509,0.001070256,0.00111494,0.001141821,0.001003157,0.000684359,0.000546649,0.000556675,0.000548202,0.000514799,0.000489063,0.000419349,0.00048487,0.000564848,0.000676508,0.000611178,0.000509699,0.000385076,0.000519761,0.000509087,0.00056763,0.000506202,0.000517036,0.000496549,0.000537289,0.000542249,0.00059707,0.000595072,0.000492042,0.000524211,0.000504597,0.000676809,0.000689744,0.000741176,0.000553323,0.000556738,0.000584757,0.00065495,0.000673796,0.000670901,0.000512773,0.000473383,0.000536489,0.000537267,0.000578679,0.000576609,0.000547246,0.000475797,0.000469591,0.000557122,0.000632177,0.000670038,0.000613845,0.000494003,0.000477553,0.00052136,0.000551297,0.000585845,0.000638287,0.000536102,0.000497154,0.000526664,0.000527337,0.000533352,0.000433169,0.000508175,0.000497243,0.000606783,0.000635951,0.000688064,0.000681468,0.000523971,0.00047412,0.00049304,0.00055134,0.000576111,0.000592263,0.0005518,0.000520088,0.000502964,0.000586073,0.00062209,0.00060988,0.000467685,0.000474472,0.000564114,0.000675068,0.000712736,0.000748897,0,0.00052087,0.000494817,0.00055085,0.000581986,0.000575493,0.000535906,0.000484865,0.000482219,0.000652379,0.000678651,0.000758284,0.000605412,0.000506556,0.000498621,0.000561571,0.000616896,0.000641764,0.000676529,0.000523423,0.000519656,0.000527143,0.000650515,0.000708356,0.000776438,0.000513893,0.000506523,0.000619073,0.000681825,0.000754263,0.000811359,0.000662741,0.00059939,0.000592557,0.000638582,0.00067892,0.000642785,0.000574471,0.000433996,0.000542375,0.000626438,0.000646176,0.000622991,0.000388709,0.00043456,0.0005145,0.000639387,0.000652604,0.000722161,0.000526281,0.000526812,0.000540439,0.000659301,0.000678844,0.000691926,0.000537604,0.000522517,0.000577875,0.00062386,0.000627313,0.000639619,0.000508744,0.00050698,0.000546897,0.000538274,0.000543048,0.000503873,0.000471277,0.000429626,0.000488511,0.00055866,0.000601331,0.000616432,0.000546994,0.000537811,0.000528201,0.000579454,0.000592356,0.000611456,0.000575183,0.000553649,0.000579635,0.00063674,0,0.000743239,0,0,0,0,0 +'S,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000667398,0.000667461,0.00066727,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000474539,0.000474591,0.000474158,0,0,0,0,0,0,0,0,0,0.000346105,0.000344436,0.000344139,0,0,0,0,0,0,0,0,0,0.000419674,0.000390832,0.000390113,0,0,0,0.000402343,0.000444277,0,0,0,0,0,0.000327876,0.000305951,0.000272846,0,0,0,0.000386175,0.000381614,0.000388713,0,0,0,0,0,0.00039871,0,0,0,0,0,0,0,0.00034859,0.000487401,0,0,0,0.000416652,0.000460976,0.000547514,0.000464606,0,0,0.000429923,0.000476811,0.000567399,0,0.000582309,0,0.000426849,0.000465085,0.000649276,0.000574713,0,0.000630403,0.000673998,0.000863647,0.000734328,0.000579626,0,0,0.000380865,0.000400553,0,0,0,0,0.000569638,0.000621982,0.000582547,0.000615247,0.000610687,0,0,0,0,0,0,0,0,0,0.000475165,0.000398541,0.000495,0.000437828,0.000622494,0.000571373,0.000397869,0.000309306,0.000242605,0.000273209,0.000310037,0.000198566,0.000282941,0.000236502,0.000386204,0.000472074,0.000417883,0.000494193,0.000592208,0.000668859,0.000735945,0.000615273,0.000544847,0.000530612,0.000503034,0.000514842,0.000485808,0.000506493,0.000521293,0.00052387,0.000524996,0.00053901,0.000550541,0.000575634,0.000560521,0.000573535,0.000595613,0.000578667,0.000614628,0.000631519,0.000584366,0.000520875,0.00049108,0.00051027,0.00054613,0.000750143,0.00071414,0.000643844,0.000519939,0.000504111,0.000492994,0.000508918,0.000573798,0.000527621,0.000497918,0.000504941,0.000522363,0.000631437,0.000595442,0.000546865,0.000482655,0.000436079,0.000410124,0.000405762,0.000409013,0.000442921,0.000502146,0.000511251,0.000513566,0.000480638,0.000552348,0.000553972,0.000513424,0.000463527,0.000461009,0.000459732,0.000587224,0.000589252,0.00054182,0.000548595,0.000546195,0.000557749,0.000569287,0.000550392,0.00059613,0.000570109,0.000578895,0.000588275,0.000670501,0.000573376,0.000571618,0.000592514,0.000619514,0.000655909,0.00058605,0.000588346,0.000582653,0.000555603,0.000565155,0.000591316,0.000666388,0.000613343,0.000574983,0.000744911,0.000821174,0.000830733,0.000602039,0.000472325,0.000528533,0.000623366,0,0.000644007,0.000637729,0.000750312,0.000634501,0.000621434,0.000596135,0.000680251,0.00070953,0.000708802,0.000665109,0.000675198,0.000676088,0.000677243,0.000693445,0.000743845,0.000759784,0.000751556,0.000734752,0.00072643,0.000682894,0.000621655,0.000564714,0.000634069,0.000704642,0.00077631,0.000843755,0.000911858,0.000769471,0.000670227,0.000607974,0.000628887,0.00070136,0.000768922,0.000687577,0.000511684,0.000484384,0.000470026,0.000556316,0.000646641,0.000606774,0.000528104,0.000545509,0.000555374,0.000572628,0.000607327,0.000576486,0.000604228,0.000666705,0.000706175,0.000700073,0.000600057,0.000627551,0.000630802,0.000623602,0.000608588,0.000592093,0.00062368,0.000708265,0.000639893,0.000604856,0.000573183,0.000605514,0.000660075,0.000668678,0.000665533,0.000648508,0.000608643,0.000594533,0.000541113,0.000745641,0.000758846,0.000778716,0.000432284,0,0,0,0,0,0 +PATTERNS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000783515,0.000783699,0.000782963,0,0,0,0,0,0,0,0,0,0,0.001110124,0.001110124,0.001110535,0,0,0,0.000572115,0.000572508,0.000571559,0,0,0,0.000476713,0.000476758,0.000476622,0,0,0,0.000517112,0.000517063,0.000516917,0,0,0,0.000823982,0.000823594,0.000824532,0,0,0,0.000474539,0.000474591,0.000474158,0,0,0,0.000372273,0.00037219,0.000372176,0,0,0,0.00076143,0.000757758,0.000757106,0,0,0,0.000589458,0.000587799,0.000587145,0,0,0,0.000643501,0.000614165,0.000613035,0,0,0,0.0004694,0.000444277,0.00044239,0,0,0,0,0.000590177,0.000568194,0.000503715,0,0,0,0.000482719,0.000419775,0.000424051,0,0,0,0,0,0.000471202,0,0.000634417,0,0,0,0.000685714,0.000623344,0.000488026,0.000487401,0.000674099,0.000580619,0.000493274,0,0.000316921,0,0.000422369,0,0.000446012,0,0,0,0.000561568,0.000582309,0.000452694,0,0.000332204,0,0,0,0.000675432,0.000638524,0.000690918,0.000695679,0.000627928,0.000511326,0,0,0,0,0,0,0.000658013,0.000813769,0.000914679,0.000970911,0.001062699,0.000671756,0.000671667,0.000467181,0.000660847,0.000706845,0.000803576,0.000605694,0.000555273,0.000462535,0.000486934,0.000411809,0.000521169,0.000660001,0.000656743,0.000473096,0.000440773,0.000359366,0.000397679,0.000429225,0.000528204,0.000387547,0.000303689,0.000319846,0.000405433,0.000386204,0.000427817,0.000472389,0.000491432,0.000514037,0.000582301,0.000663438,0.000678378,0.000599944,0.00058779,0.000586163,0.00060438,0.000589238,0.000541755,0.000476761,0.00065946,0.000694029,0.000765585,0.000635524,0.000579081,0.000551382,0.000616177,0.000698899,0.000754516,0.000709616,0.000678011,0.000587231,0.000565637,0.000544595,0.000610564,0.000667747,0.000764997,0.000641269,0.000666256,0.000647769,0.000652379,0.000628032,0.000620725,0.000625439,0.000574176,0.000614451,0.000629974,0.000658981,0.000627929,0.000631614,0.000677637,0.000617798,0.000554012,0.000526579,0.000535814,0.00060024,0.000521299,0.000527765,0.000540618,0.000580139,0.000592146,0.000610832,0.000596585,0.000667893,0.000615227,0.000617043,0.000459732,0.000488412,0.000520734,0.000652395,0.000658081,0.000688064,0.000640905,0.000651423,0.000676137,0.000593142,0.000627589,0.000594202,0.000656076,0.000705791,0.000782264,0.000823846,0.000647257,0.000584739,0.000437273,0.000577389,0.00069273,0.000778636,0.000742385,0.000716168,0.000675567,0.000644358,0.000622779,0.00063027,0.000642827,0.000634894,0.000611612,0.000586076,0.00063952,0.000739674,0.000743563,0.000716683,0.000678183,0.000601103,0.000674138,0.000643953,0.000583663,0.000566476,0.000549396,0.000569274,0.00061793,0.000647705,0.000603611,0.000584185,0.000560047,0.000625207,0.000683858,0.000624255,0.000626433,0.000625785,0.000639221,0.000620352,0.000576996,0.000551092,0.00057465,0.00057404,0.000603069,0.00061248,0.000680246,0.00061857,0.000585325,0.000593468,0.000586385,0.000591246,0.00050341,0.000553206,0.000608387,0.000600636,0.000608845,0.00057311,0.000606521,0.000523676,0.000508059,0.000527267,0.000531833,0.000576037,0.000568796,0.000561767,0.000517641,0.000554891,0.000569959,0.000608273,0.000632669,0.000620288,0.000578235,0.000597887,0.000598556,0.000604817,0.000520515,0.000496883,0.000484796,0.000523743,0.000527764,0.000554285,0.000589071,0.000553945,0.000566935,0.000498991,0.000490413,0.000453993,0.000456939,0.00050007,0.000518032,0.000494764,0.000508569,0,0,0,0,0,0 +SPATIAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000307761,0.000307082,0.000306518,0,0,0,0.000312933,0.000310994,0.000287553,0,0,0,0,0.000327876,0.000327804,0.000314822,0,0,0,0.000328249,0.00026713,0.000265032,0,0,0,0,0,0.000434956,0,0,0,0,0,0,0,0,0,0,0,0.00044843,0,0,0,0,0,0.000486559,0.000394096,0.000413236,0.000405285,0.00061262,0.000698771,0,0,0,0,0,0,0,0.000425683,0.000552734,0.000541084,0,0,0,0.000533211,0.000764693,0.000915865,0.000681857,0,0,0,0.00051222,0.000582547,0.000783042,0.000610687,0.000615695,0.000389317,0.000556502,0.000669643,0.000853799,0.000605694,0,0.000495573,0.000454472,0.000380132,0.000429198,0.000495,0.000594196,0.000622494,0.000620347,0.000590387,0.000544967,0.000447887,0.000473562,0.000426302,0.000478894,0.000442864,0.000489898,0.000386204,0.000354055,0.000369433,0.000383758,0.000374275,0.000393447,0.000329906,0.000335245,0.000333642,0.000416256,0.000422037,0.000467586,0.000492077,0.000554578,0.000455804,0.000445803,0.000457383,0.000488925,0.000543151,0.000537718,0.000523965,0.000492515,0.000452735,0.000478474,0.000466559,0.00053466,0.000438275,0.000443557,0.000431269,0.00047156,0.000502531,0.000453057,0.000498441,0.000527708,0.000542919,0.000525528,0.00053372,0.000582171,0.000519287,0.000501019,0.000617478,0.000684476,0.000709208,0.000550754,0.000506404,0.000542902,0.000566775,0.000569097,0.000541768,0.00045258,0.000409013,0.000484844,0.000509832,0.000511251,0.000486936,0.000430652,0.000464622,0.000542135,0.000656124,0.000699504,0.000734778,0.000684489,0.000615456,0.000544226,0.000569463,0.000559078,0.0005845,0.000576003,0.000549461,0.000527716,0.000539356,0.000617031,0.000626208,0.000642117,0.000558217,0.000581902,0.000659674,0.000721321,0.000752175,0.000756186,0.000629354,0.000673751,0.000705804,0.000731007,0.000737905,0.000742656,0.000732476,0.000671846,0.000711818,0.000755018,0.000783697,0.000750067,0.000633965,0.000581002,0.000623887,0.000666471,0.00067189,0.000674979,0.000620493,0.000620816,0.000534067,0.000578674,0.000573891,0.000635029,0.000688904,0.000708802,0.000653921,0.000648353,0.000666498,0.000707319,0.000652872,0.000605874,0.000570865,0.000697582,0.000745649,0.000811783,0.000774172,0.000677032,0.000588244,0.000616976,0.000622636,0.000646145,0.00061567,0.000629182,0.000606098,0.000599309,0.00061325,0.000621683,0.000636879,0.000688206,0.000614674,0,0.000636157,0.000658639,0.000596203,0.000497961,0.000522108,0.000589009,0.000638019,0.000643772,0.00062921,0.000532099,0.0005679,0.000537405,0.00067402,0.000675108,0.000765005,0.000632669,0.000656605,0.000588344,0.000619511,0.000605913,0.000633658,0.000635403,0.000612182,0.000592528,0.000564031,0.00055911,0.000533289,0.000457582,0.00048403,0.000525853,0.000590863,0.000582102,0.000585703,0.000523075,0.000502303,0.000506831,0.000382904,0.000508569,0,0,0,0,0,0 +STUDIED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00030657,0.000462,0.000625469,0.000672294,0.001044796,0.001090932,0.001060477,0.00067183,0.000491776,0.000516729,0.000607377,0.000651995,0.0007264,0.000654868,0.00057534,0.000890272,0.001076732,0.001065974,0.001096405,0.001163735,0.00123449,0.001160096,0.001166431,0.001165931,0.00122617,0.001128329,0.001138007,0.001074021,0.001123752,0.001103685,0.001101871,0.000990234,0.000958241,0.000962634,0.001068182,0.001025969,0.001024425,0.000916355,0.001104189,0.001097119,0.00115976,0.001062433,0.001073326,0.00101883,0.000961817,0.000891946,0.000788505,0.000970935,0.000985158,0.001052435,0.000867473,0.000826268,0.000937747,0.000895949,0.000886452,0.000896054,0.0008349,0.000848644,0.000891628,0.000939108,0.000870786,0.000813497,0.00072829,0.000871145,0.000774657,0.000764747,0.000740847,0.000795076,0.000692119,0.000792782,0.000710221,0.000785583,0.000752479,0.000753218,0.000623192,0.000581578,0.000667558,0.000823787,0.000810663,0.000797303,0.000663215,0.000713733,0.000760654,0.000871037,0.000758972,0.000738926,0.000616193,0.000651253,0.000707661,0.000780564,0.00069878,0.000690352,0.000549057,0.000629354,0.00061112,0.000798499,0.000723422,0.000748202,0.000577274,0.000556241,0.000586922,0.000758811,0.00070246,0.000669064,0.00060198,0.000602039,0.0006437,0.000709706,0.000639945,0.000619491,0.000530799,0.000489069,0.000517982,0.00065695,0.000563709,0.000552389,0.000471461,0.000474395,0.000499796,0.000566897,0.000532024,0.000500273,0.000431444,0.000402051,0.000503895,0.000592768,0.000563463,0.000516817,0.00044161,0.000324544,0.000376923,0.000480502,0.000479418,0.000460903,0.000399861,0.000358875,0.000375685,0.000537507,0.000579332,0.000508404,0.00050066,0.000392841,0.000420571,0.000473156,0.000543605,0.000525718,0.000501713,0.000420911,0.000318601,0.000366887,0.000471824,0.00044518,0.000444876,0.000373572,0.00031192,0.000371649,0.000445171,0.000441509,0.000437924,0.000405266,0.000330466,0.000335566,0.000377066,0.000421969,0.000438718,0.00043177,0.00031184,0.000333543,0.000426286,0.000425978,0.000425409,0.000364484,0.000278757,0.000294003,0.000387347,0.000389706,0.000384851,0.000335528,0.000212437,0.000196456,0.000277217,0.000301161,0.000470427,0,0,0,0,0,0 +CONTRIBUTE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00025669,0.000265119,0.000242605,0,0.000193773,0.000198566,0.000184527,0,0.000218289,0.000324551,0.000351264,0.00042241,0.000433496,0.000448529,0.000467669,0.000500895,0.000581579,0.000498592,0.000483851,0.000475048,0.000501479,0.000512904,0.000440087,0.000451966,0.000415622,0.00044361,0.000443389,0.000661807,0.000810318,0.000737707,0.000650699,0.000529593,0.000488909,0.000453299,0.000395307,0.000441523,0.000478488,0.000499712,0.000491058,0.00050876,0.00051593,0.00050937,0.000485468,0.0004794,0.000452269,0.000377833,0.000390182,0.000489934,0.000503971,0.000527383,0.000504281,0.000466562,0.000464667,0.000427981,0.000485413,0.000475847,0.00050295,0.000457783,0.000478067,0.000452035,0.000470121,0.00047254,0.000488839,0.000403736,0.000415886,0.000421398,0.000479588,0.00048881,0.000489379,0.000441342,0.000372661,0.000454174,0.00046027,0.000489193,0.000459655,0.000509073,0.00050981,0.00047412,0.000467641,0.000452802,0.000499575,0.000498538,0.000542176,0.000509431,0.000494009,0.000469073,0.000454654,0.000409327,0.000418607,0.000480166,0.000532333,0.000528108,0.00051253,0.000486783,0.000479138,0.000445381,0.000467173,0.000451798,0.000471762,0.000491216,0.000535906,0.000587271,0.000527171,0.00048659,0.000444546,0.00046565,0.000493378,0.000624625,0.000609688,0.000636399,0.000621345,0.000628294,0.000596088,0.000665184,0.000673812,0.000683333,0.000652113,0.000652352,0.000625207,0.000655864,0.000665324,0.000670594,0.000660032,0.000653138,0.00061021,0.000650237,0.000658833,0.000730929,0.000728181,0.000740725,0.00068585,0.000722192,0.000698385,0.000700193,0.000684466,0.000694441,0.000684496,0.000681834,0.000711878,0.000668475,0.000696867,0.000691835,0.0007568,0.000811842,0.000749452,0.000705424,0.000683189,0.000684128,0.000672157,0.000700903,0.000742072,0.00069458,0.000704325,0.000682277,0.000732912,0.000723982,0.000679847,0.000706619,0.00073114,0.000748362,0.000753264,0.000764359,0.000753561,0.000698403,0.000687581,0.000676177,0.000680259,0.000654815,0.000740386,0.000741828,0.000774007,0.000740144,0.000740222,0.00067138,0.000721084,0.000758846,0.000709879,0.00066114,0.001029101,0,0,0,0,0 +CENTRAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000951928,0.000951475,0.000951098,0,0,0,0,0.000740083,0.000740083,0.000740357,0,0,0,0.00074375,0.000744261,0.000743027,0,0,0,0.000953425,0.000953516,0.000953243,0,0,0,0.000705152,0.000705086,0.000704887,0,0,0,0.001020168,0.001019688,0.001020849,0,0,0,0.000766563,0.000766647,0.000765948,0,0,0,0.000632864,0.000632723,0.000632699,0,0,0,0.00076143,0.000757758,0.000757106,0,0,0,0.000775603,0.000804356,0.000803461,0,0,0,0.000531587,0.000530415,0.000557305,0,0,0,0.000648219,0.000710843,0.000685704,0,0,0,0,0.000983628,0.000983413,0.000944465,0,0.002069734,0.002398604,0.000656497,0.000648744,0.000671414,0,0.001059581,0.001204687,0.001033859,0.000884357,0.000797419,0.000713423,0.000528681,0,0,0,0.000457143,0,0.00034859,0,0.000570391,0.000580619,0.000493274,0.000590257,0.000633841,0.000547514,0.000633553,0.000577974,0.000486559,0.000465749,0.000476811,0.000607927,0.00061262,0.00064054,0.000814848,0.000782556,0.00083051,0.000687469,0.000574713,0.000625554,0.000540346,0.000780419,0.000656372,0.000772977,0.000579626,0.000818121,0.000826712,0.00087599,0.000691865,0.000624454,0,0,0.000717832,0.000935834,0.000804917,0.000699056,0,0.000854962,0.000839584,0.000778634,0.000626065,0.000744048,0.001054693,0.00126645,0.001018,0.000660764,0.000519396,0.00053852,0.000643797,0.000462,0.000719289,0.000622494,0.000555048,0.0003722,0.000368221,0.000410563,0.000564632,0.000568402,0.000525615,0.000492071,0.000473005,0.000503745,0.000501578,0.000599571,0.000728865,0.000665642,0.000653122,0.000594556,0.000650769,0.000648919,0.000647255,0.000650108,0.000646662,0.000567299,0.00058984,0.000618217,0.000714928,0.00069204,0.00067734,0.000557931,0.000641125,0.000694559,0.000703593,0.000619713,0.000576622,0.000477734,0.000581152,0.000581502,0.000669405,0.000582371,0.00062464,0.000601201,0.000731575,0.000609205,0.000635694,0.000568773,0.000596367,0.000510142,0.000570605,0.000591011,0.00060743,0.000558455,0.000538604,0.000574599,0.000620913,0.000620484,0.000588474,0.000569533,0.000580067,0,0.000621648,0.000576337,0.000583271,0.000576443,0.000584668,0.000557314,0.000492173,0.000542601,0.0005374,0.000570798,0.000545397,0.000577325,0.000570067,0.000714268,0.000669516,0.000703536,0.000632457,0.000634154,0.000594257,0.000702404,0.000674075,0.000631988,0.000586532,0.000563587,0.000606223,0.000628796,0.000637321,0.000610422,0.000585,0.000577011,0.000509604,0.000502328,0.000542796,0.000632973,0.000590684,0.000586892,0.000605358,0.000702185,0.000709591,0.000749136,0.000710546,0.000691109,0.000639303,0.000618002,0.00064579,0.000713792,0.00068305,0.000658368,0.000636531,0.000594639,0.000636051,0.000613232,0.000622146,0.000599842,0.000579223,0.000571337,0.000634287,0.000667596,0.000603611,0.000564206,0.000537231,0.00053115,0.000647865,0.00061741,0.000637882,0.000606326,0.000572423,0.000449628,0.000476959,0.000564714,0.000658488,0.000659083,0.000634908,0.00059015,0.000614592,0.000692149,0.000617288,0.00054599,0.000530916,0.000471211,0.000488542,0.000497457,0.000554872,0.000572865,0.000577158,0.000561564,0.000512121,0.000526812,0.000562797,0.000539428,0.00053952,0.00050923,0.000535769,0.000554407,0.000623992,0.00060505,0.000605805,0.000575433,0.000523963,0.000534581,0.000564083,0.000541196,0.00053636,0.000518293,0.00058851,0.000605319,0.000641751,0.000531264,0.000511131,0.000438389,0.000502288,0.000525262,0.000581021,0.000514603,0.000492223,0.00047386,0.000533096,0.000609461,0.000672041,0.00063674,0.00075014,0,0,0,0,0,0 +RESOLUTION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000588558,0.000588281,0.000588951,0,0,0,0.001496623,0.001496787,0.001495423,0,0,0,0.000856228,0.000856037,0.000856005,0,0,0,0.000588378,0.000585541,0.000585037,0,0,0,0.000372289,0.000371241,0.000401731,0,0,0,0.000363718,0.000390832,0.000334383,0,0,0,0.000648219,0.000644201,0.000641465,0,0,0,0,0.000393451,0.000393365,0.000356798,0,0,0,0.00046341,0.000477017,0.000477057,0,0,0,0,0.00052021,0.00039871,0,0,0,0,0,0,0,0,0,0,0,0.000493274,0.000555536,0.000403354,0.000513294,0.000591316,0.000735603,0.000567652,0.000644884,0.000603961,0.00052687,0,0,0,0.000569132,0.000664408,0.000687469,0.00052682,0,0,0.000390209,0.000552734,0.000579733,0.000483022,0,0.00059707,0.000533211,0.000473381,0.000457933,0.000625036,0.00072636,0.000837471,0.000895146,0.000804917,0.000776729,0.000838973,0.000916031,0.000783611,0.000622907,0.000591284,0.000595238,0.000552458,0.000660757,0.000601546,0.000594687,0.000681708,0.000665231,0.000674454,0.000495,0.000562922,0.000597595,0.000522398,0.000449207,0.000427136,0.000447887,0.000546418,0.000503811,0.000397131,0.00034445,0.000320968,0.00045337,0.000457322,0.000545065,0.000499714,0.000469029,0.000472136,0.000572804,0.000623161,0.000560152,0.000402533,0.000415643,0.000415356,0.000592372,0.000653953,0.000618217,0.000519761,0.000445451,0.00043884,0.000550541,0.000706616,0.000676281,0.00054795,0.000562906,0.000515279,0.000589484,0.00053466,0.000618741,0.000502563,0.000473767,0.000438128,0.00054154,0.000687012,0.000702481,0.000580682,0.000522811,0.000485989,0.000538007,0.000705545,0.000688557,0.000609647,0.000505485,0.000506544,0.000516336,0.000585833,0.000659438,0.000608288,0.000619177,0.000549898,0.000573836,0.000587834,0.000650703,0.00057598,0.000609748,0.00061003,0.000701873,0.000803627,0.00083502,0.00079308,0.000732622,0.00070432,0.00069506,0.000696749,0.000666273,0.000587294,0.000536291,0.00054743,0.000571732,0.000673356,0.000674082,0.000599865,0.00054832,0.000594743,0.000633166,0.000713907,0.000753913,0.000669294,0.000522366,0.000582853,0.000591179,0,0.000739058,0.000658568,0.000638269,0.000617232,0.00063151,0.000553871,0.000671895,0.000592584,0.000626123,0.000623623,0.000658041,0.00067181,0.000627124,0.000658329,0.000574848,0.000631655,0.000636394,0.000680319,0.00061403,0.000575112,0.000582512,0.000612882,0.00061393,0.000663894,0.000682716,0.000717889,0.000580572,0.000625575,0.000596972,0.000615015,0.000586478,0.000603874,0.00064342,0.000596175,0.000611775,0.000607678,0.000591616,0.000541269,0.000517655,0.000612092,0.000626433,0.000677047,0.00057739,0.000547115,0.000538754,0.000526393,0.000554562,0.000553248,0.000585294,0.000582002,0.000556065,0.000554872,0.000590302,0.000620917,0.000639239,0.000538081,0.000497022,0.00050035,0.000583295,0.000599573,0.000698743,0.000801819,0.000689329,0.000575052,0.000606095,0.000620144,0.000636634,0.000610928,0.000605761,0.00059441,0.000591458,0.000591868,0.000599727,0.000534583,0.000535316,0.000505228,0.00050924,0.000497697,0.000503896,0.000454952,0.000516298,0.000478902,0.000550031,0.000533241,0.000553327,0.000456939,0.000464351,0.000464828,0.000451741,0.000470427,0,0,0,0,0,0 +NUMERICAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000752162,0.000752092,0.00075188,0,0,0,0.000627796,0.0006275,0.000628215,0,0,0,0.000584048,0.000584112,0.00058358,0,0,0,0.00055841,0.000558285,0.000558264,0,0,0,0.000796041,0.000792202,0.00079152,0,0,0,0.000651506,0.000649672,0.000679852,0,0,0,0.000839349,0.000837498,0.000863823,0,0,0,0.000983504,0.000999622,0.000973258,0,0,0,0,0.000896194,0.000917852,0.000881501,0,0,0,0.000656497,0.000648744,0.000653745,0,0,0,0.000827087,0.000832336,0.000761173,0.000713423,0.000740153,0.001174876,0.001058014,0,0.000777143,0.000935016,0.000906334,0.000633621,0,0,0.000627803,0.000624978,0.000547408,0.000444855,0.000422369,0.000577974,0.000405466,0.000716538,0.000540386,0.000688984,0.00091893,0.001164619,0.001041195,0.000640273,0.000730848,0.000649276,0.000718391,0.000886201,0.000900576,0.001028734,0.000863647,0.00100487,0.000724533,0.000766989,0.000459284,0.000723644,0.000764693,0.000874235,0.000681857,0.000924459,0.001196387,0.000976523,0.00076833,0.000621383,0,0.000610687,0.000559722,0.001167951,0.001043442,0.001190476,0.000904023,0.001101261,0.000925455,0.000958108,0.000779094,0.000823619,0.000797081,0.000957001,0.000938204,0.000821693,0.000963171,0.000911249,0.000927917,0.000746478,0.00050999,0.000568402,0.0007125,0.000885729,0.000979796,0.000772408,0.000649102,0.000635909,0.000687452,0.000717756,0.000716073,0.000587306,0.000540336,0.000578518,0.000747888,0.000711921,0.000713815,0.000604909,0.000634719,0.000686326,0.000784778,0.000791471,0.000779895,0.000676167,0.000592868,0.000664096,0.000797406,0.000791856,0.000781098,0.000639772,0.000670262,0.00062447,0.000722307,0.000766526,0.000783,0.000711345,0.000709294,0.000655843,0.000709044,0.000665004,0.000706744,0.000696622,0.000651569,0.000613963,0.000594128,0.000699203,0.000687682,0.00070519,0.000410434,0.000503621,0.000655842,0.00072674,0.000706228,0.000621093,0.000504601,0.000549777,0.000685343,0.000718632,0.000686117,0.000601062,0.000484483,0.000448377,0.000487685,0.000695844,0.000694689,0.0007135,0.000482207,0.000448888,0.000475709,0.000680039,0.000745437,0.000791629,0.000653074,0.000484319,0.00050298,0.000702208,0.000660435,0.000686046,0.000524462,0.000519719,0.000547798,0.000586543,0.000625789,0.00064141,0.000578647,0.000441702,0.000406148,0.000480688,0.000530004,0.000575452,0.000581955,0.000545226,0.000443494,0.000510021,0.000600376,0.000627178,0.000628467,0.000462931,0.000480685,0.000562588,0.000618392,0.000620336,0.000582063,0.000448134,0.000477991,0.000538794,0.000557295,0.000543491,0.000554207,0.000515647,0.000516153,0.000519656,0.000549107,0.00061695,0.000592198,0.000575412,0.000391918,0.000584554,0.000573276,0.00061878,0.000535313,0.000500338,0.000446591,0.000554807,0.000627557,0.000655287,0.00061056,0.00052316,0.000466871,0.000582403,0.000602306,0.000618525,0.000633929,0.000589262,0.000477921,0.000414547,0.000554872,0.00059224,0.00064355,0.000607749,0.000462561,0.000457824,0.000540439,0.000604577,0.000608221,0.000553541,0.000308251,0.000312774,0.000365172,0.000526676,0.000568166,0.000594092,0.000467436,0.000453231,0.000500396,0.000572756,0.000582505,0.000587852,0.000356388,0.000373349,0.000458791,0.000561883,0.000598132,0.00062735,0.000462841,0.000406943,0.000401432,0.000442547,0.000469301,0.000440749,0.000442911,0.000321474,0.000403225,0.000331277,0.000521284,0,0,0,0,0,0 +INVESTIGATOR,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003369896,0.005129037,0.005670299,0.005058402,0.001023001,0,0.000746993,0.002399765,0.002477058,0.002503903,0.001045069,0.000437135,0.000723421,0.001495083,0.001636138,0.001706196,0.001175404,0.001283451,0.001386887,0.001678598,0.001651076,0.001555426,0.00100422,0.000631049,0.000609127,0.001063511,0.001227744,0.001350528,0.000962214,0.000695627,0.000888032,0.001341518,0.001431807,0.001423846,0.000820269,0.000513589,0.000432576,0.001170523,0.001409847,0.001666479,0.001167793,0.000736126,0.000627335,0.001287944,0.001341027,0.001497377,0.001011946,0.000731575,0.000562567,0.000851667,0.001077221,0.001166375,0.001009566,0.000435664,0.000441824,0.000629599,0.000898976,0.000904085,0.000867926,0.000396402,0.000450755,0.000671693,0.000860504,0.000852959,0.000767927,0.00045258,0.000446196,0.000692634,0.000762185,0.00075286,0.000604866,0.000322989,0.000337907,0.000511359,0.000766458,0.000706728,0.000668109,0.000363699,0.000400893,0.000550099,0.000825169,0.000793191,0.000791629,0.000580059,0.000589113,0.000649339,0.000863567,0.000822317,0.000809896,0.000512497,0.000359312,0.000407118,0.000740268,0.000692339,0.00072384,0.000458643,0.000401285,0.000556082,0.000852792,0.000750918,0.000732185,0.00046494,0.000418558,0.000460479,0.000695232,0.000680224,0.000682291,0.00053817,0.000392237,0.000380368,0.000732863,0.000624195,0.000638084,0.000437882,0.000469679,0.000470373,0.000691216,0.000545892,0.000531628,0.00035985,0.000340327,0.000379845,0.000606679,0.0005849,0.000572198,0.000443889,0.000350411,0.00033793,0.000651634,0.000614166,0.000594651,0.00043326,0.000387086,0.000439446,0.000643972,0.000614534,0.000593023,0.000469157,0.000368445,0.000331916,0.000596121,0.000589321,0.000555222,0.000532357,0.00042657,0.000450308,0.000528905,0.000584916,0.000471467,0.000434566,0.000310697,0.000292641,0.000376294,0.00050883,0.000457341,0.000448239,0.000337442,0.000220179,0.000305415,0.000409407,0.000393962,0.00037818,0.000325407,0.000278287,0.000319586,0.000431655,0.000435996,0.000442062,0.000363908,0.000236811,0.000377467,0.000465293,0.000409863,0.00037871,0.000321653,0.000260348,0.000254564,0.00034157,0.000324855,0.000310655,0.000267098,0.000186383,0.000196456,0.000254816,0.000301161,0.000610283,0,0,0,0,0,0 +ENHANCE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000277524,0.000308028,0.000353492,0.000205281,0.000528204,0.000568402,0.000619058,0.000504373,0.000405433,0.000352621,0.000309798,0.000442108,0.000403084,0.000400333,0.000380332,0.00036616,0.000343133,0.000428532,0.00045285,0.000483851,0.000465099,0.000454466,0.000468025,0.000461043,0.000435531,0.000443463,0.00043407,0.000450778,0.000434311,0.000435622,0.000411495,0.000413142,0.000396683,0.000463765,0.000437801,0.000492701,0.00048832,0.000528856,0.000515548,0.000479584,0.000412207,0.000437229,0.000499183,0.000496958,0.000494227,0.000495138,0.000501207,0.000573798,0.000547573,0.000540293,0.000501735,0.000500263,0.000484102,0.000495274,0.000461665,0.000511614,0.000522472,0.000546832,0.000481192,0.000419637,0.000464794,0.000520079,0.000552631,0.000570629,0.000515244,0.000474369,0.000511359,0.000511953,0.000542989,0.000534771,0.00057824,0.000542053,0.00055793,0.000540437,0.00054743,0.000526334,0.000539496,0.000470158,0.000509164,0.000503498,0.000558378,0.000552455,0.00055238,0.000417058,0.000468932,0.000459682,0.000605394,0.000618226,0.000687143,0.000450363,0.000474472,0.000464798,0.000513886,0.000504521,0.000493024,0.000481892,0.000524644,0.00048376,0.000555904,0.000551123,0.000622448,0.000579234,0.000520394,0.000459061,0.000494051,0.000520609,0.000569247,0.000592485,0.000578921,0.000578967,0.000701963,0.000725149,0.000779353,0.000726031,0.000690628,0.000627814,0.000667877,0.000665699,0.000699022,0.00061783,0.000593876,0.000581816,0.000630522,0.00064213,0.000686537,0.000691346,0.000678819,0.000570906,0.000616162,0.000615043,0.00066581,0.000620455,0.000621887,0.000576168,0.000634269,0.000621163,0.000637531,0.000617038,0.000662717,0.00065184,0.000612143,0.000654241,0.000654113,0.000714814,0.000738681,0.000689873,0.000659166,0.000659735,0.000672598,0.000711695,0.000866038,0.000769056,0.000682345,0.000660435,0.000660172,0.00069261,0.000704415,0.000711806,0.000665173,0.000671527,0.000662759,0.00069643,0.000668228,0.000583358,0.00061296,0.000635475,0.000664662,0.000654224,0.000589071,0.000588006,0.000529374,0.000622688,0.000630359,0.000693867,0.00067138,0.000700991,0.000672041,0.0007486,0.000788283,0,0,0,0,0,0 +EXAMINE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000243855,0.000324035,0.000391901,0.000327851,0.000271283,0.000292008,0.000282941,0.000337861,0.000352621,0.000413065,0.000490558,0.000634996,0.000698805,0.00073968,0.000815702,0.000788811,0.000746869,0.000709007,0.000756683,0.000793404,0.000818038,0.000785385,0.000733478,0.000758071,0.000785505,0.000846675,0.000853523,0.000837599,0.000746346,0.000756896,0.000766034,0.000791322,0.00080181,0.000747749,0.00068749,0.00067144,0.000681531,0.000724935,0.000725113,0.000779852,0.000766607,0.000782393,0.000830178,0.000851717,0.000859525,0.000871329,0.000803317,0.000811384,0.000794549,0.000822333,0.00083779,0.000771757,0.000687262,0.00063999,0.000641241,0.000612979,0.000636283,0.000613845,0.000701165,0.000665294,0.000695574,0.000695461,0.000705677,0.000676738,0.000802529,0.000769406,0.000738507,0.000671813,0.000702153,0.00067836,0.000742499,0.000667558,0.00068695,0.000690694,0.000702251,0.000683497,0.000668417,0.000719426,0.000667845,0.000694453,0.000688829,0.000819597,0.000997732,0.000918681,0.000829816,0.000691266,0.000683913,0.000682211,0.000842988,0.000799012,0.000778636,0.000732904,0.000728753,0.000728614,0.000762766,0.000726575,0.000707671,0.000679213,0.000661348,0.000663382,0.000668172,0.000729387,0.000642958,0.000583577,0.000550189,0.000540411,0.000598948,0.000655095,0.000584875,0.000496007,0.000450808,0.00045318,0.000517709,0.000656096,0.000655164,0.000599543,0.000552219,0.000532045,0.000558814,0.000641866,0.000524319,0.000499675,0.000502029,0.000555724,0.000591616,0.00060915,0.000527562,0.00055593,0.000523166,0.000546882,0.000550275,0.000640124,0.000576168,0.000549367,0.000519614,0.000536679,0.0005099,0.000505534,0.000520329,0.000568955,0.000539281,0.000545471,0.000539522,0.000615961,0.000542491,0.000471824,0.00046125,0.00046169,0.000451967,0.000399992,0.000461188,0.000473406,0.000538171,0.000538892,0.000548565,0.00053266,0.000589782,0.000533755,0.000500869,0.000470151,0.00050048,0.000494723,0.000485903,0.000406783,0.00037817,0.000355041,0.000375402,0.000447063,0.000494786,0.000468338,0.000443748,0.000410186,0.000409109,0.000400824,0.00050007,0.000543233,0.000520578,0.000508569,0,0,0,0,0,0 +EQUATIONS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000740083,0.000740083,0.000740357,0,0,0,0.000858173,0.000858762,0.000857339,0,0,0,0.001096439,0.001096544,0.00109623,0,0,0,0.001316284,0.001316161,0.001315789,0,0,0,0.001373303,0.001372657,0.00137422,0,0,0,0.001241102,0.001241238,0.001240107,0,0,0,0.001340183,0.001339884,0.001339834,0,0,0,0.00228429,0.002273275,0.002271319,0,0,0,0.001675302,0.001701522,0.001699629,0,0,0,0.001566784,0.001563329,0.001560454,0,0,0,0.001251732,0.001243974,0.001238691,0,0,0,0,0.001857964,0.001857558,0.001825967,0.001912412,0.001592103,0,0.001312995,0.001316568,0.00130749,0.001117214,0.001059581,0,0.000827087,0.000884357,0.001159883,0.001152453,0.001321702,0,0,0,0.000914286,0.001480443,0.001498937,0.001315982,0.000570391,0,0.000896861,0.001284678,0.001238872,0.000958149,0,0,0.000851478,0.002077959,0.001811882,0.001823782,0,0,0.000543232,0.001422829,0.001362036,0.00126036,0,0,0.000585375,0.001702731,0.001692749,0.0016619,0,0,0,0.002018586,0.001966354,0.002081512,0,0,0,0.00183098,0.001646422,0.001902987,0.000559315,0.000854962,0.000951528,0.001946586,0.001669507,0.0015625,0,0,0,0.001486719,0.001525726,0.001393817,0.000889052,0.000462,0.000437828,0.000896392,0.001322319,0.001167939,0.001060477,0.000522534,0.000346065,0.000607157,0.000934427,0.001082557,0.000996689,0.000486953,0.000501578,0.001035623,0.001245144,0.001153621,0.000973125,0.000485796,0.000406238,0.000805027,0.00115957,0.001112643,0.000917762,0.000419989,0.000375061,0.000652271,0.001039522,0.001127548,0.001032706,0.000605964,0.000386054,0.000484363,0.001006352,0.000934734,0.000981485,0.00047494,0.000499791,0.000486972,0.000958328,0.000994752,0.001034616,0.000640211,0.000304513,0.00040225,0.000794618,0.000812943,0.000846775,0.000561585,0.000404821,0.000516418,0.00083577,0.000895949,0.000859202,0.000592681,0.000217495,0.000392324,0.001034288,0.001046671,0.000991462,0.000583962,0.000278311,0.000254969,0.000920475,0.000910779,0.000953089,0.000545901,0.00036913,0.000302167,0.000712588,0.001076866,0.00094391,0.000791517,0.00024519,0.000217386,0.000401318,0.000970299,0.000898018,0.000919311,0.00031234,0.00022375,0.000558637,0.000962175,0.000801202,0.000683263,0.000227333,0.00022457,0.000566982,0.001010406,0.000876963,0.000820438,0.000353435,0.000204973,0.000231543,0.000726992,0.000647572,0.000719601,0.000297998,0.000173481,0.000254773,0.000641327,0.000693364,0.000678984,0.000493624,0.000198399,0.000298861,0.000949453,0.000820655,0.000794436,0.00042293,0.000193904,0.000281843,0.000719573,0.000570835,0.000537559,0.000240541,9.28E-05,0.00014176,0.000620354,0.000646726,0.000642524,0.000405516,0.000230534,0.000285941,0.000694073,0.000663234,0.000633568,0.000409139,0.000214672,0.000180423,0.000560999,0.000583604,0.000586948,0.000393306,0.00024563,0.000196961,0.000677184,0.000742144,0.000588192,0.000533797,0.000234117,0.000152935,0.000405971,0.000712602,0.000672971,0.000634497,0.000396769,0.0001888,0.000343368,0.000521936,0.000477754,0.000462651,0.000341532,0.000152291,0.000222008,0.000461171,0.000426357,0.000422988,0.000297046,0.000163059,0.000315228,0.000500396,0.000535351,0.000526997,0.000420742,0.000150058,0.000328053,0.000600887,0.000517297,0.000502815,0.000321653,0.000215642,0.000211539,0.000397911,0.000450954,0.000451807,0.000376733,0.000176363,0.000200921,0.000375223,0.000499066,0.000953568,0.000628895,0,0,0,0,0 +EFFICIENT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000382595,0,0,0,0,0,0,0,0.000367884,0,0,0.000373497,0.000620347,0.000808573,0.0007659,0.000690492,0.000218567,0.000335874,0.000408812,0.000541279,0.000523684,0.000503745,0.000427817,0.000442108,0.000560453,0.000549569,0.000529842,0.000380661,0.000295804,0.000364252,0.000416256,0.000485982,0.000480022,0.000432526,0.000330182,0.000330065,0.000414987,0.000495167,0.000493695,0.000417524,0.000241284,0.000261983,0.000326211,0.000440685,0.00047234,0.000483321,0.000422304,0.000366661,0.000455765,0.000508394,0.000570094,0.000559898,0.000449343,0.000384761,0.000415646,0.000472541,0.000525528,0.000523002,0.000454942,0.000404527,0.000403475,0.000514565,0.000538604,0.000570581,0.00041745,0.000381194,0.000410149,0.000504719,0.000563611,0.000594089,0.000582632,0.000539154,0.000532235,0.000531608,0.000545957,0.00052688,0.000446032,0.000406138,0.000487685,0.000516366,0.000516502,0.000502145,0.000533289,0.000415009,0.000381741,0.000454741,0.000568396,0.000604362,0.000573975,0.000388022,0.000412278,0.000487064,0.000525532,0.000553846,0.000498538,0.000401018,0.000400724,0.000432818,0.000596807,0.000632394,0.000631251,0.000320451,0.000354905,0.000426396,0.000634298,0.000677271,0.000730174,0.000459863,0.000471802,0.000545957,0.000599365,0.00065253,0.000633283,0.000535906,0.000420077,0.00047677,0.000571971,0.000607659,0.000595947,0.000452443,0.000358017,0.000461992,0.000599341,0.000623569,0.000637915,0.000490896,0.0004689,0.000461225,0.000539345,0.000596172,0.000624349,0.00053115,0.000369923,0.000513367,0.000682043,0.000706732,0.000716225,0.000601758,0.000580569,0.000580814,0.000601511,0.000624914,0.000608687,0.00056463,0.000481461,0.000515059,0.000576335,0.00067985,0.000700204,0.000709297,0.000482169,0.000493169,0.000608387,0.000692992,0.00072654,0.000677026,0.000507401,0.000428035,0.000582071,0.000657564,0.000700943,0.000707605,0.000618336,0.000562993,0.000547758,0.000670885,0.000691836,0.000742615,0.000589187,0.000562181,0.000669216,0.000756856,0.000791833,0.00072612,0.000550995,0.000539434,0.000692831,0.000757413,0.000804759,0.0007718,0.000560143,0.00057725,0.000673749,0.000775808,0.000836055,0.000849122,0.000821689,0.000607228,0.000543233,0.000610926,0.000711997,0.000571723,0,0,0,0,0 +PARTICIPANTS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000341265,0.000371241,0.000370828,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000431865,0.000458313,0.000670498,0.000886201,0.001215778,0.001206101,0.001001831,0.000772977,0.00067623,0.000971519,0.001928995,0.00175198,0.001529386,0.000749344,0.000852321,0.000792393,0.001016929,0.000447573,0.000402459,0,0,0,0.000895556,0.000583976,0.00048694,0,0,0,0,0.000396458,0,0,0,0.000396,0.000625469,0.000597595,0.000489748,0.000269524,0.000471323,0.00057852,0.001730324,0.001769797,0.001787091,0.001316291,0.000844652,0.000705242,0.001209689,0.000859991,0.000621192,0.000480873,0.000443283,0.000489421,0.000993902,0.001169279,0.000882829,0.000552059,0.000410381,0.000492077,0.000897583,0.000874934,0.000751908,0.00053295,0.000508005,0.000605964,0.000844493,0.000816411,0.000697197,0.000559463,0.000500966,0.000530815,0.000747749,0.000761968,0.000681613,0.000539874,0.00046804,0.000516299,0.000720434,0.001061008,0.000819068,0.000629097,0.000431625,0.000497281,0.000747955,0.000880779,0.000693889,0.000482783,0.000421586,0.000542454,0.000964696,0.000848644,0.000649897,0.000485413,0.000486818,0.000546832,0.000754301,0.000855209,0.000608789,0.000499584,0.000401792,0.000441286,0.000765176,0.000815526,0.000743364,0.000475175,0.000391289,0.000343275,0.000441342,0.00067192,0.000661685,0.000463035,0.000359906,0.000289413,0.000436059,0.000719398,0.000752408,0.00053338,0.000434033,0.000365984,0.000416778,0.000561425,0.000658637,0.000525351,0.000435798,0.000363208,0.000381381,0.000510989,0.000635793,0.000576032,0.000465531,0.000375245,0.000383809,0.000534212,0.000668072,0.000588804,0.000473024,0.000373662,0.000396103,0.000446968,0.00063116,0.000529896,0.000477472,0.000411586,0.000434678,0.000579558,0.000820773,0.000661677,0.000526651,0.000419667,0.000409882,0.000532147,0.000723342,0.000680028,0.00056619,0.000489085,0.000471892,0.000523773,0.000771839,0.000692704,0.00058309,0.000498915,0.000503769,0.000618661,0.000814582,0.000703416,0.00055593,0.00048596,0.000483204,0.00059653,0.000663833,0.00066596,0.000557357,0.000510382,0.000483371,0.000564461,0.00080928,0.000829095,0.000635615,0.000527655,0.000480588,0.000553167,0.000859042,0.000920353,0.000612138,0.000498168,0.00045016,0.000530363,0.000818332,0.000886806,0.000781167,0.000629085,0.00055801,0.000583643,0.00090226,0.000957306,0.00080872,0.000627109,0.000551742,0.000587003,0.000963655,0.000911411,0.000745768,0.000574775,0.000549514,0.000556805,0.000886236,0.000939376,0.000717179,0.000515204,0.00045784,0.000509179,0.000976007,0.0012725,0.001366484,0.001208945,0.000635712,0,0,0,0,0,0 +TRANSFER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003914297,0.003920759,0.003919142,0,0,0,0.001933216,0.001934916,0.001935938,0,0,0,0.000934714,0.000934915,0.000935117,0,0,0,0.002272193,0.002272727,0.002270592,0,0,0,0.00206251,0.002061529,0.002060712,0,0,0,0,0.002442274,0.002442274,0.002443178,0,0,0,0.001830768,0.001832026,0.001828989,0,0,0,0.001048768,0.001048868,0.001048568,0,0,0,0.001692366,0.001692206,0.001691729,0,0,0,0.001530252,0.001529532,0.001531273,0,0,0,0.00146012,0.00146028,0.001458949,0,0,0,0.001563547,0.001563198,0.00156314,0,0,0,0.00152286,0.001515517,0.001514213,0,0,0,0.001706326,0.001701522,0.001699629,0,0,0,0.001874545,0.001842495,0.001839106,0,0,0,0.001743484,0.001710465,0.001703201,0,0,0,0,0.001945398,0.00198868,0.001972883,0,0.001910524,0.002180549,0.00216258,0.002137038,0.002084916,0.002048226,0.001874643,0.002190341,0.002016025,0.002340946,0.001848563,0.001756119,0.001638911,0.002259376,0.00290954,0.002521301,0.001782857,0.001519402,0.001324642,0.001364722,0.001088929,0.001103176,0.001165919,0.001319399,0.00146936,0.001608322,0.001773948,0.001628836,0.00117585,0.001182287,0.001271496,0.001661668,0.001991015,0.002329238,0.001720235,0.001316117,0.000996612,0.000993011,0.000862069,0.000834072,0.001170749,0.001135154,0.001381836,0.001352709,0.001593972,0.001636243,0.001423782,0.001256856,0.000983177,0.000999126,0.001136428,0.001782884,0.001914219,0.001993734,0.001756183,0.001436949,0.001286425,0.001465649,0.001791112,0.001674064,0.0014956,0.001488095,0.001255587,0.001431639,0.001527,0.00145368,0.001460802,0.001235428,0.001379564,0.001452001,0.001438579,0.001344588,0.001322319,0.001360457,0.001384511,0.001511617,0.001274976,0.001072213,0.000759222,0.000676598,0.000608149,0.000822783,0.000899891,0.000835766,0.000814451,0.000824353,0.000807877,0.000754071,0.000753315,0.000774418,0.000811928,0.000835548,0.000848122,0.00081177,0.000753328,0.000667989,0.000667677,0.000676131,0.000684495,0.000657693,0.000561846,0.000700651,0.000692933,0.000721277,0.000676815,0.000743141,0.0008911,0.000910924,0.000813867,0.000687827,0.000647515,0.000653979,0.00079842,0.000868627,0.000696819,0.000738255,0.000667206,0.000812369,0.000736388,0.000734461,0.000676154,0.000679529,0.000679667,0.000709208,0.000585833,0.000587094,0.000473553,0.000591597,0.000611607,0.000752738,0.000767306,0.00074366,0.000628839,0.000622558,0.000642067,0.000684754,0.000784401,0.00079928,0.000724425,0.000614932,0.00055864,0.000590092,0.00067223,0.000705798,0.00063232,0.000604018,0.000580043,0.000568894,0.000561806,0.000682578,0.000641093,0.000581189,0.000498552,0.000494009,0.000516486,0.000708999,0.000613875,0.000589528,0.000562459,0.000600194,0.000611524,0.000649562,0.000601631,0.000488634,0.000467428,0.000453039,0.000516427,0.000633344,0.000543516,0.00048376,0.000423498,0.000449717,0.0004864,0.000638526,0.000608171,0.00056395,0.00051809,0.000519764,0.000506234,0.00046537,0.000504651,0.000471445,0.000507409,0.000499745,0.000513796,0.000544523,0.000523423,0.000530844,0.000469385,0.00049388,0.000503006,0.000547748,0.000519892,0.000454501,0.000435068,0.00043587,0.00044161,0.000520622,0.000482319,0.000460688,0.000427325,0.00047457,0.000585276,0.000744865,0.000720368,0.000572426,0.000526393,0.000477412,0.000466082,0.000526764,0.00066909,0.00059895,0.000556749,0.000483092,0.000486624,0.000416712,0.000481441,0.000500158,0.000555087,0.000489915,0.000485231,0.000421291,0.000464211,0.000450149,0.000478112,0.000448302,0.000452263,0.000441837,0.00050657,0.000509885,0.000498374,0.000504376,0.00050359,0.000488604,0.000431418,0.000441979,0.000500584,0.000492587,0.000504734,0.000461904,0.000383948,0.00037826,0.000435472,0.000479776,0.000498255,0.000506971,0.000519067,0.000502303,0.000470429,0.000473253,0.00041957,0,0,0,0,0,0 +DISTRIBUTION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003339192,0.003342128,0.003343893,0,0,0,0.001006615,0.001006832,0.001007049,0,0,0,0.00156703,0.001567398,0.001565925,0,0,0,0.001269237,0.001268633,0.00126813,0,0,0,0,0.001702191,0.001702191,0.001702821,0,0,0,0.001087019,0.001087766,0.001085963,0,0,0,0.001859179,0.001859356,0.001858825,0,0,0,0.001222264,0.001222149,0.001221805,0,0,0,0.001177117,0.001176563,0.001177903,0,0,0,0.000949078,0.000949182,0.000948317,0,0,0,0.000856228,0.000856037,0.000856005,0,0,0,0.001038314,0.001033307,0.001032418,0,0,0,0.001178916,0.001237471,0.001236094,0,0,0,0.001063175,0.001088747,0.001086745,0,0,0,0.001184675,0.001177333,0.001172333,0,0,0,0,0.000983628,0.000961559,0.000902489,0,0,0,0.000946129,0.000877712,0.000830433,0.000931012,0.000896569,0.001423721,0.00087878,0.000988399,0.000724927,0.000768302,0.000951626,0.001355626,0.001146182,0.001043297,0.000914286,0.000818139,0.00069718,0.000633621,0.000622245,0.000754805,0.000762332,0.000729141,0.000633841,0.000581734,0.000464606,0,0,0.000501576,0.000445024,0.000607927,0.000561568,0.000757002,0.000588502,0.000711415,0.000930171,0.000954818,0.000957854,0.000625554,0.000540346,0.000567577,0.000656372,0.000850274,0.000772835,0.000818121,0.000688927,0.000837904,0.000619037,0.000624454,0,0,0,0.000447573,0.000621982,0.000582547,0.000838973,0.000793893,0.000895556,0.000661839,0.000556502,0.000520833,0.000853799,0.000936072,0.001018,0.000693802,0.000649245,0.00053852,0.000521169,0.000561001,0.000656743,0.000647394,0.000571373,0.000487711,0.000486052,0.00057852,0.00060106,0.000426302,0.000443853,0.000627391,0.000827759,0.000772408,0.000590092,0.00066619,0.000750952,0.000734338,0.000776402,0.00069244,0.000717818,0.00061831,0.000667839,0.00063945,0.000703866,0.000724011,0.000801413,0.000702043,0.000616318,0.000632382,0.000684495,0.000846133,0.000744532,0.00068542,0.000735575,0.000717834,0.000715666,0.000650947,0.000658639,0.000678896,0.000612435,0.000646904,0.000647515,0.000665452,0.000661017,0.000585886,0.000607169,0.000587444,0.000627668,0.000630175,0.000666991,0.000533632,0.000540923,0.000525159,0.000586694,0.000596699,0.000687565,0.000740129,0.000746986,0.000652273,0.00059378,0.000582275,0.000639855,0.000637423,0.000637953,0.00067764,0.000719489,0.000730405,0.000622907,0.000549099,0.000568176,0.000636999,0.000647734,0.000669527,0.000619105,0.000626749,0.000597083,0.00069939,0.000658081,0.000663947,0.000582088,0.000648591,0.000667891,0.000640952,0.000641666,0.00065404,0.000682,0.000676918,0.000637321,0.000674599,0.000631156,0.000618226,0.000596729,0.000635128,0.000637691,0.000662105,0.000712993,0.000726465,0.000706771,0.000608561,0.00056805,0.000602626,0.000615537,0.000643712,0.000646527,0.000672733,0.00064161,0.000659304,0.000649892,0.000649916,0.000649347,0.00054724,0.000575112,0.000545883,0.000532352,0.000525696,0.000542661,0.000604338,0.000596121,0.000528358,0.000504365,0.000476299,0.000458409,0.000534838,0.000609873,0.000598244,0.000532386,0.000544059,0.00055294,0.000540906,0.000532337,0.000574622,0.00061779,0.000561891,0.000525344,0.000429055,0.00049058,0.00047141,0.00048544,0.000493237,0.000507144,0.000503948,0.000558637,0.000507463,0.000520134,0.000494717,0.000507748,0.000491237,0.000413001,0.000423331,0.000493411,0.000529873,0.00053952,0.000537862,0.000537604,0.000598564,0.000556228,0.000482786,0.000443301,0.000416461,0.000439172,0.000517149,0.000522636,0.000505545,0.000485533,0.000486907,0.000429073,0.000392565,0.000418856,0.000480769,0.000506653,0.000512294,0.000520696,0.000501957,0.000501204,0.000431738,0.000419837,0.000393657,0.000384791,0.000397377,0.000436827,0.000443137,0.000533998,0,0,0,0,0,0 +FRAMEWORK,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000195899,0.000166848,0.000220933,0,0,0.000129182,0.000140164,0.000295243,0.000354754,0.000419787,0.000250789,0.000266476,0.000311976,0.000322161,0.000322626,0.000246523,0.000280028,0.000263241,0.0003019,0.000313331,0.000335767,0.000322827,0.000269275,0.000256717,0.000312268,0.0003321,0.00035298,0.000280813,0.000193027,0.000170593,0.000232399,0.000306414,0.000363967,0.000368777,0.000364189,0.000277861,0.000351997,0.000390346,0.000438128,0.000403861,0.000326795,0.000294401,0.000383047,0.000392108,0.000413503,0.000398682,0.000400965,0.000364361,0.000374656,0.000381384,0.000379908,0.000357618,0.000235035,0.000244855,0.000267488,0.000271666,0.000279749,0.000291981,0.000358943,0.000379798,0.000413758,0.000384295,0.000440503,0.000429874,0.000480638,0.000337907,0.000352743,0.000406032,0.000425,0.000417036,0.000361656,0.000347253,0.000352377,0.000445066,0.000461239,0.000478098,0.000415777,0.000388022,0.000416401,0.000488558,0.000540782,0.000553846,0.000520474,0.000407434,0.000383672,0.000465652,0.000520596,0.000555115,0.000526042,0.000404172,0.000428923,0.0005032,0.000613439,0.000649814,0.000650604,0.000484646,0.000449156,0.000468556,0.000524571,0.00056435,0.000615224,0.000576954,0.000482775,0.000450888,0.000591037,0.000644846,0.000700611,0.000650656,0.000533217,0.000530523,0.000669181,0.000726632,0.00076011,0.000600213,0.000477987,0.000501008,0.000545039,0.000632134,0.000686577,0.000684224,0.000509894,0.000484619,0.000602717,0.00062812,0.000669837,0.000682894,0.000585928,0.000622919,0.00058686,0.000687178,0.000672365,0.00071775,0.000508817,0.000563696,0.000646255,0.000753704,0.000759995,0.000740049,0.000533148,0.000504604,0.000565199,0.000696867,0.000727295,0.000765197,0.000568761,0.000595799,0.000673814,0.000773528,0.000794627,0.000790773,0.000543108,0.00052129,0.000552464,0.000737242,0.000768309,0.000818742,0.000521789,0.000530223,0.000653042,0.000732894,0.00075505,0.000733754,0.00058851,0.000646498,0.000674256,0.000821874,0.000840583,0.000843185,0.000604849,0.000589799,0.000694877,0.000921723,0.001012193,0.001049997,0.000885821,0.000607228,0.000688842,0.00073139,0.001017139,0.001429307,0,0,0,0,0 +GENE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000401533,0.000401577,0.000401211,0,0,0,0,0,0,0,0,0,0.000519157,0.000516653,0.000516209,0,0,0,0.000558434,0.000587799,0.000587145,0,0,0,0.000447653,0.000474582,0.000501574,0,0,0,0.000514104,0.000555346,0.000552987,0,0,0,0,0.000612035,0.000568194,0.000608656,0,0,0,0.000521336,0.000515179,0.000494726,0,0,0,0.000723701,0,0.000362463,0,0,0,0,0,0,0.000506467,0.00069718,0.000731101,0,0,0,0.000381931,0.000374543,0.000342196,0,0,0,0.000465749,0.000508598,0.000486342,0,0,0,0.00046242,0.000465085,0.000496505,0.000478927,0,0.000495317,0.000603051,0.00076001,0.00065703,0.000483022,0,0,0.000418952,0.000691865,0.000666084,0.000738678,0,0.000717832,0.000569638,0.000695156,0.000582547,0.000783042,0.000732824,0.000783611,0.000856498,0.000765191,0.000818452,0.000703129,0.001046198,0.001064273,0.000925069,0.00071417,0.000601875,0.000459855,0.000462,0.000469102,0.000647394,0.000538723,0.000397869,0.000309306,0.000279929,0.000218567,0.000193773,0.000303689,0.000393657,0.000473005,0.000268664,0.000309798,0.000345208,0.000643279,0.00068933,0.000737057,0.000667063,0.000508783,0.000621371,0.000734166,0.00088031,0.000950095,0.001028033,0.000817441,0.000628695,0.00064097,0.000696017,0.000827595,0.000779625,0.0009479,0.000804226,0.000697197,0.000762591,0.000824038,0.000958261,0.000856231,0.000764833,0.000752827,0.000788562,0.000848103,0.000855909,0.00079842,0.000687906,0.000641807,0.000742564,0.000731455,0.000805938,0.000697834,0.000918076,0.000822469,0.000942865,0.00083676,0.000956326,0.000820868,0.00078743,0.000707358,0.000872916,0.000821419,0.000877631,0.000671068,0.00081537,0.00065618,0.000736566,0.000670099,0.000772251,0.000534469,0.000841518,0.000681812,0.000595807,0.000542989,0.000587255,0.000655884,0.001002233,0.000830043,0.000778175,0.000645269,0.000722113,0.000715947,0.000767547,0.000647277,0.000602106,0.00070853,0.00079598,0.001007047,0.000907904,0.000718319,0.000655196,0.000688046,0.000713536,0.000729884,0.000840101,0.000717402,0.000642242,0.000628609,0.000644094,0.000675567,0.000693924,0.000739786,0.000740843,0.000811619,0.000833298,0.000795818,0.000782194,0.000767006,0.000709706,0.000668129,0.000653297,0.000661095,0.000603257,0.000748407,0.000615595,0.000612169,0.000567218,0.000596542,0.000682716,0.000656096,0.000642732,0.000587341,0.00053144,0.000536194,0.000527461,0.000579879,0.000548961,0.000471052,0.000452215,0.000417489,0.000412441,0.000485891,0.000507747,0.000509534,0.000512536,0.000519725,0.000457765,0.000444987,0.000460186,0.000502421,0.000451035,0.00044159,0.000397801,0.000520403,0.000478874,0.00045629,0.000420445,0.000425513,0.000487039,0.000615961,0.000566009,0.000556629,0.000443443,0.000448239,0.000387206,0.00063118,0.000574032,0.000507288,0.000392395,0.000371608,0.000385861,0.000489177,0.000470663,0.000443785,0.000347745,0.000356459,0.000358818,0.000468932,0.000454333,0.000439288,0.000344865,0.000309621,0.000275463,0.000604849,0.000552152,0.000539938,0.000312245,0.000286527,0.000226629,0.000308635,0.000424167,0.000462028,0.000529182,0.000559426,0,0,0,0,0,0 +MARINE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002060157,0.002063558,0.002062706,0,0,0,0.002987698,0.002990325,0.002991904,0,0,0,0.002157032,0.002157497,0.002157963,0,0,0,0.00211549,0.002115987,0.002113999,0,0,0,0.002300492,0.002299397,0.002298486,0,0,0,0,0.002738307,0.002738307,0.002813356,0,0,0,0.003203845,0.003206046,0.003200732,0,0,0,0.002097535,0.002097735,0.002097136,0,0,0,0.002162467,0.002162264,0.002161654,0,0,0,0.001883387,0.001882501,0.001884644,0,0,0,0.001569629,0.001569801,0.00156837,0,0,0,0.002605912,0.00260533,0.00264245,0,0,0,0.002111238,0.002101057,0.00209925,0,0,0,0.002575001,0.002567752,0.002564895,0,0,0,0.002462089,0.00245666,0.002452141,0,0,0,0.002235236,0.002221383,0.002234068,0,0,0,0,0.002426283,0.002425752,0.00235067,0,0,0,0.001969492,0.002041634,0.001978903,0.00158272,0.001874643,0.002628409,0.002171104,0.00202882,0.001522346,0.001152453,0.00111023,0.001446001,0.002027861,0.001912711,0.001462857,0.001090852,0.001324642,0.001949603,0.002592689,0.002380538,0.001838565,0.001249957,0.00118125,0.001197687,0.001436053,0,0.001662409,0.001540556,0.001271496,0.001256383,0.00153155,0.002038083,0.001358081,0.000995981,0.000531526,0.000878433,0.001245211,0.001876662,0.001350865,0.000957786,0.000725464,0.00100487,0.001449065,0.002147569,0.001928995,0.001675807,0.001238074,0.001373798,0.001420535,0.001782884,0.001435664,0.0010579,0.001390312,0.001553458,0.002516919,0.002015267,0.001959028,0.0015962,0.00173907,0.001860119,0.002209834,0.001927207,0.001758364,0.001618871,0.00142834,0.001298784,0.00162482,0.001419001,0.001594946,0.001294788,0.001061121,0.000782904,0.000869002,0.000802463,0.000983553,0.00058132,0.000630738,0.000467468,0.000692614,0.00057091,0.000752368,0.000635909,0.000543888,0.000596946,0.00073968,0.00094984,0.00098207,0.000670346,0.000537473,0.000498771,0.000567072,0.000739682,0.000814236,0.000728239,0.000532088,0.000572723,0.00061533,0.000823964,0.000675594,0.000636679,0.000594856,0.000683406,0.000707487,0.000782254,0.000960838,0.000862227,0.000683648,0.000505246,0.000522586,0.000686104,0.00086155,0.000851138,0.000633657,0.000481159,0.000398676,0,0.000867473,0.000840613,0.000611864,0.000464622,0.000413571,0.000439991,0.000666517,0.000701174,0.000552809,0.000497824,0.000534814,0.000654848,0.00082713,0.000693198,0.000486667,0.000412477,0.000407132,0.000403244,0.000511399,0.000656319,0.000587116,0.000470761,0.000452691,0.000463846,0.000582327,0.000612633,0.000575549,0.000427098,0.000429791,0.000424188,0.000606426,0.000829857,0.000723549,0.00053338,0.00050559,0.000528798,0.000711913,0.000769954,0.000652242,0.00045222,0.000398229,0.000412151,0.000608237,0.000747719,0.00058455,0.000426396,0.00049682,0.000557147,0.000680248,0.000831608,0.000671846,0.000498963,0.000404294,0.000406729,0.000424998,0.000517662,0.000608171,0.000504014,0.000501511,0.000441166,0.000501962,0.000568785,0.00065319,0.000489168,0.000480328,0.000441911,0.000486855,0.000540398,0.000728794,0.000619111,0.000530397,0.000429947,0.000467743,0.000562502,0.000661862,0.000555806,0.000498857,0.000518374,0.000513047,0.000578093,0.000580569,0.000560999,0.000524999,0.000536834,0.000540327,0.000575795,0.000561705,0.00047141,0.000389551,0.000457629,0.00048193,0.000576365,0.000463052,0.000403112,0.000371792,0.000467592,0.000494923,0.000565763,0.000634841,0.000584824,0.000494182,0.000505985,0.000514057,0.000571947,0.000572466,0.000652533,0.000625875,0.000620203,0.00060222,0.000627678,0.000771813,0.000748122,0.000541843,0.000424307,0.000375853,0.000455521,0.000815942,0.00070552,0.000625962,0.000477546,0.000485542,0.000504735,0.000857308,0.000760106,0.000537591,0.000447351,0.000418027,0.000444428,0.000517063,0.000651877,0.000635639,0.000563601,0.000343284,0,0,0,0,0,0 +EFFECTIVE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000194357,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000269524,0.000456594,0.00067183,0.000655702,0.000477974,0.000455533,0.000455166,0.000473005,0.000486953,0.000486826,0.000502671,0.000441736,0.00046666,0.000443283,0.000431416,0.000414126,0.000419349,0.000397959,0.000422037,0.000412869,0.000423123,0.000333388,0.00042175,0.000431422,0.000489201,0.000441225,0.000506202,0.000430864,0.000456947,0.000392307,0.000459621,0.000445758,0.000486115,0.00035644,0.000326558,0.00033572,0.00040766,0.000420533,0.000431396,0.000349076,0.000387676,0.000440096,0.000492649,0.000513996,0.000531576,0.00048964,0.000433217,0.000390174,0.000404085,0.000415174,0.000427936,0.00038237,0.000395106,0.000386372,0.000402672,0.000430594,0.00046582,0.000528011,0.000459476,0.000472085,0.000476526,0.000517925,0.00052688,0.000599836,0.000497113,0.000459276,0.000464877,0.000456303,0.000476613,0.000547591,0.000564638,0.000516819,0.000442302,0.000464733,0.000473842,0.00052327,0.000489984,0.000525655,0.000472123,0.000540782,0.000527406,0.000564345,0.000388185,0.00036662,0.000398491,0.00052489,0.000567995,0.0006181,0.000438816,0.000438413,0.000406533,0.000553707,0.000578884,0.000677127,0.000501168,0.000511434,0.000447823,0.000488185,0.000481682,0.000504459,0.000519943,0.000543383,0.000533982,0.000566169,0.000566247,0.000601287,0.00057094,0.000479895,0.000474989,0.000531639,0.00058353,0.00061771,0.00064559,0.000561589,0.000524628,0.00054748,0.000570599,0.000609829,0.000619675,0.000567882,0.000513367,0.000547107,0.00061878,0.000654065,0.000721771,0.000568064,0.000548615,0.000563255,0.000605172,0.000660191,0.0007018,0.000632829,0.000526283,0.000571341,0.000667981,0.000695161,0.000725169,0.000573505,0.000584655,0.000605571,0.000694283,0.000712206,0.000770445,0.000656081,0.000600503,0.000582071,0.000629767,0.000650018,0.000702833,0.000710077,0.000618189,0.000636228,0.000696487,0.000722903,0.000703805,0.000610928,0.000649341,0.000693478,0.000733478,0.000741006,0.000742237,0.000790151,0.000638262,0.00060553,0.000733241,0.000784289,0.000863341,0.000683743,0.000632824,0.000620929,0.000720565,0.000785385,0.000855008,0.000905862,0.000730013,0.000540433,0.000546392,0.000495855,0.000628895,0,0,0,0,0 +FACTORS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004057428,0.00406377,0.004071406,0,0,0,0.002678204,0.002682625,0.002681518,0,0,0,0.002108963,0.002110818,0.002111932,0,0,0,0.001581823,0.001582165,0.001582506,0,0,0,0.001331975,0.001332288,0.001331037,0,0,0,0.001665873,0.001665081,0.001664421,0,0,0,0,0.001702191,0.001702191,0.001702821,0,0,0,0.001029807,0.001030515,0.001028807,0,0,0,0.00114411,0.001144219,0.001143892,0,0,0,0.000987213,0.00098712,0.000986842,0,0,0,0.000941693,0.00094125,0.000942322,0,0,0,0.001350611,0.001350759,0.001349528,0,0,0,0.000670092,0.000669942,0.000669917,0,0,0,0.000865261,0.000861089,0.000860348,0,0,0,0.000775603,0.000773419,0.000772559,0,0,0,0.000699457,0.000697915,0.000724496,0,0,0,0.000625866,0.000621987,0.000619346,0,0,0,0,0.000590177,0.000611901,0.000650632,0,0,0,0.000675806,0.000667824,0.000742089,0.001024113,0.001222594,0,0,0,0.00039871,0.000658545,0.00084589,0,0,0,0.000822857,0.000818139,0.00069718,0.000584881,0,0,0,0.000416652,0.000403354,0.000376416,0,0,0,0,0.000476811,0.000729513,0.000969982,0.000815233,0,0.00049799,0.000564747,0.000725662,0.000670498,0.000573424,0,0,0.000345459,0.000579733,0.000531324,0,0,0,0,0,0.000681857,0.000660328,0,0,0.000365872,0.000388365,0,0,0,0,0,0,0,0,0,0.000330382,0,0,0.00030657,0.000429,0.000469102,0.000473096,0.000489748,0.000539049,0.000544967,0.000709154,0.000546418,0.000555484,0.000420492,0.00047977,0.000540577,0.000520536,0.000457322,0.000327039,0.000480388,0.000511668,0.000598039,0.000768573,0.000804588,0.000740748,0.000697572,0.000665028,0.000708841,0.000724011,0.000718066,0.000670608,0.00069233,0.000690052,0.000713115,0.00058749,0.000630784,0.000587938,0.000699329,0.00072472,0.000746337,0.000659328,0.000674136,0.000584366,0.000649059,0.000657922,0.000726694,0.000720524,0.000679585,0.000568397,0.000578645,0.000634842,0.000673796,0.000696622,0.000670846,0.000659867,0.000651768,0.000684069,0.000666843,0.000685099,0.000589341,0.000667785,0.000649897,0.000666064,0.000632177,0.000624468,0.000528011,0.000504627,0.000459326,0.000571319,0.000594012,0.000684754,0.00054985,0.000633576,0.000556339,0.000629643,0.000585128,0.000612788,0.000553721,0.000691682,0.000636236,0.000678657,0.000623139,0.000661109,0.000606426,0.000600442,0.000634909,0.000608083,0.000663954,0.000659606,0.000721883,0.000686542,0.000701267,0.000673106,0.000595734,0.000584739,0.000590154,0.000704414,0.000631997,0.000599867,0.000642831,0.000657822,0.000653724,0.000542473,0.000541629,0.000568072,0.000516485,0.000522465,0.000526131,0.000588356,0.000572642,0.000603454,0.000627511,0.00061442,0.000590607,0.000491224,0.000546547,0.000500984,0.000454673,0.000427823,0.000429125,0.000538335,0.000587034,0.000549492,0.000476706,0.000501872,0.0005196,0.000702667,0.000649865,0.000606458,0.000554467,0.000581419,0.000604894,0.000588235,0.00063416,0.000534992,0.000549418,0.000483682,0.00051317,0.000518375,0.000581765,0.000525036,0.000498425,0.000526867,0.000535238,0.000541645,0.000522527,0.000583225,0.000612143,0.000553489,0.000531891,0.000491237,0.000514481,0.000486047,0.00050035,0.000490784,0.000493399,0.000488098,0.000493568,0.000534782,0.00050917,0.000500551,0.000486914,0.000493335,0.00050657,0.000512791,0.000479167,0.000489765,0.000483526,0.000520838,0.00051817,0.000583358,0.000512658,0.00051676,0.000497057,0.000513973,0.00060222,0.000561116,0.000541112,0.000538622,0.000515748,0.000531253,0.00050103,0.000538022,0.000546033,0.000456043,0.000495855,0,0,0,0,0,0 +TEAM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000236781,0.000258365,0.000233607,0.000282941,0.000287182,0.000251872,0.000309798,0.000175632,0.000196021,0.000191875,0.000199346,0.000217521,0.000205091,0.000257119,0.000205841,0.000211019,0.000191511,0.000213129,0.00022119,0.000225282,0.000230092,0.000210794,0.00020511,0.00018844,0.000213708,0.000222381,0.000221738,0.000185914,0.00016767,0.000167626,0.000244084,0.00025208,0.000229917,0.000198321,0.000205867,0.000197341,0.000237669,0.000320634,0.000328035,0.000264278,0.00020428,0.000167189,0.000235182,0.00028403,0.000297064,0.000284524,0.000286935,0.000267209,0.000273623,0.000264332,0.000315042,0.000310278,0.000342829,0.000357803,0.000395358,0.000331991,0.000258827,0.000270288,0.000281655,0.000308139,0.000288383,0.000250181,0.000305395,0.000354542,0.00035517,0.000358878,0.000335093,0.00033596,0.00036608,0.000310993,0.000305163,0.000287994,0.000371157,0.000390854,0.000348375,0.000319729,0.000418784,0.000449478,0.000490562,0.00031119,0.000306937,0.000285063,0.000400376,0.000430182,0.000501384,0.000363755,0.000366293,0.000321783,0.000402955,0.000407278,0.000477422,0.00036073,0.000413299,0.000425708,0.000468981,0.000476171,0.000470749,0.000446968,0.000443066,0.000390951,0.00050234,0.000547654,0.000690999,0.000732527,0.000586538,0.000469081,0.000614307,0.000665091,0.00076877,0.000738406,0.000616113,0.000527115,0.00058246,0.000652113,0.000711468,0.000693445,0.000519892,0.000498309,0.000581454,0.000662367,0.000752407,0.000801217,0.000612723,0.000507747,0.000628371,0.00072894,0.000849353,0.00086768,0.000705778,0.000647253,0.000646255,0.000759638,0.000772241,0.000810483,0.000635104,0.000574649,0.000638431,0.000747889,0.000799722,0.000801935,0.000587641,0.000539355,0.000580529,0.00076875,0.000793185,0.000881439,0.000666042,0.000733486,0.000708697,0.000824499,0.00083582,0.000868747,0.000708763,0.000701637,0.000829949,0.000943294,0.00097374,0.000948367,0.000989447,0.000886704,0.000830282,0.000875591,0.000901356,0.000988475,0.000799453,0.00081568,0.000696051,0.000836456,0.000879486,0.000952871,0.000988031,0.000774663,0.000700043,0.000537787,0.000355999,0,0,0,0,0,0 +TECHNICAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000223524,0.000222138,0.000243314,0,0,0,0,0.000371593,0.000371512,0.000524703,0.001912412,0.001910524,0,0.000830276,0.000896793,0.00086577,0.001117214,0,0.00109517,0.000723701,0.000780315,0.000942405,0.001481725,0.001215966,0,0,0,0.000914286,0.001012934,0.000941193,0.000779841,0,0,0,0,0.000460976,0.000513294,0.000591316,0,0,0.000394096,0.000667536,0.000932155,0.000816827,0.00064054,0,0.000391278,0.000498306,0.000534698,0.00052682,0,0,0,0.000518188,0.000541084,0.000627928,0,0,0,0,0,0,0,0,0,0.000365872,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000326499,0.000346531,0.000368221,0.000354577,0.000437135,0.000335874,0.000292008,0.000258338,0.000439219,0.000755617,0.000722863,0.000454221,0.000347867,0.000355325,0.000372463,0.000395162,0.000382574,0.000348947,0.000297326,0.000422037,0.000422817,0.000470137,0.000352622,0.00054225,0.000484837,0.000497155,0.00036729,0.000450778,0.00033435,0.000408206,0.000326211,0.000387321,0.000363967,0.000447002,0.000325445,0.000272131,0.000290957,0.000355718,0.000357189,0.000353378,0.000289659,0.000361442,0.000405459,0.000393545,0.000387144,0.000357957,0.000304579,0.000332803,0.000359137,0.000345061,0.00035426,0.000327482,0.000375354,0.000422931,0.00048346,0.000583323,0,0.000582275,0.000538415,0.000486035,0.000466617,0.000445782,0.000467201,0.00048123,0.000446032,0.000350903,0.000421398,0.000426627,0.000515298,0.000517749,0.000610932,0.000691682,0.00062449,0.00056117,0.000499676,0.000495123,0.000519214,0.000430506,0.000469997,0.00049304,0.000538436,0.000531581,0.000506515,0.000433099,0.000441223,0.000431325,0.00041433,0.000396695,0.00044056,0.000663997,0.000624406,0.000504524,0.000411488,0.000388973,0.000421254,0.000421311,0.00045293,0.000434001,0.000443712,0.000438694,0.000441854,0.000437846,0.000443066,0.000478132,0.00046338,0.000479197,0.000515847,0.000644192,0.000656999,0.000492713,0.000471064,0.000504935,0.000544585,0.000643527,0.000448908,0.000431389,0.000455555,0.00049388,0.000515451,0.000525617,0.000451906,0.000551699,0.000602717,0.000635903,0.000613244,0.000600068,0.000646664,0.000752952,0.000708953,0.000657565,0.000593704,0.000601315,0.00058906,0.0006485,0.000612294,0.000667981,0.000669228,0.000697392,0.000662717,0.000633257,0.000679741,0.000676846,0.000702398,0.000637139,0.000592361,0.000660083,0.000761703,0.000751812,0.000739858,0.000722602,0.000788975,0.000731033,0.000797167,0.000681857,0.000672718,0.000617229,0.000652236,0.000646436,0.000716728,0.000723542,0.000743012,0.000699823,0.000640092,0.000683558,0.000801492,0.00076762,0.000760619,0.000717211,0.000691632,0.000708118,0.000738307,0.000740981,0.000731699,0.000721827,0.000719479,0.00089075,0.000960459,0.001144411,0.001258709,0.001314962,0,0,0,0,0 +ACCESS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000248998,0.000293849,0.000436373,0.000427136,0.000391901,0,0.000155019,0.000151844,0.000221432,0.000202716,0,0.000221285,0.000272532,0.000311976,0.000357694,0.000382955,0.000449542,0.000319469,0.000345886,0.000281316,0.00032612,0.000281049,0.000329096,0.00029492,0,0.00033692,0.000391758,0.000388755,0.000413829,0.000275753,0.000332048,0.000321947,0.000435521,0.000453937,0.000480527,0.000271204,0.000243486,0.000238056,0.000410808,0.000438128,0.000532362,0.000371358,0.00040808,0.000407496,0.000419398,0.000461278,0.000492994,0.000501207,0.000332803,0.00038574,0.000529699,0.000673255,0.000715236,0.000691073,0.00044519,0.000461665,0.000512993,0.000696629,0.000752738,0.000808923,0.000478067,0.000470262,0.000570038,0.00061537,0.000675244,0.00056523,0.000438629,0.000414295,0.000463406,0.00051289,0.000534771,0.00058437,0.000527937,0.000487454,0.000467181,0.000486863,0.000499379,0.000468509,0.000396519,0.000457629,0.000490052,0.00059357,0.000595593,0.000632147,0.000384977,0.000441223,0.000468637,0.000655844,0.000677473,0.000751254,0.00055718,0.000542796,0.000460825,0.000573618,0.000591468,0.000674007,0.000440587,0.000494449,0.000445059,0.000553882,0.000585293,0.000652547,0.000649928,0.000522484,0.000472683,0.000562853,0.000630478,0.000683523,0.000657119,0.000523695,0.000495076,0.000599341,0.000628759,0.000718737,0.000670341,0.000545232,0.000427659,0.000502738,0.000707255,0.000840071,0.001032791,0.000605874,0.000517474,0.000576548,0.000589203,0.000637366,0.000600068,0.000557346,0.000487933,0.000527441,0.000586189,0.000635844,0.000706585,0.000629182,0.000517553,0.000528391,0.000622481,0.000641133,0.00068152,0.000526775,0.000470297,0.00044033,0.000540572,0.000568105,0.000647636,0.000587641,0.000525244,0.000454092,0.000577649,0.000597171,0.000706242,0.000774296,0.0007249,0.000676698,0.000640058,0.000642846,0.000635887,0.0004957,0.000514243,0.00060654,0.000628862,0.000640689,0.000599727,0.000590854,0.000587476,0.000708619,0.000724646,0.000763818,0.000743246,0.000615368,0.000636409,0.000578673,0.000685738,0.000730492,0.000797615,0.000837722,0.000687597,0.000537633,0.000559299,0.00033057,0,0,0,0,0,0 +OUTREACH,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.52E-05,2.98E-05,4.48E-05,5.64E-05,6.41E-05,4.19E-05,3.29E-05,2.19E-05,2.39E-05,0,0,3.05E-05,2.35E-05,4.48E-05,4.50E-05,6.71E-05,0,3.44E-05,0,3.46E-05,3.52E-05,5.28E-05,9.28E-05,9.62E-05,8.76E-05,6.46E-05,6.75E-05,6.86E-05,5.40E-05,4.88E-05,3.77E-05,4.39E-05,4.97E-05,5.22E-05,0,3.62E-05,8.52E-05,0.000113079,0.00013576,0.000126581,0.000109244,5.84E-05,6.01E-05,0.000105041,0.000108124,0.000119832,5.77E-05,6.82E-05,7.81E-05,9.56E-05,0.000130028,0.000140431,0.00016346,0.00012422,0.000144866,0.000136837,0.000150252,0.000134775,0.000144001,0.000138781,0.000173157,0.000140442,0.000150152,0.000136374,0.000173491,0.000160407,0.000149206,0.00013283,0.000144908,0.000145541,0.0001611,0.000181877,0.000208768,0.000168175,0.000159286,0.000136141,0.000199706,0.00030015,0.000309502,0.000228058,0.000223372,0.00021604,0.000239588,0.0003033,0.000288411,0.000295597,0.000297591,0.000317774,0.000347102,0.000448134,0.000460851,0.000433634,0.000515961,0.000526438,0.000575375,0.000585775,0.000674271,0.000643975,0.000619067,0.000590578,0.000630572,0.000734019,0.000799834,0.000689966,0.000601899,0.000600878,0.000605822,0.000728533,0.000762778,0.000755429,0.000778952,0.000798797,0.000878382,0.000949025,0.000990278,0.000865499,0.000791088,0.000820963,0.000841397,0.000906709,0.000951594,0.000863402,0.000819633,0.000869307,0.000901574,0.00096778,0.001012442,0.0009815,0.001029225,0.001011102,0.001024751,0.001017779,0.001055025,0.000981252,0.000945871,0.000993788,0.001015052,0.0010725,0.001178374,0.001167943,0.001086718,0.001066027,0.001048644,0.001099359,0.001195777,0.001142008,0.001088469,0.00107542,0.001074719,0.001071618,0.001020354,0.001023633,0.001047011,0.001091055,0.001109914,0.001108862,0.001048155,0.000980049,0.001100467,0.001183132,0.001589279,0.001829512,0,0,0,0,0 +DIVERSE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000200353,0.000180855,0.000128484,0,0,0,0.000147523,0.000151407,0.000187738,0.000194244,0.0001941,0.000192143,0.000189315,0.000214266,0.000201267,0.000204624,0.00020146,0.000231934,0.000227601,0.000217424,0.000205439,0.000198862,0.000202725,0.00020322,0.000248177,0.000246751,0.000247324,0.000237557,0.000249461,0.000248645,0.000213089,0.000217705,0.000252299,0.00026128,0.000281528,0.000268475,0.000349076,0.00031189,0.000321922,0.000270023,0.000258645,0.000231493,0.000281447,0.000329934,0.000310366,0.000266363,0.000248463,0.000247118,0.000301687,0.000272679,0.000271451,0.000260634,0.000283863,0.000283542,0.000319928,0.000278873,0.000297104,0.000315122,0.000325706,0.000321454,0.000276847,0.000305416,0.000329069,0.000367782,0.000385269,0.000392922,0.000382088,0.000367015,0.000362165,0.000373192,0.000349424,0.000351835,0.000316396,0.000297389,0.000350437,0.000351104,0.000400015,0.000381291,0.000400825,0.000343271,0.000398592,0.000441773,0.000450826,0.000441774,0.000414258,0.000392624,0.000447902,0.00042772,0.000413384,0.000393549,0.00039161,0.000385514,0.000458592,0.00045197,0.000466959,0.000448614,0.000458709,0.000497138,0.000493224,0.000460423,0.000469182,0.000474126,0.000505166,0.000553704,0.000546547,0.000511618,0.000546605,0.000564252,0.000614823,0.00065384,0.0006252,0.000627814,0.000667877,0.000656109,0.000653389,0.000595699,0.000713852,0.000706394,0.000643607,0.00063279,0.000640149,0.000689655,0.000684178,0.000596913,0.000602325,0.000589986,0.000645208,0.0007018,0.000740429,0.000658477,0.000639263,0.000683147,0.000705247,0.000746001,0.000788039,0.000769057,0.000774567,0.000747243,0.000742384,0.00072426,0.000830722,0.000876452,0.000814128,0.000731833,0.000714395,0.000704197,0.000833011,0.00083897,0.000821637,0.000818751,0.000817299,0.000834416,0.000856604,0.00086143,0.000866342,0.000781403,0.000770432,0.000782106,0.001073854,0.000992394,0.000871146,0.000783198,0.000762538,0.000839826,0.001125546,0.001039768,0.000897941,0.000820844,0.000806497,0.000816746,0.000915883,0.000984513,0.001033263,0.001015342,0.001118853,0.000743239,0,0,0,0,0 +INDIVIDUAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000643501,0.000642081,0.000640901,0,0,0,0.000670571,0.000710843,0.000707824,0,0,0,0,0.000502743,0.000502633,0.000734584,0.002677376,0.002228944,0,0.000444101,0.000438856,0.000512395,0.001210316,0.001141087,0,0,0,0.000616188,0.000932938,0.000898758,0,0,0,0.00064,0.00077918,0.000732039,0,0,0,0,0,0.000662652,0.000752832,0.000886974,0,0,0,0.000890047,0.001094269,0.00122524,0,0,0.000355707,0.00089695,0.000993011,0.000862069,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000330382,0.000357085,0,0.00030657,0,0,0,0,0.00025669,0.000324035,0.000391901,0.000327851,0.000297119,0.000268648,0.00020913,0.000185823,0,0.000236037,0.000351264,0.000521801,0.000521143,0.000540334,0.000471295,0.000536392,0.00052036,0.000558057,0.000573374,0.00058697,0.000542225,0.000586634,0.000592021,0.000655351,0.000596586,0.00059625,0.000487727,0.000475673,0.000499595,0.000475458,0.000512985,0.000519369,0.000539197,0.000495916,0.000552857,0.000555464,0.000539874,0.000504991,0.000523183,0.000690726,0.000699566,0.000678481,0.000586008,0.000568361,0.000542294,0.000528195,0.000611094,0.000634032,0.000614451,0.000570664,0.00055049,0.000498134,0.000489709,0.000459684,0.000471623,0.00048956,0.000528266,0.000533213,0.000533842,0.00044839,0.000495741,0.000497902,0.000555412,0.000472948,0.000516608,0.000501889,0.000494299,0.000528541,0.000534771,0.000582327,0.000618279,0.000593167,0.000570846,0.00054976,0.000553289,0.000573975,0.000523971,0.000535962,0.000496028,0.000568936,0.000573328,0.000632147,0.000567841,0.00054993,0.000541768,0.000527037,0.000524204,0.000534262,0.000571615,0.000613018,0.000623703,0.00058784,0.000569731,0.000550751,0.000647112,0.000675621,0.000688321,0.00067416,0.000674575,0.000686258,0.000602039,0.00062489,0.000591194,0.000646576,0.000616111,0.000627987,0.000588176,0.000613199,0.000537612,0.000563709,0.000562769,0.000610975,0.000591963,0.000587034,0.000564411,0.000532837,0.000543428,0.000552788,0.000599388,0.000603874,0.000540747,0.000594539,0.00060477,0.000648499,0.00061359,0.000603791,0.000568429,0.000593371,0.000567966,0.000611497,0.00057739,0.000568999,0.000466421,0.000499424,0.000562475,0.00057702,0.000601166,0.000554388,0.000730461,0.000692886,0.000694283,0.000614126,0.000617196,0.000545161,0.000834119,0.000700027,0.000648443,0.000575552,0.0005774,0.000552282,0.000531103,0.000507288,0.000525631,0.000538892,0.000541101,0.000502222,0.000569445,0.000596431,0,0.000592537,0.000609907,0.000677607,0.000649243,0.000586956,0.000550602,0.000543117,0.000550926,0.000549624,0.000537811,0.000519984,0.000562041,0.000582102,0.000593797,0.000549129,0.000466583,0.00048723,0.00048616,0.000394141,0,0,0,0,0,0 +COMMUNICATION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000517112,0.000517063,0.000516917,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000595637,0.000595504,0.000595482,0,0,0,0.000484546,0.00048221,0.000481795,0,0,0,0.000434337,0.000433115,0.000432633,0,0,0,0.000391696,0.000390832,0.000390113,0,0,0,0.000737628,0.000733056,0.000752063,0,0,0,0,0.000765044,0.000743023,0.000734584,0,0,0,0.00077235,0.000725066,0.00072442,0,0,0,0.000620315,0.000884357,0.000724927,0.000823181,0.000740153,0,0.000969847,0.000869414,0.00064,0.000545426,0.000522885,0.000536141,0.000518538,0,0,0.000381931,0.000403354,0.000513294,0.000464606,0,0.000405466,0.000752365,0.000635748,0.000770041,0,0,0.000543232,0.000355707,0.000332204,0.000458313,0.00052682,0,0,0,0.000414551,0.000502435,0.00067623,0,0.000459284,0.000418952,0.000473381,0.000416302,0,0.000660328,0.000717832,0.000854457,0.00076833,0.000737893,0,0,0.000615695,0.000545044,0.000591284,0.000483631,0,0,0,0.000594687,0.000616783,0.000760264,0.000766424,0.000627001,0.000437828,0.000746993,0.000848896,0.000795739,0.000618611,0.000335915,0.000218567,0.000271283,0.000315369,0.00034445,0.000354754,0.000285455,0.000250789,0.000296757,0.000400324,0.000447709,0.000445906,0.000431416,0.000390462,0.000404044,0.000363652,0.000417774,0.000422817,0.000407452,0.000288509,0.000398174,0.000474565,0.000542894,0.00048177,0.000461863,0.00028954,0.000389928,0.000434949,0.00048372,0.000447802,0.000405096,0.000275079,0.000355203,0.000400829,0.00052256,0.000492674,0.000484174,0.000271091,0.000405165,0.000425834,0.000504139,0.000481047,0.000490851,0.000339278,0.000390182,0.000352487,0.000455542,0.000432807,0.000454054,0.000354306,0.000372847,0.000392316,0.000485413,0.000540299,0.00058565,0.000491596,0.000509938,0.000528589,0.000549542,0.000495233,0.000469818,0.000461412,0.000406138,0.000539768,0.00052078,0.000577904,0.000527678,0.00050264,0.000479943,0.000516819,0.000543202,0.000539277,0.000533427,0.000474594,0.000385189,0.000426708,0.000469135,0.00049034,0.000492617,0.000454667,0.000356104,0.000375146,0.000447742,0.000632229,0.000672321,0.000683855,0.00034932,0.00037768,0.000419775,0.000606802,0.000644094,0.000709892,0.000432326,0.00050011,0.000461645,0.000521539,0.000540101,0.00061402,0.000588356,0.000514124,0.00046451,0.000562024,0.000578924,0.000642939,0.000639883,0.00055226,0.000511618,0.000689848,0.000725149,0.000784164,0.000501209,0.000496162,0.000425173,0.000539345,0.000590578,0.000690725,0.000641806,0.000517892,0.000531164,0.000618255,0.000606326,0.000622522,0.000615281,0.000705614,0.000562237,0.000497325,0.000504183,0.000574975,0.000725725,0.000643772,0.000520047,0.000536382,0.000770189,0.000813303,0.000876948,0.000524651,0.000493169,0.000487273,0.000696221,0.00076879,0.00087751,0.000630121,0.000471936,0.000490327,0.000536822,0.000555374,0.000601941,0.000609162,0.000612056,0.000544935,0.000642148,0.000645834,0.000706044,0.000652236,0.000562181,0.00060654,0.00056808,0.000593206,0.000547135,0.000527549,0.00054767,0.000594386,0.000618823,0.000630118,0.000605514,0.000523326,0.000518091,0.000583368,0.000588461,0.00064001,0.000650454,0.000749541,0.000587136,0.000509631,0.000443137,0.000279713,0,0,0,0,0,0 +SIZE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000289631,0.000248049,0.000247363,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000406884,0,0,0,0,0,0,0,0,0,0,0.000509,0.00036342,0.000324623,0,0.000429198,0.000924001,0.00090693,0.000622494,0.000326499,0.000487711,0.000515509,0.00067183,0.000382493,0.000620075,0.000548976,0.000701202,0.000540577,0.000621285,0.000486826,0.000514783,0.00055217,0.000549569,0.000561317,0.000543801,0.00054428,0.000526482,0.00055577,0.000573374,0.000581995,0.000601775,0.000673187,0.00066275,0.000585502,0.000540905,0.00055809,0.000665083,0.000654913,0.000612308,0.000573535,0.000600777,0.000605249,0.000620216,0.000681885,0.000667438,0.000596157,0.000580797,0.000610564,0.000660863,0.000668444,0.000585886,0.000503258,0.000524248,0.000533765,0.000685905,0.00079422,0.000691426,0.000574176,0.000561481,0.000548222,0.000556518,0.000473578,0.000523098,0.000521107,0.000504719,0.000474476,0.000486073,0.000512404,0.000517906,0.000503071,0.000539294,0.000620709,0.000707579,0.000769021,0.000604334,0.000542135,0.000523722,0.000503258,0.000503564,0.000559851,0.000632395,0.000704753,0.00068695,0.000668564,0.000672459,0.000697694,0.00082136,0.000696751,0.000573719,0.000552513,0.000541322,0.000691971,0.000731456,0.000660768,0.000576095,0.000587147,0.00060921,0.000665772,0.000802571,0.00072879,0.000621055,0.000614387,0.000612061,0.000678687,0.000608561,0.000564276,0.00060539,0.000641816,0.000655837,0.000615224,0.00050626,0.000562192,0.000645682,0.000671445,0.000653297,0.000595947,0.000458906,0.00052179,0.000627411,0.00062856,0.00061393,0.000578261,0.000561024,0.000528876,0.000538303,0.000529583,0.000536235,0.000528934,0.000555125,0.000571881,0.000648896,0.00063134,0.000625785,0.000594689,0.000518932,0.000591287,0.000600628,0.000640581,0.000574799,0.000533772,0.00045298,0.000596355,0.000690902,0.0006942,0.00061325,0.000600072,0.000533708,0.000575629,0.000560354,0.000547361,0.000465654,0.000449655,0.00042406,0.000462561,0.000489182,0.000567423,0.000553761,0.000559698,0.000522864,0.000533934,0.000544595,0.000577875,0.000551756,0.000554425,0.000506023,0.000571794,0.000570897,0.000575202,0.00053652,0.000539704,0.000528473,0.000450175,0.000435116,0.000453219,0.000461431,0.000473388,0.000503056,0.000633777,0.000600555,0.000551676,0.000530216,0.000526606,0.000492991,0.000448923,0.000415237,0.000453628,0.000447439,0.000533998,0,0,0,0,0,0 +MOLECULES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001294219,0.001294498,0.001294778,0,0,0,0.001018569,0.001018809,0.001017852,0,0,0,0.000951928,0.000951475,0.000951098,0,0,0,0,0.001184133,0.001184133,0.001184571,0,0,0,0.000800961,0.000801511,0.000800183,0,0,0,0.000953425,0.000953516,0.000953243,0,0,0,0.000846183,0.000846103,0.000845865,0,0,0,0.001569489,0.00156875,0.001570537,0,0,0,0.001314108,0.001314252,0.001313054,0,0,0,0.001340183,0.001339884,0.001339834,0,0,0,0.001315197,0.001308855,0.001307729,0,0,0,0.001365061,0.001361218,0.001390606,0,0.006648936,0.008686211,0.001510828,0.001535412,0.001337532,0,0,0,0.001005856,0.001021836,0.000995377,0,0,0,0,0.001027345,0.001048974,0.000965454,0,0,0,0.000849585,0.000896793,0.000936445,0.001303417,0.001141087,0,0.000723701,0.000832336,0.000833666,0.000823181,0.00084589,0.001174876,0.001322518,0.00121718,0.000731429,0.000506467,0.000522885,0.000536141,0.000777807,0.000638681,0.000807175,0.000729141,0.000777896,0.000718612,0.000844737,0.000893232,0.000729838,0.000680711,0.000635748,0.000688984,0.000765775,0.00064054,0.00072431,0.000604702,0.000797289,0.000878433,0.000957854,0.000729813,0.000540346,0.000567577,0.000552734,0.000579733,0.00067623,0.000869254,0.000780784,0.000647471,0.000764693,0.000874235,0.001136428,0.001122557,0.001076748,0.000854457,0.000951266,0.000932075,0.001230494,0.000916031,0.0010075,0.000739703,0.000730409,0.000595238,0.000803576,0.000605694,0.000509,0.000396458,0.000519396,0.000665231,0.000889052,0.000726001,0.000750563,0.000423296,0.000587698,0.000462042,0.000486052,0.000503872,0.000564632,0.000503811,0.000443853,0.000467468,0.000473005,0.000319038,0.000516331,0.000696472,0.000803408,0.000758026,0.000792139,0.000804826,0.000832196,0.000939709,0.00087368,0.000807839,0.000790917,0.000799233,0.000939256,0.000759673,0.000585502,0.000536928,0.00054378,0.000668778,0.000892749,0.000795087,0.000699329,0.00058012,0.000503011,0.000648153,0.000887226,0.000982538,0.000878976,0.000679957,0.000603526,0.000670041,0.00111036,0.001098901,0.000839442,0.000696603,0.000629315,0.000600167,0.000921449,0.000949635,0.000895626,0.000653801,0.00057387,0.000667018,0.000862964,0.000943247,0.000756893,0.000739151,0.000632177,0.000670038,0.000785513,0.000937543,0.000701748,0.000558509,0.000504577,0.000585845,0.00057292,0.000792782,0.000679444,0.000629643,0.000577904,0.000560304,0.000637494,0.000722737,0.000775229,0.000776792,0.000677882,0.000642666,0.000653074,0.000829857,0.000742101,0.000576707,0.00059357,0.000612292,0.000691971,0.000773162,0.000665031,0.000656689,0.000583927,0.000605346,0.000549057,0.000739058,0.000700321,0.000696535,0.000563189,0.000545707,0.000457139,0.000608561,0.000586922,0.00066897,0.000630698,0.000612849,0.000567065,0.000613441,0.000666689,0.000663391,0.000550419,0.000518919,0.000488078,0.000467524,0.000580825,0.000567151,0.000503846,0.000450808,0.000398336,0.00035889,0.000436186,0.000515926,0.000483214,0.000432345,0.000367142,0.000352256,0.000453906,0.000461346,0.00054956,0.000558847,0.000568712,0.000419202,0.000391214,0.000478026,0.000496511,0.000468496,0.000421399,0.000346115,0.000395746,0.000410301,0.000530388,0.000467521,0.000475447,0.000434506,0.000528899,0.000476015,0.000499478,0.000443696,0.000447392,0.000347435,0.000356361,0.000387269,0.00054121,0.000472977,0.000486673,0.000417201,0.000517421,0.000440337,0.00037176,0.000387692,0.000396103,0.000439598,0.000476132,0.00039803,0.00038212,0.000455867,0.000482858,0.000511507,0.000419694,0.000432371,0.000481081,0.000498496,0.000504734,0.000454346,0.00024457,0.000302967,0.000400259,0.000491185,0.000468094,0.000441485,0.0001944,0.000205386,0.000221214,0.000266742,0.000355999,0.000800412,0,0,0,0,0 +POLICY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000335739,0.000334999,0.000362248,0,0,0,0.000514104,0.000510918,0.000530868,0,0,0.002345916,0,0.001857964,0.001791997,0.001888931,0.003442341,0.003343417,0.003052769,0.001004055,0.000992196,0.001077796,0.001862024,0.002037656,0.002080824,0.001085552,0.000832336,0.000761173,0.000932938,0.000951626,0,0,0,0.000685714,0.00077918,0.000871475,0.000633621,0.000725953,0.000754805,0.00058296,0.000451373,0.000633841,0.000718612,0.000886974,0.000840689,0.000851478,0.00103898,0.000890047,0.000972684,0.000714723,0.000582309,0.000497963,0.00049799,0.00086373,0.001031203,0.001005747,0.000729813,0.000540346,0.000851366,0.000863647,0.001043519,0.00067623,0,0,0,0.000655451,0.000832605,0.000965964,0.00072636,0,0.000488261,0.000658569,0.000699056,0.000783042,0.000610687,0,0.000506112,0.000765191,0.001488095,0.001908493,0.001486702,0,0,0.000486934,0.000601875,0.000582483,0,0,0,0.000375473,0.000295193,0.000338763,0,0.000182139,0,0.000268648,0.000418261,0.00055747,0.000352621,0.000162275,0.000145351,0.000295411,0.000305579,0.000367217,0.000344408,0.000335245,0.000223449,0.000308761,0.000338909,0.000395458,0.000260142,0.000278892,0.000322206,0.000460184,0.000473292,0.00050085,0.00037688,0.000358479,0.000274168,0.000356061,0.000337399,0.0004294,0.000371571,0.000255707,0.000191924,0.000248229,0.000333683,0.000365986,0.000392387,0.000438202,0.000443058,0.000403421,0.000374873,0.000378907,0.00036653,0.000327712,0.000275423,0.000328101,0.000307226,0.00031098,0.000369672,0.000368338,0.000436843,0.000344763,0.000355786,0.000308546,0.000305483,0.000291316,0.0003134,0.000284345,0.000418882,0.000467201,0.000570629,0.000411426,0.000360651,0.000253312,0.000280986,0.000339519,0.000384411,0.000380045,0.00027385,0.000272113,0.000284732,0.000300504,0.000317786,0.000318424,0.000294557,0.000307147,0.000424313,0.000414091,0.000432779,0.000341,0.000423475,0.000319726,0.000407446,0.000387495,0.000418591,0.000366586,0.000355094,0.00034162,0.00040256,0.000387785,0.000402702,0.000354166,0.000404789,0.000469915,0.000537664,0.000423498,0.000410036,0.000392491,0.000524503,0.000501584,0.000468597,0.000474156,0.000456378,0.000451766,0.000553704,0.000603677,0.000617959,0.000562996,0.000590945,0.000581148,0.000633214,0.000588851,0.000800618,0.000715873,0.000730431,0.000597384,0.000660249,0.000619871,0.000784425,0.000712302,0.000725412,0.000634583,0.000665991,0.000669887,0.000868124,0.000829418,0.000815502,0.000705141,0.000645975,0.000541644,0.000604851,0.000655245,0.000656771,0.000581342,0.000591246,0.000703075,0.000857684,0.000769873,0.000770493,0.000704661,0.000682274,0.000540441,0.000776107,0.000607512,0.00069231,0.000624075,0.00074578,0.000651363,0.000680744,0.000661639,0.000663048,0.000663159,0.000678429,0.000693545,0.000781534,0.000746045,0.000680294,0.000625976,0.000577672,0.000466587,0.000838662,0.000768058,0.000789107,0.000688332,0.000705454,0.000546994,0.000575458,0.000812255,0.000737979,0.000703951,0.000596004,0.000458944,0.000575974,0.000638439,0.000559299,0.000355999,0,0,0,0,0,0 +STEM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.31E-05,6.16E-05,8.13E-05,9.43E-05,4.73E-05,5.82E-05,4.80E-05,5.54E-05,3.23E-05,3.13E-05,0,4.19E-05,3.70E-05,2.98E-05,0,0,0,0,2.56E-05,2.93E-05,4.09E-05,5.31E-05,6.59E-05,4.01E-05,3.66E-05,3.31E-05,3.34E-05,2.75E-05,5.57E-05,4.66E-05,4.07E-05,2.44E-05,2.64E-05,2.36E-05,0,4.02E-05,4.21E-05,4.99E-05,5.45E-05,3.62E-05,4.56E-05,3.06E-05,2.97E-05,3.86E-05,3.98E-05,4.22E-05,5.20E-05,6.64E-05,5.29E-05,4.36E-05,3.74E-05,4.57E-05,0,0,0,3.53E-05,3.25E-05,3.40E-05,3.88E-05,6.49E-05,5.87E-05,4.28E-05,3.84E-05,3.69E-05,4.46E-05,4.53E-05,4.33E-05,3.14E-05,4.11E-05,4.31E-05,4.79E-05,3.53E-05,3.84E-05,4.33E-05,4.40E-05,4.38E-05,3.62E-05,5.49E-05,4.74E-05,5.43E-05,3.41E-05,3.55E-05,2.34E-05,3.86E-05,3.02E-05,4.28E-05,4.14E-05,4.63E-05,4.45E-05,3.42E-05,5.02E-05,9.26E-05,0.000181539,0.000226499,0.000416522,0.000562322,0.000428478,0.000202048,0.000255843,0.000361833,0.000432012,0.000622901,0.000421646,0.000433875,0.000559682,0.000625741,0.000693837,0.000568035,0.000371923,0.000303914,0.000406446,0.000558847,0.000656849,0.000721771,0.000414437,0.000263781,0.00038093,0.000704642,0.000986073,0.001354156,0.000707602,0.000451456,0.000450481,0.000706886,0.000755673,0.000911669,0.000649973,0.000530335,0.000735135,0.001072103,0.001230516,0.00138974,0.001121002,0.001191598,0.00087195,0.000962892,0.000914733,0.001059362,0.001080712,0.000986158,0.000911989,0.001156284,0.00118592,0.00129118,0.000741375,0.000963117,0.001079642,0.001407927,0.001411121,0.001506529,0.001320044,0.001261425,0.001017885,0.001410615,0.001470701,0.001676292,0.001138695,0.00102184,0.001069313,0,0.001822913,0.002060261,0.002208541,0.001913215,0.00196292,0.001901615,0.001818136,0.001086273,0,0,0,0,0 +ELECTRONIC,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000861866,0.000862069,0.000861259,0,0,0,0.000793273,0.000792896,0.000792581,0,0,0,0,0.000814091,0.000814091,0.000814393,0,0,0,0.000686538,0.00068701,0.000685871,0,0,0,0.00114411,0.001144219,0.001143892,0,0,0,0.000893193,0.000893109,0.000892857,0,0,0,0.000823982,0.000823594,0.000824532,0,0,0,0.000766563,0.000766647,0.000765948,0,0,0,0.001265729,0.001265446,0.001265399,0,0,0,0.001384418,0.001377743,0.001376557,0,0,0,0.000961747,0.00095904,0.000957973,0,0,0,0.000699457,0.000725831,0.000668766,0,0,0,0.00113997,0.001132905,0.001172333,0.002325581,0.002174386,0,0,0.001114778,0.001180096,0.001196323,0,0.001592103,0,0.001197142,0.001144842,0.001113133,0.000931012,0.001059581,0,0.000723701,0.000676273,0.000724927,0.000713423,0.000581549,0,0,0,0.000731429,0.000857098,0.001080629,0.001315982,0.001296344,0.001045114,0.000672646,0.001215236,0.001152439,0.001368785,0.001140395,0.000840689,0.000770385,0.000716538,0.000921835,0.001013212,0.00091893,0.000582309,0.000814848,0.000640273,0.000697628,0.000802047,0.000957854,0.000834072,0.000540346,0.000461156,0.000483643,0.000502435,0.000531324,0.000766989,0.00059707,0.00087599,0.000764693,0.000999126,0.000625036,0.000858426,0.001016929,0.000813769,0.000731743,0.00054371,0.000894905,0.000916031,0.001119445,0.000778634,0.000660847,0.000483631,0.000602682,0.000605694,0.000462727,0.000330382,0.000357085,0.000411809,0.000429198,0,0.000469102,0.000647394,0.000767272,0.000667394,0.000662798,0.00057852,0.000546418,0.00058132,0.000584017,0.000762711,0.0007264,0.000738825,0.000457322,0.000611684,0.000496953,0.000485611,0.000456398,0.000540176,0.000591609,0.000529543,0.000516889,0.000507297,0.000572047,0.000573567,0.000586634,0.000513434,0.000491,0.000449428,0.00043884,0.000480338,0.000530824,0.000575753,0.000462666,0.000466506,0.000408952,0.000508465,0.000689634,0.000739052,0.000642955,0.000563483,0.000503231,0.000573666,0.0006016,0.000647098,0.000539933,0.000633406,0.0006392,0.000756639,0.000813497,0.000771758,0.000722708,0.000638666,0.000620356,0.000648936,0.00079982,0.000723434,0.000630084,0.00065641,0.00071857,0.000762864,0.000725689,0.000626799,0.000663471,0.000666112,0.000700801,0.000745621,0.000769021,0.00068881,0.000622627,0.000584038,0.000606799,0.000631228,0.000706965,0.000739676,0.000673431,0.000646866,0.000587031,0.000587337,0.000614538,0.000872341,0.000812189,0.000748524,0.000652223,0.000684654,0.000691971,0.00072504,0.000703398,0.000634302,0.000612908,0.000582163,0.000608237,0.000695754,0.000724994,0.000693886,0.000647572,0.000626933,0.000586636,0.00057827,0.000535967,0.000613683,0.000670117,0.000660246,0.000657362,0.000647648,0.000685498,0.000691997,0.000600156,0.000591601,0.000517983,0.000586021,0.000580825,0.000648679,0.000610744,0.000634691,0.000625407,0.000676529,0.000585216,0.000514683,0.00051494,0.000518654,0.000534119,0.000520084,0.000535889,0.000544854,0.000503764,0.0004779,0.000453671,0.000395538,0.000425155,0.00038143,0.000511976,0.000504183,0.000531899,0.00038918,0.000351977,0.000442726,0.000490435,0.000471477,0.00048193,0.000491051,0.000522527,0.00043456,0.000411225,0.000454675,0.000464744,0.000475493,0.000413001,0.000340233,0.000475679,0.000478189,0.000503968,0.000467646,0.000445863,0.000459962,0.000447995,0.000493236,0.000491694,0.000500799,0.000397864,0.000328302,0.000403349,0.000469894,0.000512953,0.000499631,0.000349354,0.000391193,0.000475509,0.000462506,0.000456116,0.000364484,0.000197233,0.000281454,0.000386173,0.000461762,0.000481365,0.000470917,0.000406836,0.000317009,0.000308019,0.000335579,0.00033057,0,0,0,0,0,0 +GOALS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000163249,0.000179683,0.000176746,0,0.000309637,0.000335874,0.000315369,0.000270639,0.000219609,0.000319038,0.00038356,0.000387602,0.000400324,0.000374275,0.000388201,0.000380661,0.00037863,0.000345886,0.000347642,0.000390065,0.000392971,0.000394915,0.000359033,0.000400793,0.000435531,0.00040369,0.00039114,0.000328846,0.000337797,0.000341187,0.000398703,0.000437242,0.000494832,0.000480527,0.00047267,0.000415359,0.000423211,0.000431269,0.000425811,0.000413039,0.000412207,0.000434314,0.000484921,0.00048834,0.000515643,0.000492994,0.000458797,0.000398789,0.000383523,0.000420733,0.000466469,0.000546472,0.000561277,0.000478579,0.000420056,0.000467486,0.000485446,0.000501262,0.000457783,0.00045682,0.000530412,0.000536732,0.000552631,0.000536391,0.000538315,0.000445127,0.000447439,0.000510482,0.000517706,0.000519167,0.000439299,0.000412186,0.0004992,0.000557024,0.000575384,0.000553289,0.000537468,0.000506977,0.000533901,0.000490052,0.000531398,0.000513491,0.000556369,0.0005518,0.000492379,0.000502964,0.000460486,0.000485565,0.000465219,0.000499441,0.000578856,0.000591922,0.000629558,0.000608629,0.000641243,0.000614068,0.000603907,0.000584658,0.000604419,0.000626076,0.000640507,0.000638526,0.000576822,0.000569399,0.000569485,0.000592447,0.000595947,0.000583867,0.00050846,0.000612051,0.000642101,0.000673247,0.000625407,0.000585775,0.000579764,0.000703648,0.000631269,0.000624143,0.00056627,0.000641806,0.000641866,0.000766629,0.000661599,0.00066081,0.000547374,0.000567951,0.00056985,0.000740568,0.000629185,0.000623395,0.000524407,0.000601315,0.000552586,0.000735798,0.00068521,0.000659408,0.000574859,0.000605134,0.000601119,0.000844819,0.000702274,0.000717534,0.000590738,0.000638189,0.000547521,0.000835686,0.000673043,0.000618041,0.000540961,0.000556268,0.000554117,0.000531103,0.000526111,0.000575791,0.000588479,0.000611258,0.00056962,0.000521507,0.000499385,0.000537689,0.000553748,0.000595486,0.000644782,0.000583358,0.000535876,0.000571552,0.000610287,0.000644986,0.000691632,0.000557531,0.000498856,0.000499592,0.000503081,0.000511386,0.000487001,0.000497838,0.000571235,0.000628135,0.000775568,0.000571723,0,0,0,0,0 +ACADEMIC,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003296251,0.003301692,0.00330033,0,0,0,0.003339192,0.003342128,0.003343893,0,0,0,0.003235548,0.003236246,0.003236944,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003241646,0.003241955,0.003241028,0,0,0,0.003525762,0.00352543,0.003524436,0,0,0,0.003099741,0.003098282,0.00310181,0,0,0,0.002847235,0.002847547,0.00284495,0,0,0,0.002829276,0.002865863,0.002791321,0,0,0,0.002491953,0.002479937,0.002477803,0,0,0,0.004064158,0.004052716,0.004048208,0,0,0,0.005455766,0.005443734,0.005238666,0,0,0,0.000670571,0.000666415,0.000663585,0,0,0,0,0.000633894,0.000590048,0.000566679,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004687337,0.003918292,0.004688088,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000163249,0.000192517,0.000353492,0.00048521,0.000892483,0.000749257,0.000724181,0.000565882,0.000523684,0.000621285,0.000914643,0.000635909,0.000416889,0.000355325,0.000306888,0.000282777,0.000453567,0.000550969,0.000564919,0.000522218,0.000509868,0.000426257,0.000458408,0.000589402,0.000589611,0.000509087,0.000383985,0.00038427,0.000454992,0.000447808,0.000501044,0.000569792,0.00063592,0.000628597,0.00074,0.000667438,0.000667371,0.00060598,0.000673908,0.000628737,0.000445629,0.000384761,0.000458433,0.000573082,0.000589777,0.000610884,0.000451086,0.000490597,0.000616297,0.000597804,0.000596312,0.000522363,0.000550754,0.000534228,0.000677637,0.000608145,0.000680173,0.000573836,0.000606042,0.000387766,0.000548639,0.000659707,0.000679443,0.000631496,0.000430652,0.000422384,0.00047348,0.000417801,0.00058272,0.000587255,0.000704922,0.000386777,0.000379784,0.000299936,0.000345929,0.000334811,0.000413749,0.000317215,0.000348375,0.000331681,0.000369515,0.000360418,0.000356953,0.000266276,0.000281359,0.000320882,0.000388569,0.000396695,0.000414258,0.000542746,0.000628202,0.000546899,0.000451309,0.000398126,0.000418134,0.000426819,0.00043972,0.000389772,0.00042754,0.000462944,0.000565861,0.000675013,0.000572642,0.00037188,0.000469182,0.000501171,0.000589539,0.000581712,0.000485608,0.000408822,0.000518099,0.000555355,0.000637915,0.000579587,0.000512519,0.000438848,0.000567817,0.00058898,0.000652352,0.000525617,0.000503895,0.000465453,0.000477594,0.00046389,0.000475009,0.000468222,0.000500182,0.000470595,0.000487558,0.00059682,0.000721997,0.00088682,0.000632829,0.000426514,0.000393546,0.00051236,0.000535238,0.000629935,0.000484293,0.000457432,0.0005483,0.000596761,0.000621671,0.000627692,0.000665521,0.000644404,0.000543523,0.000528136,0.000531352,0.000556268,0.000645859,0.000616962,0.000582581,0.000549143,0.000530527,0.000541848,0.000584839,0.000639173,0.00059441,0.000552885,0.000523653,0.000540348,0.000672918,0.000656106,0.000581383,0.000546842,0.000522646,0.00053077,0.000575922,0.000622068,0.000619755,0.000658716,0.000636391,0.000635002,0.000505038,0.000683132,0.000778448,0.000847552,0.000610283,0.000571723,0,0,0,0,0 +INCLUDES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000228549,0.000410704,0.000486052,0.000503872,0.000400707,0.000400465,0.000408812,0.000528977,0.000540577,0.000520536,0.000457322,0.000472389,0.000474867,0.00046666,0.000453775,0.000442292,0.000433846,0.000517299,0.000526038,0.000558453,0.000554637,0.000520285,0.000413529,0.000453184,0.000488945,0.000481246,0.000431685,0.00037688,0.000489461,0.000533104,0.000503176,0.000485442,0.000423265,0.000433033,0.00035644,0.000492701,0.000470008,0.000532004,0.000487395,0.000484174,0.000430775,0.000443058,0.000537895,0.000524248,0.000543649,0.000480133,0.000424098,0.000416003,0.000401258,0.000419219,0.000436013,0.000450036,0.000459546,0.000392324,0.000449777,0.000515751,0.000563611,0.000563709,0.000499399,0.000464788,0.000561398,0.000586691,0.00056865,0.000505957,0.000407581,0.000373647,0.000445072,0.000492828,0.000502054,0.000502145,0.000486294,0.000513821,0.000495285,0.000519705,0.000499676,0.000506472,0.000442143,0.000453164,0.000486489,0.000502004,0.000495033,0.00046896,0.000450679,0.000494054,0.000562719,0.000516396,0.000503422,0.000471397,0.000517823,0.000508102,0.000531409,0.000495255,0.000468376,0.000446175,0.000449338,0.000462616,0.000492562,0.000498963,0.000510421,0.000511442,0.000545394,0.000663611,0.000662509,0.000516274,0.000517261,0.000519764,0.000542547,0.000491224,0.000485608,0.000504528,0.000553732,0.000553872,0.000575375,0.00054246,0.000557955,0.000539547,0.000590595,0.000647319,0.00068554,0.000706355,0.000593876,0.000602351,0.000605988,0.000618001,0.000634583,0.000694726,0.0006288,0.000625396,0.000561627,0.000583152,0.000550628,0.000578985,0.000545291,0.000593627,0.000592317,0.00065743,0.00067283,0.000737073,0.000645725,0.000578937,0.000547361,0.000625824,0.000640532,0.000669678,0.000597081,0.000628725,0.000592864,0.000597627,0.000594769,0.000608758,0.000590814,0.0005679,0.000598581,0.00063222,0.000648821,0.000650814,0.000671803,0.000653699,0.000624737,0.000620096,0.000622632,0.000617541,0.000586165,0.000646498,0.000609245,0.000609691,0.000578301,0.000583679,0.000568032,0.00055036,0.000519984,0.000546428,0.00057426,0.000609984,0.000647331,0.000549184,0.000518032,0.000507671,0.000597569,0.000800412,0,0,0,0,0 +PRIMARY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000310241,0.000309368,0.000309023,0,0,0,0.000335739,0.000334999,0.000334383,0,0,0,0.000424695,0.000422063,0.00042027,0,0,0,0,0.000371593,0.000371512,0.000356798,0,0,0,0.000366866,0.000381614,0.000371044,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000347814,0,0,0,0,0,0,0,0,0,0,0,0.000179574,0.000243855,0.000294577,0.000335915,0.000382493,0.00036171,0.000397131,0.000455166,0.000473005,0.000402996,0.000442569,0.000387602,0.000532844,0.000582733,0.000668859,0.000710567,0.000631049,0.000547908,0.000450563,0.000490245,0.000524791,0.000620581,0.000621897,0.000639173,0.000630698,0.000584655,0.000570015,0.000550541,0.000606656,0.000575753,0.000560742,0.000561185,0.000576622,0.000583897,0.00056178,0.000549992,0.000545291,0.000604407,0.000610564,0.000656273,0.000638736,0.00060629,0.000670331,0.000660696,0.000672148,0.000638749,0.000674701,0.000591011,0.000571959,0.000559968,0.000567458,0.000580627,0.000561277,0.000620484,0.000616214,0.000635725,0.000625321,0.000681852,0.000710083,0.000695854,0.000606966,0.000590534,0.000591342,0.000585845,0.000599836,0.000614081,0.000575279,0.00061199,0.000644122,0.000665272,0.000639538,0.000561815,0.000559887,0.000530762,0.000580043,0.000611455,0.000720004,0.000642927,0.000579251,0.000539356,0.000575974,0.000594202,0.000594258,0.000628796,0.000588297,0.000576095,0.000576413,0.000589891,0.000632895,0.000600484,0.000556082,0.000523063,0.000543278,0.000554859,0.000571034,0.000625083,0.000603907,0.000563925,0.000514464,0.000522465,0.000514091,0.0006066,0.000543383,0.000517636,0.000501511,0.000516384,0.000535071,0.000586021,0.000590347,0.000629774,0.000585088,0.000587237,0.00054651,0.0005899,0.000548867,0.000660137,0.000574325,0.000590578,0.000541379,0.000627052,0.000645866,0.000784425,0.000688586,0.000663923,0.000562218,0.000564571,0.000593073,0.000694747,0.000643022,0.000613524,0.000528153,0.000457765,0.000474166,0.000624805,0.00062428,0.000572366,0.00048049,0.000500972,0.000524651,0.000746185,0.000614959,0.000566406,0.000451919,0.000479691,0.000575841,0.000838822,0.000624473,0.000520318,0.00043815,0.000450604,0.000544943,0.000536009,0.000533641,0.000501596,0.000504837,0.000492589,0.000493525,0.000461947,0.000490287,0.000458205,0.000450087,0.00044619,0.000513481,0.000465314,0.000434645,0.000437796,0.000457395,0.000466103,0.000510177,0.00051092,0.000474207,0.000457559,0.000450601,0.000448107,0.000478985,0.000482211,0.000515232,0.000447439,0.000406856,0,0,0,0,0,0 +SIMULATION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000670092,0.000669942,0.000669917,0,0,0,0.000346105,0.000344436,0.000344139,0,0,0,0.00068253,0.000649672,0.000648949,0,0,0,0.000559566,0.000558332,0.000557305,0,0,0,0.000715276,0.000733056,0.000774182,0,0,0,0,0.000808761,0.000764877,0.00077656,0,0,0,0.000521336,0.000534259,0.000530063,0,0,0,0.000672008,0.000728294,0.000652434,0.000713423,0,0,0,0,0.00064,0.000506467,0.000383449,0,0,0.000696743,0.00058296,0.000520815,0.00028811,0,0,0,0.000486559,0.000394096,0.000381449,0.000405285,0,0,0.000588502,0.000569132,0.000531526,0,0,0,0.000540346,0.000461156,0.000483643,0.000386488,0,0,0,0,0.000436967,0.000624454,0.000681857,0.000792393,0,0.000488261,0.000475633,0.000699056,0.000894905,0.000977099,0.000559722,0.000583976,0.000556502,0.000595238,0.000602682,0,0.000555273,0.000429496,0.000389547,0.000506842,0.000490512,0.000627001,0.000594196,0.000647394,0.000897871,0.001309119,0.001413969,0.001306336,0.000437135,0.000387547,0.000420492,0.000405959,0.000405433,0.000520536,0.000590092,0.000454221,0.000378237,0.000485611,0.000506235,0.000601807,0.000386518,0.000413227,0.000450563,0.000475325,0.000509868,0.00043566,0.000432763,0.000398174,0.000513598,0.000568746,0.000589095,0.000546846,0.000434311,0.000441715,0.000477591,0.000466506,0.000460071,0.000449796,0.000437801,0.000492701,0.000467973,0.000566631,0.000538422,0.000564487,0.000441916,0.000489696,0.000486958,0.000594626,0.000609546,0.000677331,0.00053205,0.000461907,0.000452247,0.000522132,0.000546619,0.000554509,0.000484102,0.000442408,0.000410149,0,0.000569097,0.000614342,0.00052541,0.000451508,0.000539526,0.000567476,0.000598017,0.000566824,0.000603681,0.000568593,0.000587116,0.000523722,0.000551417,0.000547537,0.000537375,0.000429125,0.000467878,0.000530762,0.000575384,0.000610036,0.000671327,0.000662752,0.000571006,0.000494534,0.000575974,0.000603943,0.000733848,0.000580674,0.000541404,0.000502964,0.000674092,0.0007174,0.000713445,0.000366642,0.00038717,0.000422423,0.000669379,0.000727609,0.000859671,0.000512182,0.000471802,0.000472702,0.000576118,0.000658041,0.000722376,0.00065677,0.000593541,0.000595281,0.000641603,0.000672735,0.000705951,0.000657119,0.000497034,0.000440724,0.000592215,0.000611706,0.000690834,0.000666216,0.000581581,0.000497278,0.000534464,0.000668896,0.000757101,0.000735864,0.0004799,0.000409325,0.000495586,0.000518374,0.000611389,0.000687965,0.000619869,0.000523847,0.00051686,0.000558095,0.000567484,0.000518375,0.000417631,0.000443973,0.000526393,0.000651495,0.000668507,0.000717233,0.000577754,0.000538912,0.000495723,0.000514093,0.000509257,0.000509082,0.000358721,0.00037943,0.000462573,0.000568962,0.000589484,0.000612849,0.000469715,0.000451376,0.000463994,0.000552801,0.000574141,0.000597824,0.000454391,0.000489548,0.000536788,0.00058912,0.000578493,0.000554769,0.000419694,0.000439234,0.000481081,0.000563494,0.000588536,0.00058116,0.000368169,0.00035137,0.000385,0.000465365,0.00052359,0.000552591,0.000513055,0,0,0.000253835,0.000381427,0.000857584,0,0,0,0,0 +INVESTIGATION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001150417,0.001150665,0.001150914,0,0,0,0.002193842,0.002194357,0.002192296,0,0,0,0.002855783,0.002854424,0.002853293,0,0,0,0,0.001332149,0.001332149,0.001332642,0,0,0,0.001544711,0.001545772,0.00154321,0,0,0,0.001620823,0.001620977,0.001620514,0,0,0,0.000940203,0.000940115,0.00093985,0,0,0,0.001334066,0.001333438,0.001334956,0,0,0,0.001277605,0.001277745,0.00127658,0,0,0,0.002159184,0.002158702,0.002158621,0,0,0,0.001868965,0.001894396,0.001892766,0,0,0,0.001830422,0.001825269,0.001854141,0,0,0,0.002266241,0.002233327,0.002201354,0,0,0,0.002279941,0.002310238,0.002256188,0,0.002174386,0.002345916,0,0.002404424,0.002425752,0.002392646,0.001912412,0.002069734,0.002398604,0.001969492,0.002003473,0.002014241,0.002141328,0.002363681,0.003066477,0.002791419,0.002601051,0.002029794,0.001756119,0.00222046,0.002892002,0.003085876,0.002086594,0.001554286,0.001363566,0.001324642,0.001852123,0.002177858,0.002380538,0.001659193,0.001493004,0.001440549,0.00181364,0.001773948,0.001628836,0.001135304,0.001397248,0.001748307,0.002107482,0.002042067,0,0.001629697,0.001671824,0.001827121,0.001527709,0.001867816,0.00208518,0.002566643,0.002305782,0.002245483,0.002164335,0.002173598,0.002096436,0.001699352,0.001790067,0.00174787,0.001956621,0.002045571,0.002311146,0.002512413,0.002319242,0.002195229,0.002252515,0.00218133,0.002381679,0.001735139,0.001907654,0.001669507,0.002046131,0.001808046,0.00198227,0.001850909,0.001519757,0.001363415,0.001330461,0.001594163,0.002310002,0.002470603,0.002539777,0.001681468,0.001424629,0.001251952,0.001492955,0.001347832,0.001227232,0.001074591,0.001131764,0.00111494,0.001292944,0.001209689,0.001065904,0.001002189,0.000980696,0.001004601,0.0010586,0.001017567,0.000964196,0.000907987,0.000890967,0.000828224,0.000808635,0.000743711,0.000788489,0.000817648,0.000880959,0.000894375,0.000886777,0.00080313,0.000843828,0.000944521,0.00092957,0.000934455,0.000785048,0.000678011,0.000635928,0.000742653,0,0.000809393,0.000819194,0.00086155,0.000856968,0.00080888,0.000766981,0.000764404,0.0007695,0.000871329,0.000757413,0.000829119,0.000767308,0.00077264,0.000703181,0.000627929,0.000723434,0.000717265,0.000779143,0.000748739,0.000724046,0.000645057,0.00061352,0.000630662,0.000605905,0.000586003,0.000610573,0.000630597,0,0.00066524,0.000744391,0.000670609,0.00067662,0.000543505,0.000573108,0.000630363,0.000693861,0.000713989,0.000696576,0.000606426,0.000555126,0.00063697,0,0.000647531,0.000605334,0.000510503,0.000593506,0.000618138,0.000668629,0.000618275,0.000607922,0.000544125,0.000522537,0.000561775,0.000613109,0.000594477,0.000608629,0.00054139,0.000523197,0.000505772,0.000610919,0.000603408,0.000589702,0.000558638,0.000476614,0.000524573,0.000585746,0.000573629,0.000564557,0.000529731,0.00052785,0.000556069,0.000556517,0.000519524,0.000486399,0.000476272,0.000513584,0.000570677,0.000551979,0.000488908,0.000461914,0.000453224,0.000435248,0.00043391,0.000424384,0.000475141,0.000455328,0.000442538,0.000348208,0.000393,0.000458211,0.000468837,0.000460143,0.000392369,0.00036047,0.000403041,0.000507576,0.000504418,0.000459608,0.000452395,0.000371017,0.000293125,0.000315914,0.000371792,0.000364257,0.00036742,0.00036318,0.000396481,0.000398245,0.000385477,0.000381335,0.000380018,0.000376299,0.000354121,0.000388821,0.000405642,0.00036836,0.00035488,0.000319436,0.000273939,0.000323944,0.000339663,0.000364693,0.00035579,0.000359667,0.000293083,0.000317072,0.000331556,0.000346476,0.000344806,0.000328372,0.000297165,0.000315516,0.000345091,0.000345871,0.000339006,0,0.000270556,0.000252268,0.000271617,0.000275347,0.00033057,0,0,0,0,0,0 +MASS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001348564,0.001347923,0.001347388,0,0,0,0,0.001554174,0.001554174,0.001554749,0,0,0,0.00114423,0.001145016,0.001143118,0,0,0,0.001191781,0.001191895,0.001191554,0,0,0,0.001175254,0.001175143,0.001174812,0,0,0,0.001255591,0.001255,0.001256429,0,0,0,0.001204599,0.001204731,0.001203633,0,0,0,0.001600774,0.001600417,0.001600357,0,0,0,0.00072682,0.000723315,0.000722693,0,0,0,0.000930723,0.000928103,0.00092707,0,0,0,0.00097924,0.001004997,0.000975284,0,0,0,0.000804685,0.000799698,0.000774182,0,0,0,0,0.000939911,0.000983413,0.000923477,0,0,0,0.001004055,0.001030357,0.000954114,0,0.000815062,0,0.000723701,0.000728294,0.000652434,0.000658545,0.000581549,0,0,0,0.000548571,0.000662303,0.000732039,0.000682361,0.000570391,0.000580619,0.000717489,0.000868025,0.000864329,0.00088971,0.000760264,0.000630517,0.000567652,0.000824018,0.001112559,0.001256383,0.001174188,0.000757002,0.000633771,0.000746985,0.000996612,0.00126036,0.001197318,0.001146849,0.000990634,0.000780419,0.000829101,0.000888923,0.001207554,0.000869254,0.000826712,0.000761731,0.000910349,0.000790975,0.000909143,0.001254622,0.001316026,0.000935834,0.000878092,0.000854402,0.001342357,0.001343511,0.001063473,0.000934361,0.001008661,0.001116071,0.001305811,0.001431639,0.001341909,0.001354566,0.001460802,0.001362139,0.001164965,0.000825001,0.000844383,0.001220089,0.001012146,0.001129436,0.000927917,0.000970421,0.000892483,0.000826767,0.0007125,0.000565882,0.000574363,0.000738825,0,0.000781259,0.00068193,0.000644322,0.000702958,0.000721443,0.000745427,0.000661163,0.000679275,0.000579768,0.00062179,0.000617446,0,0.000631315,0.000597828,0.000564768,0.000651105,0.000653998,0.000810024,0.000822504,0.000705725,0.00066447,0.000574578,0.000723585,0.000693508,0.000767697,0.000651093,0.000574501,0.000527865,0.000573666,0.000772424,0.000702481,0.00051752,0.000436634,0.000395381,0.000392252,0.000431809,0.00056806,0.000651768,0.000688609,0.000634783,0.000604736,0.00039991,0.000537011,0.000540921,0.000605387,0.000610236,0.000617717,0.00060084,0.00058696,0.000537703,0.000539294,0.00051926,0.000580139,0.000592146,0.000562095,0.000565809,0.000538433,0.000569476,0.000558885,0.000586413,0.000491235,0.000514861,0.000584668,0.000619644,0.000648341,0.000586144,0.000574952,0.000515348,0.000570731,0.000565416,0.000576111,0.000530445,0.000490846,0.000532877,0.000552216,0.000542064,0.000535796,0.000553988,0.000548519,0.000510532,0.000460825,0.000467428,0.000472488,0.000505505,0.000556241,0.000537855,0.000558397,0.000556914,0.000587497,0.000559842,0.00060888,0.000587271,0.000539431,0.000526379,0.000513848,0.000521187,0.000523541,0.000525599,0.000604961,0.000568697,0.000571667,0.000509947,0.000453769,0.000419829,0.000468685,0.00054748,0.000549821,0.000562122,0.000566191,0.000599875,0.000514736,0.000533204,0.000559626,0.000584484,0.000578093,0.000469814,0.000480502,0.000494069,0.000488238,0.000482268,0.00043065,0.000532525,0.000552472,0.00058133,0.000533461,0.000535238,0.0005099,0.000592622,0.000531764,0.000595243,0.000515384,0.000549998,0.000460798,0.000490881,0.000443713,0.000575903,0.000568528,0.000588523,0.000558994,0.000530265,0.000542142,0.000488465,0.000498984,0.000482135,0.000511994,0.000552227,0.000496811,0.000454905,0.000429567,0.000427349,0.000404625,0.000415005,0.000404919,0.000420714,0.000461968,0.000474028,0.000469463,0.000294535,0.000367504,0.000393216,0.00049779,0.000483778,0.000518744,0.000362746,0.000377285,0.00031922,0.000365695,0.000305142,0.000686067,0,0,0,0,0 +CURRICULUM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000858173,0.000858762,0.000857339,0,0,0,0,0.000619785,0.000619608,0,0,0,0,0,0,0,0,0,0.000667033,0.000666719,0.000667478,0,0,0,0.00073006,0.00073014,0.000729474,0,0,0,0.00137741,0.001377103,0.001377052,0,0,0,0.000899872,0.000929976,0.000929176,0,0,0,0.000899699,0.000897166,0.00092707,0,0,0,0.00195848,0.001982078,0.001978432,0,0,0,0.001184675,0.001221761,0.001216572,0,0,0,0,0.000502743,0.00048078,0.000461739,0,0,0,0.00030894,0.000324372,0.000300369,0,0,0,0.001137245,0.001196483,0.000906158,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000635748,0.00081057,0.001021033,0,0.000452694,0.000391278,0.000431865,0.000649276,0.000766284,0.000729813,0.000540346,0.000425683,0.000449097,0.000386488,0.000531324,0.000511326,0,0,0.000509795,0.001248907,0.001420535,0.00118859,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000547795,0.000408123,0.000295193,0,0.000223943,0.00120212,0.001330577,0.001483402,0.001254782,0.001131833,0.000654868,0.000457322,0.000672247,0.000425171,0.000369538,0.000222953,0.000188518,0.000240588,0.000342825,0.000500879,0.000530744,0.000591944,0.000476405,0.000423146,0.000447945,0.000517707,0.000499144,0.000450765,0.000302982,0.00046878,0.000615355,0.000560742,0.000540528,0.000417131,0.000449796,0.000263456,0.000486972,0.000569707,0.000659496,0.000559537,0.000465816,0.000274805,0.000472207,0.000678481,0.000716711,0.000706744,0.000572302,0.000393255,0.000591011,0.000693889,0.000655314,0.000654019,0.000685099,0.0008349,0.000645526,0.00061027,0.00069916,0.000870786,0.000874256,0.000832332,0.000520562,0.000816579,0.00084673,0.000941075,0.000804586,0.000815162,0.00051011,0.000643933,0.000717911,0.000772946,0.000737615,0.000637494,0.000547699,0.000779144,0.00083208,0.000838616,0.00072495,0.000626707,0.000512642,0.000760654,0.000800816,0.00075428,0.000640124,0.000486573,0.000340063,0.000460406,0.000662659,0.000723468,0.000734143,0.000767693,0.000811231,0.000897702,0.000570735,0.000510093,0.000423294,0.000681808,0.001005089,0.000983236,0.000648238,0.000517496,0.000410036,0.00047436,0.000716061,0.000771186,0.000637509,0.000527208,0.000548499,0.000607695,0.000717445,0.000561782,0.000482079,0.000540191,0.000556837,0.000568639,0.000513584,0.000528876,0.000544519,0.000620694,0.000632134,0.000629535,0.0004666,0.000413914,0.000409325,0.000517666,0.000526157,0.000553868,0.000537525,0.0004716,0.000439635,0.00040372,0.000466218,0.00053939,0.00068585,0.00061824,0.000490117,0.000406531,0.000431253,0.000413495,0.000522796,0.000552264,0.000518899,0.000408408,0.000453383,0.000458709,0.000556316,0.000594721,0.000561305,0.000416316,0.000416949,0.000411246,0.00044106,0.000444028,0.000417032,0.000413171,0.000452482,0.000468394,0.000488857,0.000445695,0.000422725,0.000403349,0.00045762,0.000460119,0.000471638,0.000363422,0.000381585,0.000395638,0.000488827,0.000518168,0.000534969,0.000412875,0.000335235,0.000347439,0.00040772,0.000445172,0.000481218,0.00049101,0.000448724,0.000425626,0.000460346,0.000483141,0,0,0,0,0,0 +MODERN,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000810411,0.000810489,0.000810257,0,0,0,0.000705152,0.000705086,0.000704887,0,0,0,0.000863219,0.000862813,0.000863795,0,0,0,0.000511042,0.000511098,0.000510632,0,0,0,0.000372273,0.00037219,0.000372176,0,0,0,0.000484546,0.00048221,0.000481795,0,0,0,0.000496386,0.000494988,0.000494438,0,0,0,0.000531587,0.000530415,0.00052944,0,0,0,0.000223524,0.000222138,0.000221195,0,0,0,0,0.000327876,0.000327804,0.000314822,0,0,0,0.000231705,0.000248049,0.000229694,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000486094,0.000316921,0.000410635,0,0,0,0,0.000572173,0.000648456,0.000663672,0,0,0,0,0.00042012,0.000574713,0.000781942,0,0.000532104,0.000656372,0.000772977,0.000483022,0,0,0,0,0.000416302,0,0,0,0.000488261,0.000439046,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000448196,0.000342824,0.000359366,0.000265119,0.000317253,0.00111105,0.001304741,0.001249796,0.000701202,0.000320968,0.000251872,0.000354055,0.000944779,0.00087519,0.00079119,0.000621646,0.000435041,0.00043779,0.000557091,0.000736453,0.000780129,0.000810814,0.000833709,0.00081103,0.000804206,0.000731364,0.00069204,0.00063918,0.0005801,0.000944453,0.000950449,0.000921068,0.000738491,0.000707487,0.000642566,0.000507539,0.000641657,0.000736549,0.000673661,0.000608804,0.000493352,0.000553323,0.000565482,0.000888342,0.000784217,0.000794057,0.000488707,0.000443375,0.000525025,0.000727142,0.000699203,0.000668446,0.000538436,0.00050515,0.000523098,0.00072519,0.000737772,0.000743254,0.000602528,0.000481192,0.000523218,0.000763721,0.000722475,0.000695461,0.000519272,0.000403736,0.000383394,0.000499522,0.000770872,0.000806657,0.000822724,0.000551678,0.000375485,0.000485497,0.000680039,0.000659246,0.000619967,0.000466481,0.000422009,0.00054833,0.00065141,0.000604128,0.000559413,0.000402819,0.000417058,0.000466801,0.000525351,0.00052167,0.000521628,0.000475082,0.000444589,0.000406148,0.000447583,0.000414332,0.000433591,0.000430616,0.000592039,0.000558614,0.000590187,0.000544786,0.000530181,0.000452689,0.000499418,0.000566372,0.000595281,0.000505656,0.000482578,0.000447494,0.000493378,0.000510364,0.000529341,0.000491731,0.000494555,0.00046665,0.000484708,0.000452543,0.000502251,0.000525516,0.000520252,0.000504043,0.000433403,0.000491898,0.000516105,0.000546289,0.000511369,0.000473154,0.000420892,0.000482319,0.000600628,0.000555116,0.000526963,0.00047103,0.00043065,0.000406689,0.000522542,0.00053738,0.000528845,0.000524433,0.000455339,0.000520403,0.000510322,0.000504173,0.000465008,0.000453427,0.000461847,0.000500321,0.000526812,0.000480305,0.000500339,0.000501086,0.00049696,0.000412836,0.000461188,0.000520464,0.000518316,0.000512007,0.000485872,0.000482655,0.000521507,0.000570148,0.000507298,0.000495564,0.000452128,0.000436107,0.000480412,0.000526589,0.000527504,0.000518808,0.00048122,0.000426024,0.000475066,0.000521158,0.000574651,0.000560989,0.000550384,0.000476981,0.000471048,0.000574035,0.000503369,0.000699283,0,0,0,0,0,0 +ASPECTS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000888099,0.000888099,0.000888428,0,0,0,0.000572115,0.000572508,0.000571559,0,0,0,0.000715069,0.000715137,0.000714933,0,0,0,0.001034223,0.001034126,0.001033835,0,0,0,0.00113788,0.001137344,0.001138639,0,0,0,0.000803066,0.000803154,0.000802422,0,0,0,0.000707319,0.000707161,0.000707135,0,0,0,0.001072924,0.00106775,0.001066832,0,0,0,0.000806627,0.000773419,0.000803461,0,0,0,0.000923284,0.000893331,0.000919553,0,0,0,0.001005856,0.000977409,0.001083855,0.002790698,0.003479017,0.002345916,0,0.000786902,0.000808584,0.00077656,0,0,0,0.000830276,0.00083955,0.000848101,0,0,0,0.000620315,0.000572231,0.000507449,0,0,0,0,0,0,0,0.000557744,0.000731101,0.00082966,0,0.00058296,0.000624978,0.00060503,0.000615953,0.000633553,0.000735603,0.000567652,0.00057323,0.000508598,0.000445813,0,0,0,0.000675844,0.000797289,0.000993011,0.000814176,0.000625554,0.000450288,0.000567577,0.00076001,0.000772977,0.000579626,0,0,0.000457038,0.000400553,0,0,0,0.000658013,0.000732392,0.000585394,0.000504874,0,0,0,0.000778634,0.000695628,0.00063244,0.000552458,0.000770883,0.000925455,0.000660764,0.000616783,0.000475165,0.000459855,0.000462,0.000437828,0.000522895,0.000636672,0.000757235,0.000736442,0.000709154,0.000528204,0.00065883,0.000654099,0.000676598,0.000591256,0.000554119,0.000604845,0.000654078,0.000706778,0.000665642,0.000653122,0.000590931,0.000654714,0.000627493,0.000676988,0.000622398,0.000651636,0.000576701,0.000609074,0.000636554,0.000671786,0.00069204,0.000674955,0.000628134,0.000572187,0.000578799,0.000607649,0.00060422,0.00059707,0.000555959,0.000526911,0.000541398,0.000616504,0.00061385,0.000610564,0.00054613,0.000571891,0.000580057,0.000662181,0.000656387,0.000673796,0.000653753,0.000620725,0.000642653,0.000649551,0.000608398,0.000581885,0.000512318,0.000466562,0.000464667,0.000534977,0.000533678,0.000559497,0.000551895,0.000564425,0.000565713,0.000630662,0.000644335,0.00061537,0.000570629,0.000553695,0.000620579,0.000651036,0.00063847,0.0005767,0.00055463,0.000433169,0.000474296,0.000561845,0.00064272,0.000581208,0.000544777,0.000438087,0.000441835,0.000505041,0.000585672,0.000572455,0.000567762,0.00049455,0.000545384,0.000556324,0.0006149,0.000558165,0.000547388,0.000475082,0.00048212,0.000447902,0.000516442,0.000509145,0.000528546,0.000460259,0.000481892,0.000509546,0.000583276,0.000555904,0.000538999,0.000512887,0.00045609,0.000480685,0.000566675,0.000501511,0.000493565,0.000419726,0.000437361,0.000502747,0.000574241,0.00055872,0.00055313,0.000521493,0.000501209,0.000519788,0.000604193,0.000597916,0.000596172,0.000555899,0.000538527,0.000555884,0.000591399,0.000596992,0.000567409,0.000541807,0.000503719,0.000525191,0.000564714,0.000553488,0.000534556,0.000503806,0.000486475,0.000528878,0.00057492,0.000575337,0.000586873,0.000580622,0.00052974,0.000429067,0.000501745,0.000543605,0.000554781,0.000542453,0.000537422,0.000490881,0.000492318,0.000520394,0.000500774,0.000501086,0.000473782,0.000478889,0.000537235,0.000559052,0.000507344,0.000488707,0.000458257,0.000439172,0.000477927,0.000534766,0.000530676,0.000518303,0.000511507,0.000452519,0.000501001,0.000499655,0.000479695,0.000464432,0.000414034,0.000376058,0.000406943,0.000446036,0.000450353,0.000455427,0.000440013,0.000424874,0.00037282,0.000420026,0.000369998,0.000381427,0,0,0,0,0,0 +INFRASTRUCTURE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.42E-05,5.21E-05,6.56E-05,7.61E-05,5.52E-05,7.96E-05,7.32E-05,8.53E-05,6.47E-05,6.27E-05,6.73E-05,6.55E-05,6.57E-05,6.16E-05,5.49E-05,6.28E-05,6.55E-05,7.31E-05,6.61E-05,8.43E-05,9.00E-05,0.000103369,0.000697382,0.000527076,0.000402864,7.71E-05,8.62E-05,9.18E-05,0.000167111,0.000171977,0.000124286,0.000165174,0.000179569,0.000229349,0.000169639,0.000163532,0.000152966,0.00015437,0.000165108,0.000174791,0.000157859,0.000133557,0.000148605,0.000234432,0.000415509,0.000504638,0.000556622,0.000231066,0.000216904,0.000363799,0.000508581,0.000641006,0.000676738,0.000308665,0.000194127,0.000219198,0.000432224,0.000527678,0.00065384,0.000302082,0.000234918,0.000228062,0.000300504,0.000306437,0.00037927,0.000283228,0.000317454,0.000218133,0.000306169,0.000297797,0.000392848,0.000288733,0.000272833,0.000210439,0.000342413,0.000358056,0.000432341,0.000291581,0.000284683,0.000296623,0.000450361,0.000486217,0.000585075,0.000294642,0.000328374,0.000262612,0.000445734,0.000538999,0.000598368,0.000560991,0.00032185,0.000310581,0.000498195,0.000615266,0.000710223,0.000659274,0.000432286,0.000535249,0.000758263,0.000839334,0.000942921,0.000806472,0.000616113,0.000566897,0.000624762,0.00078797,0.000820366,0.000853897,0.000495897,0.000714607,0.000837425,0.000888085,0.000813639,0.00076572,0.00065381,0.000756668,0.000657674,0.000723625,0.000685475,0.00069861,0.000561705,0.000670948,0.000839033,0.000895477,0.000823388,0.000805523,0.000700951,0.000919152,0.000754851,0.000709784,0.000595265,0.000647636,0.000512121,0.000768267,0.000632183,0.000730096,0.000677883,0.000734191,0.000550448,0.000583845,0.000575052,0.000695965,0.000693629,0.000766498,0.000647888,0.000605761,0.000627769,0.000647565,0.000656071,0.000648079,0.000611956,0.000923764,0.000814494,0.000831006,0.000751024,0.000844025,0.00083627,0.000688398,0.000753566,0.00081604,0.000912663,0.000922703,0.00100206,0.000761268,0.000562834,0.000516276,0.000292427,0,0,0,0,0,0 +IMPORTANCE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000594001,0.000625469,0.000423296,0.000359148,0.000346531,0.000353492,0.000298591,0.000309637,0.000400465,0.000373771,0.000405959,0.000304075,0.000436579,0.000516331,0.000605627,0.000726104,0.000724863,0.000760664,0.00073957,0.000749371,0.000691772,0.000709007,0.000688475,0.000748635,0.000724011,0.000724477,0.000615597,0.000616318,0.000600564,0.000660645,0.000650303,0.000616997,0.000520919,0.000592724,0.00059217,0.000599115,0.000516846,0.00065089,0.000678896,0.000642955,0.000590241,0.000600007,0.000596612,0.000594173,0.000568397,0.000584757,0.0005659,0.000551886,0.000550867,0.000578315,0.000562322,0.000552007,0.000582669,0.000583488,0.000620809,0.000526198,0.000587094,0.000562716,0.000546089,0.000486818,0.000477634,0.000481192,0.000557745,0.000539526,0.000571319,0.000567315,0.000559216,0.000469103,0.000493864,0.000553972,0.000569327,0.000534561,0.000534771,0.000484251,0.000516644,0.000516819,0.000540437,0.000566066,0.00057315,0.000594257,0.000625933,0.000575128,0.000579695,0.000530225,0.000546888,0.00054241,0.000635212,0.000588297,0.000565648,0.000498055,0.000490717,0.000481658,0.000525424,0.000575061,0.00059457,0.000528108,0.000499945,0.000432176,0.00051769,0.000547291,0.000548721,0.000545796,0.000519158,0.000512887,0.000497138,0.000603991,0.000611627,0.000550419,0.000518074,0.000500894,0.000586021,0.00059606,0.000571878,0.000548743,0.000536818,0.000532077,0.000488833,0.000543415,0.000580572,0.000610932,0.000587382,0.00059531,0.000556969,0.000629869,0.000647527,0.000608442,0.000582198,0.000527891,0.000464841,0.000469814,0.000510224,0.000587674,0.000583152,0.000589958,0.000534325,0.000514288,0.000542495,0.000517403,0.000497853,0.000485532,0.000466251,0.000543768,0.000531764,0.000545483,0.000537989,0.000530382,0.000529025,0.000500321,0.000531515,0.000535814,0.000525964,0.00051742,0.000499005,0.000473385,0.000513931,0.000506347,0.000478606,0.000460029,0.000492589,0.000582664,0.00061593,0.000571159,0.000533014,0.000501583,0.000491149,0.000501757,0.000543552,0.000530303,0.000513,0.000500896,0.000503896,0.000557513,0.000562909,0.000538765,0.000495989,0.000466888,0.000453993,0.000448923,0.000540255,0.000579635,0.000520578,0.000406856,0,0,0,0,0,0 +II,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000401533,0.000401577,0.000401211,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000372289,0.000371241,0.000370828,0,0,0,0.000279783,0.000279166,0.000278652,0,0,0,0.000424695,0.000422063,0.00042027,0,0,0,0,0.000393451,0.000415219,0.000440751,0,0,0,0.000984746,0.001011277,0.00086577,0,0,0,0.000827087,0.000780315,0.000616188,0.000548787,0,0,0,0,0,0,0,0,0.000622245,0.000580619,0,0,0,0,0.000422369,0,0,0,0.000349661,0,0,0.000582309,0.000452694,0.000426849,0,0,0,0,0,0,0,0.000463786,0,0.000613591,0,0.000380865,0.000473381,0.000749344,0.000852321,0.00072636,0,0.000447573,0,0,0,0.000732824,0.000895556,0.000700771,0.000591284,0.000483631,0.000652905,0.000660757,0.000740364,0.000594687,0.000486934,0.000380132,0,0.000429,0.000437828,0.000473096,0.000342824,0.000359366,0.000397679,0.000466548,0.000418921,0.000413383,0.000420492,0.000639693,0.000709507,0.000671659,0.000472074,0.000381545,0.000394802,0.000376644,0.000414431,0.000460419,0.000493007,0.00048669,0.000402533,0.000404985,0.000363125,0.000485808,0.000480848,0.000508195,0.000423205,0.000427554,0.00039591,0.000447083,0.000454992,0.000444761,0.000420024,0.000423471,0.000462116,0.000547578,0.000627644,0.00056145,0.000463904,0.000464323,0.000448685,0.000465816,0.000430775,0.000480951,0.000462508,0.000505576,0.000500816,0.000615171,0.000570605,0.000487728,0.000368005,0.000435867,0.000485705,0.000536427,0.000722645,0.000656655,0.000499311,0.000459212,0.000477218,0.00057046,0.000699679,0.000658671,0.000554108,0.000388138,0.000493898,0.000498349,0.000780556,0.000474369,0.000565809,0.000616403,0.000759703,0.000795773,0.000980761,0.000810256,0.000667558,0.000565317,0.000680211,0.000787373,0.00094716,0.000767547,0.000599865,0.000669339,0.000628762,0.000681871,0.000562351,0.000651253,0.000558456,0.00060296,0.000678385,0.000718688,0.000690431,0.000580276,0.000679445,0.000642242,0.00063335,0.000604053,0.000650604,0.000732476,0.000647313,0.000628887,0.000549839,0.000561044,0.000533355,0.00060888,0.000543383,0.000521722,0.000455919,0.000484268,0.00049769,0.000624802,0.000502747,0.000518707,0.000452535,0.000520506,0.000555169,0.000825035,0.000630652,0.000515926,0.000479147,0.000521051,0.00057353,0.000800413,0.000859821,0.000628362,0.000489043,0.000476344,0.000498203,0.000623732,0.000509114,0.000482979,0.000424069,0.000455587,0.000468221,0.00046574,0.000496051,0.000440232,0.000435498,0.000430594,0.000446632,0.000497004,0.000671214,0.000553206,0.000540789,0.000465654,0.000502467,0.000550018,0.000837802,0.000624021,0.00049264,0.000449089,0.000467456,0.000469692,0.000563291,0.00048572,0.000446112,0.000450392,0.000467199,0.000538862,0.000810947,0.000656605,0.000517581,0.000474569,0.00053636,0.000581065,0.000754981,0.000572377,0.000495012,0.000517297,0.00051305,0.000552605,0.00060222,0.000591592,0.000504725,0.000468968,0.000468697,0.000493727,0.000446919,0.000674202,0.000784048,0.00101104,0.000508569,0.000743239,0,0,0,0,0 +COMPONENT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001155948,0.000892024,0.000788191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000205352,0.000220933,0.000391901,0.000437135,0.000477974,0.000327049,0.000307545,0.000253395,0.000302247,0.000501578,0.000460277,0.000425171,0.000379013,0.000356725,0.000311779,0.000343133,0.000376496,0.000411682,0.000396459,0.000390484,0.000451331,0.00051611,0.000497717,0.000474565,0.000431531,0.000436455,0.00036949,0.000465333,0.0004539,0.000428552,0.000445849,0.000449847,0.000553165,0.000554032,0.00059296,0.000539187,0.000549317,0.000524346,0.000502531,0.000467911,0.000498441,0.000535858,0.000481159,0.000474458,0.000402969,0.0003547,0.000441824,0.000516537,0.000553914,0.000530589,0.000498254,0.00034729,0.000409018,0.000501293,0.000543331,0.000543042,0.000541768,0.000538415,0.000578993,0.000645244,0.000705822,0.000690122,0.0006353,0.000438342,0.000376896,0.000456909,0.000575211,0.000611615,0.00062981,0.000565981,0.000632395,0.000689092,0.000659306,0.000606832,0.000554707,0.000580059,0.000671249,0.000696751,0.000623023,0.000591224,0.000542714,0.000568334,0.000609547,0.000656505,0.000601467,0.000606468,0.000595043,0.000652621,0.000626467,0.00062061,0.000541602,0.000592581,0.000581172,0.000680248,0.000702185,0.000668072,0.000631652,0.000582183,0.00057427,0.00055623,0.000647648,0.000652059,0.000610265,0.000571971,0.000568783,0.000556431,0.000601103,0.000597964,0.000606143,0.000629273,0.000630984,0.000634067,0.000610526,0.000657914,0.000660137,0.000600357,0.000595373,0.00058079,0.000639962,0.000659863,0.000658479,0.000599446,0.000595429,0.00056964,0.000650778,0.000618082,0.000625396,0.000592557,0.00059682,0.000576848,0.000524755,0.000534349,0.00057492,0.00054637,0.000544012,0.000544603,0.000581326,0.000615987,0.000567501,0.000492906,0.000496655,0.000503976,0.000556316,0.000554601,0.000531515,0.000524249,0.000490784,0.000488594,0.000481962,0.000510081,0.000488173,0.000487523,0.000515181,0.000523358,0.000535131,0.000610928,0.000581066,0.000523646,0.000462296,0.000446744,0.000442797,0.000480655,0.0005161,0.000523802,0.000500108,0.000483623,0.000453506,0.000370799,0.000458932,0.000478902,0.000453956,0.00043914,0.000422354,0.000400824,0.000366123,0.000459228,0.000520578,0.000813711,0.000571723,0,0,0,0,0 +GENES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000176688,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000345459,0,0,0,0,0.000457038,0.000436967,0,0,0,0,0,0.000402459,0.000466038,0,0,0,0,0,0,0,0,0.000509,0.000495573,0.000422009,0.000475165,0.000429198,0.000363,0.000312735,0,0.000212224,0.000141179,0.000191475,0.000242605,0.000273209,0.000193773,0.000128484,0.000172225,0.000236502,0.000352621,0.000236037,0.000187745,0.000427932,0.000521143,0.000621646,0.000681564,0.000619217,0.000685651,0.000644968,0.000758814,0.000741174,0.000855649,0.000673187,0.000537011,0.00057523,0.00062045,0.00072981,0.000609659,0.000737639,0.000633632,0.000573535,0.000635206,0.000723845,0.000863273,0.000720629,0.000584366,0.000494424,0.000541447,0.000605285,0.000690693,0.000672158,0.000623779,0.000546045,0.000594626,0.00058813,0.000606597,0.000524339,0.000608225,0.000609647,0.000770334,0.000761419,0.000863908,0.000740185,0.000659438,0.00061027,0.000755699,0.000721313,0.000762864,0.000569627,0.000640079,0.000517653,0.000736566,0.000748856,0.000892083,0.000665203,0.000812276,0.000762303,0.000647297,0.000594759,0.000605695,0.000643624,0.000813079,0.000669516,0.000609547,0.000665069,0.000734881,0.000795046,0.00075905,0.00071118,0.000645434,0.000713222,0.000776498,0.001015024,0.001013773,0.000792922,0.000691016,0.000733128,0.000785662,0.000805502,0.000860309,0.000704117,0.000629,0.00061818,0.000641806,0.000691169,0.000710446,0.00076432,0.000809952,0.000934929,0.00097659,0.000970392,0.000830084,0.000693858,0.000637509,0.000686366,0.000720909,0.000743332,0.000713136,0.000676042,0.000522252,0.00066348,0.000651003,0.000784164,0.000719843,0.000674271,0.000590518,0.000608492,0.00058898,0.000601532,0.000608609,0.00062387,0.000614672,0.000471869,0.000469338,0.000435116,0.000424273,0.000485891,0.000460688,0.000453372,0.000484441,0,0.00052316,0.000457753,0.000457692,0.000462467,0.000439166,0.000425741,0.000404745,0.000473673,0.000404541,0.000419675,0.000417216,0.000451164,0.000518528,0.000674961,0.000591095,0.000515769,0.000396102,0.00039395,0.000316991,0.000449532,0.000404766,0.000433877,0.000310363,0.000299915,0.000285851,0.000460914,0.000409652,0.000326521,0.000240791,0.000252129,0.000303681,0.000529893,0.00048453,0.000380778,0.000249785,0.000208547,0.00019064,0.000657445,0.000518091,0.000467164,0.000253999,0.00023465,0.000192782,0.000236486,0.000352728,0.000464828,0.00052488,0.000737426,0,0,0,0,0,0 +SITES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000391696,0.000362916,0.000334383,0,0,0,0.000357638,0.000355421,0.000353912,0,0,0,0,0,0,0,0,0,0,0.000193087,0.000190807,0.000212025,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000396458,0.000422009,0.000380132,0.00030657,0,0,0,0.000212224,0.000192517,0.000191475,0,0,0.000258365,0.000303689,0.000319846,0.000219609,0.000352621,0.000339303,0.000302814,0.000425171,0.000476135,0.000592793,0.000587306,0.000761203,0.000667285,0.00075475,0.000590426,0.000599406,0.000467003,0.00061228,0.000565826,0.000573175,0.000564768,0.00063918,0.000709422,0.000706616,0.000648864,0.000635366,0.000585285,0.000603204,0.000606247,0.000705131,0.000704677,0.000647024,0.000565057,0.00054722,0.000555308,0.000709294,0.000784097,0.000735531,0.000613298,0.000560123,0.000501568,0.000570605,0.000688557,0.000682804,0.000661368,0.000613944,0.000630854,0.000691073,0.00078743,0.000685563,0.000668822,0.000659603,0.000724046,0.000775109,0.000725069,0.000610612,0.000608467,0.000639397,0.000684754,0.000792091,0.000630327,0.000693649,0.000619345,0.000642918,0.000628391,0.000721268,0.000931653,0.000851577,0.000682803,0.00059402,0.000588756,0.000707835,0.000818528,0.000820434,0.000687268,0.00070853,0.000686046,0.000791679,0.000728248,0.000658637,0.000623855,0.000553872,0.000557691,0.000540837,0.000701527,0.00064718,0.000634297,0.000622921,0.000641806,0.00069585,0.000693924,0.000690719,0.000635798,0.000586226,0.000586395,0.000571881,0.00065905,0.00064788,0.000621163,0.000579432,0.000576389,0.000640803,0.000756226,0.000706512,0.00056597,0.000557295,0.000561286,0.000570564,0.000569274,0.000614295,0.000554465,0.000505992,0.000463512,0.000464632,0.000580945,0.000595876,0.000528426,0.000455513,0.000463112,0.000482431,0.000481744,0.000482319,0.000448304,0.000457441,0.00044192,0.000456984,0.000515185,0.000627358,0.000505082,0.000445486,0.000388392,0.000397647,0.00041169,0.000490666,0.00046315,0.000500417,0.000463071,0.000470026,0.000425109,0.000429521,0.000479775,0.000454092,0.000463856,0.000458808,0.000484689,0.000489898,0.000509024,0.00044423,0.000488011,0.000475563,0.000501545,0.000408735,0.000395125,0.000378077,0.0003945,0.000395916,0.000454673,0.000630714,0.000560023,0.000454148,0.000427052,0.000417093,0.000429151,0.000491769,0.000489408,0.000450731,0.00037049,0.000357706,0.000354659,0.000360742,0.000383983,0.00032482,0.000314068,0,0,0,0,0,0,0 +STATISTICAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001036116,0.001036116,0.0010365,0,0,0,0.000972596,0.000973264,0.000971651,0,0,0,0.000905754,0.00090584,0.000905581,0,0,0,0.001081234,0.001081132,0.001080827,0,0,0,0.000941693,0.00094125,0.000942322,0,0,0,0.000912575,0.000912675,0.000911843,0,0,0,0.001154047,0.001153789,0.001153746,0,0,0,0.000969093,0.00096442,0.000998004,0,0,0,0.00120994,0.001206534,0.001236094,0,0,0,0,0.001088747,0.001086745,0,0,0,0.00084939,0.000844126,0.00086266,0,0,0,0,0.001071062,0.001070828,0.001028418,0,0,0,0.00092682,0.00083955,0.000777426,0,0.000815062,0.001423721,0.001188938,0.001196483,0.000906158,0.000823181,0.000951626,0.001265251,0.001322518,0,0.000822857,0.000740221,0.000766898,0.000926061,0.000985222,0.00092899,0.000717489,0.000902746,0.001094817,0.001095028,0.000844737,0.000525431,0.000567652,0.001074807,0.001080772,0.001296912,0.000714723,0,0.000452694,0.000675844,0.000664408,0.000763854,0.00052682,0,0.000495317,0.000851366,0.000967285,0.000927572,0.000579626,0,0,0.000837904,0.000873935,0.001207277,0.001136428,0.001518753,0.001016929,0.001261342,0.000987853,0.001165094,0.000615247,0.000793893,0.000951528,0.00112902,0.001113005,0.001078869,0.000803576,0.000770883,0.000740364,0.001024184,0.000876481,0.000728586,0.000551826,0.000495,0.000625469,0.000746993,0.000718297,0.00062889,0.000618611,0.000447887,0.000400707,0.000452138,0.000513935,0.000442864,0.000320968,0.000268664,0.000339303,0.000369433,0.000491432,0.000497455,0.000524596,0.000384286,0.000335245,0.000339764,0.000553483,0.000528612,0.00055215,0.000379244,0.000407118,0.000411271,0.000470456,0.000459371,0.000450765,0.000332541,0.000355032,0.000399067,0.000550082,0.000535363,0.000568443,0.00045259,0.000433927,0.000392442,0.000459835,0.000546169,0.000559537,0.00054613,0.000401067,0.000448888,0.000554195,0.00061617,0.000637552,0.000557298,0.000493496,0.00042461,0.000647334,0.000576616,0.000577076,0.000437981,0.000326243,0.00031998,0.000443832,0.000457833,0.000495045,0.000425314,0.000390156,0.000347927,0.000579626,0.000609748,0.000628718,0.000496447,0.000357595,0.000350903,0.000414295,0.000554616,0.000502054,0.000490798,0.000314661,0.000333137,0.000356292,0.000545966,0.000584702,0.000639829,0.000515158,0.000419177,0.000453506,0.000542344,0.000506763,0.00047731,0.000335018,0.000285525,0.000373014,0.000496994,0.000544211,0.000562843,0.000488233,0.000331999,0.000297969,0.000440962,0.000543278,0.000591468,0.000511746,0.000366238,0.000417073,0.000601244,0.000532657,0.000536794,0.000423794,0.000399079,0.000394998,0.000580297,0.000607616,0.000599208,0.000509438,0.000370572,0.000466564,0.000564788,0.000550168,0.000510125,0.000424315,0.00029495,0.000334409,0.000458739,0.000536904,0.000589779,0.000594273,0.000542215,0.000451906,0.000538009,0.000516848,0.000544837,0.000516758,0.000524003,0.000405505,0.000533754,0.000585232,0.000613524,0.000545009,0.00046255,0.000428573,0.000647253,0.000647254,0.000651495,0.000629607,0.000527756,0.000303745,0.000350221,0.000542666,0.000608386,0.00062318,0.000536373,0.000387041,0.00037159,0.00054892,0.00053161,0.000549128,0.00046492,0.000361461,0.000450149,0.000535523,0.000575268,0.000565179,0.000509755,0.000330466,0.000453231,0.000672249,0.000651071,0.000652727,0.000557314,0.000365767,0.000422763,0.000487582,0.000608617,0.000623081,0.000600476,0.000310314,0.000362126,0.000482423,0.000569847,0.00055737,0.000540083,0.000348717,0.000366123,0.000453628,0.000520578,0.000813711,0,0,0,0,0,0 +DEPARTMENT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004218472,0.004218472,0.004220034,0,0,0,0.002059614,0.002061029,0.002057613,0,0,0,0.00152548,0.001525626,0.001525189,0,0,0,0.000752162,0.000752092,0.00075188,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000261199,0.000243855,0.000235661,0.000205281,0.001147478,0.001278905,0.001203074,0.000639693,0.000304075,0.000268664,0.000545835,0.001059848,0.000864147,0.000798296,0.00059017,0.000413289,0.000512727,0.000639737,0.000823363,0.000820628,0.000868019,0.000880723,0.00100978,0.001005912,0.000844355,0.000688063,0.000598635,0.000561625,0.000830705,0.001111903,0.000982898,0.000934734,0.000744293,0.000857686,0.000840733,0.001145817,0.001092616,0.000967995,0.00082347,0.000658568,0.000620168,0.000903606,0.001030966,0.000993916,0.000864897,0.0007695,0.000736388,0.001015622,0.000984302,0.000880815,0.000809509,0.000803636,0.000915584,0.000932117,0.00089559,0.000886706,0.000868044,0.000845564,0.000881752,0.000966758,0.001038952,0.000953052,0.000827612,0.000758936,0.000661358,0.000773287,0.000852265,0.000956234,0.000982437,0.000981595,0.000868382,0.000722737,0.000820255,0.00090119,0.000858417,0.000812909,0.000691609,0.000719398,0.000700873,0.000761971,0.000748414,0.000755624,0.000682,0.000853366,0.000812105,0.000692508,0.000634376,0.000605346,0.000670704,0.000739058,0.000749666,0.000656808,0.000514834,0.000465624,0.000460259,0.000768273,0.000758658,0.000591569,0.000615537,0.000595213,0.000641711,0.000681854,0.000731477,0.000622525,0.000522235,0.000490184,0.000506234,0.000598948,0.000681755,0.000557699,0.000530214,0.000472311,0.000494553,0.000443456,0.000568859,0.000553222,0.00058002,0.000543428,0.000546565,0.000488732,0.0004799,0.000376469,0.000435068,0.000428865,0.000480576,0.000447938,0.000462669,0.00040496,0.000395581,0.000365989,0.000392369,0.000378015,0.000450458,0.000372888,0.000341606,0.000285524,0.000276624,0.000316455,0.000467301,0.00040883,0.000353015,0.000308714,0.00031159,0.000326442,0.000509761,0.000487614,0.000361578,0.000334428,0.000322367,0.000337442,0.000322929,0.000377782,0.000316231,0.000318723,0.000295136,0.000350783,0.000350033,0.000315228,0.000227453,0.000230856,0.000224041,0.000240061,0.000248534,0.000256677,0.00024797,0.000258917,0.000253327,0.000261186,0.00024194,0.000261735,0.000244146,0.000235385,0.00023646,0.000245024,0.00026254,0.00023664,0.000249215,0.000245231,0.000266999,0,0,0,0,0,0 +PLANTS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004681648,0.004688965,0.004697776,0,0,0,0.004944376,0.004952538,0.004950495,0,0,0,0.004042179,0.004045734,0.00404787,0,0,0,0.001797527,0.001797914,0.001798302,0,0,0,0.001488678,0.001489028,0.001487629,0,0,0,0.002141837,0.002140818,0.00213997,0,0,0,0,0.001628182,0.001628182,0.001628785,0,0,0,0.002002403,0.002003779,0.002000457,0,0,0,0.001859179,0.001859356,0.001858825,0,0,0,0.001457315,0.001457178,0.001456767,0,0,0,0.00113788,0.001137344,0.001138639,0,0,0,0.001058587,0.001058703,0.001057738,0,0,0,0.001042365,0.001042132,0.001042093,0,0,0,0.000969093,0.00096442,0.00096359,0,0,0,0.000775603,0.000773419,0.000772559,0,0,0,0.000867327,0.000893331,0.000891688,0,0,0,0.000961152,0.000932981,0.000929019,0,0,0,0,0.001355221,0.001376778,0.001406204,0,0,0,0.000810967,0.000801389,0.00072442,0,0,0,0.001085552,0.001092441,0.000942405,0.000713423,0.001004494,0.001355626,0.001587022,0.000956355,0,0.000584385,0.000592603,0.000974801,0.001140783,0.0012193,0.000896861,0.00069442,0.000662652,0.000581734,0.000718027,0.00068306,0.000527105,0.000537403,0.000635748,0.000729513,0.00091893,0.000757002,0.000769579,0.000604702,0.000730848,0.000725662,0.000718391,0.000729813,0.000720461,0.000673998,0.00076001,0.000772977,0.000724533,0.000511326,0.000505213,0.000609385,0.000582623,0.000666084,0.000852321,0.001320655,0.00089729,0.000610327,0.000548807,0.000737893,0.001118631,0.001221374,0.001175417,0.001090088,0.000973879,0.00093006,0.000703129,0.000770883,0.000786636,0.000759878,0.000779094,0.000823619,0.000797081,0.000660001,0.000594196,0.000597595,0.000342824,0.000320862,0.000235661,0.000522534,0.00050999,0.000413383,0.000385451,0.000319846,0.000473005,0.000386204,0.000457322,0.000387602,0.000507997,0.000580364,0.000758041,0.000909961,0.000871637,0.000740748,0.000594651,0.000673554,0.000614329,0.000805501,0.000785385,0.000741336,0.000723146,0.000755676,0.00088245,0.000883082,0.000865174,0.00068542,0.000688669,0.000764313,0.000862889,0.000894005,0.000743875,0.000684625,0.000675509,0.000711437,0.000709099,0.000699872,0.000605313,0.000501355,0.000476771,0.000552973,0.000586482,0.000681618,0.000720967,0.000702902,0.000596345,0.000641693,0.000646004,0.000731308,0.000701597,0.000642743,0.000538939,0.00060125,0.00057321,0.000627844,0.000533213,0.000645391,0.000574157,0.000584129,0.000556636,0.000604866,0.000672893,0.000721301,0.000688914,0.000550202,0.000528541,0.000524841,0.000598673,0.000731207,0.000683219,0.000584668,0.000517147,0.000493704,0.000582088,0.000753385,0.000661707,0.000542344,0.00053609,0.000564979,0.000660065,0.000599922,0.00056485,0.000514904,0.000496982,0.000481701,0.00050796,0.000603371,0.000626304,0.000545575,0.000550863,0.000528546,0.000567913,0.000627836,0.000664298,0.000656531,0.00061958,0.000580884,0.000565861,0.000572393,0.000549653,0.000593919,0.000561195,0.000588221,0.000576723,0.000659274,0.000628434,0.000534067,0.000485317,0.000464155,0.000462801,0.000573399,0.000699715,0.000742187,0.000636964,0.000565005,0.000538268,0.000532994,0.000619871,0.00055033,0.000488225,0.000443653,0.000448104,0.000415822,0.000507328,0.000447065,0.000402906,0.000423696,0.000412034,0.00042108,0.000330093,0.000421525,0.000404534,0.000366631,0.00032633,0.000334312,0.000516155,0.000498886,0.000518256,0.000412049,0.000396843,0.000339038,0.000413001,0.000504861,0.000582071,0.000439968,0.000422295,0.000325853,0.000557787,0.000505345,0.000471524,0.000368882,0.000348308,0.000364964,0.000608754,0.000617383,0.000536788,0.000323198,0.000296269,0.000301984,0.000644782,0.000557278,0.000454148,0.000266975,0.000226459,0.00019148,0.000575922,0.000625653,0.000515289,0.000308642,0.000247318,0.000227365,0.000378779,0.000520162,0.000590836,0.00052488,0.000444998,0,0,0,0,0,0 +COMMUNITIES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000793273,0.000792896,0.000792581,0,0,0,0,0,0,0,0,0,0,0.000572115,0.000572508,0.000571559,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000392372,0.000392188,0.000392634,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000587544,0.000558332,0.00052944,0,0,0,0.000312933,0.000310994,0.000353912,0,0,0,0,0.000327876,0.000327804,0.00033581,0,0,0,0.00030894,0.00028621,0.000229694,0,0,0,0,0,0,0,0,0,0,0,0.000502857,0.000467508,0.000383449,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000425683,0,0,0,0,0,0,0,0,0,0.000660328,0.000598193,0.000406884,0,0,0,0,0,0,0,0,0,0,0.000462727,0.000330382,0,0,0,0,0.000312735,0,0.000163249,0.000141179,0.000176746,0,0.000182139,0.000245446,0.000198566,0.000307545,0.000337861,0.000402996,0.000265542,0.000151407,0.000201542,0.000220301,0.000241314,0.000279151,0.000232699,0.000238753,0.000205841,0.00017052,0.000164153,0.000178652,0.000237218,0.000230522,0.000215711,0.00018693,0.00019557,0.000206915,0.000237837,0.00023152,0.000266513,0.000256492,0.000263774,0.000209532,0.000255707,0.000249215,0.000229917,0.000209339,0.000212906,0.000222582,0.000252523,0.000247763,0.000252648,0.000236989,0.000250408,0.000263645,0.000296869,0.000292637,0.000261594,0.000281497,0.00027892,0.0003315,0.000368338,0.000339457,0.000263525,0.000274424,0.000294833,0.000324048,0.000335534,0.000297464,0.000275231,0.000330494,0.000348398,0.000376615,0.000330679,0.000302167,0.000333804,0.000308937,0.000323867,0.000314905,0.000347353,0.00039807,0.000346504,0.000340019,0.000340106,0.000385883,0.000377241,0.000328544,0.000282411,0.000267437,0.00036013,0.000395207,0.000466632,0.00036252,0.000353831,0.000317897,0.000328459,0.0003426,0.00036823,0.000369529,0.000368191,0.000341646,0.000424762,0.000439311,0.000521107,0.000476385,0.000473689,0.000406358,0.000389133,0.000425467,0.000459913,0.000597478,0.000489045,0.000469959,0.000414472,0.000394683,0.000395162,0.000443825,0.000510364,0.000444269,0.00046465,0.000473794,0.000526304,0.000649715,0.000603391,0.000533331,0.000487281,0.00053224,0.00057353,0.000678691,0.000667861,0.000600982,0.000599446,0.000661588,0.000720863,0.000755578,0.000571637,0.00049784,0.000546162,0.000555817,0.000643336,0.000687445,0.000705778,0.000530024,0.000550365,0.000589511,0.000610878,0.000659695,0.000613863,0.00059895,0.000634676,0.000745305,0.00076879,0.000775693,0.000693841,0.00066949,0.000608283,0.000618041,0.000626957,0.000670112,0.000700903,0.000748205,0.000702109,0.000816661,0.000809532,0.000885167,0.000780509,0.000880315,0.000806699,0.000805949,0.000758394,0.000798223,0.000806563,0.000785131,0.000716978,0.000724109,0.000722876,0.000755003,0.000878346,0.00097523,0.00079817,0.000754792,0.000737731,0.00079688,0.000843735,0.000700991,0.000604837,0.000550694,0.000457712,0.000743239,0,0,0,0,0 +VIA,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000179574,0.000192517,0.000162017,0,0,0.000167937,0.000221926,0.000233734,0.000202716,0.000235081,0.000265542,0.000254364,0.000276085,0.000279522,0.000280659,0.000315405,0.000295804,0.000342825,0.000324771,0.000315462,0.000305921,0.000285216,0.000304537,0.000277674,0.000256799,0.000266475,0.00025758,0.000258643,0.000244731,0.000222381,0.000289966,0.000266821,0.000292401,0.000243057,0.00029445,0.000269267,0.000282819,0.00035257,0.000371265,0.000410745,0.000334222,0.000358527,0.000352484,0.00034902,0.000359138,0.000349383,0.000323857,0.000289768,0.000379089,0.000361709,0.000367084,0.000317436,0.000336766,0.00033111,0.000322967,0.000346132,0.0003538,0.00035274,0.000293917,0.000297464,0.000313508,0.000363799,0.000353738,0.000384223,0.000311453,0.000311914,0.000376417,0.000376609,0.00037323,0.000336182,0.000392304,0.000429125,0.000452217,0.000413276,0.000405331,0.000392977,0.000413749,0.000433338,0.000486489,0.000482581,0.000471571,0.000431388,0.000368918,0.000295149,0.000377277,0.000423863,0.000405743,0.000394119,0.000363298,0.000424381,0.000417536,0.000467446,0.000507249,0.00051825,0.000536709,0.000476385,0.000494449,0.000482377,0.000481109,0.000498215,0.000528539,0.000602039,0.000560102,0.000494478,0.000489077,0.0004961,0.000517983,0.000504151,0.000483704,0.000542338,0.000572973,0.000585754,0.00055132,0.000482645,0.00045436,0.00050598,0.000511686,0.000534637,0.000523748,0.000509018,0.000445907,0.000516105,0.000560192,0.000573636,0.000571495,0.000573022,0.000543055,0.000511463,0.000521744,0.000555057,0.000560929,0.00058058,0.000527054,0.000586145,0.000604303,0.000597424,0.00059647,0.000571405,0.000594746,0.000617533,0.000644064,0.000652304,0.000646568,0.000646586,0.000646641,0.000634996,0.000626786,0.000664079,0.000675,0.000674202,0.000662372,0.00063904,0.00069458,0.000675065,0.000697213,0.000656039,0.000665281,0.000608667,0.000704598,0.000680878,0.000696866,0.000659106,0.00058382,0.000609437,0.00066404,0.000726257,0.00075934,0.000764242,0.000775785,0.000754728,0.000766478,0.000760196,0.000773924,0.000774805,0.000775595,0.000779127,0.000775647,0.000838948,0.000813711,0.000857584,0,0,0,0,0 +POPULATION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000814091,0.000814091,0.000814393,0,0,0,0.00074375,0.000744261,0.000743027,0,0,0,0.000858083,0.000858164,0.000857919,0,0,0,0.000987213,0.00098712,0.000986842,0,0,0,0.000902456,0.000902032,0.000903059,0,0,0,0.00073006,0.00073014,0.000729474,0,0,0,0.000521182,0.000521066,0.000521047,0,0,0,0.001176756,0.001171081,0.001170074,0,0,0,0.000806627,0.000804356,0.000865266,0,0,0,0.001342958,0.001339996,0.001281801,0,0,0,0.001050561,0.00104405,0.001061735,0,0,0,0,0.001071062,0.00102712,0.001049406,0,0,0,0.000849585,0.000801389,0.000812764,0,0.000978075,0,0.000672008,0.000676273,0.000579941,0,0.000634417,0,0,0,0,0.00038959,0.000662321,0.000926061,0.000933368,0.000580619,0.000717489,0.000902746,0.000777896,0.000615953,0,0.000788146,0.000689292,0.000824018,0.000699323,0.000770041,0.000867878,0.000757002,0.000950656,0.00096041,0.001129493,0.001145782,0.00105364,0.00104259,0.001080692,0.00099326,0.000967285,0.001043519,0.001304159,0.001124917,0.000826712,0.000647471,0.000728279,0.000999126,0.001250071,0.001386688,0.00095711,0.000732392,0.000585394,0.000776729,0.000894905,0.001038168,0.000615695,0.000739703,0.000799972,0.00093006,0.000703129,0.00055063,0.000509,0.000528611,0.000454472,0.000380132,0.000398541,0.000561001,0.000500375,0.000597595,0.000342824,0.000333697,0.000235661,0.000261267,0.000236781,0.000258365,0.000303689,0.000332148,0.000354754,0.000352621,0.000339303,0.000266476,0.000405845,0.00042639,0.000490497,0.000525675,0.000548224,0.000535665,0.00045285,0.000443352,0.000450176,0.000492077,0.000557783,0.000502956,0.000538251,0.000453406,0.00047223,0.000517287,0.000599762,0.000542243,0.000460534,0.000487163,0.000556175,0.000544784,0.000523037,0.000515617,0.000500528,0.000476915,0.000522586,0.000525478,0.00050876,0.000390591,0.000407496,0.000511321,0.000538707,0.00059588,0.000601448,0.000525025,0.000509886,0.000544834,0.000575473,0.000626836,0.00052269,0.000459102,0.000418074,0.000431631,0.000422366,0.000430377,0.00040056,0.000509938,0.000437453,0.000567476,0.000595347,0.000711384,0,0.000497113,0.000532665,0.000556087,0.000534561,0.000530515,0.000471991,0.000519467,0.00055793,0.000576374,0.000570725,0.000547614,0.000557749,0.000555126,0.00057719,0.000528897,0.000560724,0.000556629,0.000596252,0.000667293,0.000639453,0.000668629,0.000565679,0.000567995,0.000484945,0.000485007,0.000508634,0.000529684,0.00051673,0.000509097,0.000527348,0.000575517,0.000566163,0.00055425,0.000519517,0.000518056,0.000499644,0.000462931,0.000457696,0.000517636,0.000562024,0.00055526,0.000530799,0.000514923,0.00053893,0.000477352,0.000477478,0.000467121,0.000487818,0.000468207,0.000487074,0.000545763,0.000523075,0.000515457,0.000489523,0.000545904,0.000531889,0.000514736,0.000495586,0.000536276,0.000549229,0.000542596,0.000591287,0.000539946,0.000562441,0.00054063,0.000590895,0.00059334,0.000581765,0.000473904,0.00051141,0.000521592,0.000525873,0.000531724,0.000450308,0.000470297,0.00053985,0.000554135,0.000556033,0.000499635,0.000474361,0.000503293,0.000479534,0.000463422,0.000451121,0.000459466,0.000399992,0.000457509,0.000425407,0.000476516,0.000485719,0.000502291,0.000502222,0.000541844,0.000504439,0.000484505,0.000466138,0.0004903,0.00055334,0.000532571,0.000526589,0.000496885,0.000493219,0.000488779,0.000657445,0.000632824,0.000519984,0.000477975,0.000463872,0.000486369,0.000468964,0.000509,0.000518032,0.000533485,0.000610283,0,0,0,0,0,0 +TYPE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000861866,0.000862069,0.000861259,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00074375,0.000744261,0.000743027,0,0,0,0,0,0,0,0,0,0.000517112,0.000517063,0.000516917,0,0,0,0.00043161,0.000431406,0.000431898,0,0,0,0.000547545,0.000547605,0.000547106,0,0,0,0.00055841,0.000558285,0.000558264,0,0,0,0.000449936,0.000447766,0.000447381,0,0,0,0.000434337,0.000433115,0.000432633,0,0,0,0.000363718,0.000418749,0.000417979,0,0,0,0.0004694,0.000488704,0.000486629,0,0,0,0,0.000459026,0.000415219,0.000398774,0,0,0,0.000347557,0.000362533,0.000371044,0,0,0,0,0,0,0,0,0,0,0,0,0.000623344,0.000766898,0.000877321,0.000570391,0.001161238,0.000986547,0.000937467,0.000316921,0.000376416,0,0,0,0.000537403,0.000476811,0.000567399,0,0,0,0.000391278,0.000531526,0.000572891,0.00052682,0.001146849,0.00112572,0.000957786,0.000414551,0.000386488,0,0,0,0.000533211,0.000546209,0.000416302,0,0,0.000598193,0.000569638,0.000402459,0,0,0,0,0,0,0,0,0,0,0.000330382,0,0,0.000490512,0.000561001,0.000500375,0.000348597,0.000408123,0.000449207,0.000500781,0.000615844,0.000564632,0.000555484,0.000502254,0.000578184,0.000540577,0.00045337,0.000309798,0.000623796,0.000692974,0.0007296,0.000695089,0.000659812,0.000678378,0.00065198,0.000718156,0.000692738,0.000706353,0.000629983,0.000570606,0.000589402,0.000647134,0.00073579,0.000736965,0.000698337,0.000579081,0.000560521,0.000678008,0.000733327,0.000760651,0.000687266,0.00053466,0.000544263,0.000634816,0.000651626,0.000672148,0.000587434,0.00056075,0.000580057,0.000639769,0.000652078,0.000667206,0.000647323,0.00065928,0.000634046,0.000667286,0.000635639,0.000610738,0.000582636,0.000484102,0.000520316,0.000634046,0.000746046,0.000765195,0.000744299,0.000624249,0.000584305,0.000583271,0.000617434,0.000672769,0.000688559,0.000665203,0.000539352,0.000553972,0.000631114,0.00065255,0.000641157,0.000557808,0.000446064,0.000554014,0.000703536,0.000717483,0.000702251,0.000551665,0.000481487,0.000519471,0.00063647,0.000628762,0.000638732,0.000558363,0.000519719,0.000588297,0.000662659,0.000619349,0.000578299,0.000465219,0.000459024,0.000554184,0.000625027,0.000654209,0.000646382,0.000567913,0.000402036,0.000528419,0.000736697,0.000695385,0.00066245,0.000549006,0.000412761,0.000445156,0.00057621,0.000578603,0.000567092,0.000480602,0.000338255,0.000342782,0.000523433,0.000489593,0.000473794,0.000392563,0.000346515,0.000418012,0.000514683,0.000501111,0.000476299,0.000425221,0.000414961,0.000435909,0.000488726,0.000481683,0.000444432,0.000389656,0.000334686,0.000387641,0.000482979,0.000463953,0.000439642,0.000369895,0.000323785,0.000324621,0.000507576,0.000549367,0.000503788,0.000472566,0.0003482,0.00030587,0.000431701,0.000504173,0.000525072,0.000506239,0.000456599,0.000318601,0.000308875,0.000473366,0.000448221,0.000468416,0.000394705,0.000344947,0.000340985,0.000415995,0.000478606,0.000493486,0.000467213,0.000423954,0.000437252,0.000510505,0.000471062,0.000472826,0.000413956,0.000260257,0.000329426,0.00039378,0.000442093,0.000448439,0.000468623,0.000452322,0.000423078,0.00040378,0.00042153,0.000429488,0.00040543,0.000354729,0.000267895,0.000285617,0.000314068,0.000444998,0.000800412,0,0,0,0,0 +PRODUCE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00025669,0.000309306,0.000447887,0.000364279,0.000374629,0.000303689,0.000381355,0.000354754,0.000503745,0.000649102,0.000660134,0.000527323,0.000518774,0.000498366,0.000609058,0.000567944,0.000541786,0.000471147,0.000526481,0.000499919,0.000608044,0.000480848,0.000518674,0.000517707,0.00056278,0.000550935,0.000513592,0.000444651,0.000417344,0.000396571,0.000454456,0.000488698,0.000561547,0.00056178,0.000501295,0.000404899,0.000440713,0.000464521,0.000589728,0.000553323,0.000480951,0.000354522,0.000450997,0.000484342,0.000589449,0.000624581,0.000599618,0.00054314,0.000496404,0.000484102,0.000504281,0.000578817,0.00054814,0.000491386,0.000492308,0.000504645,0.000553583,0.000647658,0.000656015,0.000554108,0.000490617,0.000499237,0.000536391,0.000619062,0.00058159,0.000558707,0.000513424,0.000514094,0.000509238,0.000559851,0.000536406,0.000534438,0.000436773,0.000475216,0.000458237,0.000596285,0.000566455,0.000544208,0.000458677,0.000487994,0.000489834,0.000562351,0.000532551,0.000601086,0.000577588,0.000569972,0.00053966,0.000575359,0.000646676,0.000594039,0.000515118,0.000509145,0.000517106,0.000536709,0.000503921,0.000490674,0.000468556,0.000490206,0.000494909,0.000549006,0.000565552,0.000524573,0.000445439,0.000482445,0.000518074,0.000573519,0.000631266,0.000559877,0.000509255,0.00051311,0.000519764,0.000532077,0.000507396,0.000519788,0.000512196,0.000538531,0.000527445,0.000521674,0.00053115,0.000565882,0.000532533,0.00047923,0.000474787,0.000499131,0.000547667,0.000548414,0.000533754,0.000520116,0.000514054,0.000533772,0.00055825,0.000547115,0.000488869,0.000463466,0.000532143,0.000528034,0.000601166,0.000577754,0.000561783,0.000499478,0.000496655,0.000499449,0.000522727,0.000542801,0.00049075,0.000502662,0.000505117,0.000519822,0.000554222,0.000638519,0.000553181,0.000540229,0.000520406,0.000531722,0.000511994,0.000556575,0.000522959,0.000502418,0.000485089,0.000498239,0.000499631,0.000590854,0.000525708,0.000570239,0.000547379,0.000565507,0.000547566,0.000623258,0.000588006,0.000592758,0.000584859,0.000579689,0.000588646,0.000537104,0.000513465,0.000445227,0.000434532,0.000483141,0,0,0,0,0,0 +DUE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000194357,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000277524,0.000346531,0.00038295,0.000447887,0.000309637,0.000310037,0.000327049,0.000369054,0.000354754,0.000419787,0.00038356,0.000411827,0.000408606,0.000435865,0.000443283,0.000511173,0.000433846,0.000382618,0.000352217,0.000392196,0.00042033,0.000419989,0.000378267,0.000353641,0.000338975,0.000338066,0.000383985,0.000458168,0.000492908,0.000426483,0.000394439,0.000418306,0.000419176,0.000402302,0.000352566,0.000323693,0.000317408,0.000330535,0.000343112,0.000415334,0.000419634,0.000370187,0.00029951,0.000372,0.000400324,0.000492994,0.000508918,0.000433217,0.000339185,0.000325387,0.00033823,0.000343554,0.000375354,0.000383976,0.000380428,0.000375092,0.0003538,0.000405061,0.000499399,0.000549777,0.000526767,0.000532889,0.000544622,0.000572531,0.000515244,0.000467871,0.000400091,0.000373667,0,0.000429802,0.00050264,0.000499705,0.000516819,0.000468563,0.000461239,0.00044405,0.000464453,0.000467325,0.000478243,0.00050051,0,0.000473135,0.000464638,0.000455556,0.000464669,0.000479084,0.000508789,0.000511324,0.000535906,0.000551406,0.000535205,0.000482013,0.000493027,0.000491937,0.000517987,0.000501168,0.000501998,0.000527989,0.000571065,0.000568759,0.000561046,0.000449249,0.000451426,0.000531258,0.000559537,0.000565402,0.000517983,0.000445979,0.000447521,0.000503347,0.000558007,0.000568701,0.000598467,0.000583712,0.000559772,0.000523385,0.000540972,0.000544227,0.000548639,0.000501641,0.000513893,0.000518843,0.000554467,0.000560404,0.000566857,0.000545977,0.00053055,0.000536231,0.000545348,0.000536834,0.000514107,0.000492855,0.000547115,0.000588639,0.000609297,0.000634351,0.00063537,0.000627951,0.000497038,0.000521758,0.000553933,0.000570281,0.000574895,0.000548968,0.000528641,0.000534651,0.000590551,0.000599365,0.000611103,0.000611485,0.000539439,0.000529876,0.000570346,0.000597213,0.000604013,0.000570955,0.000480481,0.000563634,0.000621704,0.000612498,0.000597887,0.000577672,0.000607267,0.000554533,0.000570239,0.000587667,0.000607088,0.000629869,0.000667964,0.000700947,0.000677271,0.000695946,0.00069068,0.000685037,0.000669376,0.000692062,0.000688842,0.000701274,0.000622998,0,0,0,0,0,0 +MECHANICAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000783515,0.000783699,0.000782963,0,0,0,0,0,0,0,0,0,0,0.001036116,0.001036116,0.0010365,0,0,0,0.000686538,0.00068701,0.000685871,0,0,0,0.000667398,0.000667461,0.00066727,0,0,0,0.000517112,0.000517063,0.000516917,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0004095,0.000409409,0.000409394,0,0,0,0.000484546,0.00048221,0.000481795,0,0,0,0.000589458,0.000587799,0.000587145,0,0,0,0.000447653,0.000446665,0.000445844,0,0,0,0.0004694,0.00046649,0.000464509,0,0,0,0,0.000633894,0.000655609,0.000629644,0,0,0,0.000695115,0.000648744,0.000689082,0,0,0,0.00087878,0.00104042,0.000906158,0.000658545,0,0,0,0,0.000502857,0.000506467,0.000488026,0.000633621,0.000570391,0,0,0.000381931,0.000460976,0.000444855,0,0,0,0.000609057,0.00073111,0.000851098,0.000714723,0,0.00072431,0.000569132,0.000365424,0,0,0,0.000450288,0.000390209,0,0,0,0,0,0,0,0.000624454,0.000738678,0.000924459,0,0.000976523,0.00128055,0.002019496,0.002349125,0.002137405,0.001119445,0.000817566,0.000695628,0.000744048,0.000904023,0.000881009,0.000694091,0.000991146,0.001168641,0.001235428,0.00101168,0.000660001,0.000500375,0.000497996,0.000636672,0.000988256,0.001001561,0.001175702,0.000910697,0.001072213,0.000876025,0.000750409,0.00055747,0.000772408,0.000590092,0.000514783,0.000414128,0.000407439,0.000361971,0.000398788,0.00041807,0.000483629,0.000434553,0.00051156,0.000534739,0.000623715,0.000474437,0.000398174,0.000365682,0.000425565,0.000431685,0.000469253,0.000413629,0.000496549,0.000449873,0.000471671,0.000453937,0.000472146,0.000368063,0.000395307,0.000498493,0.000525708,0.000557777,0.000527772,0.000482765,0.000440143,0.000407496,0.000504139,0.000502464,0.00054658,0.000412532,0.000413134,0.000381306,0.000395004,0.000421586,0.0004199,0.00050515,0.000473015,0.000449777,0.000508856,0.00051013,0.000519828,0.000395358,0.000411669,0.000459326,0.000444501,0.000452517,0.000426069,0.000446032,0.000474369,0.00047348,0.000467819,0.000473159,0.000473776,0.000482207,0.000451711,0.000516819,0.00052938,0.000559078,0.00053059,0.00052327,0.000427674,0.000465875,0.000542344,0.000533744,0.000545497,0.000572322,0.000558217,0.000505168,0.000482069,0.000559238,0.000582163,0.000595085,0.000487894,0.000554184,0.000556168,0.000592581,0.000586892,0.000578835,0.000479138,0.000392539,0.000422944,0.000469991,0.000494909,0.000487604,0.000383116,0.000403357,0.000559864,0.000594353,0.000598363,0.000572451,0.000581712,0.000611295,0.000594327,0.000603617,0.000576857,0.000534001,0.000383641,0.000434369,0.000616625,0.000609305,0.00059857,0.000498857,0.000357788,0.00033793,0.000447656,0.000594539,0.000583754,0.000544591,0.000344828,0.000367991,0.000426013,0.000475348,0.000442679,0.000436382,0.00036685,0.000485108,0.00061857,0.000635268,0.000587533,0.000553968,0.000515852,0.000477921,0.000518899,0.00060651,0.000554135,0.000546225,0.000480741,0.000578201,0.000600503,0.000649915,0.000535085,0.000521263,0.000407657,0.00047522,0.000464868,0.000573169,0.000504209,0.00050424,0.000475423,0.000523963,0.000454684,0.000485232,0.000512558,0.000542379,0.000492845,0.000349354,0.000439234,0.000545163,0.000580684,0.000577661,0.000551766,0.000523326,0.000475066,0.000511768,0.000460561,0.000463872,0.000444428,0.000406836,0.000435329,0.000431226,0.000537787,0.000686569,0.000857584,0,0,0,0,0 +RATES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000380715,0.000378879,0.000378553,0,0,0,0,0,0,0,0,0,0.000307761,0.000307082,0.000362248,0,0,0,0.000268228,0.000310994,0.000309673,0,0,0,0,0.000437168,0.000437072,0.000377786,0,0,0,0.00030894,0.000324372,0.000335707,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00034859,0,0,0,0.000493274,0.00034721,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000610687,0.000727639,0.000506112,0.000382595,0.000372024,0,0,0,0,0.000357085,0,0.000459855,0.000429,0.000469102,0.000547795,0.000620347,0.000577552,0.000530238,0.000429225,0.000382493,0.000310037,0.000292008,0.000258338,0.000337861,0.000537327,0.000457322,0.000417883,0.000425171,0.000452447,0.000624269,0.000837454,0.000875581,0.000664224,0.000612948,0.000605346,0.000577021,0.000633118,0.000734094,0.000728239,0.000614263,0.000568746,0.00058194,0.000617049,0.000651466,0.000584892,0.000631102,0.000621434,0.000648189,0.000628597,0.000647016,0.000638793,0.000594123,0.000543021,0.00058769,0.000651684,0.000820701,0.00071997,0.000607169,0.000544356,0.00053706,0.000604454,0.000747955,0.000636915,0.00057861,0.000564508,0.000599518,0.000624827,0.000694581,0.000639961,0.000584511,0.000506098,0.000490931,0.000523203,0.000668467,0.000663982,0.000548639,0.000489336,0.000527269,0.000540195,0.000665203,0.000591337,0.000561074,0.000511953,0.000574292,0.000608532,0.000737614,0.000762262,0.000687135,0.000590196,0.000535783,0.000536265,0.000561806,0.000560791,0.00047412,0.000433278,0.000499725,0.000538539,0.000604228,0.000593506,0.000490247,0.000477592,0.000449752,0.000473973,0.000480014,0.000640902,0.000609223,0.000585301,0.000536641,0.000530834,0.000580395,0.000710446,0.000702042,0.000689703,0.000559947,0.000529078,0.000505663,0.0007115,0.0006437,0.000536707,0.000490735,0.000495255,0.000550023,0.000592485,0.00056559,0.000487986,0.000443983,0.000468604,0.000484931,0.000577524,0.00053978,0.000538303,0.000519821,0.000509064,0.000457372,0.000483199,0.000543887,0.000520212,0.000457149,0.000455328,0.000467587,0.000493577,0.000444805,0.000413628,0.000421627,0.00046394,0.000494441,0.00057739,0.000594531,0.00054499,0.000476451,0.000476752,0.00048049,0.00049502,0.000528899,0.000474585,0.000568016,0.000488259,0.000503222,0.000439805,0.000453121,0.000428035,0.000455634,0.000429979,0.000435267,0.000402203,0.000427514,0.000484493,0.0004527,0.000437852,0.000423586,0.000444823,0.000576142,0.000531675,0.000465014,0.000500285,0.000509609,0.000553921,0.000522859,0.000461196,0.000466221,0.000452299,0.000470829,0.000463584,0.000570662,0.000568287,0.000514115,0.000496589,0.000469301,0.000478275,0.000396816,0.000415237,0.000380823,0.000408718,0.000521284,0.000571723,0,0,0,0,0 +FUNCTIONS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002060157,0.002063558,0.002062706,0,0,0,0,0,0,0,0,0,0.000790912,0.000791082,0.000791253,0,0,0,0.000861866,0.000862069,0.000861259,0,0,0,0,0,0,0,0,0,0,0.001258141,0.001258141,0.001258607,0,0,0,0.001029807,0.001030515,0.001028807,0,0,0,0.000953425,0.000953516,0.000953243,0,0,0,0.001128244,0.001128138,0.00112782,0,0,0,0.000941693,0.00094125,0.000942322,0,0,0,0.001058587,0.001058703,0.001057738,0,0,0,0.000893455,0.000893256,0.000893223,0,0,0,0.001003703,0.000998863,0.000998004,0,0,0,0.00068253,0.000680609,0.000679852,0,0,0,0.000867327,0.000893331,0.000891688,0,0,0,0.000648219,0.000644201,0.000663585,0,0,0,0,0.001136637,0.001136388,0.00111237,0,0,0,0.000830276,0.000782308,0.000742089,0,0.000978075,0.001314204,0.001085552,0.000884357,0.000869912,0.000878059,0.000793021,0,0,0,0.000777143,0.001051893,0.000976052,0.001169762,0.00082966,0.000754805,0,0.000624978,0.00060503,0.000718612,0,0,0.000608199,0.00103898,0.000921835,0.000932155,0,0,0,0.000569132,0.000664408,0.000725662,0,0,0.000675432,0.001099681,0.001001831,0.000811626,0,0,0,0.000952163,0.000983177,0.001082386,0,0,0,0.000854457,0.00076833,0.000737893,0,0.000610687,0.000615695,0.000817566,0.000626065,0.000595238,0,0,0,0.000594687,0.000649245,0.000601875,0.000490512,0,0.000406555,0.000572695,0.000652997,0.000654559,0.000544967,0.000410563,0,0.00036171,0.000525615,0.000651995,0.000641935,0.00045337,0.000486826,0.000811541,0.000877951,0.000845673,0.000763287,0.000540176,0.000485119,0.000587701,0.000919422,0.000918677,0.000880455,0.0004576,0.00041994,0.000584163,0.00087928,0.000880959,0.000846675,0.000520982,0.000472227,0.000478271,0.000684404,0.000636927,0.000646144,0.000427446,0.000492042,0.000446868,0.000730445,0.000728751,0.000765404,0.000534656,0.000438202,0.000431399,0.000580682,0.000657823,0.000695212,0.000589449,0.000377833,0.000502073,0.000698322,0.00075066,0.000719742,0.000592681,0.000350798,0.000503621,0.000707358,0.000679854,0.00061435,0.00048776,0.000434373,0.000467444,0.000707216,0.000632806,0.000631388,0.000416559,0.000326834,0.000341156,0.000435602,0.000632586,0.000585128,0.000577325,0.000386175,0.00039807,0.000420894,0.000631662,0.000610326,0.000646922,0.000397523,0.000379525,0.000554515,0.000669339,0.0006663,0.000603943,0.000522468,0.000519719,0.000584034,0.000711911,0.000662284,0.000656865,0.000517823,0.000467685,0.000506737,0.000764069,0.000665586,0.000669263,0.000397851,0.000327686,0.00045293,0.000635798,0.000676181,0.000633792,0.000528539,0.000383116,0.000443066,0.000731501,0.000653208,0.000636394,0.000445358,0.000305938,0.000321834,0.00055888,0.000510972,0.000516057,0.000376206,0.000352702,0.000343496,0.000529601,0.000520635,0.000510662,0.000412776,0.000363321,0.000393918,0.000602351,0.000529933,0.00049658,0.000382234,0.000295808,0.000323332,0.000525085,0.000481046,0.00049659,0.000395178,0.00037642,0.000344682,0.000643512,0.000628276,0.000569069,0.000534518,0.000374985,0.000291001,0.000403112,0.000491968,0.000465654,0.000438338,0.000406216,0.000415361,0.000446849,0.000520394,0.000443443,0.00043815,0.000343577,0.000337608,0.00039618,0.000445171,0.000417997,0.000405065,0.000370188,0.000319596,0.00037624,0.000477145,0.000487427,0.000482858,0.000436859,0.000267291,0.000403546,0.000454148,0.000404491,0.000363357,0.000304857,0.000347131,0.000294003,0.000339222,0.000345871,0.000351674,0.000325227,0.000250515,0.000265662,0.000352822,0.000378602,0.000584855,0,0,0,0,0,0 +SOURCE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000424792,0.000400695,0.000424051,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00034859,0,0,0,0,0,0,0,0,0,0,0.000394096,0.000381449,0.000445813,0.000510517,0,0,0,0,0,0,0,0.000450288,0.000354736,0,0,0,0,0,0,0,0,0.000568214,0.000660328,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00036342,0.000389547,0,0.000337227,0.000495,0.000500375,0.000473096,0.000489748,0.000436373,0.000412408,0.000242605,0.000291423,0.000284201,0.000373771,0.000455166,0.000540577,0.000722034,0.000752368,0.000502671,0.000444497,0.000442972,0.00051935,0.000619934,0.000721763,0.000593822,0.000494018,0.0004263,0.000427792,0.000482674,0.000528933,0.000534391,0.000480728,0.000509087,0.000488925,0.000605964,0.000579081,0.000563567,0.000432816,0.000473392,0.000478474,0.000547578,0.000546283,0.000441139,0.000435419,0.000387198,0.000425811,0.000491058,0.000590459,0.000559653,0.000440096,0.000428016,0.000408561,0.000467273,0.000470363,0.000450431,0.000396825,0.000361709,0.000381511,0.000393781,0.000494626,0.0005704,0.000487423,0.000470244,0.000451163,0.00051814,0.000665866,0.000661326,0.00051583,0.000412477,0.000380435,0.000410853,0.000419116,0.000487366,0.000466378,0.000450166,0.000480383,0.000485124,0.000563937,0.00053923,0.000487454,0.000431244,0.000461239,0.00049796,0.000547608,0.000589113,0.000484427,0.00043776,0.000423476,0.00045087,0.000534433,0.000532551,0.000524351,0.000447742,0.000460486,0.000458518,0.000511247,0.000487894,0.000421332,0.000444935,0.000462687,0.000494225,0.00046806,0.000603053,0.000490674,0.000581894,0.000491217,0.000556635,0.00056225,0.000611161,0.000522484,0.000459061,0.000480788,0.000480042,0.000467786,0.00040289,0.00045133,0.000487986,0.000515961,0.000521989,0.000564791,0.000571337,0.000603391,0.000488576,0.000517381,0.000517056,0.000590124,0.00064365,0.000629869,0.000548961,0.000482501,0.000446767,0.000453671,0.000540906,0.000576996,0.000479264,0.00044279,0.000472292,0.000491632,0.00053911,0.0004614,0.000513812,0.000539378,0.00057962,0.000599352,0.000589262,0.000511907,0.000500316,0.000442207,0.000525072,0.000525855,0.000625593,0.000559321,0.000470368,0.000414774,0.000534651,0.000564982,0.000621029,0.00052476,0.000513931,0.000561875,0.000544963,0.000550243,0.000521696,0.000576142,0.000546202,0.000546897,0.000551131,0.00056378,0.000576824,0.000665884,0.000621791,0.000638036,0.000598947,0.000614765,0.00062735,0.000686372,0.000631031,0.000575152,0.000591464,0.00060804,0.000597476,0.000591216,0.000502303,0.000501231,0.000434532,0.000317856,0,0,0,0,0,0 +EXPLORE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000231021,0.000294577,0.000279929,0.000327851,0.000258365,0.000268648,0.000381355,0.000506791,0.000554119,0.000324551,0.000333095,0.00035615,0.000397964,0.000401316,0.000398788,0.000303692,0.000318338,0.000349929,0.000392196,0.000392971,0.000357304,0.000323771,0.000335304,0.000371845,0.000395736,0.00041499,0.000410134,0.000382607,0.000344233,0.0003454,0.000368385,0.000390549,0.000427446,0.000395183,0.000378119,0.000406933,0.000486358,0.000503231,0.000493352,0.000434489,0.000451803,0.000480846,0.000496958,0.000510701,0.000535863,0.000451086,0.000413134,0.000436729,0.000438894,0.000484102,0.000460081,0.00045253,0.000450755,0.000487423,0.000518509,0.00051013,0.000491136,0.000439575,0.000416981,0.000437453,0.000480369,0.000468535,0.000488839,0.000449877,0.000484117,0.000452174,0.000431041,0.000409349,0.000385829,0.000382088,0.000429125,0.00046592,0.000496207,0.00048104,0.000473842,0.000436059,0.000455996,0.000451445,0.000454194,0.000471571,0.000491225,0.000528451,0.000548592,0.00054993,0.000529829,0.000499128,0.000488141,0.000460287,0.00048212,0.000493451,0.000580004,0.00058784,0.000596044,0.000549191,0.000520443,0.000551065,0.000573601,0.000573086,0.00057427,0.000569473,0.000570112,0.000555922,0.000551691,0.000578603,0.000566247,0.000575655,0.000525696,0.000557973,0.000536431,0.000518812,0.000511608,0.000508985,0.000528022,0.000528876,0.000524628,0.000521448,0.000527445,0.000531008,0.000568035,0.000569881,0.000569496,0.000572459,0.000554177,0.000557579,0.000498648,0.000525191,0.000543661,0.00057465,0.000556576,0.000552501,0.000502425,0.000517935,0.000511318,0.00053738,0.0005572,0.000555409,0.000576365,0.000571381,0.000550348,0.000521072,0.000525072,0.000517556,0.000488089,0.000436601,0.000451553,0.000529646,0.000561144,0.000565463,0.000552859,0.000489898,0.000542142,0.000607051,0.000608185,0.000611779,0.00059036,0.000493525,0.000456137,0.000501407,0.000559314,0.000603906,0.0006133,0.00051817,0.000473549,0.000501513,0.000560271,0.000571264,0.000553445,0.000502288,0.000498371,0.000508246,0.000604074,0.000615278,0.000643096,0.000561154,0.000540255,0.000618838,0.000598019,0.000711997,0.000628895,0,0,0,0,0 +SUCCESSFUL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000179683,0.000206204,0.000279929,0.000346065,0.000348792,0.000315369,0.000356752,0.000371647,0.000638076,0.000634349,0.000514783,0.000414128,0.000428759,0.000409185,0.000514799,0.000453567,0.000416288,0.000324771,0.000328251,0.000348202,0.000451331,0.000432763,0.000429608,0.000328703,0.000369884,0.000341055,0.000417524,0.00042397,0.000444761,0.000379514,0.000395928,0.000394639,0.000458177,0.000379686,0.000421088,0.000368275,0.000396642,0.000364227,0.000387798,0.000363931,0.000440143,0.000378972,0.000343274,0.000303126,0.000377248,0.000497351,0.00051068,0.000383523,0.000348088,0.000317392,0.000349582,0.000392894,0.000489709,0.000453739,0.000390261,0.000346943,0.00033755,0.000403161,0.000411669,0.000386417,0.000383014,0.000412471,0.000450797,0.000584456,0.000497113,0.000449806,0.000381022,0.000409349,0.000429802,0.000549635,0.000491235,0.000462005,0.000360752,0.000422802,0.000414257,0.000494876,0.000455996,0.000451445,0.000463159,0.000475091,0.000494009,0.000520474,0.000487637,0.000447617,0.00043431,0.000490541,0.000506173,0.000534262,0.00051965,0.000516226,0.000474067,0.000484494,0.000479352,0.000530468,0.000534212,0.000498223,0.00043953,0.000410358,0.000421058,0.000452689,0.000503979,0.000505764,0.000422282,0.000473327,0.000456378,0.000485942,0.000413662,0.000437999,0.000423,0.000478903,0.000490106,0.000530153,0.00053421,0.000479805,0.000441334,0.000475079,0.000521051,0.000576641,0.000577256,0.000493897,0.000466822,0.000498857,0.000517596,0.000535313,0.000542596,0.000460882,0.000485456,0.000501395,0.000543668,0.000576848,0.000591745,0.000558057,0.000492611,0.000542375,0.000572366,0.000592868,0.000650767,0.000639352,0.000587514,0.000600876,0.000618074,0.000635251,0.000606699,0.000649001,0.000591095,0.000617535,0.000609788,0.000622634,0.000642844,0.000633015,0.000624322,0.000578816,0.000611843,0.000614169,0.00061499,0.000600057,0.000624646,0.000597442,0.000642305,0.000632664,0.000664196,0.000637748,0.000634144,0.000592528,0.000612914,0.000606448,0.000655904,0.000620628,0.000613104,0.000595106,0.000652712,0.000674393,0.000699017,0.000707455,0.000625088,0.000523632,0.000563601,0.000673854,0.001029101,0,0,0,0,0 +IMPROVED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000284159,0.000262243,0.000272846,0,0,0,0.00030894,0.000324372,0.000318038,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000316921,0,0,0,0,0,0.000540386,0.000648456,0.00061262,0,0,0,0,0,0.000478927,0,0.000450288,0,0,0,0.000483022,0.000664724,0,0,0,0.000499563,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000462727,0.000561649,0,0.000380132,0.00030657,0.000561001,0,0.000473096,0.000652997,0.000731566,0.000736442,0.000541196,0.000819627,0.000813848,0.000794263,0.000565882,0.000540577,0.0007892,0.000781872,0.000532952,0.000436215,0.000452447,0.000480005,0.000580055,0.00054428,0.000603005,0.000498592,0.000498771,0.000445202,0.000548493,0.000557783,0.000521293,0.000431422,0.000431531,0.000441225,0.000546846,0.000506696,0.000539197,0.00046693,0.000459621,0.00042531,0.000447002,0.000767121,0.000638793,0.000533083,0.000443861,0.000464521,0.000530067,0.000430775,0.000399335,0.000442133,0.000463923,0.000490932,0.000469416,0.000420243,0.000398789,0.000348053,0.000351115,0.00035426,0.000383736,0.00050515,0.000511969,0.000481479,0.000484034,0.000500531,0.000538393,0.000580031,0.000512594,0.000481199,0.000386857,0.000401792,0.000374713,0.000472948,0.000474369,0.000471113,0.000464877,0.000493626,0.000504982,0.0005905,0.000570285,0.000575549,0.000518322,0.000540442,0.000514984,0.000537468,0.000501313,0.000490611,0.000430289,0.000402361,0.000414689,0.000498538,0.000590298,0.000547798,0.00045819,0.000515229,0.000512612,0.000580291,0.00048212,0.00051243,0.000462149,0.000511041,0.000498801,0.00054451,0.000528704,0.000503885,0.000460263,0.000433605,0.000449717,0.000462321,0.000503979,0.000505764,0.000468597,0.000465038,0.000445391,0.000457106,0.000482606,0.000523695,0.000497439,0.000523087,0.000508642,0.000578261,0.000608463,0.000599756,0.000504737,0.000486468,0.000498675,0.000508191,0.000545904,0.000563883,0.000505154,0.000506217,0.000483349,0.000517686,0.000486815,0.000525191,0.000485456,0.00050872,0.000495831,0.000537518,0.000585365,0.000629182,0.000515059,0.000483443,0.000488622,0.000504982,0.000544621,0.000573505,0.000564642,0.000530461,0.000523134,0.000540944,0.000550018,0.000573481,0.000506429,0.00048416,0.00053856,0.000540961,0.000582172,0.000550448,0.000532329,0.000527052,0.000549666,0.000562789,0.000561253,0.000519615,0.000504075,0.00049433,0.000537105,0.000543048,0.000578521,0.000569752,0.000499629,0.000495012,0.000530727,0.000552073,0.00057864,0.000589071,0.000573665,0.000622103,0.000593265,0.000602008,0.000572458,0.000607249,0.000555882,0.000520832,0.000516276,0.000648426,0.000628895,0,0,0,0,0 +ENVIRONMENTS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000438036,0.000438084,0.000437685,0,0,0,0,0,0,0,0,0,0.000380715,0.000378879,0.000378553,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000290581,0.000310994,0.000287553,0,0,0,0,0.000371593,0.000371512,0.000356798,0,0,0,0.000366866,0.000324372,0.000300369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000570391,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000391278,0.000531526,0.000458313,0.000478927,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000402459,0.000427201,0,0,0,0,0,0,0,0,0.000462727,0.00036342,0,0,0.00030657,0,0.000344008,0.000298797,0.000359148,0.000333697,0.000338763,0.000317253,0.000327851,0.000310037,0.000315369,0.000282941,0.000337861,0.000386204,0.00038356,0.00030887,0.000458301,0.00044534,0.000529842,0.000489421,0.000453567,0.000376496,0.000354504,0.000415643,0.000432766,0.000473271,0.000394295,0.00047938,0.000495108,0.000473292,0.00041022,0.000328846,0.000386054,0.000325955,0.000373118,0.000376992,0.000417131,0.000368777,0.000371937,0.000343745,0.000356067,0.00037618,0.000424052,0.000514004,0.000531042,0.000434314,0.000415646,0.000439506,0.0004794,0.00048442,0.000516628,0.000418872,0.000432295,0.000410139,0.000442425,0.000403827,0.00043499,0.00043406,0.00048346,0.000427494,0.000408652,0.000371306,0.000332933,0.000387766,0.000450212,0.00045603,0.000460526,0.000410853,0.000453722,0.000461373,0.000466378,0.000463406,0.000469547,0.000475194,0.00049038,0.000451711,0.000485497,0.000454741,0.000510158,0.000510728,0.0005902,0.000478655,0.000463813,0.000418337,0.000557205,0.000570545,0.000721883,0.000625587,0.000543535,0.000473115,0.000509862,0.000547388,0.000560564,0.000473459,0.000455494,0.000435665,0.000565085,0.000609773,0.000686489,0.000473631,0.000417073,0.000398065,0.000489195,0.000538999,0.000580309,0.000574673,0.000493224,0.000448164,0.000501511,0.0004961,0.000531867,0.000476142,0.000470373,0.000464355,0.000480328,0.000524955,0.000553245,0.000600213,0.000537963,0.00048236,0.000520635,0.000551419,0.000606718,0.000651027,0.000545886,0.000439442,0.000439975,0.000495802,0.000572423,0.000665991,0.000585928,0.000458211,0.000453372,0.000445716,0.000488823,0.000521565,0.000508817,0.000483881,0.000464464,0.000549947,0.000561892,0.00059323,0.000473673,0.000464579,0.000461924,0.000558656,0.000583194,0.000614047,0.000472001,0.00043117,0.000529646,0.000622818,0.000646655,0.000640798,0.000434854,0.000448923,0.000492229,0.000516226,0.000526943,0.000522443,0.000460914,0.000431441,0.000434687,0.000508467,0.000526997,0.000557314,0.00051817,0.000561396,0.000515444,0.000530727,0.000508572,0.000547566,0.000612739,0.000613104,0.000512942,0.000550632,0.000591753,0.000648246,0.000691422,0.000531325,0.000579635,0.000606624,0.000737426,0,0,0,0,0,0 +SUPPORTS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000128345,0.000147288,0.000242605,0,0.000129182,0.000163525,0.00020913,0.000219609,0,0.000162275,0.000290701,0.000320259,0.00030321,0.000280659,0.00026465,0.000268196,0.000376496,0.000439127,0.00046893,0.000425304,0.000366707,0.000439174,0.000563206,0.000663569,0.00062045,0.000579555,0.000532066,0.000506696,0.0004539,0.000477591,0.000509542,0.000572533,0.000567134,0.000519163,0.00052994,0.000531048,0.000572927,0.000531384,0.000525478,0.000482765,0.000772437,0.000788505,0.00069373,0.000573303,0.000495138,0.00048964,0.00065126,0.000682804,0.000541807,0.000437616,0.000355609,0.000403418,0.000601007,0.000683581,0.000717087,0.000612979,0.000513077,0.000387555,0.000536498,0.000627016,0.000517517,0.000443173,0.00032716,0.000388355,0.000604334,0.000752834,0.000678191,0.000677833,0.000643994,0.000713095,0.000629572,0.000677346,0.000557024,0.000484534,0.000408583,0.000466481,0.000685411,0.000632847,0.000522921,0.000486821,0.000500966,0.00060024,0.000856574,0.000722582,0.000653704,0.000507716,0.000511324,0.000511247,0.00058605,0.000520022,0.000513794,0.000481649,0.000498801,0.0004665,0.000666388,0.00056805,0.000545957,0.000455841,0.000445308,0.000435834,0.000476614,0.000578912,0.000504014,0.000468353,0.000436095,0.000484874,0.00059033,0.000658903,0.000513981,0.000513823,0.000472311,0.000534001,0.000513584,0.000570677,0.000528358,0.000553174,0.000533838,0.000526859,0.000392829,0.00038392,0.000346352,0.000413806,0.000414076,0.000436971,0.000444557,0.0004716,0.000465642,0.000476162,0.000460903,0.000455111,0.000378015,0.000381157,0.000371641,0.000415521,0.000430594,0.000476888,0.000496012,0.000552264,0.000689006,0.000583038,0.000554135,0.000444374,0.000459748,0.000394121,0.000735341,0.00062216,0.000572871,0.000482829,0.000479235,0.00041834,0.000448923,0.000498817,0.000561683,0.000568764,0.000556775,0.000465262,0.000467758,0.000481189,0.000498531,0.000506265,0.000504721,0.000450175,0.000403546,0.000436502,0.00048453,0.000507932,0.000497177,0.000297165,0.000344199,0.000387347,0.000512802,0.000530225,0.000582024,0.000521071,0.000488908,0.000546033,0.000774413,0.001233281,0.002172546,0,0,0,0,0 +INTELLECTUAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.87E-05,4.26E-05,3.67E-05,0,0,3.06E-05,3.43E-05,4.05E-05,3.23E-05,3.13E-05,3.53E-05,4.45E-05,4.52E-05,4.57E-05,3.82E-05,6.28E-05,4.48E-05,3.96E-05,3.41E-05,5.34E-05,6.95E-05,7.82E-05,5.81E-05,3.72E-05,3.87E-05,4.56E-05,6.16E-05,6.20E-05,5.57E-05,4.37E-05,4.48E-05,5.31E-05,5.44E-05,4.93E-05,0,3.73E-05,4.43E-05,4.24E-05,3.85E-05,3.21E-05,0,5.01E-05,4.76E-05,4.69E-05,4.53E-05,4.39E-05,3.64E-05,3.98E-05,5.29E-05,5.64E-05,4.81E-05,4.95E-05,5.77E-05,6.50E-05,4.73E-05,5.30E-05,5.90E-05,6.24E-05,6.74E-05,7.34E-05,9.20E-05,7.33E-05,5.94E-05,3.97E-05,3.04E-05,0,6.18E-05,7.62E-05,0.000105576,9.74E-05,9.77E-05,3.53E-05,4.48E-05,6.87E-05,8.59E-05,9.14E-05,8.55E-05,9.82E-05,7.59E-05,8.87E-05,8.44E-05,0.000100675,9.83E-05,7.71E-05,8.49E-05,7.46E-05,9.60E-05,9.81E-05,9.99E-05,0.000118583,0.000100317,8.85E-05,0.000103618,0.000120856,0.000171949,0.000321019,0.000375156,0.000389917,0.000522375,0.000574633,0.000686986,0.000746657,0.00076696,0.000672569,0.00077119,0.000799159,0.000901262,0.001005127,0.000989794,0.000892575,0.000888946,0.000884972,0.000911053,0.000902637,0.000946773,0.000901561,0.000940115,0.001001533,0.001107811,0.00122815,0.001205476,0.000960279,0.00088498,0.000820963,0.000838516,0.000903733,0.000947346,0.000962036,0.000857188,0.000918392,0.000906101,0.000953085,0.000851962,0.000837254,0.00077558,0.000870382,0.000866691,0.000913479,0.000763287,0.000808306,0.000831049,0.000857416,0.000868679,0.000898601,0.000963136,0.000928253,0.000874429,0.000832834,0.000814571,0.000825367,0.00090035,0.001117302,0.000938944,0.000790718,0.00067042,0.000660943,0.000678483,0.000686605,0.00073596,0.000716962,0.000716618,0.000704168,0.000857764,0.00088182,0.000938057,0.000714181,0.000597569,0,0,0,0,0,0 +CHARACTERIZATION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000800961,0.000801511,0.000800183,0,0,0,0,0,0,0,0,0,0.000611132,0.000611075,0.000610902,0,0,0,0.000627796,0.0006275,0.000628215,0,0,0,0.000547545,0.000547605,0.000547106,0,0,0,0.000446728,0.000446628,0.000446611,0,0,0,0.000622988,0.000619984,0.000619451,0,0,0,0.000310241,0.000309368,0.000309023,0,0,0,0.000839349,0.000837498,0.000808092,0,0,0,0.000536457,0.000533132,0.000530868,0,0,0,0,0.000655752,0.000677462,0.000650632,0,0,0,0.000888202,0.000896793,0.000954114,0.001210316,0.001141087,0,0.000827087,0.00104042,0.000906158,0.001042696,0.000634417,0,0,0,0.00096,0.000935016,0.000976052,0.000877321,0.000881514,0.000696743,0.000627803,0.000763862,0.000806707,0.00088971,0.000886974,0.000735603,0.000729838,0.000680711,0.000953622,0.001013212,0.001123137,0.00122285,0.001041195,0.00096041,0.000963391,0.000916625,0.000862069,0.000834072,0.000945605,0.001028734,0.000863647,0.000850274,0.000821137,0.000664724,0.000964497,0.001294942,0.001529386,0.001373798,0.001136428,0.001320655,0.001375845,0.0010579,0.000841504,0,0.00072711,0.000610687,0.000895556,0.000973293,0.001008661,0.000855655,0.000853799,0.000770883,0.001064273,0.001156337,0.001298491,0.001267106,0.001134308,0.001056001,0.00081311,0.000821693,0.000669322,0.000808573,0.000780629,0.000765139,0.000582846,0.00058132,0.00068914,0.000861125,0.000979796,0.000923532,0.000649102,0.000575346,0.000543888,0.000570888,0.000587547,0.000543801,0.000422014,0.000459141,0.000526038,0.000573374,0.000572047,0.000554762,0.000621897,0.000547489,0.000513598,0.000489201,0.000512775,0.000539456,0.000517036,0.000545289,0.000528761,0.000557742,0.000535727,0.000586691,0.000461047,0.000484108,0.000520875,0.00062172,0.000621121,0.000587434,0.000460484,0.000542163,0.000464546,0.000514193,0.000497521,0.000563728,0.000505062,0.000616832,0.000636249,0.00064018,0.000565855,0.000570581,0.00045253,0.000473015,0.000459684,0.000584702,0.00059378,0.000609279,0.000494197,0.000557745,0.000627016,0.000641773,0.000595347,0.000564922,0.000430652,0.000513359,0.000518461,0.000548731,0.000605595,0.00061988,0.000647711,0.000527937,0.000577506,0.000588814,0.000559078,0.000522078,0.000460397,0.000523971,0.000505041,0.000545332,0.000553686,0.000594202,0.000584287,0.000596714,0.000609612,0.000564156,0.000567826,0.000540948,0.000603305,0.00055718,0.000567469,0.000476716,0.000479753,0.000465624,0.000519547,0.000691171,0.000571824,0.000523842,0.000540743,0.000553328,0.000563454,0.000485736,0.000549653,0.000479494,0.00056534,0.000550189,0.000584199,0.000510614,0.000544643,0.000517526,0.00056941,0.000537559,0.00055998,0.000398079,0.000512519,0.000492305,0.000557242,0.000502671,0.000535156,0.000400207,0.000425911,0.000439442,0.000520119,0.000507477,0.000488925,0.000361731,0.00037335,0.000403721,0.000472906,0.000460143,0.000466348,0.000320595,0.000326445,0.000362911,0.000411526,0.000413449,0.000406291,0.000397801,0.000443936,0.000445996,0.000454413,0.000430133,0.000424004,0.000397818,0.000316241,0.00037159,0.000458718,0.000469502,0.000478505,0.000465601,0.000478889,0.000432977,0.000407524,0.000443077,0.000445093,0.000468706,0.000445695,0.000406746,0.000376055,0.000430151,0.000453431,0.000463156,0.000365767,0.000366486,0.000405854,0.0004104,0.000413255,0.000395558,0.000312944,0.000308345,0.000366219,0.000432939,0.000427076,0.000423825,0.000292602,0.000305847,0.000263216,0.000305463,0.000317856,0,0,0,0,0,0 +PRINCIPAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000179574,0.000346531,0.00038295,0.000354577,0.000236781,0.000310037,0.000490574,0.000541279,0.000675721,0.001125029,0.001475231,0.001168861,0.000974581,0.000975959,0.000931157,0.000801201,0.000623161,0.000667285,0.000907987,0.000929334,0.000987403,0.00089326,0.000923228,0.001094978,0.0012162,0.001129537,0.000999316,0.000705727,0.000716957,0.000852967,0.00127926,0.001179176,0.001188005,0.000743141,0.00080199,0.000753374,0.001218765,0.001104931,0.001178899,0.000768712,0.000790992,0.000670417,0.000918904,0.000797143,0.00083689,0.000593736,0.000628436,0.000619701,0.000667286,0.000576616,0.000581885,0.000500263,0.00048761,0.000475797,0.000608288,0.000576428,0.000581438,0.00048776,0.000520207,0.000478067,0.000590562,0.000527765,0.000531274,0.000443188,0.000457567,0.000441878,0.000449806,0.000495771,0.000483994,0.000490798,0.000373915,0.000440418,0.00049137,0.000621987,0.000584702,0.000602943,0.000513129,0.000506977,0.000566883,0.000729101,0.000670992,0.000649865,0.000450679,0.00053576,0.000571245,0.000762655,0.000640816,0.000643985,0.000473438,0.000528311,0.000546592,0.000642242,0.000566033,0.000543419,0.000405652,0.000415804,0.000501998,0.000594333,0.00055085,0.00051034,0.000437038,0.000385396,0.000491134,0.000645682,0.000564511,0.000547654,0.000451766,0.000467524,0.000493225,0.000600235,0.000526651,0.000485657,0.000389677,0.000348577,0.0004689,0.000590518,0.000595476,0.000584185,0.000526859,0.000461067,0.000391918,0.000473667,0.000488225,0.000480235,0.000444393,0.000420892,0.000448378,0.00058329,0.000533953,0.00054063,0.000456047,0.00043384,0.000370214,0.000481387,0.000486439,0.000486643,0.000490575,0.000438474,0.000501286,0.00054463,0.000471312,0.00035909,0.000317626,0.000315945,0.000351641,0.000376294,0.00041169,0.000373083,0.000358879,0.000287678,0.00026605,0.000353251,0.000409407,0.00033283,0.000295136,0.000253012,0.000254372,0.000339924,0.00038111,0.00038398,0.000363815,0.00033846,0.00034232,0.000351387,0.000376135,0.000326601,0.000324335,0.000283021,0.00023405,0.000249186,0.000295792,0.000264808,0.000244905,0.000220006,0.000190391,0.000196456,0.000215613,0.000232324,0.000343284,0,0,0,0,0,0 +STRATEGIES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000444101,0.000438856,0.000424051,0,0,0,0.000516929,0.000572231,0.000471202,0,0,0,0,0,0,0,0,0,0.000570391,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000431865,0.000458313,0.000574713,0,0,0,0,0,0,0,0,0,0.000400553,0,0,0,0,0,0.000402459,0.000427201,0.000559315,0,0,0,0.000382595,0.000409226,0,0,0,0,0.000324623,0.000316776,0,0,0,0.000273898,0.000359148,0.000449207,0.000412408,0.00048521,0.000418921,0.000490893,0.000619058,0.000811918,0.000878438,0.000722034,0.000472074,0.000351264,0.000334063,0.000390857,0.000403939,0.000471295,0.00037863,0.000437714,0.00040482,0.000424169,0.000392971,0.000341633,0.000262863,0.000288152,0.000324594,0.000365906,0.00035775,0.000343626,0.000303328,0.000301585,0.000364589,0.000371828,0.000396683,0.000360396,0.000278953,0.000260673,0.000303165,0.000417103,0.000450445,0.0004727,0.000401067,0.000364357,0.000358597,0.000458178,0.000497521,0.000531576,0.000416387,0.00039592,0.000423427,0.000405598,0.000432807,0.000448027,0.00047007,0.000395106,0.000358632,0.000381987,0.000401796,0.00042025,0.000366746,0.000379798,0.000373658,0.000425287,0.000413806,0.000450797,0.000438342,0.000354153,0.000366947,0.000383965,0.00041296,0.000428384,0.000431126,0.000372661,0.000348461,0.000398072,0.000472886,0.000493704,0.000492848,0.000388022,0.000412278,0.000413855,0.000459841,0.00046896,0.000480591,0.000381769,0.000336779,0.000394013,0.000488394,0.000529356,0.00050796,0.00037819,0.00037768,0.000436989,0.000474064,0.000499945,0.000517987,0.000509429,0.000539742,0.00045888,0.000452809,0.000430978,0.000475564,0.00050626,0.000466055,0.000441353,0.000499024,0.000512158,0.000538275,0.000491224,0.000514173,0.000438361,0.000466788,0.000462672,0.000511872,0.000474395,0.000425281,0.00039285,0.000456369,0.000502671,0.000556936,0.000577256,0.00052989,0.000475036,0.00049395,0.000544837,0.000581701,0.000640636,0.00057521,0.000502794,0.000509534,0.000511777,0.000576848,0.000594935,0.000517935,0.000396583,0.000429505,0.00051302,0.000531636,0.000589262,0.000588374,0.00057036,0.000545483,0.000612261,0.000625443,0.000680175,0.000599441,0.000589527,0.000535043,0.000563316,0.000564982,0.000603987,0.000535769,0.000505345,0.000478112,0.000606095,0.000634482,0.000670966,0.000545704,0.000591235,0.000601486,0.000597887,0.00057983,0.000620934,0.000771393,0.000668459,0.000508014,0.000576386,0.000587897,0.0006769,0.000633777,0.000613104,0.000519984,0.000592665,0.000585118,0.00064236,0.000597228,0.000616158,0.000571235,0.000520578,0.000457712,0,0,0,0,0,0 +BUILDING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001903855,0.00190295,0.001902195,0,0,0,0,0.002812315,0.002812315,0.002813356,0,0,0,0.002402883,0.002404534,0.002400549,0,0,0,0.001763837,0.001764005,0.0017635,0,0,0,0.001504325,0.001504184,0.001503759,0,0,0,0.001020168,0.001019688,0.001020849,0,0,0,0.000839569,0.000839661,0.000838896,0,0,0,0.000595637,0.000595504,0.000595482,0,0,0,0,0,0,0,0,0,0.000310241,0.000309368,0.000309023,0,0,0,0.000279783,0.000279166,0.000334383,0,0,0,0.000424695,0.000422063,0.00044239,0,0,0,0,0.000502743,0.000524487,0.000545691,0,0,0,0.000482719,0.000438856,0.000388713,0,0,0,0,0.000572231,0.00039871,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000483643,0.000541084,0.000772835,0,0,0,0,0,0,0,0,0,0.000475633,0.000504874,0.000615247,0,0,0,0,0.000372024,0.000552458,0,0.000462727,0,0,0,0,0.000594001,0.000500375,0.000423296,0.000506073,0.000847077,0.001031019,0.001194364,0.000528204,0.000529647,0.000455533,0.000627391,0.000641935,0.000839574,0.000840882,0.000563234,0.000378237,0.000343481,0.000309511,0.000308154,0.000453567,0.000397922,0.000361365,0.000270701,0.000333279,0.000344767,0.000323771,0.00029863,0.000275289,0.000272441,0.0002385,0.000266033,0.000261965,0.000329001,0.000279305,0.000296085,0.000278087,0.000312902,0.00071288,0.000650251,0.000531048,0.000297481,0.000267452,0.000296011,0.000326795,0.000314805,0.000281172,0.00033322,0.000334427,0.0003601,0.000316146,0.000309851,0.000270461,0.00026485,0.00031098,0.0003757,0.000491118,0.000439625,0.000392316,0.000355786,0.000441564,0.000457381,0.00057743,0.000411669,0.000426517,0.000345866,0.00033238,0.000300531,0.000311453,0.000269676,0.00029119,0.000354542,0.00041898,0.000445406,0.000504683,0.000431948,0.000428725,0.000396689,0.000405331,0.000388721,0.000340734,0.000271898,0.000336007,0.000324211,0.00037538,0.000361809,0.000434725,0.000381769,0.000317595,0.000280585,0.000371394,0.000399271,0.000433985,0.000285807,0.000358701,0.000337674,0.00042571,0.000411854,0.000489903,0.000377253,0.00040575,0.000342778,0.000444723,0.000449717,0.000491216,0.000421883,0.000397087,0.000385502,0.000421933,0.00046821,0.000506234,0.000545086,0.000466564,0.000431271,0.000473202,0.000472311,0.000543623,0.000567211,0.000497979,0.00041647,0.000466944,0.000526646,0.000569382,0.000593855,0.000487899,0.000443549,0.000489043,0.000534719,0.000559435,0.000586545,0.000500182,0.000458211,0.000481046,0.000536834,0.000590895,0.00062205,0.000501522,0.000486375,0.000510411,0.000604018,0.000609437,0.000643823,0.000490666,0.000433131,0.000420613,0.000527655,0.000561315,0.000642387,0.000552241,0.000471936,0.000438673,0.000504682,0.000520783,0.000591034,0.000612832,0.000594884,0.000536464,0.000654688,0.000671523,0.000729181,0.000530486,0.000502622,0.000546897,0.00059964,0.000621963,0.000626024,0.000647126,0.0006163,0.000602744,0.000701547,0.000729273,0.000778519,0.000586441,0.000552152,0.000558719,0.000684537,0.000749192,0.000795408,0.000827702,0.000625088,0.000585236,0.000641042,0.000940853,0.001200617,0,0,0,0,0 +EXAMPLE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000141179,0.000162017,0.000223943,0,0,0.000128484,0.000196829,0.000202716,0.000167915,0.000206532,0.000417883,0.000593583,0.000556675,0.000529842,0.000355284,0.000374685,0.00035813,0.00043684,0.000422037,0.000440227,0.000347901,0.000278892,0.000332685,0.000470456,0.000515053,0.000522315,0.000380575,0.000327456,0.000325955,0.000420024,0.000411421,0.000427355,0.000349221,0.000325445,0.000312235,0.000437453,0.000435991,0.000445166,0.000337315,0.000319368,0.000308975,0.000429909,0.00044956,0.000489284,0.000417973,0.000362411,0.000329934,0.000461115,0.000443434,0.000452043,0.000371681,0.000266607,0.000275461,0.000366558,0.000410946,0.000420994,0.000357803,0.000299119,0.000302776,0.00047573,0.000513675,0.000529939,0.00047172,0.000357595,0.000367149,0.000430867,0.000663479,0.000623655,0.000608532,0.000363699,0.000304905,0.000368038,0.000576374,0.000584702,0.000610036,0.000421861,0.000405015,0.000461752,0.000614059,0.000556032,0.000538539,0.000368918,0.000381769,0.000439091,0.0006149,0.000586073,0.000600194,0.000442204,0.000360868,0.000415638,0.000613109,0.000603958,0.000615493,0.000446218,0.000341455,0.000383103,0.000559779,0.000596333,0.000613951,0.000539374,0.000433285,0.000426347,0.000617076,0.000615077,0.000605969,0.000478466,0.000372727,0.000428478,0.000622685,0.000553019,0.00055313,0.000470499,0.000476458,0.000436186,0.000549492,0.000549107,0.000565804,0.000515451,0.000483199,0.000503895,0.000559913,0.000592903,0.000573636,0.000536241,0.000453009,0.000464455,0.000605582,0.000608022,0.000598338,0.000516916,0.00045936,0.000423102,0.000516306,0.000542375,0.000527527,0.000533077,0.000469227,0.000488542,0.000507463,0.000566138,0.00055026,0.000537172,0.000491237,0.000431881,0.000471936,0.000526562,0.000520752,0.000519822,0.000460829,0.000341278,0.000410899,0.00054117,0.000563773,0.000566971,0.000509008,0.000376123,0.000440157,0.000552963,0.000549378,0.000548398,0.000498783,0.000504102,0.000513355,0.000537733,0.000548453,0.00055719,0.000545887,0.000499658,0.000485822,0.000516463,0.000527213,0.000513938,0.000492991,0.000384791,0.000386215,0.000422826,0.000434532,0.000635712,0.000628895,0,0,0,0,0 +NONLINEAR,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000686538,0.00068701,0.000685871,0,0,0,0.000524384,0.000524434,0.000524284,0,0,0,0.000752162,0.000752092,0.00075188,0,0,0,0.000667033,0.000666719,0.000667478,0,0,0,0.000657054,0.000657126,0.000656527,0,0,0,0.000707319,0.000707161,0.000707135,0,0,0,0.000796041,0.000792202,0.00079152,0,0,0,0.000806627,0.000804356,0.000803461,0,0,0,0.000839349,0.000837498,0.000863823,0,0,0,0.001095266,0.001110692,0.001105974,0,0,0,0,0.000830619,0.000852291,0.000839525,0,0,0,0.00108129,0.001049438,0.001113133,0.001117214,0.001141087,0,0.000723701,0.001196483,0.001304868,0.001591483,0.001215966,0.001084501,0.000969847,0.001043297,0.001142857,0.00116877,0.00104577,0.000731101,0.000725953,0.000754805,0.001076233,0.001215236,0.001037195,0.000958149,0.000506842,0.000735603,0.000729838,0.001540556,0.001207921,0.001256383,0.000714723,0.000931695,0.001131734,0.001209405,0.001262375,0.001145782,0.000862069,0.000729813,0.000900576,0.001454416,0.001416382,0.001391358,0.000966044,0.000971519,0.001102283,0.001180683,0.00120166,0.001124016,0.000738678,0.001056524,0.001615122,0.002075111,0.001683009,0.001514622,0.000783042,0.001343511,0.001343334,0.002063381,0.001773851,0.00171131,0.00100447,0.001046198,0.001064273,0.00109026,0.001201104,0.001045362,0.000827738,0.000891001,0.001125844,0.001693185,0.001795742,0.00154014,0.001355053,0.000951759,0.000746772,0.000904276,0.001273156,0.001562327,0.001604838,0.001091446,0.000619597,0.000799428,0.000916603,0.000919107,0.000813123,0.000619934,0.000445678,0.000627493,0.000818789,0.000846206,0.000825737,0.000542225,0.000509699,0.000565826,0.000704656,0.000719881,0.00071073,0.00058749,0.000534271,0.000575753,0.000850708,0.000755706,0.000787233,0.000463765,0.000476545,0.000444004,0.000691787,0.000818467,0.00086218,0.000743471,0.000467911,0.000498441,0.000682556,0.000782781,0.000794057,0.000692335,0.00048193,0.000479121,0.00054314,0.000643207,0.000705315,0.000701172,0.000638453,0.000612136,0.000867851,0.000780522,0.00081182,0.000590713,0.000502,0.000401045,0.00069628,0.000691731,0.000712815,0.000572531,0.000453722,0.000380145,0.00059185,0.00083413,0.000782578,0.000720593,0.000410694,0.000251264,0.000426767,0.00073118,0.000776885,0.000751905,0.000505017,0.000376693,0.000529778,0.000702208,0.000678031,0.000630383,0.000406807,0.000205321,0.000413513,0.000637287,0.000722394,0.000705808,0.000573715,0.00027426,0.000275194,0.000499227,0.000565085,0.000629222,0.000444657,0.000250584,0.000315164,0.000467173,0.000531646,0.000526874,0.000470749,0.000289617,0.00030722,0.000611627,0.00058855,0.000573853,0.000416522,0.000323173,0.000415147,0.000548246,0.000489593,0.000469345,0.00036466,0.000243385,0.000252624,0.000525872,0.000544226,0.000524248,0.000398256,0.000226845,0.000223953,0.000475036,0.00053484,0.000512147,0.000379451,0.000211291,0.000260809,0.000382668,0.000431395,0.0004199,0.000339928,0.000208945,0.00020608,0.000477645,0.000547369,0.000462905,0.000432945,0.000258918,0.000138066,0.000321632,0.000529522,0.000496655,0.000458709,0.000308598,0.00022184,0.000277517,0.000400896,0.000432585,0.000441993,0.00041311,0.000244032,0.000217102,0.000291761,0.000333352,0.000343528,0.000300778,0.000197845,0.000303607,0.000340673,0.000377551,0.000365153,0.000356274,0.000168816,0.000204518,0.000302765,0.000372798,0.000385747,0.000366164,0.000191974,0.000168514,0.000282881,0.00034407,0.000349261,0.000311982,0.00017035,0.000156272,0.000142809,0.00015058,0.000228856,0,0,0,0,0,0 +RELATIONSHIPS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000862813,0.000862999,0.000863185,0,0,0,0.00156703,0.001567398,0.001565925,0,0,0,0.0008726,0.000872185,0.00087184,0,0,0,0,0.001110124,0.001110124,0.001184571,0,0,0,0.000686538,0.00068701,0.000685871,0,0,0,0.001287124,0.001287247,0.001286879,0,0,0,0.000658142,0.00065808,0.000657895,0,0,0,0.000823982,0.000823594,0.000824532,0,0,0,0.000876072,0.000876168,0.000875369,0,0,0,0.001042365,0.001042132,0.001042093,0,0,0,0.00072682,0.000723315,0.000722693,0,0,0,0.000651506,0.000649672,0.000648949,0,0,0,0.000727436,0.000725831,0.000752362,0,0,0,0.000692923,0.000733056,0.000752063,0,0,0,0,0.000633894,0.000611901,0.000608656,0,0,0,0.000559954,0.00055334,0.00058307,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000453167,0.000536141,0.000881514,0.000812867,0.00058296,0.00034721,0.000345732,0.000513294,0.000549079,0,0,0,0.000476811,0.000445813,0.000714723,0.00064054,0,0,0,0,0,0,0.000450288,0.000390209,0,0,0,0,0,0,0.000400553,0,0,0,0,0,0,0.000427201,0,0,0,0,0,0.000446429,0,0,0.000462727,0.000528611,0.000616783,0.000411809,0.000367884,0,0.000344008,0.000398396,0.000457098,0.000577552,0.000603883,0.00067183,0.000528204,0.000426302,0.000397131,0.000332148,0.00038854,0.000201498,0.000221285,0.000478446,0.000505236,0.000495086,0.000521973,0.00063806,0.000682322,0.000633615,0.000558057,0.000526481,0.000492458,0.000473271,0.0005674,0.000544869,0.000587556,0.000524996,0.000531855,0.000450778,0.000585975,0.000517873,0.000481855,0.000559463,0.00059707,0.000656535,0.00056178,0.000570044,0.000561568,0.00053043,0.000522586,0.000523183,0.000568178,0.000568397,0.000548083,0.00055441,0.000550239,0.00059588,0.000697834,0.00059388,0.000523188,0.000506998,0.000503338,0.000500263,0.000484102,0.000506404,0.000463646,0.000471623,0.00043745,0.000474258,0.000431772,0.00051525,0.000470262,0.000475245,0.000493898,0.000532587,0.000522934,0.000484117,0.000511359,0.000516366,0.000511686,0.000496472,0.000469948,0.000409363,0.000407191,0.000421569,0.000423967,0.000425607,0.000407664,0.000464493,0.00048855,0.000488558,0.000479783,0.000475918,0.000472614,0.000522927,0.000579771,0.000561171,0.000478734,0.000434046,0.000420834,0.000461911,0.000529511,0.000471419,0.000489234,0.000450751,0.000480542,0.000459863,0.0004869,0.000527989,0.000548829,0.000557737,0.000563454,0.000535906,0.000472325,0.000486305,0.000446801,0.000505397,0.000489146,0.000588176,0.000455138,0.000584875,0.000517386,0.00052273,0.000490704,0.000513584,0.00053251,0.000580572,0.000576766,0.000549022,0.000463595,0.000429715,0.000523891,0.000659848,0.000551196,0.000558069,0.000498203,0.000571332,0.000635946,0.000691032,0.000619418,0.000567206,0.00048414,0.000502425,0.000472342,0.00060111,0.000561353,0.000525548,0.000432945,0.000437482,0.000420571,0.000666135,0.000594304,0.000539926,0.000426267,0.000460798,0.000573481,0.000794921,0.000556629,0.000470371,0.000387224,0.000392659,0.000387148,0.000375329,0.000367054,0.000386647,0.000394311,0.000422432,0.000487003,0.000483737,0.00045996,0.00040502,0.000397254,0.000374087,0.000475966,0.000468059,0.000409569,0.000387301,0.000372313,0.00038716,0.000376058,0.000421285,0.000457774,0.000474372,0.00045422,0.000432655,0.000354729,0.00039961,0.000448027,0.000425927,0.000406856,0,0,0,0,0,0 +PLAN,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000335739,0.000334999,0.000306518,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000386488,0.000531324,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000380132,0.000521169,0.000561001,0.000562922,0.000572695,0.000522398,0.000500545,0.000500781,0,0.000655702,0,0.000455533,0.000418261,0.000354754,0.000554119,0.00057534,0.000551121,0.000411367,0.000412177,0.000361971,0.00042779,0.000410182,0.000376496,0.000386523,0.000390065,0.000450176,0.000467003,0.000439174,0.000403413,0.00038828,0.00041761,0.000393525,0.00037688,0.000337797,0.000383835,0.000319815,0.000344285,0.000325117,0.000374364,0.000302199,0.00030937,0.000325547,0.00039192,0.000385342,0.000394682,0.00035279,0.00041391,0.000436021,0.000423707,0.000401971,0.000392252,0.000370122,0.000401658,0.00035692,0.000385924,0.000419983,0.000437981,0.00045253,0.000406236,0.00041213,0.000409567,0.000490931,0.000513077,0.000530612,0.000414325,0.000512185,0.000595657,0.000648741,0.000646712,0.000634442,0.000477619,0.000504257,0.000538433,0.000552621,0.000536189,0.000451559,0.000372661,0.000495285,0.000579139,0.000621974,0.000587337,0.000563834,0.000560791,0.00056276,0.000527403,0.000552513,0.000539931,0.000568334,0.000538968,0.000594691,0.000541768,0.000540991,0.000508749,0.000524399,0.000502328,0.000540899,0.000574707,0.000561292,0.000566299,0.000586636,0.000746244,0.000745448,0.000656531,0.000562979,0.00054451,0.000586329,0.00081184,0.000756556,0.000618438,0.000528037,0.000529906,0.000559635,0.000644192,0.000603677,0.000542338,0.000570123,0.000577598,0.000612899,0.000682716,0.000692445,0.000668839,0.000608492,0.000596172,0.000593235,0.000556969,0.000565882,0.000501047,0.000506217,0.00049191,0.000505625,0.000557809,0.000537696,0.000504032,0.000414302,0.000417622,0.000403606,0.000464145,0.000472342,0.000487622,0.000460469,0.000436528,0.000440869,0.000434506,0.000469425,0.000453143,0.000428124,0.000463717,0.000473798,0.000530075,0.000606521,0.000566009,0.000529646,0.00047124,0.000469858,0.000468328,0.000594483,0.000515157,0.000492229,0.000469201,0.000480342,0.000494828,0.000554401,0.000511338,0.000518592,0.000497947,0.000504927,0.000508114,0.00055334,0.000513355,0.000472722,0.000461431,0.000473388,0.000472822,0.000549624,0.000525262,0.000467164,0.000408921,0.000416218,0.000415731,0.000553137,0.000488908,0.000523632,0.000425927,0.000584855,0,0,0,0,0,0 +REGIONAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00036503,0.00036507,0.000364737,0,0,0,0.002270866,0.002270359,0.002270274,0,0,0,0.001868965,0.001859952,0.001892766,0,0,0,0.001240964,0.001237471,0,0,0,0,0.00081137,0.000865414,0.000863823,0,0,0,0.001475256,0.001466113,0.001482006,0,0,0,0,0.001071062,0.001070828,0.00100743,0.002294894,0.002069734,0.002398604,0.00061788,0.000591501,0.000565401,0,0,0,0.001240631,0.001456588,0.001159883,0.000713423,0.000528681,0,0,0,0.000914286,0.000818139,0.000836616,0.000633621,0.000570391,0.000580619,0.000493274,0.000659699,0.000547408,0.000581734,0.000591316,0.000788146,0.000770385,0.000752365,0.00098541,0.000972684,0.001174188,0.001048157,0.000905387,0.000640273,0.000797289,0.000954818,0.001293103,0.001251108,0.000720461,0.000744945,0.000863647,0.000888923,0.000821137,0.000562458,0.00087264,0.000647471,0.000873935,0.000541193,0.0007955,0,0.00089729,0.000732392,0.000804917,0.00066022,0.000671178,0.000732824,0.000951528,0.000661839,0.000660847,0.000446429,0.000652905,0.00071582,0.001527,0.001222413,0.001363415,0.001013685,0.00101168,0.000891001,0.001063297,0.000896392,0.000652997,0.000333697,0.000294577,0.000223943,0.000455349,0.000671748,0.000759222,0.000713504,0.000608149,0.000503745,0.000693359,0.000496615,0.000400324,0.000360062,0.000380332,0.000449542,0.000508783,0.00045608,0.000402533,0.000362355,0.000383023,0.000372975,0.000375061,0.000319587,0.000338975,0.000334088,0.00038637,0.000406439,0.00046878,0.000508734,0.000430684,0.000469949,0.000439623,0.000572722,0.000569529,0.000461191,0.000402864,0.000396642,0.000448685,0.000495647,0.000527328,0.000460547,0.000499183,0.000466796,0.000469515,0.000443695,0.000613014,0.000547977,0.000505452,0.000425273,0.000461661,0.000435972,0.000571801,0.000498056,0.000532995,0.000466107,0.000529328,0.000550207,0.000567026,0.00054181,0.000426517,0.00041632,0.000391114,0.000414657,0.000492173,0.000341156,0.000466378,0.000433983,0.000474363,0.000434058,0.00049038,0.000508175,0.00042481,0.000344166,0.000369224,0.000395814,0.000543552,0.000691075,0.000556576,0.00040489,0.000355438,0.000388249,0.000474608,0.00046518,0.000475327,0.000407446,0.000398229,0.000387679,0.000392888,0.00041572,0.000396659,0.000459501,0.000434243,0.000450751,0.000441537,0.000487399,0.000507659,0.000497581,0.000447755,0.000419956,0.000435834,0.000529064,0.000549653,0.000493116,0.000474156,0.00046652,0.000514779,0.000635575,0.000628434,0.000479715,0.000437569,0.000464896,0.000506099,0.000561024,0.000507066,0.00044755,0.000425456,0.000425952,0.000478115,0.000697134,0.000729848,0.000561282,0.000424437,0.000453772,0.000513975,0.000657539,0.00055556,0.000456973,0.000439534,0.000471533,0.000502869,0.000623645,0.000632829,0.000492611,0.000410527,0.000443782,0.00046248,0.000530732,0.000579878,0.000548918,0.000506989,0.000552198,0.000566596,0.000601451,0.000476721,0.000451553,0.000413232,0.000479492,0.000489555,0.000582854,0.000590814,0.000580165,0.000498817,0.000532946,0.000537099,0.000586628,0.000726156,0.000771365,0.000650009,0.000508467,0.000442062,0.00047588,0.000663539,0.000502374,0.000374277,0.000418457,0.000438204,0.000466943,0.000581181,0.000627446,0.000551676,0.000463563,0.000416218,0.000423089,0.000460948,0.000598298,0.000672041,0.000567903,0.00041957,0,0,0,0,0,0 +NORTH,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001933216,0.001934916,0.001935938,0,0,0,0.001294219,0.001294498,0.001294778,0,0,0,0.001175272,0.001175549,0.001174444,0,0,0,0.00206251,0.002061529,0.002060712,0,0,0,0,0.001480166,0.001480166,0.001406678,0,0,0,0.001373076,0.00137402,0.001371742,0,0,0,0.001239453,0.001239571,0.001239216,0,0,0,0.000940203,0.000940115,0.00093985,0,0,0,0.001177117,0.001176563,0.001177903,0,0,0,0.000949078,0.000949182,0.000948317,0,0,0,0.000893455,0.000893256,0.000893223,0,0,0,0.001003703,0.000998863,0.000998004,0,0,0,0.000868675,0.000866229,0.000865266,0,0,0,0.001007218,0.001004997,0.001031014,0,0,0,0.00075998,0.00075527,0.000752063,0,0,0,0,0,0.001005267,0.000965454,0,0,0,0.00092682,0.000915873,0.00086577,0,0.000815062,0.001533238,0.001292324,0.001144462,0.000652434,0,0,0.001626751,0.001851525,0.001478004,0.000502857,0.00038959,0.000488026,0.001072282,0.001400052,0.001567671,0.001210762,0.000972188,0.000835518,0.000821271,0.0008025,0.001313577,0.000973118,0.000931499,0.000540386,0.000932155,0.001480498,0.002096314,0.001358081,0.000746985,0.000697628,0.000916625,0.001340996,0.001459626,0.001350865,0.001099681,0.000863647,0.000811626,0.001014346,0.001738508,0.001423782,0.001447288,0.001128833,0.001082386,0.000852321,0.000792393,0.001076748,0.000895146,0.000804917,0.000699056,0.000783042,0.000854962,0.0010075,0.000973293,0.001008661,0.001116071,0.001104917,0.001156324,0.000740364,0.000693802,0.000422009,0.000443487,0.000521169,0.000792001,0.000875657,0.000771893,0.000424448,0.000282359,0.00025039,0.000335915,0.000473562,0.000387547,0.000397131,0.000332148,0.000354754,0.000369413,0.000531083,0.000599571,0.000499714,0.000611159,0.00068722,0.000786699,0.000682322,0.000581579,0.000482582,0.000434826,0.00040292,0.000680131,0.000778973,0.000730858,0.000488945,0.000451417,0.000398295,0.000450778,0.000472227,0.00051178,0.000481855,0.000442406,0.000494832,0.000536403,0.00062377,0.00056145,0.000492389,0.000431269,0.000417013,0.000516299,0.000657303,0.00061795,0.000515483,0.000393545,0.00037726,0.000372961,0.000632292,0.000619701,0.000565309,0.000460082,0.000419983,0.000371681,0.000368338,0.00045632,0.000443832,0.000386124,0.000381226,0.000430377,0.000598239,0.00061352,0.000457503,0.000408634,0.00042315,0.000448895,0.000538315,0.000383394,0.000437969,0.000475175,0.000534561,0.000590092,0.000604802,0.000635218,0.000477666,0.000469946,0.000430956,0.000468167,0.000496904,0.000648591,0.000552453,0.000476605,0.000403534,0.000409123,0.000456661,0.000529343,0.000477458,0.000411923,0.000400376,0.000439198,0.000506316,0.000658223,0.000550388,0.000429044,0.000389681,0.000368381,0.000424375,0.000509429,0.000505772,0.000478231,0.000474034,0.000472864,0.000494828,0.000554149,0.000695948,0.000629336,0.000529695,0.000458914,0.000473126,0.000521387,0.000577016,0.000493894,0.000447546,0.000442652,0.00044452,0.000523897,0.000561589,0.000535817,0.000519821,0.000462713,0.000469818,0.000568035,0.00067186,0.000584554,0.000435068,0.0004312,0.000426766,0.000505409,0.000496609,0.000481741,0.000476162,0.00049659,0.000476649,0.000521565,0.000660185,0.000606098,0.000505417,0.00041279,0.000412775,0.000448394,0.000548016,0.00049031,0.00048164,0.000483092,0.000492659,0.000475493,0.000394121,0.000435874,0.00040398,0.000415646,0.000421815,0.000477872,0.000636684,0.000583845,0.000485641,0.000404412,0.00038057,0.000389593,0.000615276,0.000627551,0.000664162,0.000507882,0.000478845,0.000423287,0.000548651,0.000505119,0.000439288,0.000387839,0.000376151,0.000377082,0.000470731,0.000541396,0.000485945,0.000447351,0.000402947,0.00041426,0.000442911,0.000620623,0.00065804,0.00058081,0.000343284,0,0,0,0,0,0 +TESTING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00041531,0.000415219,0.000461739,0,0,0,0.000405484,0.000381614,0.000424051,0,0.000978075,0,0.000516929,0,0.000434956,0.000548787,0.000528681,0,0,0,0,0,0,0,0,0,0.00044843,0.000451373,0.000662652,0.000752832,0.000718027,0,0,0.000609057,0.000635748,0.000729513,0,0,0,0.000533561,0.000498306,0.000458313,0,0.000573424,0.000540346,0.000567577,0.000552734,0.000579733,0.00067623,0,0.000505213,0,0.000436967,0,0,0,0.000658013,0.000854457,0.000841504,0.000854402,0.000559315,0,0,0.000428249,0.00048694,0.000520833,0.000502235,0.00055063,0,0.000429496,0.000551858,0.000601875,0.000643797,0.000363,0.000312735,0.000373497,0.000669322,0.000898415,0.000942646,0.000914435,0.000528204,0.000490893,0.000584017,0.000725805,0.000962903,0.000923532,0.00076712,0.000539008,0.000505236,0.000480873,0.000464267,0.00037341,0.000347077,0.000400983,0.000411682,0.000479588,0.000539714,0.000557896,0.000519316,0.000408652,0.000507435,0.000544882,0.000598635,0.000539456,0.000499802,0.000508734,0.000577799,0.000576677,0.000562309,0.000494496,0.000437801,0.000512753,0.000480181,0.000500524,0.000480357,0.000520888,0.000493906,0.000460547,0.000462508,0.000511321,0.000533765,0.000535863,0.000462652,0.000496335,0.000441162,0.000470676,0.000458455,0.000502272,0.000445514,0.000406236,0.000410149,0.000417841,0.000453906,0.000457381,0.000491596,0.000440884,0.00046844,0.000500865,0.000511251,0.00051737,0.000484483,0.00043538,0.000447439,0.000458992,0.000538173,0.000531934,0.00058437,0.000494059,0.000520734,0.000511411,0.000562572,0.000564638,0.000622651,0.000526803,0.000560699,0.000513957,0.00055134,0.000537147,0.000560357,0.0005518,0.000545667,0.000546246,0.000582853,0.000607922,0.000659197,0.000554293,0,0.000459501,0.000555603,0.000580028,0.000692729,0.000586531,0.00058126,0.000478231,0.000508399,0.000509238,0.000521315,0.000595197,0.000572642,0.00046451,0.000484932,0.000501171,0.000557499,0.000609721,0.000550356,0.000552973,0.000573686,0.000576115,0.000590769,0.00054246,0.000494344,0.000413984,0.000449047,0.000494679,0.000526859,0.000488732,0.000405916,0.000424384,0.00048659,0.000495802,0.00049542,0.000447938,0.000434087,0.000417344,0.000451744,0.000468496,0.000510361,0.00048488,0.000417631,0.000370393,0.000443489,0.000472796,0.000474006,0.000501964,0.000518279,0.000527476,0.000476007,0.000463717,0.00046399,0.0004545,0.000403561,0.000380998,0.000414774,0.000424767,0.000429021,0.000451286,0.000449532,0.000494306,0.000475288,0.000499506,0.000479745,0.000485125,0.000452217,0.00044161,0.000455916,0.000474569,0.000491552,0.000484363,0.000485345,0.000382957,0.00045229,0.000481844,0.000526484,0.000511454,0.000465471,0.000525262,0.000522332,0.000483979,0.000474126,0.000453257,0.000434894,0.000366123,0.00032762,0.000391509,0.000381427,0,0,0,0,0,0 +REACTIONS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.008343266,0.008353222,0,0,0,0,0,0,0,0,0,0,0.004993758,0.005001563,0.005010961,0,0,0,0.004120313,0.004127115,0.004125413,0,0,0,0.004745167,0.00474934,0.004751848,0,0,0,0.003091746,0.003092413,0.00309308,0,0,0,0.003604168,0.003605016,0.003601629,0,0,0,0.00293511,0.002933714,0.002932551,0,0,0,0,0.00473653,0.00473653,0.004738284,0,0,0,0.00263173,0.002633538,0.002629172,0,0,0,0.002431234,0.002431466,0.002430771,0,0,0,0.003337721,0.003337407,0.003336466,0,0,0,0.003060504,0.003059063,0.003062547,0,0,0,0.002737726,0.002738026,0.002735529,0,0,0,0.003276003,0.003275272,0.00327515,0,0,0,0.003184162,0.003168808,0.003200496,0,0,0,0.002326808,0.002320257,0.002410383,0,0.006648936,0.006514658,0.002713894,0.002596242,0.002535737,0,0,0,0.002525817,0.00255459,0.002565861,0,0.002174386,0.002132651,0,0.002972743,0.002950239,0.003148218,0.003442341,0.003821048,0,0.002645298,0.002537732,0.002508967,0.00158272,0.002282175,0.002628409,0.002791419,0.002601051,0.00217478,0.00170124,0.001691779,0.001626751,0.002204197,0.001825769,0.00192,0.001480443,0.001533796,0.001510942,0.002229712,0.002206352,0.00206278,0.001597167,0.001382927,0.001197687,0.001098158,0.00136612,0.001459676,0.001468902,0.001494008,0.001580611,0.001582602,0.001688697,0.001448619,0.001600683,0.001428477,0.001374938,0.001101533,0.001251108,0.001305836,0.001844626,0.002003662,0.002048388,0.001449065,0.001533978,0.001561567,0.001599634,0.001019591,0.001124016,0.001079607,0.001716852,0.001495484,0.001179965,0.00102444,0.001165094,0.001566083,0.00189313,0.001679167,0.001479405,0.001321693,0.001190476,0.001305811,0.001376576,0.001758364,0.001552795,0.001363415,0.001172073,0.000950366,0.000825001,0.000844383,0.000796793,0.000783597,0.000795739,0.000942646,0.000933097,0.000783199,0.000710503,0.00070082,0.000811918,0.000912224,0.001108238,0.001224442,0.00113858,0.000880712,0.000852779,0.000847222,0.001109355,0.001246322,0.001166218,0.000962878,0.000807839,0.000723764,0.000849381,0.001080305,0.000995434,0.000821757,0.000690052,0.000727425,0,0.001096117,0.001145413,0.001017012,0.000855548,0.000697263,0.000762698,0.001030576,0.001079932,0.000907461,0.000698845,0.000600007,0.000681515,0.001106647,0.00102603,0.000821105,0.000738255,0.000719923,0.000741635,0.000832774,0.000889386,0.000795866,0.000687096,0.000629974,0.000719254,0.000845424,0.000909857,0.000733116,0.000686749,0.000618464,0.000641346,0.000689275,0.000791467,0.000625194,0.000540575,0.000485889,0.000561118,0.000638287,0.000861013,0.000691281,0.000656124,0.000518909,0.000550374,0.000547591,0.000691682,0.000644066,0.000641338,0.000536947,0.000550451,0.000535439,0.000790205,0.000610172,0.000479593,0.000409399,0.000438346,0.000512497,0.000821284,0.000746028,0.000650719,0.000457266,0.000390255,0.000346859,0.000427268,0.000432719,0.00047804,0.000422865,0.000431303,0.000337003,0.000503921,0.000485013,0.000472702,0.000408337,0.000393502,0.000429814,0.000618002,0.000652059,0.000617076,0.00047084,0.000421727,0.000334286,0.000299474,0.000331356,0.000373375,0.000319981,0.000318828,0.000274217,0.000336202,0.000352584,0.000367986,0.000301805,0.000273312,0.000244761,0.000254509,0.00033593,0.000314865,0.000314852,0.000284094,0.00028482,0.000268763,0.000351914,0.000329417,0.000319069,0.000290817,0.000273441,0.00024244,0.000339211,0.000301802,0.000375567,0.000271017,0.000274463,0.000226181,0.000367468,0.000337356,0.000361465,0.000286109,0.000291974,0.000243519,0.000377601,0.000362183,0.00041169,0.000347023,0.000346868,0.000293131,0.000295407,0.000294376,0.000276702,0.000256546,0.00025451,0.000260475,0.000328292,0.000280364,0.000297205,0.000320276,0.000335726,0.000316405,0.000215709,0.000299228,0.000326912,0.000326064,0.000303224,0.000280502,0.000194604,0.000274284,0.000291097,0.000351275,0.000336594,0.000343622,0.000244503,0.000221013,0.000235214,0.000215115,0.000266999,0,0,0,0,0,0 +SELF,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000438036,0.000438084,0.000437685,0,0,0,0.000372273,0.00037219,0.000372176,0,0,0,0,0,0,0,0,0,0.000372289,0.000371241,0.000370828,0,0,0,0.000307761,0.000334999,0.000334383,0,0,0,0.000357638,0.000377635,0.000376031,0,0,0,0,0.000262301,0.000262243,0.000272846,0,0,0,0.000366866,0.000400695,0.000406382,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00044843,0.000381931,0,0,0,0,0,0,0,0,0,0,0,0.000355707,0.000365424,0,0,0,0,0,0,0.000425137,0,0.000511326,0,0,0.00036414,0.000541193,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000312735,0.000273898,0.000244874,0.00025669,0.000279848,0.000354577,0.000254995,0.000271283,0.000210246,0.000246036,0.000236502,0.000167915,0.000206532,0.000254364,0.000350628,0.000440603,0.000427545,0.000435041,0.000212979,0.000312216,0.000260732,0.000296279,0.000251203,0.000266411,0.00022119,0.000235761,0.00028556,0.000338066,0.000374445,0.000351016,0.000261965,0.000210195,0.000255852,0.000316742,0.00034352,0.000343633,0.00020534,0.000226299,0.000333685,0.000373032,0.000378303,0.000318958,0.000267378,0.000271082,0.00026691,0.000330348,0.000349253,0.0003601,0.000370122,0.000430348,0.000489934,0.000447974,0.000456852,0.000429945,0.000501642,0.000417366,0.000431944,0.000399914,0.000412766,0.000369618,0.000299119,0.000260281,0.000313508,0.00036508,0.00037376,0.000388027,0.000273002,0.00039964,0.000437969,0.000464877,0.000402125,0.000382992,0.00034531,0.000400893,0.000462005,0.000478239,0.00043212,0.000387302,0.000427946,0.000512642,0.000505041,0.000539356,0.000511456,0.000524623,0.000444696,0.000384977,0.00042417,0.000431325,0.000435798,0.000423742,0.000420834,0.000597597,0.000569367,0.000558817,0.000517678,0.000525114,0.000510186,0.000536965,0.000518982,0.000548721,0.000507388,0.000525772,0.000509275,0.000531345,0.000486955,0.000551691,0.000495709,0.000487649,0.000435746,0.00042228,0.000485608,0.000538794,0.000572261,0.000575374,0.000597504,0.000600213,0.000530693,0.000515926,0.000616627,0.000676088,0.000666871,0.000579101,0.000515893,0.00060372,0.000635429,0.000602434,0.000567784,0.000446247,0.0005502,0.000564714,0.000590116,0.000601375,0.000633971,0.000674685,0.000632829,0.000636029,0.000670227,0.000573026,0.000561172,0.000486091,0.000475797,0.00051747,0.000489151,0.000544447,0.00054019,0.000594103,0.000625401,0.000551898,0.000546607,0.000540731,0.000550089,0.000538543,0.000497238,0.000496759,0.000501641,0.000524064,0.000551438,0.000564238,0.00050657,0.000518601,0.00043772,0.000538858,0.000524322,0.000559859,0.000513481,0.000540807,0.000496869,0.000494199,0.000483623,0.000498017,0.000344501,0.000372882,0.000436646,0.000520608,0.000550131,0.000565836,0.000561154,0.000439794,0.000442427,0.000451741,0.000635712,0.000628895,0,0,0,0,0 +INVOLVES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000424448,0.000564718,0.000589154,0.000522534,0.000327851,0.000413383,0.000443853,0.000787314,0.000827759,0.000822783,0.000398312,0.000605627,0.000676409,0.0007296,0.000731811,0.000670688,0.000548224,0.000563213,0.000626671,0.000635187,0.000616816,0.000548493,0.000541755,0.000529152,0.00057523,0.000568746,0.00059148,0.000550541,0.000579081,0.000514826,0.000637498,0.000600777,0.000652278,0.000567134,0.000546283,0.000598689,0.000659232,0.000665792,0.000633438,0.000534656,0.000486479,0.000533419,0.000617357,0.000657823,0.000660616,0.00066447,0.000643858,0.000616832,0.000700539,0.000659854,0.000646004,0.000582636,0.000547246,0.000656655,0.000750949,0.000741909,0.000698,0.000626156,0.000608643,0.000658671,0.000792884,0.000734004,0.000712815,0.000606768,0.000522934,0.000536102,0.000539768,0.000681133,0.000659774,0.000663853,0.000482207,0.000527937,0.000651897,0.000769881,0.000716318,0.000668203,0.000571947,0.000665585,0.000682321,0.00074703,0.000652223,0.00065404,0.00051848,0.000609547,0.000596823,0.000686538,0.000624716,0.000614362,0.000555632,0.000568728,0.000594039,0.000597219,0.000544226,0.000531978,0.000483662,0.000556241,0.000585035,0.00056669,0.000534678,0.000491602,0.000468341,0.000469773,0.000526663,0.000512187,0.000489906,0.00046483,0.000441086,0.000480451,0.000529408,0.000563607,0.000540904,0.000530886,0.000522455,0.000488833,0.000479805,0.000483603,0.000459623,0.000462713,0.00042937,0.000405739,0.000427911,0.000492833,0.000497221,0.000474009,0.000445321,0.000422583,0.000462669,0.000501555,0.000463139,0.000447994,0.00041578,0.00038599,0.000388452,0.000455197,0.00048544,0.000463564,0.000471125,0.000443434,0.000448184,0.000415977,0.000432819,0.000437883,0.000445883,0.000408315,0.000349281,0.000373158,0.000418628,0.000419555,0.000420854,0.000391296,0.000295407,0.000305415,0.00034729,0.00038926,0.000400285,0.000400042,0.000352208,0.000363166,0.000397284,0.00040502,0.00041598,0.000396142,0.000354044,0.000317072,0.000327841,0.000342179,0.000342886,0.000325852,0.000228791,0.00026532,0.000322789,0.000338666,0.000332974,0.000310511,0.000252519,0.0002545,0.00032762,0.000365695,0.000533998,0,0,0,0,0,0 +LANGUAGE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000484546,0.00048221,0.000481795,0,0,0,0.000372289,0.000371241,0.000370828,0,0,0,0.000307761,0.000307082,0.000306518,0,0,0,0.000514104,0.000533132,0.000530868,0,0,0,0,0,0,0,0,0,0,0.000540645,0.00055334,0.000547732,0,0,0,0.000827087,0.000780315,0.000507449,0,0,0,0,0,0,0,0.000453167,0.000536141,0.000570391,0.000638681,0.00058296,0.000555536,0.000316921,0,0,0,0,0.000429923,0.000572173,0.00052687,0,0,0,0.000391278,0.000465085,0.000649276,0,0,0,0.00049663,0.000863647,0.000888923,0.000869439,0,0,0.000380865,0.000582623,0.000707714,0.0007955,0,0,0,0.000695156,0.000776729,0.000894905,0,0,0,0.00048694,0.000669643,0.000602682,0.000825946,0.000647818,0.00072684,0.000486934,0.000601875,0.000551826,0.000363,0,0,0.000310174,0.000346531,0.000368221,0.000261267,0,0,0.000151844,0.000258338,0.000320968,0.00033583,0.000236037,0.000169576,0.00038928,0.000483242,0.000571809,0.000485796,0.000295804,0.000299972,0.000423117,0.000739631,0.00077102,0.00070834,0.000269275,0.000544869,0.000532088,0.000654256,0.000531855,0.000639218,0.000430864,0.000523965,0.000394439,0.00051987,0.000447802,0.000536403,0.000325445,0.000300777,0.000343859,0.00039979,0.000427571,0.000419923,0.000360217,0.000355613,0.000395271,0.000469668,0.000490932,0.000529433,0.000408676,0.000306982,0.000215039,0.000373816,0.000415174,0.000480172,0.000284147,0.000370064,0.000322967,0.000297867,0.00028112,0.000325736,0.000434373,0.000448852,0.000349963,0.000357394,0.000325706,0.000395636,0.00038451,0.00039964,0.000298293,0.000295697,0.000362394,0.000390085,0.000467905,0.000446064,0.000418937,0.000396689,0.000362236,0.000363184,0.000324509,0.000280395,0.000249428,0.000221121,0.000321419,0.000374333,0.000504521,0.000442723,0.00038154,0.000341777,0.000433651,0.000454654,0.000519467,0.000441702,0.000404251,0.000365482,0.000420969,0.000453039,0.000563233,0.000498414,0.000403863,0.000316517,0.000410358,0.000464046,0.000521315,0.000415042,0.00032185,0.000279251,0.000359762,0.000355806,0.00036953,0.000342564,0.000365634,0.000418274,0.000424029,0.000459706,0.000481082,0.000532147,0.000434369,0.000561924,0.000569444,0.000592177,0.000564196,0.000525617,0.0004819,0.000622886,0.000601081,0.000667037,0.000589123,0.000637255,0.000600219,0.000626635,0.000587674,0.000533037,0.000490696,0.000445005,0.00051064,0.000733304,0.000747139,0.000621822,0.000507144,0.000460299,0.000480045,0.000889133,0.000722929,0.000696867,0.000524346,0.00051328,0.000429521,0.000634996,0.000556629,0.000550721,0.00049484,0.000509912,0.000497238,0.000550728,0.000461171,0.000498461,0.000504837,0.000530652,0.000487003,0.000538939,0.000562061,0.000578016,0.000542379,0.000540348,0.000419694,0.00074807,0.000725336,0.000582295,0.000459954,0.000414874,0.000436543,0.000448176,0.000631493,0.000619686,0.000605024,0.000502557,0.000414853,0.000488908,0.000529232,0.000361393,0.000177999,0,0,0,0,0,0 +CURRENTLY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000342824,0.000359366,0.00038295,0.000335915,0.000327851,0.000322956,0.00033873,0.000356752,0.000473005,0.000554119,0.000531083,0.000423939,0.000400324,0.000397964,0.000372463,0.000377036,0.000358909,0.000404044,0.000365939,0.000390065,0.000390484,0.000482674,0.00049367,0.000466282,0.000367736,0.000379827,0.000360135,0.000417524,0.000348138,0.000329001,0.000313419,0.000337399,0.000361922,0.000382746,0.000391309,0.000423952,0.000439488,0.000434417,0.000420533,0.000433691,0.000419634,0.00040808,0.000405459,0.000416525,0.00042833,0.000424404,0.000454942,0.000430348,0.000427861,0.000382897,0.000405556,0.000369672,0.000427974,0.000395106,0.000380428,0.000420599,0.000463505,0.000529954,0.000559223,0.000504627,0.00049578,0.000514955,0.000525934,0.000523076,0.000538315,0.000532853,0.000530298,0.000516366,0.00056466,0.000590092,0.000612975,0.000533583,0.000489412,0.000457506,0.000462404,0.000469586,0.000513129,0.00047299,0.000478243,0.000473617,0.000502071,0.000507924,0.000528451,0.00046518,0.000441223,0.000398491,0.00047122,0.000493293,0.000568783,0.000513876,0.000487758,0.00044361,0.000473116,0.000478208,0.000500825,0.000473631,0.000428396,0.000410504,0.000490206,0.000518056,0.000518907,0.000467492,0.000430526,0.00047677,0.000523893,0.000545118,0.000545751,0.00046537,0.000422765,0.000457266,0.000491731,0.000502711,0.000522455,0.000507396,0.000459813,0.0004202,0.00046125,0.000505867,0.000544491,0.000612298,0.000581879,0.000518843,0.000504581,0.000517596,0.000585412,0.000652468,0.000612723,0.000538708,0.000527441,0.000516332,0.000515979,0.000492855,0.000512464,0.000487622,0.000495429,0.000470158,0.000468964,0.000474187,0.000535272,0.000511752,0.000454413,0.000451446,0.000451164,0.00048494,0.000464921,0.000423331,0.000441757,0.000460816,0.000474662,0.000504458,0.000607327,0.000551954,0.000520464,0.000494281,0.000501253,0.000511247,0.000587013,0.000549107,0.000518592,0.000526585,0.00053636,0.000550528,0.000593199,0.000535316,0.000574882,0.000570477,0.000585977,0.000567722,0.000557513,0.000584421,0.000551676,0.000531417,0.000520574,0.000529781,0.000585203,0.000593834,0.000473229,0.000460346,0.00033057,0.000686067,0,0,0,0,0 +OBJECTIVES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000359148,0.000539049,0.000618611,0.000765139,0.000655702,0.000594238,0.000443853,0.000393657,0.000371647,0.000688451,0.000737615,0.000599571,0.000543888,0.000582733,0.000584924,0.000627184,0.000548224,0.000505055,0.000503167,0.000609609,0.000654123,0.000711474,0.000596251,0.000641793,0.000589611,0.0005767,0.00051993,0.000532066,0.000475673,0.000563567,0.000545818,0.000585285,0.000584801,0.000600659,0.000515288,0.000444004,0.000496459,0.000560335,0.000640476,0.000670041,0.000657303,0.000553823,0.000495108,0.000563027,0.000583187,0.000645179,0.000578315,0.000536501,0.000534272,0.000566022,0.000599518,0.000584645,0.000599865,0.000534228,0.000558753,0.000518509,0.000552641,0.000558646,0.00060084,0.000632111,0.000610612,0.000623839,0.000603356,0.000597258,0.000603681,0.000610832,0.000679444,0.000606105,0.000585128,0.000546119,0.00057211,0.00059287,0.000638193,0.000576374,0.000611491,0.000600106,0.000667271,0.000594778,0.00059162,0.000612565,0.000626416,0.00061925,0.000616193,0.000526135,0.000573376,0.000498487,0.000535624,0.000510037,0.000549057,0.000516763,0.000537103,0.000516442,0.000549915,0.000551427,0.000611599,0.000597546,0.000585035,0.000476849,0.000497281,0.000488295,0.000523723,0.000572393,0.000612351,0.000551691,0.000581919,0.000575544,0.000598083,0.00057094,0.00055226,0.000497439,0.000489593,0.00048714,0.000519569,0.000548648,0.000530693,0.000463712,0.000450674,0.000463512,0.000493671,0.000529305,0.000517892,0.000451763,0.000448153,0.00045455,0.000465732,0.000503719,0.000414437,0.000411152,0.000386627,0.000424456,0.000463539,0.000534325,0.000521583,0.000417784,0.000377565,0.000384435,0.000386121,0.000414666,0.000350475,0.000368804,0.000377425,0.000432716,0.000446637,0.000492287,0.000488521,0.000457824,0.000392416,0.000400445,0.000397794,0.000419927,0.000445863,0.000430524,0.00040376,0.000367315,0.000357867,0.000372427,0.000478307,0.000440157,0.000428622,0.000443009,0.000450087,0.000458066,0.000415005,0.000393938,0.000366847,0.000363129,0.000360798,0.000380441,0.000483879,0.000471481,0.000440167,0.000414925,0.000421043,0.000431183,0.000452931,0.000448724,0.000439627,0.00046895,0.000495855,0,0,0,0,0,0 +SOLUTIONS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000783515,0.000783699,0.000782963,0,0,0,0.000951928,0.000951475,0.000951098,0,0,0,0,0.000962108,0.000962108,0.000962464,0,0,0,0.000629327,0.000629759,0.000628715,0,0,0,0.000476713,0.000476758,0.000476622,0,0,0,0.000564122,0.000564069,0.00056391,0,0,0,0.000784745,0.000784375,0.000785268,0,0,0,0.000438036,0.000438084,0.000437685,0,0,0,0.000819001,0.000818818,0.000818787,0,0,0,0.00072682,0.000723315,0.000722693,0,0,0,0.000651506,0.000649672,0.000648949,0,0,0,0.000755414,0.000753748,0.000752362,0,0,0,0.00084939,0.000821912,0.000796302,0,0,0,0,0.000743186,0.000743023,0.000755572,0,0,0,0.000733732,0.000648744,0.00058307,0,0,0.00109517,0.000982166,0.000780315,0.000616188,0,0.000528681,0,0,0,0.000502857,0.000506467,0.000592603,0.000536141,0.000570391,0,0.000538117,0.000659699,0.000460976,0.000410635,0,0,0.000405466,0.000752365,0.000699323,0.000770041,0,0,0.000497963,0.000533561,0.000531526,0.00042012,0,0,0,0,0,0.000386488,0,0,0,0.000799817,0.000655451,0.000707714,0,0,0,0.00052895,0.000402459,0.000427201,0,0,0,0.000428249,0.000591284,0.000706845,0.000652905,0,0.000462727,0.000528611,0.000649245,0.000506842,0.000735767,0.000825001,0.000875657,0.000597595,0.000538723,0.000564718,0.000544967,0.000522534,0.000254995,0.000322956,0.00033873,0.000381355,0.00038854,0.000386204,0.000413065,0.000787316,0.00077856,0.000734338,0.000600662,0.000384286,0.000347077,0.00055403,0.000736453,0.000750288,0.0006392,0.000372975,0.000282097,0.000447945,0.000595774,0.000630393,0.00055809,0.00037688,0.000330903,0.000362511,0.000620441,0.000554299,0.00055413,0.00030452,0.000321571,0.000338016,0.000571741,0.000607554,0.000633438,0.0004727,0.000367644,0.000434314,0.000609207,0.000573082,0.000578245,0.000413686,0.000308435,0.000332803,0.000472199,0.000559968,0.000565855,0.000468118,0.000231527,0.000317198,0.00069547,0.000693644,0.000663717,0.000432065,0.000296518,0.000302776,0.000599676,0.000530327,0.000557971,0.000376615,0.000392201,0.000334658,0.000485317,0.000688488,0.000618839,0.000560304,0.000284012,0.000251264,0.000344546,0.00057361,0.000566066,0.000557545,0.000318424,0.000260569,0.000434954,0.000624517,0.000553686,0.000488442,0.000287158,0.000259859,0.000385803,0.000670121,0.000604321,0.000604058,0.000345215,0.000254051,0.000256215,0.000487309,0.000483546,0.00052397,0.000330763,0.000231308,0.000284969,0.000456116,0.000517496,0.000518056,0.000461117,0.000337507,0.000349019,0.000617076,0.000556221,0.000560331,0.000403706,0.000284393,0.00028946,0.000476171,0.000446121,0.000441169,0.000334833,0.00024751,0.000239902,0.000463712,0.000510873,0.000533039,0.000432481,0.000282173,0.000213955,0.000406587,0.000480865,0.000479457,0.000407283,0.000309331,0.000310828,0.000469357,0.000483488,0.00049659,0.000403606,0.00032857,0.000282676,0.000564944,0.000562352,0.000514998,0.00050066,0.000402761,0.000407826,0.000448855,0.000526706,0.000539926,0.000537172,0.000435606,0.00024308,0.000338665,0.000502662,0.000502076,0.000499164,0.000447195,0.000346782,0.000350798,0.000465877,0.000431059,0.000436729,0.000362724,0.000319596,0.000377693,0.00054993,0.000556391,0.000559098,0.000464004,0.000300117,0.000396683,0.000588813,0.000603782,0.00062564,0.000539168,0.000428654,0.000405151,0.000451905,0.000504395,0.000529622,0.000526102,0.000444915,0.000339333,0.000299618,0.000344184,0.000457712,0,0,0,0,0,0 +WEB,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000128345,0,0,0,0,0,0,0,0,0,0,0,2.37E-05,4.20E-05,7.61E-05,9.47E-05,6.43E-05,7.55E-05,8.31E-05,9.95E-05,0.000106564,9.94E-05,7.86E-05,5.34E-05,3.38E-05,4.29E-05,0,4.83E-05,0,3.20E-05,5.34E-05,5.93E-05,7.82E-05,5.81E-05,3.72E-05,4.48E-05,5.51E-05,6.51E-05,6.43E-05,8.17E-05,7.00E-05,4.48E-05,4.45E-05,4.45E-05,5.79E-05,0,5.45E-05,7.54E-05,5.75E-05,4.65E-05,2.61E-05,4.56E-05,5.56E-05,6.34E-05,6.07E-05,7.54E-05,7.43E-05,9.88E-05,6.64E-05,7.84E-05,0.000101198,0.000164188,0.000195916,0.000299918,0.000165704,0.000198862,0.000263332,0.000314235,0.000334764,0.000384131,0.000381131,0.000413064,0.000351077,0.000358741,0.000327717,0.00042389,0.000470158,0.000533901,0.000400408,0.000544301,0.000509316,0.000618187,0.000368936,0.000466801,0.000492517,0.000602174,0.000623378,0.000802215,0.000840101,0.00072879,0.000483337,0.000548018,0.000542275,0.000781661,0.000864652,0.0008115,0.000563925,0.00063373,0.000658041,0.000771739,0.00091218,0.000823434,0.000559864,0.000515603,0.000515538,0.000652551,0.000838097,0.000816964,0.000627411,0.000740447,0.000762222,0.000883267,0.000855974,0.0007815,0.000580572,0.000544226,0.00060816,0.000705245,0.000898159,0.000791835,0.000611934,0.00068695,0.000708289,0.000809,0.00081812,0.00079136,0.000573383,0.000633255,0.000637063,0.000747281,0.000700205,0.000598179,0.000472657,0.000471456,0.000594786,0.000633929,0.000741041,0.000664841,0.000546059,0.000467557,0.000600636,0.000633742,0.000775693,0.000745761,0.000614614,0.000537355,0.000586769,0.000608221,0.000626483,0.000554117,0.000558087,0.000718109,0.00070119,0.000724098,0.00065977,0.000632669,0.000557823,0.000573181,0.000543534,0.000553079,0.00054459,0.000539272,0.000499629,0.000433716,0.000517297,0.000548874,0.000612233,0.000573292,0.00048403,0.000392042,0.000474972,0.000478349,0.00051948,0.000454935,0.000410772,0.000400425,0.000365695,0.000483141,0,0,0,0,0,0 +INFLUENCE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000790912,0.000791082,0.000791253,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000740083,0.000740083,0.000740357,0,0,0,0.000915384,0.000916013,0.000914495,0,0,0,0.000524384,0.000524434,0.000524284,0,0,0,0,0,0,0,0,0,0.000510084,0.000509844,0.000510424,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000588378,0.000585541,0.000585037,0,0,0,0,0,0,0,0,0,0.000279783,0.000279166,0.000278652,0,0,0,0.000312933,0.000310994,0.000309673,0,0,0,0,0.000437168,0.000458926,0.000419762,0,0,0,0.000328249,0.000362533,0.000388713,0,0,0,0,0,0,0,0,0,0,0.000956355,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000478927,0,0,0.000390209,0.000414551,0.000463786,0,0,0,0,0.00036414,0.000416302,0,0,0.000658013,0.000569638,0.000475633,0,0.000559315,0,0,0,0.000521721,0.000520833,0,0,0.000509,0.000495573,0.000551858,0.000443487,0.000398541,0.000462,0.000562922,0.000473096,0.000359148,0.0003722,0.00038295,0.000541196,0.000455349,0.000426302,0.00036209,0.000418261,0.000439219,0.000503745,0.000442569,0.000448164,0.000505236,0.000511668,0.000545579,0.000565553,0.000587665,0.000514238,0.000487157,0.000464667,0.000470073,0.0004576,0.000458408,0.00047938,0.000501272,0.000511076,0.000508005,0.000472948,0.000389501,0.000466085,0.000501044,0.000500935,0.00046416,0.00043024,0.000484293,0.000504159,0.000494424,0.000445435,0.000438128,0.000493352,0.000590459,0.00051593,0.000431946,0.000429452,0.000446451,0.000456555,0.000478074,0.000459038,0.000447813,0.000487324,0.000484102,0.000532409,0.000403418,0.000400671,0.000392316,0.000428873,0.000401796,0.000405061,0.000356342,0.000377142,0.000364544,0.000417601,0.00046987,0.000530685,0.000603681,0.000549099,0.000485317,0.000484001,0.000447875,0.000465265,0.000398434,0.00046018,0.000463963,0.0005045,0.000512488,0.000541939,0.000531383,0.000515474,0.000467936,0.000470629,0.000502071,0.000514882,0.000534433,0.000538968,0.000530746,0.000543261,0.000460486,0.000452078,0.000458643,0.000571615,0.000527613,0.000516442,0.000487338,0.000490793,0.000430616,0.00046537,0.000415186,0.000410504,0.000397218,0.000419956,0.000451485,0.000474334,0.000497404,0.000550328,0.000494051,0.000488494,0.000443222,0.000461061,0.000443712,0.000437179,0.000409063,0.000403355,0.000418542,0.000488833,0.000576129,0.00057187,0.000503551,0.000477098,0.000452186,0.000497953,0.000511894,0.000446287,0.000506217,0.000506699,0.000529747,0.000498648,0.00053591,0.000501555,0.00051279,0.000479885,0.000509424,0.00050721,0.000559881,0.000516306,0.000465463,0.000466202,0.000463921,0.000475179,0.000603243,0.000634686,0.00058961,0.000486321,0.000451164,0.00042301,0.000472001,0.00049859,0.00049264,0.000505985,0.000496281,0.000501732,0.000469715,0.000520064,0.0004687,0.000512046,0.000507227,0.000528413,0.000487003,0.000588329,0.000582279,0.000514896,0.000472826,0.000489452,0.000534583,0.000517473,0.000441146,0.000454985,0.000451638,0.000487099,0.000620628,0.000605933,0,0.000518807,0.000485587,0.000466502,0.000442911,0.000542487,0.000588036,0.000542089,0.000508569,0,0,0,0,0,0 +GAS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001096921,0.001097179,0.001096148,0,0,0,0,0,0,0,0,0,0,0.001480166,0.001480166,0.001480714,0,0,0,0.000800961,0.000801511,0.000800183,0,0,0,0.00114411,0.001144219,0.001143892,0,0,0,0.001222264,0.001222149,0.001221805,0,0,0,0.000980931,0.000980469,0.000981585,0,0,0,0.00073006,0.00073014,0.000729474,0,0,0,0.001005137,0.001004913,0.001004876,0,0,0,0.001003703,0.000998863,0.000998004,0,0,0,0.000868675,0.000866229,0.000865266,0,0,0,0.000783392,0.000697915,0.000696631,0,0,0,0.000916447,0.000932981,0.000951138,0,0,0,0,0.00109292,0.001048974,0.001070394,0,0,0,0.001158525,0.001144842,0.001095464,0,0,0,0.001137245,0.001456588,0.00108739,0.000768302,0.000581549,0.000903751,0.001498854,0.001130238,0.00096,0.000662303,0.000766898,0.000682361,0.001088929,0.001103176,0.000941704,0.000520815,0.00060503,0.000684392,0.0008025,0.00068306,0.000892024,0.001253941,0.001430433,0.00133744,0.001378395,0.001106388,0.000950656,0.000853698,0.001063052,0.001336745,0.001149425,0.000938331,0.000945605,0.000922313,0.001140015,0.001120816,0.001642274,0.001278315,0.001285996,0.000761731,0.000983177,0.000915865,0.001363714,0.001518753,0.001375845,0.001139277,0.001061027,0.001087421,0.001118631,0.000977099,0.000783611,0.000934361,0.000973879,0.001116071,0.001305811,0.001101261,0.000832909,0.000627726,0.000908943,0.001013685,0.001072994,0.000792001,0.000656743,0.001020891,0.00112642,0.001180774,0.001031019,0.000839787,0.001092836,0.001098049,0.001004509,0.000639693,0.000489898,0.0007892,0.001091671,0.000981117,0.000668126,0.000615896,0.000542957,0.000677939,0.000611329,0.000752991,0.000615235,0.000652239,0.000572047,0.000658192,0.000724477,0.00059988,0.000550577,0.000457383,0.00048654,0.000502507,0.000816917,0.000831643,0.000782481,0.000631763,0.000562309,0.000597866,0.00071288,0.000681761,0.000569707,0.000486358,0.000445166,0.000484174,0.000672158,0.000705395,0.000627544,0.000558719,0.000550239,0.000578732,0.0007094,0.000634046,0.000554224,0.000517592,0.000517765,0.000558527,0.000582325,0.000617701,0.000576586,0.000529541,0.000574582,0.000560334,0.000723088,0.000523218,0.000537703,0.00041632,0.000463196,0.000467915,0.00054216,0.000571843,0.000516094,0.000489886,0.000464731,0.00045108,0.000561894,0.000618279,0.000626447,0.000533526,0.000533453,0.000520659,0.000586144,0.000563623,0.00050298,0.000460171,0.000400015,0.00039799,0.000460649,0.000648044,0.000569113,0.000474607,0.000434725,0.000445638,0.000598373,0.000822779,0.0007193,0.000534981,0.000477857,0.000473632,0.000488343,0.000603053,0.000515208,0.000476849,0.000415412,0.000457432,0.000421386,0.000583795,0.000493224,0.000450888,0.000385459,0.000397218,0.000420794,0.000480451,0.00040753,0.000431271,0.000365591,0.000407804,0.000368509,0.000468207,0.000448908,0.000433875,0.000403492,0.0003804,0.000341214,0.000331969,0.000291939,0.000291593,0.000350018,0.000395396,0.000419344,0.000390467,0.0003144,0.000366569,0.000367907,0.000369785,0.000353975,0.00031581,0.00038298,0.000391594,0.000447484,0.000358718,0.000367391,0.000366057,0.00049279,0.000467438,0.000424369,0.00037459,0.000375719,0.000367378,0.000389401,0.000348072,0.000432506,0.000437362,0.000446797,0.000429471,0.000425679,0.000394954,0.00035576,0.000387692,0.000394908,0.000413476,0.000502222,0.000464853,0.000425589,0.000442425,0.000466807,0.000486059,0.00041735,0.000325308,0.000364061,0.000474323,0.000531602,0.000555125,0.000447063,0.000451761,0.000476554,0.000442547,0.000445775,0.000429712,0.000458944,0.000415237,0.000386424,0.000438834,0.000457712,0.000743239,0,0,0,0,0 +MINORITY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001602626,0.001583697,0.002137923,0.006423983,0.005705436,0.003614062,0,0,0.001051144,0.001646362,0.001744647,0,0,0,0.001828571,0.002220664,0.002230976,0.001169762,0,0,0.000896861,0.002708239,0.003082774,0.003045546,0.001267106,0,0,0,0.002193331,0.002755937,0.003522565,0,0,0.000426849,0.001627799,0.001947829,0.002155172,0,0.002251441,0.00198652,0.002280029,0.00100487,0.000821137,0,0.002158637,0.002627971,0.002585391,0.001082386,0,0,0,0.002237865,0.00204888,0.002213678,0,0,0,0.000428249,0.000417377,0.000595238,0,0,0,0.000495573,0.000486934,0.000443487,0,0,0,0.000423296,0.000310174,0.000282359,0,0,0.000200353,0.000322956,0.000408812,0.000442864,0.000354754,0.000184706,0.000147523,0.000429996,0.000416889,0.000421652,0.00031738,0.000257399,0.000185371,0.000281607,0.000292751,0.000532875,0.000529765,0.00056103,0.000246835,0.000343163,0.000373899,0.000686074,0.000713115,0.001053048,0.000355032,0.000444761,0.000381646,0.000588727,0.000666592,0.000731966,0.000414555,0.000295048,0.000288923,0.000516264,0.000571854,0.000699872,0.000471625,0.000434314,0.000370822,0.000436634,0.000509053,0.000557298,0.000458797,0.000416003,0.000399041,0.00043738,0.000464867,0.000476154,0.000410434,0.000258767,0.000277395,0.000314415,0.000506016,0.000558646,0.000658062,0.000252313,0.00020779,0.000321527,0.000392448,0.000490741,0.000507554,0.000380145,0.000224903,0.000223612,0.000337111,0.000415618,0.000488337,0.000344429,0.000268198,0.000219769,0.000253914,0.000275226,0.000314368,0.00024924,0.000171096,0.000156876,0.000239305,0.00027414,0.000333024,0.000166823,0.000196099,0.000205962,0.000309138,0.000314265,0.000348503,0.000262712,0.000263807,0.000203928,0.000217121,0.000224232,0.000304239,0.000308411,0.000313277,0.000258466,0.000291091,0.000315243,0.000353964,0.000435566,0.000346929,0.000264267,0.000334893,0.000374399,0.00042827,0.000448134,0.000466564,0.000404095,0.00044327,0.000430048,0.000470499,0.000443456,0.000365306,0.00038539,0.000504365,0.00056021,0.000622275,0.000638117,0.000607874,0.000566758,0.000579001,0.000627341,0.000649427,0.000684584,0.000603791,0.000567191,0.000514418,0.000534556,0.000552501,0.00065395,0.000654714,0.000599863,0.000549367,0.000528845,0.000530196,0.000556525,0.000560761,0.000568931,0.00060651,0.000588365,0.000581685,0.000533224,0.000590001,0.000624021,0.000640663,0.000628464,0.000635125,0.000646252,0.000603658,0.000587525,0.000545876,0.000542873,0.000531125,0.000547818,0.000526137,0.000517149,0.000515559,0.00059438,0.000614607,0.000626872,0.000492379,0.000480412,0.000477366,0.000514074,0.000504094,0.000515653,0.000381318,0.000387224,0.000411996,0.000455757,0.000475936,0.000476803,0.000503034,0.000522395,0.000568435,0.000533485,0.00041957,0,0,0,0,0,0 +HIGHER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000972596,0.000973264,0.000971651,0,0,0,0,0,0,0,0,0,0.000564122,0.000564069,0.00056391,0,0,0,0.00043161,0.000431406,0.000431898,0,0,0,0.000401533,0.000401577,0.000401211,0,0,0,0.000483955,0.000483847,0.000483829,0,0,0,0.000553767,0.000551097,0.000550623,0,0,0,0.000620482,0.000649672,0.000648949,0,0,0,0.000475631,0.000502499,0.000501574,0,0,0,0.000424695,0.000422063,0.00042027,0,0,0,0,0.00054646,0.000546341,0.000566679,0,0,0,0.000502027,0.000477017,0.000424051,0,0,0,0.000672008,0,0.00039871,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000394096,0.000508598,0.000486342,0,0,0,0,0.000398645,0.000458313,0.000670498,0.000521295,0,0.000354736,0.000380005,0.000425137,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000330382,0,0,0.00030657,0.000363,0.000406555,0.000298797,0.000359148,0.000436373,0.000471323,0.000522534,0.000327851,0.000310037,0.000292008,0.00034445,0.00038854,0.000369413,0.000339303,0.000320983,0.000380998,0.000388488,0.00044066,0.000435041,0.000429902,0.000364252,0.00043684,0.000460404,0.000484996,0.000445063,0.000413529,0.000497717,0.000558795,0.000594598,0.00055809,0.000528371,0.000427417,0.00039602,0.000452005,0.000488885,0.000533682,0.000480527,0.000414555,0.000363797,0.000467973,0.000511542,0.000536663,0.000468111,0.000412207,0.000445973,0.000468621,0.000491213,0.000504111,0.000531576,0.000497351,0.000427479,0.000427861,0.000478243,0.000504941,0.000516336,0.000445514,0.000484144,0.000485442,0.000507477,0.000496417,0.000499575,0.000496798,0.000462132,0.000450212,0.000475245,0.000499237,0.000521174,0.000519089,0.000552348,0.000499522,0.000531078,0.00050687,0.000510656,0.000498553,0.000463003,0.000477666,0.000486532,0.000504335,0.000506472,0.000496904,0.000529636,0.000519471,0.000516945,0.000477437,0.00047731,0.00044669,0.000401018,0.000413513,0.000471622,0.000505569,0.000517764,0.000452068,0.000421494,0.000466881,0.000546899,0.000518626,0.000513674,0.000486783,0.000492907,0.0004869,0.000518314,0.000493238,0.000493806,0.000446669,0.000431005,0.000409627,0.000499927,0.000514774,0.000545118,0.000517983,0.000545086,0.000470373,0.000476171,0.000457523,0.000457482,0.000428163,0.000373328,0.000356219,0.000445064,0.000448234,0.000482692,0.000465669,0.000451846,0.000377921,0.000433967,0.000433433,0.000457663,0.000450888,0.000468222,0.000459096,0.000470595,0.000492441,0.000460143,0.000452301,0.00043065,0.000497874,0.000520047,0.000493431,0.000481368,0.00048193,0.000447402,0.000365344,0.000387387,0.000503234,0.000523134,0.000541699,0.000492287,0.000443681,0.000396677,0.000475679,0.000476886,0.000490036,0.000458103,0.000411001,0.000429298,0.000482818,0.000517271,0.00052993,0.000509755,0.000471784,0.000456137,0.000480178,0.00050496,0.00050894,0.000498783,0.000398592,0.000406291,0.000445789,0.000470026,0.000476586,0.000471142,0.000391837,0.000421285,0.000528201,0.000512802,0.000512732,0.000475332,0.000464956,0.000415237,0.000428426,0.000490462,0.000889996,0.000857584,0,0,0,0,0 +CONTINUE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000154014,0.000162017,0,0.000200353,0.000271283,0.000256967,0.000270639,0.000253395,0.000319038,0.000324551,0.000738866,0.000861386,0.000829091,0.000755418,0.000547427,0.000646825,0.000691772,0.000912561,0.000844074,0.000850609,0.000567299,0.000618691,0.000704663,0.00082792,0.000777551,0.000741735,0.000646608,0.000810024,0.00084992,0.000997823,0.000898584,0.000866978,0.00064536,0.000747749,0.000796343,0.000878976,0.000761804,0.000763645,0.000660863,0.000739002,0.000766607,0.000884267,0.000739692,0.000680385,0.000510142,0.000559038,0.000745937,0.000755962,0.000681042,0.000609135,0.000574599,0.000578817,0.000564835,0.000643953,0.000592976,0.000581438,0.000506326,0.00052541,0.000517906,0.000566867,0.000491898,0.000476545,0.000393734,0.00038451,0.000503611,0.000490052,0.000561971,0.000470751,0.000476613,0.000384131,0.000488412,0.000512904,0.000559788,0.000484534,0.000479517,0.000387382,0.000481487,0.000523594,0.000578201,0.000498552,0.000475918,0.000368918,0.000497262,0.000485984,0.000541768,0.000451899,0.000441774,0.000340284,0.000331999,0.000318845,0.000411829,0.000401058,0.000415286,0.000335443,0.000338701,0.000447269,0.000539046,0.000484142,0.000438694,0.000373228,0.000346628,0.000361559,0.00045225,0.000396235,0.000395528,0.00032681,0.000357645,0.000409434,0.000480897,0.000424029,0.000407062,0.000345417,0.000354765,0.000401655,0.000474901,0.000458809,0.000401977,0.000357808,0.000317214,0.000427911,0.000477774,0.00045306,0.000427308,0.000392439,0.000400609,0.000430514,0.000469357,0.000454185,0.000476848,0.000448556,0.000470525,0.000437692,0.000521295,0.000500423,0.000458948,0.000438708,0.000420618,0.000435439,0.000451714,0.000504173,0.000479863,0.000467008,0.000419861,0.000474361,0.000481343,0.000494953,0.000446483,0.000439591,0.000389933,0.000350452,0.000436657,0.0005007,0.000425834,0.000412832,0.000342573,0.000341337,0.000403841,0.000456927,0.000455282,0.0004541,0.000430073,0.000440796,0.000459823,0.000508014,0.000463043,0.000450998,0.000398917,0.000349761,0.000374675,0.00041317,0.00042093,0.000410789,0.000384092,0.000358738,0.000421934,0.000501231,0.00048616,0.000495855,0,0,0,0,0,0 +DIRECT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000284159,0.000284097,0.000272846,0,0,0,0,0,0.000176688,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000363,0.000406555,0.000248998,0.000359148,0.000359366,0.000427136,0.000317253,0.000491776,0.000413383,0.000432172,0.000332148,0.00038854,0.000386204,0.000516331,0.00040577,0.000403084,0.000409808,0.000414431,0.000435041,0.000465399,0.000446897,0.000425404,0.000413511,0.000450176,0.00053909,0.000548167,0.000557967,0.000515652,0.000491189,0.000479385,0.000469253,0.000558399,0.000548336,0.000543686,0.000456178,0.000455981,0.000419065,0.000441676,0.000461191,0.000441523,0.000465897,0.000452204,0.000479584,0.000475338,0.000483866,0.000468621,0.000461051,0.000456336,0.000488707,0.000474219,0.000459038,0.000379089,0.000373816,0.000381511,0.000401818,0.000427974,0.000481362,0.000431944,0.000457833,0.00041688,0.000448942,0.000413565,0.000440884,0.000442921,0.000500865,0.000499237,0.000511664,0.000465258,0.000503611,0.000568176,0.000536962,0.000505666,0.000472357,0.000484251,0.000527937,0.000534438,0.00047271,0.000442603,0.000427025,0.000448228,0.000484319,0.000492673,0.000463159,0.000489167,0.000473135,0.000522468,0.000481221,0.000492379,0.000459682,0.000444385,0.000421167,0.000443848,0.000461911,0.000464983,0.000435665,0.000446569,0.000453039,0.000474301,0.000473631,0.000505772,0.000489288,0.00048212,0.000451921,0.000449077,0.000476614,0.000484865,0.000486305,0.000513116,0.000511313,0.000506234,0.000506305,0.00050846,0.000486805,0.000461799,0.000459706,0.000483969,0.00053421,0.000514336,0.00047863,0.000459623,0.000473102,0.000462558,0.0004666,0.000483899,0.00050926,0.00053484,0.000526936,0.000513047,0.000439486,0.000450164,0.00049041,0.00052093,0.000516332,0.000514107,0.00048807,0.000512464,0.00047141,0.00047745,0.00044576,0.000447353,0.000438474,0.00045668,0.000474585,0.000501356,0.00049278,0.000496431,0.000489138,0.000500321,0.000481343,0.000507288,0.000482098,0.000486673,0.000453331,0.00052109,0.000479587,0.000502582,0.000501596,0.000510812,0.000515726,0.000476132,0.000477927,0.000466025,0.000480998,0.000484195,0.000510659,0.000513481,0.000440607,0.000461578,0.000490439,0.000522646,0.000522372,0.000544364,0.000501957,0.00053407,0.000517606,0.000515145,0.000498142,0.000474977,0.000466583,0.000450828,0.000456043,0.000483141,0,0,0,0,0,0 +PHENOMENA,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000719011,0.000719166,0.000719321,0,0,0,0.001331975,0.001332288,0.001331037,0,0,0,0.0008726,0.000872185,0.00087184,0,0,0,0,0.00214624,0.00214624,0.002147035,0,0,0,0.001201442,0.001202267,0.001200274,0,0,0,0.001001096,0.001001192,0.001000906,0,0,0,0.001222264,0.001222149,0.001221805,0,0,0,0.000980931,0.000980469,0.000981585,0,0,0,0.000985581,0.000985689,0.00098479,0,0,0,0.000781774,0.000781599,0.00078157,0,0,0,0.001176756,0.001171081,0.001170074,0,0,0,0.000930723,0.000928103,0.00092707,0,0,0,0.000783392,0.000781664,0,0,0,0,0.000916447,0.000888553,0.000906899,0,0,0,0,0.000808761,0.000830438,0.000818537,0,0,0,0.000946129,0.000896793,0.00086577,0,0.000815062,0.001204687,0.001292324,0.001144462,0.00068868,0,0.000687285,0.001265251,0.001058014,0,0,0.000545426,0.00069718,0.001072282,0.001037075,0.000754805,0.000717489,0.00069442,0.000547408,0.000513294,0.000464606,0.000788146,0.000567652,0.000788191,0.00073111,0.00081057,0.000714723,0.00064054,0.000497963,0.000569132,0.000597967,0.000725662,0.000622605,0.000625554,0.000855548,0.000815892,0.000794556,0.000695679,0.000579626,0,0.000459284,0.000761731,0.000764693,0.000666084,0,0,0.000658013,0,0.000439046,0.000504874,0.000671178,0.000793893,0.000783611,0.001090088,0.000904316,0.000855655,0.000703129,0.00071582,0.000786636,0.000528611,0.000649245,0.000601875,0.000766424,0.000990001,0.001063297,0.000796793,0.000832572,0.00077007,0.000839544,0.000541196,0.000710344,0.000697584,0.000747541,0.000676598,0.000641935,0.000772408,0.000634349,0.000720697,0.000698496,0.000682224,0.000647876,0.000601807,0.000583721,0.000603005,0.000647255,0.000626661,0.000609354,0.000573567,0.000564195,0.000547489,0.00052387,0.000517041,0.00050562,0.000513592,0.000534271,0.000578799,0.000652423,0.000605942,0.000595025,0.000463765,0.00044555,0.000518482,0.000590053,0.000620146,0.000591209,0.000557603,0.000597886,0.000518845,0.000546045,0.000563027,0.000598014,0.000570158,0.000543617,0.00053937,0.000596345,0.000553914,0.000565855,0.000546472,0.00041745,0.000428496,0.000465628,0.000537815,0.000481332,0.00043544,0.000293917,0.000387766,0.000517653,0.000535451,0.000529939,0.000456503,0.000426807,0.000480868,0.000485317,0.000522251,0.000486402,0.000485124,0.000394348,0.000451711,0.000487454,0.000627516,0.000564901,0.000566057,0.000387382,0.000396519,0.000426708,0.000557285,0.000491513,0.000484268,0.000360942,0.000356104,0.000456143,0.000547738,0.000505569,0.000497157,0.000417546,0.00045325,0.000432719,0.000557493,0.000539485,0.000559435,0.000410333,0.000385514,0.000352908,0.000463027,0.000445734,0.000438694,0.000414162,0.000323824,0.000392908,0.000499927,0.000490735,0.000491029,0.000419726,0.000396426,0.000481799,0.000517526,0.000458949,0.000438945,0.000396412,0.00041458,0.000379845,0.000487332,0.000492162,0.000489085,0.000432481,0.00032828,0.000303937,0.000421646,0.00047923,0.000470117,0.000422127,0.000349899,0.000342982,0.000452019,0.000478604,0.000469255,0.000412034,0.00031581,0.000330093,0.000483881,0.000509413,0.000453673,0.000465362,0.000425578,0.000499162,0.000454573,0.000467557,0.000475342,0.000460972,0.000399918,0.000297361,0.000390405,0.000483389,0.000492087,0.000488594,0.000451967,0.000306416,0.000345891,0.000404701,0.000438374,0.000436132,0.000400788,0.000269591,0.000278912,0.000386164,0.000470478,0.000498908,0.000480121,0.00034701,0.000341779,0.000400282,0.000399119,0.000408137,0.000366164,0.000281386,0.000258149,0.000335701,0.000405918,0.00042406,0.000395864,0.000294606,0.000238873,0.00031922,0.000326975,0.000457712,0,0,0,0,0,0 +CORE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000268228,0.000244352,0.000243314,0,0,0,0,0.000306018,0.000305951,0.000293834,0,0,0,0.000386175,0.000362533,0.000353376,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000821137,0.000920387,0.000826712,0,0,0,0.000625036,0.00072636,0,0,0,0.000388365,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000423296,0.000326499,0.000269524,0.000279848,0.000391901,0.000400707,0.000232528,0.000186885,0.000184527,0.000185823,0,0.000147523,0.000290701,0.000281607,0.00028426,0.000262298,0.000271901,0.00025242,0.000299972,0.000263019,0.000277095,0.000246229,0.000357304,0.000439174,0.000447945,0.000334866,0.000256532,0.00021942,0.000325152,0.000427417,0.000432576,0.000377382,0.000325349,0.00030058,0.00025982,0.000317696,0.000375255,0.000394725,0.000390346,0.000364227,0.000362557,0.000304513,0.000346868,0.000317847,0.000326039,0.000327837,0.000330092,0.000285302,0.000329934,0.00032145,0.000314793,0.000288538,0.000325472,0.00041745,0.000450755,0.000392316,0.000456454,0.000441564,0.000464132,0.000418767,0.000472755,0.000439276,0.000406072,0.000344394,0.000332867,0.000288383,0.000321661,0.00036458,0.000461935,0.000490014,0.000524841,0.000471991,0.000680389,0.000597083,0.000515558,0.000426297,0.000401489,0.000446199,0.00043617,0.000418463,0.000419831,0.000376553,0.000413297,0.000432731,0.000577465,0.000528614,0.00047013,0.000481954,0.000484277,0.000491521,0.00045325,0.000495349,0.00046877,0.000448465,0.000432447,0.000450898,0.000503921,0.000488787,0.000485142,0.000445734,0.000432081,0.000408143,0.000490297,0.000509944,0.00047677,0.000484932,0.000484268,0.000572451,0.000540777,0.00056559,0.000466718,0.000501708,0.000499003,0.00051572,0.000515647,0.000603391,0.000534574,0.000569444,0.000505068,0.000526859,0.000437092,0.000483899,0.000544854,0.000506217,0.000492689,0.000453671,0.000496957,0.000585928,0.000626635,0.000527441,0.000494312,0.000441064,0.000502425,0.00061824,0.000581156,0.000547369,0.000483346,0.000489855,0.000502956,0.000594746,0.000623251,0.000575527,0.000551552,0.000528119,0.000562614,0.000469641,0.000462528,0.000509601,0.00057374,0.000603897,0.000597851,0.000526595,0.000497985,0.000494112,0.000549666,0.000548451,0.000570209,0.000504396,0.000520054,0.000503428,0.000530091,0.00051429,0.000530169,0.000473621,0.000592966,0.000544234,0.000559734,0.000528403,0.000540848,0.00048125,0.000457139,0.000467164,0.000501994,0.000549528,0.000574666,0.000651339,0.000450956,0.000397624,0.000309765,0.00033057,0,0,0,0,0,0 +INDUSTRIAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000393451,0.000371512,0.000356798,0,0,0,0.000424792,0.000419775,0.00044172,0,0,0,0,0,0.000616188,0.000878059,0.000898758,0,0,0,0,0.00038959,0.00034859,0,0,0,0,0.000416652,0.000345732,0,0,0,0,0,0.000317874,0,0,0,0.001312811,0.001031551,0.001096273,0,0,0,0,0,0.000345459,0,0.000531324,0,0.001561567,0.001256856,0.001274488,0,0,0,0,0.000447573,0,0.000466038,0,0.000610687,0,0.000389317,0.000452158,0.000372024,0,0.00055063,0.000555273,0.000462535,0,0.000348454,0.000337227,0.000693001,0.000875657,0.000746993,0.000750947,0.000641725,0.000677527,0.00048521,0.000655702,0.000736339,0.000864345,0.000848823,0.00094601,0.000856366,0.000737615,0.000684359,0.000563214,0.000561413,0.000474759,0.000431416,0.000410182,0.000459141,0.000521463,0.000571242,0.0006392,0.00058297,0.000564195,0.000500337,0.000484837,0.000421588,0.000407835,0.000406439,0.000420523,0.000450854,0.000407231,0.000425192,0.000400773,0.000458177,0.000468796,0.000452598,0.000445592,0.000487932,0.0004698,0.000422218,0.000367644,0.000393506,0.000503258,0.000498394,0.000553534,0.00053372,0.000570605,0.000490597,0.000476633,0.0004283,0.00043441,0.000413872,0.000445514,0.000453537,0.000455721,0.000532299,0.000625321,0.00070548,0.000785513,0.00061352,0.000599676,0.000530327,0.000581998,0.000580139,0.00073826,0.000601085,0.000565809,0.000514895,0.000556232,0.000558885,0.000604802,0.000431948,0.000503116,0.000508647,0.000646433,0.000636991,0.000720004,0.000580616,0.00056276,0.000530391,0.000606474,0.000631774,0.000693965,0.00053576,0.000511562,0.000565648,0.000596807,0.000606634,0.000585222,0.000479233,0.000542796,0.000500552,0.000519575,0.000511385,0.00054607,0.000539719,0.000503885,0.000457498,0.000464938,0.000457432,0.000464729,0.000526784,0.000545473,0.000487667,0.00050234,0.000517229,0.000564975,0.000549395,0.000474182,0.000499802,0.000524513,0.00054275,0.000513796,0.000441394,0.000445273,0.00042393,0.000484027,0.000452324,0.000453224,0.000372543,0.00043391,0.000427122,0.000441611,0.000438205,0.00044996,0.000432725,0.000444805,0.000408675,0.000398837,0.000407751,0.000440128,0.00047531,0.000410336,0.000399077,0.00039854,0.000425318,0.000430064,0.000451371,0.000441812,0.000410259,0.000415919,0.000400424,0.000405897,0.000376825,0.000391761,0.00040138,0.000402438,0.000398273,0.000408844,0.000444469,0.000570631,0.000477134,0.000463053,0.000375152,0.000368621,0.000353022,0.000441347,0.000427083,0.000401328,0.000369953,0.000374516,0.00037748,0.000597888,0.000533944,0.000468079,0.000434573,0.000431807,0.000456025,0.000512807,0.000489408,0.000446036,0.000440145,0.000441553,0.000461351,0.000464956,0.000578206,0.000548834,0.000675461,0.000444998,0.000857584,0,0,0,0,0 +SUPPORTED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000163249,0.000243855,0.000235661,0.000242605,0,0.000180855,0.000245287,0.000282941,0.000354754,0.00033583,0.000413065,0.000690415,0.000659844,0.000694068,0.000640007,0.000659812,0.000465399,0.000517299,0.000514602,0.000513692,0.000499919,0.000495211,0.000532138,0.000442706,0.000503326,0.00047528,0.000541395,0.000491422,0.000492908,0.000481317,0.000486119,0.000514706,0.000486653,0.000516846,0.000554032,0.000575773,0.000577845,0.0005383,0.000517308,0.000495647,0.000516187,0.000507185,0.000425834,0.00041078,0.000387144,0.000445838,0.00048193,0.000565191,0.000512103,0.000458568,0.000403953,0.000411863,0.00048761,0.000531446,0.000519125,0.000501961,0.000499159,0.00050295,0.000580031,0.000634767,0.000566867,0.000527765,0.000491228,0.000523076,0.00054985,0.000646572,0.00061079,0.000473704,0.000446672,0.000421292,0.000535332,0.000609809,0.000593167,0.000539055,0.0005253,0.000540521,0.000687553,0.000750553,0.000620479,0.000481087,0.000486821,0.000506533,0.00054241,0.000606339,0.000620269,0.000647734,0.000637596,0.000636258,0.000604949,0.000568728,0.00062061,0.000618406,0.000558448,0.00051825,0.000436856,0.000415804,0.000471802,0.000507256,0.000518507,0.000507033,0.000527335,0.000481175,0.000480685,0.000370518,0.000376341,0.000371019,0.000431474,0.000489069,0.000525599,0.00052107,0.000535915,0.000524213,0.000531115,0.000484708,0.000490709,0.000452523,0.000503551,0.000499474,0.000533082,0.00050533,0.000509894,0.000413432,0.000448971,0.000481014,0.000542735,0.00051048,0.000437659,0.000365331,0.00044686,0.000466218,0.000509424,0.00050402,0.000466871,0.000381618,0.000457473,0.000447079,0.000471125,0.000428554,0.000497038,0.000464579,0.000452535,0.000435945,0.000446637,0.000475493,0.000472001,0.000402948,0.000365433,0.000392627,0.000403078,0.000430835,0.000482559,0.000493079,0.000487523,0.000456662,0.000443899,0.000450793,0.000426128,0.000424178,0.000427611,0.000438918,0.000435374,0.000445342,0.000478311,0.000441979,0.000472722,0.000450688,0.000472108,0.000444268,0.000497028,0.000518091,0.000443689,0.000432939,0.000416821,0.000425297,0.000400824,0.000437562,0.000453628,0.00046895,0.000368713,0,0,0,0,0,0 +CLASS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000212396,0.000209888,0.000212025,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000402459,0.000388365,0,0,0,0,0.000347814,0,0,0,0,0,0,0,0.000367884,0.00033,0.000312735,0.000273898,0.000342824,0.000308028,0.000279848,0.000261267,0.000182139,0.00021961,0.000256967,0.00034445,0.00038854,0.000352621,0.000324551,0.000502671,0.000538366,0.000599314,0.000535088,0.000413289,0.00029186,0.000355069,0.000478008,0.000462536,0.000482509,0.000385512,0.000375061,0.000390315,0.000480728,0.000497155,0.000498465,0.000432304,0.000348138,0.000347279,0.000434949,0.000478556,0.000486653,0.000438621,0.000371937,0.000398171,0.000480181,0.000558761,0.000563056,0.000527772,0.00045677,0.00050427,0.000615319,0.000594626,0.000584835,0.000443695,0.000362411,0.000496335,0.000571959,0.000562995,0.000537001,0.000468118,0.000389386,0.000378412,0.000469591,0.000528162,0.000567725,0.000543456,0.000455182,0.000369174,0.000524944,0.000543137,0.000583333,0.000519272,0.000434497,0.0003639,0.000421398,0.000553145,0.000540581,0.000530515,0.000451559,0.000423479,0.000483539,0.00064272,0.000633621,0.000622805,0.000452284,0.000419177,0.000517409,0.000581189,0.000532571,0.000498183,0.000342994,0.000356104,0.00040925,0.000594005,0.000569972,0.000567995,0.00047015,0.000459024,0.000497247,0.000531008,0.000528108,0.000517106,0.000482102,0.000506675,0.000503885,0.000597097,0.000511431,0.000491602,0.000420182,0.000435566,0.000440976,0.000528533,0.000493222,0.000507087,0.000427202,0.000374881,0.000384678,0.000493894,0.000481754,0.000473052,0.000433936,0.000346515,0.000372576,0.000488576,0.000501924,0.000500273,0.00042211,0.000416805,0.000409915,0.000506523,0.00054956,0.000535497,0.000504697,0.000382015,0.000405505,0.000564714,0.00053965,0.000553539,0.000452301,0.00043065,0.000328269,0.000430255,0.000527392,0.000504447,0.000490575,0.000391849,0.000329235,0.00040883,0.000477884,0.000509572,0.000505485,0.000457649,0.000354001,0.000385701,0.00050035,0.00048036,0.000488594,0.000439697,0.000409166,0.000386368,0.000451759,0.000465022,0.000470186,0.000438105,0.00028481,0.000386409,0.000469058,0.0004997,0.000489545,0.000445342,0.000358733,0.000432371,0.000532161,0.000480769,0.000472748,0.000391359,0.00035239,0.000317308,0.0004566,0.000495388,0.000515145,0.000480482,0.000388799,0.000366123,0.000448027,0.000546392,0.000877282,0.000971928,0,0,0,0,0 +ACQUISITION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000888099,0.000888099,0.000888428,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000392372,0.000392188,0.000392634,0,0,0,0.00036503,0.00036507,0.000364737,0,0,0,0.000521182,0.000521066,0.000521047,0,0,0,0.000415326,0.000413323,0.000412967,0,0,0,0.000589458,0.000587799,0.000587145,0,0,0,0.000363718,0.000362916,0.000362248,0,0,0,0.0004694,0.00046649,0.000508748,0,0,0,0,0,0,0,0,0,0,0.000386175,0.000400695,0.000388713,0,0,0,0.000930473,0.001196483,0.001014897,0.000987817,0.000687285,0,0.001058014,0.00121718,0.000731429,0.000467508,0.00034859,0.000633621,0.001348198,0.001567671,0.001076233,0.001076352,0.003082774,0.003695719,0.00498395,0.002522068,0.00271662,0.001898825,0.002193331,0.001985896,0.002552583,0.002736854,0.003168855,0.002561093,0.002425088,0.001871443,0.00210728,0.002450086,0.003467219,0.003228095,0.003385498,0.003285151,0.004830218,0.00434627,0.004868415,0.004684644,0.004915884,0.004121394,0.002329678,0.002773376,0.004426632,0.00602189,0.00603688,0.005747796,0,0.004396947,0,0.003737445,0.004104205,0.003645833,0.00401788,0.00451517,0.004072,0.003766354,0.004609641,0.005068424,0.004629204,0.002244002,0.002157868,0.003037773,0.003150712,0.002477058,0.002209326,0.001716898,0.002422454,0.002338199,0.002593034,0.0020667,0.002145415,0.001410485,0.001858791,0.00113858,0.000886234,0.000672748,0.000621646,0.000456793,0.000571888,0,0.000743314,0.000722579,0.000748635,0.000736548,0.00078859,0.000728239,0.00069233,0.000606529,0.00051516,0.000472948,0.000620444,0.000843828,0.000716386,0.00065242,0.000503011,0.000567134,0.000507539,0.000790613,0.000763,0.000686253,0.000557777,0.000435986,0.000523615,0.000542163,0.000647919,0.000603244,0.000583187,0.000520859,0.000408676,0.000665605,0.000629599,0.000579643,0.000455249,0.000377709,0.000277131,0.000381194,0.000424018,0.000613661,0.000693886,0.000739236,0.000613845,0.000475411,0.000497603,0.000646897,0.000660755,0.000730405,0.000434497,0.000337907,0.000362212,0.000470761,0.000662181,0.000699316,0.000698792,0.000268203,0.000295605,0.000388396,0.000508994,0.000533427,0.000498932,0.000271898,0.000298902,0.000467641,0.000550167,0.000588636,0.00047062,0.000307982,0.000289885,0.00029551,0.000535624,0.000597619,0.000716733,0.000337772,0.0002695,0.000403884,0.000479753,0.000538842,0.000496144,0.000357977,0.000335923,0.000297167,0.000584204,0.00064261,0.000686258,0.000321543,0.000273781,0.000325566,0.000516432,0.000529906,0.000550023,0.000260693,0.00018853,0.000183143,0.000461799,0.000485657,0.000592694,0.000344452,0.000296243,0.000261071,0.000568631,0.000619348,0.00073947,0.000381764,0.000253947,0.000186181,0.000418713,0.000443653,0.000525108,0.000365112,0.000300109,0.000257589,0.000389883,0.000387249,0.000422335,0.00018183,0.000173253,0.000182079,0.000343604,0.000371247,0.000386121,0.000346216,0.000265512,0.000205844,0.000285416,0.000353277,0.000398352,0.000377875,0.00021948,0.000175604,0.000262896,0.000390021,0.000434787,0.000532408,0.000686225,0.000577712,0.000394348,0.000315065,0.000304695,0.000347051,0.000313073,0.000222258,0.000166799,0.00030508,0.000338402,0.000374087,0.000131301,0.000135888,0.000172743,0.000269661,0.000285952,0.000301497,0.000186714,0.00017927,0.00016785,0.00028042,0.000291352,0.000331849,0.0001944,0.000167434,0.000173611,0.000176394,0.000152571,0,0,0,0,0,0 +MECHANISM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00612323,0.006132618,0.006144393,0,0,0,0.003433208,0.003438575,0.003445036,0,0,0,0.002884219,0.002888981,0.002887789,0,0,0,0,0,0,0,0,0,0.00136612,0.001366415,0.00136671,0,0,0,0.001802084,0.001802508,0.001800814,0,0,0,0.002300492,0.002299397,0.002298486,0,0,0,0,0.00214624,0.00214624,0.002147035,0,0,0,0.001544711,0.001545772,0.00154321,0,0,0,0.001191781,0.001191895,0.001191554,0,0,0,0.001880406,0.001880229,0.001879699,0,0,0,0.001569489,0.00156875,0.001570537,0,0,0,0.001825151,0.00182535,0.001823686,0,0,0,0.001414638,0.001414322,0.001414269,0,0,0,0.001661302,0.001653291,0.001651869,0,0,0,0.001458133,0.001484965,0.001483313,0,0,0,0.001454871,0.001395829,0.001393262,0,0,0,0.001542313,0.001488327,0.001504125,0,0,0.002132651,0,0.001726814,0.001704583,0.001595097,0,0,0,0.001119907,0.001163922,0.00116614,0.001210316,0.001467112,0.00186179,0.001344017,0.001404567,0.001159883,0.001207332,0.000898758,0.000903751,0,0,0.000457143,0,0.000383449,0,0.000933368,0.000754805,0.000627803,0.000381931,0.00060503,0.000752832,0.000886974,0.00068306,0.000648745,0.000788191,0.000699323,0.000891627,0.000714723,0.000873464,0.000497963,0.000391278,0.000531526,0.000611084,0.000814176,0.000677683,0.000855548,0.000744945,0.000829101,0.000772977,0.000821137,0.000511326,0,0.000418952,0.000619037,0.000707714,0.000852321,0.000858426,0.001016929,0.000651015,0.000658569,0.00066022,0.000783042,0.000793893,0.000615695,0.000700771,0.000695628,0.000855655,0.001104917,0.001046198,0.000925455,0.000759878,0.000811557,0.000728586,0.000858395,0.000825001,0.000844383,0.000647394,0.000522398,0.000667394,0.000721713,0.000895773,0.000564632,0.00043922,0.000408812,0.000430563,0.000523684,0.000537327,0.000486826,0.000381545,0.000521801,0.000537725,0.000613777,0.000605432,0.000642881,0.000572396,0.000590077,0.000637319,0.000686456,0.000673863,0.000734094,0.000654891,0.000675895,0.000638347,0.00066303,0.000635524,0.00061355,0.000603169,0.00054795,0.000518149,0.000509145,0.000595072,0.000701257,0.000696084,0.000563603,0.000555613,0.000529625,0.000589728,0.000668444,0.000690821,0.000511408,0.000511321,0.000489284,0.000617314,0.000624581,0.000634046,0.000594128,0.000637153,0.000612341,0.000658981,0.000512166,0.000553705,0.000534977,0.000637104,0.000575953,0.000599152,0.00047599,0.000632111,0.000501249,0.000567476,0.000501907,0.000568727,0.000419116,0.000552348,0.000527931,0.000570798,0.000510482,0.000527678,0.000455645,0.000646511,0.00059904,0.000591579,0.000561407,0.000581663,0.000600341,0.000594778,0.000568944,0.000530391,0.000545474,0.000567762,0.000628158,0.000670501,0.00054993,0.000540276,0.000507716,0.000524204,0.000486589,0.000568728,0.000559877,0.000597219,0.000512938,0.000499945,0.000444657,0.000457109,0.000496336,0.000530753,0.000450787,0.000428774,0.000396103,0.000376274,0.000388728,0.000411384,0.000406183,0.000384541,0.000377006,0.000407199,0.000453234,0.000415911,0.000390534,0.000379628,0.000377169,0.000404267,0.000488892,0.000457496,0.000408373,0.000359621,0.000357808,0.000348567,0.000405916,0.000395635,0.000399903,0.000375159,0.000365534,0.000363421,0.000394787,0.000390099,0.000414302,0.00039712,0.000391433,0.000317405,0.000381157,0.000414043,0.000391549,0.000353443,0.000334974,0.000312487,0.000307994,0.000361657,0.000422491,0.000388799,0.000381,0.000353733,0.000413001,0.000428035,0.000443299,0.000413475,0.000417491,0.00039675,0.000460541,0.000409673,0.000401877,0.000367315,0.000366829,0.000359739,0.000439172,0.000422725,0.000385153,0.000360018,0.000359134,0.000365605,0.000307151,0.000350015,0.000388208,0.000406102,0.000403659,0.000408995,0.000423395,0.00046431,0.00039439,0.000358481,0.000317291,0.000311247,0.00027256,0.000303614,0.000288418,0.000240929,0.000228856,0,0,0,0,0,0 +OBSERVATIONS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000862813,0.000862999,0.000863185,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000517112,0.000517063,0.000516917,0,0,0,0,0,0,0,0,0,0.000474539,0.000474591,0.000474158,0,0,0,0,0,0,0,0,0,0.000415326,0.000413323,0.000412967,0,0,0,0,0,0,0,0,0,0.000307761,0.000307082,0.000306518,0,0,0,0.000290581,0.00028878,0.000287553,0,0,0,0,0.000371593,0.000349658,0.000356798,0,0,0,0.000424792,0.000419775,0.000406382,0,0,0,0.000723701,0.000780315,0.000507449,0,0,0,0.001058014,0.00121718,0.000457143,0,0,0,0.000622245,0.000754805,0.00044843,0.000381931,0,0.000342196,0,0.000630517,0.000446012,0.000465749,0,0,0,0,0.000543232,0.000675844,0.000631187,0.000572891,0.000574713,0.000834072,0.000810519,0.000567577,0,0,0,0,0,0.000380865,0.00036414,0.000457933,0,0,0,0,0,0,0,0.000671756,0.000727639,0.000622907,0.000382595,0,0,0.00055063,0.000509,0,0,0,0,0.00033,0.000344008,0.000373497,0.000212224,0.000179683,0.000220933,0.000317253,0.000437135,0.000322956,0.000268648,0.000196829,0.000270289,0.000386204,0.000457322,0.000411827,0.000394802,0.000381382,0.000398693,0.000431416,0.000536392,0.000581579,0.00048487,0.000415643,0.000400433,0.000507748,0.000628308,0.000565826,0.000458129,0.00040369,0.000407835,0.000465558,0.000551505,0.000484363,0.000454137,0.000390764,0.000390549,0.000427446,0.000573403,0.000564315,0.000484251,0.000421825,0.000385342,0.000399271,0.00045677,0.000480951,0.000427871,0.000389236,0.000367375,0.000407256,0.000551327,0.000579536,0.00054314,0.000440407,0.000405556,0.000385745,0.000424466,0.000498056,0.000487423,0.000424736,0.000378483,0.00036793,0.000429171,0.000480723,0.000462971,0.000411196,0.000384439,0.000344279,0.000292228,0.000302167,0.000338538,0.000433983,0.000415368,0.000429802,0.000390261,0.000499705,0.000448301,0.000407747,0.000408826,0.000425607,0.000454312,0.000495648,0.000558637,0.000510969,0.000441072,0.000388249,0.000396836,0.000590298,0.000541404,0.000537291,0.000390716,0.000386391,0.000345215,0.000525424,0.000527613,0.000534981,0.000474064,0.000462192,0.000427495,0.000523197,0.000477464,0.000478231,0.000402272,0.00038248,0.000347945,0.000513101,0.000512034,0.000502652,0.000459235,0.000454688,0.000464582,0.000437361,0.000516077,0.000457266,0.000446121,0.000447101,0.000516682,0.000647652,0.000581581,0.000455009,0.000431964,0.000435541,0.000456335,0.000542215,0.000547886,0.000440811,0.000372098,0.00040318,0.000462948,0.000625423,0.000598432,0.000558522,0.000532325,0.000511777,0.000519725,0.000527945,0.000656538,0.000525036,0.000493431,0.000453014,0.000439428,0.000505932,0.000635104,0.000577508,0.000454413,0.0004663,0.000516047,0.00063609,0.000653721,0.000529948,0.000495724,0.000533782,0.000526068,0.000517411,0.000423845,0.000447696,0.000415054,0.000489056,0.000511409,0.000541101,0.000545704,0.000595593,0.00053881,0.00050496,0.000466138,0.00050048,0.000471277,0.000422763,0.000390994,0.000445316,0.00046891,0.000471982,0.000383948,0.000442798,0.000438993,0.000501393,0.000474126,0.000500349,0.000495018,0.000515698,0.000529232,0.000387207,0.000368713,0,0,0,0,0,0 +TYPES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000248998,0.000359148,0.000526214,0.000530238,0.000559858,0.000309637,0.000374629,0.000292008,0.000418261,0.000371647,0.000554119,0.000472074,0.000514783,0.000640518,0.000686961,0.000731811,0.00068519,0.000583721,0.000498933,0.000510028,0.000560585,0.000634226,0.000670729,0.000644336,0.000620837,0.000620426,0.000566757,0.00056763,0.000524676,0.000544612,0.000481317,0.000520233,0.000561185,0.000560264,0.000572722,0.000592775,0.000521347,0.000470008,0.000478488,0.00051027,0.000536951,0.000590459,0.000524674,0.000507333,0.000531429,0.000553534,0.000565872,0.000485785,0.000496335,0.000509886,0.000493377,0.000468072,0.000472136,0.000420958,0.000439625,0.000479498,0.000572291,0.000578696,0.000592401,0.00045258,0.0004701,0.000530412,0.000586691,0.000573989,0.000561118,0.000415271,0.000438629,0.000447439,0.000514895,0.000482791,0.000470939,0.000416823,0.000457357,0.000438513,0.000497589,0.000506664,0.000532008,0.000474594,0.000422009,0.000465875,0.000518439,0.000540782,0.000562196,0.000522468,0.000484429,0.000458275,0.000519381,0.000502349,0.000494581,0.000433985,0.000433042,0.000478268,0.000541602,0.000548967,0.000543419,0.000535149,0.000481892,0.000517095,0.00048376,0.000507388,0.000498215,0.000499644,0.000474334,0.000463965,0.000468597,0.000466696,0.000463139,0.000445358,0.000389963,0.000426573,0.000473808,0.000478903,0.000466379,0.000461839,0.000451707,0.000510701,0.000489819,0.00044498,0.000396383,0.000394107,0.000411272,0.000455905,0.000443549,0.000443246,0.000433535,0.000418416,0.000415822,0.000469814,0.000428489,0.000436279,0.000415344,0.00042889,0.000400345,0.000437692,0.000420278,0.000474453,0.000463564,0.000468243,0.00042657,0.000395081,0.000440278,0.000449718,0.000461133,0.000440602,0.000455549,0.000394121,0.000359047,0.000404751,0.000428242,0.000447278,0.00043697,0.000377974,0.000381462,0.000377407,0.000422177,0.000424183,0.00042094,0.000367426,0.000384956,0.000454905,0.000429567,0.000437381,0.000406322,0.000393903,0.000407664,0.000429072,0.000445853,0.000458035,0.000451826,0.000423395,0.000437419,0.000454253,0.000515204,0.000510319,0.000523895,0.000489005,0.000471048,0.00049283,0.000443137,0.000508569,0,0,0,0,0,0 +BASIS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000783515,0.000783699,0.000782963,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000476713,0.000476758,0.000476622,0,0,0,0.000470102,0.000470057,0.000469925,0,0,0,0.000510084,0.000509844,0.000510424,0,0,0,0,0,0,0,0,0,0.000446728,0.000446628,0.000446611,0,0,0,0.000484546,0.00048221,0.000481795,0,0,0,0.000372289,0.000371241,0.000339926,0,0,0,0.000391696,0.000390832,0.000417979,0,0,0,0.000648219,0.000644201,0.000663585,0,0,0,0,0.00041531,0.000415219,0.000398774,0,0,0,0.000386175,0.000381614,0.00044172,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000488026,0.000633621,0.000725953,0,0,0.00034721,0.000374543,0.000376416,0,0,0,0,0,0,0,0,0,0,0,0.000534698,0.000670498,0.000521295,0,0,0,0,0,0.000664724,0.000505213,0.000457038,0.000509795,0.000499563,0,0,0,0,0,0,0,0.000610687,0,0,0.000417377,0.000446429,0.000502235,0,0,0,0,0.000316776,0.000429198,0.000528001,0.000406555,0.000398396,0.000391798,0.000397869,0.000441865,0.000559858,0.000728558,0.000632993,0.000584017,0.000504373,0.000574363,0.00057091,0.000545835,0.000411827,0.00051904,0.000670379,0.00073968,0.000804826,0.000631049,0.000606066,0.000626671,0.000688475,0.000721276,0.000761622,0.000750123,0.000699423,0.000669732,0.000660222,0.000722655,0.000750066,0.000720404,0.000682373,0.000688669,0.000693734,0.000684995,0.000670503,0.000670262,0.000638793,0.000594123,0.000604407,0.000645755,0.000736587,0.000790992,0.000705395,0.000682556,0.000683676,0.000703449,0.00066447,0.000589882,0.000596749,0.000647334,0.000626559,0.000637989,0.000630854,0.000740185,0.000701174,0.00066773,0.000594355,0.000567725,0.000535017,0.000533213,0.000576337,0.000625194,0.000636649,0.000622044,0.000591552,0.000546005,0.000614081,0.000629729,0.000654652,0.000603187,0.000609951,0.000541462,0.000564638,0.000538353,0.000514176,0.000522971,0.000517822,0.000541524,0.000563623,0.000573067,0.000525909,0.000525532,0.000519057,0.000544404,0.00053576,0.00054993,0.000610422,0.000600027,0.000601482,0.000527686,0.000470572,0.000518124,0.00055352,0.000546122,0.000533122,0.000516427,0.000473631,0.000469915,0.000454734,0.000474034,0.000469557,0.000490012,0.000460651,0.000468145,0.000441353,0.000443485,0.000442011,0.000440018,0.000409353,0.000403721,0.000427727,0.000428305,0.000424857,0.000409882,0.000420768,0.000467082,0.00048236,0.000437658,0.000421956,0.000424184,0.000501641,0.000523891,0.000465453,0.000471052,0.000467003,0.00047872,0.000434415,0.000401932,0.000393814,0.000398837,0.000400917,0.000405479,0.000406725,0.000457753,0.000435243,0.000428506,0.000391029,0.0003854,0.000371017,0.000395081,0.00038167,0.000385875,0.000361027,0.000361384,0.000343236,0.000346921,0.000360615,0.000383165,0.000370911,0.000367527,0.000350394,0.00036513,0.000376555,0.000361407,0.000366792,0.000372206,0.000372427,0.000352208,0.000361714,0.000392229,0.000337809,0.000333051,0.000298591,0.000330597,0.00032668,0.000325055,0.000337344,0.00033585,0.000344329,0.000297165,0.000283247,0.000299314,0.000298434,0.000304623,0.000303889,0.000352725,0.000368355,0.000361222,0.00031837,0.000279713,0,0,0,0,0,0 +IMAGING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000429,0.000375281,0.000448196,0.000391798,0.000449207,0.000427136,0.000373239,0.000254995,0.000245446,0.000210246,0.00020913,0.000202716,0.000201498,0.000236037,0.000236195,0.000187738,0.000220301,0.000217707,0.000290027,0.000212979,0.000244875,0.000217276,0.000208887,0.000164153,0.000216263,0.000269275,0.000269815,0.000189004,0.000151135,0.00012879,0.00021061,0.000237837,0.000249797,0.000234531,0.000242721,0.000237192,0.000257026,0.000298325,0.000292183,0.000260437,0.000297481,0.000288566,0.000323547,0.00024881,0.000285656,0.000281172,0.000307367,0.000299831,0.000327948,0.000316146,0.00036723,0.000297064,0.0003269,0.000290141,0.000305382,0.000298179,0.000383976,0.000427981,0.000415083,0.000434707,0.000415187,0.000390156,0.000339959,0.000373658,0.000385576,0.000392448,0.000370909,0.000422961,0.000480868,0.000452174,0.000407503,0.000410553,0.000442569,0.000510813,0.000437595,0.000340631,0.000275056,0.000302834,0.000340485,0.000486763,0.000467325,0.000410217,0.000372021,0.000408226,0.000443912,0.000482585,0.000461972,0.000434828,0.000386551,0.000440092,0.000441774,0.000475082,0.000389737,0.000389067,0.000423747,0.000464583,0.000474776,0.000436856,0.000410297,0.00043972,0.000413269,0.000479088,0.000498215,0.000499644,0.000364872,0.00031767,0.000468597,0.000561195,0.000575544,0.000523323,0.00031671,0.000295173,0.000426545,0.000472489,0.000490106,0.000505137,0.000523897,0.000510701,0.000413984,0.000472639,0.000476299,0.000525822,0.000485043,0.000469902,0.000450394,0.000503764,0.000476344,0.00052418,0.000451318,0.000484105,0.00038143,0.000533139,0.000506461,0.000540327,0.000381205,0.000448634,0.000496352,0.000514407,0.000509723,0.000520831,0.000500972,0.000441812,0,0.000497601,0.000507634,0.00050473,0.000471294,0.000460201,0.000522108,0.000504975,0.00058981,0.000602456,0.0006817,0.000722921,0.000608376,0.000548699,0.000532423,0.000541879,0.000573194,0.000647888,0.00059414,0.000581268,0.000656916,0.000678809,0.000695582,0.00061899,0.00057924,0.000655682,0.000609691,0.000623721,0.000582839,0.000628517,0.000715288,0.000744176,0.000611279,0.000588134,0.000557006,0.000619273,0.000705456,0.000576835,0.00069267,0.000355999,0,0,0,0,0,0 +LASER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000511042,0.000511098,0.000510632,0,0,0,0.000744546,0.00074438,0.000744352,0,0,0,0.000622988,0.000619984,0.000619451,0,0,0,0.00052741,0.000525925,0.00052534,0,0,0,0.000643501,0.000669998,0.000668766,0,0,0,0.000670571,0.000666415,0.000663585,0,0,0,0,0.00054646,0.000568194,0.000566679,0,0,0,0.00061788,0.000629663,0.000636076,0,0.000815062,0,0.001188938,0.001144462,0.000942405,0.000768302,0.000740153,0.000994126,0,0.000869414,0.000868571,0.00077918,0.00069718,0.000536141,0.000881514,0.000870928,0.000762332,0.000555536,0.000979573,0.001095028,0.001224869,0,0.000608199,0.001110633,0.001144347,0.001134798,0.00061262,0,0.000769579,0.00096041,0.001096273,0.001183974,0.001005747,0.001407496,0.000945605,0.000851366,0.000829101,0.001159465,0.001690576,0.00158511,0.001515639,0.001142596,0.001019591,0.000957496,0.00119325,0.001254622,0.001316026,0.001220653,0.001134202,0.00132044,0.001286425,0.001343511,0.000839584,0.001051156,0.001078223,0.001078869,0.001104917,0.001596828,0.001527,0.001387604,0.001136179,0.001140395,0.001103651,0.001320001,0.001407305,0.001568686,0.001305995,0.001155105,0.001001561,0.000858449,0.001056409,0.000839685,0.000852664,0.000922634,0.001131833,0.001041072,0.001209689,0.000920554,0.000739908,0.000577995,0.000516727,0.000572804,0.000587665,0.000633615,0.000676988,0.000690606,0.000733712,0.000792964,0.000849498,0.000793728,0.000667677,0.000632382,0.00058671,0.000679862,0.00071351,0.000807272,0.000739839,0.000752263,0.000701353,0.000857686,0.000709006,0.000822123,0.000665336,0.000731898,0.000651034,0.00067922,0.000675871,0.000763693,0.000690706,0.000731074,0.000705097,0.000812369,0.000720967,0.000774627,0.000456681,0.000582669,0.000538604,0.000677063,0.000729661,0.000742911,0.000630084,0.000711571,0.000684287,0.000774678,0.000723088,0.000873801,0.000752784,0.00063793,0.000559306,0.000580139,0.000561385,0.000789533,0.000748099,0.00066495,0.000656162,0.000632647,0.000655884,0.000448888,0.000475709,0.000494825,0.00050084,0.000475261,0.000484735,0.000481487,0.000517409,0.000602106,0.000533744,0.000534364,0.000448684,0.000458764,0.000471064,0.000383566,0.000443312,0.000419879,0.000568783,0.000539859,0.000518124,0.000463474,0.00049682,0.000507953,0.000499264,0.000432326,0.000443494,0.000472702,0.000540743,0.000536794,0.000487604,0.000376274,0.000438886,0.000502652,0.000496538,0.000469055,0.000431474,0.00027362,0.000291365,0.000464355,0.00051311,0.000521247,0.000478196,0.000433143,0.000432551,0.000365499,0.000397797,0.000372408,0.000380625,0.000313526,0.000381921,0.000409325,0.000392543,0.000362706,0.000398006,0.000385396,0.00041265,0.000297218,0.000329651,0.00029765,0.000279996,0.00014993,0.000196961,0.00033298,0.000418517,0.000375203,0.000375315,0.000331336,0.000307994,0.000293042,0.000320154,0.00034359,0.000356857,0.000324343,0.000328041,0.000337097,0.000404751,0.000426939,0.000433826,0.000423336,0.00041834,0.000370423,0.000362349,0.00033074,0.00033158,0.000340334,0.000293506,0.000287628,0.000248682,0.000284625,0.000286906,0.000290109,0.000201641,0.000207264,0.000244255,0.000284164,0.00028979,0.000327532,0.000299795,0.000281454,0.000282881,0.000348273,0.000357706,0.000352452,0.00027256,0.000205386,0.000148409,0.000154883,0.000254285,0,0,0,0,0,0 +SPECIFICALLY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000248998,0.000277524,0.000243855,0.000162017,0,0.000200353,0.000206692,0.000221926,0.00020913,0.000304075,0.000352621,0.000427817,0.000417883,0.000425171,0.000447709,0.000495743,0.000540176,0.000528504,0.000443836,0.000500879,0.000490245,0.000514842,0.000401183,0.000384678,0.000413891,0.000431422,0.000435508,0.00040068,0.000517287,0.000517036,0.000499595,0.000383778,0.000402813,0.000402818,0.000399508,0.000360314,0.000352339,0.000423211,0.000451731,0.000478598,0.000458932,0.000415921,0.000384761,0.000407496,0.000455305,0.000474458,0.000497281,0.000431809,0.00042461,0.000416777,0.000438894,0.000426395,0.000431954,0.000371846,0.000381194,0.000394298,0.000434389,0.000460763,0.000459069,0.000442176,0.000414325,0.000462971,0.000452187,0.000431159,0.000386125,0.000399891,0.000513359,0.000523196,0.000498713,0.000487606,0.000496472,0.00050264,0.000516644,0.0004992,0.000471328,0.00048104,0.000472424,0.000452284,0.000405015,0.00047412,0.000476605,0.000470398,0.000431388,0.000424755,0.000381769,0.000385803,0.000404461,0.000447605,0.000471397,0.000519467,0.000487894,0.000493451,0.000450232,0.000488286,0.000478208,0.000516427,0.000498414,0.000481238,0.00047132,0.000480099,0.000482784,0.00047436,0.000412761,0.000422167,0.000414109,0.000465867,0.000465675,0.000482738,0.000456752,0.000428478,0.00044545,0.000455385,0.000455999,0.000460877,0.000455832,0.000483439,0.000468685,0.000475079,0.000471504,0.000475003,0.000427871,0.000457905,0.000481881,0.000489043,0.000475565,0.000457382,0.000456389,0.000480532,0.000456973,0.000459883,0.000446476,0.000456984,0.00044979,0.000452282,0.000420278,0.000430504,0.000431253,0.000450234,0.000457323,0.000471549,0.000451714,0.000461924,0.000470175,0.000470026,0.000471294,0.000507401,0.000497022,0.000467199,0.00047428,0.000476584,0.000480599,0.000458706,0.000464868,0.000505406,0.000504731,0.000515591,0.000506023,0.000467436,0.000489548,0.000508483,0.000551131,0.000559767,0.000556466,0.000497068,0.000513355,0.000535876,0.000528578,0.000523286,0.000502216,0.000486509,0.000527055,0.000541112,0.000530216,0.000518161,0.000509915,0.000503034,0.00050007,0.00049283,0.000451741,0.000368713,0,0,0,0,0,0 +UNDERGRADUATES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000182139,0.000413383,0.000397131,0.000295243,0,0,0,0.000993229,0.00058254,0.000532987,0.000167871,9.06E-05,0,0.000437714,0.000480295,0.000466799,0.000231306,0.000119101,0.00039109,0.000620837,0.000527979,0.000349997,0.00013356,8.87E-05,0.000241284,0.000587938,0.000498912,0.000387321,0.000175849,0.000139688,0.000290576,0.000661709,0.000581915,0.000426547,0.000198829,0.000121617,0.000126262,0.000553823,0.00055012,0.000422271,0.000225697,0.000130751,0.000138796,0.000565191,0.00057861,0.000420733,0.000254875,0.000146664,0.000357814,0.00044519,0.000459684,0.000340616,0.000277006,0.000222783,0.00027571,0.000430261,0.000433808,0.00033818,0.000260297,0.00020923,0.000165339,0.000428882,0.000437969,0.000358955,0.000293768,0.000265258,0.000365742,0.000434772,0.000450259,0.00031514,0.000224796,0.000170243,0.000217015,0.000416344,0.000486489,0.000401902,0.000295612,0.000228218,0.000199415,0.000494054,0.000590428,0.000449235,0.000291963,0.00019706,0.000225212,0.000409946,0.000525715,0.000410505,0.000289179,0.00018991,0.000216868,0.000415804,0.000579373,0.000456116,0.000366896,0.000248005,0.000254036,0.000289617,0.000537113,0.000446801,0.000399551,0.000298336,0.000307586,0.000377036,0.000672234,0.00060378,0.000509547,0.000420409,0.000418542,0.000480583,0.000714255,0.000708621,0.00065242,0.000536235,0.000492634,0.00053115,0.000727849,0.000685859,0.000558556,0.000511369,0.000501914,0.000616971,0.000782428,0.000724469,0.000597441,0.000528481,0.000506615,0.00059334,0.000775079,0.000707115,0.000625279,0.000503788,0.000489855,0.000507916,0.000707323,0.000683289,0.000575527,0.000512155,0.000485869,0.000495436,0.000592361,0.000718095,0.000676127,0.000566356,0.000531833,0.000475827,0.000544943,0.000673384,0.000680462,0.000584673,0.000526943,0.000518711,0.000708763,0.000762649,0.000638889,0.000530091,0.000489545,0.000528473,0.000757325,0.000754933,0.000663111,0.000529115,0.000467631,0.000453506,0.000689002,0.000752935,0.00066788,0.000504996,0.000453014,0.000415731,0.000537104,0.000678667,0.000848452,0.000671158,0.000546712,0,0,0,0,0,0 +ATMOSPHERIC,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001175272,0.001175549,0.001174444,0,0,0,0.000793273,0.000792896,0.000792581,0,0,0,0,0,0,0,0,0,0,0.001201442,0.001202267,0.00125743,0,0,0,0.001048768,0.001048868,0.001048568,0,0,0,0.001081234,0.001081132,0.001080827,0,0,0,0.000902456,0.000902032,0.000903059,0,0,0,0.000839569,0.000839661,0.000838896,0,0,0,0.001116819,0.00111657,0.001116528,0,0,0,0.000449936,0.000447766,0.000447381,0,0,0,0.001396085,0.001392154,0.001390606,0,0,0,0.001119132,0.00114458,0.001142475,0,0,0,0.001318789,0.001310616,0.001327169,0,0,0,0,0.001573805,0.001551607,0.00144818,0,0,0,0.001177834,0.001163922,0.001077796,0,0,0.001314204,0.001292324,0.001300525,0.001196129,0.000987817,0.001004494,0.000903751,0.000969847,0.001043297,0.000868571,0.000818139,0.000801757,0.001267242,0.001451906,0,0.000852018,0.000763862,0.000633841,0.000718612,0.001055922,0.001628836,0.00117585,0.001074807,0.000762898,0.001175326,0.001123137,0.001339312,0.000543232,0.00049799,0.000664408,0.000802047,0.000670498,0.000729813,0.000540346,0.000709471,0.00058728,0.000966221,0.001014346,0.001073784,0.000780784,0.00087599,0.000946763,0.001040756,0.000965964,0.00118859,0.001136568,0.0010579,0.000695156,0.000893239,0.000783042,0.000977099,0.000951528,0.001012225,0.001113005,0.00093006,0.000803576,0.00055063,0.000694091,0.000693802,0.000811557,0.000728586,0.000919709,0.000759001,0.000688016,0.000448196,0.000473423,0.000410704,0.000441865,0.000354577,0.000546418,0.000452138,0.000432172,0.000319846,0.000304075,0.000285455,0.000324551,0.00030887,0.000364432,0.000495086,0.000584924,0.000743195,0.000528504,0.000471385,0.000384236,0.000379407,0.000430279,0.000504614,0.000548167,0.000440087,0.000365682,0.000320168,0,0.000557931,0.000616997,0.000566614,0.000452005,0.000401092,0.000359878,0.000416271,0.000619896,0.000653115,0.000490355,0.000431269,0.000364227,0.000461227,0.000449343,0.000443058,0.000389159,0.000420834,0.000410208,0.000447982,0.00043952,0.000407396,0.000370222,0.000398031,0.000439219,0.000524372,0.000627929,0.00066222,0.000538939,0.000390261,0.000357914,0.000342614,0.000491596,0.000454164,0.000404644,0.000445782,0.000455187,0.000524978,0.00055754,0.000513359,0.000487685,0.000432512,0.000479179,0.000500727,0.000586413,0.000477119,0.000597083,0.000523851,0.000534618,0.000463911,0.000576003,0.000642927,0.00059162,0.000386962,0.000396495,0.000429996,0.000562351,0.00077637,0.000703398,0.000468637,0.000423991,0.000401847,0.000526042,0.000536972,0.000423229,0.000387994,0.000403903,0.000437023,0.000421254,0.000459863,0.000434058,0.000378715,0.000325456,0.000308629,0.000337109,0.000481175,0.000587271,0.000390951,0.000369709,0.000367638,0.000488078,0.00063342,0.000569399,0.000393461,0.000402649,0.000455999,0.000533039,0.000672403,0.000514336,0.000399066,0.000406746,0.000404374,0.000475003,0.000437092,0.000465903,0.000401111,0.000413806,0.000396953,0.000435116,0.000496957,0.000523405,0.000456973,0.000384186,0.000380416,0.000379259,0.00045936,0.000508817,0.00046268,0.000429505,0.000430594,0.000422139,0.000484107,0.000545892,0.000526046,0.000398081,0.000366194,0.000372701,0.000462897,0.000545161,0.000544059,0.00046026,0.000509894,0.000493879,0.000516729,0.000440358,0.000472228,0.000413171,0.000452482,0.000442704,0.000518711,0.000689196,0.000658057,0.000465014,0.000402098,0.000373178,0.000436859,0.000539272,0.000422763,0.000366847,0.000391599,0.00042349,0.000443428,0.000423395,0.000453554,0.000400259,0.000381299,0.0003565,0.00038262,0.000480989,0.000506768,0.000551634,0.00046895,0.000495855,0,0,0,0,0,0 +DOCTORAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002021437,0.002021247,0.002020677,0,0,0,0.001569489,0.00156875,0.001570537,0,0,0,0.003139259,0.003139603,0.00313674,0,0,0,0.003276003,0.003275272,0.00327515,0,0,0,0.003080331,0.003065477,0.00306284,0,0,0,0.003598796,0.003588665,0.003584672,0,0,0,0.004364613,0.004354987,0.004346978,0,0,0,0.004738701,0.004664904,0.004600854,0,0,0,0,0.003803362,0.003802531,0.003672921,0,0,0,0.003031473,0.003110153,0.003003693,0.001862024,0.002037656,0.002847443,0.004600672,0.004681891,0.003987096,0.003567117,0.004652392,0.00768188,0.007141598,0.005825074,0.003794286,0.002882967,0.002823579,0.003558025,0.003940887,0.00429658,0.003497758,0.00374987,0.003140396,0.003524621,0.003928028,0.004571248,0.003568098,0.003260246,0.003210528,0.003647564,0.003879926,0.00430909,0.003123585,0.002667805,0.003388479,0.004315777,0.005268199,0.003857582,0.002881844,0.002518624,0.002901855,0.003826235,0.004926822,0.0045508,0.003490562,0.003199269,0.003277256,0.003871612,0.00443207,0.004820391,0.004007896,0.002848191,0.002378165,0.00252437,0.002852509,0.00329771,0.002630695,0.001790859,0.001773851,0.002157738,0.003113857,0.002918342,0.001850909,0.000825955,0.000746632,0.000760264,0.000827738,0.000759001,0.000625469,0.000323697,0.000326499,0.000243855,0.000353492,0.000317253,0.000346065,0.000206692,0.000186885,0.000196829,0.000287182,0.000184706,0.000206532,9.69E-05,0.000143564,0.00012081,0.000125903,9.43E-05,0.000110434,0.000153047,0.000221851,0.000221676,0.000223844,0.000141041,0.000163488,0.000316967,0.000277343,0.000250566,0.000131175,0.000133017,0.000244731,0.00023152,0.000281437,0.000297807,0.000318983,0.000279376,0.000143351,0.000111717,0.000258403,0.000330535,0.000364227,0.000266181,0.000282232,0.000276911,0.000344334,0.000285823,0.000294889,0.000233636,0.000227471,0.000249602,0.000496585,0.000434354,0.000458455,0.000301363,0.000256083,0.000322763,0.000485442,0.000409567,0.00036477,0.000237973,0.000247099,0.00024169,0.000340849,0.000383014,0.000372426,0.000315748,0.000184565,0.000185199,0.000267516,0.00027363,0.000264873,0.000241143,0.000218628,0.000285142,0.00022513,0.000219769,0.000194512,0.000214222,0.000219043,0.000240743,0.000220569,0.000231579,0.000281535,0.000311712,0.000348977,0.000298357,0.000341042,0.000425355,0.000375688,0.00036836,0.000271241,0.000375303,0.000334029,0.000338998,0.000294868,0.000296306,0.000283957,0.000316672,0.000311389,0.000364893,0.000334553,0.000330674,0.000317846,0.000383116,0.000415897,0.000377329,0.000368051,0.000362567,0.000383414,0.000413662,0.00046466,0.000415911,0.000379844,0.000362575,0.000363698,0.000439331,0.000499796,0.000487332,0.000436031,0.000385994,0.000371291,0.000374387,0.000469902,0.000427122,0.00045306,0.00040785,0.000436971,0.000378634,0.000521619,0.000455734,0.000485116,0.000414585,0.000435445,0.000393965,0.000565352,0.000497599,0.000591318,0.000487962,0.000514347,0.000405737,0.000518279,0.000518899,0.000565199,0.000475342,0.000476061,0.000408315,0.000651361,0.000598935,0.000524249,0.000476886,0.000469377,0.00047719,0.000579805,0.000575259,0.000524229,0.000489579,0.000482732,0,0.000604406,0.0007089,0.000686401,0.000583276,0.000529003,0.00050048,0.000703398,0.000656106,0.000573025,0.000486678,0.000456755,0.000461064,0.000610109,0.000652544,0.000608018,0.000539223,0.000472317,0.000484897,0.000376775,0.000542487,0.000509631,0.000494764,0.00033057,0,0,0,0,0,0 +FEATURES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000326499,0.000385035,0.000471323,0.000447887,0.000327851,0.000387547,0.00033873,0.000369054,0.000253395,0.000235081,0.000236037,0.000333095,0.000474867,0.000454816,0.00051935,0.000435041,0.000583721,0.000465263,0.000409395,0.000400722,0.000410381,0.000488942,0.000445586,0.000426989,0.000371845,0.000371872,0.00039114,0.000461863,0.000489461,0.000441715,0.000439213,0.000463063,0.000492787,0.000536403,0.000507539,0.000495566,0.000443557,0.000413955,0.000441647,0.00047729,0.000623881,0.0005101,0.000484921,0.000459614,0.000459631,0.000488707,0.000543617,0.000467645,0.000456681,0.000457055,0.000487308,0.000448027,0.000427974,0.000436843,0.000469591,0.000495066,0.000485446,0.000484385,0.000392757,0.000379798,0.000402822,0.000417601,0.00042849,0.000403244,0.000453722,0.00058159,0.000553972,0.000531078,0.000502054,0.00051633,0.000504683,0.000471473,0.000444386,0.000458888,0.000484534,0.000513566,0.000549637,0.000501313,0.000505041,0.000478099,0.000517321,0.000505141,0.000530445,0.000497262,0.000554193,0.000552216,0.000572119,0.000557691,0.000542481,0.000565841,0.000601631,0.000576032,0.000517678,0.000488505,0.000477422,0.00049566,0.000475577,0.000492053,0.000510421,0.000509238,0.000496032,0.000376274,0.000378278,0.000454975,0.000491564,0.000513848,0.000499826,0.000493378,0.000457043,0.000504528,0.000497432,0.000491589,0.000481082,0.000509459,0.000510701,0.000487332,0.000479147,0.000485089,0.000528934,0.000584634,0.000587878,0.000484619,0.000480865,0.000503585,0.000520469,0.000545977,0.000501969,0.000473072,0.00047372,0.000487479,0.000483204,0.000451385,0.000390275,0.000412795,0.000463466,0.000511701,0.000525873,0.000496012,0.000378089,0.000428842,0.00045629,0.000436591,0.000419477,0.000409365,0.000387041,0.000406084,0.000383935,0.000409566,0.000406922,0.000411065,0.000388983,0.000401087,0.000456465,0.000474949,0.000484524,0.000474676,0.000426128,0.000416915,0.000414469,0.000438333,0.000436043,0.000450432,0.000431418,0.0004159,0.000386351,0.000401805,0.000403659,0.000408155,0.000326093,0.000394395,0.000427256,0.000482178,0.000498255,0.000503292,0.000487001,0.000410772,0.000462028,0.00052488,0.000635712,0.000743239,0,0,0,0,0 +RATE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00043161,0.000431406,0.000431898,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000341265,0.000340304,0.000339926,0,0,0,0.000279783,0,0,0,0,0,0.000447047,0.000444277,0.00042027,0,0,0,0,0.000349734,0.000349658,0.000356798,0,0,0,0.000289631,0.00028621,0.000265032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00049799,0,0,0,0,0,0.000425683,0.000449097,0.000502435,0.000531324,0,0,0,0,0,0,0,0,0.000651015,0.00051222,0.000504874,0,0,0,0.000389317,0.00048694,0.00063244,0.000502235,0.000660757,0.000555273,0.000462535,0.000324623,0,0.000551826,0.000759001,0.000656743,0.000547795,0.000457098,0.000500545,0.000456594,0.00048521,0.000564632,0.000529647,0.000525615,0.000467468,0.000489898,0.000402996,0.000516331,0.000581402,0.000673648,0.000632478,0.000700335,0.000710567,0.000658658,0.00052036,0.000491731,0.000509429,0.000542201,0.000548493,0.000730889,0.000636554,0.000610154,0.000479258,0.000503235,0.000495117,0.000544612,0.000493502,0.000515968,0.000525035,0.000564354,0.000631391,0.000759372,0.00065598,0.000563603,0.000472193,0.000494434,0.000518594,0.000612741,0.000594631,0.000576607,0.000532865,0.000543649,0.000570158,0.000682412,0.000662736,0.000653985,0.000544834,0.000524177,0.000502272,0.00054023,0.000470232,0.000424018,0.00043301,0.000429222,0.000423626,0.000478591,0.000517906,0.000544994,0.000512394,0.000533943,0.000523076,0.000695964,0.000558846,0.000525563,0.000444281,0.000516502,0.00051633,0.000514899,0.00046865,0.000528565,0.000527998,0.000515982,0.000536265,0.000569918,0.000586281,0.000519471,0.000502004,0.000565416,0.000570545,0.000614199,0.000548592,0.000532877,0.000519381,0.000530257,0.000537084,0.000565496,0.000609145,0.00055798,0.000520415,0.000526211,0.000551427,0.000597557,0.000594792,0.000526531,0.0005349,0.000499303,0.00051034,0.000535762,0.000624843,0.000566372,0.000509463,0.000493222,0.000500326,0.000463514,0.000398581,0.00040753,0.000459629,0.000451109,0.000453033,0.000474347,0.000563086,0.000545232,0.000469928,0.000482401,0.000459516,0.000449075,0.000394674,0.000365924,0.000381945,0.000393361,0.000414076,0.000426766,0.000410751,0.000464455,0.000370284,0.000387441,0.000378897,0.000425145,0.00046255,0.000459576,0.000437738,0.000386554,0.000420703,0.000426462,0.000460299,0.000429067,0.000427413,0.000409347,0.00040107,0.000396089,0.000405166,0.000424801,0.000404516,0.000434818,0.000398708,0.000397313,0.000362665,0.000359626,0.000388821,0.000409407,0.00039135,0.000386544,0.000348544,0.000393516,0.000425631,0.000399306,0.000358265,0.000335726,0.00035797,0.000415005,0.000355505,0.000385422,0.000412549,0.000441402,0.000439229,0.000378688,0.00039798,0.000415518,0.000405918,0.000390883,0.000370847,0.000344709,0.000339333,0.000316419,0.000279649,0.000305142,0,0,0,0,0,0 +EVENTS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000335739,0.000390832,0.000390113,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000231705,0.000209888,0.000194357,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00036414,0.000416302,0,0,0,0,0,0,0,0,0,0,0,0.000372024,0,0,0,0,0,0,0,0,0,0.000248998,0.000195899,0.000205352,0.000176746,0.000223943,0,0.000193773,0.000233607,0.000258338,0.000287182,0.000386204,0.000324551,0.000339151,0.000392041,0.00040507,0.000409185,0.000387912,0.000445678,0.000407105,0.000427692,0.000415643,0.000422817,0.00037611,0.00036865,0.000382456,0.000462238,0.000493178,0.000522315,0.000480338,0.000510143,0.000523965,0.000445609,0.000395928,0.000384415,0.000405096,0.000495916,0.000446868,0.00039676,0.000305351,0.000292085,0.000325842,0.000471625,0.000457633,0.000438059,0.000393545,0.000388792,0.000398682,0.000427953,0.000476252,0.000405692,0.000372303,0.000343039,0.000369672,0.000396402,0.000431278,0.000370521,0.000390261,0.0003538,0.000391559,0.000364145,0.000361206,0.000359076,0.00037789,0.000395118,0.000386125,0.000346059,0.000389893,0.000392989,0.000466348,0.000462323,0.000478031,0.000404564,0.000415009,0.000389572,0.000388396,0.000391354,0.000424188,0.00050096,0.000487151,0.000426708,0.000340646,0.000387111,0.000395207,0.000490562,0.000593506,0.000535009,0.000471622,0.000408963,0.000404423,0.000414258,0.000464798,0.000444106,0.00042772,0.00040011,0.000388973,0.000379129,0.00049566,0.000541629,0.000494817,0.000457862,0.000458535,0.000493624,0.000519943,0.000516214,0.000474045,0.000515603,0.000492719,0.000534003,0.000467524,0.000561782,0.00046081,0.000465363,0.000414477,0.000476272,0.000585775,0.000643374,0.000479873,0.000388035,0.000363617,0.000406553,0.000503486,0.000571881,0.000498309,0.000453878,0.00046856,0.000526963,0.000620352,0.00059486,0.000469357,0.000447674,0.000473811,0.000480395,0.000511995,0.000517935,0.000488869,0.000492432,0.000456311,0.000464642,0.000493036,0.000582002,0.000538912,0.000459107,0.000463071,0.000489641,0.000564713,0.000608881,0.000542491,0.000498808,0.000465593,0.000454965,0.000418564,0.000411001,0.000452602,0.000442348,0.000488534,0.000474965,0.000511994,0.000484829,0.000499717,0.000541843,0.00054704,0.000554417,0.000540348,0.000558029,0.000533944,0.000521016,0.000467877,0.000460594,0.000431671,0.000578552,0.000580836,0.000600975,0.00058726,0.000565212,0.000557006,0.000497022,0.000622855,0.000638439,0.000671158,0.000495855,0.000914756,0,0,0,0,0 +FUNDED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000116803,0.00013532,0.000202716,0.00033583,0.000354055,0.000314926,0.000256759,0.00026294,0.000264921,0.000293653,0.000236643,0.000235692,0.000196692,0.000204624,0.000193998,0.000200592,0.000211573,0.000170272,0.000162297,0.000163067,0.00021465,0.000317762,0.000306775,0.000258936,0.000191889,0.000215178,0.000212655,0.000296139,0.000290576,0.000277861,0.000207536,0.000182581,0.000165398,0.000160626,0.000204247,0.000282741,0.00026691,0.000228371,0.000196043,0.000210058,0.000293013,0.00034141,0.000254943,0.000198259,0.000185947,0.0001989,0.000291163,0.000286591,0.000317023,0.000300625,0.000318146,0.000302108,0.000299119,0.00030012,0.00026794,0.000275412,0.000248284,0.000264391,0.000265312,0.000250181,0.000272251,0.000279515,0.000296176,0.000286535,0.000298315,0.000372661,0.000319097,0.000276439,0.000270221,0.000286575,0.000298142,0.000240743,0.000228815,0.000237556,0.000238132,0.000242134,0.000231322,0.000295149,0.000279228,0.000288048,0.000274789,0.000276914,0.000281104,0.000352207,0.000356803,0.000328404,0.000280646,0.000261985,0.000257433,0.000286381,0.000296292,0.000286109,0.000294124,0.000315243,0.000343129,0.000339787,0.000365738,0.000347361,0.000357275,0.000335523,0.00033749,0.000318864,0.000392295,0.000371011,0.000357039,0.000335882,0.000342531,0.000327951,0.000378028,0.000353067,0.000380714,0.000350831,0.000358845,0.000411272,0.000457905,0.000387421,0.000339386,0.000330016,0.000358112,0.000322853,0.00037335,0.000362854,0.000383372,0.000376619,0.000377386,0.000390775,0.00039757,0.000330486,0.000308644,0.000344211,0.000355145,0.000422602,0.000431191,0.00038024,0.000375548,0.00035909,0.000362893,0.000357932,0.000436601,0.00098934,0.002384563,0.002309726,0.002370908,0.001808551,0.001073373,0.000884353,0.000660698,0.000572133,0.000552035,0.000541848,0.000350033,0.000408199,0.000406382,0.000402098,0.000380535,0.000391053,0.000501757,0.000488648,0.000469936,0.000439944,0.000436285,0.000425792,0.00036291,0.000460725,0.000442515,0.000468367,0.00045603,0.000486369,0.00046696,0.000479978,0.000448027,0.00046895,0.000216142,0,0,0,0,0,0 +UNDERREPRESENTED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.37E-05,0,0,0,0,0,3.14E-05,3.08E-05,2.98E-05,0,0,3.79E-05,6.40E-05,5.54E-05,5.68E-05,5.11E-05,5.59E-05,5.81E-05,5.16E-05,5.49E-05,7.24E-05,7.74E-05,7.57E-05,4.46E-05,7.29E-05,8.15E-05,6.89E-05,5.93E-05,4.93E-05,5.40E-05,9.47E-05,9.75E-05,8.63E-05,8.18E-05,6.63E-05,8.77E-05,7.23E-05,8.52E-05,7.72E-05,9.05E-05,9.11E-05,9.10E-05,5.84E-05,6.56E-05,9.74E-05,9.74E-05,0.000106517,8.46E-05,6.82E-05,7.81E-05,8.53E-05,0.000101133,0.000112061,0.000118509,0.000110104,8.81E-05,7.46E-05,8.85E-05,9.79E-05,0.000113578,0.000101962,9.89E-05,8.52E-05,8.56E-05,7.51E-05,8.38E-05,6.42E-05,0.000130022,0.000129845,0.000166376,0.000150693,0.000162744,0.000187651,0.000197381,0.000158905,0.000126101,0.000109828,0.000140418,0.000176235,0.000173623,0.000139599,0.000158685,0.00018628,0.000234772,0.000291898,0.000282141,0.000213865,0.000259459,0.000276362,0.000335354,0.00044167,0.000483704,0.000447813,0.000485317,0.00049233,0.000528228,0.000517709,0.00053251,0.000514683,0.000573512,0.000572198,0.000596347,0.000584634,0.000585878,0.000558544,0.00053484,0.000516039,0.000544591,0.000623732,0.000669887,0.000608059,0.000565697,0.000605172,0.000644272,0.000773575,0.000782374,0.000710856,0.000641261,0.000651495,0.000659143,0.000730129,0.000749805,0.000749044,0.000784895,0.000740784,0.000720505,0.000690672,0.000774081,0.000837254,0.000814128,0.000788729,0.000778772,0.000775093,0.000822002,0.000837744,0.00081599,0.000768069,0.000743216,0.000764259,0.000873997,0.000923895,0.000892625,0.000886603,0.000866067,0.00088305,0.000937864,0.000918274,0.000859073,0.000813279,0.000788767,0.000760882,0.000731079,0.000821058,0.000808734,0.000789019,0.000801068,0.000838085,0.001018093,0.001113996,0.001223675,0.001282084,0.001182424,0.001486479,0,0,0,0,0 +DIVERSITY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000193087,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000116803,0.000123018,0,0,0,9.08E-05,0.000118717,9.95E-05,0.000107542,9.79E-05,0.000122266,0.000101011,0.00010292,0.000110838,0.000139281,0.00020686,0.000173105,0.000151935,0.00013559,0.000169033,0.00020511,0.000236474,0.000203368,0.000152316,0.000211078,0.000265099,0.000321027,0.000307314,0.000352566,0.000269267,0.000221779,0.000221931,0.000249856,0.000284538,0.000289659,0.000271082,0.000287285,0.000327475,0.0003196,0.000295796,0.000173495,0.000229519,0.000241642,0.000284524,0.000267699,0.000283282,0.000263099,0.00022816,0.000275414,0.000267529,0.000256436,0.000231222,0.000221088,0.000244346,0.000238777,0.000279254,0.000324371,0.000367104,0.000296073,0.000269676,0.000345641,0.000282457,0.000260057,0.000224121,0.000269709,0.000293612,0.000270155,0.000298554,0.000314481,0.000331973,0.000296114,0.000303053,0.000346314,0.000292836,0.000327285,0.000299188,0.000382877,0.000343271,0.000413513,0.00046416,0.000493761,0.000481701,0.000442204,0.000306016,0.000409944,0.000381373,0.000470272,0.000461048,0.000547631,0.000498414,0.000490674,0.000492053,0.00046797,0.000478375,0.000527335,0.000670452,0.000606081,0.000517636,0.000525551,0.000526525,0.000531867,0.000514923,0.000557973,0.00049035,0.000463225,0.00045155,0.000517645,0.000624964,0.000612478,0.000588031,0.000616627,0.000619348,0.000609829,0.000523773,0.000533889,0.000517474,0.000478412,0.000565853,0.000579845,0.000674442,0.000514473,0.000458211,0.000463953,0.000482923,0.000515979,0.000588555,0.00053982,0.00051007,0.000456474,0.000510382,0.000507144,0.000581326,0.000518279,0.000513181,0.000503234,0.00057351,0.000571877,0.000600401,0.000703281,0.000718095,0.000649144,0.000541165,0.000529431,0.000499686,0.000563291,0.000587525,0.000548699,0.000522496,0.000521566,0.000600809,0.000852255,0.000749575,0.000599464,0.000588536,0.000576486,0.000683706,0.000872214,0.000734344,0.000624105,0.000523743,0.000532242,0.000540008,0.000820491,0,0.000620929,0.000528414,0.000507906,0.000540819,0.000723487,0.000879588,0.000854052,0.000877668,0.000673854,0.000743239,0,0,0,0,0 +SOURCES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000392372,0.000392188,0.000392634,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000341265,0.000340304,0.000339926,0,0,0,0,0,0,0,0,0,0.000312933,0.000310994,0.000331792,0,0,0,0,0.000502743,0.000524487,0.000545691,0,0,0,0.00046341,0.000496098,0.000477057,0,0,0,0.000568622,0.000676273,0.000507449,0.000548787,0,0,0.000969847,0,0.00064,0.000506467,0.000557744,0.000536141,0.000518538,0.000580619,0,0.000416652,0.000345732,0.000410635,0,0,0.000446012,0.000537403,0.000381449,0,0,0,0,0.000391278,0.000564747,0.000572891,0.00052682,0,0,0,0,0,0,0,0,0,0,0.000416302,0,0,0,0,0,0,0,0,0.000559722,0.000467181,0.000452158,0.000409226,0,0,0.000462727,0.000462535,0.000422009,0.000316776,0,0,0.000375281,0.000448196,0.000424448,0.000385035,0.000338763,0.000354577,0.000382493,0.000310037,0.000233607,0.000246036,0.000371647,0.000520536,0.000486826,0.000399714,0.000414128,0.000440603,0.000516727,0.000656187,0.000705986,0.000645858,0.000802779,0.000831285,0.000855583,0.000730279,0.000586634,0.000560587,0.000462238,0.000459371,0.00046269,0.000517287,0.000579081,0.000545289,0.000441345,0.000435521,0.000484608,0.00054199,0.000519163,0.000584366,0.000588019,0.000500524,0.000408216,0.000353378,0.000445629,0.000443058,0.000403421,0.000390672,0.000375612,0.000402969,0.000458797,0.000444693,0.000410126,0.000342035,0.000360672,0.000379718,0.000526198,0.000506404,0.000477516,0.000442663,0.000451163,0.000460756,0.000512404,0.000467444,0.000446567,0.000406072,0.00042315,0.000405146,0.000442187,0.000425633,0.000402458,0.000413387,0.000457507,0.000489379,0.000510813,0.000431948,0.000415021,0.000364899,0.00038786,0.000397233,0.000448228,0.000453164,0.000424647,0.000415349,0.000452802,0.000449478,0.000510503,0.000407434,0.000430565,0.000394013,0.000439018,0.000449502,0.000453712,0.000433042,0.000447902,0.000505848,0.000517678,0.000514818,0.000488343,0.000432326,0.000445381,0.000463027,0.000446744,0.000470659,0.000471953,0.000492577,0.000440976,0.000382778,0.00042359,0.000430179,0.00045497,0.000413662,0.000411338,0.000410003,0.000436144,0.000439687,0.000483007,0.000474395,0.000485257,0.000406525,0.000425456,0.000418759,0.000447001,0.000494264,0.000511894,0.000439442,0.00041953,0.000407071,0.000432333,0.000483435,0.000464455,0.00045945,0.000437092,0.000446476,0.000442937,0.000445005,0.000454105,0.000438985,0.0004335,0.000416087,0.000429343,0.000398793,0.000382337,0.000338785,0.00039057,0.000409466,0.000444374,0.000461847,0.000457841,0.000423331,0.000419399,0.000475149,0.00048379,0.000486052,0.000438523,0.000467321,0.000531758,0.000551233,0.000557412,0.000554536,0.000500048,0.000501169,0.000480178,0.000429567,0.00041063,0.000391053,0.000400937,0.000413155,0.000425357,0.000468952,0.00049194,0.000509774,0.000483879,0.000435627,0.000392042,0.000453355,0.00045784,0.000489312,0.000460948,0.000415237,0.000364022,0.000309765,0.000254285,0,0,0,0,0,0 +INSTRUMENTATION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000346105,0.000344436,0.000344139,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000335285,0.000333207,0.000331792,0,0,0,0,0,0.00024039,0.000230869,0,0,0,0.000540645,0.000534259,0.000494726,0,0,0,0.000672008,0.00052021,0.000507449,0,0,0,0,0,0,0,0,0,0,0.000696743,0.00044843,0.000486094,0.00028811,0,0,0,0,0.000358269,0.000890047,0.001094269,0.00122524,0,0,0,0.000332204,0.000954818,0.001724138,0.002137309,0.001080692,0.000603051,0.000380005,0.000966221,0.001207554,0.00138058,0.000780784,0.000647471,0.000837521,0.001248907,0.001306892,0.001320655,0.00095711,0.000773081,0.00051222,0.000427201,0.000671178,0.001465649,0.001119445,0.000895429,0.000452158,0.000446429,0.000652905,0.001156324,0.001341909,0.000825955,0.000681708,0.000601875,0.000705111,0.000396,0.000500375,0.001394388,0.001208045,0.000936918,0.000471323,0.000391901,0.001511757,0.001847307,0.001693648,0.000971841,0.000320968,0.00045337,0.000781872,0.001114355,0.000800647,0.000705912,0.000524596,0.0005293,0.000702042,0.000854002,0.00084166,0.000718316,0.000758584,0.000883857,0.001045043,0.000974478,0.00080943,0.000711926,0.000627255,0.000569015,0.000961688,0.001063162,0.000861369,0.000626599,0.000392594,0.00051964,0.000666388,0.00093957,0.000742653,0.000550891,0.000360708,0.000277654,0.000397353,0.000545078,0.000623469,0.0005659,0.000502464,0.000441551,0.000404821,0.000619701,0.000536489,0.000519106,0.000444028,0.000395791,0.000375354,0.00044519,0.000521107,0.000562638,0.000589666,0.000550207,0.000465586,0.000517906,0.000641598,0.000722475,0.000670099,0.000627691,0.000507554,0.000503611,0.000513726,0.000541376,0.000608003,0.000635484,0.00075396,0.000688859,0.000642109,0.000563935,0.000663905,0.000705089,0.000762596,0.000589113,0.00050298,0.000557285,0.000611166,0.000655431,0.000689977,0.000737872,0.000647979,0.000426848,0.000593587,0.000633682,0.000823585,0.000551406,0.000461187,0.000409181,0.000458894,0.000488505,0.000480542,0.000388267,0.000354795,0.000374568,0.000723686,0.000793618,0.000847588,0.000435566,0.000380368,0.000365069,0.000488248,0.000486803,0.000506234,0.000258539,0.000323739,0.000339109,0.000497432,0.000479725,0.000545547,0.000334139,0.00031987,0.000278476,0.000513313,0.000565804,0.000654426,0.000424182,0.000283941,0.000213561,0.000332026,0.000346361,0.000401717,0.000300879,0.000259023,0.000208053,0.000293023,0.000287779,0.000329628,0.000237655,0.000268086,0.000254412,0.000308644,0.000305965,0.000312642,0.000298599,0.000314366,0.000257305,0.000313582,0.000326152,0.000365911,0.000354783,0.000285561,0.000266542,0.000321488,0.000386547,0.000411726,0.000506503,0.000649528,0.000526196,0.000330349,0.000315065,0.000315449,0.000353768,0.000345685,0.000300702,0.000236551,0.000291053,0.000297606,0.000303681,0.000138335,0.00019491,0.000260044,0.000297056,0.000298746,0.0002889,0.000176195,0.000252771,0.00020189,0.000326656,0.00030583,0.000340679,0.000220453,0.00026343,0.000274417,0.000288254,0.000216142,0,0,0,0,0,0 +MERIT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000127182,0.000132521,0.000123179,9.97E-05,3.63E-05,0,0,0,2.34E-05,0,3.45E-05,0,2.88E-05,0,0,0,0,0,3.35E-05,3.20E-05,1.89E-05,0,0,0,0,0,0,1.76E-05,0,0,0,0,2.30E-05,1.81E-05,2.79E-05,0,3.44E-05,2.88E-05,1.97E-05,0,0,0,0,2.97E-05,3.31E-05,2.74E-05,2.36E-05,3.38E-05,4.25E-05,3.28E-05,1.54E-05,1.47E-05,0,0,0,0,0,1.20E-05,0,2.04E-05,0,2.94E-05,2.07E-05,1.98E-05,0,0,0,2.47E-05,2.69E-05,2.35E-05,2.23E-05,0,0,0,1.94E-05,1.72E-05,1.80E-05,1.81E-05,5.20E-05,4.55E-05,3.71E-05,1.99E-05,1.60E-05,1.87E-05,0,1.89E-05,1.38E-05,2.12E-05,2.31E-05,2.05E-05,0,0,3.54E-05,5.97E-05,8.28E-05,0.000118549,0.000234839,0.000270417,0.000311933,0.000418327,0.00045674,0.000536888,0.0005899,0.00061793,0.000550735,0.000676012,0.000730431,0.000841108,0.000905536,0.000845824,0.000752939,0.000773637,0.000768999,0.000801578,0.000824882,0.000907473,0.000856979,0.000822906,0.000854226,0.000942997,0.001114905,0.00115806,0.00094282,0.00083304,0.00074645,0.00075063,0.000799571,0.000875127,0.000874838,0.0007802,0.000829265,0.000833673,0.000908999,0.000847242,0.000774539,0.000710049,0.00076875,0.00077589,0.000799635,0.000825671,0.000856142,0.000886577,0.000855849,0.000856133,0.000874718,0.001054449,0.001031392,0.000929018,0.000828743,0.000808552,0.000834698,0.001005859,0.001205148,0.000989095,0.000801999,0.000660824,0.000667662,0.000849419,0.000781618,0.00075474,0.000681534,0.000683442,0.000669585,0.000789623,0.000794755,0.000834451,0.000649647,0.000546712,0.000571723,0,0,0,0,0 +CREATE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000154014,0.000147288,0.000298591,0.000254995,0.000206692,0.000116803,0.000246036,0.000320968,0.000386204,0.000265542,0.000175632,0.000157369,0.000156343,0.000154756,0.00015589,0.00012621,0.000134681,0.000137227,0.000144942,0.000139281,0.000162981,0.000137843,0.000141456,0.000145862,0.000182953,0.00020034,0.000184745,0.00014477,0.000149269,0.000147115,0.000153207,0.000147223,0.000173213,0.000154974,0.000214841,0.000195328,0.0002298,0.000207627,0.000224877,0.000204247,0.000192381,0.000199673,0.000214008,0.000225697,0.000250784,0.000235182,0.000229519,0.000195087,0.000198259,0.000205182,0.000225018,0.000270115,0.000269897,0.000305135,0.000292351,0.000319517,0.000290293,0.000296518,0.000254969,0.000304395,0.000297188,0.000325706,0.000302433,0.000338369,0.000266427,0.000303027,0.000301581,0.000314235,0.000304975,0.000324877,0.000304905,0.000336715,0.000301318,0.000293516,0.000272388,0.000292058,0.000280395,0.000263858,0.000265943,0.00029092,0.000295014,0.000350971,0.000394601,0.000373014,0.000317897,0.000374615,0.000400559,0.000463575,0.000427268,0.000373884,0.000297947,0.000343223,0.000347788,0.000446218,0.000426819,0.000428396,0.000349689,0.000387111,0.000395707,0.00043463,0.000433285,0.000382458,0.000369156,0.000399551,0.000442011,0.000494486,0.000555858,0.000449425,0.000386372,0.000463225,0.000533852,0.00060905,0.000678591,0.000507066,0.000438848,0.000455555,0.000516256,0.000555899,0.000623363,0.000483899,0.000459977,0.000525844,0.000568966,0.000616955,0.00061021,0.000541269,0.000494125,0.000489999,0.000477607,0.000505679,0.00056463,0.000552586,0.000461433,0.000434499,0.000499832,0.000521551,0.000574381,0.000628732,0.000588943,0.000527645,0.00052701,0.000534154,0.000578359,0.000601801,0.00052838,0.000526562,0.000553327,0.00057315,0.000594443,0.000649528,0.000608376,0.000599522,0.000609753,0.00062791,0.000649322,0.000704415,0.000624646,0.000627769,0.000644642,0.000668109,0.000685403,0.000694019,0.000650615,0.000619461,0.000676837,0.000687692,0.000718891,0.000694262,0.000695569,0.000617408,0.000667723,0.000682235,0.000734336,0.000727496,0.000660807,0.000548834,0.000550694,0.000457712,0,0,0,0,0,0 +MANUFACTURING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00036342,0.000454472,0.00053852,0.000429198,0,0,0.000323697,0.000685647,0.000603221,0.00063334,0.000559858,0.00060106,0.00065883,0.000782582,0.001045652,0.001165619,0.000839574,0.000516331,0.000411827,0.000378237,0.000428759,0.000448529,0.000489421,0.000303692,0.000306094,0.000311048,0.000358092,0.000407894,0.000379244,0.000285303,0.000246239,0.000312268,0.000453406,0.000474615,0.000591185,0.000337797,0.000347279,0.000330476,0.000349449,0.000331251,0.000310108,0.000271204,0.000375255,0.000453731,0.000481636,0.000494434,0.000479584,0.000441916,0.000367272,0.000393234,0.000521375,0.000589777,0.000625888,0.000535906,0.000479121,0.000474416,0.000523646,0.000549825,0.000592681,0.000564785,0.000639961,0.000663767,0.000772248,0.00082279,0.00083375,0.000814125,0.000565713,0.000608789,0.000579005,0.000772883,0.000817901,0.001176602,0.000708305,0.000662873,0.000532549,0.000618839,0.000618462,0.000706965,0.000485589,0.000540311,0.000572228,0.000723307,0.000729206,0.000760567,0.000416344,0.000391665,0.000442242,0.000472744,0.000494009,0.000476603,0.000330439,0.000326121,0.000305957,0.000415404,0.000434046,0.000493165,0.000346433,0.00041374,0.00031781,0.000387785,0.000361516,0.000469621,0.000402036,0.00041896,0.000364893,0.000395197,0.000387991,0.000380452,0.000351189,0.000367828,0.000405935,0.000465038,0.000496945,0.000539343,0.000536468,0.000388486,0.000361559,0.000468213,0.000501228,0.000525342,0.000396017,0.000325322,0.000374202,0.000423016,0.000464311,0.000452186,0.000402051,0.000353926,0.000551699,0.000526662,0.00050592,0.000410066,0.000422583,0.000475173,0.000453258,0.000420813,0.000393324,0.000439191,0.00043384,0.000399394,0.000340463,0.00032962,0.00034553,0.000353704,0.00034324,0.000365344,0.000385958,0.000381181,0.00034359,0.000344032,0.000334839,0.000391761,0.00043901,0.000385477,0.00032357,0.000306513,0.000333352,0.000455037,0.000408446,0.000404701,0.00035164,0.000345321,0.000331378,0.00050657,0.000400936,0.000334608,0.000361187,0.000390566,0.000436011,0.000513481,0.000392565,0.000383564,0.000443705,0.000471469,0.000561004,0.000731079,0.00064358,0.000636188,0.000560239,0.000588737,0.000553327,0.000675389,0.000821544,0.000742045,0.000881971,0.000610283,0.000857584,0,0,0,0,0 +CONTEXT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000179574,0.000166848,0.000162017,0,0,0,0,0,0,0,0,0.000224082,0.000303694,0.000352956,0.000367217,0.000333532,0.000283972,0.000235692,0.000279029,0.000287753,0.000315869,0.00025074,0.000208367,0.000235761,0.000392389,0.000393747,0.000393525,0.000243864,0.000282647,0.000249797,0.000292098,0.000321907,0.00034352,0.000298933,0.000224712,0.00022057,0.000282819,0.000343127,0.000388861,0.000413039,0.000389926,0.000273997,0.000303585,0.000305931,0.000347606,0.000317231,0.000293013,0.000223781,0.000305932,0.000345061,0.000365481,0.000333509,0.000252575,0.000378412,0.000392316,0.000379229,0.000319517,0.000307171,0.000293917,0.000347927,0.000379126,0.000398386,0.000384439,0.000378517,0.000338369,0.000350903,0.000345641,0.000392791,0.000399717,0.00039434,0.000324877,0.000316197,0.000330843,0.000375956,0.000369224,0.000380209,0.000348847,0.000331376,0.000379296,0.000439254,0.000464533,0.000455045,0.000424755,0.000404226,0.000398592,0.000405953,0.00040467,0.000405711,0.000420834,0.000395511,0.000423229,0.000431693,0.000457946,0.000461048,0.000460259,0.000399282,0.000401976,0.00043953,0.000438659,0.000418854,0.000405735,0.000424164,0.000434706,0.000444077,0.000474985,0.000499481,0.000505166,0.00048476,0.000432286,0.000523433,0.000481754,0.00048195,0.000411807,0.000412517,0.000439821,0.000584302,0.000518194,0.000515457,0.000449075,0.000499797,0.000531889,0.000658479,0.000609259,0.000594651,0.000492636,0.00046146,0.00045195,0.000646449,0.000577906,0.000586189,0.000494441,0.00051359,0.000488756,0.000653489,0.000662236,0.000656111,0.000566935,0.000518828,0.00045668,0.00073332,0.000648759,0.000629699,0.000516047,0.000529025,0.000417721,0.000705551,0.000567423,0.000565922,0.000490036,0.000524909,0.000366965,0.00040354,0.000407524,0.000477039,0.000485719,0.000511994,0.00045874,0.000459042,0.000456927,0.000496194,0.000499577,0.000509811,0.000464243,0.000451587,0.000443003,0.000495273,0.000500256,0.000511454,0.000452322,0.000437419,0.000429603,0.000487582,0.000514542,0.000546705,0.0005351,0.000450956,0.000462028,0.000387207,0.00041957,0,0,0,0,0,0 +TOPICS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000715069,0.000715137,0.000714933,0,0,0,0.000564122,0.000564069,0.00056391,0,0,0,0,0,0,0,0,0,0.000474539,0.000474591,0.000474158,0,0,0,0.00055841,0.000558285,0.000558264,0,0,0,0,0,0,0,0,0,0.000403313,0.000402178,0.000432633,0,0,0,0.000279783,0.000279166,0,0,0,0,0.0004694,0.000444277,0.00044239,0,0,0,0,0.000480885,0.00048078,0.000482727,0,0,0,0.000540645,0.000496098,0.000494726,0,0,0,0,0,0.000507449,0.000768302,0.000634417,0,0,0,0,0.000584385,0.000662321,0.000584881,0,0,0.000672646,0.000729141,0.000547408,0.000342196,0,0,0.000648745,0.000788191,0.000635748,0.000486342,0,0,0.000588502,0.00096041,0.000697628,0.000649276,0,0,0,0.000709471,0.000690918,0.000734328,0,0,0,0.000380865,0,0,0,0,0,0.000406884,0.000402459,0.000388365,0,0,0,0.000467181,0.000417377,0.000446429,0,0,0,0.00072684,0.000811557,0.000855297,0.000551826,0.000495,0.000531649,0.000871492,0.000897871,0.00077007,0.000618611,0.000317253,0.000637488,0.000710503,0.000876025,0.000799616,0.000793973,0.000470162,0.000368808,0.00052084,0.000637757,0.000618265,0.000579678,0.000453168,0.000567944,0.000658102,0.000699859,0.000635187,0.000601893,0.000532822,0.000593046,0.000641793,0.000675895,0.000636359,0.000612945,0.000513592,0.000565293,0.000658003,0.000701461,0.00064037,0.000574578,0.000494496,0.000461047,0.000627335,0.000667371,0.000654774,0.000575373,0.00051171,0.000557037,0.000615035,0.000660144,0.000611861,0.000565066,0.000486564,0.00048964,0.000611094,0.000625165,0.000493377,0.000431204,0.000395791,0.00048761,0.000486927,0.000515163,0.000495066,0.000516987,0.000484385,0.000494197,0.000563057,0.000630662,0.000567476,0.000508581,0.000412755,0.000407581,0.000428882,0.000516094,0.000484001,0.00043704,0.000385829,0.000324877,0.000369838,0.00046592,0.000515558,0.000483369,0.0004327,0.000381298,0.000484319,0.000538023,0.000590154,0.000455149,0.000414689,0.000277187,0.000384977,0.000496642,0.000510426,0.000457266,0.000418591,0.000348503,0.000372416,0.000444106,0.000488634,0.00042571,0.000390117,0.000343244,0.000404789,0.000475577,0.000500346,0.000438659,0.000372559,0.000350353,0.000380835,0.000459785,0.000479494,0.000367222,0.000352425,0.000294769,0.000366263,0.000418956,0.000487986,0.000426167,0.000391492,0.00032906,0.000391892,0.000465265,0.000477387,0.000395357,0.000383596,0.000343288,0.000365165,0.000445907,0.000520212,0.000436704,0.000381386,0.000322858,0.00035666,0.000428728,0.000495363,0.000431395,0.000402436,0.000341801,0.000374825,0.000435868,0.00054499,0.000461468,0.000368609,0.000342898,0.000297607,0.000424819,0.000464579,0.00046474,0.000393965,0.000358366,0.000337988,0.000509761,0.000547194,0.000425567,0.00036874,0.000341584,0.000358574,0.000431184,0.000516384,0.000529876,0.000445689,0.000417014,0.000401534,0.000500048,0.000511338,0.000498374,0.000450022,0.000430693,0.000418197,0.000515825,0.000539434,0.00051823,0.000432424,0.000406858,0,0.000460211,0.000507335,0.000461295,0.000409521,0.000392692,0.000410581,0.000543117,0.000678667,0.000742045,0.000791623,0.000724711,0.000686067,0,0,0,0,0 +SIMULATIONS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000154014,0.000235661,0.000242605,0.000327851,0.000232528,0.000221926,0,0,0,0,0.000248307,0.000212586,0.000253465,0.000233445,0.000224771,0.000197203,0.000223449,0.000235573,0.000221676,0.000223844,0.000260142,0.00024363,0.000204326,0.000205439,0.00021676,0.00021942,0.00021061,0.00023439,0.000292446,0.000289966,0.000284035,0.000271953,0.000284964,0.000271204,0.000352339,0.000351997,0.00039979,0.000373025,0.000380914,0.0003008,0.000279826,0.00029951,0.000343274,0.000354196,0.000357957,0.000385544,0.000347148,0.000317016,0.000307226,0.000318995,0.000329491,0.000319227,0.000367282,0.000400242,0.00039164,0.000383969,0.00036793,0.000330332,0.000369174,0.000397353,0.000383014,0.000368421,0.000357594,0.000430652,0.000412636,0.000423765,0.000435454,0.000432224,0.000407107,0.000396391,0.000420656,0.000462005,0.000424333,0.00040999,0.000398652,0.000415777,0.000441835,0.000412278,0.000406384,0.000430514,0.000438346,0.000454667,0.000391393,0.00042417,0.00043431,0.000484101,0.000481701,0.000473438,0.000407059,0.00038717,0.000458177,0.000510093,0.000562867,0.000533589,0.000407543,0.000330262,0.000348307,0.000397218,0.000459637,0.000457505,0.000483455,0.000428436,0.000502652,0.000495709,0.000507932,0.000483806,0.00046537,0.00042086,0.000444269,0.000481754,0.000496779,0.000504174,0.00047852,0.000434369,0.000455009,0.000441726,0.000473901,0.000489523,0.000525617,0.000465903,0.000466822,0.000492314,0.000521487,0.000525108,0.000549358,0.000503755,0.000475549,0.000495697,0.000524685,0.000515979,0.000457765,0.000341035,0.000359169,0.000455475,0.000552584,0.000592148,0.000577357,0.000403578,0.000348792,0.00043188,0.000487613,0.000517556,0.000521677,0.000401201,0.000406084,0.000478763,0.00057374,0.00058468,0.000585581,0.000409166,0.000394954,0.000399995,0.000472859,0.000492889,0.000527667,0.000465262,0.000620288,0.000615638,0.000642889,0.0006019,0.000599727,0.000450175,0.000439234,0.000426286,0.000529115,0.000541837,0.00058032,0.000465471,0.000462517,0.000446036,0.000581856,0.000583911,0.000617343,0.000480989,0.000439794,0.000439627,0.000361393,0.000394141,0,0,0,0,0,0 +12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000457143,0.000818139,0.000766898,0.001852123,0.00233342,0.002554723,0.001434978,0.00104163,0.001325305,0.001403004,0.001773948,0.001418663,0.00141913,0.000931499,0.001017197,0.000932155,0.001888912,0.001746928,0.001358081,0.000569132,0.000531526,0.000572891,0.000574713,0.000729813,0.00076549,0.000673998,0.000621826,0.000579733,0.001304159,0.001278315,0.001240068,0.000609385,0.000473381,0,0,0,0.000658013,0,0.000402459,0,0,0.000610687,0.000895556,0.000778634,0.000626065,0,0,0,0.000601546,0.000495573,0.000389547,0.000348454,0,0.000363,0.000469102,0.000572695,0.000489748,0.000333697,0.000265119,0.000223943,0.000364279,0.000348792,0.000385451,0.000405959,0.000473005,0.000470162,0.00038356,0.00021197,0.000165651,0.000170556,0.000191477,0.000235647,0.000287916,0.00026018,0.000244722,0.000187572,0.000206434,0.000178652,0.00024363,0.000217424,0.00020133,0.000163067,0.00016218,0.00018844,0.000299881,0.00031377,0.000251588,0.000210014,0.000198342,0.000226295,0.000309948,0.000274996,0.000266541,0.000240818,0.00023402,0.00024094,0.000237669,0.000373102,0.00032396,0.000272896,0.000207575,0.000212202,0.000231326,0.000252471,0.000217256,0.000217934,0.000221212,0.000233054,0.000284147,0.000336675,0.000277395,0.000246843,0.000237238,0.000293669,0.000384954,0.000430261,0.000335381,0.000293345,0.000288329,0.000315748,0.000380665,0.000308665,0.000276986,0.000255976,0.000323867,0.000340438,0.000416823,0.00032749,0.000346504,0.00027091,0.000277209,0.000249689,0.000277861,0.000201092,0.000234999,0.000248014,0.000283881,0.000276923,0.000301117,0.000240611,0.00026857,0.000253721,0.000378908,0.000403135,0.000522755,0.000444589,0.000409944,0.000256897,0.000328053,0.000311179,0.000438417,0.000523197,0.000501998,0.000374568,0.000276941,0.000241392,0.000276911,0.000367152,0.000491134,0.000385502,0.000382972,0.000365948,0.000491282,0.000648501,0.000586538,0.000440724,0.000426879,0.000437462,0.00051572,0.000752844,0.000732429,0.000566897,0.000469385,0.000448328,0.000441815,0.000499797,0.000687857,0.000595506,0.000456331,0.000410963,0.0003878,0.0005595,0.000591287,0.000546138,0.00043872,0.000425215,0.00047103,0.000639595,0.000672951,0.000652242,0.000505417,0.000520273,0.000523712,0.000560493,0.0006436,0.000689006,0.000587732,0.000575448,0.000539435,0.000606699,0.000738681,0.000777674,0.00063758,0.000555064,0.000530872,0.000535817,0.000702738,0.000699142,0.000666345,0.000581538,0.000568764,0.000600809,0.000697893,0.000642078,0.000600475,0.00062068,0.000622632,0.000626872,0.000649471,0.000591593,0.000552593,0.000539321,0.000549514,0.000542528,0.000528586,0.000512713,0.000523506,0.000519407,0.000530828,0.000539347,0.000551133,0.00062732,0.000669241,0.000744297,0.000584855,0.000571723,0,0,0,0,0 +FUNCTIONAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000719011,0.000719166,0.000719321,0,0,0,0,0,0,0,0,0,0.00118991,0.001189343,0.001188872,0,0,0,0,0.001258141,0.001258141,0.001258607,0,0,0,0.000686538,0.00068701,0.000685871,0,0,0,0.000953425,0.000953516,0.000953243,0,0,0,0.001504325,0.001504184,0.001503759,0,0,0,0.001334066,0.001333438,0.001334956,0,0,0,0.001131593,0.001131717,0.001130685,0,0,0,0.001042365,0.001042132,0.001042093,0,0,0,0.001626692,0.001618848,0.001617455,0,0,0,0.001303012,0.001330281,0.001328801,0,0,0,0.001203066,0.001172497,0.00117034,0,0,0,0.001050561,0.00104405,0.001061735,0,0,0,0,0.001486371,0.001464193,0.001469168,0,0,0,0.001158525,0.001183003,0.001095464,0,0.000815062,0.001204687,0.000827087,0.000624252,0.001014897,0.001371968,0.001480307,0.000994126,0,0,0.000822857,0.000935016,0.001010911,0.000828581,0,0,0,0.000624978,0.00060503,0.000581734,0,0,0.000405466,0.000967326,0.000953622,0.001134798,0.000510517,0,0,0.000746985,0.000730848,0.000763854,0,0,0,0.000567577,0.000552734,0.000541084,0,0,0.000551141,0.00087599,0.000801107,0.000707714,0,0,0,0.000773081,0.000841504,0.000854402,0,0,0,0.000661839,0.000660847,0.000669643,0,0,0,0.000429496,0.000324623,0.000380132,0,0,0,0.000398396,0.000375473,0.000449207,0.00038295,0.000429225,0,0.000297119,0.000268648,0.000369054,0.000253395,0.000285455,0.000250789,0.000320983,0.000361672,0.000400333,0.000406562,0.000435041,0.000422014,0.0003918,0.000429979,0.000436958,0.000477535,0.000419989,0.000387884,0.000392935,0.000449912,0.00046136,0.00049608,0.000435999,0.00042397,0.000383835,0.000400835,0.000454456,0.000447802,0.000483321,0.000414555,0.000375255,0.000333685,0.000343127,0.000367746,0.000394682,0.000363931,0.000352698,0.000350447,0.000402162,0.000397029,0.000443695,0.000389399,0.000427479,0.000376872,0.000388951,0.000339833,0.000327482,0.000273623,0.000286591,0.000324949,0.000347511,0.000368884,0.000349365,0.000322529,0.000321367,0.000379126,0.000399667,0.000387109,0.000372811,0.000230706,0.000422384,0.000402458,0.000392791,0.000339519,0.000350367,0.000382088,0.000409363,0.000428725,0.000418804,0.000384366,0.000356091,0.000340734,0.000424841,0.000383419,0.000380985,0.000415264,0.000446695,0.000530445,0.000526135,0.00049451,0.000426848,0.000476587,0.000492005,0.000522755,0.00048212,0.00044031,0.000474067,0.000510093,0.000554859,0.000535149,0.00046537,0.000432171,0.000460263,0.000508399,0.000535692,0.000532151,0.000549588,0.000474415,0.000501289,0.000517261,0.000531596,0.000516915,0.000443825,0.000472278,0.000466718,0.000467501,0.000428565,0.000420466,0.000369203,0.000448908,0.000469928,0.000460436,0.000441136,0.000423147,0.000426026,0.000465903,0.000491464,0.000473505,0.000463112,0.000438827,0.000395538,0.000410864,0.000444589,0.000469651,0.000467736,0.000443873,0.000403535,0.00042675,0.000531271,0.000510411,0.000489281,0.000471125,0.000456331,0.000452432,0.000530335,0.000580221,0.00051603,0.000482097,0.000398868,0.000431881,0.000442146,0.00051654,0.000437362,0.000429502,0.000357893,0.000401827,0.000419485,0.000457406,0.000396575,0.000408052,0.000406759,0.000584839,0.000515696,0.000428622,0.000433658,0.000441393,0.000497087,0.000543961,0.00051061,0.000488511,0.000462506,0.000443321,0,0.000502288,0.000489408,0.00044721,0.000437743,0.000427679,0.000420146,0.00039882,0.000428632,0.000389224,0.000395811,0.000355999,0,0,0,0,0,0 +FLUID,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000861866,0.000862069,0.000861259,0,0,0,0,0,0,0,0,0,0,0.000962108,0.000962108,0.000962464,0,0,0,0,0,0,0,0,0,0.000858083,0.000858164,0.000857919,0,0,0,0.000564122,0.000564069,0.00056391,0,0,0,0.00070627,0.000705938,0.000706742,0,0,0,0.000620551,0.000620619,0.000620053,0,0,0,0.000819001,0.000818818,0.000818787,0,0,0,0.000622988,0.000619984,0.000619451,0,0,0,0.000620482,0.000618735,0.000618047,0,0,0,0.000531587,0.000530415,0.00052944,0,0,0,0.000692923,0.000710843,0.000663585,0,0,0,0,0.00041531,0.000437072,0.000419762,0,0,0,0.00061788,0.000591501,0.000547732,0,0,0,0.001137245,0.001196483,0.00068868,0,0,0,0,0,0.00064,0.000467508,0.000522885,0.000633621,0.000725953,0.000580619,0,0.00034721,0.000403354,0.000581734,0.000591316,0.00068306,0.000689292,0.000824018,0.000667536,0.000648456,0,0,0,0,0,0,0,0.000521295,0.000675432,0.000603051,0.000449097,0.000386488,0.000483022,0.000511326,0.000642998,0.000609385,0.000764693,0.000915865,0.001022785,0.001122557,0.000777651,0.000773081,0.000731743,0.000815566,0.000894905,0.000977099,0.000783611,0.000661839,0.000521721,0.000558036,0.000703129,0.000825946,0.000740364,0.000561649,0.000486934,0.000411809,0.000674454,0.000924001,0.001125844,0.00117029,0.000995821,0.00102676,0.001001561,0.001175702,0.000874269,0.000904276,0.00070082,0.000775013,0.000709507,0.000957115,0.001032662,0.000781259,0.00055217,0.000518774,0.000456398,0.000456793,0.000433846,0.000465263,0.000526038,0.000609609,0.000659097,0.000683266,0.000577017,0.000529152,0.000554686,0.0005767,0.000593865,0.000624439,0.00056874,0.000517873,0.000515968,0.00049577,0.000521414,0.000472146,0.000468796,0.000446868,0.000606331,0.000579223,0.00062464,0.000559898,0.0006016,0.000577142,0.000499183,0.000473977,0.000467868,0.000495138,0.000640002,0.000562322,0.000507669,0.000502458,0.000528986,0.0005525,0.000550754,0.000514751,0.000427981,0.000460591,0.000464876,0.000455693,0.000327731,0.000276217,0.000399176,0.000453468,0.00051926,0.000504055,0.00054985,0.000448377,0.000511359,0.00052078,0.000468343,0.000465265,0.00040865,0.000440418,0.000387614,0.000465799,0.000528794,0.000564638,0.000553693,0.000461661,0.000430831,0.000448218,0.000444591,0.000463394,0.000484579,0.000506886,0.000520088,0.000495502,0.000440092,0.000428894,0.0003896,0.000418607,0.000337824,0.000407857,0.000447517,0.00051253,0.000527348,0.000556241,0.000381216,0.000399447,0.000404294,0.000489397,0.00053817,0.00050854,0.000447246,0.000411384,0.000394577,0.00038116,0.000373802,0.000400735,0.000437999,0.00050571,0.000415477,0.000405579,0.000366585,0.000426956,0.000465265,0.000445064,0.000427083,0.000396383,0.000357808,0.00031537,0.000327932,0.000355935,0.000385183,0.000381386,0.000382234,0.000363421,0.000391214,0.00043592,0.00051686,0.000534556,0.000501933,0.000445005,0.000483285,0.000608593,0.000588322,0.000499832,0.000492016,0.000420618,0.000431191,0.000413118,0.000439391,0.000412695,0.000420986,0.000360031,0.000316241,0.000329257,0.000376997,0.000411737,0,0.000415837,0.000289902,0.000260032,0.000358584,0.000401799,0.000425378,0.000385861,0.000354382,0.000386409,0.000431655,0.000459958,0.000455438,0.000441101,0.000267291,0.000311582,0.000374277,0.000456597,0.000466351,0.000466943,0.000318203,0.000286832,0.000396737,0.00042033,0.000449395,0.000404694,0.000382787,0.000348263,0.000347221,0.000279649,0.000203428,0,0,0,0,0,0 +PROFESSIONAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005336323,0.004131801,0.003514938,0,0,0,0.005108868,0.004693322,0.004227725,0,0,0,0.003757356,0.003059083,0.002956614,0,0,0,0.003152017,0.002518624,0.002452758,0,0,0,0.004271345,0.003618221,0.003604981,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000186619,0.000528204,0.000568402,0.000478894,0.000393657,0.000287182,0.000268664,0.000221285,0.000151407,0.000171173,0.000196613,0.000222953,0.000199394,0.000122266,0.000149986,0.000205841,0.000247254,0.000238767,0.000209994,0.000185928,0.000233141,0.000215711,0.000228691,0.00018603,0.00019583,0.000213708,0.000249797,0.00021321,0.000208292,0.000194252,0.000262614,0.000263456,0.000272131,0.000187189,0.000236096,0.000207627,0.000243234,0.000167111,0.00020987,0.000211898,0.000245606,0.000247113,0.000265788,0.000212049,0.000240995,0.000241642,0.000258796,0.000285332,0.000297345,0.000312211,0.000264332,0.000229842,0.000224779,0.000250951,0.00027004,0.000262705,0.000233722,0.000249713,0.000301031,0.000300343,0.000311944,0.000265312,0.000204694,0.000234373,0.00023391,0.000258853,0.000248236,0.000275839,0.000304905,0.000293647,0.000252941,0.000279539,0.00029225,0.00035696,0.000308718,0.000321577,0.000319729,0.000353092,0.000346502,0.000348977,0.000266276,0.000353831,0.000323867,0.000320945,0.000283354,0.000304118,0.000447476,0.0004498,0.000387994,0.000338482,0.000307747,0.000335443,0.000294642,0.000403863,0.000364893,0.000410358,0.000390195,0.000441854,0.000426444,0.000457696,0.000347361,0.000392919,0.000409895,0.000509438,0.000588176,0.00050846,0.00040764,0.000390534,0.000404096,0.000419504,0.000480583,0.000503431,0.000431389,0.000457996,0.000403575,0.000443889,0.000387297,0.000535889,0.000559913,0.000539747,0.000516039,0.000487998,0.000471602,0.000494823,0.000666264,0.000599069,0.000625673,0.000565611,0,0.000548939,0.000654736,0.000582329,0.000582258,0.000492016,0.000520812,0.00049279,0.000770487,0.000641248,0.000632928,0.000502467,0.000579408,0.000571121,0.000909377,0.000633725,0.000614566,0.000522705,0.000580127,0.000546778,0.000550728,0.000533641,0.000593033,0.000591466,0.000615736,0.000582664,0.000570897,0.000554984,0.000584445,0.000583843,0.000602272,0.000555685,0.000554533,0.000495012,0.00056994,0.000591735,0.000662623,0.000639036,0.000611312,0.000489466,0.000521209,0.0005254,0.000570987,0.000619273,0.00063625,0.000677641,0.000649647,0.000572141,0,0,0,0,0,0 +POPULATIONS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001006615,0.001006832,0.001007049,0,0,0,0.001018569,0.001018809,0.001017852,0,0,0,0.001031255,0.001030764,0.001030356,0,0,0,0,0.000962108,0.000962108,0.000962464,0,0,0,0,0,0,0,0,0,0.000476713,0.000476758,0.000476622,0,0,0,0.000611132,0.000611075,0.000610902,0,0,0,0.000392372,0.000392188,0.000392634,0,0,0,0,0,0,0,0,0,0.0004095,0.000409409,0.000409394,0,0,0,0.000484546,0.00048221,0.000481795,0,0,0,0.00068253,0.000649672,0.000648949,0,0,0,0.000503609,0.000502499,0.000501574,0,0,0,0.000357638,0.000377635,0.000376031,0,0,0,0,0.000459026,0.000415219,0.000419762,0,0,0,0.000540645,0.000477017,0.000459388,0,0,0,0,0,0.000362463,0,0,0,0,0,0.000594286,0.00038959,0.00034859,0,0,0,0,0.00034721,0.00028811,0,0,0.000788146,0.000689292,0.00057323,0,0,0.000561568,0,0,0,0,0,0,0,0,0,0.000380005,0.000463786,0,0,0.000505213,0.000571298,0.00036414,0,0,0,0,0.000406884,0.000475633,0.000582547,0.000559315,0,0,0,0,0.000372024,0,0,0,0.00036342,0.000357085,0,0,0,0,0.000248998,0,0.000128345,0,0,0,0.000129182,0.000163525,0.000184527,0.00016893,0,0.000147523,0.000205913,0.000295411,0.000298473,0.000348856,0.000445917,0.000512727,0.00048669,0.000397959,0.000360224,0.000358151,0.000432526,0.000506493,0.000413891,0.000425259,0.000395736,0.00046269,0.000480338,0.000499802,0.0004539,0.000492515,0.00053192,0.000595025,0.000555959,0.000449424,0.000398171,0.000382517,0.00040766,0.000522586,0.000559898,0.000631308,0.000396421,0.000387121,0.000446688,0.000495874,0.000529433,0.000609159,0.000418872,0.000394608,0.000358682,0.000400747,0.000442,0.000445514,0.000500839,0.000493367,0.000455074,0.000375741,0.000369618,0.000299119,0.000478067,0.000333558,0.000472683,0.000437834,0.000551608,0.000403736,0.000337907,0.000395356,0.00041633,0.000425,0.000415618,0.000394348,0.000369838,0.000440471,0.000456124,0.000471722,0.0004327,0.000436059,0.00047299,0.000511225,0.000422819,0.00041761,0.000413297,0.000496544,0.000571049,0.000594691,0.000555201,0.000460486,0.000412151,0.00041919,0.000542746,0.000588346,0.000533657,0.000478805,0.000435879,0.00046338,0.000567256,0.00056805,0.000568072,0.000490206,0.000468455,0.000398511,0.000433285,0.000459785,0.000504014,0.000509801,0.000534132,0.000507302,0.000480451,0.000398008,0.000417093,0.000421891,0.000420409,0.000424315,0.000402204,0.00039802,0.000463712,0.00047996,0.000476299,0.000461521,0.000496109,0.000557884,0.000520212,0.00041953,0.000405515,0.000381306,0.000395538,0.000534123,0.000491648,0.00047372,0.0004199,0.000429827,0.000473715,0.000443163,0.000396583,0.000358587,0.000426637,0.000427902,0.000469227,0.000460928,0.000477444,0.000500417,0.000499884,0.000499449,0.000469195,0.000457841,0.000511133,0.000467199,0.00042607,0.000403078,0.000419246,0.000407331,0.000435431,0.000391525,0.000420087,0.000417014,0.000437359,0.000508744,0.000475021,0.000466025,0.000444178,0.000446744,0.000447039,0.000426728,0.000440607,0.000403068,0.000360443,0.000339688,0.00033845,0.000562773,0.000527055,0.000554024,0.000465965,0.000449395,0.000423089,0.000384791,0.000439794,0.000565635,0.000632438,0.000966282,0,0,0,0,0,0 +DISTRIBUTED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000354736,0.000656372,0.000618381,0.000483022,0,0,0,0.000436967,0.000499563,0,0,0,0.000610327,0.000548807,0.00066022,0,0,0,0.000506112,0.000626065,0.00063244,0.000552458,0,0,0,0.000389547,0.000506842,0.000551826,0.000363,0.000469102,0.000522895,0.000946846,0.000898415,0.000913188,0.00057852,0.000346065,0.000400465,0,0.000332148,0.000320968,0.000184706,0.000280294,0.000230138,0.000394802,0.000402701,0.000432791,0.000337157,0.000224811,0.000211205,0.000304187,0.000338909,0.000338254,0.000225666,0.000150666,0.000233141,0.00032254,0.000401701,0.000398295,0.000325152,0.00023439,0.000237612,0.000343268,0.000432078,0.000470295,0.000472146,0.000282827,0.000249215,0.000299096,0.000396642,0.00042933,0.000390093,0.000326795,0.000314805,0.000385084,0.000389236,0,0.000409399,0.000343134,0.00028403,0.000312582,0.000376843,0.000368687,0.000345563,0.000305195,0.000278244,0.000275414,0.000368197,0.000425108,0.000496199,0.000387555,0.000401045,0.000404644,0.00040351,0.000413806,0.000384223,0.000476793,0.000396391,0.000423765,0.000394263,0.000434632,0.000421292,0.000476078,0.000454534,0.00042481,0.000407747,0.00043212,0.000489448,0.000470538,0.000368196,0.000350437,0.000382479,0.000487994,0.000481484,0.000566339,0.000352896,0.000364488,0.000383566,0.000612908,0.000654289,0.000659197,0.000346433,0.000404251,0.000394615,0.000625765,0.000662399,0.000770739,0.000313918,0.000322713,0.000330339,0.000528614,0.000584191,0.000605592,0.000378555,0.000269601,0.000358258,0.000577774,0.000693019,0.000759352,0.000631266,0.000344686,0.00034738,0.000615732,0.0006903,0.00078224,0.000513584,0.000334409,0.000313285,0.000458809,0.000576193,0.000693837,0.0007082,0.000497896,0.000477774,0.000554467,0.000606326,0.000671693,0.000654158,0.000507328,0.000365331,0.000436279,0.000498868,0.00056842,0.00057101,0.000441339,0.000346698,0.000361583,0.000471477,0.000484812,0.000543629,0.000418446,0.000375952,0.000320154,0.000442404,0.00047757,0.000569961,0.000382321,0.000304171,0.000289879,0.000460382,0.000493399,0.000583536,0.000390818,0.00036429,0.000369878,0.000408069,0.000417611,0.000434374,0.000347859,0.000342829,0.000378077,0.000437165,0.000463463,0.000452128,0.000426728,0.000399428,0.000366847,0.000421681,0.00042477,0.000479541,0.000444433,0.000401565,0.000372088,0.000368689,0.000416821,0.000450314,0.000547125,0.000370588,0.000277217,0.000279649,0.000292427,0,0,0,0,0,0 +DISSERTATION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002068447,0.002068252,0.002067669,0,0,0,0.001608726,0.001607969,0.0016098,0,0,0,0.003102756,0.003103096,0.003100266,0,0,0,0.003276003,0.003275272,0.00327515,0,0,0,0.002976499,0.002962147,0.002959598,0,0,0,0.003598796,0.003588665,0.003584672,0,0,0,0.004280678,0.004271238,0.004263382,0,0,0,0.004895167,0.004820401,0.00475569,0,0,0,0,0.004437255,0.004436286,0.004281577,0,0,0,0.003552809,0.003663493,0.003533756,0.002234429,0.002363681,0.003833096,0.005737917,0.005826354,0.004820762,0.00428054,0.005128205,0.00804338,0.007317933,0.006259781,0.003931429,0.002844008,0.00278872,0.003509285,0.00399274,0.004238518,0.003452915,0.003715149,0.003140396,0.003524621,0.003970265,0.004623792,0.003608645,0.003260246,0.003178741,0.003607036,0.003828875,0.00430909,0.003123585,0.002667805,0.003388479,0.004315777,0.005268199,0.003857582,0.002881844,0.002518624,0.002901855,0.003864884,0.004975124,0.004601933,0.003490562,0.003161182,0.003240842,0.003829982,0.00443207,0.004886424,0.004067715,0.002970257,0.002451339,0.002602043,0.00290844,0.003419847,0.002798612,0.001868722,0.001843414,0.002790179,0.004469891,0.005230989,0.003655546,0.002874323,0.002467132,0.002534212,0.002391244,0.002838003,0.002376783,0.001892383,0.001240695,0.000975422,0.001031019,0.001101054,0.00111105,0.000813848,0.000747541,0.000836522,0.001131833,0.001057863,0.000870386,0.000369433,0.000262281,0.000210826,0.000225576,0.000261025,0.000283972,0.000278546,0.000242435,0.000217413,0.000243742,0.000257008,0.000343005,0.000288152,0.000312268,0.000252555,0.000298125,0.000284508,0.000506696,0.000411252,0.000392307,0.000311578,0.000331251,0.000354808,0.000391309,0.000343745,0.000311304,0.000286463,0.00031144,0.000337315,0.000594173,0.000472207,0.000405459,0.00031024,0.000329484,0.000357957,0.000528195,0.000378706,0.000452247,0.000425273,0.000480896,0.000425927,0.000501642,0.000645526,0.000531014,0.000464728,0.000349686,0.00036793,0.000382352,0.000451508,0.000479376,0.000495741,0.000471205,0.000464111,0.000284538,0.000412636,0.000532665,0.000488415,0.000374434,0.000313486,0.000310574,0.000465827,0.000463963,0.00044092,0.000362236,0.000327717,0.000316396,0.000433338,0.000517409,0.000521427,0.000446937,0.000389641,0.0003071,0.000426683,0.000562719,0.000632809,0.000509862,0.000448214,0.000336996,0.000435929,0.000451698,0.000489958,0.000388733,0.000369525,0.000282396,0.000410297,0.000475577,0.000557015,0.000465948,0.000380275,0.000326273,0.000348909,0.000459785,0.0005081,0.000420275,0.000387922,0.000313994,0.0003361,0.000413243,0.000477352,0.000395523,0.000361833,0.000305968,0.000299075,0.000416194,0.000484846,0.000440912,0.000374006,0.000314249,0.00028955,0.000423912,0.000454501,0.000452242,0.000374381,0.000309869,0.000169033,0.000366205,0.000452019,0.000509534,0.000414585,0.00038675,0.000311025,0.000474166,0.000492611,0.000549367,0.000393667,0.000371713,0.000213285,0.00031649,0.000421695,0.000493845,0.000388799,0.000347804,0.000262413,0.000438961,0.000487614,0.000356181,0.000297945,0.000266637,0.000269953,0.000322929,0.00036429,0.000339761,0.000338055,0.000317241,0,0.000356556,0.000511338,0.000473101,0.000368785,0.000288912,0.000255329,0.000375146,0.000520218,0.000437431,0.000335733,0.000259084,0.000235991,0.000318203,0.000480444,0.000550502,0.000422731,0.0003378,0.000275928,0.000176363,0.000274592,0.000369623,0.000322672,0.000444998,0,0,0,0,0,0 +WAVE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000800961,0.000801511,0.000800183,0,0,0,0.000953425,0.000953516,0.000953243,0,0,0,0.000940203,0.000940115,0.00093985,0,0,0,0.00070627,0.000705938,0.000706742,0,0,0,0.000876072,0.000876168,0.000875369,0,0,0,0.000632864,0.000632723,0.000632699,0,0,0,0.000657599,0.000654428,0.000653865,0,0,0,0.000744579,0.000742482,0.000741656,0,0,0,0.000559566,0.000530415,0.00052944,0,0,0,0.000938799,0.000910767,0.000929019,0,0,0,0,0.000939911,0.00102712,0.001049406,0.001912412,0,0,0.000965437,0.000973115,0.000936445,0,0.000815062,0,0.000982166,0.00104042,0.000797419,0.000713423,0.000740153,0.001536376,0.001851525,0.001130238,0.000594286,0,0.000662321,0.000779841,0.000985222,0.000812867,0.000717489,0.000729141,0.00060503,0.000615953,0.00067579,0.000945776,0.000770385,0.001074807,0.00085826,0.001134798,0.000561568,0.00064054,0.000543232,0.000604702,0.000564747,0.000649276,0.000718391,0.000677683,0.000630403,0.000425683,0.000518188,0.000541084,0.000627928,0.000664724,0.00087264,0.000914077,0.000764693,0.000582823,0.000852321,0.001122557,0.001316026,0.000732392,0.000585394,0.000427201,0.000559315,0.000793893,0.000615695,0.000661839,0.000556502,0.000669643,0.000753352,0.000881009,0.000832909,0.000792917,0.000811557,0.000886974,0.000858395,0.001254001,0.001094571,0.00112049,0.000930521,0.000808573,0.000751171,0.00048521,0.000582846,0.000620075,0.000654099,0.000639693,0.000692614,0.000722034,0.000678606,0.000605627,0.000530084,0.00052825,0.000487874,0.000547427,0.000552168,0.000517299,0.000498592,0.000483851,0.000494945,0.000369841,0.00041994,0.000434848,0.00050538,0.000465337,0.00049131,0.000447083,0.000537718,0.000508734,0.0005181,0.000480278,0.000466205,0.00043024,0.000554032,0.00059296,0.000541221,0.000486358,0.000448685,0.000500236,0.000575605,0.000545078,0.000539933,0.00047685,0.000484342,0.000450125,0.000458797,0.000467645,0.000410126,0.000376843,0.000371893,0.000369672,0.000424466,0.000495274,0.000513181,0.000453695,0.000442935,0.000428689,0.000488995,0.000462132,0.00047573,0.00042913,0.000424485,0.000384223,0.000380665,0.000383394,0.000400091,0.00041633,0.000416572,0.00039434,0.000396391,0.000341606,0.000348461,0.00041604,0.000435615,0.000485192,0.000527327,0.000611772,0.000558637,0.000524415,0.000445764,0.000438346,0.000374901,0.000468389,0.000535009,0.000508934,0.00047444,0.00043791,0.000394532,0.000300242,0.000284683,0,0.00038494,0.000414142,0.000382249,0.00036073,0.000315164,0.000362129,0.000365886,0.000395707,0.000446669,0.000469773,0.000428436,0.000411384,0.000432709,0.00043525,0.00039089,0.000368418,0.000426573,0.000500984,0.000416189,0.000401872,0.000339644,0.000373328,0.000419829,0.000467441,0.000425456,0.000430747,0.00040033,0.000459223,0.000537888,0.000473667,0.000471869,0.000442097,0.000484287,0.000530764,0.000459096,0.000416105,0.000427325,0.000439642,0.000445746,0.000419485,0.000344682,0.000465174,0.000424511,0.000414108,0.000421419,0.000400777,0.000471549,0.000431701,0.000395264,0.000404299,0.000380245,0.000413563,0.000358721,0.000366887,0.000329969,0.000397839,0.000400676,0.00042879,0.00031559,0.000390048,0.000449877,0.000454572,0.000463017,0.000411237,0.000415257,0.000386409,0.000421546,0.00047866,0.000487539,0.000480969,0.000375146,0.000426881,0.000505228,0.000428127,0.000442682,0.00038464,0.000486509,0.000449968,0.00050003,0.000447951,0.00040717,0.000375262,0.000436898,0.000450956,0.000459228,0.000275347,0.000470427,0,0,0,0,0,0 +TOOL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000193087,0.000209888,0.000194357,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000342824,0.000474876,0.000500781,0.00048521,0.000437135,0.000400465,0.00036209,0.000369054,0.000456112,0.000486953,0.00038356,0.000411827,0.000405845,0.000397964,0.000361971,0.000279151,0.00025242,0.000303033,0.000377375,0.000413511,0.000395458,0.000335364,0.00024363,0.000272435,0.000320485,0.000357952,0.00034821,0.000328846,0.000282647,0.000365557,0.000347532,0.000361499,0.000331251,0.000410683,0.00038356,0.000343745,0.000343859,0.00038405,0.000415254,0.000390093,0.000319368,0.000271082,0.000338222,0.000384927,0.000418445,0.000402969,0.000339278,0.000335672,0.000361354,0.000414679,0.000453646,0.000446018,0.000392894,0.000386759,0.00035467,0.000409567,0.000393568,0.000442191,0.000423969,0.000395734,0.000452035,0.000422725,0.000437834,0.000393734,0.000465258,0.000493864,0.000447439,0.000420743,0.000417776,0.000431221,0.000469948,0.000412186,0.000411106,0.000457506,0.000522971,0.000544777,0.000517186,0.000396519,0.000480304,0.000469135,0.000514975,0.000474527,0.000546398,0.000442723,0.00043696,0.000404461,0.000444385,0.000454654,0.000517823,0.000525424,0.000523818,0.00042772,0.000509145,0.000510241,0.000556992,0.000429572,0.000407637,0.000402211,0.000526592,0.000545612,0.000558638,0.000485736,0.000507854,0.000491754,0.000460893,0.00046821,0.000501962,0.000573094,0.000477991,0.000434816,0.000498145,0.000513833,0.000558056,0.00047027,0.000432551,0.000370472,0.000452301,0.000479495,0.000534119,0.000437092,0.000391918,0.000428491,0.000472687,0.000461555,0.000424911,0.000397228,0.000409078,0.000449542,0.000487558,0.000507221,0.000515043,0.00045298,0.000408512,0.000442726,0.000463466,0.00045697,0.000463201,0.000449386,0.000497038,0.000456002,0.000465679,0.000455321,0.000479833,0.000458698,0.000436601,0.000398245,0.000420941,0.000466462,0.000470819,0.000498323,0.000519256,0.000510251,0.000463053,0.000444122,0.000439716,0.00045751,0.000419605,0.000418367,0.00041548,0.000417878,0.000422668,0.000433466,0.000539272,0.00045296,0.000470865,0.000475935,0.000502815,0.000512294,0.000502288,0.000405151,0.000420213,0.000460561,0.000494636,0.000495934,0.000462952,0.000397377,0.000352822,0.000365695,0.000432284,0,0,0,0,0,0 +EVALUATION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00043161,0,0,0,0,0,0.000401533,0.000401577,0.000401211,0,0,0,0.000521182,0.000521066,0.000521047,0,0,0,0,0,0,0,0,0,0.000496386,0.000494988,0.000463535,0,0,0,0.000615522,0.000669998,0.000640901,0,0,0,0,0.000932981,0.000951138,0,0,0,0,0.001901681,0.001901265,0.002077824,0.005545993,0.005413151,0.004361099,0.00185364,0.001831746,0.00189056,0.002420631,0.00195615,0.001423721,0.001240631,0.001456588,0.001631085,0.002250027,0,0.002078626,0.00123435,0.001043297,0.00096,0.000935016,0.001150347,0.001121022,0.001192637,0.00092899,0.000672646,0.000555536,0.000979573,0.001129248,0.001224869,0.000630517,0.000608199,0.000537403,0.00073111,0.000972684,0.001327343,0.001455774,0.000995926,0.000640273,0.000664408,0.000763854,0.000957854,0.000729813,0.000630403,0.000673998,0.000967285,0.000966221,0.000869439,0.000562458,0.00059707,0.000647471,0.000691865,0.000624454,0.000852321,0.00072636,0.000658013,0.00052895,0.000695156,0.000776729,0.001006768,0.000916031,0.000839584,0.000778634,0.000799972,0.000855655,0,0.000605694,0.000462727,0.000561649,0.000584321,0.000633553,0.000705111,0.000759001,0.000875657,0.000796793,0.000832572,0.000924084,0.000913188,0.001119716,0.000947125,0.00102054,0.000922746,0.000922634,0.000878438,0.001091446,0.001180185,0.000781259,0.00048591,0.000473766,0.000453775,0.000493047,0.000441734,0.000428532,0.000407107,0.000436958,0.000440227,0.000495211,0.000477642,0.000455804,0.000443749,0.000423576,0.000436455,0.000484032,0.000465333,0.000459993,0.00045627,0.000452735,0.000466205,0.000458177,0.000364189,0.000349474,0.000354032,0.000443861,0.000457483,0.000502531,0.000475338,0.000463462,0.000399346,0.000382054,0.000398676,0.000432977,0.000458797,0.000444693,0.000383523,0.000396518,0.000397541,0.000425927,0.000501642,0.000481362,0.000422037,0.000428873,0,0.000589026,0.000637254,0.000509938,0.000457503,0.000425287,0.000421815,0.000418461,0.000503709,0.000454875,0.000414295,0.000417801,0.000475567,0.000506401,0.000576197,0.00053076,0.000477666,0.000396689,0.000394849,0.00040007,0.000440115,0.000413512,0.000455568,0.000427301,0.000468052,0.000441129,0.000466632,0.000407434,0.000430565,0.000429833,0.000505569,0.000517764,0.000586866,0.000505215,0.000506737,0.000399912,0.000494923,0.000483929,0.000561672,0.000355223,0.000426509,0.000421562,0.000460895,0.000468455,0.000518907,0.000551869,0.000482775,0.000380054,0.000404525,0.000423418,0.000494486,0.000486915,0.000418956,0.000319023,0.000424741,0.000447101,0.000512834,0.000497084,0.000448908,0.000386634,0.000341666,0.000377203,0.000428333,0.00064365,0.000639867,0.000475036,0.000369645,0.000414855,0.000456454,0.000618661,0.000496609,0.000414867,0.000371162,0.000400158,0.000469157,0,0.000483285,0.000346698,0.000358587,0.000452354,0.000469684,0.000511884,0.000392957,0.000355939,0.000363342,0.000479863,0.000513029,0.000557366,0.000372881,0.000373158,0.000317633,0.000379598,0.000377616,0.000451286,0.00041834,0.000379009,0.000346349,0.000460842,0.000491694,0.000531399,0.000360904,0.000368977,0.00039324,0.000472816,0.000476839,0,0.000302461,0.000296483,0.000253543,0.000398582,0.000439483,0.000514813,0.000391837,0.000326272,0.000282881,0.000359682,0.000416821,0.000472388,0.000575183,0.00040854,0.000372423,0.000335579,0.000394141,0,0,0,0,0,0 +INTEGRATION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000262301,0.000262243,0.000272846,0,0,0,0.000521336,0.000515179,0.000512395,0,0,0,0,0,0,0,0,0,0,0,0.000457143,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000495317,0.000390209,0.000518188,0.000463786,0.000627928,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000330382,0.000324623,0,0,0,0.000375281,0.000348597,0.000310174,0.000320862,0.000309306,0.000410563,0.000309637,0.000400465,0.000373771,0.000455166,0.000354754,0.00033583,0.000177028,0.000242251,0.000256759,0.000270047,0.000278036,0.000271901,0.000240588,0.000232631,0.000235573,0.000264306,0.000266126,0.000275814,0.000211573,0.000220043,0.000254745,0.000326134,0.000355365,0.000321457,0.000261965,0.000265029,0.000275041,0.000273707,0.000265819,0.000298933,0.000247958,0.000266402,0.000319443,0.00035257,0.000367746,0.000330431,0.000274805,0.000233189,0.00027506,0.000331784,0.000392086,0.000405113,0.000335423,0.000301244,0.000272678,0.000295118,0,0.0003094,0.000301687,0.000258767,0.000281358,0.000336479,0.00038534,0.000394934,0.00035114,0.00022841,0.000306217,0.000371485,0.000427155,0.000427971,0.000365285,0.000282672,0.000326701,0.000354542,0.000363598,0.000351786,0.000359612,0.000330313,0.000395445,0.000409129,0.000446097,0.000417095,0.000371157,0.000339873,0.000410217,0.00044523,0.000470398,0.000470352,0.000464638,0.000298357,0.000355962,0.000395506,0.00047122,0.000461094,0.000473438,0.000375303,0.000411842,0.000366806,0.000460791,0.00046448,0.000558552,0.000454355,0.000475577,0.000422944,0.000473024,0.000489397,0.000516499,0.000542747,0.000509944,0.000478132,0.000456748,0.000463139,0.000498758,0.000566631,0.000525599,0.000459629,0.000490305,0.000509384,0.000550358,0.000565149,0.000501614,0.000448793,0.000510059,0.000563407,0.000622275,0.000595699,0.000545886,0.00048325,0.00055692,0.000560404,0.000625305,0.000574713,0.000539482,0.000469357,0.00048186,0.000511017,0.000532835,0.00059653,0.00051064,0.000458939,0.000483443,0.000509063,0.000515788,0.000498988,0.000486417,0.000507463,0.000513561,0.000503113,0.000496431,0.000498585,0.000453121,0.00043117,0.000464886,0.000489915,0.000498683,0.00050105,0.000458706,0.000493079,0.000414113,0.000486444,0.00048094,0.000538116,0.000454391,0.000479379,0.000484221,0.000496194,0.000478845,0.000486059,0.000445485,0.000494138,0.000494083,0.000514074,0.000514969,0.000505575,0.000452322,0.000415907,0.000396737,0.000440145,0.000468094,0.000513594,0.000545121,0.000488908,0.000428426,0.000447439,0.000444998,0,0,0,0,0,0 +ANALYSES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000357638,0.000377635,0.000376031,0,0,0,0,0.000218584,0.000218536,0,0,0,0,0.000270322,0.000209888,0.000212025,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000349661,0,0,0,0,0,0,0,0,0,0.000450288,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00055063,0.000509,0.000561649,0,0,0,0.000363,0,0.000248998,0.000179574,0.000243855,0.000235661,0.000261267,0.000327851,0.000322956,0.000315369,0,0.000320968,0.000402996,0.000368808,0.000429996,0.000433454,0.000471398,0.000500989,0.000565553,0.000528504,0.000471385,0.000489444,0.000447615,0.000452663,0.000445063,0.000506493,0.000487239,0.000437586,0.000419599,0.000441225,0.000524676,0.000648019,0.000642771,0.000524497,0.000478556,0.000488698,0.000569928,0.000658639,0.000564315,0.000508667,0.000458027,0.000483876,0.00051171,0.000475338,0.000416825,0.000399346,0.000425143,0.000436567,0.000456555,0.000528195,0.000427479,0.000507669,0.000479756,0.000508147,0.000470127,0.000550754,0.000573182,0.000509218,0.000455074,0.00043745,0.000454005,0.000473389,0.00044354,0.000404644,0.000415039,0.000441838,0.000473622,0.000507554,0.000464622,0.000437969,0.000503126,0.000530949,0.000557467,0.000547591,0.000491235,0.000422852,0.000443684,0.000485699,0.000556126,0.000527327,0.000526803,0.000455568,0.000469135,0.000468052,0.000475918,0.000486573,0.00050047,0.000449749,0.000435803,0.00041755,0.000428894,0.000443848,0.000525424,0.000546592,0.000529684,0.000472168,0.000449607,0.000449338,0.000564502,0.000524644,0.000507256,0.00042754,0.000443103,0.000455097,0.000618002,0.000614441,0.00053262,0.000525551,0.000513848,0.000564975,0.00052785,0.000557973,0.000454903,0.000461087,0.000432272,0.000464726,0.000455832,0.000490709,0.000431389,0.000440912,0.000435541,0.000457372,0.000514551,0.000517892,0.000444918,0.000372916,0.000385278,0.0004045,0.000446247,0.00049125,0.000447065,0.000472092,0.000487479,0.000522535,0.00057101,0.000501522,0.000440232,0.000393546,0.000422021,0.000430064,0.000464267,0.000463052,0.000403112,0.000383059,0.000403653,0.00042174,0.000462897,0.000457841,0.000446849,0.000362349,0.000367871,0.000364164,0.000383116,0.000387148,0.000355704,0.000381172,0.000410159,0.000428962,0.000423925,0.00043265,0.000435799,0.000450862,0.000388071,0.000369165,0.000367301,0.000398592,0.000385702,0.000354774,0.000362592,0.000365276,0.000373723,0.000449692,0.0004177,0.000382652,0.000365086,0.000348055,0.000348773,0.000320659,0.000321474,0.000341621,0.000271045,0.00041957,0,0,0,0,0,0 +PARTICLE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0008726,0.000872185,0.00087184,0,0,0,0,0.001110124,0.001110124,0.001110535,0,0,0,0.000915384,0.000916013,0.000914495,0,0,0,0.000858083,0.000858164,0.000857919,0,0,0,0.001222264,0.001222149,0.001221805,0,0,0,0.000980931,0.000980469,0.000981585,0,0,0,0.000985581,0.000985689,0.00098479,0,0,0,0.000670092,0.000669942,0.000669917,0,0,0,0.001003703,0.000998863,0.000998004,0,0,0,0.000744579,0.000742482,0.000710754,0,0,0,0.000951262,0.000893331,0.000891688,0,0,0,0.00113997,0.001155119,0.001150213,0,0,0,0,0.00122407,0.001245657,0.001238299,0,0,0,0.001351612,0.001297487,0.00116614,0,0,0,0.000982166,0.000988399,0.000906158,0.000823181,0.000898758,0.001446001,0.001322518,0.000956355,0.00064,0.000857098,0.000941193,0.001072282,0.000881514,0.000870928,0.000717489,0.000590257,0.00060503,0.000718612,0.000929211,0.000945776,0.000851478,0.001110633,0.00098541,0.000891627,0.000714723,0.000873464,0.000950656,0.000746985,0.000764069,0.000725662,0.000814176,0.000625554,0.000855548,0.000922313,0.001001831,0.000888923,0.000627928,0.000613591,0.001056354,0.001218769,0.001165247,0.000832605,0.000965964,0.001254622,0.001435664,0.001017211,0.000878092,0.00066022,0.000783042,0.000610687,0.001231389,0.001284747,0.0014956,0.001302083,0.001255587,0.001101261,0.001341909,0.001420642,0.001525726,0.001108718,0.001072994,0.000924001,0.001094571,0.000722094,0.000685647,0.000616056,0.000780629,0.00057852,0.000473562,0.000465056,0.000572336,0.000602788,0.000675721,0.000671659,0.000722863,0.000648021,0.000585301,0.000559044,0.000537711,0.000522049,0.000607385,0.000639737,0.000615235,0.00063945,0.000564585,0.000633118,0.000548167,0.000647032,0.000540305,0.000544882,0.000474615,0.000557931,0.000503249,0.00051178,0.000490383,0.00053192,0.000586846,0.000636978,0.000658639,0.000595825,0.000498493,0.000511542,0.000492674,0.000550719,0.000538469,0.000574227,0.000468621,0.000436634,0.000416798,0.000473703,0.000613014,0.00053937,0.000463331,0.000364736,0.000351054,0.000371681,0.000378862,0.000409018,0.000503274,0.000466107,0.000453906,0.000374681,0.000447378,0.000432917,0.000459326,0.000438096,0.000436499,0.000427971,0.000446032,0.000458124,0.000480583,0.000457521,0.000385269,0.000364552,0.000286055,0.000381131,0.00042481,0.000526616,0.000482204,0.000459655,0.000383326,0.000458829,0.000422585,0.00044523,0.000391803,0.000396598,0.000358948,0.000445932,0.000532877,0.000450727,0.000437945,0.000383815,0.000399463,0.000438816,0.000411842,0.000447583,0.00039537,0.000419862,0.00038693,0.000459863,0.000364231,0.000384243,0.000348703,0.000356026,0.000311826,0.000248569,0.000238252,0.000355534,0.000355617,0.00037778,0.000351374,0.00031671,0.000278034,0.000389917,0.00044042,0.000455999,0.000448369,0.000517709,0.000587034,0.000487332,0.000337599,0.000283701,0.000267578,0.000392829,0.000459904,0.000399742,0.000364738,0.000416411,0.000464804,0.000547667,0.000480532,0.000461926,0.000434651,0.000385731,0.0003315,0.00029029,0.000392099,0.000450209,0.000443489,0.000377841,0.000355145,0.000332328,0.000354724,0.000427413,0.00044878,0.000421737,0.000382509,0.000349534,0.000346921,0.000420195,0.00046797,0.000470371,0.000468897,0.000447195,0.000387148,0.000412126,0.000431054,0.000417474,0.000391921,0.000359739,0.000271765,0.000297796,0.000342695,0.000414956,0.000431362,0.000435163,0.00031184,0.000314327,0.000424429,0.000451762,0.000474667,0.00043419,0.000307684,0.000288625,0.00028875,0.000372292,0.00036977,0.00041426,0.000324668,0.000308079,0.000193212,0.000189301,0.000254285,0.000571723,0,0,0,0,0 +REGIONS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000245876,0.000266566,0.000265434,0,0,0,0,0,0,0,0,0,0,0.000347557,0.000381614,0.000371044,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000372024,0,0,0,0,0,0,0,0,0,0.000273898,0.000195899,0.000179683,0,0,0.000309637,0.000297119,0.000292008,0.00020913,0.000236502,0.000218289,0.000324551,0.000302814,0.000436215,0.000421652,0.000448529,0.000456793,0.000493007,0.000566274,0.000498592,0.000471062,0.000477535,0.000523419,0.000522521,0.00047938,0.000476619,0.000526985,0.00054855,0.000617049,0.000565293,0.000514826,0.000479723,0.000454456,0.000460071,0.000500084,0.000569529,0.000518482,0.000455765,0.000423399,0.000399418,0.000413039,0.000467911,0.000460547,0.000438059,0.000432325,0.000449746,0.000454412,0.000493496,0.000484859,0.000436729,0.000410139,0.000399144,0.000433963,0.00048761,0.000528663,0.000499311,0.000459212,0.000415509,0.000411812,0.000408363,0.000403701,0.000400999,0.000418882,0.000424485,0.000433678,0.000422961,0.000419135,0.00041903,0.00044281,0.000453895,0.000473776,0.000480164,0.00053923,0.000469836,0.000420187,0.000439109,0.000451143,0.000476622,0.000419177,0.000461752,0.000407878,0.000409399,0.000381291,0.000476603,0.000612755,0.000586165,0.000531321,0.000458339,0.000461094,0.000447136,0.000473459,0.00041374,0.000505848,0.000449413,0.000462192,0.000361967,0.000487399,0.000505772,0.000507256,0.00045382,0.000432081,0.000423794,0.000435566,0.000489045,0.000468597,0.000477472,0.000459759,0.000477398,0.000433052,0.000462756,0.000421819,0.000455385,0.000452291,0.000484931,0.000466145,0.000483439,0.000457496,0.000440099,0.000403575,0.000395145,0.000414961,0.000469902,0.000412063,0.000403992,0.000418746,0.000455526,0.000530764,0.0005109,0.000448304,0.000434651,0.000433567,0.000478522,0.000473715,0.000508817,0.000433996,0.000422513,0.00043521,0.000435827,0.00043649,0.000337731,0.000401682,0.000445024,0.000453383,0.000439847,0.000429308,0.000384681,0.00043117,0.000422483,0.000409132,0.000396833,0.00040084,0.000434854,0.000471001,0.000395289,0.000450914,0.000441509,0.000454525,0.000371775,0.000461947,0.000504439,0.000484505,0.000463463,0.000449583,0.000365767,0.000382957,0.000374277,0.000392136,0.000391505,0.000398917,0.000554884,0.000503749,0.000494161,0.000353677,0.000358309,0.000334057,0.000448923,0.000417469,0.000389224,0.000357091,0.000305142,0.000628895,0,0,0,0,0 +PRODUCTS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000547545,0.000547605,0.000547106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000279783,0.000279166,0,0,0,0,0.000268228,0.000244352,0.000243314,0,0,0,0,0.000284159,0.000305951,0.000293834,0,0,0,0.000347557,0.000305291,0.000335707,0,0,0,0,0,0,0,0,0,0,0,0,0.000428549,0.000522885,0,0,0,0.00044843,0.000451373,0.000316921,0,0,0,0,0,0,0,0,0,0,0.000355707,0,0,0,0,0,0.000390209,0.000483643,0.000541084,0,0,0,0,0,0.000416302,0,0,0,0.000406884,0.000402459,0.000388365,0,0,0,0,0,0,0,0.000605694,0.000509,0.000429496,0.000357085,0.000411809,0.000337227,0,0,0.000298797,0.000408123,0.000359366,0.000324035,0.000261267,0.000273209,0.000387547,0.000408812,0.000504373,0.000489898,0.000554119,0.00057534,0.000484502,0.00051904,0.000504561,0.000548202,0.000580055,0.000500895,0.000514238,0.00046886,0.000541401,0.000492458,0.000501479,0.000439174,0.000440087,0.000417042,0.000435508,0.00043884,0.000513592,0.000520483,0.00051178,0.000430684,0.000389042,0.000368057,0.000388333,0.000433927,0.000492701,0.000494424,0.000459601,0.000443407,0.000435986,0.000545896,0.000443058,0.000407496,0.000386363,0.000425035,0.000441551,0.000462652,0.000387313,0.000445596,0.00043738,0.000472881,0.000429945,0.00041745,0.00045632,0.000424018,0.000452316,0.000473104,0.000545144,0.000616446,0.00054181,0.000435631,0.000406072,0.000439168,0.000488839,0.000707499,0.00061733,0.000516094,0.000392791,0.000445468,0.000465265,0.000633408,0.000567462,0.00053248,0.000434009,0.000474051,0.000479517,0.00056789,0.000453164,0.000422585,0.000386962,0.00043286,0.000439737,0.000456661,0.000388185,0.000385803,0.000373119,0.000406816,0.000404423,0.000442204,0.000456137,0.000417536,0.000364158,0.000389681,0.000407278,0.000455579,0.000457109,0.000443494,0.000360746,0.000367907,0.000351617,0.000390083,0.000451529,0.000440976,0.00038414,0.000381314,0.000396373,0.00044963,0.000523541,0.000460851,0.000388735,0.000401224,0.000417443,0.000448369,0.000472332,0.000425281,0.00036177,0.000340039,0.00037001,0.000398256,0.000540371,0.000519892,0.000462715,0.000383547,0.000392283,0.000400789,0.000453009,0.000450164,0.000445827,0.000397209,0.000369785,0.000383005,0.00042427,0.000450458,0.000400324,0.000382559,0.000389051,0.000381798,0.000435498,0.000488542,0.000441707,0.000341748,0.000313881,0.000313099,0.000374726,0.000538081,0.000457824,0.000424796,0.000378729,0.000385303,0.000408339,0.000561457,0.000500438,0.000429171,0.000393962,0.000397298,0.000403774,0.000502222,0.000432894,0.000397284,0.000406189,0.000432699,0.000457218,0.000565063,0.000459823,0.000486653,0.000468952,0.000487462,0.000508095,0.000691632,0.000623861,0.000480076,0.000444949,0.000449395,0.000475332,0.000509047,0.000616158,0.000562834,0.00063674,0.000279713,0,0,0,0,0,0 +WORKING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000195899,0.000231021,0.000294577,0.000335915,0.000364279,0.000310037,0.000315369,0.000369054,0.000371647,0.000419787,0.00038356,0.000339151,0.000300933,0.000355325,0.000361971,0.000413289,0.000410182,0.000407105,0.000418543,0.000396459,0.000405407,0.000360438,0.000310948,0.000385076,0.000423205,0.00050511,0.000474615,0.000472948,0.000310222,0.000341187,0.000353929,0.000387321,0.000370102,0.000413477,0.000340943,0.000369526,0.000368275,0.000390346,0.000381822,0.000348789,0.000356504,0.000405165,0.000440096,0.000383491,0.000365728,0.000330092,0.000385544,0.000418872,0.000403475,0.000352629,0.000335024,0.000327482,0.000371846,0.000378412,0.000368539,0.00040543,0.000414138,0.000459069,0.000436974,0.000446196,0.000395531,0.000381733,0.0003791,0.000374713,0.000465258,0.000402889,0.000392989,0.000382494,0.000397309,0.000411362,0.000373915,0.000350076,0.000338673,0.000352459,0.000345929,0.000341904,0.000365072,0.000337041,0.000371051,0.000400408,0.00041761,0.000420255,0.000370912,0.000272692,0.000319726,0.000343269,0.00035422,0.000350328,0.00036823,0.000444589,0.000425127,0.000405208,0.000396318,0.000384397,0.000374448,0.000366238,0.000430284,0.000391154,0.00042754,0.000405627,0.000451485,0.00045837,0.000463965,0.000422282,0.000391262,0.000387076,0.000394094,0.000452443,0.000477991,0.000450176,0.000458236,0.000464896,0.000487818,0.00047852,0.000501614,0.000473657,0.000483214,0.000480294,0.000496783,0.000529305,0.000545886,0.000464084,0.000427708,0.000416411,0.000453671,0.000481744,0.000514473,0.000463165,0.000458255,0.000462421,0.000496314,0.000537515,0.000477814,0.000430255,0.000432501,0.000437188,0.00044159,0.000458315,0.000475797,0.000484592,0.000443146,0.000452737,0.000439847,0.0004524,0.000460201,0.000503293,0.000502662,0.000505985,0.00050637,0.00049696,0.000451367,0.000471001,0.000506347,0.000480174,0.000473173,0.000467213,0.000489177,0.000534581,0.000501407,0.000485674,0.00045945,0.000464004,0.000464243,0.000513355,0.000480152,0.000481307,0.000463153,0.000466943,0.000447063,0.000503749,0.000468338,0.000440145,0.000436727,0.000456936,0.000517063,0.000488908,0.000506831,0.000507671,0.000457712,0,0,0,0,0,0 +MAIN,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000298797,0.000277524,0.000269524,0.000191475,0.000205281,0.000273209,0.000271283,0.000315369,0.000282941,0.000320968,0.000285455,0.000236037,0.000320983,0.000380998,0.000390857,0.000382955,0.00036616,0.000441734,0.000505055,0.000480295,0.000449747,0.00042033,0.000388647,0.000349416,0.000335304,0.000375954,0.000383804,0.00040068,0.000402745,0.000413629,0.000383835,0.000441345,0.000426913,0.000453937,0.000391127,0.000352566,0.000338016,0.000417107,0.000453305,0.000457483,0.000362557,0.000382499,0.000384761,0.000407496,0.000394981,0.00042174,0.000424404,0.000370122,0.000335672,0.000394608,0.000416192,0.000427998,0.000395791,0.000322735,0.000381194,0.000429963,0.00046197,0.000427851,0.000418563,0.000431772,0.000475411,0.000504894,0.000445782,0.000424485,0.000365202,0.000315299,0.000334658,0.00035511,0.000488415,0.000440652,0.000438313,0.000302401,0.000358545,0.000430683,0.000534909,0.000521806,0.000509309,0.00038941,0.000351202,0.00038548,0.000479593,0.000498552,0.0004954,0.000418772,0.000359312,0.000407118,0.000516396,0.000508789,0.000504885,0.000415902,0.000343546,0.00044031,0.000570735,0.000554655,0.000543419,0.000419694,0.000349716,0.000417073,0.000533518,0.000526592,0.000501522,0.000431018,0.000360311,0.000380368,0.000501289,0.000539643,0.000551034,0.00050837,0.000405044,0.00037706,0.000512799,0.000455385,0.000450808,0.000356963,0.000354765,0.000352584,0.000430145,0.000422202,0.000439537,0.000406553,0.000403895,0.000415913,0.00046956,0.000465327,0.000456885,0.000437899,0.000439486,0.00041265,0.000530039,0.000482674,0.000498868,0.000404543,0.00042427,0.000373862,0.000540001,0.0005204,0.000482027,0.000453116,0.000377961,0.000388709,0.000474585,0.000482579,0.000461779,0.000433812,0.000403067,0.000377601,0.000398245,0.000447154,0.000426504,0.000425178,0.00039675,0.000376139,0.000404766,0.000424465,0.000430537,0.000425378,0.000408998,0.000356556,0.00041401,0.000496352,0.000480998,0.000471488,0.000427528,0.000407971,0.000426881,0.000460649,0.000432424,0.000436285,0.000394718,0.000381318,0.000408736,0.000461295,0.000444348,0.00043914,0,0.000374771,0.000357193,0.000453628,0.000516276,0.00075014,0.000628895,0,0,0,0,0 +ADVANCE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000167937,0.000175205,0.000159923,0.000185823,0.000201498,0.000236037,0.000145351,0.000151847,0.000180031,0.000196723,0.000246523,0.00025242,0.00022651,0.000251583,0.00024086,0.0002711,0.000225666,0.000217984,0.000196467,0.00018695,0.000226703,0.0002385,0.000306677,0.000213708,0.000191918,0.0001727,0.000232392,0.000259684,0.000276583,0.000182094,0.000191924,0.000191259,0.000228226,0.000226982,0.00023635,0.00019682,0.000259422,0.000260798,0.000275769,0.00026194,0.000276505,0.000242893,0.000252471,0.000252726,0.000249715,0.000259684,0.000241091,0.000245559,0.000225378,0.000237767,0.000210989,0.000215297,0.000216032,0.000241896,0.000254969,0.000284345,0.000263883,0.000254958,0.000224447,0.000246087,0.000269676,0.000279353,0.00027363,0.000280524,0.000275187,0.000279925,0.000358545,0.000334758,0.000313758,0.000280704,0.000276644,0.000285973,0.000322879,0.000319516,0.000322717,0.000289747,0.000293622,0.000287158,0.0002759,0.000277096,0.00028954,0.000322018,0.000328433,0.00033864,0.000282921,0.000322641,0.000307217,0.000308142,0.000284866,0.000276156,0.000311164,0.000320826,0.000360746,0.000365886,0.000400116,0.00042861,0.000442407,0.000415897,0.000404573,0.000428564,0.000420037,0.000400502,0.0003598,0.000352304,0.000404095,0.000424029,0.00045674,0.000473385,0.000571337,0.000523423,0.000493548,0.000470198,0.000468307,0.000464632,0.000470289,0.000465903,0.000450394,0.000417077,0.000437427,0.000465732,0.000493577,0.000464455,0.000458211,0.000522557,0.000554298,0.00058434,0.00057101,0.000496051,0.000450209,0.000472455,0.000521592,0.000541722,0.000546605,0.000463052,0.000441707,0.000476007,0.000548322,0.000569614,0.000586756,0.000528641,0.000489182,0.000495724,0.000532913,0.000549609,0.000582854,0.000557787,0.000533556,0.000546817,0.000586241,0.00060461,0.000607526,0.000552227,0.000533128,0.000541843,0.000601978,0.000615944,0.000626024,0.000522859,0.000550415,0.000578597,0.00062688,0.000637155,0.000650025,0.000667964,0.000600555,0.000618582,0.000659317,0.000678616,0.000699753,0.000675389,0.00065411,0.000641239,0.000641042,0.000724711,0.000628895,0,0,0,0,0 +SURFACES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000740083,0.000740083,0.000740357,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000517112,0.000517063,0.000516917,0,0,0,0.000667033,0.000666719,0.000667478,0,0,0,0,0,0,0,0,0,0.000372273,0.00037219,0.000372176,0,0,0,0.000449936,0.000447766,0.000447381,0,0,0,0.000372289,0.000371241,0.000370828,0,0,0,0.000363718,0.000362916,0.000362248,0,0,0,0.000581161,0.000599773,0.000641465,0,0,0,0,0.000721327,0.000743023,0.000755572,0,0,0,0.000868894,0.000896793,0.000830433,0,0,0,0.000620315,0.000884357,0.00068868,0.000768302,0.000528681,0,0,0,0.00064,0.000740221,0.000766898,0.000682361,0.000777807,0.000754805,0.000717489,0.000833304,0.00060503,0.000581734,0,0.000577974,0.000567652,0.000859845,0.000762898,0.000932155,0.000663672,0.000698771,0.000543232,0.000889268,0.000930171,0.000916625,0,0,0.000585375,0.001028734,0.000932739,0.001043519,0.000724533,0.000766989,0.000734855,0.000837904,0.000910349,0.000874235,0.000568214,0,0.000598193,0.001017211,0.00102444,0.000970911,0.000671178,0.000610687,0.000839584,0.001401542,0.00125213,0.001227679,0.000552458,0.00055063,0.000462727,0.000495573,0.000486934,0.00053852,0.000551826,0.000495,0.000594196,0.000672294,0.001012146,0.000821408,0.000839544,0.000709154,0.000710344,0.000620075,0.000572336,0.000676598,0.000760186,0.000604493,0.000427817,0.000672247,0.0007123,0.000658535,0.000587547,0.000532925,0.000603441,0.000713199,0.000683849,0.000675686,0.000609354,0.000551627,0.000522521,0.000526532,0.000597828,0.000560791,0.00053901,0.000428609,0.000537718,0.000514826,0.000620441,0.000549135,0.000537772,0.000438621,0.000495916,0.000564315,0.000653128,0.000601259,0.00058769,0.000525478,0.000657303,0.000585886,0.000576607,0.000571645,0.000586482,0.000531576,0.000470363,0.000545108,0.000600779,0.00059175,0.000543413,0.0005083,0.00039991,0.000478579,0.000493367,0.000558501,0.000516987,0.000528266,0.000444777,0.00045682,0.000481199,0.000440658,0.000437834,0.000384223,0.00037682,0.00039964,0.000471113,0.000503126,0.000485198,0.000465265,0.000396391,0.000364192,0.000422852,0.00059849,0.000581208,0.000564638,0.000466481,0.000515474,0.000515348,0.000587166,0.000530225,0.000562196,0.000434725,0.000542176,0.000526483,0.000541768,0.000477661,0.000448214,0.000412614,0.000427268,0.000442208,0.00055352,0.000565085,0.000581172,0.00046338,0.000380006,0.000364231,0.000497581,0.000491217,0.000497113,0.000443057,0.000335226,0.000392908,0.000509463,0.00043934,0.000422572,0.000347102,0.000327482,0.000382773,0.0004679,0.000409063,0.000370731,0.000304044,0.000319701,0.00038348,0.000441334,0.000401051,0.000397981,0.000322546,0.00032828,0.000283941,0.000447656,0.000399903,0.000395396,0.000303375,0.00020284,0.000209005,0.000365331,0.000411046,0.000394083,0.000336183,0.00027753,0.000311855,0.000450209,0.000463466,0.000432572,0.000411334,0.000327368,0.000267636,0.00027303,0.000393386,0.000358444,0.000377228,0.000275009,0.000273761,0.000271245,0.000365433,0.000340943,0.000344466,0.000312219,0.000313755,0.000366743,0.000417877,0.00035373,0.000335762,0.000280626,0.000317422,0.000373335,0.000362913,0.000346576,0.00032837,0.000301136,0.000243845,0.000281384,0.00035013,0.000379244,0.00037935,0.000361125,0.000176195,0.000256356,0.00031692,0.000384301,0.00037158,0.000361282,0.000226466,0.000174132,0.000184811,0.000296858,0.000572141,0.001086273,0,0,0,0,0 +CHARACTERISTICS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000783515,0.000783699,0.000782963,0,0,0,0.000793273,0.000792896,0.000792581,0,0,0,0,0.001258141,0.001258141,0.001258607,0,0,0,0,0,0,0,0,0,0.000476713,0.000476758,0.000476622,0,0,0,0,0,0,0,0,0,0.00043161,0.000431406,0.000431898,0,0,0,0.000511042,0.000511098,0.000510632,0,0,0,0.000483955,0.000483847,0.000483829,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000587544,0.000586248,0.00058517,0,0,0,0,0,0,0,0,0,0,0.000590177,0.000611901,0.000608656,0,0,0,0.000328249,0.000324372,0.000353376,0,0,0,0.000723701,0.000728294,0.000507449,0,0,0.000903751,0.000969847,0.000956355,0.000502857,0,0,0,0.000570391,0,0,0,0.00028811,0,0,0,0,0,0,0,0,0,0,0.000355707,0.000398645,0.000496505,0.000574713,0,0.000495317,0.000354736,0,0,0,0,0.000551141,0.000609385,0.000509795,0,0,0,0,0,0.000402459,0.000466038,0.000615247,0.000610687,0,0.000389317,0,0.000372024,0,0.000605694,0.000462727,0.000330382,0,0,0.000398541,0.000528001,0.000562922,0.000622494,0.000636672,0.000731566,0.000706984,0.000802463,0.000582846,0.000594238,0.000455533,0.000541279,0.000591256,0.000722034,0.000516331,0.000502671,0.000513519,0.000556675,0.000574432,0.000619934,0.000599497,0.000581579,0.000514602,0.000515823,0.000514842,0.000595507,0.000593046,0.000523913,0.000511544,0.000489201,0.000508005,0.000502507,0.000451545,0.000447808,0.000488251,0.00050782,0.000543906,0.000530815,0.000542409,0.000504159,0.000522909,0.00051469,0.000534903,0.000555308,0.000590459,0.000577142,0.00053382,0.000514193,0.000504111,0.000523002,0.000543617,0.000513549,0.000465548,0.000488837,0.000501735,0.000532409,0.00045253,0.000514751,0.000467609,0.000457833,0.000419623,0.00043544,0.000488995,0.000499315,0.000523121,0.000457311,0.000452517,0.000405146,0.000484483,0.000555597,0.000513726,0.000436925,0.000415368,0.000418455,0.000453602,0.000553346,0.000536396,0.000532144,0.000474051,0.000483773,0.000470538,0.000506977,0.000500918,0.000464653,0.000470398,0.000456436,0.000506515,0.000542176,0.000503036,0.000455205,0.000478734,0.000490717,0.000488233,0.000401285,0.000432719,0.000466122,0.000536641,0.000539986,0.000578835,0.000440587,0.000456705,0.000450587,0.000463927,0.000487193,0.000485196,0.000444688,0.000390818,0.000457699,0.000492393,0.000501171,0.000466718,0.00044167,0.000409434,0.000398187,0.000398373,0.000391492,0.000413731,0.000416643,0.000428916,0.00044755,0.000417321,0.000421956,0.000408627,0.000418649,0.000397917,0.000380576,0.000395814,0.000387613,0.000400789,0.000365112,0.000403718,0.000351708,0.000367093,0.000368267,0.000387687,0.00041151,0.000393923,0.00035044,0.000366577,0.00043455,0.000444471,0.000476171,0.000371716,0.000308766,0.000316399,0.000356506,0.000377228,0.000420911,0.000391761,0.000370023,0.00032303,0.000337468,0.000342064,0.000354484,0.000313755,0.000326266,0.000333172,0.000366792,0.000377583,0.000368695,0.000382645,0.000364619,0.000376055,0.000411449,0.000415311,0.000423287,0.000344665,0.000336289,0.000333413,0.00035346,0.000355681,0.000377922,0.00035765,0.000369297,0.000400259,0.000393909,0.000375199,0.000354659,0.00027256,0.000323706,0.000285617,0.000326975,0.000254285,0,0,0,0,0,0 +RESOURCE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000584048,0.000584112,0.00058358,0,0,0,0.0004095,0.000409409,0.000409394,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000279783,0.000279166,0.000278652,0,0,0,0.000312933,0.000310994,0.000287553,0,0,0,0,0.000371593,0.000371512,0.000377786,0,0,0,0.000482719,0.000457937,0.000477057,0,0,0,0.000516929,0,0.000507449,0.000658545,0.000687285,0,0,0,0.000548571,0.000506467,0.000592603,0,0,0,0.000493274,0.000451373,0.000489787,0.000547514,0.000633553,0.00068306,0.000729838,0.000931499,0.000953622,0.001053741,0.000765775,0,0,0.000426849,0.000398645,0.000496505,0,0,0,0.000461156,0.000552734,0.000425137,0,0,0,0.000380865,0.000436967,0,0,0,0,0,0.000365872,0,0,0,0,0,0.000347814,0.000483631,0.000552458,0.00055063,0,0.00036342,0.000389547,0.000380132,0.000337227,0,0.000312735,0.000348597,0.000326499,0.000333697,0.000397679,0.000410563,0.000473562,0.000413383,0.000478894,0.000430563,0.000422326,0.000218289,0.000206532,0.000193801,0.000278846,0.00026294,0.00029902,0.000326281,0.000331301,0.000272424,0.000272167,0.000264306,0.000310895,0.000225666,0.000256452,0.000254098,0.000324594,0.000322157,0.000336285,0.000328846,0.000310222,0.000271122,0.000228135,0.000290921,0.000325117,0.000377158,0.000251833,0.000226299,0.000238056,0.000328961,0.000348391,0.000369441,0.000222815,0.000241933,0.000270985,0.000285823,0.000294889,0.000302227,0.000316146,0.000352885,0.000323667,0.000292091,0.000256478,0.000251136,0.000273623,0.000272679,0.000259563,0.000290972,0.000298947,0.000334175,0.000390156,0.000403701,0.000322622,0.00028694,0.000293669,0.000329062,0.000380665,0.000279423,0.000298293,0.000326591,0.000375638,0.000385829,0.000388218,0.00032749,0.00029169,0.00025847,0.000305163,0.000329136,0.000385354,0.000362531,0.000329823,0.000330187,0.000410572,0.000441129,0.000460649,0.000330439,0.00032399,0.000288048,0.000418624,0.00044435,0.000517823,0.000300242,0.000292275,0.000296623,0.000396318,0.000411854,0.000469621,0.000344208,0.000386878,0.000355218,0.000408337,0.000435387,0.000465933,0.000437846,0.000363649,0.000344636,0.000450946,0.000484268,0.000539343,0.000542931,0.000462756,0.000373375,0.000441132,0.000478243,0.000534964,0.000509459,0.000407107,0.000372959,0.000386409,0.00044673,0.0005196,0.000597543,0.000523891,0.000491464,0.000571641,0.000570523,0.000605822,0.000564571,0.000494823,0.000439635,0.000459069,0.000490516,0.000543136,0.000556655,0.000561705,0.000433996,0.000497426,0.000526208,0.00053884,0.0005099,0.000405702,0.000394535,0.00038212,0.000453383,0.000475307,0.00054477,0.000441321,0.000374726,0.000366204,0.00045517,0.000476584,0.000521501,0.000376139,0.000385141,0.000432936,0.000503686,0.000514994,0.000526174,0.000471784,0.000438705,0.000524657,0.000531845,0.000564448,0.000496238,0.00041735,0.000465314,0.000572096,0.000535561,0.000538639,0.000486259,0.000544364,0.000469688,0.00044721,0.00045876,0.000483778,0.000494463,0.000561154,0.000453189,0.000436827,0.00031837,0.000279713,0,0,0,0,0,0 +SOLID,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001096921,0.001097179,0.001096148,0,0,0,0.000793273,0.000792896,0.000792581,0,0,0,0,0.001258141,0.001258141,0.001258607,0,0,0,0.000915384,0.000916013,0.000914495,0,0,0,0.001191781,0.001191895,0.001191554,0,0,0,0.001457315,0.001457178,0.001456767,0,0,0,0.001098642,0.001098125,0.001099376,0,0,0,0.000985581,0.000985689,0.00098479,0,0,0,0.001191274,0.001191008,0.001190964,0,0,0,0.000830651,0.000826646,0.000860348,0,0,0,0.00105482,0.00105185,0.00105068,0,0,0,0.001119132,0.00106083,0.001003149,0,0,0,0.001207028,0.001221761,0,0,0.002826701,0.002772446,0,0.001661238,0.001639022,0.00167905,0.002486135,0.002388155,0.002180549,0.00123576,0.001259326,0.00116614,0.000931012,0,0.001533238,0.001137245,0.001196483,0.000797419,0.000713423,0.000687285,0.000903751,0.001410686,0.00121718,0.001234286,0.000896057,0.00104577,0.001072282,0.001348198,0.001393485,0.000941704,0.000937467,0.000921951,0.001026589,0.001013685,0.000788146,0.000689292,0.00103898,0.001112559,0.001296912,0.00091893,0.000698771,0.000543232,0.000533561,0.000764069,0.000916625,0.000957854,0.000729813,0.000675432,0.000815892,0.001036377,0.001275412,0.001304159,0.001124917,0.000918569,0.000952163,0.000837521,0.000790975,0.000681857,0.000792393,0.001076748,0.000773081,0.000841504,0.00066022,0.000671178,0,0.000671667,0.00112902,0,0.001041667,0.000753352,0.000660757,0.001110546,0.000759878,0.000779094,0.000348454,0.000643797,0.000825001,0.00090693,0.000796793,0.000783597,0.00077007,0.000751171,0.000933097,0.001074623,0.001007622,0.000805943,0.000738107,0.00077708,0.001074655,0.001032662,0.000823653,0.000599105,0.000554307,0.000527219,0.000561928,0.000631049,0.000560152,0.00046886,0.000419906,0.000435253,0.000564164,0.000657159,0.000612978,0.000583447,0.000542894,0.00052947,0.000539456,0.000530824,0.000630586,0.000620441,0.00056807,0.000505056,0.000466559,0.000495916,0.000504159,0.000498493,0.000486358,0.000452204,0.000433691,0.000486479,0.000513015,0.000452321,0.000499831,0.000499169,0.000587306,0.000508918,0.000562322,0.0004855,0.000438894,0.000408762,0.000448027,0.000466562,0.00043406,0.000414111,0.000495066,0.000495045,0.000531642,0.000486394,0.000557745,0.00046844,0.000383014,0.000365751,0.000393734,0.000522934,0.000539352,0.000553972,0.000492828,0.000447875,0.000398596,0.000465861,0.000457357,0.000512904,0.000494825,0.00045658,0.000421351,0.000415777,0.000492816,0.000505041,0.000487064,0.000491513,0.000487051,0.000466632,0.000526135,0.000481721,0.000443265,0.000387495,0.000372224,0.00041919,0.000554293,0.000523818,0.000467446,0.000412436,0.000412998,0.000397851,0.000501168,0.000420848,0.000421562,0.000383068,0.000378071,0.000393695,0.000394518,0.000417987,0,0.000369709,0.000396373,0.000393026,0.000480451,0.000445617,0.000498621,0.00041904,0.000404096,0.000321363,0.000309388,0.000330774,0.000386634,0.00035875,0.000362019,0.000338103,0.000348567,0.000439908,0.000451763,0.000432615,0.000391505,0.000384089,0.000363421,0.000393,0.000426013,0.00040372,0.000359914,0.000328691,0.000339735,0.000375685,0.000402818,0.000404534,0.000364653,0.000363789,0.000367049,0.000454556,0.000451714,0.000400897,0.000401716,0.000383263,0.000349534,0.000264321,0.000326122,0.000383935,0.00035267,0.000343025,0.00030063,0.000321094,0.000331173,0.000372701,0.000357387,0.000359659,0.000350783,0.000367426,0.000355903,0.000360891,0.000353589,0.000355121,0.000354577,0.000257913,0.000343152,0.000387279,0.000423829,0.000414534,0.0003838,0.000299795,0.000302967,0.000334527,0.000373493,0.000368564,0.000370847,0.000312643,0.000283522,0.000240815,0.000197906,0.00024157,0,0,0,0,0,0 +RELEVANT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000273898,0.000277524,0.000243855,0.000206204,0.000242605,0.000418921,0.000348792,0.000256967,0.000147621,0,0.000235081,0.000221285,0.000254364,0.000405845,0.000459553,0.000487874,0.000391537,0.000287916,0.000287728,0.000329345,0.000428432,0.000475048,0.000520285,0.000378267,0.000371978,0.00033692,0.000344031,0.000307665,0.000306677,0.0002792,0.000292446,0.000311287,0.000342564,0.000368057,0.000391127,0.000333194,0.000280725,0.000276715,0.000306925,0.000323757,0.000323547,0.000315654,0.000308975,0.000325997,0.00031024,0.000317952,0.000319374,0.000343134,0.000321327,0.000339185,0.000335981,0.00035426,0.000359627,0.000343782,0.000378412,0.000382409,0.000384745,0.000383969,0.000364555,0.000338135,0.000257625,0.000322622,0.000367642,0.000400458,0.000403244,0.000380665,0.000350903,0.000374049,0.000406032,0.000408145,0.000407107,0.000353483,0.000307728,0.000354334,0.000392543,0.000393684,0.00039014,0.000365072,0.000379525,0.00034013,0.00034961,0.000355438,0.000360418,0.000362936,0.000388185,0.000454012,0.000465652,0.000418624,0.000387679,0.000366586,0.000355094,0.000358701,0.000353564,0.000371666,0.000378677,0.000393171,0.000355223,0.000352908,0.0003566,0.000396208,0.0003924,0.000420182,0.0004082,0.000405447,0.000400487,0.000394577,0.000420037,0.000413318,0.000458906,0.000417052,0.000425363,0.000421891,0.000434496,0.000437785,0.00046202,0.000439821,0.000430145,0.000450674,0.000448328,0.000464632,0.000451846,0.0004819,0.000464084,0.000461238,0.00043587,0.000430477,0.000395538,0.000384068,0.000398768,0.000404534,0.000459384,0.00048414,0.00053911,0.000506993,0.00044522,0.000435498,0.000447079,0.000454556,0.000483115,0.000488542,0.00046172,0.00043188,0.000448216,0.000454936,0.000458698,0.000420081,0.000456257,0.000458718,0.000475583,0.000470819,0.000481281,0.00046788,0.000484493,0.000482818,0.000483831,0.000479745,0.000489603,0.000493525,0.000499717,0.000518592,0.000537105,0.000539035,0.000525928,0.000565063,0.000577867,0.000563738,0.000551676,0.000546955,0.000547566,0.000504918,0.000503749,0.000530548,0.000523611,0.000531432,0.00053714,0.000541113,0.000546952,0.000551634,0.000585112,0.000470427,0,0,0,0,0,0 +PLANNING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000484546,0.00048221,0.000481795,0,0,0,0.000341265,0.000371241,0.000370828,0,0,0,0.000475631,0.000418749,0.000445844,0,0,0,0.000715276,0.000710843,0.000752063,0,0,0,0,0.000655752,0.000677462,0.000629644,0,0,0,0.000984746,0.000954035,0.00086577,0,0,0,0.001085552,0.000988399,0.000978651,0.001042696,0.000951626,0,0,0,0,0.000467508,0.000383449,0,0,0.000696743,0.000627803,0.000486094,0.000489787,0.000547514,0.00067579,0.000630517,0.000405466,0,0,0.000891627,0.001123137,0.001514005,0.00072431,0.000569132,0.000631187,0.000572891,0.000718391,0.000625554,0,0.000354736,0,0.000425137,0.000531324,0.000562458,0,0,0,0,0,0,0,0,0.000475633,0.000427201,0,0,0,0.000506112,0.000556502,0.000706845,0.000552458,0,0,0.000429496,0.000649245,0.000791941,0.000827738,0.000825001,0.000844383,0.000796793,0.001028471,0.001013925,0.000986832,0.000634506,0.000309637,0.00043922,0.000584017,0.000848823,0.000929117,0.000856366,0.000649102,0.000557177,0.000441736,0.000473766,0.000511481,0.000623559,0.000571888,0.00045608,0.000491731,0.000498771,0.000487483,0.000504614,0.000458408,0.000482,0.00052387,0.000540905,0.00054378,0.000358406,0.000237837,0.000329001,0.000402967,0.000521592,0.000539817,0.000528021,0.000236335,0.00025208,0.000413037,0.000615424,0.000661591,0.000653979,0.000464197,0.000463462,0.000493071,0.000519939,0.000518938,0.000529433,0.000505062,0.000591011,0.000611864,0.000603857,0.000658828,0.000675054,0.000775265,0.000562053,0.000479498,0.000466107,0.000604751,0.000646409,0.00072829,0.000467444,0.000574157,0.000594376,0.000666094,0.000627691,0.000649823,0.000542601,0.000643933,0.000610519,0.000624859,0.000605695,0.000617062,0.000510998,0.000555972,0.000527998,0.000575384,0.000529171,0.000559778,0.000424841,0.000420524,0.000327199,0.000404707,0.000411906,0.000498538,0.000442723,0.000447617,0.000401476,0.000452972,0.00044435,0.000468506,0.000343546,0.000364395,0.000316486,0.000378303,0.000384397,0.000489903,0.000443341,0.000469915,0.000418798,0.000510421,0,0.000530947,0.000369433,0.000286321,0.00027244,0.000373854,0.00040905,0.000469922,0.000469679,0.000439904,0.000345017,0.000453247,0.000465638,0.000545547,0.000480583,0.000494344,0.000433875,0.000468571,0.000461115,0.000489523,0.000416805,0.000365924,0.000318972,0.000380276,0.00042653,0.000474081,0.000598377,0.000500182,0.000423536,0.000358139,0.000350802,0.000368022,0.00035409,0.000353801,0.000346698,0.000345602,0.00035674,0.000363069,0.000372009,0.0003526,0.000350221,0.000342687,0.000364902,0.000376473,0.00039362,0.000408281,0.00037159,0.000354639,0.000348326,0.000350231,0.000358574,0.000376139,0.00031768,0.00034729,0.000332307,0.000354282,0.000354515,0.000413083,0.000338471,0.000330564,0.000340731,0.000357796,0.000360515,0.000419694,0.000410409,0.000326912,0.000334659,0.000319857,0.000356086,0.000307684,0.000267113,0.000262927,0.000281621,0.0003378,0.000345094,0.000412849,0.000276825,0.000282817,0.000279649,0.000190714,0,0,0,0,0,0 +CALIFORNIA,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000800961,0.000801511,0.000800183,0,0,0,0.000572055,0.00057211,0.000571946,0,0,0,0.000470102,0.000470057,0.000469925,0,0,0,0,0,0,0,0,0,0.00036503,0.00036507,0.000364737,0,0,0,0.000372273,0.00037219,0.000372176,0,0,0,0.000622988,0.000619984,0.000619451,0,0,0,0.00052741,0.000525925,0.00052534,0,0,0,0.000475631,0.000474582,0.000445844,0,0,0,0.000514104,0.000510918,0.000486629,0,0,0,0,0.000655752,0.000611901,0.000629644,0,0,0,0.000482719,0.000496098,0.000494726,0,0,0,0.001033859,0.00104042,0.000906158,0.000658545,0.001004494,0.001174876,0.000881679,0.000869414,0.00064,0,0.000453167,0.000682361,0.000777807,0.000870928,0.000762332,0.000763862,0.000633841,0.000684392,0.000844737,0.001103405,0.000892024,0.000752365,0.000635748,0.001013212,0.001327343,0.001805159,0.001177003,0.000853698,0.000697628,0.000687469,0.000862069,0.001198978,0.001080692,0.001099681,0.001036377,0.001159465,0.001014346,0.000869254,0.000780784,0.000685558,0.000764693,0.000666084,0.000965964,0.000792393,0.00095711,0.001017211,0.00102444,0.001165094,0.001342357,0.001709924,0.001679167,0.001167951,0.001078223,0.000892857,0.00100447,0.001101261,0.001203091,0.001189375,0.001038792,0.000886974,0.000705111,0.000825001,0.00081311,0.000722094,0.000555048,0.000487711,0.000486052,0.00048521,0.00069213,0.000568402,0.000584017,0.000602788,0.000844652,0.000705242,0.000516331,0.000399714,0.000380998,0.000397964,0.000390824,0.000424165,0.000587665,0.00058464,0.000512315,0.000409248,0.000425304,0.000495211,0.000535344,0.000523913,0.000476619,0.000481246,0.000527085,0.000620744,0.000710063,0.000648864,0.000571403,0.000480278,0.000415086,0.000413477,0.000480419,0.000481243,0.000447627,0.000426547,0.00043109,0.000504826,0.000761284,0.000766607,0.000647919,0.000439506,0.000390439,0.000411543,0.000551327,0.000591011,0.000472199,0.000391978,0.000387923,0.000413872,0.000638453,0.000595442,0.000513181,0.000439905,0.000482704,0.000535017,0.000655461,0.000560401,0.000413758,0.000385576,0.000377765,0.000454601,0.000611372,0.000519857,0.000440337,0.000357484,0.00041296,0.000436895,0.000525116,0.000485589,0.000377826,0.00032758,0.000326129,0.000363184,0.000399551,0.000495648,0.000420524,0.000424313,0.000418784,0.000462002,0.000504521,0.000484429,0.000394329,0.000362671,0.000374615,0.000408287,0.00044056,0.00045325,0.000461187,0.000403884,0.000397266,0.000370669,0.000382249,0.000468124,0.000396314,0.000416033,0.000369929,0.000427672,0.000439446,0.000572393,0.000545473,0.000449526,0.000370538,0.000374399,0.000427202,0.000501996,0.000458947,0.00036983,0.000367016,0.000364058,0.000396412,0.00046202,0.000457995,0.000428902,0.000383155,0.000377203,0.000358845,0.000392829,0.000403916,0.000380576,0.000382729,0.000382943,0.000410066,0.000415822,0.000460882,0.000422297,0.000433837,0.000427493,0.000427954,0.00047531,0.000457753,0.000404066,0.000350596,0.00033432,0.000351543,0.000375977,0.000452432,0.000401682,0.000362404,0.00035134,0.00036063,0.000407265,0.000549881,0.000446849,0.000413232,0.000370911,0.000380979,0.000393341,0.000585309,0.000531103,0.000435759,0.000415907,0.000413429,0.000434374,0.000447869,0.000408199,0.000352804,0.000304496,0.000306969,0.000336763,0.000459553,0.000432371,0.000360346,0.000318006,0.000307062,0.000322493,0.000441803,0.000448176,0.000427256,0.000429337,0.000413805,0.000404694,0.000360742,0.000366123,0.000358422,0.000322672,0.00024157,0.000571723,0,0,0,0,0 +INVOLVE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000163249,0.000192517,0.00025039,0.000335915,0.000473562,0.00043922,0.000373771,0.000442864,0.000422326,0.000537327,0.000442569,0.000460277,0.000427932,0.000419283,0.00044066,0.000500297,0.000512727,0.000544847,0.000528325,0.000520086,0.000502406,0.000520285,0.0005674,0.000529152,0.000468401,0.000421588,0.00040068,0.00039905,0.000430864,0.000450854,0.000560742,0.000512985,0.000533682,0.000424652,0.000453299,0.000458327,0.000516805,0.000505246,0.000489155,0.000456638,0.000434489,0.000460547,0.000411571,0.000417962,0.00042833,0.000452269,0.000508918,0.0004533,0.00045003,0.000404085,0.000399144,0.000393781,0.000385878,0.000442408,0.000503274,0.000504719,0.000482704,0.00043544,0.000405762,0.000379798,0.000419226,0.000459873,0.00047254,0.000473622,0.000442187,0.000428882,0.000445072,0.000472232,0.000451487,0.000456754,0.000375958,0.00039807,0.000430683,0.000449213,0.000436779,0.000424188,0.000419833,0.000475822,0.000469997,0.000516945,0.00047861,0.000470352,0.000420766,0.000394601,0.000417776,0.000420878,0.000441165,0.00043147,0.000427409,0.000366642,0.000379578,0.000390642,0.000382096,0.000385541,0.000361967,0.000391021,0.00041896,0.000400829,0.000400251,0.000378071,0.000369616,0.000339787,0.000346929,0.000412746,0.00040784,0.000401444,0.000363122,0.000353336,0.000384678,0.000423,0.000469638,0.000458223,0.00046665,0.000398079,0.000423464,0.000473657,0.00046125,0.000483491,0.000440778,0.00045369,0.000469902,0.000465453,0.00043834,0.000410185,0.000410994,0.00040906,0.000419796,0.000450781,0.000440348,0.000438883,0.000413907,0.000403535,0.000439516,0.000498846,0.000510411,0.000480049,0.000470404,0.000440458,0.000422695,0.000441707,0.000447841,0.000444987,0.000435321,0.000431407,0.000429521,0.000420195,0.000443299,0.000433019,0.000432865,0.000402885,0.000343112,0.000401087,0.000455524,0.000445689,0.000441509,0.000408998,0.000369601,0.000402388,0.000386164,0.000419047,0.000412636,0.000428377,0.000393903,0.000410409,0.000439288,0.00044639,0.000449079,0.000431671,0.000299795,0.000304759,0.000336875,0.00037049,0.000373993,0.00036864,0.000302622,0.000314776,0.000336021,0.000378602,0.00041957,0,0,0,0,0,0 +USEFUL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000312735,0,0.000375473,0.000346531,0.000427136,0.000317253,0.000346065,0.000271283,0.000303689,0.000356752,0.000456112,0.000419787,0.000442569,0.000436052,0.000557692,0.000577995,0.000624269,0.000670688,0.000611329,0.000563213,0.000491731,0.000522218,0.000537227,0.000586104,0.000528933,0.000487239,0.000540305,0.00056278,0.000598635,0.000502507,0.000420523,0.000447808,0.000494647,0.000538806,0.000562309,0.000609041,0.000569529,0.000521347,0.000478147,0.000547743,0.000561297,0.000603496,0.000538469,0.000469292,0.000478808,0.000507012,0.000522233,0.000516572,0.000451086,0.000447562,0.000463331,0.000496404,0.000503338,0.0004862,0.000442006,0.000414583,0.000463646,0.000474381,0.000490931,0.000472571,0.000418767,0.000409013,0.00048849,0.000499584,0.000493898,0.000452699,0.000415271,0.000493864,0.000535033,0.000511953,0.000511686,0.000485124,0.00049651,0.000429125,0.000444386,0.000471328,0.000512488,0.000526334,0.000511101,0.00041068,0.000381358,0.000433278,0.000457495,0.000482876,0.000464638,0.000436307,0.000426302,0.000471622,0.000488394,0.000494581,0.000475082,0.000456137,0.000436515,0.000447583,0.000431399,0.000443887,0.00039005,0.000355223,0.000375555,0.000446441,0.00048212,0.000482784,0.000468341,0.000435566,0.000426347,0.000416833,0.000420275,0.000422572,0.000419726,0.000417971,0.00045133,0.000513981,0.000501708,0.000496038,0.00048878,0.000447581,0.000412559,0.000369229,0.000430337,0.000443533,0.000453224,0.000405739,0.000379921,0.000414801,0.000418713,0.000422638,0.000406355,0.00040568,0.000416223,0.000450781,0.00045093,0.000440401,0.000412034,0.00034771,0.000280852,0.000331733,0.00038156,0.000394986,0.000402689,0.000379945,0.000378089,0.000368804,0.000388692,0.00039332,0.000399861,0.000352683,0.000302081,0.000286924,0.000349242,0.000353973,0.00035984,0.000333352,0.000286233,0.000320133,0.000365172,0.000382467,0.00038057,0.000368695,0.000319596,0.000342829,0.000408404,0.00041554,0.000417317,0.000374087,0.000290738,0.000341779,0.000405854,0.00044639,0.000449079,0.000438389,0.000347131,0.000317308,0.000377957,0.000387304,0.000387867,0.000366432,0.000276569,0.00027236,0.000280017,0.000292556,0.000394141,0,0,0,0,0,0 +TECHNIQUE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000221195,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000462,0.000469102,0.000423296,0.000620347,0.000782904,0.000795357,0.00067183,0.00060106,0.000762175,0.000735861,0.0006889,0.000574363,0.000722034,0.000988405,0.000884216,0.000792365,0.00071065,0.000671482,0.000775823,0.00081642,0.000829515,0.000667839,0.000679949,0.000666559,0.000808635,0.000791796,0.000757054,0.000686167,0.000642325,0.00065826,0.000716811,0.00075832,0.000691512,0.000584196,0.000621434,0.000627741,0.000740348,0.000635393,0.000621606,0.000559533,0.00062959,0.000631679,0.000706756,0.000709294,0.000667502,0.00059087,0.000623352,0.000645789,0.000735204,0.000778798,0.000694295,0.000583044,0.000593263,0.000585091,0.000626836,0.000554261,0.000601007,0.000461665,0.00054471,0.000500531,0.000578899,0.000522808,0.000578993,0.000581448,0.000550823,0.000520595,0.000505957,0.000519089,0.000669316,0.000648668,0.000597278,0.00055864,0.000547537,0.000561894,0.000519467,0.000505073,0.000533526,0.000540442,0.000561801,0.000533411,0.00047299,0.000453506,0.000512463,0.000489167,0.000492617,0.000462644,0.000548592,0.000573376,0.000499979,0.000522743,0.000489429,0.000519467,0.000485007,0.000470677,0.00042772,0.000449413,0.000448463,0.000489903,0.000558995,0.00050011,0.000479613,0.000444723,0.000464046,0.000469545,0.000474334,0.000453516,0.000509463,0.000476643,0.000469055,0.00042293,0.000400735,0.000462756,0.000492713,0.000467501,0.000439687,0.000413731,0.000356828,0.000403472,0.000366743,0.000350615,0.000326057,0.00030284,0.000261886,0.000273943,0.000318972,0.00039009,0.00038917,0.000408211,0.000346518,0.000367991,0.000336847,0.000354069,0.000317393,0.00030528,0.000250415,0.000275381,0.000320509,0.000325625,0.000331023,0.000320567,0.000371017,0.000420571,0.000418836,0.000379303,0.000355215,0.000352331,0.000307548,0.000311521,0.000294764,0.00034693,0.000345286,0.000349271,0.000342895,0.000335773,0.000315227,0.000279526,0.000273788,0.00027542,0.00027167,0.000300029,0.000302154,0.000294172,0.00028404,0.000275536,0.000280778,0.000239155,0.000274521,0.000304623,0.000314246,0.000319857,0.000299818,0.000255089,0.000270698,0.000255884,0.000285224,0.000289543,0.000283286,0.000242499,0.000198689,0.000232414,0.000240929,0.000343284,0,0,0,0,0,0 +POSTDOCTORAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000914286,0.00198691,0.003067592,0.003899206,0.00274825,0.000870928,0.000986547,0.001423562,0.001987957,0.001984738,0.001689475,0,0.00543324,0.004621668,0.004100575,0,0,0.007220637,0.0056134,0.004944332,0.000531526,0.000649276,0,0.002293698,0.001936239,0.00248315,0.001001831,0.001198114,0,0.002249834,0.001974923,0.002094759,0.001165247,0.001290537,0.001079607,0,0,0.000813769,0.000987853,0.001126257,0.000559315,0,0,0.001245815,0.001460819,0.001674107,0.000652905,0,0,0.00109026,0.001201104,0.001457172,0.001471535,0.000561001,0,0.002390379,0.001665143,0.001296284,0,0,0.000819627,0.000826767,0.001168033,0.0006889,0.000625042,0,0.000870386,0.000448164,0.000303694,0.000146868,0.000141641,8.34E-05,0.000276084,0.000342825,0.000441414,0.000364487,0.000358151,0.000241337,0.000365444,0.000560587,0.000493054,0,0.000283815,0.000321457,0.000213708,0.000252844,0.000441345,0.000502656,0.000492787,0.000329664,0.00020534,0.000297912,0.000526979,0.000549317,0.000534903,0.00033961,0.000159684,0.000169062,0.000452321,0.000496958,0.000556829,0.000381535,0.000285302,0.000398789,0.000667286,0.000656827,0.000610738,0.000415881,0.000196447,0.000289374,0.000663767,0.000624693,0.000577324,0.00033755,0.000195078,0.000350583,0.000532235,0.000662269,0.000651411,0.00059916,0.000530624,0.000396391,0.000369315,0.000381022,0.00049483,0.000514912,0.000451559,0.000146806,0.000213384,0.000247413,0.000333117,0.000334811,0.000391439,0.000274731,0.00022263,0.000276401,0.000351919,0.000396598,0.000400825,0.000243819,0.000208888,0.000238796,0.000283376,0.000318129,0.000312338,0.000254051,0.000239134,0.000260869,0.000283491,0.000306602,0.000294878,0.000264352,0.000205706,0.000322046,0.000333542,0.000356026,0.000308214,0.000266813,0.000250792,0.000264267,0.000333236,0.000344819,0.000393026,0.000392117,0.000359921,0.000363922,0.000403362,0.000430789,0.000425277,0.000373328,0.000323505,0.000390363,0.000462877,0.000479495,0.000477077,0.000446313,0.000453906,0.000431229,0.000423619,0.000436648,0.000428622,0.000395538,0.000371564,0.000380191,0.000424069,0.000413066,0.000406416,0.00031581,0.000277205,0.000339216,0.00037257,0.000391689,0.000389723,0.000382921,0.00032711,0.00032592,0.000374609,0.000413987,0.000433057,0.000434556,0.000417721,0.000459392,0.000521165,0.000460382,0.000453043,0.000410384,0.000535769,0.000477134,0.000454583,0.000432627,0.000434937,0.000458257,0.000489177,0.000496811,0.000475123,0.000440671,0.000452763,0.000445342,0.000574442,0.000499629,0.000464364,0.000396971,0.000393424,0.000391359,0.000617998,0.000528847,0.000414344,0.000464164,0.000481365,0.000518009,0.000436898,0.000401842,0.00049563,0.000817436,0.001512994,0.003716197,0,0,0,0,0 +ANALYTICAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000521182,0.000521066,0.000521047,0,0,0,0,0,0,0,0,0,0.000341265,0.000340304,0.000339926,0,0,0,0.000279783,0.000334999,0.000334383,0,0,0,0.000491752,0.000488704,0.000464509,0,0,0,0,0.000284159,0.000284097,0.000293834,0,0,0,0.000444101,0.000496098,0.000406382,0,0,0,0,0,0.000362463,0,0,0,0,0,0,0,0,0,0,0,0.00044843,0.000381931,0.000374543,0.000342196,0,0,0.000405466,0.000429923,0.000603961,0.000729513,0.00091893,0.00064054,0.000588502,0.000426849,0.000531526,0.000802047,0.001005747,0.000886201,0.000540346,0.000390209,0.000518188,0.000541084,0.00067623,0.000562458,0,0.000380865,0.000546209,0.000832605,0.001022785,0.000924459,0,0,0,0.000427201,0.000615247,0,0,0.000506112,0.000591284,0.000669643,0,0,0,0,0.000324623,0.000411809,0.000459855,0.000990001,0.000938204,0.000946192,0.000995821,0.001078098,0.00114885,0.001045069,0.001256762,0.001395169,0.001284837,0.000996445,0.000675721,0.000554119,0.000619597,0.00061774,0.000610148,0.000599314,0.000598039,0.000558303,0.000575832,0.000603005,0.000651829,0.000605346,0.000577021,0.000526553,0.000644336,0.000628695,0.000558795,0.000481246,0.00049131,0.000532066,0.000637678,0.000679327,0.000682272,0.00064037,0.000599115,0.000656535,0.000600524,0.00059296,0.000575811,0.000594963,0.000594728,0.000562192,0.000612741,0.000682077,0.000662181,0.000617607,0.000561771,0.000501568,0.000431809,0.000556584,0.000580827,0.000517592,0.00047769,0.000452045,0.000449022,0.000453537,0.000467609,0.000515751,0.000537556,0.00053333,0.000522808,0.000517906,0.000526767,0.000523922,0.000508581,0.000488839,0.00038451,0.000412636,0.000539768,0.000601692,0.000620043,0.000594347,0.000543505,0.000491235,0.000526607,0.000530762,0.000498511,0.000448306,0.000413749,0.000359699,0.00041434,0.00044523,0.000452802,0.000452261,0.000434725,0.000471597,0.000404987,0.00042237,0.000476587,0.000504885,0.000524399,0.000476346,0.000457391,0.000430368,0.000399162,0.000401558,0.000425935,0.000476385,0.0004869,0.00040774,0.00039924,0.000364844,0.000375636,0.000421883,0.000447246,0.000444077,0.000389604,0.000392992,0.000365258,0.000314556,0.000340878,0.000402914,0.000416902,0.000391492,0.000385828,0.000387766,0.000407107,0.00038539,0.00041,0.000428349,0.000418998,0.000405739,0.000341929,0.000381945,0.00041953,0.000413298,0.000428622,0.000375254,0.000403718,0.000360377,0.000382558,0.000366748,0.000375513,0.000352495,0.000370214,0.000361664,0.000340607,0.000360696,0.00038468,0.000412682,0.000437563,0.000328779,0.00038212,0.00039332,0.00042174,0.000375776,0.000332761,0.000286924,0.000366974,0.000377426,0.00040452,0.000362665,0.00031926,0.000326266,0.000362349,0.00034955,0.000349503,0.000329139,0.000293506,0.000270196,0.000277998,0.00029456,0.000299612,0.000300288,0.000248534,0.000238834,0.000281404,0.000349162,0.000371673,0.000377922,0.000320833,0.000306552,0.000267622,0.00028042,0.000284717,0.000285493,0.000212437,0.000212083,0.000288418,0.000344184,0.00041957,0,0,0,0,0,0 +TRANSITION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000740083,0.000740083,0.000740357,0,0,0,0.000686538,0.00068701,0.000685871,0,0,0,0.000715069,0.000715137,0.000714933,0,0,0,0.001269274,0.001269155,0.001268797,0,0,0,0.001020168,0.001019688,0.001020849,0,0,0,0.001168096,0.001168224,0.001167159,0,0,0,0.001191274,0.001191008,0.001190964,0,0,0,0.000899872,0.000895533,0.000894762,0,0,0,0.001147892,0.00114466,0.001143387,0,0,0,0.001203066,0.001200413,0.00111461,0,0,0,0.001005856,0.001021836,0.001017497,0,0,0,0,0.001267787,0.001289364,0.001364228,0.001912412,0.001910524,0,0.000984746,0.000954035,0.000901108,0,0.000978075,0.00109517,0.001240631,0.001092441,0.00108739,0.001097574,0.001163098,0.001446001,0.00123435,0.001043297,0.000914286,0.00077918,0.000836616,0.000682361,0.000777807,0.000696743,0.000762332,0.000833304,0.000720274,0.000684392,0.000506842,0.000735603,0.000648745,0.000967326,0.001048984,0.001134798,0.000969982,0.000989926,0.000950656,0.000889268,0.00083051,0.00084024,0.000766284,0,0.000630403,0.000709471,0.000967285,0.00100487,0.000966044,0.000766989,0.00087264,0.001028336,0.000983177,0.000832605,0.000909143,0.001056524,0.001316026,0.001261342,0.001097615,0.000932075,0.000783042,0.001160305,0.001455278,0.001051156,0.001113005,0.00093006,0.001305811,0.001046198,0.001110546,0.000858993,0.000876481,0.000791941,0.000674454,0.000462,0.000406555,0.000597595,0.000620347,0.000526214,0.000500781,0.000410563,0.000528204,0.000426302,0.000455533,0.000455166,0.000456112,0,0.000427817,0.000532952,0.000579779,0.000556675,0.000545579,0.000493047,0.000607385,0.000603005,0.00058779,0.000520086,0.000517329,0.000454466,0.000487259,0.000474141,0.000460184,0.00041761,0.00041022,0.000447083,0.000499802,0.000505687,0.000526629,0.000464785,0.000417131,0.000363189,0.000406806,0.000515617,0.000516805,0.000487932,0.000450445,0.00047729,0.000575605,0.000547993,0.000495108,0.000462487,0.000456336,0.000413686,0.000389399,0.000476252,0.000512103,0.000531213,0.00049372,0.00055049,0.00054023,0.000665003,0.000594418,0.000537815,0.000449792,0.000391559,0.00040056,0.000573681,0.000523121,0.000450906,0.000399123,0.000426069,0.000484483,0.000536102,0.000447439,0.00045605,0.000387677,0.000405688,0.000373915,0.000561815,0.000555972,0.000590196,0.000479875,0.00044405,0.000407664,0.000623101,0.000552453,0.000549814,0.000443418,0.000467569,0.00041279,0.000522927,0.000490247,0.000426848,0.000358514,0.000334872,0.000376449,0.00055718,0.000514328,0.000476716,0.000398214,0.000393549,0.000411893,0.000536965,0.000458592,0.000445059,0.000390143,0.000417751,0.000432222,0.000522223,0.000509944,0.000486305,0.000452603,0.000447082,0.000442154,0.000405044,0.000455138,0.000454903,0.000374143,0.000341072,0.000297309,0.000352702,0.000381663,0.000428902,0.00041,0.000391588,0.000327731,0.000291395,0.000315934,0.000332662,0.000375369,0.000368154,0.000372956,0.000292427,0.000266168,0.000318271,0.000359767,0.000385731,0.000375513,0.00032219,0.000271734,0.000299308,0.000374568,0.000375863,0.0003854,0.000373001,0.00045668,0.000387387,0.000446902,0.000367486,0.000375719,0.000323293,0.000394121,0.000385701,0.000338449,0.000348326,0.000339182,0.000350394,0.000289902,0.000329946,0.000356702,0.000367315,0.000362647,0.000351529,0.000302203,0.000300702,0.000345728,0.000378136,0.000395248,0.000371543,0.000262602,0.00028962,0.000343629,0.000352385,0.000349284,0.000324173,0.000218272,0.000340613,0.000387347,0.000429937,0.000387867,0.000367904,0.000234482,0.000261197,0.000277217,0.000305463,0.000381427,0.000571723,0,0,0,0,0 +NEEDED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000295193,0.000353492,0.000410563,0.000309637,0.000529647,0.000467213,0.000492071,0.000304075,0.000587702,0.000545835,0.000526896,0.000433454,0.000419283,0.000401316,0.000398788,0.000362853,0.000379557,0.000429979,0.000443352,0.000460125,0.000504614,0.000490465,0.000463663,0.00038828,0.000411645,0.00042453,0.000484032,0.000475673,0.000389928,0.000351797,0.000340842,0.000351699,0.000410683,0.000379686,0.000464056,0.000374379,0.00036831,0.000316719,0.000335021,0.000371358,0.000431399,0.000383047,0.000406471,0.00041515,0.000492994,0.000474219,0.000407396,0.000381306,0.000408625,0.000419983,0.000413872,0.00039991,0.000395106,0.000426,0.000428873,0.00048956,0.000504638,0.000533213,0.000414325,0.000391885,0.000381733,0.00037643,0.000376615,0.000365285,0.000376896,0.000352743,0.000358955,0.000387677,0.000415618,0.000482207,0.000440418,0.000395445,0.00035937,0.00039019,0.000394396,0.000415777,0.000320047,0.000344253,0.000351104,0.000402361,0.000403556,0.000404813,0.00036252,0.000385803,0.000355209,0.00040145,0.000400559,0.000471794,0.000424381,0.000423229,0.000447583,0.000481649,0.000496513,0.000508626,0.000446094,0.000407637,0.000370422,0.000422487,0.000462944,0.000465933,0.000437846,0.000382458,0.000369156,0.000416959,0.000420037,0.000467786,0.000471833,0.000434191,0.000402914,0.000441845,0.000485657,0.000504174,0.000486771,0.000368941,0.00032696,0.000339226,0.0003796,0.000403442,0.000438936,0.000363924,0.000401111,0.000396632,0.000429643,0.000444393,0.000495267,0.000419796,0.000423536,0.000404534,0.000438883,0.000440128,0.00046893,0.000372038,0.000355428,0.000377565,0.000441144,0.00044231,0.000462283,0.000392957,0.00038167,0.000385875,0.000433362,0.000460218,0.000487039,0.000450761,0.000407652,0.000392416,0.000420424,0.000430463,0.000443105,0.000420175,0.00040722,0.000424465,0.000433672,0.000435534,0.000453779,0.000587013,0.000505527,0.000472091,0.000450022,0.000466807,0.000475032,0.000494723,0.000435116,0.000454148,0.00044263,0.000462513,0.000457705,0.000465471,0.00039798,0.000382652,0.000449152,0.000472317,0.000488576,0.000454935,0.000426399,0.000408825,0.000404416,0.000355999,0,0,0,0,0,0 +MEASURE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000240442,0.00024039,0.000230869,0,0,0,0.000193087,0.000190807,0.000212025,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000363,0.000344008,0.000248998,0.000244874,0.000359366,0.000368221,0.000466548,0.000364279,0.000374629,0.000292008,0.000332148,0.000337861,0.00033583,0.000265542,0.000508727,0.000590822,0.00058747,0.000545579,0.000558303,0.000520616,0.000575457,0.000548909,0.000575505,0.00055215,0.000473271,0.00044238,0.000416511,0.000458129,0.000443463,0.00046269,0.000435999,0.000582528,0.000609262,0.000577799,0.000537085,0.000521414,0.000536403,0.000557906,0.000518482,0.000533083,0.000453305,0.000461002,0.000415334,0.000453057,0.000445973,0.00050122,0.000481159,0.000485989,0.000450125,0.000474219,0.000502073,0.000507669,0.000466136,0.000448837,0.000401818,0.000336766,0.000411801,0.000487423,0.000482655,0.000436079,0.000388183,0.000408363,0.000435572,0.000426517,0.000418882,0.000412471,0.000414657,0.000422961,0.000448377,0.000459276,0.000410445,0.000416572,0.00040427,0.000392304,0.000409363,0.000522692,0.000577757,0.000564901,0.000509309,0.000454312,0.00041068,0.000422585,0.000481087,0.000470398,0.000478701,0.000464638,0.000487637,0.000483853,0.000425355,0.000425064,0.000422454,0.000425766,0.000450363,0.000529511,0.000542926,0.000509145,0.000473632,0.000419694,0.000349716,0.000403863,0.000427091,0.000436637,0.000425467,0.000429814,0.000424164,0.000401267,0.000430455,0.000436854,0.000430179,0.000413318,0.000398581,0.000447521,0.000424182,0.000399086,0.000383336,0.000369471,0.000344452,0.000354401,0.000367986,0.000392103,0.000383596,0.000394107,0.000333813,0.000315934,0.000406587,0.000429344,0.000461555,0.000436971,0.000468222,0.000426941,0.000392575,0.000400465,0.000389527,0.000378322,0.000323785,0.000313679,0.000447715,0.000448483,0.000413449,0.000391163,0.000342248,0.000382337,0.000398823,0.000412164,0.000386861,0.000381754,0.000361081,0.000351641,0.000344936,0.000359265,0.00040392,0.000411726,0.000426063,0.000333938,0.000419485,0.000427289,0.000423744,0.000420001,0.000382129,0.000313073,0.000363166,0.000387175,0.000382811,0.000367159,0.000369846,0.00034701,0.000409037,0.000367776,0.00041792,0.000404939,0.000429991,0.000457582,0.0004177,0.000457774,0.000423932,0.00042225,0.000394393,0.000310639,0.000330404,0.000313619,0.000378602,0.000343284,0.000743239,0,0,0,0,0 +SKILLS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000728558,0.000749257,0.0007125,0.000504373,0.000371647,0.000235081,0,0.00026042,0.000273324,0.000312686,0.000270167,0.000275526,0.000232699,0.000275485,0.0003019,0.000242991,0.000243742,0.000191189,0.000288509,0.000290772,0.000279397,0.000282384,0.00028143,0.000291897,0.000310222,0.000377742,0.000339004,0.000352892,0.000306714,0.000338045,0.000220838,0.000323693,0.000354032,0.00038405,0.000330795,0.000289127,0.000241383,0.000370187,0.000421759,0.000393545,0.000339369,0.000342952,0.000327712,0.000427479,0.000403475,0.000360196,0.000339833,0.000313418,0.00034729,0.000333893,0.000307116,0.000357165,0.00037437,0.000406748,0.00035114,0.0003134,0.000364544,0.000440658,0.00042315,0.00040895,0.000269157,0.000341156,0.000359845,0.000400147,0.000388881,0.000391503,0.000335093,0.000290789,0.000369996,0.000375956,0.000392519,0.000350416,0.000369129,0.000297389,0.000348375,0.000386962,0.000430514,0.000425821,0.000348977,0.000240611,0.000315463,0.000396998,0.000422917,0.000419879,0.00041919,0.000473459,0.000539001,0.000463474,0.000385888,0.000334059,0.000379129,0.000490153,0.000564276,0.000449205,0.000446744,0.00040232,0.000457505,0.00055871,0.000587271,0.000444077,0.000364735,0.000341439,0.000399434,0.000521387,0.00049513,0.000393461,0.000391959,0.00041596,0.000419504,0.000439331,0.000421646,0.0004202,0.000440912,0.000432345,0.000447001,0.000405739,0.000403916,0.000412063,0.00041953,0.000439762,0.000428622,0.000449628,0.000443019,0.000485456,0.000400465,0.000395602,0.000412971,0.000591745,0.000616416,0.000440232,0.000335613,0.000331023,0.000344339,0.000393833,0.000426943,0.000467438,0.000459107,0.000505051,0.000508503,0.000551068,0.000590001,0.000614614,0.000498037,0.000444746,0.00041653,0.000424699,0.000510081,0.000518837,0.000507288,0.000500551,0.000488109,0.000511247,0.000571794,0.000560729,0.000515559,0.000477491,0.000474163,0.000492845,0.000569752,0.000535316,0.000495941,0.000493662,0.000493859,0.000487099,0.000460211,0.00046431,0.000538765,0.000481578,0.000489207,0.000472388,0.000579191,0.000573741,0.000574035,0.000554996,0.000572141,0.000743239,0,0,0,0,0 +EXPERIENCES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000491776,0.000632993,0.000595697,0.000541279,0.000405433,0.000470162,0.000265542,0.001065904,0.000588062,0.000563782,0.000215084,0.000199394,0.000216923,0.00055403,0.000521463,0.000475325,0.000266126,0.000213129,0.000378267,0.000492478,0.000417042,0.000290339,0.000164565,0.000158881,0.0002792,0.000648864,0.000526629,0.000430356,0.000192207,0.000162038,0.000263456,0.000535669,0.000482216,0.000371458,0.000207627,0.000162921,0.000170825,0.000574227,0.000568457,0.000456742,0.000271825,0.00018648,0.000204338,0.000550846,0.000567526,0.000449488,0.000328613,0.000245109,0.000463054,0.000534228,0.000495349,0.000390261,0.000351057,0.000334175,0.000395358,0.000406357,0.00042834,0.000345866,0.000317696,0.000277706,0.000276847,0.000500362,0.0005374,0.000466348,0.000332295,0.000280861,0.000351439,0.000496882,0.000475709,0.000366281,0.000309822,0.000285157,0.000275832,0.000371028,0.000410217,0.000382479,0.000319073,0.000279706,0.000203404,0.000356104,0.000434828,0.000429833,0.000351,0.000310401,0.000345215,0.000522537,0.000567469,0.000385345,0.000280646,0.000200207,0.000271475,0.000443341,0.000585035,0.000467173,0.000391154,0.000293198,0.000323865,0.000399079,0.000551743,0.00042092,0.000357275,0.000309323,0.000360986,0.000463215,0.000554164,0.000402914,0.000358465,0.000317345,0.000356001,0.000453769,0.000525241,0.000476144,0.000433591,0.0003796,0.000369216,0.000344878,0.000461904,0.000384683,0.000368009,0.000337799,0.000383162,0.000476673,0.00056985,0.000468118,0.000406162,0.000396361,0.000447619,0.000594935,0.000632829,0.000503835,0.000400538,0.000418065,0.000417097,0.000523788,0.000611739,0.000584655,0.000463801,0.000484384,0.00047078,0.000567862,0.000592361,0.000638132,0.000483389,0.000430848,0.000396352,0.000398113,0.000453202,0.000488173,0.000451759,0.000467634,0.000460029,0.000486618,0.000476132,0.000454684,0.000427611,0.000477491,0.000487539,0.000521686,0.000609612,0.00058473,0.000496869,0.000487753,0.00046955,0.000508934,0.000507547,0.000555738,0.000519984,0.000482178,0.000496445,0.000518744,0.000655347,0.000687597,0.000761647,0.000800227,0.000635712,0.000628895,0,0,0,0,0 +DETAILED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000293849,0.000333697,0.000324035,0.000335915,0.000346065,0.000335874,0.000256967,0.00034445,0.000422326,0.000419787,0.000339303,0.000557177,0.000665365,0.000630109,0.000671482,0.000696066,0.000840084,0.000688712,0.000615235,0.000549927,0.000529765,0.000542225,0.00058984,0.000612978,0,0.000586643,0.00059148,0.000557931,0.000716957,0.000734161,0.000682272,0.000564627,0.000535727,0.000581103,0.00074,0.000638793,0.000596157,0.000554039,0.000568335,0.000582844,0.000635022,0.000658758,0.000615319,0.000537174,0.000495874,0.000469416,0.000555183,0.00053937,0.000540923,0.000511538,0.000500132,0.000522363,0.000526198,0.000506404,0.000473553,0.000459212,0.000463505,0.000499575,0.000538415,0.00052853,0.00046844,0.000431692,0.000431159,0.000439384,0.000496018,0.000562095,0.000542135,0.00044281,0.000384065,0.000356041,0.000394348,0.000533583,0.000546184,0.00047271,0.000433285,0.000404326,0.000452284,0.00049848,0.000467936,0.000448218,0.000424649,0.000432779,0.000476603,0.000619171,0.000569113,0.000508934,0.000429358,0.000409575,0.000415902,0.000603371,0.000567469,0.000504524,0.000421917,0.000411854,0.000405652,0.000525951,0.000469915,0.000521078,0.000445734,0.000459637,0.000429814,0.000485736,0.000489045,0.000471321,0.000457577,0.000452153,0.000447494,0.000437361,0.000477991,0.000458447,0.000381269,0.000364058,0.000366585,0.00041458,0.000427099,0.000413984,0.000423016,0.000399579,0.000382699,0.000372543,0.000411914,0.000384683,0.000413806,0.000391505,0.000406355,0.000344828,0.00041265,0.000391337,0.00040372,0.000395602,0.000391433,0.000393965,0.000368391,0.000371641,0.000393546,0.000381138,0.000394765,0.000369033,0.000388709,0.000371663,0.000386814,0.000363611,0.000362138,0.000312797,0.000276121,0.000310443,0.000400126,0.000404354,0.000411246,0.000391978,0.000348617,0.000363063,0.000337878,0.00035373,0.000351295,0.000343319,0.000306551,0.000321039,0.000389197,0.000372876,0.000368497,0.000331674,0.000300117,0.000323935,0.000330627,0.000322304,0.000317938,0.000307376,0.000260348,0.000279662,0.000311051,0.000320051,0.000322116,0.00031934,0.000320659,0.000294684,0.000280017,0.000271045,0.000254285,0,0,0,0,0,0 +MEMBERS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000163249,0.000141179,0.000162017,0.000223943,0.000273209,0.000232528,0.000140164,0.00020913,0.000270289,0.000352621,0.000472074,0.000472389,0.000441736,0.000416914,0.000372463,0.000293653,0.000315525,0.0003918,0.000377375,0.000345303,0.000318356,0.00031029,0.000461614,0.00041913,0.000425259,0.000312214,0.000317205,0.000428609,0.000461886,0.000560521,0.000390174,0.000404535,0.000333296,0.000352014,0.000298325,0.000418223,0.000400829,0.000385624,0.000330795,0.000351083,0.000393639,0.000492611,0.000411571,0.000377745,0.000324542,0.000370817,0.000389399,0.00048199,0.000368005,0.000357169,0.00032701,0.000335518,0.000477086,0.000428496,0.000392316,0.000341995,0.00037437,0.000394934,0.000491596,0.00044354,0.000437453,0.000420163,0.000421815,0.000426069,0.000419116,0.000542601,0.000478215,0.000398676,0.00035517,0.000387248,0.000429083,0.000443241,0.00039153,0.000328962,0.000303998,0.000310693,0.00035696,0.000416344,0.000381358,0.00034214,0.000354265,0.000368767,0.000394842,0.000346479,0.000375146,0.000328344,0.000389642,0.000358056,0.000410971,0.000412833,0.00044031,0.000413154,0.000350808,0.000334059,0.00031048,0.000258845,0.000283081,0.000335867,0.000393176,0.0003924,0.000382859,0.000415042,0.000447246,0.000415471,0.000401209,0.000392992,0.000400502,0.000357645,0.000388486,0.00036983,0.000406925,0.00041077,0.000433936,0.000416643,0.00039802,0.000396579,0.000438472,0.000431546,0.000451149,0.000402051,0.000485899,0.000418908,0.000462056,0.000436648,0.000460165,0.000442867,0.000437659,0.000437158,0.000433023,0.000444198,0.000479458,0.00048169,0.000545291,0.000466421,0.000466462,0.000433891,0.000437267,0.000487083,0.000533148,0.000508893,0.000479762,0.000479863,0.000482851,0.000478642,0.000519201,0.000514269,0.000454092,0.000427807,0.000433345,0.000439697,0.000530265,0.00048572,0.000450818,0.000425312,0.000414624,0.000439598,0.000530486,0.000552013,0.000533755,0.000493271,0.000469482,0.000468245,0.000480655,0.00051061,0.000454148,0.00043135,0.000412615,0.000420753,0.000520696,0.000498371,0.000446036,0.000402315,0.000384851,0.000393657,0.000420865,0.000495605,0.000509631,0.000460346,0.000381427,0,0,0,0,0,0 +THERMAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001078516,0.001078749,0.001078981,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001332149,0.001332149,0.001332642,0,0,0,0.000572115,0.000572508,0.000571559,0,0,0,0.000476713,0.000476758,0.000476622,0,0,0,0.000470102,0.000470057,0.000469925,0,0,0,0.000980931,0.000980469,0.000981585,0,0,0,0.00036503,0.00036507,0.000364737,0,0,0,0.000819001,0.000818818,0.000818787,0,0,0,0.000865261,0.000861089,0.000860348,0,0,0,0.000868675,0.000866229,0.000865266,0,0,0,0.000699457,0.000725831,0.000752362,0,0,0,0.000827037,0.000866339,0.000818421,0,0,0,0,0.001049203,0.001070828,0.001091382,0,0,0,0.000868894,0.000858631,0.000901108,0.001117214,0.0013041,0.001204687,0.000775394,0.000832336,0.000978651,0.001207332,0.00111023,0.001084501,0.000881679,0,0,0.00038959,0.000522885,0.000731101,0.000674099,0.000580619,0,0.000416652,0.000432165,0.000547514,0.000549079,0.00068306,0.000689292,0.000716538,0.000540386,0,0,0,0.00067904,0.000675844,0.000531526,0.000572891,0.000622605,0.000625554,0.000495317,0.00049663,0.000483643,0.000541084,0.000627928,0.000664724,0,0,0,0,0,0.000858426,0.00095711,0.000935834,0.000878092,0.000815566,0.000838973,0.000610687,0.000727639,0.000467181,0.000452158,0.000446429,0.000602682,0.000770883,0.000509,0.000495573,0.000454472,0.000601875,0.000797081,0.000792001,0.000625469,0.000597595,0.000816247,0.000859911,0.000854273,0.000858449,0.00069213,0.000607157,0.000420492,0.000381355,0.000320968,0.000402996,0.000486826,0.000472389,0.000411367,0.000424021,0.000430168,0.000536551,0.000508783,0.000550969,0.000457424,0.000447615,0.000375561,0.000542225,0.000535344,0.000468902,0.000308159,0.000296305,0.00031005,0.000469253,0.000506696,0.000527012,0.000351797,0.000364942,0.00034352,0.000488909,0.000519163,0.000461191,0.000406933,0.000354144,0.000432849,0.000447459,0.000583032,0.000399335,0.000338222,0.00036051,0.000380554,0.000475847,0.00053205,0.000502073,0.000361354,0.000378357,0.000381511,0.000494236,0.000547246,0.000534228,0.000364577,0.000347511,0.000314032,0.000359491,0.000410964,0.00045682,0.000406467,0.000357394,0.000389779,0.00043558,0.000580611,0.000454875,0.000362212,0.000320706,0.000386473,0.000400014,0.000494467,0.000369838,0.000326927,0.00028335,0.000342435,0.000375953,0.000476622,0.000444667,0.000383419,0.000346622,0.000326112,0.00034511,0.000366924,0.0005518,0.000543535,0.000444758,0.00041111,0.000390255,0.000491521,0.000551406,0.000474472,0.000361509,0.000327104,0.000336347,0.000408773,0.000468124,0.000377442,0.00029302,0.000318381,0.000336185,0.000392491,0.00040592,0.000415897,0.000388227,0.000402038,0.000375244,0.000382346,0.000389963,0.000399912,0.000414729,0.000392672,0.00039594,0.000360812,0.000365078,0.000412559,0.000488576,0.000410813,0.000374006,0.000316323,0.000280329,0.000295938,0.000346352,0.000392543,0.000370489,0.000356257,0.000312711,0.000376923,0.000491648,0.000459883,0.000448754,0.000397988,0.00038918,0.000516112,0.000487622,0.000502421,0.000392348,0.000364509,0.000381929,0.000509783,0.000474585,0.000399019,0.000383632,0.00038779,0.000404116,0.000476721,0.000410788,0.000464886,0.000394799,0.000403559,0.000375617,0.000420175,0.000394954,0.00035576,0.000359477,0.000358464,0.000377651,0.000560923,0.000524412,0.000464003,0.000407358,0.00039926,0.000364756,0.000318874,0.000381585,0.000366847,0.000448539,0.000449079,0.00048374,0.000418135,0.000387224,0.000404954,0.000418528,0.000421647,0.000449578,0.000390803,0.00039961,0.000316419,0.000417323,0.000483141,0,0,0,0,0,0 +PARTICIPATE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001835483,0.001994171,0.001653424,0,0,0.000457933,0.003011535,0.004027998,0.003290064,0.00052895,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000179574,0.000179683,0.000235661,0.000186619,0.000455349,0.00043922,0.000490574,0.000393657,0.000337861,0.000268664,0.000309798,0.000472389,0.00035615,0.000334005,0.000243937,0.000250149,0.000299748,0.000407105,0.000324771,0.000285621,0.000221357,0.000247605,0.000378267,0.000413891,0.000361573,0.000270452,0.000226575,0.000277118,0.00037916,0.000450854,0.00037525,0.000308135,0.000261729,0.000312902,0.000333194,0.000444004,0.000339789,0.000316369,0.000218184,0.000211109,0.000237669,0.000387676,0.000350447,0.000314549,0.00026194,0.000280792,0.000320001,0.000416003,0.000376872,0.000304199,0.00026289,0.000235063,0.000305195,0.000431278,0.00039826,0.000341995,0.000304432,0.000302108,0.000345938,0.000329335,0.000322622,0.000313841,0.000286995,0.000291021,0.000311453,0.000383394,0.000385886,0.000310408,0.000268484,0.000239725,0.00023906,0.000333137,0.00035825,0.000305465,0.000232949,0.000195779,0.0002231,0.000322879,0.000354559,0.000288354,0.000241651,0.00020317,0.000207392,0.000333647,0.00042417,0.000389536,0.000318798,0.000262746,0.000277816,0.000383964,0.000442208,0.000372103,0.000287283,0.00022652,0.000216868,0.000396528,0.000505772,0.000454734,0.000378015,0.000299811,0.00030099,0.000312422,0.000505764,0.000418195,0.000350643,0.000287349,0.000307586,0.00042228,0.000556069,0.000474989,0.00042973,0.000384077,0.000406034,0.000466145,0.000594303,0.000520899,0.000488908,0.000409968,0.000428333,0.000426026,0.00057788,0.000525688,0.000453878,0.000423416,0.000409139,0.000502028,0.000576996,0.000530039,0.00044279,0.000432049,0.000456047,0.00057739,0.000674775,0.000564944,0.000486439,0.000457629,0.000472566,0.000540653,0.000696703,0.000640404,0.000553933,0.00045855,0.000442111,0.000449251,0.000615961,0.000730638,0.000589009,0.000519449,0.000481868,0.000486052,0.000563291,0.000558087,0.000552464,0.000494281,0.000477953,0.000470945,0.000637017,0.000607214,0.000576213,0.000469309,0.000456775,0.000448735,0.000635403,0.000605319,0.000529375,0.000440482,0.000410696,0.000420753,0.000554884,0.000555738,0.00051881,0.000426935,0.000410186,0.000401751,0.000507042,0.000587136,0.000604837,0.000516276,0.00033057,0,0,0,0,0,0 +PIS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000221285,0.000121125,0.000102152,0.00010186,0.000118034,0.000112386,8.68E-05,5.20E-05,5.95E-05,5.76E-05,5.97E-05,5.64E-05,7.69E-05,8.64E-05,9.45E-05,8.55E-05,0.000112095,0.00018105,0.000206815,0.00017364,0.000147115,0.000127385,0.000147223,0.000136894,0.000158848,0.000143227,0.000115976,0.000111752,9.50E-05,0.000123912,0.000122548,0.000142828,9.58E-05,0.000129267,0.000140031,0.000167189,0.000123374,0.000106153,0.00012858,0.000122588,0.000129842,0.000162736,0.000270115,0.000311633,0.000233805,0.00018203,0.000146731,0.000173838,0.000210684,0.000196539,0.00014764,0.000160123,0.000178871,0.00019972,0.000192255,0.000159206,0.000144412,0.000176535,0.000184207,0.000224121,0.000237017,0.00027385,0.000203595,0.000181067,0.000178206,0.000171661,0.000186593,0.000220917,0.000226753,0.000237556,0.000248689,0.000257441,0.000257246,0.000330439,0.00033891,0.000291033,0.000255468,0.000238275,0.000276172,0.000320451,0.0002695,0.000248952,0.000276854,0.000308891,0.000329202,0.00024783,0.000200044,0.000186593,0.000224383,0.000266744,0.000286543,0.000323824,0.000219443,0.000211141,0.00030588,0.000338903,0.000378074,0.000353336,0.000405625,0.000398187,0.000458949,0.000453033,0.000494553,0.00041458,0.00045436,0.000409011,0.000541785,0.000586582,0.000712505,0.000614142,0.000461904,0.000390159,0.000492314,0.000526936,0.000582628,0.000588235,0.000493037,0.000502794,0.00058686,0.00062947,0.000622734,0.000575795,0.000532525,0.000516306,0.000527392,0.000536099,0.000531636,0.000528748,0.000463052,0.000480303,0.000516378,0.000567052,0.000577158,0.00054372,0.000398841,0.000404516,0.000543523,0.000609788,0.000635605,0.000622392,0.000484394,0.000624322,0.000708697,0.000728882,0.000695421,0.000678429,0.000515267,0.000534581,0.000590366,0.000707762,0.000735656,0.000734602,0.00051817,0.000426881,0.000462506,0.000568866,0.000625,0.000640787,0.000620628,0.000605933,0.000579847,0.00068814,0.000696712,0.000737279,0.000581195,0.000448724,0.000526432,0.000563601,0.000978996,0.001029101,0,0,0,0,0 +BENEFIT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000166848,0.000162017,0.000186619,0.000182139,0.000180855,0.000210246,0.000196829,0.000219609,0,0.000177028,0.000242251,0.000295411,0.000326899,0.000325249,0.000377036,0.000276084,0.000296911,0.00025387,0.000277095,0.000290998,0.000316559,0.000323771,0.000269815,0.000244473,0.000250566,0.000255195,0.000277118,0.000286093,0.000307677,0.000313419,0.000316742,0.00029649,0.000318489,0.000321571,0.000332287,0.000301131,0.000321091,0.00031496,0.000330431,0.000293373,0.000364357,0.000354522,0.00033322,0.00030642,0.000317231,0.000300724,0.000246733,0.000248292,0.000292091,0.00032701,0.000317436,0.000326243,0.000286591,0.000338818,0.000328205,0.000394939,0.000381432,0.000418767,0.00030012,0.000346317,0.000383014,0.000387109,0.000384223,0.000326834,0.000337907,0.000321967,0.000304524,0.000293768,0.000293627,0.00033305,0.000355722,0.000344546,0.000276439,0.000262068,0.000253945,0.000273804,0.00028606,0.000360744,0.000348116,0.000341361,0.000299188,0.000289152,0.000291941,0.00029628,0.000265661,0.000278009,0.000270474,0.000307406,0.000216521,0.000258113,0.000244979,0.000281594,0.000271137,0.000280836,0.000267106,0.000284969,0.000251555,0.00031737,0.000319652,0.000372024,0.000342067,0.00032394,0.000291511,0.000360591,0.000366793,0.00042293,0.000409353,0.000436095,0.00038519,0.000436144,0.000445618,0.000489742,0.000490896,0.000490709,0.000426416,0.000483214,0.00048429,0.000528934,0.000411272,0.000403916,0.000392897,0.000466963,0.00046389,0.00050748,0.000478364,0.000478746,0.000445827,0.000489999,0.000476089,0.000488823,0.000460955,0.000512464,0.000497599,0.00051141,0.00051236,0.000525873,0.000512876,0.000494914,0.000480303,0.000494784,0.000469529,0.000470026,0.000466046,0.000514481,0.000476639,0.000501121,0.000519884,0.000527989,0.000535817,0.000506412,0.000513931,0.000480935,0.000519884,0.000520968,0.000538116,0.000508744,0.000476474,0.000480178,0.000459373,0.000466807,0.000458066,0.000515825,0.000528453,0.000565595,0.000516223,0.000508572,0.000498857,0.000570662,0.000566494,0.000527027,0.000521809,0.00050851,0.000531253,0.00056917,0.000642948,0.000565635,0.000576508,0.000444998,0,0,0,0,0,0 +POLYMER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0004095,0.000409409,0.000409394,0,0,0,0.000449936,0.000447766,0.000447381,0,0,0,0.000310241,0.000309368,0.000309023,0,0,0,0.000391696,0.000390832,0.000362248,0,0,0,0.000357638,0.000355421,0.000353912,0,0,0,0,0.000459026,0.00048078,0.000461739,0,0,0,0.00061788,0.000610582,0.000706751,0.001117214,0.000978075,0,0,0,0.00039871,0,0,0,0,0,0,0,0.000522885,0.000584881,0.000933368,0.000638681,0.000672646,0,0.000345732,0,0,0,0,0,0.000413236,0.000486342,0.000561568,0,0.00072431,0.000746985,0.000797289,0.00084024,0.000766284,0,0,0,0,0.000386488,0.000627928,0.000869254,0.00087264,0.000837904,0.000691865,0.000624454,0,0.000792393,0.000717832,0.000569638,0.000439046,0,0,0,0,0.000389317,0.00048694,0.000483631,0,0,0,0.000528611,0.000584321,0.000570198,0.000735767,0.000660001,0.00081311,0.000622494,0.000571373,0.000539049,0.000662798,0.000802463,0.000874269,0.000749257,0.000607377,0.000541279,0.000422326,0.000520536,0.000634349,0.000381545,0.000328541,0.000286629,0.000330495,0.000377036,0.000461455,0.000428532,0.000365939,0,0.000313382,0.00033223,0.000394295,0.000447945,0.000417042,0.000367895,0.000307665,0.000354711,0.000351585,0.000389928,0.000358193,0.000430356,0.000406907,0.000449796,0.000337068,0.000375255,0.000370309,0.000412382,0.000399418,0.000435986,0.000475338,0.000460547,0.000385084,0.000425143,0.000423387,0.000512285,0.000451086,0.000479121,0.00047885,0.000449488,0.000445631,0.0005083,0.000449022,0.000389541,0.000287302,0.000369576,0.000360656,0.000362867,0.000327731,0.000361206,0.000411935,0.000363799,0.000384439,0.000336671,0.000338369,0.000386644,0.000518461,0.000406032,0.000416572,0.000344693,0.000455645,0.000355722,0.000387614,0.000410511,0.000461239,0.000449724,0.000480679,0.000478655,0.000463813,0.000430289,0.000384765,0.000384074,0.00047062,0.000680126,0.00063519,0.000468637,0.000416477,0.000390255,0.000514535,0.000721736,0.000740177,0.000545575,0.000429502,0.000372957,0.000411893,0.000605807,0.000535967,0.000478231,0.000441691,0.000435387,0.000439446,0.000360311,0.000353199,0.000475408,0.000465038,0.000491874,0.00044429,0.00057094,0.000506556,0.000500984,0.000396235,0.000378887,0.000327136,0.000400142,0.000514336,0.000498521,0.000453928,0.000399579,0.000378551,0.000298772,0.000421912,0.000458608,0.000441611,0.0003845,0.000335846,0.000277214,0.000342982,0.000364092,0.000406162,0.000374341,0.000410162,0.000416295,0.000559881,0.000547484,0.000544372,0.000418065,0.000376756,0.000388873,0.000452432,0.000466009,0.00040653,0.000395257,0.000380245,0.000375776,0.000377601,0.00040138,0.000501121,0.000443009,0.000432384,0.00034494,0.000321094,0.000397407,0.000462112,0.000377765,0.000347711,0.000294061,0.000404387,0.000422725,0.000341684,0.000317353,0.000302288,0.000298591,0.000225087,0.000340406,0.000405854,0.000385153,0.000361438,0.000323333,0.00023931,0.000258149,0.000397911,0.000428136,0.000427679,0.000378205,0.00030663,0.000370588,0.000504031,0.000684065,0.001004425,0.001600823,0,0,0,0,0 +DIFFERENTIAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000719011,0.000719166,0.000719321,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001332149,0.001332149,0.001332642,0,0,0,0.001487499,0.001488521,0.001486054,0,0,0,0.001334795,0.001334923,0.001334541,0,0,0,0.002162467,0.002162264,0.002161654,0,0,0,0.001922624,0.001921719,0.001923907,0,0,0,0.001715642,0.001715829,0.001714265,0,0,0,0.00152632,0.001525979,0.001525922,0,0,0,0.002803447,0.002824372,0.002821942,0,0,0,0.002109639,0.0021037,0.00210136,0,0,0,0.002070393,0.00212166,0.002201354,0,0,0,0.001788189,0.001777106,0.00174744,0,0,0,0,0.002316991,0.002338338,0.002308693,0.002486135,0.001910524,0,0.00185364,0.001869908,0.00189056,0.001768923,0.001630125,0.001314204,0.001137245,0.001196483,0.001667331,0.001920755,0.001903251,0.001084501,0,0,0.001508571,0.002220664,0.002265835,0.001900863,0.00082966,0,0.001076233,0.001666609,0.001498171,0.001163467,0.000464606,0,0.001013664,0.002292921,0.002193331,0.002107482,0.000510517,0,0.000814848,0.00192082,0.00176068,0.001604094,0,0,0.000585375,0.001702731,0.001761841,0.001623251,0,0,0,0.002132846,0.002148423,0.002414554,0,0,0,0.001912357,0.001719596,0.001631131,0,0,0.000895556,0.001790859,0.001599944,0.00141369,0,0,0.000555273,0.001850139,0.0017205,0.001742271,0.001072994,0.000495,0.000406555,0.000995991,0.00112642,0.000924084,0.000603883,0.000205281,0,0.000490893,0.000911066,0.000947238,0.000827759,0.000235081,0.000398312,0.000914498,0.000963537,0.000878837,0.000708204,0.000362534,0.000260308,0.000590761,0.000942294,0.00093786,0.000800866,0.00033223,0.000282097,0.000550108,0.000813539,0.000859084,0.00071073,0.000432304,0.000282647,0.000368604,0.00077182,0.000738491,0.000787233,0.000413477,0.000422304,0.000406765,0.000763,0.000763378,0.000795317,0.000479584,0.000297086,0.000361442,0.000814993,0.000749746,0.000772641,0.000426547,0.000269881,0.000338541,0.00057861,0.000593263,0.000562649,0.000377709,0.000213987,0.000345022,0.000727172,0.000722603,0.000673317,0.000415187,0.000223689,0.000254969,0.000701748,0.000681483,0.000691457,0.00039944,0.000265312,0.000263178,0.000461643,0.000636999,0.000538173,0.000461009,0.000161417,0.000160922,0.000301478,0.000588814,0.000552089,0.000534846,0.000208902,0.000172769,0.000364866,0.000608083,0.00052084,0.000464786,0.000225339,0.000218154,0.000313332,0.000637287,0.000545284,0.000569283,0.000246582,0.000181877,0.00023344,0.000488634,0.000459842,0.0004702,0.000252753,0.000159713,0.000224578,0.000431237,0.000423498,0.000399013,0.000282931,0.000141388,0.000223623,0.000547604,0.000494051,0.000474126,0.000292633,0.000187441,0.000247565,0.000427727,0.000352763,0.000325502,0.000202055,0.000152631,0.000201736,0.0004202,0.000403492,0.000386793,0.000272764,0.000180738,0.000235951,0.000372362,0.000407263,0.000382165,0.000298736,0.000170723,0.000169705,0.000376476,0.000383372,0.000369026,0.000251903,0.00015312,0.000169606,0.000377876,0.000426508,0.000336298,0.000298235,0.00015674,0.000142314,0.000258735,0.000399019,0.000372653,0.000353085,0.000250867,0.00013688,0.000203826,0.000276002,0.000265371,0.00025895,0.000222916,0.000170639,0.000215875,0.000300232,0.000281103,0.000273628,0.000211216,0.000158711,0.000246953,0.00030327,0.000309171,0.000292925,0.000256178,0.00013599,0.000278639,0.000356631,0.000298131,0.000265481,0.000196519,0.000170936,0.000186441,0.00025471,0.000264808,0.000252144,0.000219271,0.000138284,0.000187526,0.000296818,0.000352788,0.000584855,0,0,0,0,0,0 +PARALLEL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000428249,0.000591284,0.00063244,0.000602682,0,0,0,0.000357085,0.000411809,0.000367884,0.000429,0.000375281,0.000323697,0.000293849,0.000539049,0.000603883,0.000615844,0,0.00021961,0,0.000467468,0.000591256,0.000402996,0.000354055,0.000351264,0.000709539,0.000819616,0.000886567,0.000703316,0.000473287,0.000535665,0.000709007,0.000782261,0.000741174,0.000604909,0.000471231,0.000633934,0.000712874,0.000833232,0.000784665,0.000779625,0.000530824,0.000548336,0.00063963,0.000753984,0.000797456,0.00077946,0.000670262,0.000756239,0.000870837,0.000876704,0.00090089,0.000819194,0.000824415,0.000749118,0.00080888,0.000833051,0.000851717,0.000810225,0.000852051,0.000797579,0.000713841,0.000791522,0.000796685,0.000827745,0.000543738,0.000459102,0.000471572,0.000675717,0.000744625,0.000914762,0.000730891,0.000677262,0.000612435,0.000734004,0.000716819,0.000720894,0.000807472,0.000662818,0.00065577,0.000536962,0.000612819,0.000578744,0.00057824,0.000522291,0.000505073,0.000500354,0.000517147,0.000568894,0.000600341,0.00047299,0.000352498,0.000331681,0.000351919,0.000391032,0.000440708,0.000429891,0.000364488,0.000347747,0.000483027,0.000517764,0.00052933,0.000381077,0.00031505,0.000358861,0.000427606,0.000478208,0.00046338,0.000239569,0.000222691,0.000255701,0.000401261,0.000440899,0.000450281,0.000335226,0.000294681,0.000306495,0.000347328,0.000363412,0.00038021,0.000342564,0.000285652,0.00028712,0.000345637,0.000362575,0.000369471,0.000319701,0.000274434,0.00021383,0.000205,0.000229359,0.000284172,0.000298772,0.000233951,0.000250523,0.000264149,0.00028565,0.000266265,0.000283976,0.00025545,0.000239013,0.000266976,0.000262722,0.000269695,0.000186615,0.000184195,0.000207021,0.000243719,0.000305965,0.000319126,0.0003234,0.000206037,0.000201556,0.000256311,0.000313235,0.000321398,0.000339038,0.00025252,0.000225776,0.000272147,0.000307066,0.000324288,0.000327898,0.000238527,0.000305415,0.000352937,0.000328128,0.000310669,0.000270924,0.000230457,0.000233879,0.000282041,0.000302742,0.000308307,0.000263812,0.000213364,0.000288247,0.000344558,0.000338956,0.000327533,0.000305697,0.000191974,0.000272491,0.00025471,0.000342268,0.000348055,0.000381884,0.000316651,0.000221013,0.000184811,0.000163487,0,0,0,0,0,0,0 +EXCHANGE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000564122,0.000564069,0.00056391,0,0,0,0,0,0,0,0,0,0.000401533,0.000401577,0.000401211,0,0,0,0,0,0,0,0,0,0.00072682,0.000723315,0.000757106,0,0,0,0.000713554,0.000711546,0.000710754,0,0,0,0.000475631,0.000474582,0.00052944,0,0,0,0.000581161,0.000555346,0.000597226,0,0.002609263,0.003412241,0,0.000786902,0.000699316,0.000692608,0,0,0,0.000579262,0.000572421,0.000547732,0,0,0,0.000516929,0.000676273,0.000507449,0,0.000528681,0,0,0,0.000502857,0.000701262,0.000627462,0.000877321,0.001192637,0.001451547,0.001076233,0.000555536,0.000749085,0.001026589,0.001773948,0.001576293,0.000810931,0.000429923,0.000540386,0.001013212,0.001480498,0.001514005,0.001177003,0.00096041,0.001096273,0.001298552,0.002011494,0.001668144,0.001215778,0.000638524,0.000725464,0.000888923,0,0.001073784,0.001010426,0.000533211,0.000655451,0.001124016,0.001590999,0.001782884,0.001196387,0.001098588,0.00102444,0.000893239,0.001174562,0.001282443,0.001231389,0.000661839,0.000660847,0.00078125,0.001657375,0.001817081,0.002128546,0.001255451,0.001168641,0.001172073,0.001563506,0.001782002,0.001469852,0.00109559,0.000832572,0.000641725,0.000544967,0.000559858,0.000546418,0.00058132,0.000525615,0.000639693,0.000658828,0.000604493,0.000501578,0.000339151,0.000458301,0.000471398,0.000503612,0.000507548,0.000567944,0.000535665,0.000510028,0.000517955,0.000519816,0.000535956,0.000461614,0.000589402,0.000550577,0.00056278,0.000522315,0.000535761,0.000406735,0.000426483,0.000449873,0.000528478,0.000513235,0.000553165,0.000511414,0.00056145,0.000522909,0.000480062,0.000425811,0.000415334,0.000460484,0.000562567,0.00050122,0.000417962,0.000365728,0.000364387,0.000474219,0.000467645,0.00041456,0.000320847,0.000312583,0.000325472,0.000438498,0.00043406,0.000408167,0.000375092,0.000378483,0.000374681,0.000403161,0.000475411,0.000457503,0.000408634,0.000363082,0.000365202,0.000415271,0.000467871,0.000490052,0.000428099,0.000386473,0.000358878,0.000359612,0.00040654,0.000456132,0.000431244,0.000377377,0.000309274,0.000259607,0.000393686,0.000377235,0.000398914,0.000349573,0.000418864,0.000452673,0.000532551,0.000485984,0.000420878,0.000346706,0.000296233,0.000333708,0.000395511,0.000402353,0.000421099,0.00038494,0.000384397,0.000344804,0.000581024,0.000530306,0.000518314,0.000384079,0.000351617,0.000394899,0.000551869,0.000585182,0.000410022,0.000357275,0.000343974,0.000341762,0.000409353,0.000405625,0.000321386,0.00030074,0.000296585,0.000330023,0.000416643,0.000472535,0.000493548,0.000409186,0.000403575,0.000376476,0.000435248,0.000449906,0.000476405,0.000426073,0.000421081,0.000371101,0.000375254,0.000414437,0.000423536,0.000428953,0.000431289,0.000448556,0.00049445,0.000439516,0.000385359,0.000348598,0.000352783,0.000370272,0.000412682,0.000516155,0.000420265,0.000360526,0.000342298,0.000356857,0.000368428,0.000408281,0.000443713,0.000367745,0.000334862,0.000325249,0.000344259,0.00046788,0.000426845,0.000421642,0.000354775,0.000354282,0.000336602,0.000376123,0.000395125,0.000399306,0.000365278,0.000347096,0.000350336,0.000443141,0.000392565,0.0003427,0.000296519,0.000296187,0.00028806,0.00035502,0.000394395,0.000402606,0.000328458,0.000299194,0.000284022,0.000316651,0.000433097,0.000436827,0.000425927,0.000190714,0,0,0,0,0,0 +FOUNDATION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004168328,0.006256174,0.006502776,0.001084501,0.000881679,0,0.005211429,0.004480287,0.004008784,0,0,0,0.004573991,0.003541544,0.003025152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000363,0.000312735,0.000248998,0.000179574,0.000154014,0.000147288,0,0.000418921,0.00043922,0.000443853,0.000381355,0.000405433,0.000386204,0.000590092,0.000539008,0.000516279,0.000480873,0.000482628,0.00047492,0.000370741,0.000333642,0.000347642,0.000385802,0.000422817,0.000398049,0.000371856,0.000335304,0.000480728,0.000503121,0.00054378,0.000491422,0.000475673,0.000435622,0.000424288,0.000464785,0.000519369,0.000522434,0.000441676,0.000358068,0.000376413,0.000390346,0.000432849,0.00040845,0.000378785,0.000378931,0.000372859,0.000383491,0.000360785,0.000420117,0.000427953,0.00039592,0.000363571,0.000363223,0.000384717,0.000389763,0.000354306,0.000308851,0.000322967,0.000381987,0.000442935,0.000460756,0.000423969,0.000318712,0.000371835,0.000454749,0.000479214,0.000500251,0.000507554,0.000428882,0.000416663,0.000392791,0.000465935,0.000489379,0.000537375,0.000431948,0.000364123,0.000348313,0.000394849,0.00044405,0.000468509,0.00041068,0.000397849,0.000419831,0.000453975,0.000464786,0.00044669,0.000368936,0.000341042,0.000365656,0.000392862,0.000395407,0.000391244,0.000352207,0.000371986,0.000407857,0.000405799,0.000409566,0.000376008,0.000346962,0.000351021,0.000367657,0.000363864,0.000394604,0.000404531,0.000431005,0.000430526,0.000416833,0.000436025,0.000459759,0.000464582,0.000517078,0.000382773,0.000389917,0.000365591,0.000387043,0.000385828,0.000449644,0.000399837,0.000391606,0.000394543,0.000407571,0.000428333,0.000411272,0.000349927,0.000331293,0.000365556,0.000396953,0.00041285,0.000419202,0.000391214,0.000400006,0.000390697,0.0004199,0.00041578,0.00045617,0.00039757,0.000365405,0.000375567,0.000415427,0.000434386,0.000466251,0.000392957,0.000410259,0.000394325,0.000421091,0.000399107,0.000402017,0.000368161,0.000357479,0.000367745,0.000365265,0.000375214,0.000353803,0.000267885,0.000299282,0.000329408,0.000377242,0.000379972,0.000370934,0.000328292,0.000350092,0.000374033,0.000388071,0.000390566,0.000390205,0.000337631,0.000355505,0.000359418,0.000412011,0.000412615,0.000424952,0.000294535,0.000319101,0.000355655,0.000410722,0.000431298,0.000450314,0.000505038,0.000484443,0.000462028,0.000382904,0.00024157,0,0,0,0,0,0 +RELATIONSHIP,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000476713,0.000476758,0.000476622,0,0,0,0.000470102,0.000470057,0.000469925,0,0,0,0,0,0,0,0,0,0.000620551,0.000620619,0.000620053,0,0,0,0.000521182,0.000521066,0.000521047,0,0,0,0,0,0,0,0,0,0.000341265,0.000340304,0.000339926,0,0,0,0,0,0,0,0,0,0.000223524,0.000222138,0.000221195,0,0,0,0,0.000240442,0.00024039,0.000272846,0,0,0,0.000212396,0.000209888,0.000194357,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000525431,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000473381,0.000541193,0.000568214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00036342,0,0,0.000337227,0.000462,0.000469102,0,0.000195899,0.00025669,0.000309306,0.000354577,0.000291423,0.000271283,0.000221926,0.000221432,0.000202716,0.000235081,0.000368808,0.000393658,0.000574257,0.000514037,0.000598039,0.000507548,0.000587665,0.000495872,0.000560345,0.000586163,0.000574534,0.0004576,0.000426352,0.00047938,0.00054236,0.000558803,0.000584325,0.000554236,0.00047912,0.000423437,0.000509572,0.000514706,0.000547996,0.000528021,0.000643142,0.000595825,0.000604296,0.000557187,0.000575373,0.000497942,0.000534755,0.000472207,0.000688669,0.00060468,0.000637552,0.000495138,0.000520484,0.000421741,0.000436729,0.00043738,0.000463264,0.000454054,0.000396402,0.000409018,0.000429963,0.000478518,0.000440193,0.000430377,0.00030172,0.000377142,0.000406467,0.000466278,0.00047254,0.00047172,0.000372975,0.000454875,0.000440337,0.000486944,0.00043102,0.000442569,0.000371872,0.000431948,0.000411106,0.000432626,0.000407661,0.000404326,0.000387382,0.00041068,0.000416401,0.000424313,0.000429341,0.000432779,0.000404813,0.000410642,0.000473195,0.000529829,0.000498055,0.000473973,0.000433985,0.000409946,0.000425127,0.000459501,0.000437087,0.000443887,0.000422815,0.000468124,0.000430284,0.000436766,0.000416422,0.00040232,0.000393695,0.000446968,0.000493224,0.000479494,0.00040784,0.000372709,0.000346034,0.000346873,0.000403721,0.000426545,0.000374143,0.000356643,0.000325212,0.0003032,0.000379845,0.000417714,0.000396984,0.00037081,0.000345363,0.000378075,0.000419913,0.000413432,0.00037864,0.000375938,0.000366462,0.000371873,0.000387641,0.000378953,0.000391511,0.000385731,0.000385814,0.00039237,0.000452282,0.000460186,0.000435498,0.000389051,0.000376756,0.000326376,0.000312242,0.000390246,0.000426247,0.000373298,0.000357612,0.000346385,0.000533361,0.000484479,0.000419399,0.000356144,0.000344466,0.000314264,0.000313755,0.000371649,0.000361407,0.000345892,0.000332775,0.0003269,0.000323944,0.000344282,0.000338652,0.000343069,0.000333051,0.00034355,0.000325908,0.00035276,0.000347344,0.000345939,0.000339048,0.000341809,0.000339242,0.000335235,0.000349786,0.000348273,0.000334784,0.000317133,0.000268552,0.000328171,0.000369623,0.000335579,0.000292427,0,0,0,0,0,0 +CONDUCTED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00030657,0.000726001,0.000719289,0.000497996,0.000604022,0.000744401,0.000927917,0.000914435,0.000728558,0.00080093,0.000805943,0.000873427,0.000793973,0.000738825,0.000826129,0.000593515,0.00058254,0.000549569,0.000569186,0.000500297,0.000536392,0.000468324,0.000457424,0.000392196,0.000442714,0.000460734,0.000564195,0.000468902,0.000449912,0.000405679,0.000469845,0.000509897,0.000517036,0.000459993,0.000469062,0.000487163,0.000498921,0.000553165,0.000608273,0.00056145,0.000498493,0.000472193,0.000504991,0.000592023,0.000753857,0.000690821,0.000605132,0.000580263,0.000579893,0.000585163,0.000632292,0.000602487,0.000609647,0.000549374,0.000559443,0.00055049,0.000564785,0.00054814,0.000570642,0.000479897,0.000506016,0.000470883,0.00055142,0.0004701,0.000493958,0.000512394,0.00051659,0.000524978,0.000530624,0.000539352,0.00048295,0.000426627,0.000438244,0.00044115,0.000449515,0.000423479,0.00046592,0.000507265,0.000529959,0.000520659,0.000474594,0.000405015,0.000410217,0.000413855,0.00044811,0.000452261,0.000502527,0.000426683,0.000449749,0.000432818,0.000456193,0.00045079,0.000443848,0.000459024,0.000482064,0.000504524,0.000475013,0.00046448,0.000435296,0.000393775,0.000388765,0.000353836,0.000372961,0.000369253,0.000387675,0.000383116,0.000422167,0.000416833,0.000387117,0.000382006,0.00036419,0.00040289,0.000392295,0.000361559,0.000359177,0.000354419,0.000354077,0.000385704,0.000418012,0.000404038,0.000335972,0.000326856,0.000330843,0.000413116,0.000401916,0.000342245,0.00033039,0.000348696,0.000384089,0.000436105,0.000403718,0.000347993,0.000336162,0.000345487,0.00037364,0.000419485,0.000428573,0.000354181,0.000332616,0.000348827,0.000342178,0.000368041,0.000303745,0.000331638,0.00032391,0.000336485,0.000344786,0.000394669,0.000455481,0.000363751,0.000302985,0.000335731,0.00034879,0.000391978,0.000399992,0.000366743,0.000362349,0.000379855,0.000394311,0.000385861,0.000354382,0.000383504,0.000353815,0.000350082,0.000331714,0.000351184,0.000351699,0.00032119,0.000305551,0.000320155,0.000336489,0.000342649,0.000341871,0.000349577,0.000329832,0.000312245,0.000293162,0.000280343,0.000260536,0.000319241,0.000378023,0.000387207,0.000317856,0,0,0,0,0,0 +COOPERATIVE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000572055,0.00057211,0.000571946,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000401533,0.000401577,0.000401211,0,0,0,0.000707319,0.000707161,0.000707135,0,0,0,0.000346105,0.000344436,0.000344139,0,0,0,0.000403313,0.000402178,0.000401731,0,0,0,0.005931397,0.005918316,0.005907432,0,0,0,0.004045778,0.004109559,0.004069986,0,0,0,0,0.002229557,0.00222907,0.002182765,0,0,0,0.00030894,0.000343452,0.000371044,0,0,0,0.000930473,0.000832336,0.000724927,0,0,0,0,0,0,0,0.00034859,0.000536141,0.000622245,0,0,0.000451373,0.000460976,0.000410635,0,0,0.000446012,0.000501576,0.000508598,0.000405285,0,0,0.00072431,0.000853698,0.001395256,0.001451323,0.001628352,0.00099046,0.001035663,0.001099681,0.001796386,0.00200974,0.002753224,0.002403232,0.002342351,0.001828154,0.001456558,0.001415428,0.001875107,0.002377179,0.003290064,0.002481995,0.002817211,0.002097169,0.00218133,0.001709924,0.002462778,0.001907654,0.001947758,0.001822917,0.002360504,0.003854413,0.003794364,0.004328003,0.004707028,0.005163457,0.004046721,0.003564004,0.005410308,0,0.004277132,0.002887762,0,0.003191192,0.003351365,0,0.00245287,0.002214322,0.002331239,0.002132518,0.00230136,0.001356606,0.000996668,0.000916738,0.00086296,0,0.000966294,0.000951952,0.000850809,0.000816365,0.000845634,0.00093714,0.000964901,0.001016391,0.000836138,0.000763631,0.00070119,0.000823964,0.000720404,0.000764624,0.000678008,0.000795298,0.000711576,0.00080181,0.000581152,0.000770562,0.000722307,0.000818467,0.000721416,0.000718229,0.000583032,0.001011455,0.000988179,0.000881885,0.000650732,0.000613027,0.000628436,0.000880779,0.00090006,0.000762767,0.000705315,0.000662999,0.000655993,0.000742911,0.000624139,0.000650894,0.000596523,0.000673413,0.000660663,0.000791467,0.000809289,0.000730161,0.000608696,0.00052688,0.000484483,0.000737547,0.000866469,0.000719382,0.000624859,0.000524841,0.000494467,0.000765085,0.000806551,0.000695243,0.00050317,0.000415676,0.000539496,0.000869509,0.000752408,0.000605094,0.000497379,0.000512099,0.000532439,0.000567841,0.000543535,0.000523859,0.000455119,0.000422454,0.000381381,0.000375303,0.000425127,0.000405208,0.000386837,0.000368381,0.000394731,0.000553487,0.000554839,0.000417415,0.000321413,0.000286584,0.000305806,0.000460651,0.000486955,0.000411384,0.000315828,0.000283124,0.000278749,0.000301629,0.000352304,0.000298936,0.000317131,0.000301775,0.000361774,0.000383641,0.000452543,0.000346851,0.000380714,0.000352429,0.000386848,0.000313526,0.000267944,0.000220406,0.000219988,0.000213265,0.000224516,0.00020453,0.00021615,0.000162232,0.000158721,0.000174642,0.000204144,0.000266365,0.000217022,0.000174596,0.000218748,0.000206395,0.000215392,0.000185508,0.000184796,0.000155813,0.000121114,0.000147253,0.000156927,0.000160597,0.00011092,9.56E-05,0.000138001,0.00015679,0.000165747,0.000167698,0.000141282,0.000115297,0.000140234,0.000144731,0.000155932,0.000139567,8.48E-05,7.55E-05,0.00012333,0.00012624,0.000140443,0.000117061,0.00017116,0.000120789,0.000131879,0.000135905,0.000151612,0.000161247,0.000181455,0.000138038,0.000111509,9.25E-05,0.000115214,0.000125087,0.000172354,0.000131715,0.000131608,0.000154883,0.000127142,0,0,0,0,0,0 +INCREASING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000261199,0.000346531,0.000441865,0.000447887,0.000273209,0.000245446,0.000210246,0.000233734,0.000253395,0.000302247,0.000354055,0.00030887,0.000311976,0.000360062,0.000367217,0.000355284,0.00025242,0.000254058,0.00028589,0.000309068,0.000328305,0.000325962,0.00024363,0.00023838,0.000240364,0.000294316,0.000312435,0.000406439,0.000324009,0.000332048,0.000255852,0.000270264,0.000249461,0.000265408,0.000236335,0.000232028,0.000227883,0.000266002,0.000276249,0.000302895,0.000274805,0.000276911,0.000264873,0.000267151,0.000276767,0.00029794,0.000281447,0.000240995,0.000234991,0.000255769,0.000264493,0.000263191,0.000273623,0.000289374,0.000265507,0.00026615,0.000263293,0.000275104,0.000270508,0.000239034,0.00024789,0.000295907,0.000321701,0.000351888,0.000322989,0.00029242,0.000305395,0.00028687,0.000311827,0.000309231,0.000384131,0.000319021,0.000317139,0.00025847,0.000287692,0.000268132,0.000271776,0.000246408,0.000267981,0.000267437,0.000295612,0.000301971,0.000321059,0.000269484,0.000279228,0.000282078,0.000352073,0.000359344,0.000406039,0.00034932,0.000335926,0.000325756,0.000326156,0.000336347,0.000349485,0.000366238,0.000356683,0.000334485,0.000345671,0.000343901,0.000373228,0.000367152,0.00031976,0.000320117,0.000353959,0.000398063,0.00041759,0.000439516,0.000308504,0.000295391,0.000352763,0.000399648,0.000424315,0.00041458,0.000336227,0.000329447,0.000394543,0.00042755,0.000469818,0.00044078,0.000425911,0.000407956,0.000424437,0.000461555,0.000498203,0.000579784,0.000482319,0.000430966,0.000406162,0.000425974,0.000481331,0.00056463,0.000547115,0.000422772,0.000394545,0.000453673,0.000465362,0.000505932,0.000471549,0.000473156,0.000527645,0.000530239,0.000543962,0.000531124,0.000519201,0.00049075,0.000465657,0.000469502,0.000467936,0.000473782,0.000462376,0.000440337,0.00042823,0.000471291,0.000485719,0.00052095,0.000519615,0.000464853,0.000469058,0.000512558,0.000539704,0.000551376,0.000529893,0.000474922,0.000484796,0.000514074,0.000533521,0.000555125,0.00059696,0.000580836,0.000487118,0.000512202,0.000526606,0.000560685,0.000571174,0.000529092,0.00048723,0.000503369,0.000432284,0,0,0,0,0,0 +SPECIAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001253624,0.001253918,0.00125274,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00043161,0.000470625,0.000471161,0,0,0,0.00073006,0.00073014,0.000765948,0,0,0,0.000632864,0.000632723,0.000632699,0,0,0,0,0,0,0,0,0,0.000465362,0.000464051,0.000463535,0,0,0,0.000531587,0.000558332,0.000557305,0,0,0,0.000536457,0.000488704,0.000464509,0,0,0,0,0.000480885,0.000524487,0.000608656,0.001912412,0,0,0.000559954,0,0.000530063,0.000931012,0,0.00109517,0.000620315,0.000676273,0.000362463,0.000548787,0.000634417,0.001084501,0.001322518,0,0.001371429,0.001246688,0.001289783,0.003314325,0.005340939,0.005806189,0.002959641,0,0.001267683,0.002190056,0.003547897,0.003047499,0.001662409,0.000931499,0.001080772,0.001134798,0.002297325,0.002562162,0.002172929,0.00096041,0.001162713,0.001833251,0.004310345,0.005421467,0,0.002092941,0,0,0.00487852,0,0,0,0.000873935,0.001165647,0.00119325,0.000924459,0,0.00052895,0.000548807,0.000776729,0.001118631,0.001160305,0.000783611,0.000467181,0.00048694,0,0,0,0,0,0,0.000348454,0.000337227,0.000396,0,0,0.000375473,0.000487711,0.000559696,0.000541196,0.000437135,0.000490893,0.000525615,0.000602788,0.000641935,0.000520536,0.000339303,0.000502671,0.000651561,0.000656166,0.000592793,0.000409664,0.000366797,0.00048669,0.000633532,0.000701264,0.000681482,0.000517151,0.000397501,0.000440087,0.000567012,0.000783517,0.00082998,0.000857218,0.000420523,0.000466085,0.000567139,0.000722999,0.000758606,0.000720791,0.000406806,0.000432546,0.000490355,0.000487932,0.000513789,0.000468111,0.000475338,0.000431399,0.00050937,0.000540047,0.000543649,0.000505855,0.000458797,0.000516418,0.000512103,0.000460082,0.000407159,0.000385745,0.00036483,0.00043406,0.00048346,0.000482655,0.00048956,0.000448942,0.000455182,0.000416981,0.000435631,0.000439377,0.000429824,0.000412755,0.00036913,0.000412636,0.000449806,0.000478117,0.000445468,0.000425547,0.000349396,0.000313374,0.000368038,0.000439537,0.000437944,0.000435538,0.000330593,0.000376693,0.000441138,0.000466147,0.000410572,0.000367375,0.000321059,0.000307982,0.000383672,0.000467145,0.000487321,0.000489429,0.000402751,0.000363755,0.000406148,0.000438314,0.000423814,0.000398126,0.00039005,0.000404789,0.000441607,0.000497581,0.000431583,0.000404525,0.000337109,0.000289617,0.000336479,0.000444077,0.000416959,0.000403134,0.000346034,0.000325328,0.00037706,0.000463174,0.000421178,0.000401872,0.00031559,0.000257823,0.000261712,0.000380418,0.000406746,0.000422755,0.00040759,0.000359633,0.000345928,0.000347721,0.000342657,0.000340913,0.000304303,0.00030426,0.000348341,0.000439635,0.000349186,0.000328023,0.000277187,0.00033176,0.000300913,0.000402818,0.000376566,0.000358718,0.000358026,0.000308519,0.000318614,0.000330209,0.000358648,0.000339069,0.000327433,0.000308598,0.000379961,0.000421763,0.000360807,0.000312278,0.000291619,0.000269272,0.000306416,0.000343438,0.000354819,0.000304093,0.000290954,0.000277641,0.000254372,0.000278912,0.000333597,0.000315016,0.000309644,0.000280778,0.000304806,0.000318445,0.000354774,0.000324452,0.000324974,0.0002889,0.000302425,0.000288625,0.000300487,0.000262406,0.000257572,0.000239873,0.000254523,0.000299149,0.000358422,0.000395811,0.000483141,0,0,0,0,0,0 +RECENTLY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000273898,0.000342824,0.000295193,0.000309306,0.000205281,0.000364279,0.00036171,0.000373771,0.000270639,0.000337861,0.000235081,0.00038356,0.000448164,0.000596344,0.000566151,0.000535088,0.000453168,0.000429902,0.00048669,0.00046886,0.000488114,0.000470073,0.00043566,0.000426352,0.000411271,0.000480728,0.000473292,0.000512775,0.000461863,0.000444651,0.000402113,0.000462666,0.000454456,0.000460071,0.000391127,0.000449424,0.000444004,0.000447627,0.00040766,0.000422292,0.000406155,0.000445629,0.00041391,0.000438059,0.000423707,0.00042174,0.000424404,0.000381688,0.000418872,0.000403475,0.000441921,0.000429601,0.000433963,0.000449022,0.000439625,0.000489404,0.000468865,0.000451163,0.000403373,0.000369347,0.00037183,0.00044839,0.000476526,0.00047521,0.000439384,0.000334524,0.000438629,0.000426132,0.00048253,0.000435836,0.000431221,0.000375958,0.000440418,0.000446344,0.000492061,0.00047871,0.000496541,0.000446199,0.000439003,0.000465875,0.000484076,0.000486821,0.000482876,0.000442702,0.000378561,0.000411381,0.0004761,0.000489468,0.000475261,0.000447136,0.000404172,0.000434617,0.000475392,0.000490183,0.000495369,0.000469621,0.00038276,0.000415186,0.000492053,0.000506378,0.000484989,0.000443057,0.000383116,0.000397087,0.000480856,0.000468353,0.000457223,0.000398366,0.000331791,0.000453234,0.000515162,0.000446121,0.000408545,0.000331947,0.00035889,0.000378028,0.000446307,0.000425456,0.000402776,0.000365068,0.00034119,0.000363924,0.00041617,0.000387636,0.000400066,0.000365534,0.000341447,0.000328691,0.000442112,0.000444418,0.000439642,0.000369895,0.000336545,0.000320974,0.000426514,0.000418517,0.000388392,0.000386841,0.000332328,0.000339855,0.000368804,0.000427186,0.000409466,0.000396089,0.000353733,0.000316241,0.000326122,0.000354639,0.000353538,0.000355516,0.000334033,0.000310085,0.000337305,0.000398113,0.00035791,0.000363244,0.000314212,0.000308725,0.000341376,0.000396273,0.000382811,0.000375184,0.000351184,0.000314184,0.000319817,0.000346415,0.000322841,0.000321776,0.000293939,0.000312944,0.000326272,0.000346265,0.000345871,0.000332371,0.000322284,0.00029661,0.000321474,0.000302419,0.000266742,0.000216142,0,0,0,0,0,0 +REQUIRED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000473423,0.000539049,0.000574425,0.000447887,0.000546418,0.00058132,0.000502254,0.000430563,0.00038854,0.000470162,0.000634349,0.000514783,0.000535605,0.000497455,0.000487874,0.00042054,0.000370741,0.000388739,0.000434553,0.000485982,0.000547175,0.000586104,0.000551372,0.000455804,0.000470456,0.000445451,0.000477,0.000417524,0.000465333,0.000490456,0.000492515,0.000521592,0.000523459,0.000555959,0.00044555,0.000461191,0.000417107,0.000450157,0.000422292,0.000456638,0.000460484,0.000480951,0.000470658,0.000514193,0.000517291,0.000553011,0.000524339,0.000616832,0.000576393,0.000558455,0.000503338,0.000478163,0.00052269,0.000534228,0.000489404,0.00048955,0.000518358,0.000567085,0.000580031,0.000517906,0.000539526,0.000544418,0.000541953,0.000513566,0.000515244,0.000575092,0.000570544,0.000522251,0.000547805,0.000563141,0.000604802,0.000550522,0.000483539,0.000418804,0.000433285,0.000448306,0.000521242,0.000506977,0.000509164,0.000461665,0.000443418,0.000420255,0.000426749,0.000429891,0.000428433,0.00042237,0.000499128,0.000515188,0.000573715,0.000508102,0.0004498,0.000385345,0.000373563,0.000378677,0.000397851,0.000457109,0.000473689,0.000474084,0.000466959,0.000462944,0.000470749,0.000453809,0.000415897,0.000395038,0.000399551,0.000401444,0.000415454,0.000368418,0.000436095,0.000402914,0.000441845,0.000421891,0.000442596,0.000402204,0.000378028,0.000341879,0.00034248,0.000353228,0.000372328,0.000374387,0.000349927,0.000331293,0.000368009,0.000379829,0.000401717,0.00040737,0.000378709,0.000360377,0.000334534,0.000352321,0.000355848,0.00034771,0.000342859,0.000329239,0.000347599,0.000349486,0.000350822,0.000370025,0.000375965,0.000343074,0.000375548,0.000355861,0.000377982,0.000350584,0.000384681,0.000357479,0.000326885,0.000315318,0.00031516,0.000316309,0.000341278,0.000294376,0.000292702,0.00032238,0.000336957,0.0003575,0.000384819,0.000323944,0.000339663,0.000326705,0.000347096,0.000336763,0.000372801,0.000359623,0.000329698,0.000329824,0.000321776,0.000331731,0.000336612,0.000317308,0.00030753,0.000275016,0.00028532,0.000295059,0.000356733,0.000410772,0.000380823,0.000425927,0.000279713,0,0,0,0,0,0 +SOLUTION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000667398,0.000667461,0.00066727,0,0,0,0,0,0,0,0,0,0.000510084,0.000509844,0.000510424,0,0,0,0.000474539,0.000474591,0.000474158,0,0,0,0.000372273,0.00037219,0.000372176,0,0,0,0.000622988,0.000619984,0.000619451,0,0,0,0.000310241,0.000309368,0.000339926,0,0,0,0.000391696,0.000390832,0.000445844,0,0,0,0.0004694,0.000488704,0.000486629,0,0,0,0,0.000786902,0.00078673,0.000797549,0,0,0,0.000405484,0.000419775,0.000406382,0,0,0,0.000516929,0,0.000507449,0,0.000528681,0,0,0,0.000502857,0.000506467,0.000453167,0,0,0,0,0.000416652,0.000403354,0.000410635,0,0,0.000486559,0.00057323,0.000603961,0.000567399,0,0,0,0.000711415,0.000631187,0.000725662,0,0.000521295,0.000450288,0.000603051,0.000552734,0.000541084,0,0,0,0.000495125,0.000473381,0.000541193,0,0,0.000658013,0.000488261,0.000439046,0,0,0,0,0.000467181,0.000452158,0.000372024,0,0,0.000694091,0.000594687,0.000551858,0.000411809,0.000582483,0.000495,0.000594196,0.000473096,0.000604022,0.000808573,0.000780629,0.000858449,0.000437135,0.000503811,0.000408812,0.000442864,0.000540577,0.000688451,0.000649102,0.000641965,0.000684691,0.00068933,0.000647876,0.000522049,0.000469343,0.000529543,0.000608374,0.000607478,0.00056956,0.000495211,0.000468025,0.000482,0.000544414,0.000584655,0.000598635,0.000506202,0.000403288,0.000466085,0.000550082,0.000540528,0.000521414,0.000488909,0.000519163,0.000464056,0.000559533,0.000549317,0.000575373,0.00051171,0.000467911,0.000518845,0.000503258,0.00051563,0.000505759,0.000507998,0.000458797,0.000378706,0.000365788,0.0004283,0.000469675,0.000494236,0.000431482,0.000428496,0.000570642,0.000597113,0.000571839,0.000513077,0.000462985,0.000494003,0.000446567,0.00046884,0.000497902,0.00051737,0.00057292,0.000497113,0.00049242,0.000481059,0.000459915,0.00042271,0.000371872,0.000409363,0.000471793,0.000543202,0.000493852,0.000480936,0.000354931,0.000405015,0.000404033,0.000503498,0.000451629,0.000448087,0.000360942,0.000372144,0.00036662,0.000444758,0.000437945,0.000455942,0.000386312,0.000334886,0.000335926,0.000454204,0.000460791,0.000479352,0.000383809,0.000338701,0.00035857,0.000413269,0.00046797,0.000464046,0.000451485,0.000348909,0.000338569,0.000401849,0.000469182,0.000472436,0.000452834,0.000305938,0.000297078,0.000376919,0.00036274,0.000363316,0.000297309,0.000278449,0.000294426,0.000353067,0.000352242,0.000343638,0.000333954,0.000280329,0.000271943,0.000290224,0.000367191,0.000366598,0.000349763,0.000234956,0.00025545,0.000298456,0.000345116,0.000356118,0.000344611,0.000304645,0.000242554,0.000352934,0.000409528,0.000420703,0.000438708,0.000367049,0.000257015,0.000261594,0.000330482,0.000362965,0.000381754,0.000323293,0.00025252,0.000243023,0.000300672,0.000300985,0.000307473,0.000319036,0.000300911,0.000262485,0.000292702,0.00030775,0.000323215,0.000292568,0.000267417,0.000246953,0.000284063,0.000350082,0.000367159,0.000360515,0.000239155,0.000292365,0.000364061,0.000421143,0.000435645,0.000429991,0.000265608,0.000258149,0.000280533,0.000341668,0.000358309,0.000360546,0.000298614,0.000247803,0.00016801,0.000210813,0.00024157,0,0,0,0,0,0 +IMPLEMENTATION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000670092,0.000669942,0.000669917,0,0,0,0.001280587,0.001274412,0.001273315,0,0,0,0.000589458,0.000587799,0.000587145,0,0,0,0.00114711,0.001200413,0.001198205,0,0,0,0.000827037,0.000888553,0.00086266,0,0,0,0,0.000371593,0.000371512,0.000356798,0,0,0,0.007916586,0.009349539,0.008763715,0.008286007,0.000815062,0,0.004290514,0.004213702,0.003008445,0,0,0,0,0,0,0,0,0,0,0,0,0.000555536,0.000374543,0.000410635,0,0,0,0,0.000317874,0,0,0,0,0,0.000332204,0.000458313,0.00052682,0,0,0.00049663,0.000794556,0.001082167,0.001014346,0.000664724,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000248998,0.000228549,0.000385035,0.000427136,0.00048521,0.000364279,0.000310037,0.00035041,0.000369054,0.000506791,0.000520536,0.000427817,0.000314926,0.000295411,0.000310317,0.000333118,0.000384286,0,0.000318338,0.00033392,0.000364487,0.000375561,0.00035417,0.000246835,0.000259337,0.000351301,0.000433519,0.00045315,0.000413829,0.000282647,0.000316816,0.000356061,0.000402813,0.000427355,0.000391127,0.000344817,0.000326558,0.000388621,0.000426547,0.000434609,0.000413039,0.000282232,0.000320634,0.000401384,0.00041078,0.000416798,0.000385821,0.000346989,0.000327065,0.000305932,0.000435867,0,0.00050629,0.000463054,0.000392324,0.000410149,0.00037785,0.000434707,0.000437128,0.000455182,0.000361206,0.00040829,0.000430411,0.000443173,0.000426069,0.000407581,0.000311914,0.000366947,0.000385436,0.000449079,0.000429802,0.000431126,0.000321844,0.00035825,0.000363517,0.000447262,0.000461074,0.000482707,0,0.000364866,0.000369033,0.000428168,0.000425821,0.000454667,0.000269484,0.000313332,0.000343269,0.000510936,0.00053322,0.00058851,0.000355094,0.000400455,0.000345619,0.000461739,0.000459904,0.000524228,0.00033044,0.000373667,0.000362129,0.000374982,0.000373662,0.000397307,0.000394518,0.000344839,0.000325566,0.000402867,0.000417502,0.000445358,0.000411508,0.000354208,0.000313115,0.000401936,0.000418926,0.000456066,0.000348577,0.000347131,0.000321988,0.000379901,0.00039878,0.000433518,0.000333813,0.000233951,0.000283379,0.000358195,0.000397731,0.000397078,0.000392157,0.000319759,0.000302172,0.000332907,0.000392565,0.000495378,0.00057101,0.000488756,0.000340463,0.000361583,0.000398942,0.000408452,0.000407722,0.000276132,0.0002716,0.000301377,0.000410757,0.000433812,0.000481791,0.000354001,0.000302603,0.000285253,0.000336165,0.000352153,0.000394705,0.000354121,0.000340985,0.000312467,0.000373585,0.000381765,0.000407505,0.000310899,0.000246953,0.00028103,0.000392747,0.000429355,0.000448735,0.000318874,0.000300601,0.000282333,0.000395359,0.000426049,0.000461904,0.000289276,0.00028504,0.000308704,0.000362084,0.00042225,0.000445164,0.000474977,0.000321474,0.000299618,0.000339881,0.00024157,0,0,0,0,0,0 +SCHOOLS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001331975,0.001332288,0.001331037,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002040336,0.002039376,0.002041698,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000341265,0.000371241,0.000370828,0,0,0,0,0,0,0,0,0,0,0.000222138,0.000221195,0,0,0,0,0,0,0,0,0,0,0.000231705,0.000228968,0.000247363,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000316776,0,0,0,0,0,0,0,0.000559858,0.001220334,0.001123886,0.000899386,0.000787314,0.000709507,0.000705242,0.00057534,0.000442108,0.000215346,0.000163449,0.000118034,0.000174016,0.000276084,0.000352008,0.000365939,0.000309068,0.000305921,0.000241337,0.00031736,0.000277674,0.000291724,0.00027443,0.00027189,0.000280813,0.00033435,0.000389928,0.000317683,0.000304692,0.000226968,0.000265408,0.000162723,0.000303641,0.000319443,0.000387198,0.000323757,0.000316663,0.00024881,0.000343953,0.00032396,0.000344711,0.000337722,0.000396539,0.000404821,0.000384444,0.000330318,0.000337494,0.000367084,0.000391772,0.000442006,0.000425713,0.000396279,0.000375092,0.000507387,0.000560334,0.000621648,0.00030012,0.000318976,0.000370204,0.000432494,0.000446992,0.000442187,0.000211192,0.000250945,0.000248621,0.000331091,0.000321997,0.000396391,0.00040654,0.000371953,0.00028335,0.000276045,0.000258201,0.000296114,0.000240743,0.000270042,0.000251002,0.000286227,0.000304755,0.000360942,0.000320814,0.000306937,0.000264168,0.000309138,0.000311689,0.000387956,0.000421494,0.000381476,0.000244979,0.000289179,0.000268849,0.000380689,0.000327686,0.000383103,0.000320663,0.00031636,0.00030422,0.000315438,0.000321543,0.000280051,0.000261542,0.000250341,0.000295801,0.000384482,0.000536468,0.000392295,0.000326112,0.00037343,0.000384818,0.000419504,0.000453769,0.0004689,0.000395336,0.000379901,0.000391588,0.00041485,0.000499797,0.000543887,0.000435336,0.000387636,0.000378273,0.000394295,0.000397228,0.000366205,0.000377715,0.000369534,0.000380416,0.000441064,0.00055506,0.000587237,0.000443973,0.000382559,0.00034553,0.000340737,0.000345224,0.000367468,0.000440278,0.000404653,0.000490842,0.000487378,0.000571011,0.000526281,0.000664786,0.000558942,0.000514672,0.000465534,0.000463556,0.000464211,0.000426845,0.00041976,0.000465544,0.000494084,0.000511994,0.000436998,0.000444515,0.000457938,0.000545871,0.000551742,0.000574279,0.000407971,0.000407664,0.000397495,0.000450151,0.000452277,0.000466103,0.000378688,0.000390809,0.000376783,0.000441346,0.000464475,0.00052831,0.000589211,0.000587136,0.000476029,0.000499066,0.000394141,0.000628895,0,0,0,0,0 +ESTABLISH,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000228549,0.000231021,0.000279848,0.000373239,0.000309637,0.000387547,0.00033873,0.000455166,0.00038854,0.000470162,0.000486826,0.00056929,0.000455541,0.000452447,0.000401316,0.000398788,0.000354965,0.000449958,0.000478008,0.000530744,0.000514842,0.000573567,0.00051611,0.000492478,0.000404715,0.000395736,0.00035775,0.000395355,0.000399841,0.000414298,0.00038591,0.000402813,0.0004294,0.000469352,0.000484293,0.000452598,0.000419141,0.000432843,0.000425811,0,0.000349076,0.00041391,0.000448246,0.000463923,0.000446451,0.000432977,0.000435664,0.000438955,0.000476633,0.000463109,0.000480896,0.000456063,0.000442006,0.000428496,0.000443832,0.000424736,0.000447049,0.000427001,0.000447378,0.000382454,0.000402822,0.000454749,0.000459191,0.000454601,0.000422961,0.000396391,0.000430867,0.000404561,0.000411756,0.000407107,0.000398434,0.000381131,0.000369996,0.000381485,0.00039019,0.000404326,0.000421861,0.00041068,0.000445261,0.000379491,0.000391803,0.000356243,0.000378889,0.00032723,0.000413513,0.000449235,0.000418624,0.000392831,0.000340284,0.000369529,0.000379578,0.000403884,0.000414332,0.000406134,0.000421254,0.000388267,0.000373667,0.000330339,0.000361843,0.000386889,0.000432222,0.000435566,0.000392908,0.000380054,0.00038463,0.000392147,0.000362054,0.000342564,0.000348495,0.000378101,0.000381982,0.000392233,0.000398336,0.000404267,0.000403472,0.000371715,0.000370139,0.000347634,0.000357808,0.000363321,0.000395918,0.000380576,0.00039745,0.000381386,0.000382234,0.000322853,0.000309041,0.000314556,0.000330465,0.000346246,0.000371767,0.00040832,0.000488756,0.000440232,0.000414522,0.000373225,0.000370993,0.000359112,0.0003526,0.000343074,0.000379303,0.000385569,0.00039458,0.000399918,0.000403561,0.00040138,0.000388561,0.000379163,0.000386263,0.000390614,0.000434854,0.000401087,0.000415054,0.000420087,0.00042717,0.000407505,0.000443521,0.000416915,0.0004266,0.000392747,0.00039926,0.00041226,0.000483,0.000432371,0.000424429,0.000388376,0.000394703,0.000382121,0.000431284,0.000424871,0.000411996,0.000432339,0.000427076,0.000423089,0.000350721,0.000370588,0.000380823,0.000425927,0.00041957,0.000686067,0,0,0,0,0 +ADVANCES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000244874,0.000218186,0.000220933,0.000242605,0.000309637,0.000284201,0.000221926,0.000196829,0.000219609,0.000302247,0.000324551,0.000393658,0.000347867,0.000312686,0.00027279,0.000217521,0.000276084,0.000275485,0.000256158,0.000236597,0.00023628,0.00025074,0.000234013,0.000222663,0.000234201,0.000234657,0.0002385,0.000232779,0.000258518,0.000280261,0.000240927,0.000249607,0.000245371,0.000301727,0.00029445,0.000257809,0.000231952,0.000256558,0.000255135,0.000282243,0.000241383,0.000247763,0.000228198,0.00023268,0.000237229,0.000231493,0.000254459,0.000252471,0.000299281,0.000283011,0.000298156,0.000301363,0.000329751,0.000283809,0.000237767,0.000249601,0.000244094,0.00023291,0.000241896,0.00028684,0.000324445,0.000315122,0.000293669,0.000268195,0.000269157,0.000315163,0.000321967,0.00030011,0.0003034,0.000312068,0.000318747,0.000259734,0.000313224,0.000340019,0.000358741,0.000330555,0.000283945,0.000243576,0.000274165,0.000313753,0.000324939,0.000331194,0.000325047,0.000343271,0.000373014,0.000392521,0.000386422,0.0003748,0.00033864,0.000256938,0.00035111,0.000370779,0.000406747,0.000382109,0.000376008,0.000327686,0.000328374,0.000359364,0.000356789,0.000363741,0.000349149,0.000301019,0.000342749,0.000358258,0.000366393,0.000352425,0.000347102,0.000351182,0.000380869,0.000424182,0.000421178,0.00042634,0.000419504,0.000418705,0.00039802,0.000374202,0.000441726,0.000473102,0.000524785,0.00051824,0.000465903,0.000488726,0.000484136,0.000471674,0.000445321,0.000390467,0.000403718,0.000418582,0.000472092,0.000479885,0.000488823,0.000473715,0.000406689,0.0003891,0.00038156,0.000437847,0.000453116,0.000486091,0.000501286,0.000493169,0.000466618,0.000453383,0.000440602,0.000459748,0.000469641,0.000415491,0.00042017,0.000437362,0.00045016,0.00044515,0.00042201,0.000456282,0.000458347,0.000424789,0.000427768,0.000415715,0.000521789,0.000488095,0.000503428,0.000502038,0.000510946,0.000510659,0.000487689,0.000525708,0.000531232,0.000534487,0.000523286,0.000515653,0.000497028,0.000509128,0.00053407,0.000529015,0.000543496,0.000540819,0.000541113,0.000484443,0.000481629,0.000554996,0.000635712,0.000743239,0,0,0,0,0 +CO,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000231021,0.00025039,0.000223943,0,0.000155019,0.000163525,0.000196829,0.000270289,0.00033583,0.000324551,0.000242251,0.000187738,0.000215564,0.000212461,0.000253774,0.000216923,0.000217327,0.000201267,0.000200361,0.000206434,0.0002288,0.000269275,0.00030125,0.00028556,0.000266475,0.00023373,0.000225389,0.000206815,0.000237612,0.000196153,0.000206571,0.00017176,0.000187182,0.000185969,0.00022057,0.000195328,0.000209339,0.000205867,0.000229466,0.00019682,0.000230274,0.000224123,0.000222626,0.000202633,0.000201485,0.000215904,0.000258209,0.000263811,0.000239121,0.000222815,0.000204927,0.000192939,0.00023929,0.000225879,0.000244085,0.000233124,0.000291981,0.000366746,0.000398389,0.00028799,0.000245949,0.000234935,0.000268195,0.000303763,0.000279423,0.000241475,0.000245679,0.000240793,0.000245399,0.000302401,0.000324667,0.000364123,0.000328962,0.000336611,0.000309274,0.000296114,0.000354034,0.000371051,0.000364551,0.000301477,0.000275532,0.000247275,0.000304773,0.000400724,0.000450727,0.000460486,0.000439198,0.000425766,0.000404172,0.000383374,0.000395939,0.000398214,0.000412998,0.00038849,0.000415804,0.000430284,0.000398065,0.00037195,0.000361537,0.000378044,0.000451529,0.000455606,0.000450888,0.000383801,0.000414966,0.000416522,0.000530005,0.000457043,0.000437179,0.000424029,0.00041596,0.000427201,0.000404267,0.000430734,0.00038912,0.000418135,0.000399579,0.00042211,0.000392829,0.000449906,0.000433967,0.000444882,0.000452215,0.000451815,0.000444557,0.000473387,0.000507747,0.000548604,0.000582393,0.000590895,0.00061567,0.000537996,0.000461433,0.000476451,0.000465542,0.00048193,0.000528748,0.000598994,0.000537482,0.000495723,0.000448862,0.000442865,0.000429308,0.000512121,0.000493886,0.000451009,0.000436928,0.00043863,0.00044515,0.000546778,0.000542142,0.000534582,0.000448824,0.000422988,0.000416461,0.000491351,0.000501169,0.000461982,0.000422553,0.000408623,0.000410563,0.000468932,0.000503747,0.000466221,0.000468952,0.000461233,0.000479541,0.000457582,0.000480444,0.000521158,0.000499592,0.000486794,0.000465766,0.000442911,0.000520162,0.000607637,0.000632438,0.000495855,0,0,0,0,0,0 +ADDITIONAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000195899,0.000243855,0.000338763,0.000279929,0.000346065,0.000387547,0.000373771,0.00034445,0.000270289,0.000319038,0.000309798,0.000345208,0.000345107,0.000374275,0.000390824,0.000453168,0.000496951,0.000468324,0.000432266,0.000407117,0.000383023,0.000363573,0.000362239,0.000377217,0.000408824,0.000455394,0.00046746,0.000491422,0.000444651,0.000475224,0.000479723,0.000485442,0.000500966,0.000547578,0.000526911,0.000518482,0.000496459,0.000450157,0.000425811,0.000362557,0.000415921,0.000428484,0.000464546,0.000417962,0.000410208,0.000400826,0.00043952,0.000496335,0.000474416,0.000410139,0.000415174,0.000373691,0.000449022,0.000411801,0.000400242,0.000415083,0.000444307,0.000482697,0.000499399,0.000454164,0.00040829,0.000441939,0.000463196,0.000494545,0.000476793,0.000454875,0.000456909,0.000406032,0.000414164,0.000414199,0.000439299,0.000437595,0.000460047,0.000456124,0.000464733,0.000459655,0.000484735,0.000495648,0.000461752,0.000443736,0.000426995,0.000417472,0.000400825,0.000340063,0.000358094,0.000350732,0.000373541,0.000367072,0.000381381,0.000404172,0.000408046,0.000430368,0.000424762,0.000426727,0.00038849,0.000366238,0.000403863,0.000414651,0.000389133,0.000381377,0.000384063,0.000394518,0.000378278,0.000382778,0.000393748,0.000403134,0.000421862,0.000420126,0.000445617,0.000375738,0.000378419,0.000362575,0.000381979,0.000379516,0.00039802,0.00038912,0.000425456,0.000420357,0.00043663,0.000413116,0.000413914,0.000360042,0.000377005,0.000389948,0.000410994,0.000398918,0.000362632,0.000390099,0.000380116,0.000381934,0.00037364,0.00040194,0.000368391,0.000345451,0.000317634,0.000329704,0.00034578,0.000346216,0.000369592,0.000361657,0.000392447,0.000367486,0.00037421,0.000372627,0.000436601,0.000428035,0.000397813,0.000400011,0.000401157,0.000403567,0.00041834,0.000375329,0.000377407,0.000408069,0.000415221,0.000417954,0.000347859,0.000387862,0.000378077,0.000363525,0.000351777,0.000370694,0.000445485,0.000387075,0.000346415,0.000343253,0.000348644,0.000366164,0.00035502,0.000362126,0.000335701,0.000358481,0.000352277,0.000360546,0.000358738,0.00036389,0.000341621,0.000292556,0.000228856,0,0,0,0,0,0 +PREVIOUS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000192517,0.00025039,0.000298591,0.000236781,0.000193773,0.000221926,0.000270639,0.000304075,0.000319038,0.00038356,0.000563234,0.0006488,0.000634847,0.000624269,0.00058368,0.000603441,0.000596883,0.000553483,0.000528612,0.000507381,0.000476405,0.000503287,0.000466282,0.000507435,0.00051903,0.000546165,0.000532066,0.000548059,0.000548336,0.000511704,0.000500935,0.000496877,0.000502878,0.000457173,0.00043541,0.000423211,0.000417103,0.000436368,0.000458932,0.000583032,0.000524674,0.00050122,0.000435197,0.000439862,0.000405113,0.000385544,0.000372968,0.000403475,0.000410139,0.000392732,0.000405836,0.00036483,0.000431278,0.000427981,0.00040543,0.000377112,0.000359491,0.00037715,0.000398389,0.000351785,0.000402229,0.000429824,0.000483132,0.000499863,0.000454875,0.000392989,0.000422214,0.000394901,0.000407107,0.000322834,0.000392424,0.000395445,0.000439537,0.000406496,0.000412839,0.000393467,0.000487151,0.000467936,0.000472123,0.000443418,0.000448087,0.000420766,0.000461972,0.000441223,0.00045222,0.00041755,0.000418591,0.00039782,0.000404172,0.000406148,0.00049393,0.000428554,0.000434735,0.000324522,0.000380006,0.000415186,0.000465791,0.00041339,0.000387991,0.000399715,0.000421883,0.000489045,0.000461786,0.000436854,0.00040736,0.000393026,0.000413662,0.000445617,0.000411185,0.000381982,0.000362575,0.000374282,0.000431081,0.000479805,0.000440091,0.000407559,0.000376404,0.000371291,0.000363321,0.000423912,0.00038879,0.000382729,0.000356479,0.000363679,0.000390467,0.000460882,0.000434681,0.000417558,0.000416103,0.000425145,0.000384395,0.000395746,0.000409054,0.00044249,0.000388392,0.000383239,0.000342248,0.000371716,0.000388817,0.000377425,0.000387507,0.000383263,0.000397818,0.000384681,0.00037159,0.000364662,0.000369608,0.000373292,0.00036471,0.000337608,0.000359384,0.000375525,0.000342757,0.0003268,0.000308241,0.000282636,0.000350092,0.000383131,0.000360018,0.00035044,0.000330826,0.000335286,0.000303346,0.000348273,0.000320692,0.000323055,0.000286381,0.000323463,0.000344199,0.000328658,0.00031885,0.000310052,0.000306096,0.00030663,0.000325939,0.000341621,0.000283952,0.000165285,0,0,0,0,0,0 +PRACTICAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00030657,0.00033,0.000375281,0,0.000359148,0.000397869,0.000397679,0.000410563,0.000400707,0.000413383,0.000397131,0.000369054,0.000422326,0.000369413,0.000486826,0.000387602,0.000450019,0.000454816,0.00046689,0.000449542,0.000410182,0.000379557,0.000365939,0.000360224,0.000405407,0.000360438,0.000301331,0.000256717,0.000291724,0.0003321,0.00035298,0.000365796,0.000330903,0.000332048,0.000362457,0.000385599,0.000392594,0.000379952,0.000290576,0.000300777,0.000345893,0.00040766,0.000427571,0.000406155,0.000371358,0.000352698,0.000358597,0.000429452,0.000433272,0.000460842,0.000331568,0.000378706,0.000387957,0.000438894,0.000456852,0.000448027,0.000403418,0.000381194,0.000433925,0.00046197,0.000482704,0.000462444,0.000410964,0.00035855,0.00036819,0.000389419,0.000389779,0.000395636,0.00038451,0.000370398,0.000426132,0.000511953,0.000505666,0.000496472,0.000378002,0.000324667,0.000381741,0.000454741,0.000483369,0.000479517,0.000413749,0.000337041,0.000389603,0.000507981,0.000484475,0.00046896,0.000323053,0.000243819,0.000292017,0.000394013,0.000449752,0.000470109,0.000438917,0.000308903,0.000343518,0.000353564,0.000398214,0.000390117,0.00039161,0.000289135,0.000330262,0.000369039,0.000431583,0.000447512,0.000459913,0.000392237,0.000346929,0.000374605,0.000434367,0.000442011,0.00043361,0.000331791,0.000323739,0.000410003,0.000439707,0.000434496,0.000420466,0.000346515,0.00038348,0.000339392,0.000389662,0.000393186,0.000426258,0.000370698,0.00038392,0.000397004,0.000411352,0.000389948,0.000385945,0.000375254,0.000375137,0.000349231,0.000395581,0.000435845,0.000439191,0.00040513,0.000282676,0.000347945,0.000350596,0.000417405,0.000409893,0.000437482,0.000354724,0.000393105,0.000420613,0.000463071,0.000464744,0.000437705,0.000320961,0.000312011,0.00033074,0.000353104,0.000364644,0.000357211,0.00026605,0.000277204,0.000362349,0.000399187,0.000408052,0.000393325,0.000323944,0.000306512,0.000387175,0.000445931,0.000468144,0.000420742,0.000225087,0.000273149,0.000343629,0.000400194,0.000415174,0.000390519,0.000310314,0.000272491,0.000362698,0.000380698,0.000402344,0.000392921,0.000360742,0.000301382,0.000308019,0.000305463,0.000444998,0,0,0,0,0,0 +AIMS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000205352,0.000220933,0,0,0,0.000116803,0.000196829,0.000202716,0,0,0.000127182,0.000143564,0.000165818,0.000152133,0.000148639,9.47E-05,9.18E-05,0.00015095,0.000172652,0.000193998,0.000153578,0.000108992,0.000102163,0.000106828,0.000133238,0.000155025,0.00018844,0.000206815,0.000188871,0.000164172,0.000161814,0.000179939,0.000173213,0.000166597,0.000171872,0.000191259,0.000232948,0.000216425,0.000245529,0.000185679,0.000212785,0.000169111,0.000179537,0.000172979,0.000197198,0.000169639,0.000200829,0.000208388,0.000240635,0.000240448,0.000231045,0.000242051,0.000200336,0.000192195,0.000186167,0.000196098,0.000204218,0.00020028,0.000199195,0.000220549,0.000228015,0.000237605,0.000226349,0.000219171,0.000220939,0.000217801,0.000242736,0.000237181,0.000239725,0.000204325,0.000228679,0.000250579,0.00025847,0.000266727,0.000266714,0.000273804,0.000240743,0.000247367,0.000300306,0.00030265,0.000310321,0.000285164,0.000330439,0.000304806,0.000314912,0.000288743,0.000284642,0.000269597,0.000326225,0.000339722,0.000335025,0.000288231,0.000276857,0.000248072,0.000225801,0.000266096,0.00030546,0.000315349,0.00030422,0.000281727,0.000259971,0.000294681,0.000322841,0.00032992,0.000321155,0.000303313,0.000299474,0.000291365,0.000376919,0.000417615,0.00043153,0.000426239,0.000391892,0.000407107,0.000376688,0.000371766,0.000378002,0.000403442,0.000424182,0.000421912,0.000479143,0.000456331,0.000428865,0.000381306,0.00035835,0.00045195,0.000533754,0.00051686,0.00047457,0.000424208,0.000378015,0.000434044,0.000516306,0.000527392,0.000520273,0.000528034,0.00051982,0.000505534,0.000486021,0.000522011,0.000493426,0.00050473,0.000440854,0.000481441,0.000451553,0.000498808,0.000495562,0.000496762,0.000492188,0.00052109,0.000511478,0.000584463,0.000555413,0.000574141,0.000544087,0.000573968,0.000560729,0.00056105,0.000576847,0.000581837,0.000585307,0.000621335,0.000613555,0.000641751,0.000626343,0.000629478,0.000593757,0.000575922,0.000568287,0.000612713,0.000597468,0.000618898,0.00061072,0.000617269,0.000598298,0.000621638,0.000739995,0.00083914,0.000914756,0,0,0,0,0 +DISCIPLINES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000179574,0.000192517,0.000220933,0,0.000218567,0.00021961,0.000233607,0.000246036,0.000236502,0.000201498,0.000162275,0.000163519,0.000143564,0.000149236,0.000165248,0.000228397,0.000256364,0.000220388,0.000201267,0.000204624,0.000226332,0.000222531,0.000208367,0.000167652,0.000191058,0.000190908,0.00020988,0.000229084,0.000186133,0.000194964,0.000206814,0.000284035,0.00029649,0.00030452,0.00020534,0.000249215,0.000276715,0.000256558,0.000225222,0.000169805,0.00015597,0.000201125,0.00025876,0.000249915,0.000248761,0.000212202,0.000192772,0.000252471,0.000310366,0.000316306,0.000328613,0.000301363,0.000277131,0.000225378,0.000277395,0.000268908,0.00033323,0.00030042,0.000314726,0.000164668,0.000255181,0.00027285,0.000300343,0.000268195,0.000288383,0.000224188,0.000253312,0.000282457,0.000311827,0.00031916,0.000314661,0.000290789,0.000301478,0.000234973,0.000227125,0.000200035,0.000227156,0.000195427,0.000224692,0.00025399,0.000251036,0.000235176,0.000189445,0.000163615,0.000174784,0.000226856,0.000275862,0.000298809,0.000317269,0.000285807,0.0002695,0.000247627,0.000271165,0.000282578,0.000316721,0.000324933,0.000360457,0.000298549,0.000314338,0.000296504,0.000332293,0.000335226,0.0003323,0.000301046,0.000314999,0.000341439,0.000382346,0.000437361,0.00037706,0.000350925,0.000402649,0.000428565,0.000468574,0.000517709,0.000416194,0.000394093,0.000440099,0.000473901,0.00051234,0.000446313,0.000435909,0.000428491,0.000458785,0.0004779,0.000482431,0.000483435,0.000466241,0.000403721,0.000393953,0.000424456,0.000507551,0.000633215,0.000537996,0.000429008,0.000447484,0.000497194,0.000497779,0.000516844,0.000431191,0.00040883,0.000444085,0.000503113,0.000529627,0.000532174,0.000481441,0.000522108,0.000456405,0.000467765,0.000463612,0.000499005,0.000535769,0.000512704,0.000521405,0.000523541,0.000518579,0.000525428,0.000476132,0.000509885,0.000491298,0.000526585,0.000514959,0.000534411,0.000506447,0.000539434,0.000502442,0.00055866,0.000553992,0.000591237,0.000489139,0.000496579,0.000474207,0.000524811,0.000529019,0.00053714,0.000499026,0.000529092,0.000641239,0.000770111,0.001042567,0.002058201,0,0,0,0,0 +SIGNAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000428549,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000450288,0,0.000483643,0.000541084,0.000724533,0,0,0,0,0,0,0,0,0.000488261,0.000475633,0.000466038,0,0,0,0,0,0,0,0,0,0,0.000422009,0.000506842,0.000521169,0.000396,0,0.000647394,0.000881546,0.001052429,0.000927917,0.000690492,0.000273209,0.000503811,0.000490574,0.00055358,0.000354754,0.000285455,0.000250789,0.000369433,0.000507997,0.000492717,0.000477382,0.000478545,0,0.000523421,0.000427692,0.000477456,0.000435253,0.000551627,0.000458408,0.000411271,0.000390334,0.000459371,0.00049608,0.000476643,0.000330903,0.000383835,0.00041576,0.000414863,0.000396683,0.000343633,0.000313822,0.000401036,0.000402864,0.000461175,0.00042933,0.000474995,0.000408494,0.000428484,0.000395271,0.000481159,0.000484342,0.000505855,0.000343134,0.000381575,0.000376872,0.000391978,0.000379908,0.0003978,0.000484102,0.000528663,0.000521107,0.000547468,0.000543042,0.00053333,0.000455182,0.000414325,0.000419226,0.000491898,0.000481884,0.000504055,0.000388355,0.000438629,0.000416663,0.000432512,0.000473159,0.000487961,0.000518986,0.00059287,0.000528565,0.00054182,0.000536947,0.000588756,0.000600341,0.00047299,0.000472059,0.00050051,0.000500898,0.000512099,0.000486573,0.000484429,0.000419907,0.000411923,0,0.000493293,0.000468506,0.000360868,0.000398557,0.000430368,0.000513886,0.000534266,0.000563233,0.000399282,0.000435945,0.000469938,0.000493238,0.000522465,0.000552618,0.000483455,0.000359469,0.000397762,0.000464209,0.000476662,0.000441086,0.000290856,0.00031993,0.000401732,0.000432581,0.000420409,0.000392563,0.000315576,0.000347131,0.000307069,0.00037502,0.000363617,0.000386848,0.000346723,0.00043391,0.000399742,0.000435068,0.000371268,0.000432333,0.000334686,0.000409078,0.000328178,0.000348372,0.00036447,0.000368958,0.00033814,0.000302737,0.000335474,0.000345602,0.000317835,0.000316965,0.000301575,0,0.000283036,0.000320154,0.000372007,0.000376473,0.00036213,0.000261961,0.00026811,0.00035541,0.000338771,0.000347829,0.0003129,0.000293572,0.000290696,0.000340702,0.000316633,0.000323215,0.000278387,0.000282636,0.000297796,0.000342695,0.000386902,0.000401267,0.000385115,0.000316529,0.000333543,0.000390994,0.000341105,0.000332651,0.000296459,0.000410246,0.000365711,0.000368567,0.000339266,0.000345039,0.000325227,0.00026254,0.000223246,0.000204413,0.000210813,0.00024157,0,0,0,0,0,0 +SOLAR,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001006615,0.001006832,0.001007049,0,0,0,0.000861866,0.000862069,0.000861259,0,0,0,0,0,0,0,0,0,0,0.000814091,0.000814091,0.000814393,0,0,0,0,0,0,0,0,0,0.000715069,0.000715137,0.000714933,0,0,0,0.000846183,0.000846103,0.000845865,0,0,0,0.00043161,0.000431406,0.000431898,0,0,0,0.000693557,0.000693633,0.000693001,0,0,0,0.000781774,0.000781599,0.00078157,0,0,0,0.000692209,0.000688871,0.000722693,0,0,0,0.000992771,0.001020913,0.001019778,0,0,0,0.000643501,0.000697915,0.000696631,0,0,0,0.000871742,0.000844126,0.000840541,0,0,0,0,0.001704955,0.001704583,0.001658062,0.002294894,0.002388155,0.003052769,0.002703225,0.002671297,0.002667986,0.002048226,0.002037656,0.00186179,0.002067718,0.001976799,0.001522346,0.001481725,0.001797515,0.002440127,0.001851525,0.001651887,0.001188571,0.000973975,0.000662321,0.000828581,0.000777807,0,0.000807175,0.000868025,0.000547408,0.000821271,0.001055922,0.001313577,0.000973118,0.000644884,0.000572173,0,0.000510517,0.000698771,0.000905387,0.000782556,0.000730848,0.000687469,0.000718391,0.000938331,0.001035663,0.000957786,0.00076001,0.00065703,0.000724533,0.000715856,0.000551141,0.000533211,0.000691865,0.000915865,0.001136428,0.001254622,0.001196387,0.0010579,0.000914679,0.000699056,0.000615247,0.000854962,0.000951528,0.000934361,0.000695628,0.00063244,0.000502235,0.000660757,0.000832909,0.000792917,0.000681708,0.000570198,0.000582483,0.000561001,0.000500375,0.000248998,0.000310174,0.000243855,0.000294577,0.000242605,0.000346065,0.000310037,0.000303689,0.000258338,0.000236502,0.000184706,0.000250789,0.000375489,0.000248477,0.000248727,0.000251806,0.00037341,0.000429902,0.000382618,0.000377375,0.000390065,0.000365613,0.000341633,0.000262863,0.000303869,0.000314322,0.000375849,0.000369675,0.000428609,0.000458439,0.000420391,0.000366721,0.000378714,0.000398728,0.000447002,0.000736126,0.00065598,0.000482216,0.000270724,0.000237539,0.000307485,0.000557037,0.000600461,0.000411571,0.000297313,0.000207575,0.000250784,0.000420243,0.000430348,0.000374656,0.000261823,0.000242051,0.000285291,0.000340274,0.000414583,0.000324949,0.000304762,0.000242723,0.0002481,0.000228891,0.000254969,0.000271586,0.000279254,0.000273646,0.000264391,0.000315299,0.000350903,0.000340906,0.000255976,0.000246813,0.00024398,0.000292185,0.000482766,0.00039936,0.000288878,0.000211984,0.00020571,0.000269748,0.000376693,0.000364866,0.000282377,0.000212324,0.000183688,0.000185456,0.000243819,0.00032399,0.000304465,0.000258688,0.000221531,0.000202198,0.000225182,0.00020687,0.00032708,0.000292972,0.000307747,0.000223109,0.000313918,0.000284969,0.000276434,0.000232469,0.000220449,0.000195042,0.000171034,0.000236163,0.000279251,0.000271894,0.000278898,0.000259525,0.000260693,0.000220904,0.000258763,0.000270808,0.000291394,0.000313666,0.000383641,0.000350766,0.000278476,0.000289603,0.00030368,0.000387885,0.000569879,0.000521891,0.000334031,0.000238797,0.000273975,0.000347907,0.000525693,0.000494823,0.000335609,0.000273488,0.000262722,0.000324945,0.00034133,0.000351977,0.000260647,0.000290665,0.00025585,0.000267259,0.000351176,0.000630856,0.00059752,0.000404653,0.000322277,0.000307063,0.00033169,0.000538081,0.000417059,0.000510372,0.000482098,0.00049532,0.000491506,0.00068072,0.000613282,0.000546817,0.000484354,0.00048094,0.000514979,0.000721808,0.000620288,0.000489276,0.000455282,0.00045945,0.000531017,0.000813597,0.000717873,0.000583241,0.000531264,0.000527124,0.00057696,0.000460211,0.000462517,0.000400259,0.00053562,0.000536861,0.000562157,0.000470968,0.000424167,0.000366822,0.000326975,0.000292427,0,0,0,0,0,0 +SERVE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000162017,0,0.000291423,0.000322956,0.000373771,0.000393657,0.00038854,0.000386204,0.000280294,0.000314926,0.00025952,0.000291366,0.000296397,0.000369785,0.000343133,0.000339764,0.000324771,0.000321857,0.000323331,0.000347901,0.000397501,0.00035888,0.000338975,0.000342043,0.00034821,0.00037688,0.000351585,0.000322909,0.00030489,0.000301249,0.000325117,0.000343633,0.000313822,0.000343745,0.000345893,0.000393494,0.000383582,0.000401566,0.000326795,0.000349783,0.000321922,0.000320294,0.000299831,0.000302227,0.000308435,0.000375837,0.000359137,0.000329927,0.000323804,0.000327482,0.000420958,0.000370064,0.000386372,0.000388882,0.000434707,0.000428689,0.000439575,0.000350583,0.000366367,0.000412477,0.000421815,0.000418461,0.000380665,0.000373647,0.000371682,0.000350129,0.000375638,0.00039434,0.000400477,0.000375485,0.000344546,0.000330344,0.000340106,0.000344741,0.000415777,0.000422009,0.000401972,0.000346622,0.000371861,0.000381291,0.000396836,0.000330439,0.000330384,0.000343269,0.000361734,0.000370936,0.00036001,0.000337772,0.000337824,0.000338998,0.000353652,0.000360372,0.000407212,0.000457109,0.000441607,0.000367657,0.00039924,0.000399013,0.000411755,0.000369433,0.000386638,0.000354172,0.00036888,0.000374399,0.000389822,0.000428743,0.000373252,0.000341472,0.000382695,0.000392975,0.00044452,0.000443456,0.000448908,0.00041647,0.000425456,0.000436341,0.000467743,0.000494264,0.000461904,0.000407956,0.00040481,0.000410185,0.000401717,0.000444557,0.00045195,0.000461926,0.000426511,0.000426734,0.000430763,0.000425865,0.000410336,0.000442726,0.000437496,0.000410811,0.000394765,0.000391849,0.000401454,0.000398823,0.000381181,0.000393965,0.000395334,0.00042406,0.000450761,0.000412356,0.000431735,0.000414778,0.00041653,0.000402203,0.000436688,0.000418259,0.000389642,0.000403367,0.000411637,0.000416461,0.000406561,0.000408199,0.000424578,0.000427813,0.000436712,0.000439404,0.000419694,0.000414527,0.00043093,0.000426515,0.000420931,0.000414874,0.000394467,0.000390809,0.000409649,0.000385502,0.000389676,0.000389242,0.000434894,0.000462119,0.000431226,0.000434532,0.00033057,0,0,0,0,0,0 +FUNDING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000186619,0.000218567,0.000232528,0.000233607,0.000233734,0.000253395,0.000419787,0.000560588,0.000575346,0.000585301,0.000589839,0.000571809,0.000496672,0.000429902,0.000370374,0.000324771,0.00034104,0.000370587,0.000366707,0.000336593,0.000369358,0.000375954,0.000342043,0.000298125,0.000273423,0.000320563,0.000310724,0.000226003,0.000268542,0.000267864,0.000421858,0.000441676,0.000441139,0.000345893,0.000305351,0.000262173,0.000243234,0.000308227,0.000437229,0.000411571,0.000351892,0.000311363,0.000308657,0.000308435,0.000404527,0.000330318,0.000398031,0.000436013,0.0004862,0.00047007,0.000361717,0.000358632,0.000420599,0.000511501,0.00057046,0.000559223,0.000438228,0.000384594,0.000411196,0.000396453,0.000437482,0.000511399,0.000432131,0.000416663,0.000363369,0.000479179,0.000507819,0.00057211,0.000375485,0.000336715,0.000337255,0.000342435,0.000353254,0.000316396,0.000220917,0.000206139,0.000264449,0.000326112,0.000350677,0.000337012,0.000282316,0.000283491,0.000298495,0.000393936,0.000430182,0.00047837,0.000381077,0.000438413,0.00046877,0.000499664,0.00048164,0.00046494,0.00043508,0.000485013,0.000453352,0.000404294,0.000350514,0.000346741,0.000323824,0.000436796,0.000362345,0.000362249,0.000338903,0.000375938,0.000398581,0.000401817,0.000330838,0.000317131,0.000320311,0.000336758,0.000426956,0.000430734,0.000409011,0.000333532,0.000330053,0.000344325,0.000446313,0.000441908,0.00038879,0.000368827,0.000351809,0.000342341,0.00030426,0.000355487,0.000387622,0.000380116,0.000356118,0.000345547,0.00030624,0.000364743,0.000374135,0.000386554,0.000329704,0.000333533,0.000349192,0.000426943,0.00040883,0.000416858,0.000417862,0.000423249,0.00042406,0.000564041,0.000536219,0.00036312,0.000322701,0.00030315,0.00034085,0.000429349,0.000464868,0.000494112,0.000444644,0.000434937,0.00041273,0.000491351,0.000582519,0.000547908,0.00045762,0.000407954,0.000427528,0.000593199,0.000569632,0.00048201,0.000425441,0.000409417,0.000390519,0.000452322,0.000451761,0.000410823,0.000392107,0.00037339,0.000410581,0.000456939,0.000564812,0.000562834,0.000550694,0.000355999,0,0,0,0,0,0 +NUCLEAR,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004592423,0.004599463,0.004608295,0,0,0,0.004681648,0.004688965,0.004697776,0,0,0,0.002678204,0.002682625,0.002681518,0,0,0,0.002987698,0.002990325,0.002991904,0,0,0,0.002444636,0.002445164,0.002445691,0,0,0,0.002272193,0.002272727,0.002270592,0,0,0,0.002617801,0.002616556,0.002615519,0,0,0,0,0.003774423,0.003774423,0.003849856,0,0,0,0.002860576,0.002862541,0.002857796,0,0,0,0.002669591,0.002669845,0.002669082,0,0,0,0.00305566,0.003055373,0,0,0,0,0.003335164,0.003333595,0.003337391,0,0,0,0.004307355,0.004307827,0.004303899,0,0,0,0.00346214,0.003461367,0.003461238,0,0,0,0.004430139,0.004408776,0.004404983,0,0,0,0.002233736,0.002227447,0.002255871,0,0,0,0.00293772,0.002931241,0.002953716,0,0,0,0.002257589,0.002243597,0.002344666,0.003023256,0.002826701,0,0,0.002797875,0.002819118,0.002770432,0.001912412,0,0.003488879,0.002606681,0.00248049,0.002420623,0.001303417,0.001467112,0.001752272,0.002429568,0.002392967,0.001884809,0.001317089,0.001268834,0.001355626,0,0.001304121,0.001142857,0.000935016,0.001254924,0.001364722,0.002177858,0.002496661,0.002421525,0.002117982,0.002621798,0.00273757,0.002998817,0.001471206,0.001702956,0.001325595,0.001875457,0.001945368,0.002093118,0.001630466,0.001177003,0.001814107,0.001860342,0.002444334,0.002298851,0.002397957,0.002026297,0.001951046,0.001865478,0.001855144,0.001642274,0.00158511,0.001148211,0.001409202,0.001675042,0.001956621,0.001818285,0.00191495,0.001734761,0.001586849,0.002012293,0.001902987,0.002293193,0.001465649,0.001903056,0.001907654,0.002052103,0.001860119,0.001757822,0.001376576,0.001434455,0.001189375,0.001233566,0.001045362,0.001256936,0.001155001,0.001344759,0.001294788,0.000979496,0.000731566,0.000618611,0.000802463,0.001074623,0.001007622,0.000805943,0.000565882,0.000523684,0.000688451,0.000855634,0.000708584,0.000612909,0.000604052,0.000553448,0.000507548,0.000536392,0.000658102,0.000649542,0.000579768,0.000484996,0.000407452,0.000506493,0.000547489,0.000643025,0.000638347,0.00066303,0.000650303,0.000751426,0.000639725,0.000501044,0.000502656,0.000566398,0.000623009,0.00047267,0.000535669,0.000561568,0.000533578,0.000496193,0.00051171,0.000642449,0.000574227,0.000436021,0.000453869,0.000420093,0.000501568,0.000493496,0.00056806,0.000583044,0.000499431,0.000452043,0.000399809,0.000340274,0.000436843,0.000461665,0.000532299,0.000467619,0.000440503,0.000369347,0.00044354,0.000524944,0.000486774,0.000476545,0.000416559,0.000288383,0.00039964,0.000466378,0.000525193,0.000470751,0.000425547,0.000302401,0.000299258,0.000409148,0.000590196,0.000552089,0.000537683,0.000330593,0.000314383,0.000292718,0.000455688,0.000423476,0.000445304,0.000309094,0.00036252,0.000468932,0.000465652,0.000388569,0.000328433,0.000290967,0.000259825,0.000364395,0.000436989,0.000411488,0.000378677,0.000273035,0.000322179,0.000401976,0.000485142,0.000447755,0.000397911,0.000392491,0.000314702,0.000346929,0.000299684,0.000300907,0.000300026,0.000325742,0.000265002,0.000243756,0.000300118,0.000291475,0.000284721,0.000239579,0.000235135,0.000352584,0.000364256,0.000310754,0.000272513,0.00021987,0.000236067,0.000257946,0.000273796,0.000256789,0.000219492,0.000207816,0.000133536,0.000194714,0.000281119,0.000284069,0.000257407,0.000191971,0.00015631,0.000200609,0.000309285,0.000293661,0.000277611,0.000256453,0.000231141,0.000274008,0.000311625,0.000308888,0.000260921,0.000234636,0.000230924,0.00021476,0.000243023,0.000293734,0.000304026,0.000308915,0.000274044,0.000168804,0.000201157,0.000223056,0.000245573,0.000239574,0.000235846,0.000273939,0.000251311,0.000334608,0.000303327,0.000318338,0.000255329,0.000199296,0.000245697,0.000236826,0.00019768,0.000168245,0.000164606,0.000160417,0.000172099,0.00024532,0.000244392,0.000249731,0.00022295,0.000198408,0.000169667,0.000190412,0.000189301,0.000254285,0,0,0,0,0,0 +INVOLVING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000212396,0.000228968,0.000265032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000212224,0.000269524,0.000279848,0.000354577,0.000418921,0.00043922,0.000327049,0.000356752,0.000422326,0.000486953,0.000545835,0.000654078,0.000577018,0.000530618,0.000453775,0.000456793,0.000445678,0.000505055,0.000503167,0.000505166,0.000475048,0.0004576,0.000506493,0.000565826,0.00055674,0.000517041,0.000477,0.000421219,0.000434311,0.000426483,0.000501044,0.000471671,0.000458026,0.000363189,0.000368063,0.000441139,0.00051884,0.000492654,0.0004698,0.000394682,0.000464197,0.000463462,0.000539933,0.000501267,0.000528822,0.000490851,0.000462652,0.000499204,0.000518754,0.000488837,0.000488911,0.000433963,0.000389386,0.000459102,0.000503274,0.000481276,0.000438821,0.000396622,0.000369347,0.000369174,0.000395531,0.000411196,0.000441838,0.000439384,0.000484483,0.000396391,0.000423765,0.000494299,0.000450283,0.000455335,0.000363699,0.000383954,0.000418937,0.000447831,0.000451921,0.000445468,0.000387382,0.000371028,0.000360744,0.000383974,0.000397668,0.000391032,0.000390854,0.000340063,0.000377277,0.000438788,0.000460486,0.000480413,0.000427409,0.000363755,0.000364395,0.000372103,0.000396318,0.000386685,0.000408773,0.000368991,0.000386878,0.00037595,0.000349714,0.000345003,0.000345537,0.000376274,0.000376188,0.000355534,0.000358104,0.000356651,0.000341762,0.000325328,0.00033326,0.000378101,0.000388396,0.000384818,0.000370433,0.000313513,0.00030533,0.000363013,0.000398611,0.000436341,0.000437667,0.00045369,0.000373922,0.000381945,0.000357378,0.000361149,0.000345124,0.000351589,0.0003537,0.000371523,0.000399651,0.00040851,0.000417653,0.00040513,0.000395746,0.0003891,0.000388552,0.000392348,0.000406291,0.000397801,0.000350475,0.00032735,0.00038212,0.000385569,0.00038779,0.000343236,0.000295001,0.000340233,0.00035541,0.000371346,0.000366085,0.000357893,0.000291737,0.000334852,0.000354819,0.00036209,0.000359062,0.000348544,0.000328292,0.000334113,0.000350782,0.000375798,0.000375853,0.000369846,0.000279015,0.00032119,0.000365919,0.000359906,0.000351842,0.000325013,0.000220901,0.000243808,0.000279359,0.000356079,0.000359516,0.000361282,0.000266548,0.0002545,0.000277217,0.000279649,0.000279713,0,0,0,0,0,0 +COMPOSITION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000783515,0.000783699,0.000782963,0,0,0,0,0,0,0,0,0,0,0.000814091,0.000814091,0.000814393,0,0,0,0.000629327,0.000629759,0.000628715,0,0,0,0,0,0,0,0,0,0.000470102,0.000470057,0.000469925,0,0,0,0.000392372,0.000392188,0.000392634,0,0,0,0.00036503,0.00036507,0.000364737,0,0,0,0.000483955,0.000483847,0.000483829,0,0,0,0.000380715,0.000378879,0.000378553,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000245876,0.000244352,0.000243314,0,0,0,0,0.000371593,0.000349658,0.00033581,0,0,0,0.000328249,0.000362533,0.000335707,0,0,0,0.000516929,0,0.00039871,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000582309,0.000588502,0,0,0,0,0,0,0,0,0,0,0.000562458,0.000551141,0.000495125,0.00036414,0,0,0,0,0.000447573,0,0,0,0,0,0.000389317,0,0,0,0,0.000462727,0,0.000389547,0,0.00030657,0.00033,0.000437828,0.000348597,0.000244874,0.000231021,0.000309306,0.000279929,0.000236781,0.000271283,0.000268648,0.000221432,0,0,0.00019178,0.000236195,0.000345107,0.000388488,0.000506235,0.000627184,0.000615273,0.000517299,0.000400246,0.000377276,0.000340741,0.000460734,0.000551372,0.000568445,0.000501272,0.000497155,0.00048177,0.000509897,0.000461886,0.000441715,0.000477591,0.000421749,0.000396683,0.000310108,0.000371937,0.000398171,0.000484251,0.000417103,0.000457483,0.000422218,0.00054961,0.000495526,0.000417684,0.00041078,0.000383849,0.000430834,0.000443375,0.000421741,0.000392391,0.000367763,0.000375099,0.000403827,0.000473578,0.000470232,0.00041213,0.00037785,0.000334601,0.000340926,0.000481192,0.000496659,0.000459326,0.000379171,0.000408467,0.00039944,0.000399891,0.000380145,0.000374049,0.000392791,0.000393697,0.000421292,0.000412737,0.000429125,0.000416979,0.000418804,0.000449592,0.000461074,0.000533411,0.000489984,0.00041434,0.00030927,0.000358957,0.00037155,0.000458655,0.000461972,0.000394329,0.000398491,0.000366027,0.000399271,0.000410971,0.000510989,0.000434617,0.000414478,0.000405799,0.000427871,0.000469621,0.000608561,0.000549178,0.000494817,0.000398229,0.000369253,0.000350353,0.000312422,0.00033021,0.000345999,0.000370538,0.000365948,0.00038021,0.000396426,0.000365634,0.000353288,0.000363453,0.000372214,0.000374282,0.000381579,0.000421646,0.000376688,0.000355496,0.000326856,0.00035366,0.00037992,0.000429911,0.00038879,0.000426891,0.000427308,0.000434188,0.000366802,0.000380496,0.000371523,0.000376046,0.000373582,0.000363339,0.00041789,0.000390275,0.000450209,0.000382559,0.000399601,0.000391884,0.000388873,0.000369592,0.000331638,0.000335176,0.000330673,0.000356103,0.000354783,0.000424801,0.000380998,0.000369287,0.000372648,0.000374733,0.000374935,0.000434854,0.000450149,0.000414113,0.000369405,0.000359062,0.000379144,0.000380471,0.000390767,0.000335619,0.00035242,0.000336395,0.000380025,0.000396248,0.000365113,0.000329698,0.000329287,0.00033457,0.000347688,0.000418135,0.000403358,0.000382652,0.000316448,0.000306433,0.000276664,0.000304626,0.000319241,0.00033042,0.000271045,0.000216142,0,0,0,0,0,0 +CROSS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000392372,0.000392188,0.000392634,0,0,0,0.000401533,0.000401577,0.000401211,0,0,0,0.000632864,0.000632723,0.000632699,0,0,0,0.000415326,0.000413323,0.000412967,0,0,0,0.000341265,0.000340304,0.000339926,0,0,0,0.000447653,0.000474582,0.000473709,0,0,0,0.000290581,0.000266566,0.000243314,0,0,0,0,0.000284159,0.000284097,0.000293834,0,0,0,0.000270322,0.00026713,0.000247363,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000317874,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00067623,0.000613591,0.000551141,0.000380865,0.000473381,0.000541193,0,0,0,0,0,0,0,0,0,0,0,0.000372024,0.000602682,0,0,0.000330382,0,0,0,0,0.000562922,0.000547795,0.000408123,0.000385035,0.00038295,0.000429225,0.000236781,0.000258365,0.000233607,0.000295243,0.000354754,0.000369413,0.000309798,0.000230138,0.000314737,0.000336374,0.00036984,0.000391537,0.000311581,0.00029385,0.000288177,0.00034104,0.000355664,0.000341633,0.000323771,0.000290772,0.000291724,0.000276418,0.00030051,0.000310372,0.000337797,0.000319863,0.000296362,0.000270264,0.000267864,0.000273789,0.000317696,0.00030937,0.000323512,0.000341553,0.000344872,0.000348789,0.000308227,0.000282741,0.000270985,0.000254224,0.000252056,0.000272218,0.000323857,0.000338541,0.000310366,0.000301172,0.000285332,0.000303372,0.000301687,0.000278244,0.000257581,0.000304762,0.000327745,0.000335863,0.000317327,0.000305432,0.00028799,0.000288221,0.000307017,0.000349986,0.000419116,0.000341156,0.000305395,0.000317764,0.000299788,0.00030072,0.000259493,0.000302082,0.000309308,0.000301318,0.000340106,0.000366022,0.000395495,0.000354034,0.000352498,0.000346622,0.000335496,0.000381291,0.000402819,0.00046518,0.000304806,0.000323867,0.000302697,0.000314265,0.000358366,0.000479233,0.000466881,0.000360185,0.000365978,0.000347788,0.000393171,0.00038276,0.000379329,0.000338632,0.000342639,0.000351617,0.000379248,0.000412761,0.000363649,0.000395038,0.00040038,0.00040736,0.000395162,0.000400735,0.000394199,0.000433634,0.000436856,0.000455257,0.000456066,0.000464082,0.000387115,0.000374202,0.00041,0.000420357,0.000423147,0.000363321,0.000413914,0.000397004,0.000463691,0.000448323,0.000467587,0.000415822,0.000482319,0.000507747,0.000470465,0.000442679,0.000401734,0.000374825,0.000370214,0.000357922,0.00039055,0.000432572,0.000455277,0.000471211,0.000520403,0.000478874,0.000434696,0.00043982,0.000433057,0.000444003,0.000370521,0.000395109,0.000422483,0.00047732,0.00048331,0.000505822,0.000399992,0.000420712,0.000440465,0.000457707,0,0.00045975,0.000406561,0.000395125,0.000461982,0.00043132,0.000442062,0.00040717,0.000415005,0.0004159,0.000390066,0.000405028,0.000406858,0.000415714,0.000447063,0.000453554,0.00041317,0.000453355,0.00045603,0.000503292,0.00046696,0.000442026,0.000386424,0.000408718,0.000279713,0,0,0,0,0,0 +ELEMENTS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000951928,0.000951475,0.000951098,0,0,0,0,0.001036116,0.001036116,0.0010365,0,0,0,0.000800961,0.000801511,0.000800183,0,0,0,0.000572055,0.00057211,0.000571946,0,0,0,0.000705152,0.000705086,0.000704887,0,0,0,0,0,0,0,0,0,0.00073006,0.00073014,0.000729474,0,0,0,0,0,0,0,0,0,0.000415326,0.000413323,0.000412967,0,0,0,0.000372289,0.000371241,0.000401731,0,0,0,0.000335739,0.000362916,0.000362248,0,0,0,0.000447047,0.000422063,0.000398151,0,0,0,0,0.000218584,0,0,0,0,0,0.000289631,0.00026713,0.000247363,0,0,0,0,0,0,0,0,0,0,0,0,0.00038959,0,0,0,0,0,0,0.000316921,0.000410635,0.000422369,0,0,0,0,0,0,0,0,0.00046242,0.000531526,0.000725662,0.000574713,0,0,0.000425683,0.000380005,0,0,0,0,0,0.00036414,0,0,0,0,0,0.000475633,0.000466038,0,0,0,0.000506112,0.000521721,0.000520833,0,0,0,0,0,0.000348454,0.000367884,0,0,0,0.000440773,0.0003722,0.000456594,0.00048521,0.000546418,0.000426302,0.000292008,0.000307545,0.000287182,0.000285455,0.000236037,0.000320983,0.000392041,0.000461922,0.00046689,0.000511173,0.000536392,0.000517299,0.000475721,0.000451878,0.000462612,0.000620581,0.000532138,0.000500337,0.000384171,0.000391758,0.00045315,0.000550541,0.000548059,0.000450854,0.000494647,0.000502656,0.000535727,0.000466559,0.000596649,0.000584366,0.000575811,0.000508394,0.000476838,0.000488763,0.000479052,0.000475122,0.000407496,0.00039929,0.000385497,0.000432977,0.000485785,0.000496335,0.000452247,0.000417706,0.000408762,0.000429945,0.000477086,0.000475797,0.000426,0.000430252,0.000425108,0.000452318,0.000442176,0.000406357,0.000366367,0.000379171,0.000401792,0.000429874,0.000419116,0.000441878,0.000376417,0.000400147,0.00043704,0.000459591,0.00050877,0.000429125,0.000409148,0.000404983,0.000425132,0.000427025,0.00038941,0.000359699,0.000379296,0.000367539,0.00041761,0.000435562,0.000520474,0.000487637,0.000468932,0.000456697,0.000439018,0.000426318,0.000381381,0.000401285,0.000362497,0.000405208,0.000474064,0.000522826,0.000564793,0.000437833,0.000443494,0.000422944,0.00042754,0.000410036,0.00041657,0.000444688,0.000474415,0.000456337,0.000427735,0.000412431,0.000418658,0.000411508,0.000375156,0.00035447,0.000379132,0.000390009,0.000406996,0.000439331,0.000419829,0.000343122,0.000378274,0.000387592,0.000431444,0.000424182,0.000429911,0.000380576,0.000351653,0.000382165,0.000410994,0.00045977,0.000366205,0.000331893,0.000351627,0.000362951,0.000369895,0.00036685,0.000339211,0.000349192,0.000332616,0.000336298,0.000333533,0.000341256,0.000378089,0.000378811,0.000378364,0.00033261,0.000324416,0.000294952,0.000287921,0.000285356,0.000280628,0.00029143,0.000308434,0.000323808,0.000390818,0.000294376,0.00029082,0.000306183,0.000316046,0.000338841,0.000334815,0.000316681,0.000328543,0.000346576,0.000365153,0.000341853,0.000304806,0.000285502,0.000318554,0.000350237,0.000364637,0.000374562,0.00036028,0.000328065,0.000261753,0.000286425,0.000293162,0.00030536,0.000268552,0.000270127,0.000263216,0.000301161,0.000216142,0,0,0,0,0,0 +ESSENTIAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000154014,0,0,0.000218567,0.000193773,0.000163525,0.00013532,0,0.000201498,0.000177028,0.00030887,0.000386519,0.00038612,0.000417054,0.000377036,0.000354965,0.000364252,0.000411682,0.000381539,0.000330792,0.000300888,0.000326977,0.000369358,0.000404715,0.000413633,0.00042453,0.000365796,0.000389501,0.000383835,0.000413628,0.000394206,0.000390549,0.000340839,0.000360314,0.0004039,0.000423211,0.000402938,0.000385342,0.000362557,0.000415921,0.000405165,0.000458433,0.000429452,0.000425035,0.000387965,0.000381688,0.000450431,0.000507669,0.000488837,0.000464867,0.000456063,0.000431482,0.000442408,0.000366558,0.000421978,0.000400425,0.00042025,0.000338135,0.000395734,0.00040829,0.000438096,0.000411136,0.000412755,0.00036144,0.000350903,0.000378784,0.000422214,0.000439448,0.000432639,0.000378002,0.0003896,0.000444386,0.000475474,0.000465898,0.000448306,0.000403608,0.000396519,0.000379296,0.00044523,0.000441072,0.000462002,0.000428743,0.000394601,0.000383672,0.000383566,0.00040467,0.000412151,0.000409327,0.000435929,0.000425127,0.000475392,0.000442776,0.000454184,0.000382249,0.000335947,0.000320826,0.00037595,0.000434616,0.000451921,0.000437038,0.000399079,0.000382458,0.000426368,0.00040784,0.00040736,0.000386618,0.000310247,0.000356112,0.000378101,0.000399798,0.000384818,0.000378131,0.000367141,0.000425281,0.000374202,0.000359563,0.000329253,0.000338103,0.000337501,0.000363924,0.00036278,0.000387636,0.000379051,0.000380378,0.000353279,0.000359059,0.000365331,0.000364651,0.000381934,0.000387687,0.000349305,0.000330093,0.000367899,0.000385555,0.000414108,0.00040341,0.000396809,0.000331359,0.00032735,0.000378364,0.00039009,0.00041495,0.000418811,0.000398841,0.000357479,0.000407064,0.000401748,0.000413167,0.000388569,0.00042201,0.000375329,0.000348231,0.000354775,0.000359659,0.000382876,0.000376123,0.000379146,0.00038212,0.000376967,0.000382541,0.00038257,0.000391558,0.000411782,0.000410498,0.000367426,0.000346085,0.000325013,0.000454952,0.000421285,0.000404954,0.000337465,0.000339006,0.000330378,0.000326672,0.000303614,0.000291218,0.000301161,0.000305142,0,0,0,0,0,0 +SECONDARY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003914297,0.003920759,0.003919142,0,0,0,0.00685413,0.006860158,0.00686378,0,0,0,0.022648835,0.022653722,0.02265861,0,0,0,0.001723733,0.001724138,0.001722518,0,0,0,0,0,0,0,0,0,0,0.000814091,0.000814091,0.000814393,0,0,0,0,0,0,0,0,0,0.00190685,0.001907032,0.001906487,0,0,0,0.001927416,0.001927235,0.001926692,0,0,0,0.032056816,0.032041729,0.032078213,0,0,0,0.028289834,0.028292932,0.028267134,0,0,0,0.001302956,0.001302665,0.001302616,0,0,0,0.026546222,0.026418214,0.026429899,0,0,0,0.030682841,0.030627398,0.030716934,0,0,0,0.016367299,0.016331202,0.016217572,0,0,0,0.012517323,0.012595242,0.012541751,0,0,0,0.005255255,0.00655752,0.006490526,0.006023591,0,0,0,0.005985712,0.007059856,0.006643462,0.00623778,0,0,0.001395709,0.001404567,0.000978651,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00028811,0,0.006715661,0.008144178,0.006365811,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000380865,0.000582623,0.000457933,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000316776,0,0.000561001,0.000469102,0.000622494,0.000310174,0.000320862,0.000309306,0.00048521,0.000655702,0.000632993,0.000595697,0.000565882,0.000489898,0.000520536,0.000531083,0.00035732,0.000311976,0.000296104,0.000325249,0.000391537,0.000362853,0.000333642,0.000256158,0.000232334,0.000206434,0.000241337,0.00027248,0.000251478,0.000279397,0.000234657,0.000250425,0.000247559,0.000344691,0.000347279,0.00025372,0.000259935,0.000271953,0.000343633,0.00026733,0.000274996,0.000276715,0.000465897,0.00046804,0.000497942,0.000230242,0.000265252,0.000273023,0.000261406,0.00041515,0.000507998,0.000682412,0.00025534,0.000199521,0.000213393,0.000229227,0.0002431,0.000308703,0.000314416,0.000273432,0.000278561,0.000275635,0.000305483,0.000262705,0.000270905,0.000238777,0.000266445,0.000260297,0.000300531,0.000253777,0.000194946,0.000163351,0.000175064,0.000192635,0.000182985,0.000218628,0.000251264,0.000268198,0.000240502,0.000281868,0.000272388,0.000324509,0.000254905,0.000288595,0.000270425,0.000262766,0.000249092,0.000249269,0.000221362,0.000232335,0.000241781,0.000229706,0.000227971,0.000210417,0.000248277,0.000250521,0.000238358,0.000225655,0.0002208,0.000257433,0.000363484,0.000309502,0.00024188,0.000209222,0.000211631,0.000223937,0.000237167,0.000248702,0.000258818,0.000233762,0.00023157,0.000228553,0.000277929,0,0.000254037,0.000207382,0.000197229,0.000169341,0.000214509,0.000252624,0.000264801,0.000218829,0.000195794,0.000181497,0.000226845,0.00023995,0.000238202,0.000218352,0.000245955,0.000263482,0.000300879,0.000259023,0.000193192,0.000227093,0.00023159,0.000257522,0.000259985,0.000207904,0.000187067,0.000202766,0.000219583,0.000216112,0.000219237,0.00022303,0.00024444,0.000220634,0.000258338,0.00026934,0.0003023,0.00025016,0.000252431,0.000249018,0.000251473,0.000246459,0.000221553,0.000194491,0.000182758,0.000192939,0.000199593,0.000208507,0.000217187,0.000236979,0.000212089,0.000219365,0.000248973,0.000252798,0.000273143,0.000215709,0.000212754,0.000217322,0.000248174,0.000261643,0.000277143,0.000257718,0.000263527,0.000203064,0.000209564,0.000195441,0.000234723,0.000234482,0.000229943,0.000131608,0.000129069,0.000152571,0,0,0,0,0,0 +PARAMETERS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000245876,0.000244352,0.000243314,0,0,0,0,0.000240442,0.000262243,0.000251857,0,0,0,0.000270322,0.00026713,0.000265032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000450288,0.000390209,0.000380005,0,0,0,0.000459284,0.000457038,0.00036414,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000495,0.000562922,0.000473096,0.000604022,0.000795739,0.000957375,0.000933097,0.000619274,0.000503811,0.000560656,0.000528977,0.000574363,0.000654868,0.000663854,0.000599571,0.000535605,0.000514037,0.000498366,0.000471295,0.000469343,0.00045608,0.000473434,0.000479588,0.000477535,0.000473271,0.000455203,0.000403413,0.000398552,0.000413633,0.000455535,0.000465558,0.000413629,0.000414298,0.000417892,0.000463063,0.000466205,0.00045259,0.000526911,0.000509888,0.000506632,0.000511542,0.000512029,0.000518594,0.000330509,0.000291486,0.000301547,0.000420834,0.000481047,0.00054015,0.000451086,0.000358623,0.000376872,0.000431327,0.000440822,0.000411863,0.000319227,0.00034224,0.00043987,0.000415083,0.000456649,0.000415187,0.000470788,0.00035855,0.000380949,0.0003907,0.00042849,0.000429874,0.00038451,0.000354153,0.000369315,0.000433983,0.000453895,0.000462428,0.000469948,0.000420656,0.000430683,0.00044092,0.000475216,0.000482354,0.000466481,0.000396519,0.000416401,0.000428795,0.000473918,0.00046896,0.000504521,0.000481221,0.000464669,0.000465652,0.000477661,0.000492005,0.000442204,0.000329112,0.000334029,0.000373427,0.000437087,0.000453039,0.000455579,0.00036073,0.000328374,0.000392536,0.000389133,0.000414445,0.000415366,0.000378555,0.000363649,0.000365069,0.000436025,0.000436095,0.000443222,0.000346873,0.000373252,0.000382827,0.000371292,0.000359609,0.000330985,0.000290825,0.000279886,0.000341879,0.000383968,0.000407571,0.000406553,0.000427871,0.000391918,0.000420277,0.000361467,0.000334686,0.000295953,0.00025693,0.000276887,0.000346754,0.000348372,0.000352321,0.000315581,0.00029986,0.000308208,0.00034171,0.00037257,0.000357399,0.000350822,0.000356136,0.000384461,0.000358798,0.000362404,0.000350048,0.000353085,0.000298101,0.00021948,0.000324554,0.000393187,0.000380901,0.000366085,0.000319718,0.000238527,0.000256352,0.000340702,0.000369927,0.000377583,0.000338841,0.000263069,0.000303607,0.000346739,0.000363525,0.000360471,0.00034355,0.000222743,0.000244324,0.00030648,0.000359368,0.000381269,0.000366164,0.00023931,0.000238429,0.00030753,0.000354878,0.000365548,0.000355395,0.000308635,0.000274592,0.000274417,0.000314068,0.000432284,0.000571723,0,0,0,0,0 +QUANTITATIVE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000740083,0.000740083,0.000740357,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000510084,0.000509844,0.000510424,0,0,0,0.000401533,0.000401577,0.000401211,0,0,0,0.000446728,0.000446628,0.000446611,0,0,0,0.000449936,0.000447766,0.000447381,0,0,0,0.000465362,0.000464051,0.000463535,0,0,0,0.000307761,0.000334999,0.000306518,0,0,0,0.000357638,0.000355421,0.000331792,0,0,0,0,0.000284159,0.000262243,0.000251857,0,0,0,0.000405484,0.000381614,0.000353376,0,0,0,0,0,0.00039871,0,0,0,0,0,0,0,0,0,0,0.000580619,0.00058296,0.00034721,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000562458,0.000459284,0.000418952,0.00036414,0.000582823,0.000681857,0.000660328,0,0,0,0,0.000559315,0.000732824,0.000783611,0.000467181,0,0,0,0.000605694,0.000509,0.000396458,0,0,0,0.000528001,0.000562922,0.000373497,0.000342824,0.000397869,0.000486052,0.000522534,0.000655702,0.000529647,0.000455533,0.000295243,0.000270289,0.00033583,0.000324551,0.000393658,0.000380998,0.000381382,0.000354102,0.000337157,0.000358909,0.000367313,0.000395672,0.000370881,0.000397946,0.000382378,0.000387884,0.000345782,0.00032254,0.000310225,0.000326745,0.000302982,0.000372266,0.000341187,0.000356061,0.000368385,0.000380325,0.000416271,0.000418429,0.000386713,0.00042728,0.000454879,0.000473319,0.00044287,0.000337936,0.000346868,0.000405459,0.000428016,0.000456336,0.000420117,0.000435664,0.000390182,0.000403475,0.000360196,0.000352657,0.000345563,0.000305195,0.00033111,0.000380428,0.000441284,0.000415509,0.000396622,0.000338135,0.000334647,0.000411935,0.000394543,0.000403127,0.000349986,0.000319144,0.00039964,0.000390621,0.000433983,0.000388881,0.000392922,0.000324877,0.000319021,0.000330843,0.000373192,0.000393684,0.000404326,0.000407664,0.000413512,0.000397849,0.000388456,0.000358957,0.000365984,0.000319065,0.000314398,0.000274965,0.000361179,0.000400376,0.000448214,0.000458643,0.000447476,0.000442208,0.000387994,0.000386837,0.000363804,0.000411893,0.00043508,0.000413299,0.000327574,0.000345671,0.000343901,0.000381655,0.000415042,0.000428436,0.000418195,0.000374683,0.000362567,0.00034283,0.000355491,0.000380869,0.000363922,0.000349913,0.000347004,0.000347341,0.00035064,0.000361671,0.000321988,0.000347361,0.000357224,0.000386848,0.000461067,0.0004799,0.000413432,0.00041953,0.000399288,0.000429549,0.000368492,0.000348341,0.000349231,0.000399651,0.000400158,0.00041578,0.00039556,0.000537996,0.00041529,0.000389551,0.000340914,0.000355865,0.000388873,0.000378089,0.000378811,0.000414041,0.00042432,0.000439847,0.000394669,0.000342201,0.000329257,0.00034693,0.000364831,0.000372811,0.000382434,0.000399992,0.000379009,0.000354819,0.000368882,0.00037818,0.000385115,0.000350033,0.000352998,0.000344717,0.000374629,0.000373847,0.000380874,0.000325908,0.000332171,0.000340843,0.00038945,0.000398541,0.000444268,0.000444433,0.000432041,0.000367393,0.00037049,0.000367357,0.000378205,0.000376775,0.000377285,0.000375223,0.000357091,0.000317856,0,0,0,0,0,0 +ASSESSMENT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000559566,0.000586248,0.000557305,0,0,0,0.000424695,0.000444277,0.000464509,0,0,0,0,0.000568318,0.000568194,0.000545691,0,0,0,0.001312995,0.001259326,0.001289821,0.00158272,0.001467112,0.001204687,0.000620315,0.000728294,0.001196129,0.002085391,0.001956119,0.001626751,0,0.001130238,0.001188571,0.00116877,0.000906334,0.000682361,0,0,0.00058296,0.000833304,0.000950762,0.00092393,0.0008025,0.000893232,0.001621863,0.002006306,0.001780095,0.001377969,0.000765775,0.000815233,0.000497963,0.00049799,0.000764069,0.000802047,0.000862069,0,0,0.000425683,0.000449097,0.000425137,0.000483022,0,0.000459284,0.000533211,0.000691865,0.000707714,0.000625036,0,0.000598193,0.000569638,0.000475633,0,0,0,0,0,0,0,0,0,0,0,0,0.000443487,0.000705111,0.000858001,0.000781836,0.000473096,0.000310174,0.000269524,0.000338763,0.000429225,0.000564632,0.000529647,0.000502254,0.000516675,0.00055747,0.000520536,0.000354055,0.00021197,0.000168412,0.000253465,0.000267544,0.000348033,0.000232699,0.000229571,0.000208128,0.000211019,0.000213896,0.000238203,0.000201956,0.000233141,0.00021982,0.000236646,0.000231345,0.000236474,0.000241284,0.000222381,0.000217474,0.000247885,0.000249461,0.000284964,0.000251833,0.000249215,0.000223813,0.00024554,0.000237539,0.000314369,0.000334222,0.000317719,0.000240423,0.000267151,0.000283357,0.00030437,0.000242893,0.000232388,0.00022834,0.000236095,0.000269302,0.000289309,0.000445514,0.000350587,0.000289284,0.000245464,0.000323631,0.000381432,0.000442176,0.000353239,0.000275231,0.00027285,0.000305683,0.000340475,0.000411426,0.000256679,0.000262782,0.000276572,0.000352762,0.000360296,0.000406607,0.000302082,0.000297563,0.000275056,0.000329623,0.000361766,0.00042389,0.000334209,0.000368989,0.000343634,0.000377726,0.000347893,0.000398831,0.000356104,0.000326121,0.000276108,0.000325239,0.000337448,0.000391244,0.000386851,0.000455494,0.000356213,0.000413384,0.000385541,0.000474301,0.000368991,0.000375555,0.000319281,0.000353757,0.000376968,0.00049844,0.000638526,0.000558012,0.000365069,0.000377998,0.000384541,0.000420794,0.000445979,0.000424669,0.000313115,0.000376281,0.00039594,0.000477234,0.000492958,0.000432551,0.000363013,0.000348174,0.000354826,0.000383736,0.000394674,0.000409915,0.00034909,0.000373734,0.000411741,0.000459237,0.000547667,0.000425155,0.000336847,0.000338604,0.000370544,0.000456047,0.00050721,0.000450458,0.000309285,0.000301652,0.000417405,0.000417817,0.000501964,0.000346227,0.000334497,0.000312643,0.000419799,0.000449655,0.000561564,0.000472001,0.000399812,0.000321488,0.000379163,0.000389146,0.00044515,0.000425679,0.000413352,0.000404701,0.000461364,0.000480342,0.000488111,0.000493525,0.000472116,0.000420535,0.000413202,0.000396585,0.000402929,0.000339976,0.000329426,0.000305551,0.00043135,0.000470829,0.000545047,0.000452322,0.000457139,0.000428429,0,0.000516955,0.000560685,0.000571174,0.000544719,0.000512431,0.00052488,0.000406856,0,0,0,0,0,0 +BOUNDARY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000572115,0.000572508,0.000571559,0,0,0,0,0,0,0,0,0,0.000470102,0.000470057,0.000469925,0,0,0,0.000588558,0.000588281,0.000588951,0,0,0,0.000657054,0.000657126,0.000656527,0,0,0,0.000670092,0.000669942,0.000669917,0,0,0,0.000415326,0.000413323,0.000412967,0,0,0,0.00068253,0.000680609,0.000679852,0,0,0,0.000699457,0.000697915,0.000724496,0,0,0,0.000536457,0.000555346,0.000552987,0,0,0,0,0.00067761,0.000677462,0.000713596,0,0,0,0.000598571,0.000610582,0.00058307,0,0,0,0.00087878,0.000780315,0.000616188,0,0.000581549,0.000903751,0,0,0,0,0.000522885,0.001121022,0.001088929,0.00092899,0.000762332,0.000729141,0.000633841,0.000547514,0.000464606,0.000577974,0.000405466,0.000716538,0.000603961,0.000891627,0.000765775,0.001048157,0.000633771,0.000604702,0.000465085,0.000381927,0,0.000573424,0.000675432,0.000709471,0.00058728,0.000618381,0,0.000613591,0.000551141,0.00087599,0.000837521,0.000915865,0.000909143,0.000990491,0.000717832,0.000447573,0.000475633,0.000582547,0,0.000854962,0.000895556,0.00112902,0.000834754,0.000744048,0,0.00055063,0.000786636,0.000858993,0.000779094,0.000570198,0.000367884,0.00033,0,0.000298797,0.000359148,0.000436373,0.000574425,0.000690492,0.000528204,0.000387547,0.000268648,0.000430563,0.000591256,0.000638076,0.000472074,0.000496615,0.000524562,0.000540094,0.000521973,0.000482171,0.000433846,0.000459141,0.000507741,0.000507297,0.00045515,0.000482674,0.000445586,0.000610358,0.000636862,0.000628404,0.00053424,0.000351016,0.000430864,0.000463039,0.000620441,0.00054397,0.000539817,0.000321283,0.000271204,0.000263538,0.000415072,0.000535152,0.000578892,0.000612675,0.000486479,0.000466377,0.000564382,0.000525684,0.00058813,0.000486564,0.000524339,0.000418872,0.000368005,0.000447974,0.000453646,0.00048419,0.00039991,0.000383976,0.000473553,0.000463349,0.00043745,0.000378057,0.00037715,0.000430261,0.000437453,0.000362518,0.000363082,0.000310042,0.000403736,0.000341156,0.000392989,0.000467819,0.000416572,0.000388666,0.00023906,0.000271026,0.000348461,0.000474092,0.000433285,0.000452562,0.000354931,0.000422009,0.000439077,0.00048557,0.000446937,0.000417472,0.000321059,0.000349687,0.000396461,0.000529829,0.000476587,0.000489429,0.000364942,0.000352207,0.000252419,0.000406533,0.000358393,0.000408422,0.000299559,0.00041305,0.000430284,0.000438148,0.000363864,0.000324061,0.000404531,0.000501699,0.000522484,0.000416833,0.00035313,0.000325381,0.000309722,0.000377036,0.000388486,0.000419456,0.00033851,0.000348487,0.000303082,0.000437268,0.000436186,0.000410254,0.000386409,0.000366814,0.000371291,0.000322747,0.000325932,0.000353197,0.00033039,0.000358036,0.000382234,0.000491886,0.000516259,0.000439635,0.000398023,0.000351562,0.000328691,0.00038918,0.000499698,0.000487622,0.000453477,0.000348168,0.000329211,0.000276774,0.000378089,0.000398823,0.000352076,0.000316464,0.000306309,0.000306499,0.000351641,0.000332393,0.000326885,0.000329651,0.000332936,0.000310855,0.000253206,0.000311547,0.000373642,0.00031611,0.000297526,0.000243309,0.000232631,0.00026729,0.000283052,0.000302742,0.000297606,0.000290957,0.000260257,0.000269031,0.000297193,0.000268049,0.000266121,0.000256147,0.000281386,0.000283247,0.000296966,0.000302637,0.000300401,0.000275928,0.000242499,0.000207618,0.000291218,0.000292556,0.000495855,0,0,0,0,0,0 +SPECTROSCOPY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002266172,0.002269913,0.002268977,0,0,0,0,0,0,0,0,0,0.000862813,0.000862999,0.000863185,0,0,0,0.001096921,0.001097179,0.001096148,0,0,0,0.001031255,0.001030764,0.001030356,0,0,0,0,0.001924216,0.001924216,0.001924928,0,0,0,0.001373076,0.00137402,0.001371742,0,0,0,0.001382467,0.001382598,0.001382203,0,0,0,0.001034223,0.001034126,0.001033835,0,0,0,0.001098642,0.001098125,0.001099376,0,0,0,0.001350611,0.001350759,0.001349528,0,0,0,0.001154047,0.001153789,0.001153746,0,0,0,0.001349808,0.001343299,0.001342143,0,0,0,0.001303012,0.001299344,0.001328801,0,0,0,0.001259023,0.001339996,0.001281801,0,0,0,0.001408199,0.001421685,0.001415647,0,0,0,0,0.001573805,0.001573461,0.001490157,0,0.001910524,0.002616659,0.001930875,0.00192715,0.00189056,0.001768923,0.001141087,0.001314204,0.001395709,0.001664673,0.001449853,0.001536604,0.00111023,0.001174876,0.001058014,0.001304121,0.001097143,0.001207729,0.001289783,0.001413462,0.001451906,0.001161238,0.001434978,0.001527725,0.001613414,0.001505663,0.001267106,0.001155948,0.001094757,0.00114646,0.001303284,0.00133744,0.00183786,0.001514005,0.001312811,0.001102693,0.001494917,0.001833251,0.00210728,0.001720273,0.001305836,0.001277049,0.00134729,0.001855144,0.001835483,0.001891906,0.001561567,0.001523461,0.001711456,0.0017901,0.002045571,0.001848917,0.001555303,0.001342719,0.001426899,0.001359276,0.001677946,0.001465649,0.001791112,0.001712995,0.001878196,0.001674107,0.001908493,0.002312648,0.002082273,0.001552795,0.001233566,0.001235428,0.001226279,0.000957001,0.001094571,0.001319688,0.001371294,0.00102676,0.000957375,0.000541196,0.00138426,0.001098049,0.001203074,0.000701202,0.000641935,0.000621285,0.00076712,0.000866047,0.000687452,0.000594577,0.000500989,0.000460419,0.000560056,0.000688712,0.000766185,0.000777998,0.000751122,0.000683266,0.000711655,0.000688945,0.000636862,0.000586643,0.00055809,0.000546846,0.000706616,0.000728068,0.000641762,0.000526756,0.000455981,0,0.000600524,0.00068749,0.000616504,0.000555613,0.000489155,0.000520888,0.000605313,0.000615035,0.000503258,0.000502703,0.00047281,0.000495138,0.000543617,0.00059388,0.000554224,0.000508512,0.000455249,0.000504281,0.000420958,0.000539793,0.000463646,0.000572291,0.000499159,0.000555271,0.000473389,0.00051525,0.000501249,0.000464997,0.000447178,0.000458405,0.000415271,0.000497113,0.000468746,0.000457521,0.000425,0.000417036,0.000388218,0.000454534,0.000462005,0.000525233,0.000470557,0.000435538,0.000417805,0.000489984,0.000507103,0.00048557,0.000441072,0.000425821,0.000350971,0.000481221,0.000454012,0.000420878,0.00034456,0.000320705,0.000332064,0.000398398,0.00044031,0.000447583,0.000392525,0.000375245,0.000349485,0.000492907,0.000468028,0.000414651,0.000352746,0.000310834,0.000332293,0.000332946,0.000422167,0.000397762,0.000358933,0.000327916,0.000289429,0.000236994,0.000279939,0.000336746,0.000337798,0.000324019,0.000300195,0.000255761,0.000314417,0.000331933,0.000362004,0.00033245,0.00031736,0.000223157,0.000231952,0.000242309,0.000278051,0.000270862,0.00025606,0.00015551,0.000164346,0.000226629,0.000296279,0.000282464,0.00027625,0.00021373,0.000229788,0.000263141,0.000274683,0.000263104,0.000252851,0.000255942,0.00026976,0.000270171,0.000267578,0.000262213,0.000259533,0.000243519,0.00022892,0.000252431,0.000279857,0.000265805,0.000261352,0.000254956,0.000332103,0.000311547,0.000286114,0.000240348,0.000234197,0.000229128,0.000223934,0.00022371,0.000210267,0.000245467,0.000252129,0.00026975,0.000222743,0.000219617,0.000257258,0.000272884,0.000282753,0.000238511,0.000142008,0.000225881,0.000233582,0.000277417,0.000241889,0.000237666,9.62E-05,0.000122785,0.00016521,0.000176394,0.000216142,0,0,0,0,0,0 +SAMPLES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000223524,0.000222138,0.000243314,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000298797,0.000163249,0.000128345,0,0,0,0.00021961,0.000186885,0.000159923,0,0,0.000265542,0.000345208,0.000433454,0.000435865,0.000600662,0.000659812,0.000780923,0.000566274,0.00046886,0.000407117,0.00040292,0.000564164,0.000669981,0.000628695,0.00054236,0.000427554,0.000431685,0.000469253,0.0006687,0.000618401,0.000533025,0.000452735,0.000445758,0.000494496,0.00065089,0.000647386,0.000535117,0.000385624,0.000401177,0.000429102,0.000661017,0.000588801,0.000572532,0.000501267,0.000464573,0.000447982,0.000443375,0.000407396,0.00035027,0.000320847,0.000323804,0.000345563,0.000498134,0.000478579,0.000447795,0.000420599,0.000429222,0.000455693,0.000530612,0.000520562,0.000421049,0.000447063,0.000468535,0.000513566,0.000519089,0.000536102,0.000549237,0.000525193,0.000529745,0.0005447,0.000516943,0.000431948,0.000428725,0.000421569,0.000471722,0.000479517,0.000519214,0.000521139,0.000410217,0.000454194,0.000430514,0.000474527,0.000420766,0.000471597,0.000447617,0.000416401,0.000405743,0.000410863,0.000483301,0.000635128,0.000559877,0.000471419,0.000388733,0.000390117,0.000444657,0.000649866,0.000564276,0.000478231,0.00042653,0.000415547,0.000410551,0.000435566,0.000397087,0.000416833,0.00043188,0.000449617,0.000482738,0.000499842,0.00049513,0.000413548,0.000358465,0.000334399,0.00032425,0.000363015,0.000434369,0.000409011,0.00041244,0.000368412,0.000369216,0.000280329,0.000323933,0.000306651,0.000311581,0.000332351,0.000356257,0.000419202,0.000355487,0.000312079,0.000319883,0.000327264,0.000327755,0.000319,0.000359272,0.000372888,0.000356589,0.000327726,0.00030688,0.000299591,0.000346227,0.00030019,0.000308888,0.000275776,0.000292729,0.000284456,0.000332761,0.000335529,0.000320717,0.000308369,0.000304591,0.000321763,0.000423845,0.000417032,0.000365172,0.000311408,0.000302902,0.000306748,0.000336989,0.000307965,0.000315401,0.000265922,0.00026818,0.000265509,0.000358733,0.000269031,0.0002554,0.000295445,0.000336489,0.000359445,0.000426024,0.000394395,0.00039439,0.000310443,0.000305226,0.000267834,0.000316651,0.000296917,0.00031922,0.000245231,0.000292427,0,0,0,0,0,0 +MEASUREMENT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000719011,0.000719166,0.000719321,0,0,0,0.000861866,0.000862069,0.000861259,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00074375,0.000744261,0.000743027,0,0,0,0.000858083,0.000858164,0.000857919,0,0,0,0.000564122,0.000564069,0.00056391,0,0,0,0,0,0,0,0,0,0.000620551,0.000620619,0.000620053,0,0,0,0.000670092,0.000669942,0.000669917,0,0,0,0.000415326,0.000413323,0.000412967,0,0,0,0.000496386,0.000494988,0.000494438,0,0,0,0.001063175,0.001032914,0.001031014,0,0,0,0.000804685,0.000777484,0.000774182,0,0,0,0,0.00096177,0.000983413,0,0,0,0,0.000888202,0.000896793,0.000954114,0.001303417,0.001467112,0.001314204,0.001033859,0.001144462,0.000833666,0.000603666,0,0.001084501,0.00123435,0.001304121,0.000502857,0.000545426,0.000557744,0.000877321,0.001037075,0.000754805,0.000627803,0.000555536,0.000749085,0.000787051,0.000844737,0.000630517,0.000608199,0.000680711,0.00073111,0.000688984,0,0.000757002,0.00067904,0.000782556,0.000664408,0.000954818,0.000957854,0.000834072,0.000675432,0.000425683,0.000449097,0.000425137,0.000724533,0.000766989,0.000734855,0.000685558,0.000764693,0.000666084,0.000681857,0,0.000717832,0.000651015,0.000621982,0.000582547,0.00072711,0.000732824,0.000671667,0.000739703,0.000869535,0.000967262,0.00100447,0.000770883,0.000832909,0.000594687,0.000649245,0.000506842,0.000582483,0.000594001,0.000594196,0.000672294,0.000750947,0.000667394,0.000618611,0.000541196,0.00069213,0.000723421,0.000735861,0.000713504,0.000692614,0.000587702,0.000634349,0.000575346,0.000491432,0.000473766,0.000435414,0.000500297,0.000425958,0.000517299,0.000464285,0.000473193,0.000460125,0.000476405,0.000474437,0.000387695,0.000369791,0.000385792,0.000393525,0.000520982,0.000513589,0.000523965,0.000428552,0.000468228,0.000474384,0.000505671,0.00044555,0.000478378,0.000423211,0.000396642,0.000350151,0.000364851,0.000356504,0.000416825,0.000356559,0.000383491,0.000365728,0.000432977,0.000470363,0.000461907,0.000381306,0.000361709,0.000335024,0.000357618,0.000308703,0.000300503,0.000328912,0.000373713,0.000433336,0.000464132,0.000460384,0.000361206,0.000342672,0.000376609,0.000399123,0.000403244,0.000430652,0.000389893,0.000409561,0.000373667,0.000415368,0.000405688,0.000443386,0.000383954,0.000418937,0.000393925,0.000453086,0.00044405,0.000488791,0.000413512,0.00042877,0.000460171,0.000401188,0.000378508,0.000303111,0.000288733,0.000330384,0.00031342,0.000360661,0.000346464,0.000404395,0.000369529,0.000364395,0.00031781,0.000376407,0.000388973,0.000436856,0.000357977,0.000334036,0.000360746,0.000372961,0.000393502,0.000373228,0.000367152,0.000338569,0.000318755,0.000352301,0.000388767,0.000410114,0.000368418,0.000350399,0.000339109,0.000390534,0.00036035,0.000381017,0.000330014,0.000345314,0.000350581,0.000331091,0.000347634,0.000333954,0.000409428,0.000417913,0.000376469,0.000396632,0.000386835,0.000439755,0.000397228,0.000380496,0.00030341,0.000338604,0.000332579,0.000353039,0.00028391,0.000289971,0.000320509,0.000352593,0.000331023,0.000330652,0.000315463,0.000301621,0.000294472,0.00033236,0.000333256,0.000334978,0.000296002,0.00025252,0.000247727,0.000289108,0.000325742,0.000336299,0.000345622,0.000344947,0.000347118,0.000321878,0.000323948,0.000316644,0.000342573,0.000367426,0.000368977,0.000343706,0.000381058,0.000376522,0.000400384,0.000323563,0.000329426,0.000293478,0.000341105,0.000351203,0.000378761,0.00035502,0.000335235,0.000320442,0.000359682,0.00036977,0.000374526,0.000290597,0.000258965,0.000257616,0.000301161,0.000177999,0,0,0,0,0,0 +ECOLOGICAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001018809,0.001017852,0,0,0,0.00118991,0.001189343,0.001188872,0,0,0,0,0.000814091,0.000814091,0.000814393,0,0,0,0.000572115,0.000572508,0.000571559,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000549321,0.000549063,0.000549688,0,0,0,0.000584048,0.000584112,0.00058358,0,0,0,0.000632864,0.000632723,0.000632699,0,0,0,0.000588378,0.000585541,0.000585037,0,0,0,0.000589458,0.000587799,0.000587145,0,0,0,0.000783392,0.000753748,0.000724496,0,0,0,0.000715276,0.000710843,0.000729943,0,0,0,0,0.000371593,0.000349658,0.000356798,0,0,0,0.000579262,0.000591501,0.00058307,0,0,0,0,0,0.000471202,0.000548787,0.000793021,0,0,0,0.000457143,0.000467508,0.000557744,0.000633621,0.000674099,0,0,0,0,0,0,0,0,0.000644884,0.000667536,0.000729513,0,0,0,0.000533561,0.000465085,0.000496505,0,0.000521295,0,0,0,0.000386488,0,0.000511326,0,0.000457038,0.00036414,0.000416302,0,0,0.000598193,0.000569638,0.000475633,0.000427201,0,0,0,0,0.000347814,0,0,0,0,0.000396458,0.000357085,0.000443487,0.000429198,0.000462,0.000312735,0.000497996,0.000326499,0.000243855,0,0,0.000182139,0.000206692,0.000210246,0.000196829,0.000185823,0.000201498,0.000295046,0.000236195,0.00029265,0.000279522,0.000327872,0.000348033,0.000351021,0.000275485,0.000194405,0.000208887,0.000261152,0.00033223,0.000336593,0.000233141,0.000240364,0.00023068,0.000283815,0.000280813,0.000286093,0.000246751,0.000251588,0.000265099,0.000304669,0.00032687,0.000371937,0.000343745,0.00027468,0.0002298,0.000270971,0.000321253,0.00040478,0.000341038,0.000313772,0.000356201,0.000350901,0.000375104,0.000343134,0.000289768,0.000259377,0.000239121,0.000275714,0.000299354,0.000350798,0.000244855,0.000273432,0.000286835,0.000293462,0.000280167,0.000213285,0.000289496,0.000271586,0.00029975,0.000290999,0.000308139,0.000392201,0.000484117,0.000449806,0.000381022,0.000335907,0.000356041,0.000328963,0.000344429,0.000311266,0.000304082,0.000267891,0.00029225,0.000298142,0.000339873,0.000315393,0.00029433,0.000307343,0.000295014,0.000331029,0.000330439,0.00038154,0.000320882,0.000327385,0.000311689,0.000364942,0.000352207,0.000339722,0.000332377,0.000402955,0.000443887,0.000488343,0.000429572,0.000354795,0.000330339,0.000307263,0.000313038,0.000343129,0.000424164,0.000457696,0.000401849,0.000369709,0.000392992,0.00043361,0.000553704,0.000437999,0.000360377,0.000321407,0.000306965,0.000313666,0.000278449,0.000332592,0.000365499,0.000389662,0.000395584,0.000433518,0.000512707,0.000583879,0.000439442,0.000426891,0.00040318,0.000432333,0.000378634,0.000418009,0.000375238,0.000380116,0.0003751,0.000385814,0.000457765,0.000439516,0.000371641,0.000318633,0.000368609,0.000376035,0.000430538,0.000424819,0.00043456,0.000395264,0.000386861,0.000374964,0.000372627,0.000438961,0.000507997,0.00046874,0.000428676,0.000408363,0.00041311,0.000412836,0.000410899,0.000365172,0.000434194,0.000433742,0.000509755,0.000467436,0.000479379,0.000424578,0.000397422,0.000379866,0.000391053,0.000473621,0.000459823,0.000448575,0.000380855,0.000371673,0.000370363,0.00060222,0.000684812,0.000559893,0.000483379,0.000445172,0.000444428,0.000442911,0.000397377,0.000414425,0.000382904,0.000457712,0,0,0,0,0,0 +DIVISION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000279783,0.000279166,0.000278652,0,0,0,0,0.000222138,0.000221195,0,0,0,0,0,0,0,0,0,0,0.000289631,0.00026713,0.0002827,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000232528,0.000233607,0.000233734,0,0,0.00019178,0.000266476,0.000242955,0.000248727,0.000275413,0.00031903,0.000283972,0.000263241,0.000304187,0.000319725,0.000298459,0.000247605,0.000262863,0.000296011,0.000312268,0.0003321,0.000331515,0.000317762,0.000292987,0.000332048,0.000332608,0.000383878,0.000359878,0.000435827,0.000410681,0.000481243,0.000508667,0.0005383,0.000501472,0.000486468,0.000382499,0.000422654,0.000370822,0.00039929,0.00037726,0.000342952,0.000289158,0.000390182,0.000430078,0.000438894,0.000408762,0.000433963,0.000403418,0.000411801,0.000378446,0.000426115,0.000430594,0.000452318,0.000371948,0.000424949,0.000439276,0.00045603,0.000408467,0,0.000357595,0.000354153,0.000437969,0.000410445,0.000408145,0.000364552,0.000322834,0.000451711,0,0.000537673,0.000467063,0.000431282,0.00040158,0.000427674,0.000437015,0.000473617,0.000465706,0.000466177,0.000420766,0.000555008,0.000588297,0.000598482,0.000502349,0.000468821,0.000407683,0.000485007,0.000508634,0.000515118,0.000443724,0.000419862,0.000396291,0.000484646,0.000562388,0.00048376,0.000398229,0.000359332,0.000369616,0.000440127,0.000507854,0.000431817,0.000404525,0.000337213,0.00032681,0.000323173,0.000415147,0.000465537,0.000411914,0.000403355,0.000370433,0.000327951,0.000432551,0.000459982,0.000472639,0.000396383,0.000354697,0.000278485,0.000409915,0.0003354,0.000326301,0.000272419,0.000295025,0.000285666,0.000369778,0.000370284,0.000371162,0.000340172,0.000340865,0.000317405,0.000388452,0.000331733,0.000331618,0.000280249,0.000285989,0.000291655,0.000422695,0.000377381,0.000341748,0.000281588,0.000275376,0.000247718,0.000318601,0.000327689,0.000324572,0.000283612,0.000283932,0.000255638,0.000333938,0.000337305,0.000420701,0.000386647,0.000389531,0.000359739,0.000371775,0.000357356,0.000353815,0.000355927,0.000357127,0.000352032,0.000264947,0.000381585,0.000427215,0.000481844,0.00046827,0.000457705,0.000339242,0.000457139,0.000462469,0.000507398,0.00049162,0.000515065,0.000499026,0.000522395,0.000543233,0.000507671,0.00033057,0,0,0,0,0,0 +SIMILAR,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000206692,0.000198566,0.000270639,0.000236502,0.000201498,0.000147523,0.00030887,0.000400324,0.000424021,0.000435414,0.000460419,0.000473287,0.000413227,0.00038881,0.000379407,0.000412869,0.000404318,0.000416735,0.000374598,0.000410878,0.000379827,0.00042453,0.000387965,0.000489461,0.000441715,0.000437081,0.000411421,0.000400773,0.000416271,0.000468796,0.000418223,0.000390656,0.000362014,0.000385342,0.000413039,0.000427062,0.000443058,0.000376934,0.000413653,0.000390439,0.000420117,0.000323857,0.000370099,0.000376872,0.000401058,0.000397541,0.000391772,0.000340274,0.00031998,0.000388353,0.000408188,0.000407281,0.000384808,0.000397959,0.000401045,0.000370013,0.000375328,0.000361747,0.000355692,0.000288383,0.000412636,0.000411928,0.000441339,0.000402125,0.00040427,0.000375958,0.00033596,0.00035825,0.000399454,0.00043212,0.00044405,0.000405636,0.00041068,0.000393726,0.000427301,0.000425822,0.000438346,0.000434725,0.000461972,0.000443354,0.000453712,0.000450826,0.000470109,0.000452068,0.000421494,0.000400455,0.000463474,0.000449413,0.000457616,0.000408773,0.000368991,0.000381216,0.000454734,0.000479088,0.000465148,0.000443057,0.00035347,0.000405447,0.000418195,0.000376341,0.000359187,0.00033749,0.000355491,0.000415147,0.000414729,0.000401936,0.000387784,0.000375244,0.000360953,0.000394385,0.000455009,0.000439285,0.000401977,0.000356771,0.000285862,0.000331931,0.000347721,0.000343475,0.000351031,0.000356257,0.000387086,0.000362632,0.000403721,0.000371976,0.000379656,0.000336183,0.00037323,0.000413984,0.000435243,0.000419516,0.000374544,0.000379637,0.000340264,0.000384461,0.00040883,0.000424369,0.000385569,0.00037421,0.000339038,0.000337481,0.000293196,0.000317633,0.000316621,0.000323808,0.000327898,0.000300911,0.000343438,0.000357643,0.00035791,0.000353088,0.000315705,0.000289158,0.000307965,0.000389197,0.000402682,0.000405948,0.000406322,0.000386869,0.000347269,0.000351059,0.000374409,0.000390865,0.000372043,0.00035502,0.000365711,0.000415518,0.00037049,0.000370977,0.000337736,0.00033068,0.000290219,0.00033042,0.000335579,0.000444998,0,0,0,0,0,0 +LIQUID,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003090235,0.003095336,0.003094059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001175272,0.001175549,0.001174444,0,0,0,0.001348564,0.001347923,0.001347388,0,0,0,0,0.001258141,0.001258141,0.001258607,0,0,0,0.000972596,0.000973264,0.000971651,0,0,0,0.001287124,0.001287247,0.001286879,0,0,0,0.000705152,0.000705086,0.000704887,0,0,0,0.00113788,0.001137344,0.001138639,0,0,0,0.000912575,0.000912675,0.000911843,0,0,0,0.000856228,0.000856037,0.000856005,0,0,0,0.000865261,0.000861089,0.000860348,0,0,0,0.000868675,0.000866229,0.000865266,0,0,0,0.000923284,0.000921247,0.000919553,0,0,0,0.000782333,0.000799698,0.000840541,0,0,0,0,0.001071062,0.001070828,0.001049406,0,0,0,0.001255069,0.001259326,0.001201477,0.000931012,0.001222594,0.001423721,0.000930473,0.000884357,0.000652434,0.000603666,0.000687285,0.000903751,0.000969847,0,0.000731429,0.000896057,0.00104577,0.001364722,0.001296344,0.001335424,0.001076233,0.000972188,0.000950762,0.00092393,0.000971448,0.000840689,0.000932571,0.00103898,0.001144347,0.001134798,0.001072085,0.001281081,0.001267542,0.001138263,0.001362036,0.001565902,0.001724138,0.001251108,0.001260807,0.001667258,0.001761841,0.001855144,0.001835483,0.00158511,0.001561567,0.001180683,0.000983177,0.000915865,0.001136428,0.001848917,0.001734761,0.001342719,0.00128055,0.001281603,0.001566083,0.001526718,0.001735139,0.001712995,0,0.001190476,0.000904023,0.001431639,0.001110546,0.000925069,0.000811557,0.001108718,0.001256936,0.001617002,0.001501126,0.001220089,0.000881546,0.00114227,0.001193036,0.001324998,0.001548185,0.001588942,0.001471722,0.000959539,0.000658828,0.000688451,0.001017909,0.000781259,0.000637757,0.000549569,0.000495743,0.000431416,0.000445678,0.000443836,0.000443701,0.000422037,0.000502406,0.000692668,0.00075974,0.000641793,0.00042115,0.000365906,0.00033867,0.000424914,0.000554952,0.00062754,0.000543686,0.000511263,0.000439623,0.000472146,0.00053466,0.000552857,0.000498493,0.000418677,0.000401177,0.000403861,0.000516187,0.000498441,0.000438059,0.00044956,0.000431625,0.000488707,0.00048964,0.000476252,0.000441162,0.000404085,0.000416777,0.000500263,0.000526198,0.000475797,0.000410149,0.000442663,0.000438821,0.000423626,0.000462985,0.000440884,0.000371835,0.000290783,0.00032971,0.000380419,0.000622907,0.000597835,0.000520828,0.000435454,0.000386473,0.000397177,0.000435213,0.000508175,0.000475709,0.000511411,0.000468228,0.000458237,0.00042389,0.000529636,0.000455568,0.000460171,0.000384765,0.000395207,0.000362936,0.000516511,0.000520088,0.000538783,0.000416477,0.000422454,0.000356722,0.000438816,0.000461187,0.000357537,0.000347015,0.00029173,0.000355726,0.000567256,0.000430284,0.000434001,0.000325456,0.000350514,0.000359984,0.000344348,0.00031976,0.000299684,0.000273552,0.000269601,0.000279817,0.000333946,0.000348495,0.000399369,0.000351338,0.000364058,0.000299233,0.000315576,0.000272616,0.000252369,0.000273333,0.000263722,0.000265504,0.000226845,0.000273943,0.00028201,0.000332844,0.000319897,0.000333991,0.000251859,0.000253664,0.00030341,0.00034593,0.000324226,0.000299661,0.000250415,0.000313679,0.000331733,0.000349597,0.000309922,0.000311922,0.000321415,0.000388709,0.000365945,0.000349259,0.000330027,0.000334224,0.000284456,0.000283201,0.000228912,0.000259812,0.000284481,0.000290658,0.000281542,0.000216509,0.0002355,0.000297408,0.000263861,0.000261679,0.000235099,0.000304377,0.000318134,0.000276987,0.000280533,0.000285568,0.000301136,0.000236811,0.000234716,0.000287906,0.000377632,0.000389585,0.00038464,0.000189344,0.000175685,0.000215975,0.000261205,0.000276272,0.000279607,0.000256527,0.000218781,0.000210013,0.000197906,0.000228856,0,0,0,0,0,0 +WORKSHOPS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000362463,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000521295,0.000495317,0.000425683,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000248998,0.000163249,0.000141179,0.000265119,0.000317253,0.000801413,0.000865521,0.000887705,0.000738107,0.000523684,0.000520536,0.000737615,0.000454221,0.000278846,0.00022267,0.000178363,0.000217521,0.000232699,0.000312216,0.000274454,0.000245123,0.000228819,0.000285216,0.000288509,0.000275054,0.000236255,0.000254544,0.00027666,0.000291897,0.000292987,0.000319863,0.000260116,0.000263378,0.000233103,0.000310108,0.000333194,0.000363797,0.000341824,0.00036831,0.000330795,0.000376325,0.00035279,0.000405165,0.000332109,0.000280077,0.000245466,0.00030437,0.000466508,0.000502073,0.000383523,0.000293605,0.000248463,0.000313418,0.000512166,0.000478579,0.000342781,0.000216505,0.000211183,0.00027004,0.000382352,0.000416981,0.000284345,0.000240825,0.000198894,0.000207328,0.000438342,0.00043538,0.000397724,0.000254505,0.000275708,0.000269513,0.000318747,0.000352899,0.000330843,0.000240502,0.000216643,0.000217059,0.000324509,0.000492816,0.000422585,0.00034961,0.00029092,0.000283881,0.000257246,0.000218154,0.000221677,0.000229841,0.000254394,0.000256306,0.000274528,0.000280034,0.000277092,0.000237034,0.000226603,0.000219656,0.000285517,0.000368991,0.000475577,0.000364893,0.000308274,0.000252414,0.000308214,0.0004082,0.000384548,0.000305133,0.00029013,0.00029242,0.000305449,0.0003361,0.000367539,0.000341472,0.000363453,0.000350711,0.000366585,0.000354765,0.000408924,0.000384147,0.000359563,0.000354027,0.000356771,0.000416805,0.000423912,0.000398373,0.000347564,0.000340134,0.000336774,0.000422583,0.000441232,0.000400006,0.000371976,0.000431289,0.00055531,0.00077198,0.000691188,0.000483881,0.000389551,0.000414768,0.000412775,0.000438474,0.000348351,0.000387387,0.000351137,0.000420445,0.000411932,0.000480741,0.000512121,0.000512701,0.000397042,0.000423898,0.00042758,0.000500368,0.000543108,0.000523743,0.000469641,0.000465022,0.000454652,0.000472437,0.000576142,0.000608667,0.000558017,0.000480998,0.000436712,0.000452977,0.000501757,0.000488648,0.000463435,0.00049205,0.000509852,0.000523212,0.00047336,0.00048403,0.000441341,0.000435341,0.00042044,0.000448843,0.000519067,0.000564812,0.000537633,0.000507671,0.000457712,0,0,0,0,0,0 +PARTICLES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000862813,0.000862999,0.000863185,0,0,0,0.001253624,0.001253918,0.00125274,0,0,0,0.001110582,0.001110054,0.001109614,0,0,0,0,0.001406157,0.001406157,0.001406678,0,0,0,0.000972596,0.000973264,0.000971651,0,0,0,0,0,0,0,0,0,0.000611132,0.000611075,0.000610902,0,0,0,0.000745507,0.000745156,0.000746005,0,0,0,0.000620551,0.000620619,0.000620053,0,0,0,0.000521182,0.000521066,0.000521047,0,0,0,0.000380715,0.000378879,0.000378553,0,0,0,0.000372289,0.000371241,0.000370828,0,0,0,0.000503609,0.000530415,0.00052944,0,0,0,0.000581161,0.000599773,0.000619346,0,0,0,0,0.000524602,0.000524487,0.000524703,0,0,0,0.000444101,0.000477017,0.000477057,0,0,0,0.000516929,0.000572231,0.00039871,0,0,0,0,0,0,0,0,0,0,0.000580619,0.000852018,0.000520815,0.000374543,0,0,0.000577974,0.000608199,0.000716538,0.000603961,0.000607927,0,0,0,0.000391278,0.000398645,0.000381927,0,0,0,0.000425683,0,0.000425137,0.000531324,0.000613591,0.000734855,0.000571298,0.000473381,0,0,0,0,0.000488261,0.000475633,0.000427201,0.000559315,0.000610687,0.000727639,0.000467181,0.000347814,0.000409226,0,0,0,0.000693802,0.000616783,0.00053852,0.000398541,0.000792001,0.000781836,0.000672294,0.000391798,0.000333697,0.000324035,0.000373239,0.000546418,0.000632993,0.000548976,0.00055358,0.000439219,0.000470162,0.000413065,0.000526896,0.000560453,0.000554307,0.000521973,0.000482171,0.000441734,0.000465263,0.000464285,0.000507297,0.000467586,0.00047954,0.000423146,0.000529152,0.000419096,0.000399713,0.00032436,0.000402745,0.000389501,0.000392974,0.000405099,0.000461342,0.000462116,0.000491703,0.000352566,0.000401036,0.000431349,0.000440713,0.000461002,0.000456638,0.000486479,0.000410995,0.000328035,0.000317421,0.000314658,0.000405113,0.000539761,0.000456169,0.000401258,0.000367763,0.00037029,0.000429945,0.000284147,0.000322763,0.000384391,0.000365439,0.000337344,0.000291981,0.000348539,0.000342615,0.000302572,0.000253635,0.000286995,0.000315748,0.000469103,0.00032816,0.000314864,0.000301581,0.000276912,0.000262421,0.000222714,0.000296435,0.000342588,0.000435391,0.00041232,0.000421351,0.000358988,0.000365364,0.0003257,0.000366045,0.000326112,0.000320062,0.000271205,0.000378561,0.000432697,0.000396998,0.000351,0.000337448,0.000336996,0.000441702,0.000328335,0.000389318,0.000376407,0.000423294,0.000400972,0.000357977,0.000309502,0.000367657,0.000333542,0.000335083,0.00030701,0.000335226,0.000342749,0.00038414,0.000335722,0.000358341,0.000323606,0.000327482,0.000260895,0.000342654,0.000325683,0.00034478,0.000309817,0.000342389,0.000477987,0.000481116,0.000430337,0.000345237,0.000311137,0.000343034,0.000403916,0.000397004,0.000367191,0.0003845,0.000407283,0.000410751,0.000423369,0.000408675,0.000396395,0.000359155,0.000335246,0.00034133,0.000393923,0.000401571,0.00039055,0.00033432,0.000320567,0.000303559,0.000380213,0.000401682,0.00043188,0.00035909,0.000340259,0.000275009,0.000309161,0.000352776,0.000358494,0.000373517,0.000369929,0.000363346,0.000317425,0.000333626,0.000408466,0.000401799,0.00040626,0.00036571,0.000291332,0.000347187,0.000331575,0.00038398,0.000367159,0.000375784,0.000201641,0.000288247,0.00040121,0.000443705,0.000456755,0.000431671,0.000291906,0.000247393,0.000251189,0.00037049,0.000381231,0.000411316,0.000286589,0.000265662,0.000257616,0.000314068,0.000457712,0,0,0,0,0,0 +INSTRUMENT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000337227,0,0,0.000298797,0.000342824,0.00025669,0.000191475,0,0.000819627,0.000878439,0.000805943,0.000381355,0,0,0.000501578,0,0.000361672,0.000274784,0.000251806,0.000326281,0.000402294,0.000468324,0.000429979,0.000392196,0.00038551,0.000351036,0.000525727,0.000552728,0.00052387,0.000401701,0.000336285,0.000339931,0.000413629,0.000508734,0.000362457,0.000420028,0.000310803,0.000488909,0.000395183,0.000472649,0.000406933,0.000426547,0.000394139,0.000344199,0.000319368,0.000317719,0.000385084,0.000393545,0.000398676,0.000407256,0.000389399,0.000476252,0.00042121,0.000407112,0.000367084,0.000349582,0.000284147,0.000414583,0.000424018,0.000525404,0.000500531,0.000514764,0.000460384,0.000438228,0.000426517,0.000404791,0.000401792,0.000414657,0.000407581,0.000445127,0.000449806,0.00042957,0.000456303,0.000443987,0.000525116,0.000457357,0.000434598,0.000388396,0.000400672,0.000410001,0.000391439,0.000266234,0.000298902,0.000454194,0.000445764,0.000453653,0.000305105,0.000295149,0.000270702,0.000198499,0.000373541,0.00043147,0.000627963,0.000490781,0.000371986,0.000373427,0.000448465,0.000493081,0.000507065,0.000380006,0.000351021,0.00030546,0.000545796,0.000566555,0.000610408,0.000342067,0.000353199,0.000324203,0.000419446,0.000420882,0.000429338,0.00025423,0.00027613,0.000346199,0.000448972,0.000442652,0.00045318,0.000249573,0.00024899,0.000234964,0.000499484,0.000496278,0.000572493,0.000287706,0.000263945,0.000182074,0.00033039,0.000368933,0.00044161,0.00035835,0.000260809,0.00022539,0.000379302,0.000371304,0.000433573,0.000212135,0.000200609,0.000210763,0.000269689,0.000342892,0.000353704,0.000356136,0.000210285,0.000175825,0.000295744,0.000368132,0.00042174,0.00042406,0.000325681,0.000272813,0.000252102,0.000401748,0.000417011,0.000546724,0.000704573,0.000589978,0.00039623,0.000327605,0.000329787,0.000362724,0.000256546,0.00019611,0.00017994,0.000323782,0.000356459,0.00043177,0.000302461,0.000264913,0.000224752,0.00034003,0.000360798,0.000412355,0.000247199,0.0002456,0.000210106,0.000349474,0.000384247,0.000429712,0.000336692,0.000196456,0.000201612,0.000189301,0.000139857,0,0,0,0,0,0 +RESULTING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000195899,0.000333697,0.00038295,0.000391901,0.000200353,0.000129182,0.000163525,0.000221432,0.000304075,0.000302247,0.000324551,0.000339151,0.000334063,0.000336374,0.000359348,0.000391537,0.000354965,0.000379557,0.000363652,0.000347435,0.000290998,0.000275814,0.00029492,0.000272435,0.000306104,0.000330111,0.000379215,0.000362101,0.000341244,0.000316816,0.000313419,0.000306414,0.000304669,0.000321283,0.000302199,0.000280725,0.000282819,0.000310073,0.000330795,0.000330431,0.000356504,0.000308975,0.00032396,0.000350456,0.000375612,0.000394395,0.000343134,0.000304113,0.000252726,0.000245175,0.000238845,0.000249127,0.000263099,0.00031998,0.000307116,0.000330963,0.000316774,0.00035274,0.000358943,0.000326679,0.000282522,0.00028694,0.000317696,0.000346181,0.000322989,0.000285921,0.000295925,0.000283928,0.000304603,0.000304975,0.000355526,0.000358545,0.000344546,0.000337255,0.000347094,0.000360347,0.00037927,0.000342705,0.000319516,0.000297318,0.000299131,0.00030058,0.000342994,0.000375352,0.000328253,0.000322375,0.000355294,0.000381239,0.000399463,0.000366642,0.000354905,0.000331053,0.000358393,0.000361516,0.00038849,0.000316672,0.000298179,0.00029302,0.000328489,0.000351617,0.000362392,0.000371713,0.000342749,0.000329652,0.000363906,0.000388767,0.000418658,0.000409353,0.000342782,0.000378101,0.000398373,0.000429306,0.000421428,0.000455832,0.000401655,0.000391606,0.000405932,0.000430747,0.000449075,0.000459223,0.000403916,0.000353197,0.000383547,0.000400845,0.000432333,0.000425963,0.000421582,0.000442112,0.000414302,0.000400917,0.000385814,0.000365255,0.000342859,0.000330486,0.000405532,0.000442463,0.000469684,0.000447402,0.000392957,0.000363086,0.00038212,0.00040882,0.000425513,0.000426159,0.000403561,0.000338665,0.000373913,0.00037786,0.000389626,0.00040084,0.000392653,0.000398634,0.000386819,0.000408592,0.000411039,0.000416461,0.000391342,0.000393672,0.000455916,0.00044184,0.000442731,0.000418197,0.000436107,0.000407664,0.000471794,0.00046734,0.00049066,0.000443428,0.000383948,0.000376468,0.000417865,0.00044675,0.000458443,0.000462087,0.000450927,0.000401842,0.000375223,0.000382904,0.00041957,0,0,0,0,0,0 +CAPABILITIES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000212224,0.000218186,0.00025039,0.000261267,0.00050999,0.000632993,0.000584017,0.00047977,0.000287182,0.000268664,0.000236037,0.000399714,0.000411367,0.000400333,0.000351479,0.000261025,0.000276084,0.000321399,0.000354504,0.000387933,0.000373074,0.000398049,0.000326977,0.000374598,0.00035541,0.000365906,0.00031482,0.000310372,0.000310222,0.000426483,0.000388042,0.000402813,0.000333296,0.000357602,0.000309948,0.000360932,0.000315373,0.000333683,0.0003132,0.00033961,0.000330509,0.000323549,0.000358597,0.000354765,0.000359138,0.000375104,0.000377833,0.000384444,0.00029263,0.000299659,0.000275714,0.000307391,0.000315719,0.000350587,0.000311079,0.000351648,0.000386711,0.000421938,0.000390156,0.000342615,0.000360899,0.000391981,0.000383104,0.00039944,0.000446032,0.000380145,0.00035511,0.000326591,0.00037323,0.000385829,0.00042091,0.000372661,0.000356292,0.000294407,0.000330788,0.000340485,0.000436059,0.000424841,0.000379296,0.000376503,0.000370688,0.000377116,0.000362936,0.000314398,0.000313332,0.00028357,0.000385349,0.000405711,0.000475082,0.000346433,0.000330233,0.000340322,0.000399162,0.000419862,0.00046182,0.00043508,0.000407637,0.000323428,0.000391154,0.000410036,0.00043463,0.000376274,0.000349019,0.000343274,0.000429393,0.000503706,0.000557499,0.000476142,0.00031993,0.000290665,0.000402649,0.00043153,0.000512834,0.000472332,0.000334409,0.000239937,0.000349801,0.000405973,0.000488486,0.000457379,0.000351927,0.000312127,0.000385183,0.0003845,0.000423983,0.000360041,0.000371564,0.000310841,0.00034186,0.000356118,0.000385814,0.00034771,0.000310032,0.000270624,0.000340607,0.000371247,0.000399087,0.000392841,0.00036322,0.000285895,0.000319216,0.000358444,0.000403633,0.000416712,0.000379961,0.00026027,0.000324572,0.000387415,0.000417011,0.000447195,0.000427514,0.000338532,0.000313408,0.000363657,0.000385947,0.000416461,0.000350033,0.000328302,0.000293161,0.000379889,0.00039391,0.000435163,0.000365767,0.00035276,0.000316696,0.000395359,0.000410696,0.000476181,0.000454952,0.000457139,0.000361524,0.000408921,0.000449998,0.000509179,0.000557145,0.00038175,0.000282817,0.000292556,0.000177999,0,0,0,0,0,0 +COLLECTION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000572115,0.000572508,0.000571559,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000372273,0.00037219,0.000372176,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000279783,0.000279166,0.000278652,0,0,0,0.000402343,0.000399849,0.000508748,0,0.002391824,0,0,0.000612035,0.000633755,0.000608656,0,0,0,0.00046341,0.000457937,0.000494726,0,0,0,0,0,0.00039871,0,0,0,0,0,0,0,0.00034859,0,0,0,0,0,0,0,0,0,0.000527105,0.000501576,0.000540386,0.000486342,0.000510517,0,0,0,0,0,0,0,0.000495317,0.000638524,0.000621826,0.000618381,0.000531324,0,0.000459284,0.000380865,0.000436967,0.000499563,0.000625036,0,0,0.000447573,0.000475633,0.000388365,0.000615247,0.000671756,0.000671667,0.000506112,0.00048694,0.000446429,0.000502235,0,0,0,0.000389547,0.000443487,0.000582483,0.000594001,0.000625469,0.000522895,0.000326499,0.000320862,0.000338763,0.000373239,0.000418921,0.000374629,0.00036209,0.000393657,0.000371647,0.000369413,0.000221285,0.000290701,0.000311976,0.000336374,0.000453775,0.00058368,0.000607385,0.000443836,0.000338494,0.00034104,0.000348202,0.000372975,0.000375061,0.000371978,0.000386226,0.000379827,0.000403065,0.000458168,0.00047912,0.000392974,0.000328344,0.000376992,0.000392594,0.00045259,0.000286702,0.000360932,0.000372344,0.000478488,0.000452204,0.000449754,0.00040478,0.000443058,0.000560307,0.000394981,0.000387144,0.000257214,0.000427953,0.000390182,0.000394608,0.000343548,0.000373496,0.000387754,0.000392894,0.000345022,0.000328912,0.000398535,0.000422366,0.000423626,0.000434373,0.000406357,0.000377303,0.000383014,0.000431159,0.00048123,0.000480638,0.00032816,0.000326701,0.000381022,0.000359986,0.000361715,0.000343266,0.000369838,0.000350419,0.000334491,0.000383201,0.000397233,0.000381298,0.000297389,0.000368989,0.000425807,0.000428168,0.000423038,0.000380883,0.000359312,0.000532877,0.000488039,0.000436872,0.000337448,0.000320557,0.000265599,0.00038717,0.000423747,0.000472168,0.000448463,0.000436856,0.00036073,0.000345359,0.000335867,0.000324446,0.000350514,0.000359984,0.000428725,0.000436796,0.000404573,0.000418617,0.00041074,0.000482738,0.000551549,0.000592251,0.000458447,0.000381982,0.000351453,0.000312704,0.000319701,0.00029806,0.000323231,0.000353055,0.000369211,0.000403442,0.000461067,0.000493897,0.000480512,0.000394996,0.000410185,0.000398006,0.000490196,0.000450164,0.000380191,0.000352441,0.000326504,0.000338992,0.000346115,0.000381157,0.000346698,0.000347599,0.000339595,0.000336415,0.000317447,0.000331359,0.000305907,0.00030701,0.000320985,0.000339505,0.000360031,0.000401201,0.000348072,0.000291421,0.000311843,0.000316601,0.000358574,0.000304581,0.000366743,0.000378348,0.000385602,0.000378777,0.000352276,0.000382645,0.000384956,0.000431655,0.00035768,0.000343752,0.000314708,0.000297772,0.000363741,0.000448575,0.000394822,0.000387027,0.000334251,0.000433914,0.000345992,0.00030753,0.000291228,0.000296781,0.000301681,0.000260536,0.000229943,0.000179211,0.000176394,0.000139857,0,0,0,0,0,0 +PROVIDED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00030657,0.000495,0.000688016,0.000572695,0.000848896,0.000718732,0.000751171,0.000410563,0.000491776,0.000477974,0.000584017,0.000615089,0.000641935,0.000470162,0.00038356,0.000539008,0.000477627,0.000473766,0.000424922,0.000496672,0.000564,0.000627493,0.000628958,0.000592557,0.000589457,0.000482674,0.000634719,0.000586782,0.000655351,0.000594598,0.00059625,0.000502507,0.00047912,0.000517873,0.000492515,0.000471671,0.000439623,0.000463765,0.000697382,0.000673167,0.00057988,0.000417103,0.000371265,0.000387798,0.000408494,0.000448888,0.000429909,0.000383491,0.000352548,0.000306514,0.000350845,0.000404527,0.000412343,0.000447974,0.00047769,0.000492227,0.000424466,0.000361717,0.000384391,0.000437147,0.000462134,0.000508013,0.000507202,0.000438228,0.000393708,0.000426568,0.000417811,0.000431776,0.000388355,0.000386644,0.000414295,0.000388378,0.000404533,0.000395759,0.000400477,0.000375485,0.000383699,0.000369046,0.000396013,0.00039014,0.00042389,0.000424841,0.00039991,0.000375009,0.000340188,0.00034511,0.00036493,0.000391393,0.000411381,0.000358194,0.000388569,0.000382527,0.000401107,0.000398398,0.000478268,0.000504524,0.000475013,0.000440455,0.000419694,0.000418558,0.000456705,0.000435384,0.000439669,0.000419956,0.000398511,0.000337507,0.000403357,0.000374605,0.000402038,0.000387076,0.00040157,0.000357645,0.000378965,0.000348562,0.000354189,0.000353677,0.000377169,0.000410455,0.000361671,0.000320744,0.000280655,0.000290894,0.000306989,0.000392829,0.000397917,0.000368256,0.000372916,0.000361928,0.000359968,0.000338066,0.000346555,0.000344278,0.00033779,0.000326504,0.000323072,0.00033176,0.000370214,0.000340463,0.000305648,0.000327067,0.000323448,0.000373993,0.000341979,0.000331638,0.000322971,0.000324214,0.000336487,0.000369478,0.000455481,0.000391973,0.000305298,0.00030142,0.000305071,0.000325853,0.000381644,0.000345891,0.000352937,0.000342757,0.000345321,0.000338841,0.000282636,0.000335566,0.000331575,0.000350082,0.00033907,0.000336763,0.000354044,0.000329426,0.000349202,0.000308337,0.000307702,0.000279662,0.000265608,0.000313723,0.00030753,0.000324254,0.000317291,0.000334057,0.0003407,0.000339333,0.000316419,0.000283952,0.000203428,0,0,0,0,0,0 +NEEDS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000245876,0.000244352,0.000287553,0,0,0,0,0.000349734,0.000349658,0.00033581,0,0,0,0.000289631,0.000305291,0.000335707,0,0,0,0.000516929,0.000676273,0.000579941,0,0,0,0,0,0,0,0.000488026,0,0,0,0.000896861,0.001666609,0.002823475,0.003011327,0.002703159,0.000577974,0.005676519,0.005087418,0.004736323,0.000770041,0.000663672,0.00803587,0.005975555,0.004730907,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000347814,0,0,0,0,0,0,0,0,0,0.000375281,0.000348597,0.000457098,0.000346531,0.00038295,0.000373239,0.000491776,0.000645911,0.000630738,0.000615089,0.000473005,0.00045337,0.000413065,0.000345208,0.000317498,0.000300842,0.000288528,0.000242898,0.000216923,0.00022651,0.000224138,0.000242991,0.000276075,0.000351036,0.000307743,0.000251478,0.000232146,0.000250566,0.00026235,0.000277118,0.000203368,0.000204103,0.000166304,0.000215178,0.000229013,0.000296139,0.000309948,0.00028359,0.000260437,0.000310073,0.000321998,0.000355673,0.000274805,0.000303145,0.000287285,0.000295877,0.000281709,0.000312944,0.000343134,0.000329934,0.000277112,0.000230041,0.000259684,0.000267209,0.000385878,0.000386759,0.000394298,0.000397156,0.000467619,0.000501262,0.000561824,0.000377142,0.000346317,0.000368923,0.000388444,0.000420363,0.000380665,0.000279423,0.000248577,0.000288341,0.000358782,0.000384411,0.000404564,0.000364192,0.000381741,0.000344166,0.000334282,0.000307856,0.000302199,0.000246408,0.000286534,0.000303294,0.000337842,0.000333978,0.000344988,0.000227778,0.000270702,0.000262676,0.000374615,0.000382527,0.000429053,0.000268486,0.000282786,0.000248952,0.000333741,0.000338636,0.00039161,0.000291889,0.000305728,0.00030546,0.000374982,0.000395707,0.000424998,0.00035575,0.0003323,0.000318755,0.000364735,0.000398908,0.000442154,0.000489069,0.000361826,0.000315478,0.000396948,0.000441911,0.000495515,0.000505334,0.000434369,0.000346851,0.000339226,0.000356425,0.000417961,0.000438936,0.000387919,0.000336769,0.000364738,0.000376716,0.000403572,0.000402299,0.000309041,0.000314556,0.000345116,0.000395602,0.00040267,0.00040513,0.000302737,0.000294319,0.000313638,0.000377841,0.000386841,0.000415658,0.000348351,0.00035451,0.000371792,0.000408174,0.000408915,0.000409365,0.000372881,0.000426467,0.000351555,0.000356579,0.000336299,0.000377662,0.000444028,0.000418259,0.000409407,0.000408592,0.000420001,0.000414222,0.000363078,0.000344282,0.000357859,0.000376382,0.000395248,0.000397839,0.000450175,0.000378839,0.000344558,0.000416846,0.000435005,0.000477861,0.000373429,0.00039798,0.000386173,0.000403516,0.000423456,0.000463559,0.000565162,0.000538022,0.000509631,0.00052488,0.000495855,0,0,0,0,0,0 +DETECTION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000346105,0.000344436,0.000344139,0,0,0,0.000310241,0.000309368,0.000309023,0,0,0,0,0,0,0,0,0,0,0,0.000221195,0,0,0,0,0.000371593,0.000371512,0.000314822,0,0,0,0.000328249,0.000324372,0.000388713,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000403354,0.000376416,0.000464606,0,0,0,0,0,0,0,0,0,0,0.00042012,0,0.000573424,0.000495317,0.00049663,0.000414551,0.000386488,0,0,0,0,0,0,0,0,0,0,0,0.000466038,0.000671178,0.000854962,0,0,0,0,0,0,0,0.00036342,0.000389547,0.000316776,0.00030657,0.000396,0,0.000323697,0.000391798,0.000385035,0.000368221,0.000205281,0.000236781,0.000271283,0.000315369,0.000270639,0.000202716,0,0.000206532,0.000139294,0.000165651,0.000149236,0.000173117,0.000250149,0.00027214,0.000275485,0.000230999,0.000253649,0.000243742,0.000285216,0.000259658,0.000256717,0.000246527,0.000256532,0.00027666,0.000291897,0.000261965,0.000295492,0.000255852,0.000270264,0.000239237,0.000293345,0.000278953,0.000289319,0.000209571,0.000242392,0.000241058,0.000289127,0.000267378,0.000244848,0.000179298,0.000218317,0.000214165,0.000300083,0.000323857,0.000278292,0.000219473,0.000183125,0.000177932,0.000186845,0.000252575,0.000347805,0.000332874,0.000300625,0.000264664,0.0002481,0.000270508,0.000276217,0.000255181,0.000257478,0.000274981,0.000308139,0.000330679,0.000367149,0.000352743,0.00030011,0.000322663,0.000309231,0.000400477,0.000341606,0.000311266,0.000265381,0.000279539,0.000297925,0.000344791,0.000283228,0.000257674,0.000322717,0.000327285,0.000356243,0.000327041,0.000324022,0.000294148,0.000237304,0.00030055,0.000306537,0.000348503,0.000280034,0.000235338,0.000234385,0.000295816,0.000327195,0.000322962,0.000214786,0.000201931,0.000259848,0.000325456,0.00036815,0.000345537,0.000301019,0.000294681,0.000397762,0.000392091,0.000395528,0.000360986,0.000327482,0.000270417,0.000464355,0.000528789,0.000579823,0.000542661,0.000495021,0.000405289,0.000338149,0.000391289,0.000417161,0.000469818,0.000457379,0.000419913,0.000353197,0.000361467,0.000368154,0.000407283,0.000378634,0.000339409,0.000373999,0.000415116,0.000414585,0.000425145,0.000416295,0.000432221,0.000431502,0.000469459,0.000532802,0.000567655,0.000568429,0.000484293,0.000450284,0.000400897,0.000482446,0.000481342,0.000524826,0.000342201,0.000294764,0.000384706,0.000408697,0.000430943,0.000436288,0.000480724,0.00044279,0.000400936,0.000432104,0.000442106,0.000488111,0.000447869,0.000427083,0.000383131,0.0004997,0.00050894,0.000527624,0.000389214,0.000330798,0.000368705,0.00040664,0.000439483,0.00043503,0.00035239,0.000356748,0.00041317,0.000404117,0.000436124,0.000449578,0.000509047,0.000404075,0.000305219,0.000357091,0.00041957,0,0,0,0,0,0 +DECISION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000524384,0.000524434,0.000524284,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000620482,0.000618735,0.000618047,0,0,0,0.000363718,0.000362916,0.000362248,0,0,0,0.0004694,0.00046649,0.000486629,0,0,0,0,0.000437168,0.000437072,0.000461739,0,0,0,0.000386175,0.000343452,0.000388713,0.000931012,0.001141087,0.001204687,0,0,0.00039871,0,0.000634417,0,0,0,0.000548571,0.000740221,0.001010911,0.001072282,0.000674099,0,0,0,0.000316921,0,0.000464606,0.000630517,0.000648745,0.000788191,0.000540386,0.00052687,0,0,0,0.000355707,0.000531526,0.000611084,0.000670498,0,0,0.000390209,0.000518188,0.00065703,0.000483022,0,0,0,0.000582623,0.000624454,0.000568214,0,0,0,0,0.00054371,0.000783042,0.000732824,0,0.000467181,0.000556502,0.000595238,0.000502235,0,0,0.000330382,0.000551858,0.000633553,0.000674454,0.000429,0.000375281,0,0.000440773,0.000449207,0.000515509,0.000261267,0.000182139,0.000258365,0.000455533,0.000528977,0.00055747,0.000402996,0.000309798,0.000266476,0.00042241,0.000464291,0.000490497,0.000311779,0.000216923,0.000309155,0.000409395,0.000473193,0.000462612,0.00037611,0.000237218,0.000277674,0.000380063,0.000385792,0.000341055,0.000184745,0.000196474,0.000222381,0.000275041,0.000363221,0.00038646,0.000405096,0.000247958,0.000232028,0.000240091,0.000313221,0.000325517,0.000309779,0.000271091,0.000247763,0.00028321,0.000315985,0.000360785,0.00035367,0.000246748,0.00025534,0.000297064,0.000345061,0.000317392,0.000311409,0.000196447,0.000203118,0.000259563,0.000256497,0.000300318,0.000291981,0.000361544,0.000297464,0.000291636,0.000283097,0.000347063,0.000386125,0.000438342,0.000295669,0.000229638,0.000251563,0.000276912,0.000306394,0.000316704,0.000302082,0.000281901,0.000290261,0.000328458,0.000344741,0.000324509,0.000169937,0.000228815,0.000273413,0.000364823,0.000354851,0.000384872,0.000542176,0.00042417,0.000402968,0.000314505,0.000350328,0.000355079,0.000343546,0.000297969,0.000328404,0.000338482,0.000352364,0.000305799,0.000206525,0.000262322,0.000283345,0.00034466,0.00038248,0.000439446,0.000435566,0.000284231,0.00024792,0.000362249,0.000398908,0.00041225,0.000290856,0.0002628,0.000241039,0.000347062,0.000364799,0.000443558,0.000418705,0.000474352,0.000411498,0.000385595,0.000419558,0.0004833,0.000573568,0.000489898,0.000399742,0.000421984,0.000438983,0.000493564,0.000567951,0.000460882,0.000309602,0.000379302,0.0004199,0.000537518,0.000511995,0.000419455,0.000313026,0.00032962,0.000384435,0.000396926,0.000392841,0.000320738,0.000390246,0.000455352,0.000476634,0.000457954,0.000476542,0.000417721,0.000418627,0.000329198,0.000359619,0.000354075,0.000361301,0.000273389,0.000253899,0.000284232,0.000399709,0.000432547,0.000469452,0.000343511,0.000429989,0.000444796,0.000455867,0.000417986,0.000402929,0.000370456,0.00035276,0.000302765,0.000364203,0.000382549,0.00048122,0.000525956,0.000460725,0.000313399,0.000368689,0.000372183,0.000420146,0.000342705,0.000366123,0.000294018,0.000387207,0.000432284,0.000857584,0,0,0,0,0 +EVALUATE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000277524,0.000333697,0.000338763,0.000354577,0.000291423,0.000400465,0.000490574,0.000528977,0.000540577,0.00045337,0.000413065,0.00035732,0.000364432,0.000397964,0.000401316,0.000435041,0.000386518,0.000333642,0.000306474,0.000309068,0.000358151,0.000423123,0.000397501,0.000348402,0.000299941,0.000280396,0.000298125,0.000336236,0.000451545,0.000423437,0.000379514,0.000344285,0.000361922,0.000410683,0.000422304,0.000378119,0.000394725,0.000413955,0.000450445,0.000458932,0.000438202,0.000387676,0.000334147,0.000372,0.000383849,0.000445838,0.000478074,0.000390182,0.000325884,0.000343548,0.000403953,0.000425927,0.000484102,0.000400671,0.0003408,0.000346132,0.000379855,0.000432065,0.000439575,0.000395734,0.000370013,0.000333056,0.000351068,0.000344279,0.000426807,0.000367149,0.000378784,0.000366311,0.000392493,0.000392922,0.000486294,0.000479943,0.000452217,0.000322051,0.000351753,0.000361766,0.000425918,0.000399351,0.000352498,0.000327199,0.000377726,0.000388249,0.000508509,0.000484429,0.000441223,0.000353717,0.000399303,0.000416015,0.000466863,0.000369529,0.000375782,0.000364158,0.000420021,0.000424439,0.000478982,0.000479138,0.000449156,0.000410504,0.000402272,0.000415547,0.000455097,0.000469773,0.000426347,0.000348723,0.000343183,0.000354116,0.00041759,0.000521387,0.000498938,0.000362741,0.000381269,0.000378887,0.000419504,0.000412517,0.000358036,0.00029961,0.000295297,0.000330053,0.000367142,0.000402051,0.000381921,0.000331293,0.000343475,0.000350253,0.000378523,0.000485125,0.000475173,0.000397529,0.00035,0.000359914,0.000379259,0.00041151,0.000362919,0.000323003,0.000307645,0.000346189,0.000355865,0.000372009,0.000361096,0.000320202,0.00032391,0.000353277,0.000381754,0.000406216,0.000325681,0.000277517,0.000342304,0.000363528,0.000376655,0.000346304,0.000366965,0.00035693,0.000351055,0.000363135,0.00037579,0.000397056,0.000354382,0.00035445,0.000343706,0.000366447,0.000360471,0.000373239,0.000330597,0.000341779,0.000319482,0.000387839,0.000406218,0.00043587,0.000381318,0.000337028,0.000311051,0.000345871,0.000350467,0.000381884,0.000360742,0.000404075,0.000336021,0.000348486,0.000228856,0,0,0,0,0,0 +INSTITUTION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000193087,0.000190807,0.000265032,0.001303417,0.001222594,0.001204687,0,0,0,0,0,0,0,0,0.00096,0.00116877,0.001220065,0.000682361,0,0,0,0.001319399,0.001325305,0.001300346,0,0,0,0,0.000413236,0.000486342,0.00061262,0,0,0,0.000365424,0.00042012,0.00052682,0,0.000630403,0.00049663,0.000483643,0,0,0,0.00059707,0.000495125,0.000473381,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000151844,0.000147621,0,0.000184706,0.000309798,0.000442108,0.000380998,0.000338743,0.000275413,0.000188518,0.000299748,0.000394861,0.000510028,0.000552059,0.000524791,0.000488942,0.000375061,0.000623456,0.00065946,0.000696017,0.00053424,0.00037688,0.000358479,0.000773763,0.000724914,0.000673077,0.000423265,0.000338045,0.000220838,0.000257809,0.000223813,0.000212487,0.000219944,0.00024094,0.000233955,0.00020987,0.000203748,0.000186718,0.000161447,0.000160759,0.000158073,0.000246733,0.000234991,0.000255769,0.000243654,0.000273236,0.000329751,0.000308851,0.000285321,0.000257876,0.000278377,0.00028523,0.000343337,0.000310744,0.000278876,0.00024723,0.00023894,0.000256783,0.000288383,0.000211192,0.000175188,0.000192718,0.000240793,0.000256747,0.000316704,0.000383954,0.000346504,0.00025847,0.000210819,0.000197198,0.000198762,0.000263402,0.000247367,0.000276401,0.000255728,0.000264399,0.000239298,0.00022457,0.000217414,0.000201484,0.000225413,0.000217667,0.000240007,0.000242503,0.000280888,0.000309865,0.00026832,0.000266561,0.000276156,0.000393775,0.000384991,0.000337249,0.000338596,0.000340594,0.000346741,0.000296458,0.000275871,0.0002847,0.000344841,0.000382851,0.00042827,0.000523541,0.000529408,0.000461992,0.000450397,0.000409287,0.000406996,0.000323826,0.000399837,0.000438848,0.000501924,0.000510662,0.0005196,0.000427871,0.000357926,0.000331293,0.000426891,0.00042186,0.000432333,0.000373563,0.000391214,0.000395052,0.000476162,0.000530759,0.000573102,0.000556655,0.000439516,0.000430255,0.000471456,0.000503129,0.000526594,0.000506924,0.000441812,0.000417406,0.000397142,0.000412049,0.000417214,0.000425109,0.000398841,0.000344936,0.000373142,0.000373517,0.000392029,0.000392659,0.000434854,0.00040354,0.000352937,0.00037045,0.000369816,0.00045751,0.000552227,0.000488095,0.00031439,0.000366447,0.000359134,0.000392749,0.000288393,0.000300601,0.000355703,0.000400194,0.000419012,0.000403956,0.000307684,0.000297589,0.000323963,0.000374093,0.000404153,0.00041426,0.000410845,0.000392912,0.000509631,0.000800227,0.001436709,0.003601852,0,0,0,0,0 +RAPID,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000212224,0.00025669,0.000309306,0.000279929,0.000254995,0.000206692,0.000210246,0.000196829,0.000253395,0.000268664,0.000339303,0.000314926,0.00025952,0.000241621,0.000233445,0.000344408,0.000351021,0.000355069,0.000276742,0.000274964,0.000256177,0.000288351,0.000326977,0.000309108,0.000283506,0.000314202,0.000331515,0.000421219,0.000351585,0.000316816,0.000275041,0.000273707,0.000280132,0.000270995,0.000271204,0.000266402,0.000299096,0.000321091,0.000350151,0.000360262,0.000345363,0.00030023,0.000297472,0.000288695,0.000296536,0.000319374,0.000412532,0.000350016,0.000314799,0.000267877,0.000269302,0.000273236,0.000340274,0.000333893,0.000257581,0.000319931,0.000342829,0.00042025,0.000408363,0.000411669,0.000402822,0.00036508,0.000345728,0.000323356,0.00038451,0.000493864,0.00047348,0.000388378,0.000333499,0.000314905,0.000347353,0.000369838,0.00036608,0.000294407,0.000320305,0.000322042,0.000413749,0.000424841,0.000404033,0.00034961,0.000351919,0.000347893,0.000426749,0.000423475,0.000385803,0.000328344,0.000340266,0.000340024,0.000363298,0.000363755,0.000392863,0.000329728,0.000352704,0.000332915,0.000371328,0.000341455,0.000309502,0.000304077,0.000327478,0.00034831,0.000351556,0.000342067,0.00031767,0.000337825,0.000314999,0.000312704,0.000302245,0.000271466,0.000291365,0.000333201,0.000326395,0.000318087,0.000289612,0.000313513,0.000321687,0.000305826,0.0003075,0.000326057,0.000356771,0.000370698,0.000339929,0.000354566,0.000338568,0.000354144,0.000344196,0.000368492,0.000309041,0.000292264,0.000297907,0.000312837,0.000310899,0.000320595,0.000326445,0.000334227,0.000324626,0.00037916,0.000389002,0.000437482,0.0003526,0.000345933,0.000325788,0.000344235,0.000347049,0.000352683,0.000394121,0.000417059,0.0003955,0.000354841,0.000356477,0.000346986,0.000427514,0.000574032,0.000632463,0.000620725,0.000591466,0.000567223,0.000582664,0.000565087,0.000627769,0.0004997,0.000491552,0.000413108,0.000483,0.000420018,0.000407711,0.000410937,0.000434365,0.00048206,0.000733709,0.000614897,0.000481249,0.000429337,0.000436124,0.00045105,0.000555141,0.000531325,0.000478829,0.000400114,0.000343284,0,0,0,0,0,0 +EVOLUTIONARY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000517112,0.000517063,0.000516917,0,0,0,0,0,0,0,0,0,0.000620551,0.000620619,0.000620053,0,0,0,0.00055841,0.000558285,0.000558264,0,0,0,0.000484546,0.00048221,0.000481795,0,0,0,0.00052741,0.000525925,0.00052534,0,0,0,0.000587544,0.000586248,0.00058517,0,0,0,0.000491752,0.000510918,0.000508748,0,0,0,0,0.000459026,0.000458926,0.000419762,0,0,0,0.000559954,0.00055334,0.000530063,0,0,0,0.000516929,0,0.000362463,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000405285,0,0,0,0.000426849,0.000398645,0,0,0,0,0,0.000345459,0,0,0,0,0,0,0,0,0,0,0.000569638,0.00051222,0.00054371,0.000615247,0,0,0,0,0,0,0,0,0.000330382,0,0.000443487,0.000367884,0.000429,0.000312735,0.000348597,0.000261199,0.000166848,0,0,0,0.000142101,0.000128484,0.000172225,0.000202716,0.000167915,0.000206532,0.000478446,0.00032302,0.000291366,0.000304265,0.000398788,0.000457511,0.0003918,0.000397959,0.000358092,0.000440227,0.000517151,0.00061228,0.000458424,0.000449912,0.000439485,0.000441225,0.000343626,0.00047912,0.000414298,0.000422156,0.000516428,0.000574578,0.000606247,0.000426178,0.000312235,0.000297061,0.00028489,0.000371265,0.000435986,0.000542183,0.000349783,0.000389159,0.000343274,0.000347606,0.00029151,0.000320001,0.000295506,0.000272678,0.000234581,0.000245257,0.000257163,0.000291163,0.000244855,0.000257581,0.000259255,0.00024958,0.000241349,0.000197679,0.000342615,0.000280699,0.000329213,0.000311022,0.00038993,0.000403736,0.000419135,0.000338538,0.000282457,0.000274504,0.00027235,0.000279925,0.000245618,0.000268198,0.000344166,0.000351753,0.000367441,0.00033465,0.000402183,0.000451445,0.00039742,0.000370688,0.000321453,0.000344988,0.000346479,0.00042417,0.000407446,0.000378908,0.00036836,0.00039782,0.000476346,0.000409944,0.000406533,0.000378303,0.000388973,0.00038849,0.000418558,0.000409524,0.000425708,0.000434616,0.00043649,0.000408143,0.000481175,0.000420077,0.000395038,0.000430222,0.000474126,0.00049769,0.000486915,0.000401817,0.000415911,0.000372718,0.000374438,0.000410844,0.000484708,0.000499796,0.000452523,0.000380714,0.000360421,0.000306989,0.000409428,0.000437909,0.000439442,0.000343475,0.000357258,0.00033028,0.000376944,0.000403718,0.000440873,0.000397209,0.000393324,0.000353975,0.0003828,0.000388452,0.000361664,0.0003466,0.000414768,0.000422139,0.000448394,0.000320738,0.000317343,0.000363342,0.000310006,0.000315362,0.000276059,0.000488521,0.000540923,0.000528875,0.000378729,0.000355036,0.000299948,0.000387148,0.000420712,0.000383054,0.00033701,0.000309474,0.000315705,0.000491351,0.000512791,0.000447829,0.000320276,0.0002956,0.000310467,0.000457209,0.000466686,0.000392852,0.000289536,0.00024501,0.000221714,0.000507547,0.000584421,0.00051881,0.000308042,0.000267224,0.000231044,0.000392808,0.000430864,0.000565635,0.000567903,0.000775568,0,0,0,0,0,0 +CONTENT,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000310241,0.000309368,0.000309023,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000218584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000147288,0.000205281,0.000346065,0.000400465,0.000513935,0.000762711,0.000844652,0.000839574,0.00057534,0.000411827,0.000231912,0.000213195,0.000188854,0.000228397,0.000295804,0.000303033,0.000320197,0.000317594,0.000335767,0.000329096,0.000288509,0.000293391,0.000306104,0.000300282,0.000317205,0.000328846,0.000382607,0.000368604,0.000298494,0.000289199,0.000243326,0.000284964,0.00024021,0.000260673,0.000236021,0.000273872,0.000260413,0.000282243,0.0003008,0.000326464,0.00032396,0.000293004,0.000281709,0.00029151,0.000308435,0.000329934,0.000312582,0.000293605,0.000285332,0.000321454,0.00041745,0.000400671,0.000350707,0.00029373,0.000296204,0.000280167,0.000306922,0.000262937,0,0.000251073,0.000272311,0.000296727,0.000246087,0.000230687,0.000281721,0.000326591,0.000326275,0.00032909,0.00032692,0.00032749,0.000348461,0.000268145,0.000308657,0.000289413,0.000369129,0.000317215,0.00031127,0.000283871,0.00027567,0.000268574,0.000287158,0.000250235,0.000289885,0.00028357,0.000360661,0.000370936,0.000429053,0.000450363,0.000406148,0.000311189,0.000335638,0.000326051,0.000410333,0.000335947,0.000435945,0.000345543,0.000354768,0.000347208,0.000411755,0.000526784,0.000453516,0.000380054,0.000354788,0.000400599,0.000480602,0.000654965,0.000483704,0.000371011,0.000364166,0.000384077,0.000438747,0.000513584,0.000445273,0.000346851,0.000350615,0.00039878,0.000440778,0.000509018,0.000423912,0.0003751,0.000385183,0.000431978,0.000450888,0.000468222,0.000326905,0.00030341,0.000312558,0.000368267,0.000441064,0.000524755,0.000465048,0.000280601,0.000261698,0.000354762,0.000377476,0.000492043,0.000477921,0.000394535,0.000331421,0.00038234,0.000399861,0.000495436,0.000457841,0.000475071,0.000386248,0.000421293,0.000424698,0.00046901,0.000455037,0.000369196,0.000376466,0.000490101,0.000521566,0.000523935,0.000315248,0.000328302,0.000355837,0.000435996,0.00044875,0.000474183,0.000330597,0.000315699,0.000276761,0.000388913,0.000413895,0.000499696,0.000525956,0.000423078,0.000385,0.000388505,0.000433711,0.000461351,0.000575183,0.000473281,0.000350021,0.00031837,0.000254285,0,0,0,0,0,0 +LIMITED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000228549,0.000295193,0.000338763,0.000354577,0.000254995,0.00021961,0.000175205,0.000159923,0,0.000285455,0.000354055,0.000314926,0.000295411,0.000286629,0.000330495,0.000362534,0.000394406,0.000333642,0.000308761,0.000304805,0.000290998,0.000313425,0.00029492,0.000332685,0.000258853,0.000282384,0.000255195,0.000339931,0.000303328,0.000301585,0.000296362,0.000309857,0.000316938,0.000332458,0.00029445,0.000292183,0.000254333,0.000291185,0.000293845,0.000328137,0.000323081,0.00031189,0.000303585,0.000290132,0.000294889,0.000334379,0.000370122,0.000338541,0.000279329,0.000302685,0.000318995,0.0003536,0.000375354,0.000370064,0.000356651,0.000357165,0.000340087,0.000334175,0.000348539,0.000387766,0.000309863,0.000293345,0.000305683,0.000355692,0.000396046,0.000302167,0.000293558,0.000354542,0.000366006,0.000384411,0.000357569,0.0003896,0.000379784,0.000381485,0.000368059,0.000374534,0.000365072,0.000351202,0.000373112,0.000333175,0.000312035,0.000282489,0.000267217,0.000247027,0.000300543,0.000344762,0.000372468,0.000369648,0.000373161,0.000375303,0.000343518,0.00029265,0.000345119,0.000350076,0.000432176,0.000391021,0.000417073,0.000392536,0.0003861,0.000376968,0.000353964,0.000342067,0.00031976,0.000367794,0.000378827,0.000375244,0.000379142,0.0003361,0.000358017,0.000336746,0.000379844,0.000386301,0.000414693,0.000424893,0.00037621,0.000323231,0.000311567,0.000328454,0.000347437,0.000409428,0.000417913,0.00040248,0.000357378,0.000352588,0.000356257,0.000382015,0.000376923,0.000343039,0.000340232,0.000347006,0.000358657,0.00040194,0.000465048,0.000443973,0.000417519,0.000377182,0.000377476,0.000355144,0.000416322,0.000394535,0.000383059,0.000364257,0.000368929,0.000377875,0.000391761,0.000399812,0.000410148,0.000424333,0.000420374,0.000430835,0.000407331,0.000419485,0.000443289,0.000435762,0.000434937,0.000424671,0.000423954,0.000429989,0.000405371,0.000405605,0.000403942,0.000413956,0.000440796,0.000414527,0.000440217,0.000414697,0.000422851,0.000431671,0.000544364,0.000536018,0.000443689,0.000377696,0.000387263,0.000394393,0.000527084,0.00051793,0.000473229,0.000447439,0.000228856,0,0,0,0,0,0 +SCALES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000109013,0.000146325,0.000153974,0.000186231,0.000199394,0.000177483,0.000122438,0.000141801,0.000142811,0.00020146,0.000219397,0.000246835,0.00017813,0.000184895,0.000174999,0.000193185,0.000169966,0.000151664,0.00014013,0.000127926,0.000118778,0.000126775,0.000178801,0.000259581,0.000206247,0.000158704,0.000177859,0.00019531,0.000224877,0.00020796,0.000195295,0.000195598,0.000195336,0.000194396,0.000197198,0.000231326,0.000209436,0.000223907,0.000202799,0.000201976,0.000231045,0.000245559,0.000244855,0.000223898,0.000199957,0.000201584,0.000175526,0.000189876,0.000217786,0.000224195,0.000248511,0.000244279,0.000258685,0.000223016,0.000246932,0.000258047,0.000320706,0.000338315,0.000360296,0.000296271,0.000189154,0.000223172,0.000294407,0.000310987,0.000307856,0.000298142,0.000314383,0.000298902,0.000265943,0.000303823,0.000315887,0.000325047,0.000263068,0.000292017,0.000322375,0.000326312,0.000332297,0.000402751,0.000447476,0.00038717,0.000369455,0.000422865,0.000453039,0.000441537,0.000374499,0.000318938,0.000346925,0.000356789,0.000390195,0.000420182,0.000435566,0.000392908,0.000400487,0.000464209,0.000480042,0.00048701,0.000433052,0.000426573,0.000382827,0.00040835,0.000408545,0.000465688,0.000433143,0.000434369,0.000468685,0.000499484,0.000495478,0.00047604,0.000387297,0.000441908,0.000406587,0.000448971,0.000456885,0.000474081,0.000436105,0.000341196,0.000360377,0.000381744,0.000400917,0.000399861,0.000438625,0.000457753,0.000425267,0.000409528,0.000432572,0.000433665,0.000454347,0.000386585,0.000378811,0.000388692,0.000460488,0.000494168,0.000523777,0.000420081,0.000413924,0.000455634,0.000476451,0.000478025,0.000447195,0.000376139,0.00036429,0.000388701,0.000433672,0.000443301,0.000481394,0.00046961,0.000466305,0.000445807,0.000448853,0.000441393,0.000458914,0.000396248,0.000406291,0.00037985,0.000409863,0.000417733,0.000400597,0.000423395,0.000498371,0.000494161,0.000498991,0.000452411,0.000454729,0.000342705,0.000444259,0.000506831,0.000490462,0.000444998,0,0,0,0,0,0 +OPTIMIZATION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00036503,0.00036507,0.000364737,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000391696,0.000390832,0.000390113,0,0,0,0.000424695,0.000422063,0.00042027,0,0,0,0,0.000459026,0.000458926,0.000461739,0,0,0,0.000559954,0.00055334,0.000530063,0,0,0,0,0.000572231,0.000507449,0.000548787,0.000528681,0.000994126,0,0,0,0,0.000383449,0,0.000518538,0,0,0.000416652,0.000432165,0.000479075,0,0,0,0.000429923,0.000445024,0.000405285,0,0,0,0.000391278,0.000431865,0.000381927,0,0,0.000675432,0.000744945,0.000725464,0.000618381,0,0,0,0.000533211,0.000655451,0.000707714,0.0007955,0.000858426,0.000717832,0.000651015,0.000548807,0.000504874,0,0,0.000615695,0.000739703,0.000660847,0.00063244,0.000502235,0.000660757,0.000647818,0.000825955,0.000681708,0.000601875,0.000582483,0.000429,0.000562922,0.000722094,0.00112642,0.001373291,0.001340325,0.00115704,0.000418921,0.000335874,0.000268648,0.000356752,0.000439219,0.00057091,0.000545835,0.000387602,0.000400324,0.000452447,0.000459021,0.000431416,0.000264252,0.000269363,0.000281316,0.000313331,0.000288511,0.000238203,0.000153871,0.000204326,0.000240364,0.000292327,0.000302895,0.000317762,0.000168899,0.000146223,0.000245192,0.000333956,0.000370102,0.000335252,0.000185969,0.000174737,0.000268576,0.000317943,0.000334315,0.000275359,0.000178252,0.00020404,0.00022616,0.000317421,0.000355843,0.000379391,0.000293013,0.000209436,0.000215039,0.000304199,0.000307774,0.000315427,0.000119271,0.000191988,0.00026947,0.000311657,0.000346943,0.00035274,0.000335534,0.000270905,0.000309863,0.000330494,0.000384439,0.000393734,0.000515244,0.000350903,0.000329069,0.000311879,0.000319051,0.00031916,0.000298315,0.000262557,0.00029952,0.000324815,0.000433285,0.000439794,0.000480679,0.000232247,0.000300963,0.000413855,0.000492687,0.000505141,0.000466632,0.000349687,0.000274965,0.000279093,0.000416477,0.000461094,0.000450424,0.000199199,0.000250521,0.00030192,0.000403903,0.000431303,0.000436856,0.000327686,0.000288743,0.000396683,0.00044068,0.000518056,0.000520111,0.000360311,0.000198544,0.000208416,0.000336551,0.000371864,0.000382346,0.000258539,0.000224713,0.000336746,0.000432581,0.000457482,0.000433936,0.000278449,0.000210823,0.000181506,0.000296924,0.000390789,0.000542416,0.000573568,0.000403916,0.00032171,0.000432615,0.000434313,0.000437899,0.000353279,0.000350128,0.000354185,0.000404534,0.000422178,0.000427017,0.000346115,0.00022067,0.000239446,0.000280676,0.00038971,0.000408452,0.000438474,0.000267636,0.000260164,0.000381181,0.000457904,0.000487378,0.000425109,0.00020296,0,0.000303756,0.00034268,0.000367046,0.000358574,0.000306416,0.000273524,0.000307761,0.000353207,0.000360257,0.000351529,0.000239153,0.0002455,0.000354826,0.000421969,0.000441393,0.000400384,0.000227432,0.000310209,0.000376135,0.000443705,0.000452917,0.000486259,0.000399727,0.000369297,0.000311051,0.000392107,0.000428282,0.000453257,0.000505038,0.000413005,0.000386424,0.000395811,0.000508569,0.001372134,0,0,0,0,0 +FUNDS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000236781,0.000335874,0.00035041,0.000307545,0.000236502,0.000352621,0.000427817,0.000375489,0.000524562,0.000577995,0.000671482,0.000634435,0.000560056,0.000636676,0.000665552,0.000703395,0.000738687,0.001062509,0.001317523,0.001456477,0.001314811,0.001187207,0.00098262,0.000731591,0.000837599,0.000977866,0.000869897,0.000914077,0.000826083,0.000919148,0.000770995,0.001054151,0.000988848,0.000835781,0.000668629,0.000614969,0.000616454,0.000769522,0.000658107,0.000586008,0.000484342,0.000475847,0.000454942,0.000662736,0.000605213,0.000575102,0.000501735,0.000482181,0.000477086,0.000514751,0.000560735,0.000577807,0.000610236,0.000605903,0.000593037,0.000552433,0.000546817,0.000517517,0.00047254,0.000462209,0.000472948,0.000422384,0.000409561,0.000336889,0.000369618,0.000377318,0.000461775,0.000542053,0.0004992,0.000442302,0.000407661,0.000414257,0.000415777,0.000382357,0.000366928,0.000391444,0.000394149,0.000388249,0.000362936,0.000381769,0.000349568,0.000358194,0.000345633,0.000352904,0.000340284,0.00034932,0.000332131,0.000324432,0.000297712,0.000315755,0.000333883,0.000371745,0.00033781,0.000316517,0.000310295,0.00030422,0.000302194,0.00040364,0.000457696,0.000390951,0.000341525,0.000321155,0.000317198,0.000357645,0.000382773,0.000335565,0.000290763,0.000278789,0.00029346,0.000344452,0.000361671,0.000325717,0.000294484,0.000262923,0.000264467,0.00028955,0.000357926,0.000277903,0.000268238,0.000255295,0.00026812,0.000250169,0.000230441,0.000237774,0.000212442,0.000202736,0.000175115,0.000186615,0.000218846,0.000231964,0.000186785,0.000199801,0.000201705,0.000225189,0.000218782,0.000208703,0.000213123,0.0002099,0.000233881,0.000269761,0.000377601,0.000316714,0.000268292,0.00028839,0.0002921,0.000334033,0.000355956,0.00032504,0.000261644,0.000248708,0.000243756,0.000254504,0.000245676,0.000216447,0.000237562,0.000245467,0.000258817,0.000253633,0.000279015,0.000535316,0.00041607,0.000318006,0.000203429,0.00019316,0.000207753,0.000211539,0.00040378,0.000300235,0.00028713,0.000193517,0.000200412,0.000250035,0.000288418,0.000258138,0.000279713,0,0,0,0,0,0 +SOIL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000940218,0.000940439,0.000939555,0,0,0,0,0,0,0,0,0,0,0.000888099,0,0.000814393,0,0,0,0,0,0,0,0,0,0.000572055,0.00057211,0.000571946,0,0,0,0,0,0,0,0,0,0.000470847,0.000470625,0.000471161,0,0,0,0,0,0,0,0,0,0.000632864,0.000632723,0.000632699,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000391696,0.000362916,0.000390113,0,0,0,0,0,0,0,0,0,0,0.000349734,0.000305951,0.000293834,0,0,0,0.000231705,0.000248049,0.000247363,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000570391,0.000638681,0.000538117,0.000381931,0.000345732,0,0,0,0,0,0,0,0,0.000582309,0.000497963,0.000391278,0,0,0,0.000521295,0.000495317,0.000461156,0.000518188,0.00065703,0.000724533,0.000511326,0.000551141,0,0,0,0.000568214,0,0,0,0.000439046,0.000466038,0.000615247,0,0.000615695,0.000661839,0.000521721,0.000409226,0,0.00055063,0,0,0.000422009,0.000475165,0.000551826,0.000924001,0.000969477,0.000771893,0.000522398,0.000539049,0.000559696,0.000615844,0.000637488,0.00065883,0.00068914,0.000725805,0.000861545,0.000772408,0.000531083,0.000242251,0.000320259,0.000317423,0.000359348,0.000308154,0.00037863,0.000388739,0.000386523,0.000328251,0.000325818,0.000282082,0.00034621,0.000280293,0.000324594,0.000296305,0.000498465,0.000690947,0.000672147,0.000493502,0.000388042,0.000347728,0.000302624,0.000335252,0.000433927,0.000409629,0.000423211,0.000402938,0.00047156,0.000447459,0.000434489,0.000335209,0.000309697,0.000334657,0.000393734,0.000460842,0.00057446,0.000358623,0.000263811,0.000323873,0.000365481,0.000423918,0.000361322,0.000300503,0.000320986,0.000270287,0.000329116,0.000312234,0.000439575,0.000329335,0.000342672,0.000313841,0.000392448,0.000386125,0.000553695,0.000295669,0.000369315,0.000279515,0.000350354,0.000323416,0.000433169,0.000338783,0.000389572,0.000360752,0.000401837,0.000380209,0.000330593,0.000246408,0.000333946,0.000388456,0.000489167,0.000481484,0.000522468,0.000324022,0.000430565,0.000413416,0.000437945,0.000404423,0.000394532,0.000317564,0.000288479,0.000336349,0.000480701,0.00052969,0.000585075,0.000451602,0.00041896,0.000352453,0.000307263,0.000309731,0.000309418,0.000312422,0.000296771,0.000347361,0.000449288,0.000491029,0.000527595,0.000545086,0.000415147,0.000421819,0.000377706,0.000381111,0.000356963,0.000445519,0.000447091,0.000391606,0.000404305,0.000412366,0.000430407,0.000330124,0.000291939,0.00025463,0.00027478,0.000301996,0.00033028,0.000348208,0.000266168,0.000246443,0.000280814,0.000317393,0.000359594,0.00035728,0.000310032,0.00026813,0.000243719,0.000275633,0.000273742,0.000302567,0.00040995,0.000401682,0.000418736,0.000420445,0.000426267,0.000407265,0.00021948,0.000257134,0.000338449,0.000384375,0.000386263,0.000370163,0.000348617,0.000381462,0.00041976,0.000439419,0.000433742,0.000434374,0.00017393,0.000241142,0.000231496,0.000285793,0.000279549,0.000328281,0.000339976,0.000402174,0.000326912,0.000316395,0.000278915,0.000293099,0.000336612,0.000405151,0.000379131,0.000302637,0.000278082,0.000322284,0.000416857,0.000524627,0.00032762,0.000425927,0,0,0,0,0,0,0 +DIGITAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000517112,0.000517063,0.000516917,0,0,0,0.000392372,0.000392188,0.000392634,0,0,0,0,0,0,0,0,0,0.000483955,0.000483847,0.000483829,0,0,0,0.000692209,0.000688871,0.000688279,0,0,0,0.000651506,0.000618735,0.000618047,0,0,0,0.000475631,0.000474582,0.000473709,0,0,0,0.000692923,0.000688629,0.000685704,0,0,0,0,0.000459026,0.00048078,0.000461739,0,0,0,0.000444101,0.000457937,0.00044172,0,0,0,0.000672008,0.000780315,0.000543695,0,0,0,0,0,0.000548571,0.000584385,0.000488026,0,0,0,0.000493274,0.000590257,0.000403354,0.000376416,0,0,0,0.000465749,0.00073111,0.000891627,0.000714723,0,0,0.00046242,0.000431865,0.000534698,0.00052682,0.000625554,0,0,0,0.000425137,0.000531324,0,0,0,0.000473381,0.000666084,0.000965964,0.000924459,0.000717832,0.000691704,0.000731743,0.000699056,0.00072711,0,0,0.000389317,0.000556502,0.000558036,0.000502235,0,0.000509,0.000396458,0.000422009,0.000316776,0.000521169,0.000363,0.000375281,0.000522895,0.000897871,0.000911249,0.000839544,0.000410563,0.000418921,0.000620075,0.000630738,0.000455166,0.000185823,0.000201498,0.000221285,0.000339151,0.00029265,0.000288997,0.000283282,0.000279151,0,0.000250997,0.000299613,0.000338909,0.000417843,0.000398049,0.000326977,0.00023838,0.000250636,0.000270452,0.00023373,0.000247559,0.000320563,0.000377742,0.000360325,0.000297807,0.000271953,0.000226295,0.000213089,0.000297912,0.000309269,0.000292759,0.000260413,0.000215698,0.000163397,0.000195295,0.00025876,0.000334657,0.000337722,0.000336522,0.000235182,0.000275423,0.000237208,0.00020734,0.000206785,0,0.000206971,0.000172511,0.000239749,0.000290972,0.000334601,0.000339238,0.000296518,0.000231066,0.000322622,0.000297188,0.000317696,0.000262489,0.000365285,0.000324911,0.000281721,0.000317764,0.000339519,0.000360296,0.000365742,0.000338783,0.000340631,0.000341402,0.000349424,0.000360347,0.000322481,0.000203924,0.000204078,0.000236062,0.000342534,0.000363201,0.000418772,0.000356104,0.000396461,0.000365656,0.000492688,0.000504885,0.000593442,0.000404172,0.000421332,0.000338998,0.000497768,0.000505665,0.000605358,0.000426819,0.000460479,0.000434001,0.000557925,0.000648121,0.000697093,0.000640806,0.000453516,0.000431817,0.000477472,0.000544273,0.000587403,0.000702364,0.000457043,0.000375738,0.000433293,0.000462672,0.000547472,0.000468207,0.000414377,0.000300853,0.000324583,0.000402776,0.000464632,0.000547748,0.000409915,0.000424384,0.000408081,0.000421081,0.000469443,0.000564571,0.000487678,0.000291026,0.000325581,0.000354599,0.000390496,0.000368445,0.000362919,0.000351687,0.000370573,0.000394986,0.000419258,0.00043649,0.00032711,0.000253017,0.000280722,0.000363611,0.000410424,0.000420911,0.000349281,0.000279085,0.000252102,0.000278401,0.000290658,0.000329261,0.000282563,0.000260032,0.000249409,0.00035164,0.000372206,0.00041273,0.000382645,0.000313776,0.000320455,0.00033664,0.000355121,0.000330826,0.000288393,0.000278639,0.000312981,0.000321766,0.00033521,0.00033677,0.000315574,0.000258149,0.00023593,0.000294831,0.000316687,0.000331113,0.000300618,0.000247803,0.000226814,0.000184999,0.000165285,0,0,0,0,0,0 +INNOVATION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000721327,0.00072117,0.000839525,0,0,0,0.000598571,0.000610582,0.000795095,0.001768923,0.001385606,0,0,0,0.00039871,0.000603666,0.000740153,0,0,0,0,0,0.00034859,0.000487401,0,0,0,0,0,0,0.000422369,0,0,0,0,0,0,0,0,0.000426849,0.000465085,0.000572891,0,0,0,0.000354736,0.000449097,0.000386488,0,0,0,0,0.00036414,0,0,0,0,0,0,0,0,0,0.000559722,0.000545044,0.00048694,0,0,0,0,0,0,0.000316776,0,0,0,0,0,0.000166848,0.000176746,0.000242605,0,0.000129182,0,0,0,0.000419787,0.000427817,0.000187745,7.45E-05,8.53E-05,9.71E-05,0.000174016,0.000122266,0.000122438,6.86E-05,8.10E-05,6.96E-05,0.00012537,0.000105787,9.95E-05,6.78E-05,7.56E-05,7.63E-05,0.000129322,0.000103407,9.14E-05,4.26E-05,6.02E-05,9.00E-05,0.000150863,0.000154974,9.45E-05,4.68E-05,6.30E-05,7.21E-05,0.000121617,0.000163397,0.000142828,7.95E-05,5.46E-05,5.44E-05,0.00011789,0.000212049,0.000163532,0.000101977,7.26E-05,0.000100988,0.000122554,0.000298179,0.000255984,0.000194177,0.000103426,0.000131646,0.000231222,0.000580031,0.000509938,0.000297104,9.35E-05,0.00013749,0.000146461,0.000522934,0.000685561,0.000568176,0.000307466,0.000226346,0.000229795,0.000680403,0.000717091,0.00053248,0.000158952,0.000214313,0.000242596,0.000671327,0.00075905,0.00056276,0.000183769,0.000151325,0.000164206,0.000510503,0.000750705,0.000539272,0.00014477,0.000187844,0.000200923,0.000488233,0.000663997,0.000542796,0.000180093,0.000230395,0.000219656,0.000536709,0.000704939,0.000552952,0.000302695,0.000221351,0.000232574,0.000299786,0.000547308,0.000461875,0.000350085,0.000257802,0.000285659,0.000425066,0.000726063,0.000615103,0.000465537,0.000334947,0.000367023,0.000368509,0.000657965,0.000527058,0.000292151,0.000234286,0.000296488,0.000352622,0.000547748,0.000503895,0.000409325,0.000323848,0.000308222,0.000343268,0.000474983,0.000468028,0.00040496,0.00030686,0.000304484,0.000371767,0.000534325,0.000581765,0.000412795,0.000334614,0.000349486,0.000380358,0.000538669,0.000745557,0.000518899,0.00030701,0.000346819,0.000391562,0.000502784,0.000705641,0.000471936,0.000361578,0.000323136,0.000354555,0.000526273,0.000977962,0.000750658,0.000474347,0.000364702,0.000366829,0.000432881,0.000763116,0.000618835,0.000497363,0.000398007,0.000424005,0.000410563,0.000750291,0.000598456,0.000567453,0.000534487,0.000554632,0.0006769,0.001201809,0.000914278,0.000683139,0.000458159,0.000477142,0.000450314,0.000631298,0.000747873,0.000470429,0.000563601,0.000152571,0,0,0,0,0,0 +10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000245876,0.000244352,0.000243314,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000362463,0,0,0,0,0,0.00064,0.000857098,0.000871475,0.001510942,0.001400052,0.001451547,0.000762332,0.000833304,0.001267683,0.001437224,0.001436053,0.000630517,0,0.000358269,0.00098541,0.001256383,0.001786808,0.000873464,0.000814848,0.000640273,0.000697628,0.000687469,0,0,0.000450288,0.00049663,0.000552734,0.000463786,0.000579626,0.000869254,0.001056354,0.000952163,0.000546209,0.000457933,0.000681857,0.000792393,0.000777651,0.000406884,0.000548807,0.000699056,0.000894905,0.000671756,0.000615695,0.000467181,0.00048694,0,0,0,0,0.000561649,0.000649245,0.00053852,0.000643797,0.000561001,0.000750563,0.000522895,0.000473423,0.000359366,0.00038295,0.000466548,0.000564632,0.000503811,0.000455533,0.000430563,0.000405433,0.000319038,0.000309798,0.000393658,0.000328541,0.000345849,0.000309511,0.000413289,0.000485119,0.000495872,0.000356791,0.000287753,0.000246229,0.000319693,0.000407118,0.00042175,0.000351301,0.000320168,0.000298125,0.000406439,0.00052393,0.000667142,0.000469062,0.000380435,0.000249461,0.000343633,0.000468796,0.000509888,0.000419141,0.000325813,0.000286807,0.000291422,0.000441916,0.000539249,0.000478808,0.000359074,0.000291594,0.000302227,0.000404821,0.000461907,0.000416777,0.000352629,0.000320598,0.000329491,0.00047007,0.000506404,0.000410149,0.00036406,0.000344201,0.000381432,0.000429171,0.000435572,0.000380949,0.000334337,0.000325706,0.000325258,0.000365285,0.000354153,0.000314864,0.000314822,0.000370822,0.000407107,0.000476078,0.00039807,0.000350419,0.000323433,0.000291186,0.000296506,0.000310311,0.000478655,0.000459691,0.000386962,0.000328458,0.000324237,0.000374901,0.000455556,0.000447617,0.000370134,0.000340266,0.000320705,0.000350147,0.000444589,0.000459289,0.000409181,0.000391577,0.000376389,0.000372888,0.000363484,0.000369893,0.000371804,0.000351735,0.000339492,0.000343129,0.000419603,0.000430526,0.000363707,0.000354788,0.000354116,0.00039623,0.000452443,0.000481799,0.000410003,0.000336372,0.000315121,0.00035119,0.000474395,0.000514336,0.000374202,0.000379087,0.000345237,0.000370254,0.000402051,0.000519892,0.000443549,0.000351653,0.000302774,0.000318219,0.000370183,0.000435873,0.000370284,0.000314186,0.00028702,0.000279996,0.000314215,0.00039757,0.000365405,0.000321629,0.000280908,0.000295354,0.000313479,0.000373841,0.000344503,0.00031546,0.000294505,0.000292729,0.000310697,0.000413001,0.000465664,0.000373142,0.000330519,0.00030315,0.000320399,0.000466046,0.00048204,0.000448936,0.000347982,0.000323813,0.000328393,0.00043265,0.000440157,0.000365946,0.000343653,0.000325026,0.000349488,0.000468932,0.000420018,0.000369634,0.000304577,0.000303224,0.000330052,0.000520696,0.000500164,0.000382652,0.000302637,0.000278685,0.000288437,0.000390803,0.000549184,0.000551634,0.000572205,0.000254285,0,0,0,0,0,0 +CONCEPTS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000503609,0.000502499,0.000501574,0,0,0,0.000357638,0.000377635,0.000376031,0,0,0,0,0.000284159,0.000284097,0.000272846,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000212224,0.000308028,0.000427136,0.000447887,0.00050999,0.000555484,0.000595697,0.000725805,0.000810866,0.000839574,0.000531083,0.000417883,0.000311976,0.000348218,0.000309511,0.000326281,0.000287916,0.000345886,0.000379662,0.000409248,0.000427792,0.000407452,0.000365444,0.000400793,0.00040677,0.000469315,0.000465075,0.000454473,0.000386054,0.00039602,0.000400835,0.000385599,0.000347609,0.000379952,0.000340943,0.000418223,0.000411003,0.000467471,0.000448685,0.000449754,0.000326795,0.000349783,0.000546045,0.000512757,0.000520585,0.00036653,0.000358556,0.000496335,0.000589695,0.000508512,0.000429601,0.000363645,0.000389386,0.000447973,0.000404205,0.000428873,0.000433336,0.000440503,0.000392757,0.000329335,0.000380949,0.000407353,0.000405797,0.000386125,0.00036913,0.000354153,0.000362212,0.000397205,0.000400921,0.000400014,0.000316704,0.00027385,0.000344546,0.000382867,0.000383201,0.000361766,0.000344791,0.000308718,0.00039991,0.000455688,0.000392976,0.000342327,0.000199415,0.000170031,0.000289885,0.000344762,0.000382128,0.000364496,0.000424122,0.00048212,0.000400455,0.000284705,0.000289179,0.000294018,0.00038849,0.000484646,0.000517095,0.000404976,0.000335564,0.000273357,0.000302194,0.000360311,0.000394998,0.000358258,0.000332407,0.000316084,0.000322538,0.000377036,0.000390391,0.000372193,0.000380557,0.000367765,0.000357925,0.0002867,0.000338044,0.000348095,0.00036119,0.000360421,0.000362994,0.000326436,0.000367923,0.000314865,0.00030095,0.000293434,0.000312652,0.000397228,0.000341196,0.000310841,0.000285697,0.000317393,0.000368958,0.00045617,0.000421278,0.000352934,0.00032962,0.000371906,0.000379637,0.000410698,0.000378089,0.000394535,0.000321093,0.000346173,0.000325925,0.000390471,0.000431881,0.000393541,0.000323801,0.00035267,0.000358399,0.000389933,0.000385313,0.000369196,0.000335996,0.000329173,0.000322021,0.000336602,0.000306551,0.00030506,0.000319445,0.000368785,0.000385885,0.000384267,0.000363422,0.000311582,0.000330627,0.000401268,0.000426049,0.000445948,0.000302425,0.000277869,0.000271143,0.00031885,0.000352277,0.000387035,0.000426878,0.000314776,0.000266016,0.000249533,0.000305142,0.000571723,0,0,0,0,0 +RAY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002472188,0.002476269,0.002475248,0,0,0,0,0,0,0,0,0,0.00136612,0.001366415,0.00136671,0,0,0,0.001410327,0.001410658,0.001409333,0,0,0,0.001824528,0.00182366,0.001822937,0,0,0,0,0.001258141,0.001258141,0.001258607,0,0,0,0.001601922,0.001603023,0.001600366,0,0,0,0.00076274,0.000762813,0.000762595,0,0,0,0.001504325,0.001504184,0.001503759,0,0,0,0.00113788,0.001137344,0.001138639,0,0,0,0.00109509,0.00109521,0.001094212,0,0,0,0.001340183,0.001339884,0.001339834,0,0,0,0.001315197,0.001308855,0.001307729,0,0,0,0.000992771,0.000989976,0.000988875,0,0,0,0.001203066,0.00114458,0.001142475,0,0,0,0.000938799,0.000977409,0.000973258,0,0,0,0,0.001202212,0.001201949,0.001238299,0,0,0,0.001139216,0.001183003,0.001201477,0.001210316,0.000978075,0,0.001033859,0.001196483,0.001304868,0.001097574,0.000793021,0,0.00123435,0.001564945,0.001142857,0.000857098,0.000836616,0.000731101,0.000881514,0.001045114,0.001121076,0.000902746,0.001094817,0.001026589,0.001224869,0.00068306,0.000770385,0.001074807,0.001112559,0.001215855,0.000816827,0.001048157,0.000905387,0.001102693,0.00089695,0.001107589,0.000766284,0.000938331,0.000630403,0.001064207,0.001036377,0.001198114,0.001014346,0.000869254,0.000964497,0.00099025,0.001019591,0.000915865,0.000738678,0.00072636,0.000717832,0.000773081,0.00102444,0.001126257,0.001510152,0.00140458,0.001399306,0.001167951,0.001078223,0.000892857,0.000853799,0.000825946,0.000925455,0.000925069,0.001071255,0.001013685,0.001072994,0.000792001,0.000781836,0.000697194,0.000767272,0.000616056,0.000589154,0.000466548,0.000837841,0.00065883,0.00070082,0.000516675,0.000743293,0.000805991,0.000737615,0.00056929,0.000469345,0.000457185,0.000506235,0.000540176,0.000682322,0.000603005,0.000471147,0.000436958,0.000383023,0.000651923,0.000673187,0.000681086,0.000517707,0.000479258,0.00044838,0.0005801,0.000627337,0.000673235,0.000464798,0.000488885,0.000437579,0.000614628,0.000530786,0.000535669,0.000392691,0.000410808,0.000408216,0.000550719,0.000679585,0.000615035,0.000415646,0.000432325,0.000405266,0.000518716,0.000497351,0.000547977,0.000463331,0.000435867,0.000403953,0.000442,0.000459546,0.000537011,0.000445814,0.000504719,0.000473104,0.000513077,0.000522808,0.000547122,0.000481199,0.000409915,0.000365751,0.000357594,0.000561385,0.000714803,0.000632096,0.000414858,0.000423796,0.000434058,0.000592543,0.000496882,0.000413064,0.000391161,0.000430956,0.000482354,0.000421861,0.000365364,0.000300963,0.00033467,0.000347227,0.000372942,0.000382877,0.000407434,0.000341042,0.000395506,0.000451899,0.000495869,0.000493165,0.000383964,0.000404251,0.00042772,0.000347963,0.000322619,0.00023403,0.000407543,0.000360457,0.000400829,0.000373972,0.000371457,0.000344333,0.000278215,0.00033021,0.000356896,0.000350643,0.000339748,0.000324674,0.000282238,0.000295173,0.000335565,0.000328533,0.000328467,0.000292498,0.000228947,0.000236267,0.000247396,0.0003075,0.0002845,0.000297655,0.000324591,0.000345928,0.000343614,0.000299314,0.000304331,0.000295953,0.000211291,0.000241159,0.000308364,0.000323953,0.000280186,0.000249094,0.00019778,0.000227964,0.000244435,0.000299654,0.000290799,0.000277344,0.000253958,0.000259139,0.000270171,0.000264761,0.00026738,0.000276885,0.000262413,0.000236,0.000213233,0.00027446,0.000286653,0.000298345,0.000312219,0.000398157,0.000343438,0.000283291,0.000269608,0.000270641,0.000282119,0.000213064,0.000169962,0.000196115,0.000239038,0.000255473,0.000234123,0.000133646,0.000171576,0.000234968,0.000222389,0.00022262,0.000183922,0.000126229,0.000215124,0.000238277,0.000294831,0.000281701,0.000289908,0.000258532,0.000234408,0.000229614,0.000193603,0.000177999,0,0,0,0,0,0 +CHALLENGES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000129182,0,0,0,0,0,0,4.14E-05,4.03E-05,3.41E-05,0,3.94E-05,4.29E-05,3.89E-05,2.98E-05,2.98E-05,0,4.49E-05,4.72E-05,4.11E-05,4.97E-05,5.01E-05,6.28E-05,4.48E-05,4.26E-05,4.90E-05,6.02E-05,7.16E-05,7.26E-05,9.69E-05,7.73E-05,6.10E-05,3.78E-05,4.05E-05,7.57E-05,0.000107694,0.00010202,6.11E-05,5.31E-05,4.78E-05,5.57E-05,8.87E-05,8.03E-05,7.76E-05,7.87E-05,8.66E-05,8.24E-05,6.31E-05,4.73E-05,6.34E-05,7.17E-05,9.32E-05,0.000101265,0.00010144,7.44E-05,0.000114831,0.000125536,0.000129481,0.000108419,1.00E-04,9.10E-05,9.47E-05,8.24E-05,8.19E-05,8.09E-05,9.40E-05,0.000135513,0.000135078,0.000140984,0.000145593,0.000154637,0.000164283,0.00016144,0.00016285,0.000164347,0.000178306,0.000182296,0.000197421,0.00017324,0.000189704,0.000176112,0.000245807,0.000249866,0.000286036,0.000196312,0.000182197,0.000207901,0.000242721,0.000271137,0.000266794,0.000209279,0.00020948,0.000192122,0.000257737,0.000275562,0.000323865,0.000301019,0.000261242,0.000209779,0.000247025,0.000263685,0.000315062,0.0003361,0.000298982,0.000274123,0.000334234,0.000361833,0.000393525,0.000385704,0.000296243,0.000261071,0.00028879,0.000326856,0.000364031,0.00036701,0.000367923,0.00036278,0.000403174,0.000399288,0.0004212,0,0.000434087,0.000417344,0.000415116,0.000428252,0.000442937,0.000448195,0.000395746,0.000407807,0.000452478,0.000507744,0.000513627,0.000501964,0.000388709,0.000398823,0.000444085,0.000518614,0.000543208,0.000550018,0.000488521,0.000522108,0.000538126,0.000590244,0.000589484,0.000627846,0.000570631,0.00056422,0.000524229,0.000562206,0.000566971,0.000587375,0.000547878,0.000553465,0.000576213,0.000652825,0.000661421,0.000683706,0.000644782,0.000664341,0.000700261,0.000760099,0.000772134,0.000790276,0.000689002,0.000708118,0.000633841,0.000743983,0.000782972,0.000832198,0.000803652,0.000734478,0.000739245,0.000765809,0.000610283,0.000800412,0,0,0,0,0 +PERIOD,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000507449,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000192517,0.000235661,0.000261267,0,0.000206692,0.000210246,0.000246036,0.000185823,0.000251872,0.000354055,0.000429996,0.000496953,0.000540094,0.00056394,0.000609058,0.000567944,0.000529543,0.000576354,0.000564848,0.000564585,0.000432526,0.000519316,0.000521293,0.000536196,0.000477269,0.000484155,0.000495117,0.00047912,0.000572706,0.000494647,0.000525035,0.0005071,0.000581103,0.000596649,0.000495566,0.000516805,0.000524134,0.000563056,0.000559898,0.000590459,0.000571312,0.000562345,0.000512757,0.000497521,0.000497281,0.000562894,0.000585273,0.000571959,0.00053424,0.000533795,0.000518345,0.000512166,0.000481362,0.000580549,0.000533678,0.000556755,0.000491136,0.000564425,0.000560401,0.000579626,0.000509832,0.000463196,0.000412755,0.000422961,0.000519857,0.00048295,0.000475175,0.000458711,0.000489379,0.000471991,0.000502528,0.000426767,0.000414658,0.000392519,0.000395814,0.000391439,0.000416344,0.000426708,0.000409373,0.000407053,0.000407731,0.00042276,0.000384977,0.000362357,0.000370134,0.000349927,0.000346464,0.000335352,0.000395511,0.000394761,0.000438314,0.000376407,0.000368381,0.000318281,0.000440587,0.000466141,0.000465791,0.000431583,0.000425467,0.000424998,0.000442407,0.000466055,0.000393676,0.000377998,0.000350735,0.000363122,0.000361954,0.000346591,0.000322567,0.000312142,0.000322536,0.000326174,0.000363015,0.000370758,0.000387877,0.000340039,0.000315668,0.000287284,0.000368854,0.000421912,0.000391528,0.000297678,0.000308222,0.000295025,0.000329615,0.000310828,0.000340562,0.00030686,0.000301447,0.000277187,0.000355685,0.000395746,0.000365405,0.000315636,0.00027827,0.00028887,0.000282727,0.000378089,0.000358798,0.000337054,0.000297089,0.000275376,0.000298101,0.000325681,0.0003418,0.000233599,0.000241483,0.000234448,0.000275407,0.000350452,0.000344665,0.000329408,0.000311408,0.000313656,0.000315705,0.000345685,0.000328302,0.000283052,0.00027878,0.000266174,0.000301136,0.000332942,0.000310209,0.000252614,0.000240653,0.000234775,0.000235991,0.00023668,0.00028504,0.000282881,0.000251597,0.000235254,0.000219271,0.000254523,0.000310311,0.000372423,0.000339881,0.000279713,0,0,0,0,0,0 +SECURITY,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.42E-05,4.26E-05,4.72E-05,5.08E-05,7.10E-05,5.20E-05,4.12E-05,6.39E-05,7.21E-05,6.27E-05,0,0,2.88E-05,5.97E-05,6.92E-05,6.65E-05,6.20E-05,7.62E-05,9.81E-05,7.57E-05,8.18E-05,7.82E-05,6.97E-05,6.59E-05,5.09E-05,5.51E-05,4.75E-05,4.82E-05,4.46E-05,6.12E-05,5.50E-05,8.19E-05,8.90E-05,9.86E-05,6.17E-05,4.59E-05,3.77E-05,2.27E-05,2.08E-05,3.62E-05,6.31E-05,5.84E-05,3.57E-05,4.69E-05,6.45E-05,8.10E-05,0.000104041,5.31E-05,8.02E-05,7.17E-05,8.54E-05,7.04E-05,0.000111508,0.000129964,0.0001089,7.06E-05,6.74E-05,6.81E-05,8.79E-05,8.47E-05,8.03E-05,5.81E-05,6.64E-05,6.53E-05,7.71E-05,7.65E-05,8.86E-05,0.000134465,0.00013021,0.000134983,0.000101702,0.000102661,0.000104444,0.000108951,0.000114853,0.000113341,0.000116716,0.000109704,0.000102486,0.000133745,0.000178248,0.000199063,0.000182544,0.000101886,0.000130217,0.000163096,0.00023348,0.000259028,0.000316642,0.000319263,0.000254972,0.00026018,0.000346499,0.000392992,0.00042827,0.000417971,0.000308504,0.000349743,0.000623572,0.000688818,0.00076877,0.000437268,0.000338044,0.000284692,0.00034492,0.000475499,0.000582864,0.000684224,0.000393918,0.000334031,0.000525026,0.000540167,0.000594689,0,0.000410864,0.000354185,0.000454999,0.000527722,0.00062648,0.000598125,0.000404865,0.000337968,0.00049443,0.00063501,0.000677152,0.000662671,0.000443936,0.000365945,0.000296683,0.000448216,0.000500958,0.000581508,0.000339841,0.000327689,0.000347701,0.000524227,0.00053952,0.000653069,0.000579805,0.000602243,0.000607993,0.000576313,0.000569361,0.000564984,0.000419605,0.000358808,0.000526679,0.000617174,0.000666771,0.000604817,0.000415005,0.00032119,0.000356631,0.000657499,0.000765737,0.000872579,0.000586441,0.000451761,0.000422561,0.000699548,0.000813736,0.000905043,0.000845739,0.000558114,0.000635639,0.000554996,0.000559426,0,0,0,0,0,0 +INTERFACE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000279783,0.000279166,0.000306518,0,0,0,0,0,0,0,0,0,0,0.000262301,0.00024039,0.000251857,0,0,0,0.000231705,0.000228968,0.000229694,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000518538,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000316776,0.000551826,0.000462,0.000375281,0,0.000261199,0.000320862,0.000412408,0.000373239,0.000437135,0.000426302,0.000467213,0.000455166,0.000439219,0.000470162,0.000324551,0.000284645,0.000287129,0.000270047,0.000278036,0.000261025,0.000295804,0.000244875,0.000260732,0.000270701,0.000298459,0.000294619,0.000375061,0.000371978,0.000369791,0.000298293,0.00029574,0.000240169,0.000258518,0.000265029,0.000330476,0.000346006,0.000341475,0.00030452,0.000247958,0.000312235,0.000341824,0.000385624,0.000374784,0.000392387,0.000423348,0.00040225,0.000376934,0.000389236,0.000397029,0.000424404,0.000389399,0.000375837,0.000334751,0.000357169,0.000347848,0.000393781,0.000350798,0.000325545,0.000328912,0.000368197,0.000372998,0.000388183,0.000379751,0.000390422,0.000461149,0.000406072,0.000407132,0.000323356,0.000319144,0.000318412,0.000340906,0.000376609,0.000390085,0.000390085,0.000355526,0.000302082,0.000364123,0.000410511,0.000425132,0.00040007,0.000361016,0.000308718,0.000338068,0.0003018,0.000330804,0.000324237,0.000342994,0.000330439,0.000353831,0.000368641,0.000393936,0.000401847,0.000430697,0.000473459,0.000406148,0.000380048,0.000378303,0.000407278,0.000427495,0.000418558,0.000341585,0.000290256,0.000324446,0.000342799,0.000351556,0.000280495,0.000252882,0.000262904,0.000313341,0.000322,0.000370598,0.000387808,0.000398008,0.000326112,0.000381269,0.000387784,0.000428163,0.000360953,0.0003126,0.000325717,0.0003075,0.000328454,0.000306989,0.000331969,0.000283941,0.00032171,0.000343475,0.000372046,0.000390584,0.000437796,0.000407291,0.000356662,0.000358953,0.000356877,0.000369895,0.000339735,0.000341035,0.000347945,0.00033861,0.000352124,0.000353704,0.000385897,0.000401454,0.00035308,0.000372731,0.000386861,0.00040816,0.000368428,0.000283201,0.000288492,0.000344617,0.000379163,0.000380979,0.000374254,0.0003688,0.000348344,0.000400936,0.000373585,0.000388934,0.00037989,0.000400038,0.000402388,0.00038212,0.000401513,0.000401935,0.000400384,0.000262602,0.000319817,0.000406783,0.000406102,0.0004011,0.000360285,0.000286646,0.000338821,0.000333353,0.000423932,0.00042044,0.000441485,0.0003407,0.000325939,0.000294018,0.000314068,0.000266999,0,0,0,0,0,0 +SEISMIC,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000447653,0.000446665,0.000501574,0,0,0,0.000312933,0.000310994,0.000309673,0,0,0,0,0.000612035,0.000568194,0.000566679,0,0,0,0.000791659,0.000858631,0.000777426,0,0,0,0.00087878,0.000676273,0.000579941,0,0.000634417,0,0.000881679,0.000956355,0.001005714,0.000896057,0.000906334,0.000779841,0.000725953,0.000754805,0.000807175,0.000798583,0.000633841,0.000581734,0.000633553,0.000893232,0.001216397,0.001218114,0.00085826,0.000688984,0.001174188,0.001630466,0.001629697,0.00096041,0.00083051,0.000649276,0.000766284,0.000781942,0.000900576,0.000815892,0.001209106,0.001198114,0.001449065,0.001124917,0.001423782,0.001561548,0.001492972,0.001165647,0.000909143,0.001056524,0.001136568,0.001179965,0.001243963,0.00120393,0.001566083,0.001282443,0,0.000661839,0.000973879,0.000892857,0.001305811,0.000936072,0.001110546,0.001024184,0.001201104,0.001013685,0.000950366,0.001452001,0.001501126,0.001244989,0.000750947,0.000872746,0,0.00125035,0.001238548,0.001136804,0.00103955,0.000750409,0.000675721,0.000957115,0.001327708,0.000781259,0.000494193,0.000388488,0.000401316,0.00042054,0.000702042,0.000560152,0.000498592,0.00034104,0.000373074,0.000441929,0.000487259,0.000408652,0.000308159,0.000318179,0.000341055,0.00036949,0.000544612,0.000572706,0.000464798,0.000407978,0.000357833,0.000438621,0.000581152,0.000504159,0.000472043,0.000357292,0.000369506,0.000341905,0.000668444,0.000635439,0.00058272,0.000308803,0.000265235,0.00018648,0.000235182,0.000398789,0.00054314,0.000517592,0.000468072,0.000377709,0.00041745,0.000614919,0.000461665,0.000406809,0.000460763,0.000524891,0.000613845,0.000393078,0.000329913,0.000279254,0.000258963,0.000292923,0.000407581,0.000334658,0.000326701,0.000400147,0.000426204,0.000443987,0.000365742,0.00039807,0.000368038,0.000288878,0.000253914,0.000269551,0.000324509,0.000354034,0.000313332,0.000282377,0.000306169,0.00031867,0.000454667,0.000494054,0.000377277,0.000261183,0.000234,0.000236987,0.000369874,0.000487894,0.000360599,0.000255573,0.000276854,0.000298594,0.000343244,0.000374499,0.000330262,0.000342778,0.000318381,0.000393502,0.000461117,0.000478894,0.000363649,0.00021659,0.000325775,0.000353271,0.00044429,0.000435207,0.000375156,0.000293028,0.000290763,0.000325502,0.000460877,0.000690967,0.000601573,0.000371715,0.000247301,0.000242145,0.000254096,0.000394674,0.000377921,0.000266951,0.000268238,0.000291877,0.000326569,0.00040737,0.000359059,0.000333132,0.000336162,0.000345487,0.000351166,0.000429055,0.000501522,0.000452703,0.000339608,0.000313878,0.0003076,0.000350184,0.0003526,0,0.000291988,0.000258984,0.000212756,0.000320144,0.000415361,0.000459392,0.000304527,0.000270583,0.000251744,0.000281542,0.000388983,0.000401087,0.000373642,0.000337532,0.000330385,0.00030227,0.000410909,0.000461947,0.000391219,0.000326705,0.000272861,0.000313012,0.000438451,0.000450215,0.000399353,0.000287925,0.000252687,0.000214995,0.000331352,0.000405151,0.000389695,0.000320651,0.000295575,0.000264155,0.000298614,0.000274592,0.000422826,0.000421625,0.000762854,0,0,0,0,0,0 +SENSOR,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000242605,0.000254995,0.000245446,0.000198566,0.000196829,0.000185823,0.000369413,0.000309798,0.000205913,0.000168412,0.000180031,0.000162625,0.000199394,0.000212979,0.000217327,0.000132653,0.000100181,9.20E-05,0.000184921,0.000179517,0.000159793,8.42E-05,9.15E-05,8.11E-05,0.000158881,0.000137876,0.000158408,9.81E-05,0.00010845,0.000108372,0.000156451,0.000131728,0.000111717,0.000160739,0.000185729,0.00019707,0.000160626,0.000129975,0.000119509,8.35E-05,7.90E-05,7.25E-05,0.000160759,0.000235182,0.000246733,0.000139664,0.000119561,0.000109003,0.0001326,0.000259591,0.000250419,0.000198139,0.000142038,0.000141246,0.000172151,0.000244498,0.000249657,0.000173159,0.000149875,0.000173532,0.000203524,0.000292228,0.000246932,0.000272251,0.000151526,0.000137252,0.000113479,0.000269709,0.000282319,0.000264283,0.000152041,0.000192183,0.000177336,0.000342762,0.000368196,0.00031127,0.000194228,0.000165402,0.000178121,0.000265222,0.000314398,0.000245124,0.000177605,0.000196431,0.000203499,0.000267953,0.000334886,0.000326437,0.000190686,0.000244617,0.000231096,0.000329202,0.000275367,0.000237788,0.000215619,0.000285027,0.00031414,0.000270891,0.000177875,0.000198544,0.000273802,0.000360591,0.000427643,0.000474194,0.00046537,0.000249469,0.000340291,0.000653503,0.000737754,0.000861137,0.000674466,0.000488892,0.00032696,0.00060117,0.000724837,0.00090541,0.000741396,0.000519892,0.000449025,0.000642789,0.000720742,0.000869304,0.000807978,0.000662741,0.000413628,0.000457441,0.00047533,0.000553437,0.00048807,0.000410336,0.000414043,0.000532386,0.000697654,0.000742706,0.000749969,0.000497038,0.000443137,0.000389631,0.000446279,0.000470026,0.000524826,0.000434241,0.000377862,0.000381623,0.000405223,0.000412687,0.000432198,0.000447697,0.000457509,0.000401877,0.000395007,0.000394908,0.000417208,0.000430476,0.000350092,0.000341684,0.000403851,0.00042133,0.000424135,0.000255568,0.000270403,0.000305551,0.00034379,0.0003576,0.000351887,0.000339242,0.000338821,0.000383826,0.000312845,0.000352277,0.000365696,0.000545121,0.00039068,0.000218413,0.000202208,0.000152571,0,0,0,0,0,0 +COMPOUNDS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004592423,0.004599463,0.004608295,0,0,0,0.006242197,0.006251954,0.006263702,0,0,0,0.003708282,0.003714404,0.003712871,0,0,0,0.00456942,0.004573439,0.004575854,0,0,0,0.002300834,0.00230133,0.002301827,0,0,0,0.002899005,0.002899687,0.002896962,0,0,0,0.002459146,0.002457977,0.002457002,0,0,0,0,0.002294257,0.002294257,0.002295106,0,0,0,0.002574518,0.002576287,0.002572016,0,0,0,0.00228822,0.002288439,0.002287784,0,0,0,0.001974426,0.001974241,0.001973684,0,0,0,0.002236522,0.002235469,0.002238015,0,0,0,0.00193466,0.001934871,0.001933107,0,0,0,0.002308093,0.002307578,0.002307492,0,0,0,0.00152286,0.001515517,0.001514213,0,0,0,0.001799398,0.001794332,0.001792336,0,0,0,0.001762632,0.001786661,0.001727645,0,0,0,0.00198936,0.001954817,0.001946515,0,0,0,0,0.001814247,0.001813851,0.001825967,0,0.003343417,0.003706934,0.002046727,0.001869908,0.001784547,0.001210316,0.001467112,0.00186179,0.001654174,0.001300525,0.00108739,0.000768302,0.000898758,0.000994126,0.000881679,0,0.00064,0.000935016,0.001220065,0.001413462,0.001296344,0.0012193,0.000896861,0.000902746,0.000777896,0.000787051,0.00067579,0,0.000567652,0.000680711,0.000667536,0.000851098,0.000663672,0.000873464,0.000633771,0.000533561,0.000531526,0.000649276,0.00105364,0.000938331,0.000900576,0.000744945,0.000932739,0.000850274,0.000821137,0.000562458,0.000780784,0.000761731,0.000728279,0.000666084,0.000625036,0.000858426,0.000717832,0.000813769,0.000804917,0.000815566,0.00072711,0.000916031,0.000783611,0.000817566,0.000799972,0.001004464,0.001104917,0.000825946,0.000647818,0.000462535,0.000584321,0.00053852,0.000490512,0.000528001,0.000469102,0.000547795,0.000424448,0.000474876,0.000456594,0.000559858,0.000764986,0.000620075,0.000560656,0.000393657,0.000574363,0.000587702,0.000929395,0.000799428,0.00077856,0.000713018,0.00073968,0.000652562,0.000662602,0.000621371,0.000638107,0.000590426,0.000574534,0.000626849,0.000804619,0.000754434,0.000601937,0.000487212,0.000536625,0.000631829,0.000744532,0.000621447,0.000579931,0.000549135,0.00051119,0.000569928,0.000619896,0.000667438,0.000496459,0.000458027,0.000418773,0.000525478,0.000761284,0.000705395,0.000529745,0.000448124,0.000413503,0.000462986,0.000570605,0.000648391,0.00067172,0.000582669,0.00050975,0.000482181,0.000477086,0.000495274,0.000370521,0.0004468,0.00043745,0.00050295,0.000491596,0.000573681,0.00049578,0.000424006,0.00037376,0.000405146,0.000484483,0.000643323,0.000518461,0.00044281,0.000390085,0.000426965,0.000514899,0.000590047,0.000548142,0.00048515,0.000443768,0.000405745,0.000409692,0.00050981,0.000457629,0.000366045,0.00036013,0.00037155,0.000424755,0.000429891,0.000398592,0.000389536,0.000337046,0.000327145,0.000318913,0.000493667,0.000428923,0.000384021,0.000325208,0.000316899,0.000296438,0.000313918,0.000300066,0.000291638,0.000321413,0.000332878,0.000351556,0.000369433,0.000401267,0.000370518,0.000310854,0.000280588,0.000254185,0.000286547,0.000361826,0.000346199,0.000278647,0.000254321,0.000215525,0.000241323,0.0003126,0.000290908,0.000231845,0.000203785,0.000221945,0.000263731,0.000257946,0.000231358,0.00026006,0.000256074,0.000260698,0.000224814,0.000282246,0.000250159,0.000251511,0.000211848,0.000228492,0.00020097,0.000253497,0.000198291,0.000261698,0.000224858,0.000240605,0.000237094,0.000320738,0.000305907,0.0002488,0.000209254,0.00019314,0.000156398,0.00015576,0.000183443,0.000253644,0.000221504,0.000224359,0.000203147,0.000280728,0.000301735,0.000245644,0.000241916,0.000227028,0.000259729,0.000341337,0.000280364,0.000239583,0.000230856,0.000240091,0.000245998,0.000222743,0.000183929,0.000199676,0.000217555,0.000232216,0.000235151,0.00023405,0.000268905,0.000212454,0.000253999,0.000224999,0.00026857,0.000200412,0.000261197,0.000182011,0.000210813,0.000177999,0,0,0,0,0,0 +VARIATION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000814091,0.000814091,0.000814393,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000392372,0.000392188,0.000392634,0,0,0,0,0,0,0,0,0,0.0004095,0.000409409,0.000409394,0,0,0,0,0,0,0,0,0,0.000310241,0.000309368,0.000309023,0,0,0,0.000447653,0.000446665,0.000445844,0,0,0,0.000402343,0.000355421,0.000353912,0,0,0,0,0.00041531,0.000415219,0.000377786,0,0,0,0.000347557,0.000324372,0.000335707,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00034859,0,0,0,0,0.000416652,0.000374543,0,0,0,0,0,0,0,0,0,0,0.000355707,0,0.000381927,0,0.000521295,0.000540346,0.00049663,0.000449097,0.000463786,0,0,0,0.000418952,0.000436967,0.000457933,0,0,0,0.00052895,0.000548807,0.00054371,0.000615247,0.000732824,0.000727639,0.000583976,0.000556502,0.000669643,0.000853799,0.00071582,0.000462727,0.000429496,0.000324623,0.000380132,0.000367884,0.000396,0.000344008,0.000373497,0.000293849,0.000282359,0.00025039,0.000298591,0.000291423,0.000232528,0.000280328,0.000282941,0.000337861,0.000251872,0.000324551,0.000339151,0.000372715,0.000326899,0.000346233,0.000351658,0.000429902,0.000373435,0.000347642,0.000302673,0.000343228,0.00041372,0.000506493,0.000461043,0.000419096,0.000373861,0.000383985,0.000421219,0.000548059,0.000508734,0.000447741,0.000449292,0.000492787,0.000511259,0.000492042,0.000383849,0.000384552,0.000362014,0.000473319,0.000525478,0.000668444,0.000451803,0.000342297,0.000363383,0.000387144,0.000454412,0.000505062,0.000393051,0.000325884,0.000304199,0.00031098,0.000361636,0.000396402,0.000420148,0.000384391,0.000330963,0.000290719,0.00028523,0.000327731,0.000355895,0.000266117,0.000309998,0.000321701,0.000397538,0.000338369,0.000448377,0.00047348,0.000511953,0.000434632,0.000405688,0.000314661,0.000361369,0.000438513,0.000476857,0.000406496,0.000358928,0.000316396,0.000399351,0.000482366,0.000398914,0.000418784,0.000368767,0.000462644,0.000526135,0.000581902,0.000489532,0.00040467,0.000370936,0.000322201,0.000366642,0.000349212,0.000406533,0.000378303,0.000376389,0.000402532,0.000498414,0.000471802,0.000421562,0.000365886,0.000347208,0.000339517,0.000399079,0.000422167,0.000442715,0.000409498,0.000387922,0.000360986,0.000364109,0.000384678,0.000374556,0.000331384,0.000329209,0.000326174,0.000336202,0.000339862,0.000384147,0.000357123,0.000346036,0.000323583,0.00036701,0.000415913,0.000398373,0.000345929,0.000339356,0.000291314,0.000277214,0.000439446,0.000434681,0.00044686,0.000389527,0.000406416,0.0004147,0.000437692,0.000421525,0.000378564,0.000331023,0.000316244,0.00027479,0.000235774,0.00030019,0.000367098,0.000325506,0.000316117,0.000249817,0.000389401,0.000424899,0.000390874,0.000311843,0.000291619,0.000254274,0.000333938,0.000343438,0.000377407,0.00032447,0.000315449,0.000291822,0.000341337,0.000367524,0.000350782,0.00027352,0.000256142,0.000275688,0.000354044,0.000345897,0.000292549,0.000275032,0.000262282,0.000246069,0.000307684,0.000414114,0.000415518,0.000342268,0.00028713,0.000267834,0.00026254,0.000357193,0.000428426,0.000391509,0.000368713,0,0,0,0,0,0 +ESTABLISHED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000163249,0.000231021,0.000265119,0.000354577,0.000437135,0.000348792,0.000280328,0.000233734,0.000270289,0.000251872,0.000236037,0.000423939,0.000477627,0.000509299,0.000459021,0.000442292,0.000354965,0.00045608,0.000400246,0.000394328,0.000355664,0.000329096,0.000378267,0.000392935,0.000417042,0.000405679,0.00039591,0.000365796,0.000324009,0.000307677,0.000321947,0.000330514,0.000333296,0.000360396,0.000325445,0.00034661,0.000337755,0.000382476,0.000381822,0.000371735,0.000323081,0.000381846,0.000399346,0.000406471,0.000387144,0.000409399,0.00039711,0.000398789,0.00035027,0.0003269,0.000335024,0.0003315,0.000354306,0.00033111,0.000342781,0.000328205,0.000341458,0.000354428,0.000371948,0.000324023,0.000306217,0.000342023,0.000337719,0.000332867,0.000284538,0.000318412,0.000343273,0.000311879,0.000346742,0.000341856,0.00040865,0.000386777,0.000379784,0.00035937,0.000355247,0.000350416,0.000324509,0.000300221,0.000309209,0.000312259,0.000370688,0.000399382,0.00044669,0.000372144,0.000341042,0.000334314,0.000328459,0.000333584,0.00033042,0.000383964,0.000411842,0.000364158,0.000359341,0.000337492,0.000399411,0.000385514,0.000349134,0.00032481,0.000333542,0.000337287,0.000351556,0.000392237,0.000397087,0.000365069,0.000378827,0.000376935,0.000398366,0.000381345,0.000396104,0.000361559,0.000369867,0.000368506,0.000380055,0.000356828,0.00039075,0.000365499,0.000400238,0.000364416,0.000364031,0.000295083,0.000353926,0.000379207,0.000357378,0.000350253,0.000352546,0.000392157,0.000385855,0.000377715,0.000380116,0.00039788,0.000388623,0.000390775,0.000357448,0.000352934,0.000362582,0.000321791,0.000317685,0.000289671,0.000367468,0.000385958,0.000387753,0.000391382,0.000389299,0.000399918,0.000403561,0.000420195,0.000383165,0.000364831,0.000361762,0.000375617,0.000444028,0.000402313,0.000382113,0.000340145,0.000330982,0.000329885,0.000371775,0.000374788,0.000375044,0.000364693,0.00036649,0.000363908,0.000393903,0.000392565,0.000394709,0.000361517,0.000353762,0.00033677,0.00035239,0.000369297,0.000362698,0.000363285,0.000348658,0.000350244,0.000348717,0.00039068,0.000369623,0.000314068,0.000177999,0,0,0,0,0,0 +TRADITIONAL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000155019,0.000128484,0.000123018,0,0,0,0.000205913,0.000251238,0.000234514,0.000217707,0.00016314,0.000169594,0.000174474,0.000164673,0.000215282,0.000233793,0.000238203,0.000192339,0.000201706,0.000254745,0.000296305,0.00029574,0.000254948,0.000203368,0.000207149,0.000245192,0.000270264,0.00030058,0.000307314,0.000228586,0.000257809,0.000258403,0.000313221,0.000299124,0.000291422,0.000167111,0.000157402,0.000228198,0.000251352,0.000260293,0.000240067,0.000235182,0.000350016,0.000368005,0.000351115,0.00031098,0.000299354,0.000343782,0.000317198,0.000299191,0.000275803,0.000287977,0.000280167,0.000293917,0.000289496,0.000373658,0.000374047,0.000391114,0.000372811,0.00037682,0.000357402,0.000326701,0.000331004,0.000322663,0.00032909,0.000375958,0.000372661,0.000389572,0.000352459,0.000379707,0.000370278,0.000352903,0.000303053,0.000319516,0.000333175,0.000361303,0.000349285,0.00036493,0.000263068,0.000274965,0.00030148,0.00035744,0.000383815,0.000384668,0.000337772,0.000324539,0.000353564,0.00036977,0.000394693,0.000400972,0.000380006,0.000351021,0.000352453,0.000422487,0.000442001,0.000446669,0.00035347,0.000349019,0.000373243,0.000397893,0.000396373,0.00043361,0.000437361,0.000396104,0.000341472,0.000414764,0.000449326,0.000477234,0.000447581,0.000350766,0.000345608,0.000341666,0.000368412,0.000398256,0.000420494,0.000353926,0.000357304,0.000406446,0.000409406,0.000398933,0.000373563,0.000371564,0.000359138,0.000353255,0.000347006,0.000354911,0.000374825,0.000408512,0.000399077,0.000384557,0.000380479,0.000386841,0.00036308,0.000339855,0.000343074,0.000389631,0.000420445,0.000430794,0.000440854,0.000457841,0.000396677,0.000361578,0.000367437,0.000381459,0.000401522,0.000434854,0.000380235,0.000367054,0.000373062,0.000385349,0.000376159,0.000326118,0.000318134,0.000364935,0.000386902,0.000394579,0.000395294,0.000389214,0.000381585,0.000446718,0.000441556,0.000461233,0.000430831,0.000431284,0.000369297,0.000377957,0.000401715,0.000419234,0.000434862,0.000424874,0.000435329,0.000361222,0.000391509,0.00033057,0,0,0,0,0,0 +UNITED,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000719011,0.000719166,0.000719321,0,0,0,0,0,0,0,0,0,0.000951928,0.000951475,0.000951098,0,0,0,0,0.000814091,0.000814091,0.000814393,0,0,0,0.000972596,0.000973264,0.000971651,0,0,0,0,0,0,0,0,0,0.000611132,0.000611075,0.000610902,0,0,0,0.00043161,0.000431406,0.000431898,0,0,0,0.000620551,0.000620619,0.000620053,0,0,0,0.0004095,0.000409409,0.000409394,0,0,0,0.000553767,0.000516653,0.000516209,0,0,0,0.000651506,0.000618735,0.000618047,0,0,0,0.000755414,0.000753748,0.000780227,0,0,0,0.000558809,0.000510918,0.000552987,0,0.002391824,0.002985711,0,0.000743186,0.000699316,0.000755572,0,0,0,0.00046341,0.000457937,0.000477057,0,0,0,0.000775394,0.000780315,0.000833666,0.000878059,0.000634417,0,0,0,0.000594286,0.000662303,0.000592603,0.000584881,0,0,0,0.000416652,0.000345732,0.000376416,0,0,0,0,0.000381449,0.000486342,0.000663672,0,0,0,0,0,0,0,0,0,0,0.000386488,0,0,0,0,0,0,0,0,0,0.000610327,0.000914679,0.000854402,0.000894905,0,0.000559722,0.000661839,0.000939098,0.000855655,0.000904023,0.000660757,0.000786636,0.000528611,0.000422009,0.000411809,0.000643797,0.000594001,0.000625469,0.000522895,0.000652997,0.000577552,0.000574425,0.000541196,0.000528204,0.00043922,0.000432172,0.000430563,0.000591256,0.000638076,0.000693359,0.000399714,0.000378237,0.000369538,0.000385578,0.000449542,0.000532448,0.00058464,0.000466573,0.000404985,0.000360638,0.000404318,0.000397501,0.000374598,0.000427314,0.000439485,0.000474615,0.000432304,0.000413629,0.000383835,0.000400835,0.000420028,0.000437579,0.00043024,0.000449424,0.000432546,0.000472043,0.000500524,0.000499712,0.000470406,0.000412207,0.000463462,0.000529745,0.000495522,0.000487637,0.000462986,0.000443375,0.000464776,0.000430078,0.000391978,0.000360672,0.000355609,0.000392894,0.00045632,0.000408167,0.000375092,0.000367513,0.000381432,0.000405762,0.000377142,0.000366367,0.000363799,0.000375095,0.000386125,0.000365285,0.00032816,0.000374049,0.000410445,0.000398513,0.000385829,0.000380045,0.000409363,0.000375868,0.000287496,0.000265562,0.00025962,0.000344791,0.000422009,0.000401972,0.000324211,0.000307343,0.00029223,0.000303111,0.000285525,0.000274965,0.000259691,0.000273716,0.000291081,0.000325489,0.000360868,0.000366293,0.00032708,0.000310986,0.000275713,0.000305799,0.000313918,0.000413299,0.000366275,0.000331521,0.000277766,0.000275707,0.000301019,0.000380368,0.000332377,0.000310025,0.000285659,0.000305449,0.000370572,0.000432286,0.000335565,0.00027936,0.000271375,0.00030212,0.000431081,0.000396202,0.000345608,0.000287163,0.000261325,0.000255133,0.000296927,0.000333931,0.000328555,0.000309128,0.000321454,0.000334919,0.000397228,0.000391214,0.000375238,0.000326395,0.000306003,0.000304344,0.000336545,0.000421278,0.000357922,0.00033861,0.000353443,0.000363069,0.000390857,0.000384461,0.000405971,0.000398081,0.000342298,0.000319889,0.000306499,0.000427161,0.00040922,0.000309924,0.000273623,0.000262313,0.000284269,0.000321094,0.000343438,0.000313408,0.00029939,0.000289759,0.000312719,0.000423954,0.000461947,0.000457938,0.000381058,0.000359134,0.000336763,0.000431418,0.000411782,0.000375206,0.000327138,0.000314739,0.000293939,0.000381318,0.000439212,0.000426082,0.000353077,0.000327545,0.000311982,0.000366754,0.000497838,0.000560034,0.000585112,0.000317856,0,0,0,0,0,0 +IMPLICATIONS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000328249,0.000324372,0.000353376,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000487401,0,0.000580619,0.00044843,0.000381931,0,0,0,0,0.000405466,0.000358269,0,0,0,0,0,0,0,0,0,0,0,0.000354736,0,0,0,0,0,0,0,0,0,0,0,0.00052895,0.000475633,0.000504874,0,0,0,0,0,0,0,0.001046198,0.000832909,0.00072684,0.000551858,0.000506842,0.000521169,0.000396,0.000500375,0.000323697,0.000228549,0.000141179,0.000162017,0,0,0.000129182,0.000175205,0.000258338,0.000304075,0.000319038,0.000265542,0.00021197,0.00025952,0.000272416,0.000296397,0.000300903,0.000299748,0.000290789,0.000283603,0.000296279,0.000295972,0.000278948,0.000285303,0.000303869,0.00038828,0.000377838,0.000398295,0.000310372,0.000396395,0.000399067,0.000392307,0.000389042,0.000380325,0.000379952,0.000263456,0.000254944,0.000292992,0.000347849,0.000369506,0.000376325,0.000308227,0.000279826,0.000332109,0.000305931,0.000311363,0.000244354,0.000331568,0.000329934,0.000354703,0.000328414,0.00032701,0.000305382,0.000312211,0.000294938,0.000303153,0.00029373,0.000282491,0.000280167,0.000231492,0.00024169,0.000255181,0.000270288,0.000274981,0.000264391,0.000253777,0.000321661,0.00029119,0.000282457,0.000246813,0.000241143,0.000224758,0.00026538,0.000283859,0.000319287,0.000305163,0.000306437,0.000283945,0.000334209,0.000315393,0.000321223,0.000320246,0.000335369,0.000350971,0.000368936,0.000326121,0.000344762,0.000308064,0.000318129,0.000292611,0.000303129,0.000296071,0.000372103,0.000361237,0.000387829,0.000327642,0.000352469,0.000309502,0.000351071,0.000325456,0.000342799,0.000325069,0.000344348,0.00032812,0.000367794,0.000370538,0.000365103,0.00033215,0.000340409,0.000365634,0.00040764,0.000360603,0.000355901,0.000338682,0.000375391,0.000388933,0.000443821,0.000383155,0.000405973,0.000358845,0.000424182,0.00038392,0.000357304,0.000368009,0.000362706,0.00037574,0.000373563,0.00045195,0.000449542,0.000492441,0.000450272,0.000455111,0.00037642,0.000395746,0.000381618,0.000380561,0.000365312,0.000362348,0.000345224,0.000414198,0.000433131,0.000424369,0.00039009,0.000380245,0.00036318,0.000377601,0.000395109,0.000435589,0.00044214,0.000440552,0.000420609,0.00036513,0.00043911,0.000441406,0.000416429,0.000405065,0.000399295,0.000417431,0.000393672,0.000353815,0.000355927,0.000353783,0.00037748,0.000379835,0.000378839,0.000377992,0.000351848,0.000349284,0.000340129,0.000370799,0.000394395,0.000370914,0.000364486,0.000347451,0.000340679,0.000350721,0.000352728,0.000394824,0.000301161,0.000343284,0,0,0,0,0,0 +ENGINEERS,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000403313,0.000402178,0.000401731,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00052021,0.00039871,0.000658545,0,0,0,0,0.001142857,0.001129811,0.001150347,0,0,0,0.001390135,0.001180515,0.001210061,0.000513294,0.0008025,0.000788146,0.000567652,0.000609057,0.000921835,0.001134798,0.001123137,0.001281081,0.000497963,0.000426849,0.000631187,0.000725662,0.000957854,0.000521295,0.000495317,0,0.000552734,0.000463786,0.000483022,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000337227,0.000627001,0.000625469,0.000522895,0.000538723,0.000705897,0.000751171,0.000690492,0.000382493,0.000490893,0.000619058,0.000885729,0.001013582,0.00090674,0.000516331,0.000345208,0.000411367,0.000469029,0.000482628,0.000424165,0.000323413,0.00029385,0.000283603,0.000490245,0.000567072,0.00064252,0.00031736,0.000385076,0.000334866,0.00041761,0.00036252,0.000439694,0.000265412,0.00031377,0.000279305,0.000366664,0.000372146,0.000463765,0.000395183,0.000289319,0.000233987,0.000324239,0.000487395,0.000573666,0.000516187,0.00020404,0.000213936,0.000254224,0.000293241,0.000308657,0.000269881,0.000232388,0.000281546,0.000339008,0.000363878,0.000341545,0.000238543,0.000222595,0.000261544,0.000317173,0.000360656,0.000362867,0.000319928,0.000247001,0.000275231,0.000320246,0.00033505,0.000365202,0.000357595,0.000285921,0.000295925,0.00024715,0.0002733,0.000258165,0.000279925,0.000177861,0.000276028,0.000317904,0.000378542,0.000351835,0.000344791,0.000274731,0.000329823,0.000313753,0.000362477,0.000349285,0.000372907,0.000208529,0.000262176,0.00028954,0.000337046,0.000332297,0.000322201,0.000236729,0.000275194,0.000300596,0.000318571,0.000328339,0.000332323,0.00033044,0.000275533,0.000240498,0.00027492,0.000279971,0.000308214,0.000294178,0.000334389,0.000326928,0.000297591,0.000300026,0.000313994,0.000452443,0.000418956,0.000365104,0.000341361,0.000349228,0.000361774,0.000371266,0.000288973,0.000254855,0.000305873,0.000330053,0.000365068,0.000263731,0.000247948,0.000271058,0.000333662,0.000375938,0.000380378,0.000393847,0.000301896,0.00032694,0.00034593,0.000362192,0.000390496,0.0004466,0.00038298,0.000329239,0.000295659,0.000350805,0.000353704,0.000364072,0.000286753,0.000274459,0.00030701,0.000329381,0.000346295,0.000384173,0.000457841,0.000423331,0.000360036,0.000373083,0.000368007,0.000396068,0.000403662,0.000379009,0.000332231,0.000342235,0.000343528,0.000367949,0.000404387,0.000402388,0.000352804,0.000368785,0.000365153,0.000391901,0.000393903,0.000676695,0.000556308,0.000460357,0.000343526,0.000350207,0.00035502,0.000356748,0.000545807,0.000469568,0.000484381,0.0003966,0.000406836,0.000417469,0.000403225,0.000464648,0.000394141,0.000628895,0,0,0,0,0 +FOCUSES,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000248998,0.000342824,0.000397869,0.000368221,0.000317253,0.000182139,0.000232528,0.000186885,0.000221432,0.000185823,0.000184706,0,0.000163519,0.000212586,0.000210826,0.00022033,0.000213895,0.000232699,0.00022651,0.000233286,0.00024086,0.000243742,0.000209994,0.000192339,0.000201706,0.000238309,0.000280396,0.00029574,0.000280813,0.000210261,0.000188871,0.000215342,0.000249607,0.000265819,0.000298933,0.000275079,0.000240621,0.000225848,0.000240818,0.000255135,0.000238645,0.000245096,0.000250678,0.000254685,0.000300186,0.000308068,0.000310801,0.000231326,0.000269685,0.000308149,0.000304199,0.000288538,0.000269218,0.000221003,0.00022816,0.000285321,0.000325447,0.000362028,0.000340926,0.000322529,0.000281529,0.000297104,0.000318965,0.000307017,0.00031765,0.000246087,0.000315163,0.000336171,0.000344244,0.000325071,0.000309231,0.000281969,0.000268203,0.000319097,0.000414658,0.000414649,0.000421351,0.000350875,0.000354034,0.000381358,0.000479593,0.000457495,0.000455045,0.000341,0.000417058,0.000398592,0.000413416,0.000355294,0.000351616,0.00036823,0.000392624,0.000383374,0.000389318,0.000375459,0.000377533,0.000338564,0.000357977,0.000369893,0.000384243,0.000366896,0.000359332,0.000367208,0.000376274,0.000365738,0.000382778,0.00040038,0.000411586,0.00039623,0.000355491,0.000359921,0.000376919,0.000398373,0.000395199,0.000390639,0.000338264,0.000314417,0.000348095,0.000362004,0.0003796,0.000381662,0.000392829,0.000397917,0.000394266,0.000366373,0.000349474,0.000337702,0.000351589,0.000375137,0.000383907,0.000380116,0.000374341,0.000368958,0.000381205,0.000413984,0.000410301,0.00039055,0.000389051,0.000401249,0.000395817,0.000375965,0.000355939,0.00038212,0.000399778,0.000411178,0.000394669,0.000365801,0.000366887,0.000390103,0.00036874,0.000367527,0.000359256,0.000403662,0.000409673,0.000398113,0.000374107,0.000369218,0.000350783,0.000343511,0.000383504,0.000434687,0.000400345,0.000392573,0.000357122,0.000386869,0.000362368,0.00041607,0.000402879,0.000415174,0.000382121,0.00035239,0.000372882,0.000416692,0.000412523,0.000408376,0.000384827,0.000352725,0.000388447,0.000467629,0.000473253,0.000444998,0,0,0,0,0,0 +LEADING,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000141179,0,0,0.000182139,0.000206692,0.000256967,0.000184527,0.000202716,0.000218289,0.000206532,0.00030887,0.00029265,0.000300842,0.000270167,0.000297278,0.000331301,0.000330582,0.000281316,0.000272832,0.00023628,0.000235068,0.000230807,0.000275054,0.000281452,0.00028835,0.000312435,0.000328846,0.000348138,0.000310724,0.000277173,0.000282314,0.000276043,0.00032687,0.000433927,0.000380984,0.000364205,0.00038405,0.000417013,0.00044287,0.000423348,0.000373102,0.000358597,0.000320294,0.000324542,0.000364387,0.000458797,0.000427479,0.000354703,0.000339008,0.000323804,0.000339536,0.000259591,0.000233725,0.0002556,0.000273045,0.000279749,0.000264977,0.000270508,0.000273561,0.000253358,0.000265164,0.000284325,0.00031765,0.000342214,0.000318412,0.000298293,0.000272159,0.000257649,0.000258165,0.00025745,0.000245618,0.000250579,0.000281967,0.000316811,0.000334811,0.000326537,0.000280395,0.000294779,0.000313753,0.000323765,0.000308929,0.000315076,0.000282316,0.000287754,0.000264168,0.000293037,0.000292369,0.000299187,0.000256938,0.000277092,0.000288678,0.000279698,0.00028029,0.000282396,0.000280874,0.000260435,0.000262612,0.000286038,0.000295402,0.000323865,0.000346628,0.000359469,0.000291511,0.000289301,0.000283969,0.000306518,0.000381345,0.000359921,0.00035447,0.000339936,0.000369989,0.000374282,0.000412517,0.000381663,0.000370472,0.000383968,0.000366015,0.000381662,0.000352256,0.000377921,0.000384683,0.000395814,0.000386056,0.000377595,0.000351589,0.000396573,0.000402483,0.000398023,0.000365229,0.00036053,0.0003509,0.000415807,0.000385359,0.000376566,0.000386413,0.000393324,0.00043153,0.000499162,0.000480303,0.00042343,0.000393965,0.000377228,0.000389421,0.000398841,0.000407652,0.00038779,0.000377426,0.000375694,0.00040084,0.000511916,0.000474681,0.000451759,0.000396575,0.000396103,0.000376905,0.000397864,0.000429989,0.000411437,0.000413787,0.000399929,0.000429225,0.000478311,0.000495511,0.000442074,0.000414697,0.000404939,0.000418233,0.000515437,0.000501957,0.000424908,0.000414325,0.000418631,0.000443692,0.000519067,0.000524627,0.000546033,0.000546392,0.000546712,0,0,0,0,0,0 +PROFESSOR,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000221432,0.000270289,0.000352621,0.000309798,0.000690415,0.001085015,0.001063606,0.001009847,0.000576429,0.000840084,0.000771357,0.000802779,0.000598952,0.000611841,0.000529688,0.00053855,0.000730858,0.000780669,0.000845164,0.00075366,0.000705727,0.000751426,0.000828596,0.000854972,0.000759149,0.000674771,0.000569928,0.000554032,0.000796343,0.000862699,0.000798005,0.000643995,0.000571371,0.000657303,0.000988137,0.000963729,0.000765545,0.000583187,0.000400826,0.000474219,0.000748806,0.000831336,0.00064926,0.000485705,0.000389763,0.000312211,0.000623266,0.000638009,0.000576428,0.000399053,0.000320673,0.000260104,0.000584305,0.000550462,0.000512394,0.000372426,0.000351888,0.00036913,0.000627077,0.000617892,0.000589923,0.000477975,0.000473776,0.000429083,0.000479943,0.00059121,0.000551495,0.00045891,0.000367441,0.000466481,0.000750553,0.000676137,0.000518439,0.000416437,0.000388249,0.000362936,0.000410642,0.000413513,0.000479084,0.000370321,0.000350328,0.000226856,0.00037819,0.000402353,0.000463474,0.000368822,0.00035122,0.00022935,0.00038276,0.000384991,0.000393918,0.000321413,0.000282175,0.000272095,0.000280495,0.000390818,0.000355534,0.000304222,0.000261995,0.000248845,0.000305938,0.000352304,0.000353288,0.000260118,0.000239492,0.000218411,0.000313513,0.000361671,0.000344365,0.000259504,0.000222965,0.000164903,0.000156763,0.000221954,0.00022862,0.000231437,0.000208595,0.000205033,0.000228195,0.000264382,0.000253874,0.000241744,0.000217923,0.000205081,0.000196185,0.000258968,0.000236952,0.000259701,0.000207054,0.000216833,0.000236102,0.00044606,0.000343074,0.000321093,0.000227337,0.000232372,0.000172143,0.000318601,0.000286924,0.000295276,0.000256684,0.000264235,0.000256319,0.000333938,0.000306641,0.000270114,0.000218926,0.000207312,0.000214948,0.000280462,0.000229521,0.000196115,0.000270013,0.000290918,0.000311315,0.000208675,0.000215499,0.000268402,0.000304577,0.000317298,0.00029142,9.20E-05,0.000154172,0.000248841,0.000267209,0.000257572,0.000233251,0.000192396,0.000174132,0.00015681,0.000141976,0.000177999,0,0,0,0,0,0 +EXPERTISE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000200353,0.000142101,0.000128484,0.000159923,0.00016893,0.000251872,0.000280294,0.000242251,0.000295411,0.000352956,0.000367217,0.000362534,0.000354965,0.000336703,0.00028589,0.000330383,0.000335767,0.000410586,0.000339799,0.000390315,0.000332812,0.000334088,0.00032913,0.000395355,0.00037916,0.000432576,0.000330476,0.000332235,0.000251505,0.000324077,0.000282827,0.00034088,0.000292992,0.000308499,0.000265692,0.000273065,0.000263664,0.000376017,0.000395271,0.000356201,0.000309715,0.000263645,0.000269881,0.000404527,0.000401258,0.000348088,0.000296553,0.000283282,0.000263099,0.000322763,0.000328912,0.000354407,0.000327745,0.00031561,0.000288715,0.000379798,0.000395531,0.000389419,0.000351068,0.000340475,0.000265312,0.000298918,0.00041903,0.000372196,0.000358782,0.000303557,0.000284012,0.000352899,0.000356292,0.000364899,0.000322634,0.000310693,0.000363044,0.000538132,0.000480304,0.000395926,0.000319073,0.000325628,0.000344988,0.000404226,0.000443354,0.000423863,0.000384275,0.000350328,0.000361654,0.000306016,0.000373884,0.000332377,0.000361237,0.000340924,0.000394731,0.00051769,0.000513321,0.000425708,0.000356789,0.000339492,0.000359984,0.000449249,0.000503674,0.000425006,0.000385459,0.000364257,0.000383414,0.000420126,0.000437999,0.000361559,0.000409776,0.000399648,0.000456066,0.000393954,0.000348949,0.000318258,0.000366885,0.000389989,0.00042211,0.000346723,0.00028994,0.000299807,0.000362284,0.000366598,0.000361823,0.000285666,0.00029475,0.000361615,0.000394767,0.000385731,0.000393306,0.00039556,0.000386628,0.000314273,0.000313638,0.000336958,0.000338576,0.000372009,0.000318614,0.000330209,0.000354893,0.000406882,0.000417214,0.000426159,0.000372881,0.000324554,0.000292192,0.000317055,0.000324769,0.000357893,0.000387148,0.000365516,0.000310584,0.000313498,0.000314254,0.000333617,0.000336989,0.000287628,0.000326521,0.000395085,0.000426011,0.000430073,0.000339976,0.000360995,0.000355703,0.000380318,0.000376791,0.000392199,0.000436543,0.000390809,0.000349786,0.000348874,0.000360119,0.000361282,0.000386795,0.000404075,0.000434027,0.000395811,0.00033057,0,0,0,0,0,0 diff --git a/2-WordSwarm/pgu/__init__.py b/2-WordSwarm/pgu/__init__.py new file mode 100644 index 0000000..66ba0e6 --- /dev/null +++ b/2-WordSwarm/pgu/__init__.py @@ -0,0 +1,7 @@ +"""Phil's pyGame Utilities + + +""" +__version__ = '0.14' + +# vim: set filetype=python sts=4 sw=4 noet si : diff --git a/2-WordSwarm/pgu/gui/__init__.py b/2-WordSwarm/pgu/gui/__init__.py new file mode 100644 index 0000000..d917d2d --- /dev/null +++ b/2-WordSwarm/pgu/gui/__init__.py @@ -0,0 +1,41 @@ +"""Modules for creating a widget-based user interface. See the examples folder +for sample scripts that use this module.""" + +import pygame + +# The basestring class was removed in Python 3, but we want to keep it to maintain +# compatibility with previous versions of python. +try: + __builtins__["basestring"] +except KeyError: + __builtins__["basestring"] = str + +from .theme import Theme +from .style import Style +from .widget import Widget +from .surface import subsurface, ProxySurface +from .const import * + +from .container import Container +from .app import App, Desktop +from .table import Table +from .document import Document +#html +from .area import SlideBox, ScrollArea, List + +from .form import Form +from .group import Group + +from .basic import Spacer, Color, Label, Image, parse_color +from .button import Icon, Button, Switch, Checkbox, Radio, Tool, Link +from .input import Input, Password +from .keysym import Keysym +from .slider import VSlider, HSlider, VScrollBar, HScrollBar +from .select import Select +from .misc import ProgressBar + +from .menus import Menus +from .dialog import Dialog, FileDialog +from .textarea import TextArea + +from .deprecated import Toolbox, action_open, action_setvalue, action_quit, action_exec diff --git a/2-WordSwarm/pgu/gui/app.py b/2-WordSwarm/pgu/gui/app.py new file mode 100644 index 0000000..44f0072 --- /dev/null +++ b/2-WordSwarm/pgu/gui/app.py @@ -0,0 +1,303 @@ +"""Defines the top-level application widget""" + +import pygame +from pygame.locals import * + +from . import pguglobals +from . import container +from .const import * + +class App(container.Container): + """The top-level widget for an application. + + Example: + import pygame + from pgu import gui + + widget = gui.Button("Testing") + + app = gui.App() + app.init(widget=widget) + app.run() + + """ + + # The top-level widget in the application + widget = None + # The pygame display for rendering the GUI. Note this may be a subsurface + # of the full surface. + screen = None + # The region of the (full) pygame display that contains the GUI. If set, + # this is used when transforming the mouse position from screen + # coordinates into the subsurface coordinates. + appArea = None + + def __init__(self, theme=None, **params): + """Create a new application given the (optional) theme instance.""" + self.set_global_app() + + if theme == None: + from .theme import Theme + theme = Theme() + self.theme = theme + + params['decorate'] = 'app' + container.Container.__init__(self,**params) + self._quit = False + self.widget = None + self._chsize = False + self._repaint = False + + self.screen = None + self.container = None + + def set_global_app(self): + """Registers this app as _the_ global PGU application. You + generally shouldn't need to call this function.""" + # Keep a global reference to this application instance so that PGU + # components can easily find it. + pguglobals.app = self + # For backwards compatibility we keep a reference in the class + # itself too. + App.app = self + + def resize(self): + if self.screen: + # The user has explicitly specified a screen surface + size = self.screen.get_size() + + elif pygame.display.get_surface(): + # Use the existing pygame display + self.screen = pygame.display.get_surface() + size = self.screen.get_size() + + else: + # Otherwise we must allocate a new pygame display + if self.style.width != 0 and self.style.height != 0: + # Create a new screen based on the desired app size + size = (self.style.width, self.style.height) + + else: + # Use the size of the top-most widget + size = self.widget.rect.size = self.widget.resize() + # Create the display + self.screen = pygame.display.set_mode(size, SWSURFACE) + + #use screen to set up size of this widget + self.style.width,self.style.height = size + self.rect.size = size + self.rect.topleft = (0, 0) + + self.widget.rect.topleft = (0, 0) + self.widget.rect.size = self.widget.resize(*size) + + for w in self.windows: + w.rect.size = w.resize() + + self._chsize = False + + def init(self, widget=None, screen=None, area=None): + """Initialize the application. + + Keyword arguments: + widget -- the top-level widget in the application + screen -- the pygame surface to render to + area -- the rectangle (within 'screen') to use for rendering + """ + + self.set_global_app() + + if (widget): + # Set the top-level widget + self.widget = widget + if (screen): + if (area): + # Take a subsurface of the given screen + self.appArea = area + self.screen = screen.subsurface(area) + else: + # Use the entire screen for the app + self.screen = screen + + self.resize() + + w = self.widget + + self.widgets = [] + self.widgets.append(w) + w.container = self + self.focus(w) + + pygame.key.set_repeat(500,30) + + self._repaint = True + self._quit = False + + self.send(INIT) + + def event(self,ev): + """Pass an event to the main widget. If you are managing your own + mainloop, this function should be called periodically when you are + processing pygame events. + """ + self.set_global_app() + + if (self.appArea and hasattr(ev, "pos")): + # Translate into subsurface coordinates + pos = (ev.pos[0]-self.appArea.x, + ev.pos[1]-self.appArea.y) + args = {"pos" : pos} + # Copy over other misc mouse parameters + for name in ("buttons", "rel", "button"): + if (hasattr(ev, name)): + args[name] = getattr(ev, name) + + ev = pygame.event.Event(ev.type, args) + + #NOTE: might want to deal with ACTIVEEVENT in the future. + self.send(ev.type, ev) + container.Container.event(self, ev) + if ev.type == MOUSEBUTTONUP: + if ev.button not in (4,5): # Ignores the mouse wheel + # Also issue a "CLICK" event + sub = pygame.event.Event(CLICK,{ + 'button' : ev.button, + 'pos' : ev.pos}) + self.send(sub.type,sub) + container.Container.event(self,sub) + + def loop(self): + """Performs one iteration of the PGU application loop, which + processes events and update the pygame display.""" + self.set_global_app() + + for e in pygame.event.get(): + if not (e.type == QUIT and self.mywindow): + self.event(e) + rects = self.update(self.screen) + pygame.display.update(rects) + + + def paint(self,screen=None): + """Renders the application onto the given pygame surface""" + if (screen): + self.screen = screen + + if self._chsize: + self._chsize = False + self.resize() + + if self.background: + self.background.paint(self.screen) + + container.Container.paint(self, self.screen) + + def update(self,screen=None): + """Update the screen in a semi-efficient manner, and returns + a list of pygame rects to be updated.""" + if (screen): + self.screen = screen + + if self._chsize: + self.resize() + self._chsize = False + return None + + if self._repaint: + self.paint(self.screen) + self._repaint = False + rects = [pygame.Rect(0, 0, + self.screen.get_width(), + self.screen.get_height())] + else: + rects = container.Container.update(self,self.screen) + + if (self.appArea): + # Translate the rects from subsurface coordinates into + # full display coordinates. + for r in rects: + r.move_ip(self.appArea.topleft) + + return rects + + def run(self, widget=None, screen=None, delay=10): + """Run an application. + + Automatically calls App.init and then forever loops while + calling App.event and App.update + + Keyword arguments: + widget -- the top-level widget to use + screen -- the pygame surface to render to + delay -- the delay between updates (in milliseconds) + """ + self.init(widget,screen) + while not self._quit: + self.loop() + pygame.time.wait(delay) + + def reupdate(self,w=None): + pass + + def repaint(self,w=None): + self._repaint = True + + def repaintall(self): + self._repaint = True + + def chsize(self): + if (not self._chsize): + self._chsize = True + self._repaint = True + + def quit(self,value=None): + self._quit = True + + def open(self, w, pos=None): + """Opens the given PGU window and positions it on the screen""" + w.container = self + + if (w.rect.w == 0 or w.rect.h == 0): + w.rect.size = w.resize() + + if (not pos): + # Auto-center the window + w.rect.center = self.rect.center + else: + # Show the window in a particular location + w.rect.topleft = pos + + self.windows.append(w) + self.mywindow = w + self.focus(w) + self.repaint(w) + w.send(OPEN) + + def close(self, w): + """Closes the previously opened PGU window""" + if self.myfocus is w: self.blur(w) + + if w not in self.windows: return #no need to remove it twice! happens. + + self.windows.remove(w) + + self.mywindow = None + if self.windows: + self.mywindow = self.windows[-1] + self.focus(self.mywindow) + + if not self.mywindow: + self.myfocus = self.widget #HACK: should be done fancier, i think.. + if not self.myhover: + self.enter(self.widget) + + self.repaintall() + w.send(CLOSE) + + +class Desktop(App): + """Create an App using the desktop theme class.""" + def __init__(self,**params): + params.setdefault('cls','desktop') + App.__init__(self,**params) + diff --git a/2-WordSwarm/pgu/gui/area.py b/2-WordSwarm/pgu/gui/area.py new file mode 100644 index 0000000..555e9cf --- /dev/null +++ b/2-WordSwarm/pgu/gui/area.py @@ -0,0 +1,434 @@ +""" +""" +import os + +from . import pguglobals +from .const import * +from . import surface +from . import container, table +from . import group +from . import basic, button, slider + +class SlideBox(container.Container): + """A scrollable area with no scrollbars. + + Example: + c = SlideBox(w,100,100) + c.offset = (10,10) + c.repaint() + + """ + + _widget = None + + def __init__(self, widget, width, height, **params): + """SlideBox constructor. + + Arguments: + widget -- widget to be able to scroll around + width, height -- size of scrollable area + + """ + params.setdefault('width', width) + params.setdefault('height', height) + container.Container.__init__(self, **params) + self.offset = [0, 0] + self.widget = widget + + @property + def widget(self): + return self._widget + + @widget.setter + def widget(self, val): + # Remove the old widget first + if self._widget: + self.remove(self._widget) + # Now add in the new widget + self._widget = val + self.add(val, 0, 0) + + def paint(self, s): + #if not hasattr(self,'surface'): + self.surface = pygame.Surface((self.max_rect.w,self.max_rect.h),0,s) + #self.surface.fill((0,0,0,0)) + pguglobals.app.theme.render(self.surface,self.style.background,pygame.Rect(0,0,self.max_rect.w,self.max_rect.h)) + self.bkgr = pygame.Surface((s.get_width(),s.get_height()),0,s) + self.bkgr.blit(s,(0,0)) + container.Container.paint(self,self.surface) + s.blit(self.surface,(-self.offset[0],-self.offset[1])) + self._offset = self.offset[:] + return + + def paint_for_when_pygame_supports_other_tricks(self,s): + #this would be ideal if pygame had support for it! + #and if pgu also had a paint(self,s,rect) method to paint small parts + sr = (self.offset[0],self.offset[1],self.max_rect.w,self.max_rect.h) + cr = (-self.offset[0],-self.offset[1],s.get_width(),s.get_height()) + s2 = s.subsurface(sr) + s2.set_clip(cr) + container.Container.paint(self,s2) + + def proxy_paint(self, s): + container.Container.paint(self, surface.ProxySurface(parent=None, + rect=self.max_rect, + real_surface=s, + offset=self.offset)) + def update(self, s): + rects = container.Container.update(self,self.surface) + + rets = [] + s_rect = pygame.Rect(0,0,s.get_width(),s.get_height()) + + if self.offset == self._offset: + for r in rects: + r2 = r.move((-self.offset[0],-self.offset[1])) + if r2.colliderect(s_rect): + s.blit(self.surface.subsurface(r),r2) + rets.append(r2) + else: + s.blit(self.bkgr,(0,0)) + sub = pygame.Rect(self.offset[0],self.offset[1],min(s.get_width(),self.max_rect.w-self.offset[0]),min(s.get_height(),self.max_rect.h-self.offset[1])) +# print sub +# print self.surface.get_width(),self.surface.get_height() +# print s.get_width(),s.get_height() +# print self.offset +# print self.style.width,self.style.height + s.blit(self.surface.subsurface(sub),(0,0)) + rets.append(s_rect) + self._offset = self.offset[:] + return rets + + def proxy_update(self, s): + rects = container.Container.update(self, surface.ProxySurface(parent=None, + rect=self.max_rect, + real_surface=s, + offset=self.offset)) + result = [] + for r in rects: result.append(pygame.Rect(r).move(self.offset)) + return result + + def resize(self, width=None, height=None): + container.Container.resize(self) + self.max_rect = pygame.Rect(self.widget.rect) + #self.max_rect.w = max(self.max_rect.w,self.style.width) + #self.max_rect.h = max(self.max_rect.h,self.style.height) + return self.style.width,self.style.height + #self.rect = pygame.Rect(self.rect[0], self.rect[1], self.style.width, self.style.height) + + def event(self, e): + if e.type in [MOUSEBUTTONDOWN, MOUSEBUTTONUP, MOUSEMOTION]: + pos = (e.pos[0] + self.offset[0], e.pos[1] + self.offset[1]) + if self.max_rect.collidepoint(pos): + e_params = {'pos': pos } + if e.type == MOUSEMOTION: + e_params['buttons'] = e.buttons + e_params['rel'] = e.rel + else: + e_params['button'] = e.button + e = pygame.event.Event(e.type, e_params) + container.Container.event(self, e) + +#class SlideBox(Area): +# def __init__(self,*args,**params): +# print 'gui.SlideBox','Scheduled to be renamed to Area.' +# Area.__init__(self,*args,**params) + +class ScrollArea(table.Table): + """A scrollable area with scrollbars.""" + + _widget = None + + def __init__(self, widget, width=0, height=0, hscrollbar=True, vscrollbar=True,step=24, **params): + """ScrollArea constructor. + + Arguments: + widget -- widget to be able to scroll around + width, height -- size of scrollable area. Set either to 0 to default to size of widget. + hscrollbar -- set to False if you do not wish to have a horizontal scrollbar + vscrollbar -- set to False if you do not wish to have a vertical scrollbar + step -- set to how far clicks on the icons will step + + """ + w= widget + params.setdefault('cls', 'scrollarea') + table.Table.__init__(self, width=width,height=height,**params) + + self.sbox = SlideBox(w, width=width, height=height, cls=self.cls+".content") + self.widget = w + self.vscrollbar = vscrollbar + self.hscrollbar = hscrollbar + + self.step = step + + @property + def widget(self): + return self._widget + + @widget.setter + def widget(self, val): + self._widget = val + self.sbox.widget = val + + def resize(self,width=None,height=None): + widget = self.widget + box = self.sbox + + #self.clear() + table.Table.clear(self) + #print 'resize',self,self._rows + + self.tr() + self.td(box) + + widget.rect.w, widget.rect.h = widget.resize() + my_width,my_height = self.style.width,self.style.height + if not my_width: + my_width = widget.rect.w + self.hscrollbar = False + if not my_height: + my_height = widget.rect.h + self.vscrollbar = False + + box.style.width,box.style.height = my_width,my_height #self.style.width,self.style.height + + box.rect.w,box.rect.h = box.resize() + + #print widget.rect + #print box.rect + #r = table.Table.resize(self,width,height) + #print r + #return r + + #print box.offset + +# #this old code automatically adds in a scrollbar if needed +# #but it doesn't always work +# self.vscrollbar = None +# if widget.rect.h > box.rect.h: +# self.vscrollbar = slider.VScrollBar(box.offset[1],0, 65535, 0,step=self.step) +# self.td(self.vscrollbar) +# self.vscrollbar.connect(CHANGE, self._vscrollbar_changed, None) +# +# vs = self.vscrollbar +# vs.rect.w,vs.rect.h = vs.resize() +# box.style.width = self.style.width - vs.rect.w +# +# +# self.hscrollbar = None +# if widget.rect.w > box.rect.w: +# self.hscrollbar = slider.HScrollBar(box.offset[0], 0,65535, 0,step=self.step) +# self.hscrollbar.connect(CHANGE, self._hscrollbar_changed, None) +# self.tr() +# self.td(self.hscrollbar) +# +# hs = self.hscrollbar +# hs.rect.w,hs.rect.h = hs.resize() +# box.style.height = self.style.height - hs.rect.h + + xt,xr,xb,xl = pguglobals.app.theme.getspacing(box) + + + if self.vscrollbar: + self.vscrollbar = slider.VScrollBar(box.offset[1],0, 65535, 0,step=self.step) + self.td(self.vscrollbar) + self.vscrollbar.connect(CHANGE, self._vscrollbar_changed, None) + + vs = self.vscrollbar + vs.rect.w,vs.rect.h = vs.resize() + if self.style.width: + box.style.width = self.style.width - (vs.rect.w + xl+xr) + + if self.hscrollbar: + self.hscrollbar = slider.HScrollBar(box.offset[0], 0,65535, 0,step=self.step) + self.hscrollbar.connect(CHANGE, self._hscrollbar_changed, None) + self.tr() + self.td(self.hscrollbar) + + hs = self.hscrollbar + hs.rect.w,hs.rect.h = hs.resize() + if self.style.height: + box.style.height = self.style.height - (hs.rect.h + xt + xb) + + if self.hscrollbar: + hs = self.hscrollbar + hs.min = 0 + hs.max = widget.rect.w - box.style.width + hs.style.width = box.style.width + hs.size = hs.style.width * box.style.width / max(1,widget.rect.w) + else: + box.offset[0] = 0 + + if self.vscrollbar: + vs = self.vscrollbar + vs.min = 0 + vs.max = widget.rect.h - box.style.height + vs.style.height = box.style.height + vs.size = vs.style.height * box.style.height / max(1,widget.rect.h) + else: + box.offset[1] = 0 + + #print self.style.width,box.style.width, hs.style.width + + r = table.Table.resize(self,width,height) + return r + + def x_resize(self, width=None, height=None): + w,h = table.Table.resize(self, width, height) + if self.hscrollbar: + if self.widget.rect.w <= self.sbox.rect.w: + self.hscrollbar.size = self.hscrollbar.style.width + else: + self.hscrollbar.size = max(20,self.hscrollbar.style.width * self.sbox.rect.w / self.widget.rect.w) + self._hscrollbar_changed(None) + if self.widget.rect.h <= self.sbox.rect.h: + self.vscrollbar.size = self.vscrollbar.style.height + else: + self.vscrollbar.size = max(20,self.vscrollbar.style.height * self.sbox.rect.h / self.widget.rect.h) + self._vscrollbar_changed(None) + return w,h + + def _vscrollbar_changed(self, xxx): + #y = (self.widget.rect.h - self.sbox.rect.h) * self.vscrollbar.value / 1000 + #if y >= 0: self.sbox.offset[1] = -y + self.sbox.offset[1] = self.vscrollbar.value + self.sbox.reupdate() + + def _hscrollbar_changed(self, xxx): + #x = (self.widget.rect.w - self.sbox.rect.w) * self.hscrollbar.value / 1000 + #if x >= 0: self.sbox.offset[0] = -x + self.sbox.offset[0] = self.hscrollbar.value + self.sbox.reupdate() + + + def set_vertical_scroll(self, percents): + #if not self.vscrollbar: return + if not hasattr(self.vscrollbar,'value'): return + self.vscrollbar.value = percents #min(max(percents*10, 0), 1000) + self._vscrollbar_changed(None) + + def set_horizontal_scroll(self, percents): + #if not self.hscrollbar: return + if not hasattr(self.hscrollbar,'value'): return + self.hscrollbar.value = percents #min(max(percents*10, 0), 1000) + self._hscrollbar_changed(None) + + def event(self, e): + #checking for event recipient + if (table.Table.event(self, e)): + return True + + #mouse wheel scrolling + if self.vscrollbar: + if not hasattr(self.vscrollbar,'value'): + return False + + if e.type == pygame.locals.MOUSEBUTTONDOWN: + if e.button == 4: #wheel up + self.vscrollbar._click(-1) + return True + elif e.button == 5: #wheel down + self.vscrollbar._click(1) + return True + return False + + + + +class _List_Item(button._button): + def __init__(self,label=None,image=None,value=None,**params): #TODO label= could conflict with the module label + #param image: an imagez.Image object (optional) + #param text: a string object + params.setdefault('cls','list.item') + button._button.__init__(self,**params) + self.group = None + self.value = value #(self, value) + self.widget = None + + if type(label) == str: + label = basic.Label(label, cls=self.cls+".label") + + if image and label: + self.widget = container.Container() + self.widget.add(image, 0, 0) + #HACK: improper use of .resize() + image.rect.w,image.rect.h = image.resize() + self.widget.add(label, image.rect.w, 0) + elif image: self.widget = image + elif label: self.widget = label + + self.pcls = "" + + def resize(self,width=None,height=None): + self.widget.rect.w,self.widget.rect.h = self.widget.resize() + return self.widget.rect.w,self.widget.rect.h +# self.widget._resize() +# self.rect.w,self.rect.h = self.widget.rect_margin.w,self.widget.rect_margin.h + + def event(self,e): + button._button.event(self,e) + if self.group.value == self.value: self.pcls = "down" + + def paint(self,s): + if self.group.value == self.value: self.pcls = "down" + self.widget.paint(surface.subsurface(s,self.widget.rect)) + + def click(self): + self.group.value = self.value + for w in self.group.widgets: + if w != self: w.pcls = "" + + + +class List(ScrollArea): + """A list of items in an area. + + This widget can be a form element, it has a value set to whatever item is selected. + + """ + def _change(self, value): + self.value = self.group.value + self.send(CHANGE) + + def __init__(self, width, height, **params): + params.setdefault('cls', 'list') + self.table = table.Table(width=width) + ScrollArea.__init__(self, self.table, width, height,hscrollbar=False ,**params) + + self.items = [] + + g = group.Group() + self.group = g + g.connect(CHANGE,self._change,None) + self.value = self.group.value = None + + self.add = self._add + self.remove = self._remove + + def clear(self): + """Clear the list.""" + self.items = [] + self.group = group.Group() + self.group.connect(CHANGE,self._change,None) + self.table.clear() + self.set_vertical_scroll(0) + self.blur(self.myfocus) + + def _add(self, label, image = None, value=None): + item = _List_Item(label,image=image,value=value) + self.table.tr() + self.table.add(item) + self.items.append(item) + item.group = self.group + item.group.add(item) + + def _remove(self, item): + for i in self.items: + if i.value == item: item = i + if item not in self.items: + return + item.blur() + self.items.remove(item) + self.group.widgets.remove(item) + self.table.remove_row(item.style.row) + diff --git a/2-WordSwarm/pgu/gui/basic.py b/2-WordSwarm/pgu/gui/basic.py new file mode 100644 index 0000000..d01ad76 --- /dev/null +++ b/2-WordSwarm/pgu/gui/basic.py @@ -0,0 +1,139 @@ +"""These widgets are all grouped together because they are non-interactive widgets. +""" + +import pygame + +from .const import * +from . import widget + +# Turns a descriptive string or a tuple into a pygame color +def parse_color(desc): + if (is_color(desc)): + # Already a color + return desc + elif (desc and desc[0] == "#"): + # Because of a bug in pygame 1.8.1 we need to explicitly define the + # alpha value otherwise it will default to transparent. + if (len(desc) == 7): + desc += "FF" + return pygame.Color(desc) + +# Determines if the given object is a pygame-compatible color or not +def is_color(col): + # In every version of pygame (up to 1.8.1 so far) will interpret + # a tuple as a color. + if (type(col) == tuple): + return col + if (hasattr(pygame, "Color") and type(pygame.Color) == type): + # This is a recent version of pygame that uses a proper type + # instance for colors. + return (isinstance(col, pygame.Color)) + # Otherwise, this version of pygame only supports tuple colors + return False + +class Spacer(widget.Widget): + """An invisible space widget.""" + + def __init__(self,width,height,**params): + params.setdefault('focusable',False) + widget.Widget.__init__(self,width=width,height=height,**params) + + +class Color(widget.Widget): + """A widget that renders as a solid block of color. + + Note the color can be changed by setting the 'value' field, and the + widget will automatically be repainted, eg: + + c = Color() + c.value = (255,0,0) + c.value = (0,255,0) + + """ + + _value = None + + def __init__(self,value=None,**params): + params.setdefault('focusable',False) + if value != None: params['value']=value + widget.Widget.__init__(self,**params) + + def paint(self,s): + if hasattr(self,'value'): s.fill(self.value) + + @property + def value(self): + return self._value + + @value.setter + def value(self, val): + if (isinstance(val, basestring)): + # Parse the string as a color + val = parse_color(val) + oldval = self._value + self._value = val + if (oldval != val): + # Emit a change signal + self.send(CHANGE) + self.repaint() + + +class Label(widget.Widget): + """A text label widget.""" + + def __init__(self, value="", **params): + params.setdefault('focusable', False) + params.setdefault('cls', 'label') + widget.Widget.__init__(self, **params) + self.value = value + self.font = self.style.font + self.style.width, self.style.height = self.font.size(self.value) + + def paint(self,s): + """Renders the label onto the given surface in the upper-left corner.""" + s.blit(self.font.render(self.value, 1, self.style.color),(0,0)) + + def set_text(self, txt): + """Set the text of this label.""" + self.value = txt + # Signal to the application that we need to resize this widget + self.chsize() + + def set_font(self, font): + """Set the font used to render this label.""" + this.font = font + # Signal to the application that we need a resize + this.chsize() + + def resize(self,width=None,height=None): + # Calculate the size of the rendered text + (self.style.width, self.style.height) = self.font.size(self.value) + return (self.style.width, self.style.height) + + +class Image(widget.Widget): + """An image widget. The constructor takes a file name or a pygame surface.""" + + def __init__(self,value,**params): + params.setdefault('focusable',False) + widget.Widget.__init__(self,**params) + if type(value) == str: value = pygame.image.load(value) + + ow,oh = iw,ih = value.get_width(),value.get_height() + sw,sh = self.style.width,self.style.height + + if sw and not sh: + iw,ih = sw,ih*sw/iw + elif sh and not sw: + iw,ih = iw*sh/ih,sh + elif sw and sh: + iw,ih = sw,sh + + if (ow,oh) != (iw,ih): + value = pygame.transform.scale(value,(iw,ih)) + self.style.width,self.style.height = iw,ih + self.value = value + + def paint(self,s): + s.blit(self.value,(0,0)) + diff --git a/2-WordSwarm/pgu/gui/button.py b/2-WordSwarm/pgu/gui/button.py new file mode 100644 index 0000000..3e45645 --- /dev/null +++ b/2-WordSwarm/pgu/gui/button.py @@ -0,0 +1,340 @@ +"""Contains various types of button widgets.""" + +from pygame.locals import * + +from .const import * +from . import widget, surface +from . import basic + +class _button(widget.Widget): + # The underlying 'value' accessed by the getter and setters below + _value = None + + def __init__(self,**params): + widget.Widget.__init__(self,**params) + self.state = 0 + + def event(self,e): + if e.type == ENTER: self.repaint() + elif e.type == EXIT: self.repaint() + elif e.type == FOCUS: self.repaint() + elif e.type == BLUR: self.repaint() + elif e.type == KEYDOWN: + if e.key == K_SPACE or e.key == K_RETURN: + self.state = 1 + self.repaint() + elif e.type == MOUSEBUTTONDOWN: + self.state = 1 + self.repaint() + elif e.type == KEYUP: + if self.state == 1: + sub = pygame.event.Event(CLICK,{'pos':(0,0),'button':1}) + #self.send(sub.type,sub) + self._event(sub) + + self.state = 0 + self.repaint() + elif e.type == MOUSEBUTTONUP: + self.state = 0 + self.repaint() + elif e.type == CLICK: + self.click() + + self.pcls = "" + if self.state == 0 and self.is_hovering(): + self.pcls = "hover" + if self.state == 1 and self.is_hovering(): + self.pcls = "down" + + def click(self): + pass + + +class Button(_button): + """A button, buttons can be clicked, they are usually used to set up callbacks. + + Example: + w = gui.Button("Click Me") + w.connect(gui.CLICK, fnc, value) + + """ + + def __init__(self, value=None, **params): + """Button constructor, which takes either a string label or widget. + + See Widget documentation for additional style parameters. + + """ + params.setdefault('cls', 'button') + _button.__init__(self, **params) + self.value = value + + @property + def value(self): + return self._value + + @value.setter + def value(self, val): + if (isinstance(val, basestring)): + # Allow the choice of font to propagate to the button label + params = {} + if (self.style.font): + params["font"] = self.style.font + val = basic.Label(val, cls=self.cls+".label", **params) + val.container = self + + oldval = self._value + self._value = val + + if (val != oldval): + self.send(CHANGE) + self.chsize() + + def resize(self,width=None,height=None): + self.value.rect.x,self.value.rect.y = 0,0 + self.value.rect.w,self.value.rect.h = self.value.resize(width,height) + return self.value.rect.w,self.value.rect.h + + def paint(self,s): + self.value.pcls = self.pcls + self.value.paint(surface.subsurface(s,self.value.rect)) + + +class Switch(_button): + """A switch can have two states, on or off.""" + + def __init__(self,value=False,**params): + params.setdefault('cls','switch') + _button.__init__(self,**params) + self.value = value + + img = self.style.off + self.style.width = img.get_width() + self.style.height = img.get_height() + + def paint(self,s): + #self.pcls = "" + #if self.container.myhover is self: self.pcls = "hover" + if self.value: img = self.style.on + else: img = self.style.off + s.blit(img,(0,0)) + + @property + def value(self): + return self._value + + @value.setter + def value(self, val): + oldval = self._value + self._value = val + if oldval != val: + self.send(CHANGE) + self.repaint() + + def click(self): + self.value = not self.value + +class Checkbox(_button): + """A type of switch that can be grouped with other checkboxes. + + Example: + # The 'value' parameter indicates which checkboxes are on by default + g = gui.Group(name='colors',value=['r','b']) + + t = gui.Table() + t.tr() + t.td(gui.Label('Red')) + t.td(gui.Checkbox(g,'r')) + t.tr() + t.td(gui.Label('Green')) + t.td(gui.Checkbox(g,'g')) + t.tr() + t.td(gui.Label('Blue')) + t.td(gui.Checkbox(g,'b')) + + """ + + def __init__(self,group,value=None,**params): + """Checkbox constructor. + + Keyword arguments: + group -- the Group that this checkbox belongs to + value -- the initial value (True or False) + + See Widget documentation for additional style parameters. + + """ + + params.setdefault('cls','checkbox') + _button.__init__(self,**params) + self.group = group + self.group.add(self) + if self.group.value == None: + self.group.value = [] + self.value = value + + img = self.style.off + self.style.width = img.get_width() + self.style.height = img.get_height() + + def paint(self,s): + #self.pcls = "" + #if self.container.myhover is self: self.pcls = "hover" + if self.value in self.group.value: img = self.style.on + else: img = self.style.off + + s.blit(img,(0,0)) + + def click(self): + if self.value in self.group.value: + self.group.value.remove(self.value) + else: + self.group.value.append(self.value) + self.group._change() + +class Radio(_button): + """A type of switch that can be grouped with other radio buttons, except + that only one radio button can be active at a time. + + Example: + g = gui.Group(name='colors',value='g') + + t = gui.Table() + t.tr() + t.td(gui.Label('Red')) + t.td(gui.Radio(g,'r')) + t.tr() + t.td(gui.Label('Green')) + t.td(gui.Radio(g,'g')) + t.tr() + t.td(gui.Label('Blue')) + t.td(gui.Radio(g,'b')) + + """ + + def __init__(self,group=None,value=None,**params): + """Radio constructor. + + Keyword arguments: + group -- the Group this radio button belongs to + value -- the initial value (True or False) + + """ + params.setdefault('cls','radio') + _button.__init__(self,**params) + self.group = group + self.group.add(self) + self.value = value + + img = self.style.off + self.style.width = img.get_width() + self.style.height = img.get_height() + + def paint(self,s): + #self.pcls = "" + #if self.container.myhover is self: self.pcls = "hover" + if self.group.value == self.value: img = self.style.on + else: img = self.style.off + s.blit(img,(0,0)) + + def click(self): + self.group.value = self.value + +class Tool(_button): + """Within a Group of Tool widgets only one may be selected at a time. + + Example: + g = gui.Group(name='colors',value='g') + + t = gui.Table() + t.tr() + t.td(gui.Tool(g,'Red','r')) + t.tr() + t.td(gui.Tool(g,'Green','g')) + t.tr() + t.td(gui.Tool(g,'Blue','b')) + + """ + + def __init__(self,group,widget=None,value=None,**params): #TODO widget= could conflict with module widget + """Tool constructor. + + Keyword arguments: + group -- a gui.Group for the Tool to belong to + widget -- a widget to appear on the Tool (similar to a Button) + value -- the value + + """ + params.setdefault('cls','tool') + _button.__init__(self,**params) + self.group = group + self.group.add(self) + self.value = value + + if widget: + self.setwidget(widget) + + if self.group.value == self.value: self.pcls = "down" + + def setwidget(self,w): + self.widget = w + + def resize(self,width=None,height=None): + self.widget.rect.w,self.widget.rect.h = self.widget.resize() + #self.widget._resize() + #self.rect.w,self.rect.h = self.widget.rect_margin.w,self.widget.rect_margin.h + + return self.widget.rect.w,self.widget.rect.h + + def event(self,e): + _button.event(self,e) + if self.group.value == self.value: self.pcls = "down" + + def paint(self,s): + if self.group.value == self.value: self.pcls = "down" + self.widget.paint(surface.subsurface(s,self.widget.rect)) + + def click(self): + self.group.value = self.value + for w in self.group.widgets: + if w != self: w.pcls = "" + + +class Icon(_button): + """TODO - might be deprecated + """ + def __init__(self,cls,**params): + params['cls'] = cls + _button.__init__(self,**params) + s = self.style.image + self.style.width = s.get_width() + self.style.height = s.get_height() + self.state = 0 + + def paint(self,s): + #self.pcls = "" + #if self.state == 0 and hasattr(self.container,'myhover') and self.container.myhover is self: self.pcls = "hover" + #if self.state == 1 and hasattr(self.container,'myhover') and self.container.myhover is self: self.pcls = "down" + s.blit(self.style.image,(0,0)) + +class Link(_button): + """A link, links can be clicked, they are usually used to set up callbacks. + Basically the same as the button widget, just text only with a different cls. + Made for convenience. + + Example: + w = gui.Link("Click Me") + w.connect(gui.CLICK,fnc,value) + + """ + def __init__(self,value,**params): + params.setdefault('focusable',True) + params.setdefault('cls','link') + _button.__init__(self,**params) + self.value = value + self.font = self.style.font + self.style.width, self.style.height = self.font.size(self.value) + + def paint(self,s): + s.blit(self.font.render(self.value, 1, self.style.color),(0,0)) + diff --git a/2-WordSwarm/pgu/gui/const.py b/2-WordSwarm/pgu/gui/const.py new file mode 100644 index 0000000..02bfbad --- /dev/null +++ b/2-WordSwarm/pgu/gui/const.py @@ -0,0 +1,41 @@ +"""Constants. + +From pygame: + QUIT + MOUSEBUTTONDOWN + MOUSEBUTTONUP + MOUSEMOTION + KEYDOWN + +PGU specific: + ENTER + EXIT + BLUR + FOCUS + CLICK + CHANGE + OPEN + CLOSE + INIT + +Other: + NOATTR + +""" +import pygame + +from pygame.locals import QUIT, MOUSEBUTTONDOWN, MOUSEBUTTONUP, MOUSEMOTION, KEYDOWN, USEREVENT +ENTER = pygame.locals.USEREVENT + 0 +EXIT = pygame.locals.USEREVENT + 1 +BLUR = pygame.locals.USEREVENT + 2 +FOCUS = pygame.locals.USEREVENT + 3 +CLICK = pygame.locals.USEREVENT + 4 +CHANGE = pygame.locals.USEREVENT + 5 +OPEN = pygame.locals.USEREVENT + 6 +CLOSE = pygame.locals.USEREVENT + 7 +INIT = 'init' + +class NOATTR: + pass + + diff --git a/2-WordSwarm/pgu/gui/container.py b/2-WordSwarm/pgu/gui/container.py new file mode 100644 index 0000000..ef639fc --- /dev/null +++ b/2-WordSwarm/pgu/gui/container.py @@ -0,0 +1,405 @@ +""" +""" +import pygame +from pygame.locals import * + +from .const import * +from . import widget, surface +from . import pguglobals + +class Container(widget.Widget): + """The base container widget, can be used as a template as well as stand alone.""" + + def __init__(self,**params): + widget.Widget.__init__(self,**params) + self.myfocus = None + self.mywindow = None + self.myhover = None + #self.background = 0 + self.widgets = [] + self.windows = [] + self.toupdate = {} + self.topaint = {} + + def update(self,s): + updates = [] + + if self.myfocus: self.toupdate[self.myfocus] = self.myfocus + + for w in self.topaint: + if w is self.mywindow: + continue + else: + sub = surface.subsurface(s,w.rect) + #if (hasattr(w, "_container_bkgr")): + # sub.blit(w._container_bkgr,(0,0)) + w.paint(sub) + updates.append(pygame.rect.Rect(w.rect)) + + for w in self.toupdate: + if w is self.mywindow: + continue + else: + us = w.update(surface.subsurface(s,w.rect)) + if us: + for u in us: + updates.append(pygame.rect.Rect(u.x + w.rect.x,u.y+w.rect.y,u.w,u.h)) + + for w in self.topaint: + if w is self.mywindow: + w.paint(self.top_surface(s,w)) + updates.append(pygame.rect.Rect(w.rect)) + else: + continue + + for w in self.toupdate: + if w is self.mywindow: + us = w.update(self.top_surface(s,w)) + else: + continue + if us: + for u in us: + updates.append(pygame.rect.Rect(u.x + w.rect.x,u.y+w.rect.y,u.w,u.h)) + + self.topaint = {} + self.toupdate = {} + + return updates + + def repaint(self,w=None): + if not w: + return widget.Widget.repaint(self) + self.topaint[w] = w + self.reupdate() + + def reupdate(self,w=None): + if not w: + return widget.Widget.reupdate(self) + self.toupdate[w] = w + self.reupdate() + + def paint(self,s): + self.toupdate = {} + self.topaint = {} + for w in self.widgets: + try: + sub = surface.subsurface(s, w.rect) + except: + print('container.paint(): %s not inside %s' % ( + w.__class__.__name__,self.__class__.__name__)) + print(s.get_width(), s.get_height(), w.rect) + print("") + else: +# if (not hasattr(w,'_container_bkgr') or +# w._container_bkgr.get_size() != sub.get_size()): +# #w._container_bkgr.get_width() == sub.get_width() and +# #w._container_bkgr.get_height() == sub.get_height())): +# w._container_bkgr = sub.copy() +# w._container_bkgr.fill((0,0,0,0)) +# w._container_bkgr.blit(sub,(0,0)) + w.paint(sub) + + for w in self.windows: + w.paint(self.top_surface(s,w)) + + def top_surface(self,s,w): + x,y = s.get_abs_offset() + s = s.get_abs_parent() + return surface.subsurface(s,(x+w.rect.x,y+w.rect.y,w.rect.w,w.rect.h)) + + def event(self,e): + used = False + + if self.mywindow and e.type == MOUSEBUTTONDOWN: + w = self.mywindow + if self.myfocus is w: + if not w.collidepoint(e.pos): self.blur(w) + if not self.myfocus: + if w.collidepoint(e.pos): self.focus(w) + + if not self.mywindow: + #### by Gal Koren + ## + ## if e.type == FOCUS: + if e.type == FOCUS and not self.myfocus: + #self.first() + pass + elif e.type == EXIT: + if self.myhover: self.exit(self.myhover) + elif e.type == BLUR: + if self.myfocus: self.blur(self.myfocus) + elif e.type == MOUSEBUTTONDOWN: + h = None + for w in self.widgets: + if not w.disabled: + # Focusable not considered, since that is only for tabs + if w.collidepoint(e.pos): + h = w + if self.myfocus is not w: self.focus(w) + if not h and self.myfocus: + self.blur(self.myfocus) + elif e.type == MOUSEMOTION: + if 1 in e.buttons: + if self.myfocus: ws = [self.myfocus] + else: ws = [] + else: ws = self.widgets + + h = None + for w in ws: + if w.collidepoint(e.pos): + h = w + if self.myhover is not w: + self.enter(w) + break + if not h and self.myhover: + self.exit(self.myhover) + w = self.myhover + + if w and w is not self.myfocus: + sub = pygame.event.Event(e.type,{ + 'buttons':e.buttons, + 'pos':(e.pos[0]-w.rect.x,e.pos[1]-w.rect.y), + 'rel':e.rel}) + used = w._event(sub) + + w = self.myfocus + if w: + if e.type == MOUSEBUTTONUP or e.type == MOUSEBUTTONDOWN: + sub = pygame.event.Event(e.type,{ + 'button':e.button, + 'pos':(e.pos[0]-w.rect.x,e.pos[1]-w.rect.y)}) + elif e.type == CLICK and self.myhover is w: + sub = pygame.event.Event(e.type,{ + 'button':e.button, + 'pos':(e.pos[0]-w.rect.x,e.pos[1]-w.rect.y)}) + elif e.type == MOUSEMOTION: + sub = pygame.event.Event(e.type,{ + 'buttons':e.buttons, + 'pos':(e.pos[0]-w.rect.x,e.pos[1]-w.rect.y), + 'rel':e.rel}) + elif (e.type == KEYDOWN or e.type == KEYUP): + sub = e + else: + sub = None + + #elif e.type == CLICK: #a dead click + # sub = None + + if (sub): + used = w._event(sub) + + if not used and e.type is KEYDOWN: + if e.key is K_TAB and self.myfocus: + if (e.mod&KMOD_SHIFT) == 0: + self.myfocus.next() + else: + self.myfocus.previous() + return True + elif e.key == K_UP: + self._move_focus(0,-1) + return True + elif e.key == K_RIGHT: + self._move_focus(1,0) + return True + elif e.key == K_DOWN: + self._move_focus(0,1) + return True + elif e.key == K_LEFT: + self._move_focus(-1,0) + return True + return used + + def _move_focus(self,dx_,dy_): + myfocus = self.myfocus + if not self.myfocus: return + + widgets = self._get_widgets(pguglobals.app) + #if myfocus not in widgets: return + #widgets.remove(myfocus) + if myfocus in widgets: + widgets.remove(myfocus) + rect = myfocus.get_abs_rect() + fx,fy = rect.centerx,rect.centery + + def sign(v): + if v < 0: return -1 + if v > 0: return 1 + return 0 + + dist = [] + for w in widgets: + wrect = w.get_abs_rect() + wx,wy = wrect.centerx,wrect.centery + dx,dy = wx-fx,wy-fy + if dx_ > 0 and wrect.left < rect.right: continue + if dx_ < 0 and wrect.right > rect.left: continue + if dy_ > 0 and wrect.top < rect.bottom: continue + if dy_ < 0 and wrect.bottom > rect.top: continue + dist.append((dx*dx+dy*dy,w)) + if not len(dist): return + dist.sort() + d,w = dist.pop(0) + w.focus() + + def _get_widgets(self,c): + widgets = [] + if c.mywindow: + widgets.extend(self._get_widgets(c.mywindow)) + else: + for w in c.widgets: + if isinstance(w,Container): + widgets.extend(self._get_widgets(w)) + elif not w.disabled and w.focusable: + widgets.append(w) + return widgets + + def remove(self,w): + """Remove a widget from the container.""" + self.blur(w) + self.widgets.remove(w) + #self.repaint() + self.chsize() + + def add(self,w,x,y): + """Add a widget to the container given the position.""" + w.style.x = x + w.style.y = y + w.container = self + #NOTE: this might fix it, sort of... + #but the thing is, we don't really want to resize + #something if it is going to get resized again later + #for no reason... + #w.rect.x,w.rect.y = w.style.x,w.style.y + #w.rect.w, w.rect.h = w.resize() + self.widgets.append(w) + self.chsize() + + def open(self,w=None,x=None,y=None): + if (not w): + w = self + + if (x != None): + # The position is relative to this container + rect = self.get_abs_rect() + pos = (rect.x + x, rect.y + y) + else: + pos = None + # Have the application open the window + pguglobals.app.open(w, pos) + + def focus(self,w=None): + widget.Widget.focus(self) ### by Gal koren +# if not w: +# return widget.Widget.focus(self) + if not w: return + if self.myfocus: self.blur(self.myfocus) + if self.myhover is not w: self.enter(w) + self.myfocus = w + w._event(pygame.event.Event(FOCUS)) + + #print self.myfocus,self.myfocus.__class__.__name__ + + def blur(self,w=None): + if not w: + return widget.Widget.blur(self) + if self.myfocus is w: + if self.myhover is w: self.exit(w) + self.myfocus = None + w._event(pygame.event.Event(BLUR)) + + def enter(self,w): + if self.myhover: self.exit(self.myhover) + self.myhover = w + w._event(pygame.event.Event(ENTER)) + + def exit(self,w): + if self.myhover and self.myhover is w: + self.myhover = None + w._event(pygame.event.Event(EXIT)) + + +# def first(self): +# for w in self.widgets: +# if w.focusable: +# self.focus(w) +# return +# if self.container: self.container.next(self) + +# def next(self,w): +# if w not in self.widgets: return #HACK: maybe. this happens in windows for some reason... +# +# for w in self.widgets[self.widgets.index(w)+1:]: +# if w.focusable: +# self.focus(w) +# return +# if self.container: return self.container.next(self) + + + def _next(self,orig=None): + start = 0 + if orig in self.widgets: start = self.widgets.index(orig)+1 + for w in self.widgets[start:]: + if not w.disabled and w.focusable: + if isinstance(w,Container): + if w._next(): + return True + else: + self.focus(w) + return True + return False + + def _previous(self,orig=None): + end = len(self.widgets) + if orig in self.widgets: end = self.widgets.index(orig) + ws = self.widgets[:end] + ws.reverse() + for w in ws: + if not w.disabled and w.focusable: + if isinstance(w,Container): + if w._previous(): + return True + else: + self.focus(w) + return True + return False + + def next(self,w=None): + if w != None and w not in self.widgets: return #HACK: maybe. this happens in windows for some reason... + + if self._next(w): return True + if self.container: return self.container.next(self) + + + def previous(self,w=None): + if w != None and w not in self.widgets: return #HACK: maybe. this happens in windows for some reason... + + if self._previous(w): return True + if self.container: return self.container.previous(self) + + def resize(self,width=None,height=None): + #r = self.rect + #r.w,r.h = 0,0 + ww,hh = 0,0 + if self.style.width: ww = self.style.width + if self.style.height: hh = self.style.height + + for w in self.widgets: + #w.rect.w,w.rect.h = 0,0 + w.rect.x,w.rect.y = w.style.x,w.style.y + w.rect.w, w.rect.h = w.resize() + #w._resize() + + ww = max(ww,w.rect.right) + hh = max(hh,w.rect.bottom) + return ww,hh + + # Returns the widget with the given name + def find(self, name): + for w in self.widgets: + if (w.name == name): + return w + elif (isinstance(w, Container)): + tmp = w.find(name) + if (tmp): return tmp + return None + diff --git a/2-WordSwarm/pgu/gui/deprecated.py b/2-WordSwarm/pgu/gui/deprecated.py new file mode 100644 index 0000000..7ae03f1 --- /dev/null +++ b/2-WordSwarm/pgu/gui/deprecated.py @@ -0,0 +1,76 @@ +import pygame + +from .const import * +from . import table +from . import group +from . import button, basic +from . import pguglobals + +def action_open(value): + print('gui.action_open',"Scheduled to be deprecated.") + value.setdefault('x',None) + value.setdefault('y',None) + value['container'].open(value['window'],value['x'],value['y']) + +def action_setvalue(value): + print('gui.action_setvalue',"Scheduled to be deprecated.") + a,b = value + b.value = a.value + +def action_quit(value): + print('gui.action_quit',"Scheduled to be deprecated.") + value.quit() + +def action_exec(value): + print('gui.action_exec',"Scheduled to be deprecated.") + exec(value['script'],globals(),value['dict']) + +class Toolbox(table.Table): + def __setattr__(self,k,v): + _v = self.__dict__.get(k,NOATTR) + self.__dict__[k]=v + if k == 'value' and _v != NOATTR and _v != v: + self.group.value = v + for w in self.group.widgets: + if w.value != v: w.pcls = "" + else: w.pcls = "down" + self.repaint() + + def _change(self,value): + self.value = self.group.value + self.send(CHANGE) + + def __init__(self,data,cols=0,rows=0,tool_cls='tool',value=None,**params): + print('gui.Toolbox','Scheduled to be deprecated.') + params.setdefault('cls','toolbox') + table.Table.__init__(self,**params) + + if cols == 0 and rows == 0: cols = len(data) + if cols != 0 and rows != 0: rows = 0 + + self.tools = {} + + _value = value + + g = group.Group() + self.group = g + g.connect(CHANGE,self._change,None) + self.group.value = _value + + x,y,p,s = 0,0,None,1 + for ico,value in data: + #from __init__ import theme + img = pguglobals.app.theme.get(tool_cls+"."+ico,"","image") + if img: + i = basic.Image(img) + else: i = basic.Label(ico,cls=tool_cls+".label") + p = button.Tool(g,i,value,cls=tool_cls) + self.tools[ico] = p + #p.style.hexpand = 1 + #p.style.vexpand = 1 + self.add(p,x,y) + s = 0 + if cols != 0: x += 1 + if cols != 0 and x == cols: x,y = 0,y+1 + if rows != 0: y += 1 + if rows != 0 and y == rows: x,y = x+1,0 diff --git a/2-WordSwarm/pgu/gui/dialog.py b/2-WordSwarm/pgu/gui/dialog.py new file mode 100644 index 0000000..76cc29a --- /dev/null +++ b/2-WordSwarm/pgu/gui/dialog.py @@ -0,0 +1,156 @@ +""" +""" +import os + +from .const import * +from . import table, area +from . import basic, input, button +from . import pguglobals + +class Dialog(table.Table): + """A dialog window with a title bar and an "close" button on the bar. + + Example: + title = gui.Label("My Title") + main = gui.Container() + #add stuff to the container... + + d = gui.Dialog(title,main) + d.open() + + """ + def __init__(self,title,main,**params): + """Dialog constructor. + + Arguments: + title -- title widget, usually a label + main -- main widget, usually a container + + """ + params.setdefault('cls','dialog') + table.Table.__init__(self,**params) + + + self.tr() + self.td(title,align=-1,cls=self.cls+'.bar') + clos = button.Icon(self.cls+".bar.close") + clos.connect(CLICK,self.close,None) + self.td(clos,align=1,cls=self.cls+'.bar') + + self.tr() + self.td(main,colspan=2,cls=self.cls+".main") + + +# self.tr() +# +# +# t = table.Table(cls=self.cls+".bar") +# t.tr() +# t.td(title) +# clos = button.Icon(self.cls+".bar.close") +# t.td(clos,align=1) +# clos.connect(CLICK,self.close,None) +# self.add(t,0,0) +# +# main.rect.w,main.rect.h = main.resize() +# clos.rect.w,clos.rect.h = clos.resize() +# title.container.style.width = main.rect.w - clos.rect.w +# +# self.tr() +# self.td(main,cls=self.cls+".main") +# + + +class FileDialog(Dialog): + """A file picker dialog window.""" + + def __init__(self, title_txt="File Browser", button_txt="Okay", cls="dialog", path=None): + """FileDialog constructor. + + Keyword arguments: + title_txt -- title text + button_txt -- button text + path -- initial path + + """ + + cls1 = 'filedialog' + if not path: self.curdir = os.getcwd() + else: self.curdir = path + self.dir_img = basic.Image( + pguglobals.app.theme.get(cls1+'.folder', '', 'image')) + td_style = {'padding_left': 4, + 'padding_right': 4, + 'padding_top': 2, + 'padding_bottom': 2} + self.title = basic.Label(title_txt, cls=cls+".title.label") + self.body = table.Table() + self.list = area.List(width=350, height=150) + self.input_dir = input.Input() + self.input_file = input.Input() + self._list_dir_() + self.button_ok = button.Button(button_txt) + self.body.tr() + self.body.td(basic.Label("Folder"), style=td_style, align=-1) + self.body.td(self.input_dir, style=td_style) + self.body.tr() + self.body.td(self.list, colspan=3, style=td_style) + self.list.connect(CHANGE, self._item_select_changed_, None) + self.button_ok.connect(CLICK, self._button_okay_clicked_, None) + self.body.tr() + self.body.td(basic.Label("File"), style=td_style, align=-1) + self.body.td(self.input_file, style=td_style) + self.body.td(self.button_ok, style=td_style) + self.value = None + Dialog.__init__(self, self.title, self.body) + + def _list_dir_(self): + self.input_dir.value = self.curdir + self.input_dir.pos = len(self.curdir) + self.input_dir.vpos = 0 + dirs = [] + files = [] + try: + for i in os.listdir(self.curdir): + if os.path.isdir(os.path.join(self.curdir, i)): dirs.append(i) + else: files.append(i) + except: + self.input_file.value = "Opps! no access" + #if '..' not in dirs: dirs.append('..') + dirs.sort() + dirs = ['..'] + dirs + + files.sort() + for i in dirs: + #item = ListItem(image=self.dir_img, text=i, value=i) + self.list.add(i,image=self.dir_img,value=i) + for i in files: + #item = ListItem(image=None, text=i, value=i) + self.list.add(i,value=i) + #self.list.resize() + self.list.set_vertical_scroll(0) + #self.list.repaintall() + + + def _item_select_changed_(self, arg): + self.input_file.value = self.list.value + fname = os.path.abspath(os.path.join(self.curdir, self.input_file.value)) + if os.path.isdir(fname): + self.input_file.value = "" + self.curdir = fname + self.list.clear() + self._list_dir_() + + + def _button_okay_clicked_(self, arg): + if self.input_dir.value != self.curdir: + if os.path.isdir(self.input_dir.value): + self.input_file.value = "" + self.curdir = os.path.abspath(self.input_dir.value) + self.list.clear() + self._list_dir_() + else: + self.value = os.path.join(self.curdir, self.input_file.value) + self.send(CHANGE) + self.close() + diff --git a/2-WordSwarm/pgu/gui/document.py b/2-WordSwarm/pgu/gui/document.py new file mode 100644 index 0000000..31957cc --- /dev/null +++ b/2-WordSwarm/pgu/gui/document.py @@ -0,0 +1,87 @@ +""" +""" +import pygame + +from . import container +from . import layout + +class _document_widget: + def __init__(self,w,align=None): + #w.rect.w,w.rect.h = w.resize() + #self.rect = w.rect + self.widget = w + if align != None: self.align = align + +class Document(container.Container): + """A document is a container that structures widgets in a left-to-right flow.""" + + def __init__(self,**params): + params.setdefault('cls','document') + container.Container.__init__(self,**params) + self.layout = layout.Layout(pygame.Rect(0,0,self.rect.w,self.rect.h)) + + def add(self,e,align=None): + """Add a widget to the document flow. + + Arguments: + e -- widget + align -- alignment (None,-1,0,1) + + """ + dw = _document_widget(e,align) + self.layout.add(dw) + e.container = self + e._c_dw = dw + self.widgets.append(e) + self.chsize() + + def remove(self,e): + self.layout._widgets.remove(e._c_dw) + self.widgets.remove(e) + self.chsize() + + + def block(self,align): + """Start a new block given the alignment (-1, 0, 1)""" + self.layout.add(align) + + def space(self, size): + """Add a spacer given the size.""" + self.layout.add(size) + + def br(self,height): + """Add a line break, given the height.""" + self.layout.add((0, height)) + + def resize(self,width=None,height=None): + if self.style.width: width = self.style.width + if self.style.height: height = self.style.height + + for w in self.widgets: + w.rect.w,w.rect.h = w.resize() + + if (width != None and w.rect.w > width) or (height != None and w.rect.h > height): + w.rect.w,w.rect.h = w.resize(width,height) + + dw = w._c_dw + dw.rect = pygame.Rect(0,0,w.rect.w,w.rect.h) + + if width == None: width = 65535 + self.layout.rect = pygame.Rect(0,0,width,0) + self.layout.resize() + + _max_w = 0 + + for w in self.widgets: + #xt,xl,xb,xr = w.getspacing() + dw = w._c_dw + w.style.x,w.style.y,w.rect.w,w.rect.h = dw.rect.x,dw.rect.y,dw.rect.w,dw.rect.h + #w.resize() + w.rect.x,w.rect.y = w.style.x,w.style.y + _max_w = max(_max_w,w.rect.right) + + #self.rect.w = _max_w #self.layout.rect.w + #self.rect.h = self.layout.rect.h + #print 'document',_max_w,self.layout.rect.h + return _max_w,self.layout.rect.h + diff --git a/2-WordSwarm/pgu/gui/form.py b/2-WordSwarm/pgu/gui/form.py new file mode 100644 index 0000000..413e4f3 --- /dev/null +++ b/2-WordSwarm/pgu/gui/form.py @@ -0,0 +1,89 @@ +""" +""" +from . import widget + +class Form(widget.Widget): + """A form that automatically will contain all named widgets. + + After a form is created, all named widget that are subsequently created are + added to that form. You may use dict style access to access named widgets. + + Example: + + f = gui.Form() + + w = gui.Input("Phil",name="firstname") + w = gui.Input("Hassey",name="lastname") + + print f.results() + print '' + print f.items() + print '' + print f['firstname'].value + print f['lastname'].value + + """ + + # The current form instance + form = None + # The list of PGU widgets that are tracked by this form + _elist = None + # A mapping of PGU widgets tracked by this form (name -> instance) + _emap = None + # The dirty flag is set when a new widget is added to the form + _dirty = 0 + + def __init__(self): + widget.Widget.__init__(self,decorate=False) + self._elist = [] + self._emap = {} + self._dirty = 0 + # Register this form as the one used by new widgets + Form.form = self + + def add(self,e,name=None,value=None): + """Adds a PGU widget to this form""" + if name != None: e.name = name + if value != None: e.value = value + self._elist.append(e) + self._dirty = 1 + + def _clean(self): + # Remove elements from our list if they no longer have an assigned name + for e in self._elist[:]: + if not hasattr(e,'name') or e.name == None: + self._elist.remove(e) + # Update the name-to-widget mapping + self._emap = {} + for e in self._elist: + self._emap[e.name] = e + self._dirty = 0 + + def __getitem__(self,k): + """Returns the widget instance given the name of the widget""" + if self._dirty: self._clean() + return self._emap[k] + + def __contains__(self,k): + """Returns true if this form contains the named widget""" + if self._dirty: self._clean() + if k in self._emap: return True + return False + + def results(self): + """Return a dict of name, widget-value pairs.""" + if self._dirty: self._clean() + r = {} + for e in self._elist: + # Make sure the widget has a 'value' (eg tables do not) + if (hasattr(e, "value")): + r[e.name] = e.value + else: + r[e.name] = None + return r + + def items(self): + """Return a list of name, widget pairs.""" + return self.results().items() + + diff --git a/2-WordSwarm/pgu/gui/group.py b/2-WordSwarm/pgu/gui/group.py new file mode 100644 index 0000000..3406ce6 --- /dev/null +++ b/2-WordSwarm/pgu/gui/group.py @@ -0,0 +1,49 @@ +""" +""" +from .const import * +from . import widget + +class Group(widget.Widget): + """An object for grouping together Form elements. + + When the value changes, an gui.CHANGE event is sent. Although note, + that when the value is a list, it may have to be sent by hand via + g.send(gui.CHANGE). + + """ + + _value = None + widgets = None + + def __init__(self,name=None,value=None): + """Create Group instance. + + Arguments: + name -- name as used in the Form + value -- values that are currently selected in the group + + """ + widget.Widget.__init__(self,name=name,value=value) + self.widgets = [] + + def add(self,w): + """Add a widget to this group.""" + self.widgets.append(w) + + @property + def value(self): + return self._value + + @value.setter + def value(self, val): + oldval = self._value + self._value = val + if (oldval != val): + self._change() + + def _change(self): + self.send(CHANGE) + if (self.widgets): + for w in self.widgets: + w.repaint() + diff --git a/2-WordSwarm/pgu/gui/input.py b/2-WordSwarm/pgu/gui/input.py new file mode 100644 index 0000000..fa13c5a --- /dev/null +++ b/2-WordSwarm/pgu/gui/input.py @@ -0,0 +1,156 @@ +""" +""" +import pygame +from pygame.locals import * + +from .const import * +from . import widget + +class Input(widget.Widget): + """A single line text input. + + Example: + w = Input(value="Cuzco the Goat",size=20) + w = Input("Marbles") + + """ + + _value = None + + def __init__(self,value="",size=20,**params): + """Create a new Input widget. + + Keyword arguments: + value -- initial text + size -- size for the text box, in characters + + """ + params.setdefault('cls','input') + widget.Widget.__init__(self,**params) + self.value = value + self.pos = len(str(value)) + self.vpos = 0 + self.font = self.style.font + w,h = self.font.size("e"*size) + if not self.style.height: self.style.height = h + if not self.style.width: self.style.width = w + #self.style.height = max(self.style.height,h) + #self.style.width = max(self.style.width,w) + #self.rect.w=w+self.style.padding_left+self.style.padding_right; + #self.rect.h=h+self.style.padding_top+self.style.padding_bottom; + + def paint(self,s): + r = pygame.Rect(0,0,self.rect.w,self.rect.h) + + cs = 2 #NOTE: should be in a style + + w,h = self.font.size(self.value[0:self.pos]) + x = w-self.vpos + if x < 0: self.vpos -= -x + if x+cs > s.get_width(): self.vpos += x+cs-s.get_width() + + s.blit(self.font.render(self.value, 1, self.style.color),(-self.vpos,0)) + + if self.container.myfocus is self: + w,h = self.font.size(self.value[0:self.pos]) + r.x = w-self.vpos + r.w = cs + r.h = h + s.fill(self.style.color,r) + + def _setvalue(self,v): + #self.__dict__['value'] = v + self._value = v + self.send(CHANGE) + + def event(self,e): + used = None + if e.type == KEYDOWN: + if e.key == K_BACKSPACE: + if self.pos: + self._setvalue(self.value[:self.pos-1] + self.value[self.pos:]) + self.pos -= 1 + elif e.key == K_DELETE: + if len(self.value) > self.pos: + self._setvalue(self.value[:self.pos] + self.value[self.pos+1:]) + elif e.key == K_HOME: + self.pos = 0 + elif e.key == K_END: + self.pos = len(self.value) + elif e.key == K_LEFT: + if self.pos > 0: self.pos -= 1 + used = True + elif e.key == K_RIGHT: + if self.pos < len(self.value): self.pos += 1 + used = True + elif e.key == K_RETURN: + self.next() + elif e.key == K_TAB: + pass + else: + #c = str(e.unicode) + try: + c = (e.unicode).encode('latin-1') + if c: + self._setvalue(self.value[:self.pos] + c + self.value[self.pos:]) + self.pos += 1 + except: #ignore weird characters + pass + self.repaint() + elif e.type == FOCUS: + self.repaint() + elif e.type == BLUR: + self.repaint() + + self.pcls = "" + if self.container.myfocus is self: self.pcls = "focus" + + return used + + @property + def value(self): + return self._value + + @value.setter + def value(self, val): + if (val == None): + val = "" + val = str(val) + self.pos = len(val) + oldval = self._value + self._value = val + if (oldval != val): + self.send(CHANGE) + self.repaint() + + +class Password(Input): + """A password input, in which text is rendered with '*' characters.""" + + def paint(self,s): + hidden="*" + show=len(self.value)*hidden + + #print "self.value:",self.value + + if self.pos == None: self.pos = len(self.value) + + r = pygame.Rect(0,0,self.rect.w,self.rect.h) + + cs = 2 #NOTE: should be in a style + + w,h = self.font.size(show) + x = w-self.vpos + if x < 0: self.vpos -= -x + if x+cs > s.get_width(): self.vpos += x+cs-s.get_width() + + s.blit(self.font.render(show, 1, self.style.color),(-self.vpos,0)) + + if self.container.myfocus is self: + #w,h = self.font.size(self.value[0:self.pos]) + w,h = self.font.size(show[0:self.pos]) + r.x = w-self.vpos + r.w = cs + r.h = h + s.fill(self.style.color,r) + diff --git a/2-WordSwarm/pgu/gui/keysym.py b/2-WordSwarm/pgu/gui/keysym.py new file mode 100644 index 0000000..8589799 --- /dev/null +++ b/2-WordSwarm/pgu/gui/keysym.py @@ -0,0 +1,63 @@ +""" +""" +import pygame +from pygame.locals import * + +from .const import * +from . import widget + +class Keysym(widget.Widget): + """A keysym input. This is deprecated and is scheduled to be removed from PGU.""" + + _value = None + + def __init__(self,value=None,**params): + params.setdefault('cls','keysym') + widget.Widget.__init__(self,**params) + self.value = value + + self.font = self.style.font + w,h = self.font.size("Right Super") #"Right Shift") + self.style.width,self.style.height = w,h + #self.rect.w=w+self.style.padding_left+self.style.padding_right + #self.rect.h=h+self.style.padding_top+self.style.padding_bottom + + def event(self,e): + used = None + if e.type == FOCUS or e.type == BLUR: self.repaint() + elif e.type == KEYDOWN: + if e.key != K_TAB: + self.value = e.key + self.repaint() + self.send(CHANGE) + used = True + self.next() + self.pcls = "" + if self.container.myfocus is self: self.pcls = "focus" + return used + + def paint(self,s): + r = pygame.rect.Rect(0,0,self.rect.w,self.rect.h) + #render_box(s,self.style.background,r) + if self.value == None: return + name = "" + for p in pygame.key.name(self.value).split(): name += p.capitalize()+" " + #r.x = self.style.padding_left; + #r.y = self.style.padding_bottom; + s.blit(self.style.font.render(name, 1, self.style.color), r) + + @property + def value(self): + return self._value + + @value.setter + def value(self, val): + if (val != None): + val = int(val) + oldval = self._value + self._value = val + if (oldval != val): + self.send(CHANGE) + self.repaint() + + diff --git a/2-WordSwarm/pgu/gui/layout.py b/2-WordSwarm/pgu/gui/layout.py new file mode 100644 index 0000000..a41fce5 --- /dev/null +++ b/2-WordSwarm/pgu/gui/layout.py @@ -0,0 +1,172 @@ +"""Document layout engine.""" + +class Layout: + """The document layout engine.""" + + def __init__(self,rect=None): + """initialize the object with the size of the box.""" + self._widgets = [] + self.rect = rect + + def add(self,e): + """Add a document element to the layout. + + The document element may be + * a tuple (w,h) if it is a whitespace element + * a tuple (0,h) if it is a linebreak element + * an integer -1,0,1 if it is a command to start a new block of elements + that are aligned either left,center, or right. + * an object with a .rect (for size) -- such as a word element + * an object with a .rect (for size) and .align -- such as an image element + + """ + + self._widgets.append(e) + + + def resize(self): + """Resize the layout. + + This method recalculates the position of all document elements after + they have been added to the document. .rect.x,y will be updated for + all objects. + + """ + self.init() + self.widgets = [] + for e in self._widgets: + if type(e) is tuple and e[0] != 0: + self.do_space(e) + elif type(e) is tuple and e[0] == 0: + self.do_br(e[1]) + elif type(e) is int: + self.do_block(align=e) + elif hasattr(e,'align'): + self.do_align(e) + else: + self.do_item(e) + self.line() + self.rect.h = max(self.y,self.left_bottom,self.right_bottom) + + def init(self): + self.x,self.y = self.rect.x,self.rect.y + self.left = self.rect.left + self.right = self.rect.right + self.left_bottom = 0 + self.right_bottom = 0 + self.y = self.rect.y + self.x = self.rect.x + self.h = 0 + + self.items = [] + self.align = -1 + + def getleft(self): + if self.y > self.left_bottom: + self.left = self.rect.left + return self.left + + def getright(self): + if self.y > self.right_bottom: + self.right = self.rect.right + return self.right + + def do_br(self,h): + self.line() + self.h = h + + def do_block(self,align=-1): + self.line() + self.align = align + + def do_align(self,e): + align = e.align + ox,oy,oh = self.x,self.y,self.h + w,h = e.rect.w,e.rect.h + + if align == 0: + self.line() + self.x = self.rect.left + (self.rect.width-w)/2 + self.fit = 0 + elif align == -1: + self.line() + self.y = max(self.left_bottom,self.y + self.h) + self.h = 0 + self.x = self.rect.left + elif align == 1: + self.line() + self.y = max(self.right_bottom,self.y + self.h) + self.h = 0 + self.x = self.rect.left + (self.rect.width-w) + + e.rect.x,e.rect.y = self.x,self.y + + self.x = self.x + w + self.y = self.y + + if align == 0: + self.h = max(self.h,h) + self.y = self.y + self.h + self.x = self.getleft() + self.h = 0 + elif align == -1: + self.left = self.x + self.left_bottom = self.y + h + self.x,self.y,self.h = ox + w,oy,oh + elif align == 1: + self.right = self.x - w + self.right_bottom = self.y + h + self.x,self.y,self.h = ox,oy,oh + + self.widgets.append(e) + + def do_space(self,e): + w,h = e + if self.x+w >= self.getright(): + self.line() + else: + self.items.append(e) + self.h = max(self.h,h) + self.x += w + + def do_item(self,e): + w,h = e.rect.w,e.rect.h + if self.x+w >= self.getright(): + self.line() + self.items.append(e) + self.h = max(self.h,h) + self.x += w + + def line(self): + x1 = self.getleft() + x2 = self.getright() + align = self.align + y = self.y + + if len(self.items) != 0 and type(self.items[-1]) == tuple: + del self.items[-1] + + w = 0 + for e in self.items: + if type(e) == tuple: w += e[0] + else: w += e.rect.w + + if align == -1: x = x1 + elif align == 0: + x = x1 + ((x2-x1)-w)/2 + self.fit = 0 + elif align == 1: x = x2 - w + + for e in self.items: + if type(e) == tuple: x += e[0] + else: + e.rect.x,e.rect.y = x,y + self.widgets.append(e) + x += e.rect.w + + self.items = [] + self.y = self.y + self.h + self.x = self.getleft() + self.h = 0 + + diff --git a/2-WordSwarm/pgu/gui/menus.py b/2-WordSwarm/pgu/gui/menus.py new file mode 100644 index 0000000..d3456ab --- /dev/null +++ b/2-WordSwarm/pgu/gui/menus.py @@ -0,0 +1,115 @@ +""" +""" +from .const import * +from . import table +from . import basic, button + +class _Menu_Options(table.Table): + def __init__(self,menu,**params): + table.Table.__init__(self,**params) + + self.menu = menu + + def event(self,e): + handled = False + arect = self.get_abs_rect() + + if e.type == MOUSEMOTION: + abspos = e.pos[0]+arect.x,e.pos[1]+arect.y + for w in self.menu.container.widgets: + if not w is self.menu: + mrect = w.get_abs_rect() + if mrect.collidepoint(abspos): + self.menu._close(None) + w._open(None) + handled = True + + if not handled: table.Table.event(self,e) + +class _Menu(button.Button): + def __init__(self,parent,widget=None,**params): #TODO widget= could conflict with module widget + params.setdefault('cls','menu') + button.Button.__init__(self,widget,**params) + + self.parent = parent + + self._cls = self.cls + self.options = _Menu_Options(self, cls=self.cls+".options") + + self.connect(CLICK,self._open,None) + + self.pos = 0 + + def _open(self,value): + self.parent.value = self + self.pcls = 'down' + + self.repaint() + self.container.open(self.options,self.rect.x,self.rect.bottom) + self.options.connect(BLUR,self._close,None) + self.options.focus() + self.repaint() + + def _pass(self,value): + pass + + def _close(self,value): + self.pcls = '' + self.parent.value = None + self.repaint() + self.options.close() + + def _valuefunc(self,value): + self._close(None) + if value['fnc'] != None: + value['fnc'](value['value']) + + def event(self,e): + button.Button.event(self,e) + + if self.parent.value == self: + self.pcls = 'down' + + def add(self,w,fnc=None,value=None): + w.style.align = -1 + b = button.Button(w,cls=self.cls+".option") + b.connect(CLICK,self._valuefunc,{'fnc':fnc,'value':value}) + + self.options.tr() + self.options.add(b) + + return b + +class Menus(table.Table): + """A drop down menu bar. + + Example: + data = [ + ('File/Save', fnc_save, None), + ('File/New', fnc_new, None), + ('Edit/Copy', fnc_copy, None), + ('Edit/Cut', fnc_cut, None), + ('Help/About', fnc_help, help_about_content), + ('Help/Reference', fnc_help, help_reference_content), + ] + w = Menus(data) + + """ + + def __init__(self,data,menu_cls='menu',**params): + params.setdefault('cls','menus') + table.Table.__init__(self,**params) + + self.value = None + + n,m,mt = 0,None,None + for path,cmd,value in data: + parts = path.split("/") + if parts[0] != mt: + mt = parts[0] + m = _Menu(self,basic.Label(mt,cls=menu_cls+".label"),cls=menu_cls) + self.add(m,n,0) + n += 1 + print ("add", parts[1], cmd, value) + m.add(basic.Label(parts[1],cls=m.cls+".option.label"),cmd,value) + diff --git a/2-WordSwarm/pgu/gui/misc.py b/2-WordSwarm/pgu/gui/misc.py new file mode 100644 index 0000000..763f7b9 --- /dev/null +++ b/2-WordSwarm/pgu/gui/misc.py @@ -0,0 +1,43 @@ +from .const import * +from . import widget +from . import pguglobals + +class ProgressBar(widget.Widget): + """A progress bar widget. + + Example: + w = gui.ProgressBar(0,0,100) + w.value = 25 + + """ + + _value = None + + def __init__(self,value,min,max,**params): + params.setdefault('cls','progressbar') + widget.Widget.__init__(self,**params) + self.min,self.max,self.value = min,max,value + + def paint(self,s): + if (self.value != None): + r = pygame.rect.Rect(0,0,self.rect.w,self.rect.h) + r.w = r.w*(self.value-self.min)/(self.max-self.min) + self.bar = r + pguglobals.app.theme.render(s,self.style.bar,r) + + @property + def value(self): + return self._value + + @value.setter + def value(self, val): + val = int(val) + val = max(val, self.min) + val = min(val, self.max) + oldval = self._value + self._value = val + if (oldval != val): + self.send(CHANGE) + self.repaint() + + diff --git a/2-WordSwarm/pgu/gui/pguglobals.py b/2-WordSwarm/pgu/gui/pguglobals.py new file mode 100644 index 0000000..efbbe54 --- /dev/null +++ b/2-WordSwarm/pgu/gui/pguglobals.py @@ -0,0 +1,9 @@ +"""Contains the global reference to the PGU application.""" + +# pguglobals.py - A place to stick global variables that need to be accessed +# from other modules. To avoid problems with circular imports +# this module should not import any other PGU module. + +# A global reference to the application instance (App class) +app = None + diff --git a/2-WordSwarm/pgu/gui/readme.txt b/2-WordSwarm/pgu/gui/readme.txt new file mode 100644 index 0000000..9b6950d --- /dev/null +++ b/2-WordSwarm/pgu/gui/readme.txt @@ -0,0 +1,2 @@ +This is the GUI module from Phil's pyGame Utilities: +http://www.imitationpickles.org/pgu/wiki/index \ No newline at end of file diff --git a/2-WordSwarm/pgu/gui/select.py b/2-WordSwarm/pgu/gui/select.py new file mode 100644 index 0000000..ad8d393 --- /dev/null +++ b/2-WordSwarm/pgu/gui/select.py @@ -0,0 +1,160 @@ +""" +""" + +import traceback + +from .const import * +from .button import Button +from .basic import Label, Image +from .table import Table + +class Select(Table): + """A combo dropdown box widget. + + Example: + w = Select(value="goats") + w.add("Cats","cats") + w.add("Goats","goats") + w.add("Dogs","Dogs") + w.value = 'dogs' #changes the value from goats to dogs + + """ + + # The drop-down arrow button for the selection widget + top_arrow = None + # A button displaying the currently selected item + top_selection = None + # The first option added to the selector + firstOption = None + # The PGU table of options + options = None + _value = None + + def __init__(self,value=None,**params): + params.setdefault('cls','select') + Table.__init__(self,**params) + + label = Label(" ",cls=self.cls+".option.label") + self.top_selected = Button(label, cls=self.cls+".selected") + Table.add(self,self.top_selected) #,hexpand=1,vexpand=1)#,0,0) + + self.top_arrow = Button(Image(self.style.arrow), cls=self.cls+".arrow") + Table.add(self,self.top_arrow) #,hexpand=1,vexpand=1) #,1,0) + + self.options = Table(cls=self.cls+".options") + self.options.connect(BLUR,self._close,None) + self.options.name = "pulldown-table" + + self.values = [] + self.value = value + + def resize(self,width=None,height=None): + max_w,max_h = 0,0 + for w in self.options.widgets: + w.rect.w,w.rect.h = w.resize() + max_w,max_h = max(max_w,w.rect.w),max(max_h,w.rect.h) + + #xt,xr,xb,xl = self.top_selected.getspacing() + self.top_selected.style.width = max_w #+ xl + xr + self.top_selected.style.height = max_h #+ xt + xb + + self.top_arrow.connect(CLICK,self._open,None) + self.top_selected.connect(CLICK,self._open,None) + + w,h = Table.resize(self,width,height) + + self.options.style.width = w + #HACK: sort of, but not a big one.. + self.options.resize() + + return w,h + + def _open(self,value): + opts = self.options + + opts.rect.w, opts.rect.h = opts.resize() + +# y = self.rect.y +# c = self.container +# while hasattr(c, 'container'): +# y += c.rect.y +# if (not c.container): +# break +# c = c.container + +# if y + self.rect.h + opts.rect.h <= c.rect.h: #down +# dy = self.rect.y + self.rect.h +# else: #up +# dy = self.rect.y - self.rect.h + + opts.rect.w, opts.rect.h = opts.resize() + + # TODO - make sure there is enough space to open down + # ... + yp = self.rect.bottom-1 + + self.container.open(opts, self.rect.x, yp) + self.firstOption.focus() + + # TODO - this is a hack + for opt in self.options.widgets: + opt.repaint() + + def _close(self,value): + self.options.close() + self.top_selected.focus() + + def _setvalue(self,value): + self.value = value._value + if self.container: + #self.chsize() + #HACK: improper use of resize() + #self.resize() #to recenter the new value, etc. + pass + # #self._resize() + + self._close(None) + #self.repaint() #this will happen anyways + + + @property + def value(self): + return self._value + + @value.setter + def value(self, val): + mywidget = None + for w in self.values: + if w._value == val: + mywidget = w + oldval = self._value + self._value = val + if (oldval != val): + self.send(CHANGE) + self.repaint() + if not mywidget: + mywidget = Label(" ",cls=self.cls+".option.label") + self.top_selected.value = mywidget + + + def add(self,w,value=None): + """Add a widget and associated value to the dropdown box.""" + + if type(w) == str: w = Label(w,cls=self.cls+".option.label") + + w.style.align = -1 + btn = Button(w,cls=self.cls+".option") + btn.connect(CLICK,self._setvalue,w) + + self.options.tr() + self.options.add(btn) + + if (not self.firstOption): + self.firstOption = btn + + if value != None: w._value = value + else: w._value = w + if self.value == w._value: + self.top_selected.value = w + self.values.append(w) + diff --git a/2-WordSwarm/pgu/gui/slider.py b/2-WordSwarm/pgu/gui/slider.py new file mode 100644 index 0000000..34fea01 --- /dev/null +++ b/2-WordSwarm/pgu/gui/slider.py @@ -0,0 +1,330 @@ +import pygame +from pygame.locals import * + +from .const import * +from . import widget +from . import table +from . import basic +from . import pguglobals + +_SLIDER_HORIZONTAL = 0 +_SLIDER_VERTICAL = 1 + +class _slider(widget.Widget): + _value = None + + def __init__(self,value,orient,min,max,size,step=1,**params): + params.setdefault('cls','slider') + widget.Widget.__init__(self,**params) + self.min,self.max,self.value,self.orient,self.size,self.step = min,max,value,orient,size,step + + + def paint(self,s): + + self.value = self.value + r = pygame.rect.Rect(0,0,self.style.width,self.style.height) + if self.orient == _SLIDER_HORIZONTAL: + r.x = (self.value-self.min) * (r.w-self.size) / max(1,self.max-self.min); + r.w = self.size; + else: + r.y = (self.value-self.min) * (r.h-self.size) / max(1,self.max-self.min); + r.h = self.size; + + self.bar = r + + pguglobals.app.theme.render(s,self.style.bar,r) + + def event(self,e): + used = None + r = pygame.rect.Rect(0,0,self.style.width,self.style.height) + adj = 0 + if e.type == ENTER: self.repaint() + elif e.type == EXIT: self.repaint() + elif e.type == MOUSEBUTTONDOWN: + if self.bar.collidepoint(e.pos): + self.grab = e.pos[0],e.pos[1] + self.grab_value = self.value + else: + x,y,adj = e.pos[0],e.pos[1],1 + self.grab = None + self.repaint() + elif e.type == MOUSEBUTTONUP: + #x,y,adj = e.pos[0],e.pos[1],1 + self.repaint() + elif e.type == MOUSEMOTION: + if 1 in e.buttons and self.container.myfocus is self: + if self.grab != None: + rel = e.pos[0]-self.grab[0],e.pos[1]-self.grab[1] + if self.orient == _SLIDER_HORIZONTAL: + d = (r.w - self.size) + if d != 0: self.value = self.grab_value + ((self.max-self.min) * rel[0] / d) + else: + d = (r.h - self.size) + if d != 0: self.value = self.grab_value + ((self.max-self.min) * rel[1] / d) + else: + x,y,adj = e.pos[0],e.pos[1],1 + + elif e.type is KEYDOWN: + if self.orient == _SLIDER_HORIZONTAL and e.key == K_LEFT: + self.value -= self.step + used = True + elif self.orient == _SLIDER_HORIZONTAL and e.key == K_RIGHT: + self.value += self.step + used = True + elif self.orient == _SLIDER_VERTICAL and e.key == K_UP: + self.value -= self.step + used = True + elif self.orient == _SLIDER_VERTICAL and e.key == K_DOWN: + self.value += self.step + used = True + + if adj: + if self.orient == _SLIDER_HORIZONTAL: + d = self.size/2 - (r.w/(self.max-self.min+1))/2 + self.value = (x-d) * (self.max-self.min) / (r.w-self.size+1) + self.min + else: + d = self.size/2 - (r.h/(self.max-self.min+1))/2 + self.value = (y-d) * (self.max-self.min) / (r.h-self.size+1) + self.min + + self.pcls = "" + if self.container.myhover is self: self.pcls = "hover" + if (self.container.myfocus is self and 1 in pygame.mouse.get_pressed()): self.pcls = "down" + + return used + + # TODO - replace this with property functions and setters + def __setattr__(self,k,v): + if k == 'value': + v = int(v) + v = max(v,self.min) + v = min(v,self.max) + _v = self.__dict__.get(k,NOATTR) + self.__dict__[k]=v + if k == 'value' and _v != NOATTR and _v != v: + self.send(CHANGE) + self.repaint() + if hasattr(self,'size'): + sz = min(self.size,max(self.style.width,self.style.height)) + sz = max(sz,min(self.style.width,self.style.height)) + self.__dict__['size'] = sz + #self.size = sz + if hasattr(self,'max') and hasattr(self,'min'): + if self.max < self.min: self.max = self.min + +# @property +# def value(self): +# return self._value +# +# @value.setter +# def value(self, val): +# val = int(val) +# val = max(val, self.min) +# val = min(val, self.max) +# +# oldval = self._value +# self._value = val +# if (oldval != val): +# self.send(CHANGE) +# self.repaint() +# +# if hasattr(self,'size'): +# sz = min(self.size,max(self.style.width,self.style.height)) +# sz = max(sz,min(self.style.width,self.style.height)) +# self.size = sz +# +# if hasattr(self,'max') and hasattr(self,'min'): +# if self.max < self.min: self.max = self.min + + +class VSlider(_slider): + """A verticle slider.""" + + def __init__(self,value,min,max,size,step=1,**params): + """Construct a veritcal slider widget. + + Arguments: + value -- the default position of the slider, between min and max + min -- the minimum value for the slider + max -- the maximum value + size -- the length of the slider bar in pixels + step -- how much to jump when using the keyboard + + """ + params.setdefault('cls','vslider') + _slider.__init__(self,value,_SLIDER_VERTICAL,min,max,size,step,**params) + +class HSlider(_slider): + """A horizontal slider.""" + + def __init__(self,value,min,max,size,step=1,**params): + params.setdefault('cls','hslider') + _slider.__init__(self,value,_SLIDER_HORIZONTAL,min,max,size,step,**params) + +class HScrollBar(table.Table): + """A horizontal scroll bar.""" + + def __init__(self,value,min,max,size,step=1,**params): + params.setdefault('cls','hscrollbar') + + table.Table.__init__(self,**params) + + self.slider = _slider(value,_SLIDER_HORIZONTAL,min,max,size,step=step,cls=self.cls+'.slider') + + self.minus = basic.Image(self.style.minus) + self.minus.connect(MOUSEBUTTONDOWN,self._click,-1) + self.slider.connect(CHANGE,self.send,CHANGE) + + self.minus2 = basic.Image(self.style.minus) + self.minus2.connect(MOUSEBUTTONDOWN,self._click,-1) + + self.plus = basic.Image(self.style.plus) + self.plus.connect(MOUSEBUTTONDOWN,self._click,1) + + self.size = size + + def _click(self,value): + self.slider.value += self.slider.step*value + + def resize(self,width=None,height=None): + self.clear() + self.tr() + + w = self.style.width + h = self.slider.style.height + ww = 0 + + if w > (h*2 + self.minus.style.width+self.plus.style.width): + self.td(self.minus) + ww += self.minus.style.width + + self.td(self.slider) + + if w > (h*2 + self.minus.style.width+self.minus2.style.width+self.plus.style.width): + self.td(self.minus2) + ww += self.minus2.style.width + + if w > (h*2 + self.minus.style.width+self.plus.style.width): + self.td(self.plus) + ww += self.plus.style.width + + + #HACK: handle theme sizing properly + xt,xr,xb,xl = pguglobals.app.theme.getspacing(self.slider) + ww += xr+xl + + self.slider.style.width = self.style.width - ww + setattr(self.slider,'size',self.size * self.slider.style.width / max(1,self.style.width)) + #self.slider.size = self.size * self.slider.style.width / max(1,self.style.width) + return table.Table.resize(self,width,height) + + @property + def min(self): + return self.slider.min + + @min.setter + def min(self, value): + self.slider.min = value + + @property + def max(self): + return self.slider.max + + @max.setter + def max(self, value): + self.slider.max = value + + @property + def value(self): + return self.slider.value + + @value.setter + def value(self, value): + self.slider.value = value + + @property + def step(self): + return self.slider.step + + @step.setter + def step(self, value): + self.slider.step = value + +# def __setattr__(self,k,v): +# if k in ('min','max','value','step'): +# return setattr(self.slider,k,v) +# self.__dict__[k]=v + +# def __getattr__(self,k): +# if k in ('min','max','value','step'): +# return getattr(self.slider,k) +# return table.Table.__getattr__(self,k) #self.__dict__[k] + +class VScrollBar(table.Table): + """A vertical scroll bar.""" + + def __init__(self,value,min,max,size,step=1,**params): + params.setdefault('cls','vscrollbar') + + table.Table.__init__(self,**params) + + self.minus = basic.Image(self.style.minus) + self.minus.connect(MOUSEBUTTONDOWN,self._click,-1) + + self.minus2 = basic.Image(self.style.minus) + self.minus2.connect(MOUSEBUTTONDOWN,self._click,-1) + + self.plus = basic.Image(self.style.plus) + self.plus.connect(MOUSEBUTTONDOWN,self._click,1) + + self.slider = _slider(value,_SLIDER_VERTICAL,min,max,size,step=step,cls=self.cls+'.slider') + self.slider.connect(CHANGE,self.send,CHANGE) + + self.size = size + + def _click(self,value): + self.slider.value += self.slider.step*value + + def resize(self,width=None,height=None): + self.clear() + + h = self.style.height + w = self.slider.style.width + hh = 0 + + if h > (w*2 + self.minus.style.height+self.plus.style.height): + self.tr() + self.td(self.minus) + hh += self.minus.style.height + + self.tr() + self.td(self.slider) + + if h > (w*2 + self.minus.style.height+self.minus2.style.height+self.plus.style.height): + self.tr() + self.td(self.minus2) + hh += self.minus2.style.height + + if h > (w*2 + self.minus.style.height+self.plus.style.height): + self.tr() + self.td(self.plus) + hh += self.plus.style.height + + + #HACK: handle theme sizing properly + xt,xr,xb,xl = pguglobals.app.theme.getspacing(self.slider) + hh += xt+xb + + self.slider.style.height = self.style.height - hh + setattr(self.slider,'size',self.size * self.slider.style.height / max(1,self.style.height)) + return table.Table.resize(self,width,height) + + def __setattr__(self,k,v): + if k in ('min','max','value','step'): + return setattr(self.slider,k,v) + self.__dict__[k]=v + + def __getattr__(self,k): + if k in ('min','max','value','step'): + return getattr(self.slider,k) + return table.Table.__getattr__(self,k) + diff --git a/2-WordSwarm/pgu/gui/style.py b/2-WordSwarm/pgu/gui/style.py new file mode 100644 index 0000000..3d02008 --- /dev/null +++ b/2-WordSwarm/pgu/gui/style.py @@ -0,0 +1,31 @@ +""" +""" + +from . import pguglobals + +class Style: + """The class used by widget for the widget.style + + This object is used mainly as a dictionary, accessed via widget.style.attr, + as opposed to widget.style['attr']. It automatically grabs information + from the theme via value = theme.get(widget.cls,widget.pcls,attr) + + """ + def __init__(self, obj, dict): + self.obj = obj + for k,v in dict.items(): self.__dict__[k]=v + + def __getattr__(self, attr): + value = pguglobals.app.theme.get(self.obj.cls, self.obj.pcls, attr) + + if attr in ( + 'border_top','border_right','border_bottom','border_left', + 'padding_top','padding_right','padding_bottom','padding_left', + 'margin_top','margin_right','margin_bottom','margin_left', + 'align','valign','width','height', + ): self.__dict__[attr] = value + return value + + def __setattr__(self, attr, value): + self.__dict__[attr] = value + diff --git a/2-WordSwarm/pgu/gui/surface.py b/2-WordSwarm/pgu/gui/surface.py new file mode 100644 index 0000000..567ff02 --- /dev/null +++ b/2-WordSwarm/pgu/gui/surface.py @@ -0,0 +1,114 @@ +"""Funtions for manipulating pygame surfaces.""" + +import pygame + +def subsurface(s,r): + """Return the subsurface of a surface, with some help, checks.""" + r = pygame.Rect(r) + if r.x < 0 or r.y < 0: + raise Exception("rectangle out of bounds: surface=%dx%d, rect=%s" % ( + s.get_width(),s.get_height(),r)) + w,h = s.get_width(),s.get_height() + if r.right > w: + r.w -= r.right-w + if r.bottom > h: + r.h -= r.bottom-h + assert(r.w >= 0 and r.h >= 0) + return s.subsurface(r) + +class ProxySurface: + """ + A surface-like object which smartly handle out-of-area blitting. + + Note that only one of parent and real_surface should be supplied. + + Arguments: + parent -- a ProxySurface object + real_surface -- a pygame Surface object + + Attributes: + mysubsurface -- a real and valid pygame.Surface object to be used + for blitting. + x, y -- if the proxy surface is to the left or above the parent + offset -- an option which let you scroll the whole blitted content + + """ + def __init__(self, parent, rect, real_surface, offset=(0, 0)): + self.offset = offset + self.x = self.y = 0 + if rect.x < 0: self.x = rect.x + if rect.y < 0: self.y = rect.y + self.real_surface = real_surface + if real_surface == None: + self.mysubsurface = parent.mysubsurface.subsurface( + parent.mysubsurface.get_rect().clip(rect)) + else: + self.mysubsurface = real_surface.subsurface( + real_surface.get_rect().clip(rect)) + rect.topleft = (0, 0) + self.rect = rect + + def blit(self, s, pos, rect=None): + if rect == None: rect = s.get_rect() + pos = (pos[0] + self.offset[0] + self.x, pos[1] + self.offset[1] + self.y) + self.mysubsurface.blit(s, pos, rect) + + def subsurface(self, rect): + r = pygame.Rect(rect).move(self.offset[0] + self.x, + self.offset[1] + self.y) + return ProxySurface(self, r, self.real_surface) + + def fill(self, color, rect=None): + if rect != None: self.mysubsurface.fill(color, rect) + else: self.mysubsurface.fill(color) + def get_rect(self): return self.rect + def get_width(self): return self.rect[2] + def get_height(self): return self.rect[3] + def get_abs_offset(): return self.rect[:2] + def get_abs_parent(): return self.mysubsurface.get_abs_parent() + def set_clip(self, rect=None): + if rect == None: self.mysubsurface.set_clip() + else: + rect = [rect[0] + self.offset[0] + self.x, rect[1] + self.offset[0] + self.y, rect[2], rect[3]] + self.mysubsurface.set_clip(rect) + + + + + +class xProxySurface: + """This class is obsolete and is scheduled to be removed.""" + + def __init__(self, parent, rect, real_surface, offset=(0, 0)): + self.offset = offset + self.x = self.y = 0 + if rect[0] < 0: self.x = rect[0] + if rect[1] < 0: self.y = rect[1] + self.real_surface = real_surface + if real_surface == None: + self.mysubsurface = parent.mysubsurface.subsurface(parent.mysubsurface.get_rect().clip(rect)) + else: + self.mysubsurface = real_surface.subsurface(real_surface.get_rect().clip(rect)) + rect[0], rect[1] = 0, 0 + self.rect = rect + + def blit(self, s, pos, rect=None): + if rect == None: rect = s.get_rect() + pos = (pos[0] + self.offset[0] + self.x, pos[1] + self.offset[1] + self.y) + self.mysubsurface.blit(s, pos, rect) + + def subsurface(self, rect): return ProxySurface(self, pygame.Rect(rect).move(self.offset[0] + self.x, self.offset[1] + self.y),self.real_surface) + def fill(self, color, rect=None): + if rect != None: self.mysubsurface.fill(color, rect) + else: self.mysubsurface.fill(color) + def get_rect(self): return self.rect + def get_width(self): return self.rect[2] + def get_height(self): return self.rect[3] + def get_abs_offset(): return self.rect[:2] + def get_abs_parent(): return self.mysubsurface.get_abs_parent() + def set_clip(self, rect=None): + if rect == None: self.mysubsurface.set_clip() + else: + rect = [rect[0] + self.offset[0] + self.x, rect[1] + self.offset[0] + self.y, rect[2], rect[3]] + self.mysubsurface.set_clip(rect) + diff --git a/2-WordSwarm/pgu/gui/table.py b/2-WordSwarm/pgu/gui/table.py new file mode 100644 index 0000000..12a0237 --- /dev/null +++ b/2-WordSwarm/pgu/gui/table.py @@ -0,0 +1,341 @@ +""" +""" + +import sys + +from .const import * +from . import container + +class Table(container.Container): + """A table style container widget. + + Example: + t = gui.Table() + + # This starts a new row of the table + t.tr() + # The 'td' call creates a new table cell + t.td(gui.Label("Name:"), align=-1) + t.td(gui.Input()) + + t.tr() + # The table cells can span multiple columns + t.td(gui.Label("Email"), align=-1, colspan=2) + + t.tr() + t.td(gui.Input(), colspan=2) + + """ + + + def __init__(self, **params): + params.setdefault('cls','table') + container.Container.__init__(self, **params) + self._rows = [] + self._curRow = 0 + self._trok = False + self._hpadding = params.get("hpadding", 0) + self._vpadding = params.get("vpadding", 0) + + def getRows(self): + return len(self._rows) + + def getColumns(self): + if self._rows: + return len(self._rows[0]) + else: + return 0 + + def remove_row(self, n): #NOTE: won't work in all cases. + if n >= self.getRows(): + print("Trying to remove a nonexistant row:", n, "there are only", self.getRows(), "rows") + return + + for cell in self._rows[n]: + if isinstance(cell, dict) and cell["widget"] in self.widgets: + #print 'removing widget' + self.widgets.remove(cell["widget"]) + del self._rows[n] + #print "got here" + + for w in self.widgets: + if w.style.row > n: w.style.row -= 1 + + if self._curRow >= n: + self._curRow -= 1 + + #self.rect.w, self.rect.h = self.resize() + #self.repaint() + + self.chsize() + + def clear(self): + self._rows = [] + self._curRow = 0 + self._trok = False + + self.widgets = [] + + self.chsize() + + #print 'clear',self,self._rows + + def _addRow(self): + self._rows.append([None for x in range(self.getColumns())]) + + def tr(self): + """Start on the next row.""" + if not self._trok: + self._trok = True + return + self._curRow += 1 + if self.getRows() <= self._curRow: + self._addRow() + + def _addColumn(self): + if not self._rows: + self._addRow() + for row in self._rows: + row.append(None) + + def _setCell(self, w, col, row, colspan=1, rowspan=1): + #make room for the widget by adding columns and rows + while self.getColumns() < col + colspan: + self._addColumn() + while self.getRows() < row + rowspan: + self._addRow() + + #print w.__class__.__name__,col,row,colspan,rowspan + + #actual widget setting and modification stuff + w.container = self + w.style.row = row #HACK - to work with gal's list + w.style.col = col #HACK - to work with gal's list + self._rows[row][col] = {"widget":w, "colspan":colspan, "rowspan":rowspan} + self.widgets.append(self._rows[row][col]["widget"]) + + #set the spanned columns + #for acell in range(col + 1, col + colspan): + # self._rows[row][acell] = True + + #set the spanned rows and the columns on them + #for arow in range(row + 1, row + rowspan): + # for acell in range(col, col + colspan): #incorrect? + # self._rows[arow][acell] = True + + for arow in range(row, row + rowspan): + for acell in range(col, col + colspan): #incorrect? + if row != arow or col != acell: + self._rows[arow][acell] = True + + + def td(self, w, col=None, row=None, colspan=1, rowspan=1, **params): + """Add a widget to a table after wrapping it in a TD container. + + Keyword arguments: + w -- widget + col -- column + row -- row + colspan -- colspan + rowspan -- rowspan + align -- horizontal alignment (-1,0,1) + valign -- vertical alignment (-1,0,1) + params -- other params for the TD container, style information, etc + + """ + + Table.add(self,_Table_td(w, **params), col=col, row=row, colspan=colspan, rowspan=rowspan) + + def add(self, w, col=None, row=None, colspan=1, rowspan=1): + """Add a widget directly into the table, without wrapping it in a TD container. + + See Table.td for an explanation of the parameters. + + """ + self._trok = True + #if no row was specifically specified, set it to the current row + if row is None: + row = self._curRow + #print row + + #if its going to be a new row, have it be on the first column + if row >= self.getRows(): + col = 0 + + #try to find an open cell for the widget + if col is None: + for cell in range(self.getColumns()): + if col is None and not self._rows[row][cell]: + col = cell + break + + #otherwise put the widget in a new column + if col is None: + col = self.getColumns() + + self._setCell(w, col, row, colspan=colspan, rowspan=rowspan) + + self.chsize() + return + + def remove(self,w): + if hasattr(w,'_table_td'): w = w._table_td + row,col = w.style.row,w.style.col + cell = self._rows[row][col] + colspan,rowspan = cell['colspan'],cell['rowspan'] + + for arow in range(row , row + rowspan): + for acell in range(col, col + colspan): #incorrect? + self._rows[arow][acell] = False + self.widgets.remove(w) + self.chsize() + + + + def resize(self, width=None, height=None): + #if 1 or self.getRows() == 82: + #print '' + #print 'resize',self.getRows(),self.getColumns(),width,height + #import inspect + #for obj,fname,line,fnc,code,n in inspect.stack()[9:20]: + # print fname,line,':',fnc,code[0].strip() + + + #resize the widgets to their smallest size + for w in self.widgets: + w.rect.w, w.rect.h = w.resize() + + #calculate row heights and column widths + rowsizes = [0 for y in range(self.getRows())] + columnsizes = [0 for x in range(self.getColumns())] + for row in range(self.getRows()): + for cell in range(self.getColumns()): + if self._rows[row][cell] and self._rows[row][cell] is not True: + if not self._rows[row][cell]["colspan"] > 1: + columnsizes[cell] = max(columnsizes[cell], self._rows[row][cell]["widget"].rect.w) + if not self._rows[row][cell]["rowspan"] > 1: + rowsizes[row] = max(rowsizes[row], self._rows[row][cell]["widget"].rect.h) + + #distribute extra space if necessary for wide colspanning/rowspanning + def _table_div(a,b,c): + v,r = a/b, a%b + if r != 0 and (c%b) 1: + columns = range(cell, cell + self._rows[row][cell]["colspan"]) + totalwidth = 0 + for acol in columns: + totalwidth += columnsizes[acol] + if totalwidth < self._rows[row][cell]["widget"].rect.w: + for acol in columns: + columnsizes[acol] += _table_div(self._rows[row][cell]["widget"].rect.w - totalwidth, self._rows[row][cell]["colspan"],acol) + if self._rows[row][cell]["rowspan"] > 1: + rows = range(row, row + self._rows[row][cell]["rowspan"]) + totalheight = 0 + for arow in rows: + totalheight += rowsizes[arow] + if totalheight < self._rows[row][cell]["widget"].rect.h: + for arow in rows: + rowsizes[arow] += _table_div(self._rows[row][cell]["widget"].rect.h - totalheight, self._rows[row][cell]["rowspan"],arow) + + # Now calculate the total width and height occupied by the rows and columns + rowsizes = [sz+2*self._vpadding for sz in rowsizes] + columnsizes = [sz+2*self._hpadding for sz in columnsizes] + + # Now possibly expand the table cells to fill out the specified width + w = sum(columnsizes) + if (w > 0 and w < self.style.width): + amount = (self.style.width - w)/float(w) + for n in range(0, len(columnsizes)): + columnsizes[n] += columnsizes[n] * amount + + # Do the same for the table height + h = sum(rowsizes) + if (h > 0 and h < self.style.height): + amount = (self.style.height - h) / float(h) + for n in range(0, len(rowsizes)): + rowsizes[n] += rowsizes[n] * amount + + #set the widget's position by calculating their row/column x/y offset + cellpositions = [[[sum(columnsizes[0:cell]), sum(rowsizes[0:row])] for cell in range(self.getColumns())] for row in range(self.getRows())] + for row in range(self.getRows()): + for cell in range(self.getColumns()): + if self._rows[row][cell] and self._rows[row][cell] is not True: + x, y = cellpositions[row][cell] + w = sum(columnsizes[cell:cell+self._rows[row][cell]["colspan"]]) + h = sum(rowsizes[row:row+self._rows[row][cell]["rowspan"]]) + + widget = self._rows[row][cell]["widget"] + widget.rect.x = x + widget.rect.y = y + if 1 and (w,h) != (widget.rect.w,widget.rect.h): +# if h > 20: +# print widget.widget.__class__.__name__, (widget.rect.w,widget.rect.h),'=>',(w,h) + widget.rect.w, widget.rect.h = widget.resize(w, h) + + #print self._rows[row][cell]["widget"].rect + + #print columnsizes + #print sum(columnsizes) + #size = sum(columnsizes), sum(rowsizes); print size + + #return the tables final size + return sum(columnsizes),sum(rowsizes) + + +class _Table_td(container.Container): + def __init__(self,widget,**params):#hexpand=0,vexpand=0, + container.Container.__init__(self,**params) + self.widget = widget + #self.hexpand=hexpand + #self.vexpand=vexpand + widget._table_td = self + self.add(widget,0,0) + + def resize(self,width=None,height=None): + w = self.widget + + #expansion code, but i didn't like the idea that much.. + #a bit obscure, fairly useless when a user can just + #add a widget to a table instead of td it in. + #ww,hh=None,None + #if self.hexpand: ww = self.style.width + #if self.vexpand: hh = self.style.height + #if self.hexpand and width != None: ww = max(ww,width) + #if self.vexpand and height != None: hh = max(hh,height) + #w.rect.w,w.rect.h = w.resize(ww,hh) + + #why bother, just do the lower mentioned item... + w.rect.w,w.rect.h = w.resize() + + #this should not be needed, widgets should obey their sizing on their own. + +# if (self.style.width!=0 and w.rect.w > self.style.width) or (self.style.height!=0 and w.rect.h > self.style.height): +# ww,hh = None,None +# if self.style.width: ww = self.style.width +# if self.style.height: hh = self.style.height +# w.rect.w,w.rect.h = w.resize(ww,hh) + + + #in the case that the widget is too big, we try to resize it + if (width != None and width < w.rect.w) or (height != None and height < w.rect.h): + (w.rect.w, w.rect.h) = w.resize(width, height) + + # In python3 max and min no longer accept None as an argument + if (width == None): width = -sys.maxsize + if (height == None): height = -sys.maxsize + + width = max(width, w.rect.w, self.style.width) #,self.style.cell_width) + height = max(height, w.rect.h, self.style.height) #,self.style.cell_height) + + dx = width-w.rect.w + dy = height-w.rect.h + w.rect.x = (self.style.align+1)*dx/2 + w.rect.y = (self.style.valign+1)*dy/2 + + return width,height + diff --git a/2-WordSwarm/pgu/gui/textarea.py b/2-WordSwarm/pgu/gui/textarea.py new file mode 100644 index 0000000..92c76c9 --- /dev/null +++ b/2-WordSwarm/pgu/gui/textarea.py @@ -0,0 +1,286 @@ +""" +""" +import pygame +from pygame.locals import * + +from .const import * +from . import widget + +class TextArea(widget.Widget): + """A multi-line text input. + + Example: + w = TextArea(value="Cuzco the Goat",size=20) + w = TextArea("Marbles") + w = TextArea("Groucho\nHarpo\nChico\nGummo\nZeppo\n\nMarx", 200, 400, 12) + + """ + def __init__(self,value="",width = 120, height = 30, size=20,**params): + params.setdefault('cls','input') + params.setdefault('width', width) + params.setdefault('height', height) + + widget.Widget.__init__(self,**params) + self.value = value # The value of the TextArea + self.pos = len(str(value)) # The position of the cursor + self.vscroll = 0 # The number of lines that the TextArea is currently scrolled + self.font = self.style.font # The font used for rendering the text + self.cursor_w = 2 # Cursor width (NOTE: should be in a style) + w,h = self.font.size("e"*size) + if not self.style.height: self.style.height = h + if not self.style.width: self.style.width = w + +## BUG: This causes textarea to grow every time table._Table_td calculates its +## size. +## def resize(self,width=None,height=None): +## if (width != None) and (height != None): +## print 'TextArea RESIZE' +## self.rect = pygame.Rect(self.rect.x, self.rect.y, width, height) +## return self.rect.w, self.rect.h + + def paint(self,s): + + # TODO: What's up with this 20 magic number? It's the margin of the left and right sides, but I'm not sure how this should be gotten other than by trial and error. + max_line_w = self.rect.w - 20 + + # Update the line allocation for the box's value + self.doLines(max_line_w) + + # Make sure that the vpos and hpos of the cursor is set properly + self.updateCursorPos() + + # Make sure that we're scrolled vertically such that the cursor is visible + if (self.vscroll < 0): + self.vscroll = 0 + if (self.vpos < self.vscroll): + self.vscroll = self.vpos + elif ((self.vpos - self.vscroll + 1) * self.line_h > self.rect.h): + self.vscroll = - (self.rect.h / self.line_h - self.vpos - 1) + + # Blit each of the lines in turn + cnt = 0 + for line in self.lines: + line_pos = (0, (cnt - self.vscroll) * self.line_h) + if (line_pos[1] >= 0) and (line_pos[1] < self.rect.h): + s.blit( self.font.render(line, 1, self.style.color), line_pos ) + cnt += 1 + + # If the textarea is focused, then also show the cursor + if self.container.myfocus is self: + r = self.getCursorRect() + s.fill(self.style.color,r) + + # This function updates self.vpos and self.hpos based on self.pos + def updateCursorPos(self): + self.vpos = 0 # Reset the current line that the cursor is on + self.hpos = 0 + + line_cnt = 0 + char_cnt = 0 + + for line in self.lines: + line_char_start = char_cnt # The number of characters at the start of the line + + # Keep track of the character count for words + char_cnt += len(line) + + # If our cursor count is still less than the cursor position, then we can update our cursor line to assume that it's at least on this line + if (char_cnt > self.pos): + self.vpos = line_cnt + self.hpos = self.pos - line_char_start + + break # Now that we know where our cursor is, we exit the loop + + line_cnt += 1 + + if (char_cnt <= self.pos) and (len(self.lines) > 0): + self.vpos = len(self.lines) - 1 + self.hpos = len(self.lines[ self.vpos ] ) + + # Returns a rectangle that is of the size and position of where the cursor is drawn + def getCursorRect(self): + lw = 0 + if (len(self.lines) > 0): + lw, lh = self.font.size( self.lines[ self.vpos ][ 0:self.hpos ] ) + + r = pygame.Rect(lw, (self.vpos - self.vscroll) * self.line_h, self.cursor_w, self.line_h) + return r + + # This function sets the cursor position according to an x/y value (such as by from a mouse click) + def setCursorByXY(self, pos): + (x, y) = pos + self.vpos = ((int) (y / self.line_h)) + self.vscroll + if (self.vpos >= len(self.lines)): + self.vpos = len(self.lines) - 1 + + currentLine = self.lines[ self.vpos ] + + for cnt in range(0, len(currentLine) ): + self.hpos = cnt + lw, lh = self.font.size( currentLine[ 0:self.hpos + 1 ] ) + if (lw > x): + break + + lw, lh = self.font.size( currentLine ) + if (lw < x): + self.hpos = len(currentLine) + + self.setCursorByHVPos() + + # This function sets the cursor position by the horizontal/vertical cursor position. + def setCursorByHVPos(self): + line_cnt = 0 + char_cnt = 0 + + for line in self.lines: + line_char_start = char_cnt # The number of characters at the start of the line + + # Keep track of the character count for words + char_cnt += len(line) + + # If we're on the proper line + if (line_cnt == self.vpos): + # Make sure that we're not trying to go over the edge of the current line + if ( self.hpos > len(line) ): + self.hpos = len(line) - 1 + # Set the cursor position + self.pos = line_char_start + self.hpos + break # Now that we've set our cursor position, we exit the loop + + line_cnt += 1 + + # Splits up the text found in the control's value, and assigns it into the lines array + def doLines(self, max_line_w): + self.line_h = 10 + self.lines = [] # Create an empty starter list to start things out. + + inx = 0 + line_start = 0 + while inx >= 0: + # Find the next breakable whitespace + # HACK: Find a better way to do this to include tabs and system characters and whatnot. + prev_word_start = inx # Store the previous whitespace + spc_inx = self.value.find(' ', inx+1) + nl_inx = self.value.find('\n', inx+1) + + if (min(spc_inx, nl_inx) == -1): + inx = max(spc_inx, nl_inx) + else: + inx = min(spc_inx, nl_inx) + + # Measure the current line + lw, self.line_h = self.font.size( self.value[ line_start : inx ] ) + + # If we exceeded the max line width, then create a new line + if (lw > max_line_w): + #Fall back to the previous word start + self.lines.append(self.value[ line_start : prev_word_start + 1 ]) + line_start = prev_word_start + 1 + # TODO: Check for extra-long words here that exceed the length of a line, to wrap mid-word + + # If we reached the end of our text + if (inx < 0): + # Then make sure we added the last of the line + if (line_start < len( self.value ) ): + self.lines.append( self.value[ line_start : len( self.value ) ] ) + else: + self.lines.append('') + # If we reached a hard line break + elif (self.value[inx] == "\n"): + # Then make a line break here as well. + newline = self.value[ line_start : inx + 1 ] + newline = newline.replace("\n", " ") # HACK: We know we have a newline character, which doesn't print nicely, so make it into a space. Comment this out to see what I mean. + self.lines.append( newline ) + + line_start = inx + 1 + else: + # Otherwise, we just continue progressing to the next space + pass + + def _setvalue(self,v): + self.__dict__['value'] = v + self.send(CHANGE) + + def event(self,e): + used = None + if e.type == KEYDOWN: + used = True + if e.key == K_BACKSPACE: + if self.pos: + self._setvalue(self.value[:self.pos-1] + self.value[self.pos:]) + self.pos -= 1 + elif e.key == K_DELETE: + if len(self.value) > self.pos: + self._setvalue(self.value[:self.pos] + self.value[self.pos+1:]) + elif e.key == K_HOME: + # Find the previous newline + newPos = self.value.rfind('\n', 0, self.pos) + if (newPos >= 0): + self.pos = newPos + elif e.key == K_END: + # Find the previous newline + newPos = self.value.find('\n', self.pos, len(self.value) ) + if (newPos >= 0): + self.pos = newPos + elif e.key == K_LEFT: + if self.pos > 0: self.pos -= 1 +# used = True + elif e.key == K_RIGHT: + if self.pos < len(self.value): self.pos += 1 +# used = True + elif e.key == K_UP: + self.vpos -= 1 + self.setCursorByHVPos() + elif e.key == K_DOWN: + self.vpos += 1 + self.setCursorByHVPos() + # The following return/tab keys are standard for PGU widgets, but I took them out here to facilitate multi-line text editing +# elif e.key == K_RETURN: +# self.next() +# elif e.key == K_TAB: +# pass + else: + #c = str(e.unicode) + used = None + try: + if (e.key == K_RETURN): + c = "\n" + elif (e.key == K_TAB): + c = " " + else: + c = (e.unicode).encode('latin-1') + if c: + used = True + self._setvalue(self.value[:self.pos] + c + self.value[self.pos:]) + self.pos += len(c) + except: #ignore weird characters + pass + self.repaint() + elif e.type == MOUSEBUTTONDOWN: + self.setCursorByXY(e.pos) + self.repaint() + + elif e.type == FOCUS: + self.repaint() + elif e.type == BLUR: + self.repaint() + + self.pcls = "" + if self.container.myfocus is self: self.pcls = "focus" + + return used + + def __setattr__(self,k,v): + if k == 'value': + if v == None: v = '' + v = str(v) + self.pos = len(v) + _v = self.__dict__.get(k,NOATTR) + self.__dict__[k]=v + if k == 'value' and _v != NOATTR and _v != v: + self.send(CHANGE) + self.repaint() + +# The first version of this code was done by Clint Herron, and is a modified version of input.py (by Phil Hassey). +# It is under the same license as the rest of the PGU library. + diff --git a/2-WordSwarm/pgu/gui/theme.py b/2-WordSwarm/pgu/gui/theme.py new file mode 100644 index 0000000..cccbf80 --- /dev/null +++ b/2-WordSwarm/pgu/gui/theme.py @@ -0,0 +1,491 @@ +# theme.py + +""" +""" +import os, re +import pygame + +from .const import * +from . import widget +from . import surface +from .basic import parse_color, is_color + +__file__ = os.path.abspath(__file__) + +def _list_themes(dir): + d = {} + for entry in os.listdir(dir): + if os.path.exists(os.path.join(dir, entry, 'config.txt')): + d[entry] = os.path.join(dir, entry) + return d + +class Theme: + """Theme interface. + + If you wish to create your own theme, create a class with this interface, and + pass it to gui.App via gui.App(theme=MyTheme()). + + """ + def __init__(self,dirs='default'): + """Theme constructor. + + Keyword arguments: + dirs -- Name of the theme dir to load a theme from. May be an + absolute path to a theme, if pgu is not installed, or if you + created your own theme. May include several dirs in a list if + data is spread across several themes. + + Example: + theme = gui.Theme("default") + theme = gui.Theme(["mytheme","mytheme2"]) + + """ + self.config = {} + self._loaded = [] + self.cache = {} + self._preload(dirs) + pygame.font.init() + + def _preload(self,ds): + if not isinstance(ds, list): + ds = [ds] + for d in ds: + if d not in self._loaded: + self._load(d) + self._loaded.append(d) + + def _load(self, name): + #theme_dir = themes[name] + + #try to load the local dir, or absolute path + dnames = [name] + + #if the package isn't installed and people are just + #trying out the scripts or examples + dnames.append(os.path.join(os.path.dirname(__file__),"..","..","data","themes",name)) + + #if the package is installed, and the package is installed + #in /usr/lib/python2.3/site-packages/pgu/ + #or c:\python23\lib\site-packages\pgu\ + #the data is in ... lib/../share/ ... + dnames.append(os.path.join(os.path.dirname(__file__),"..","..","..","..","share","pgu","themes",name)) + dnames.append(os.path.join(os.path.dirname(__file__),"..","..","..","..","..","share","pgu","themes",name)) + dnames.append(os.path.join(os.path.dirname(__file__),"..","..","share","pgu","themes",name)) + for dname in dnames: + if os.path.isdir(dname): break + if not os.path.isdir(dname): + raise Exception('could not find theme '+name) + + fname = os.path.join(dname,"config.txt") + if os.path.isfile(fname): + try: + f = open(fname) + for line in f.readlines(): + args = line.strip().split() + + if len(args) < 3: + continue + + pcls = "" + (cls, attr, vals) = (args[0], args[1], args[2:]) + if (":" in cls): + (cls, pcls) = cls.split(":") + + self.config[cls, pcls, attr] = (dname, vals) + finally: + f.close() + fname = os.path.join(dname,"style.ini") + if os.path.isfile(fname): + import ConfigParser + cfg = ConfigParser.ConfigParser() + f = open(fname,'r') + cfg.readfp(f) + for section in cfg.sections(): + cls = section + pcls = '' + if cls.find(":")>=0: + cls,pcls = cls.split(":") + for attr in cfg.options(section): + vals = cfg.get(section,attr).strip().split() + self.config[cls,pcls,attr] = (dname, vals) + + image_extensions = (".gif", ".jpg", ".bmp", ".png", ".tga") + def _get(self, cls, pcls, attr): + key = (cls, pcls, attr) + if not key in self.config: + return + + if key in self.cache: + # This property is already in the cache + return self.cache[key] + + (dname, vals) = self.config[key] + + if (os.path.splitext(vals[0].lower())[1] in self.image_extensions): + # This is an image attribute + v = pygame.image.load(os.path.join(dname, vals[0])) + + elif (attr == "color" or attr == "background"): + # This is a color value + v = parse_color(vals[0]) + + elif (attr == "font"): + # This is a font value + name = vals[0] + size = int(vals[1]) + if (name.endswith(".ttf")): + # Load the font from a file + v = pygame.font.Font(os.path.join(dname, name), size) + else: + # Must be a system font + v = pygame.font.SysFont(name, size) + + else: + try: + v = int(vals[0]) + except: + v = vals[0] + self.cache[key] = v + return v + + def get(self,cls,pcls,attr): + """Interface method -- get the value of a style attribute. + + Arguments: + cls -- class, for example "checkbox", "button", etc. + pcls -- pseudo class, for example "hover", "down", etc. + attr -- attribute, for example "image", "background", "font", "color", etc. + + This method is called from [[gui-style]] + + """ + + if not self._loaded: + # Load the default theme + self._preload("default") + + o = (cls, pcls, attr) + + #if o in self.cache: + # return self.cache[o] + + v = self._get(cls, pcls, attr) + if v: + #self.cache[o] = v + return v + + v = self._get(cls, "", attr) + if v: + #self.cache[o] = v + return v + + v = self._get("default", "", attr) + if v: + #self.cache[o] = v + return v + + self.cache[o] = 0 + return 0 + + def box(self,w,s): + style = w.style + + c = (0,0,0) + if style.border_color != 0: c = style.border_color + w,h = s.get_width(),s.get_height() + + s.fill(c,(0,0,w,style.border_top)) + s.fill(c,(0,h-style.border_bottom,w,style.border_bottom)) + s.fill(c,(0,0,style.border_left,h)) + s.fill(c,(w-style.border_right,0,style.border_right,h)) + + + def getspacing(self,w): + # return the top, right, bottom, left spacing around the widget + if not hasattr(w,'_spacing'): #HACK: assume spacing doesn't change re pcls + s = w.style + xt = s.margin_top+s.border_top+s.padding_top + xr = s.padding_right+s.border_right+s.margin_right + xb = s.padding_bottom+s.border_bottom+s.margin_bottom + xl = s.margin_left+s.border_left+s.padding_left + w._spacing = xt,xr,xb,xl + return w._spacing + + + def resize(self,w,m): + # Returns the rectangle expanded in each direction + def expand_rect(rect, left, top, right, bottom): + return pygame.Rect(rect.x - left, + rect.y - top, + rect.w + left + right, + rect.h + top + bottom) + + def func(width=None,height=None): + s = w.style + + pt,pr,pb,pl = (s.padding_top,s.padding_right, + s.padding_bottom,s.padding_left) + bt,br,bb,bl = (s.border_top,s.border_right, + s.border_bottom,s.border_left) + mt,mr,mb,ml = (s.margin_top,s.margin_right, + s.margin_bottom,s.margin_left) + # Calculate the total space on each side + top = pt+bt+mt + right = pr+br+mr + bottom = pb+bb+mb + left = pl+bl+ml + ttw = left+right + tth = top+bottom + + ww,hh = None,None + if width != None: ww = width-ttw + if height != None: hh = height-tth + ww,hh = m(ww,hh) + + if width == None: width = ww + if height == None: height = hh + + #if the widget hasn't respected the style.width, + #style height, we'll add in the space for it... + width = max(width-ttw, ww, w.style.width) + height = max(height-tth, hh, w.style.height) + + #width = max(ww,w.style.width-tw) + #height = max(hh,w.style.height-th) + + r = pygame.Rect(left,top,width,height) + + w._rect_padding = expand_rect(r, pl, pt, pr, pb) + w._rect_border = expand_rect(w._rect_padding, bl, bt, br, bb) + w._rect_margin = expand_rect(w._rect_border, ml, mt, mr, mb) + + # align it within it's zone of power. + rect = pygame.Rect(left, top, ww, hh) + dx = width-rect.w + dy = height-rect.h + rect.x += (w.style.align+1)*dx/2 + rect.y += (w.style.valign+1)*dy/2 + + w._rect_content = rect + + return (w._rect_margin.w, w._rect_margin.h) + return func + + + def paint(self,w,m): + def func(s): +# if w.disabled: +# if not hasattr(w,'_disabled_bkgr'): +# w._disabled_bkgr = s.convert() +# orig = s +# s = w._disabled_bkgr.convert() + +# if not hasattr(w,'_theme_paint_bkgr'): +# w._theme_paint_bkgr = s.convert() +# else: +# s.blit(w._theme_paint_bkgr,(0,0)) +# +# if w.disabled: +# orig = s +# s = w._theme_paint_bkgr.convert() + + if w.disabled: + if (not (hasattr(w,'_theme_bkgr') and + w._theme_bkgr.get_width() == s.get_width() and + w._theme_bkgr.get_height() == s.get_height())): + w._theme_bkgr = s.copy() + orig = s + s = w._theme_bkgr + s.fill((0,0,0,0)) + s.blit(orig,(0,0)) + + if w.background: + w.background.paint(surface.subsurface(s,w._rect_border)) + + self.box(w,surface.subsurface(s,w._rect_border)) + r = m(surface.subsurface(s,w._rect_content)) + + if w.disabled: + s.set_alpha(128) + orig.blit(s,(0,0)) + +# if w.disabled: +# orig.blit(w._disabled_bkgr,(0,0)) +# s.set_alpha(128) +# orig.blit(s,(0,0)) + + w._painted = True + return r + return func + + def event(self,w,m): + def func(e): + rect = w._rect_content + if (not rect): + # This should never be the case, but it sometimes happens that _rect_content isn't + # set before a mouse event is received. In this case we'll ignore the event. + return m(e) + + if e.type == MOUSEBUTTONUP or e.type == MOUSEBUTTONDOWN: + sub = pygame.event.Event(e.type,{ + 'button':e.button, + 'pos':(e.pos[0]-rect.x,e.pos[1]-rect.y)}) + elif e.type == CLICK: + sub = pygame.event.Event(e.type,{ + 'button':e.button, + 'pos':(e.pos[0]-rect.x,e.pos[1]-rect.y)}) + elif e.type == MOUSEMOTION: + sub = pygame.event.Event(e.type,{ + 'buttons':e.buttons, + 'pos':(e.pos[0]-rect.x,e.pos[1]-rect.y), + 'rel':e.rel}) + else: + sub = e + return m(sub) + + return func + + def update(self,w,m): + def func(s): + if w.disabled: return [] + r = m(surface.subsurface(s,w._rect_content)) + if type(r) == list: + dx,dy = w._rect_content.topleft + for rr in r: + rr.x,rr.y = rr.x+dx,rr.y+dy + return r + return func + + def open(self,w,m): + def func(widget=None,x=None,y=None): + if not hasattr(w,'_rect_content'): + # HACK: so that container.open won't resize again! + w.rect.w,w.rect.h = w.resize() + rect = w._rect_content + ##print w.__class__.__name__, rect + if x != None: x += rect.x + if y != None: y += rect.y + return m(widget,x,y) + return func + + #def open(self,w,m): + # def func(widget=None): + # return m(widget) + # return func + + def decorate(self,widget,level): + """Interface method -- decorate a widget. + + The theme system is given the opportunity to decorate a widget + methods at the end of the Widget initializer. + + Arguments: + widget -- the widget to be decorated + level -- the amount of decoration to do, False for none, True for + normal amount, 'app' for special treatment of App objects. + + """ + + w = widget + if level == False: return + + if type(w.style.background) != int: + w.background = Background(w,self) + + if level == 'app': return + + for k,v in list(w.style.__dict__.items()): + if k in ('border','margin','padding'): + for kk in ('top','bottom','left','right'): + setattr(w.style,'%s_%s'%(k,kk),v) + + w.paint = self.paint(w,w.paint) + w.event = self.event(w,w.event) + w.update = self.update(w,w.update) + w.resize = self.resize(w,w.resize) + w.open = self.open(w,w.open) + + def render(self,s,box,r): + """Interface method - render a special widget feature. + + Arguments: + s -- a pygame surface + box -- box data, a value returned from Theme.get, typically a surface + r -- pygame.Rect with the size that the box data should be rendered + + """ + + if box == 0: return + + if is_color(box): + s.fill(box,r) + return + + x,y,w,h=r.x,r.y,r.w,r.h + ww,hh=int(box.get_width()/3),int(box.get_height()/3) + xx,yy=x+w,y+h + src = pygame.rect.Rect(0,0,ww,hh) + dest = pygame.rect.Rect(0,0,ww,hh) + + s.set_clip(pygame.Rect(x+ww,y+hh,w-ww*2,h-hh*2)) + src.x,src.y = ww,hh + for dest.y in range(y+hh,yy-hh,hh): + for dest.x in range(x+ww,xx-ww,ww): s.blit(box,dest,src) + + s.set_clip(pygame.Rect(x+ww,y,w-ww*3,hh)) + src.x,src.y,dest.y = ww,0,y + for dest.x in range(x+ww,xx-ww*2,ww): s.blit(box,dest,src) + dest.x = xx-ww*2 + s.set_clip(pygame.Rect(x+ww,y,w-ww*2,hh)) + s.blit(box,dest,src) + + s.set_clip(pygame.Rect(x+ww,yy-hh,w-ww*3,hh)) + src.x,src.y,dest.y = ww,hh*2,yy-hh + for dest.x in range(x+ww,xx-ww*2,ww): s.blit(box,dest,src) + dest.x = xx-ww*2 + s.set_clip(pygame.Rect(x+ww,yy-hh,w-ww*2,hh)) + s.blit(box,dest,src) + + s.set_clip(pygame.Rect(x,y+hh,xx,h-hh*3)) + src.y,src.x,dest.x = hh,0,x + for dest.y in range(y+hh,yy-hh*2,hh): s.blit(box,dest,src) + dest.y = yy-hh*2 + s.set_clip(pygame.Rect(x,y+hh,xx,h-hh*2)) + s.blit(box,dest,src) + + s.set_clip(pygame.Rect(xx-ww,y+hh,xx,h-hh*3)) + src.y,src.x,dest.x=hh,ww*2,xx-ww + for dest.y in range(y+hh,yy-hh*2,hh): s.blit(box,dest,src) + dest.y = yy-hh*2 + s.set_clip(pygame.Rect(xx-ww,y+hh,xx,h-hh*2)) + s.blit(box,dest,src) + + s.set_clip() + src.x,src.y,dest.x,dest.y = 0,0,x,y + s.blit(box,dest,src) + + src.x,src.y,dest.x,dest.y = ww*2,0,xx-ww,y + s.blit(box,dest,src) + + src.x,src.y,dest.x,dest.y = 0,hh*2,x,yy-hh + s.blit(box,dest,src) + + src.x,src.y,dest.x,dest.y = ww*2,hh*2,xx-ww,yy-hh + s.blit(box,dest,src) + + +class Background(widget.Widget): + def __init__(self,value,theme,**params): + params['decorate'] = False + widget.Widget.__init__(self,**params) + self.value = value + self.theme = theme + + def paint(self,s): + r = pygame.Rect(0,0,s.get_width(),s.get_height()) + v = self.value.style.background + if is_color(v): + s.fill(v) + else: + self.theme.render(s,v,r) + diff --git a/2-WordSwarm/pgu/gui/widget.py b/2-WordSwarm/pgu/gui/widget.py new file mode 100644 index 0000000..866d4f2 --- /dev/null +++ b/2-WordSwarm/pgu/gui/widget.py @@ -0,0 +1,347 @@ +"""This modules defines the Widget class, which is the base of the PGU widget +hierarchy.""" + +import pygame + +from . import pguglobals +from . import style + +class SignalCallback: + # The function to call + func = None + # The parameters to pass to the function (as a list) + params = None + +class Widget(object): + """Base class for all PGU graphical objects. + + Example - Creating your own Widget: + + class Draw(gui.Widget): + def paint(self,s): + # Paint the pygame.Surface + return + + def update(self,s): + # Update the pygame.Surface and return the update rects + return [pygame.Rect(0,0,self.rect.w,self.rect.h)] + + def event(self,e): + # Handle the pygame.Event + return + + def resize(self,width=None,height=None): + # Return the width and height of this widget + return 256,256 + """ + + # The name of the widget (or None if not defined) + name = None + # The container this widget belongs to + container = None + # Whether this widget has been painted yet + _painted = False + # The widget used to paint the background + background = None + # ... + _rect_content = None + # A dictionary of signal callbacks, hashed by signal ID + connects = None + + def __init__(self, **params): + """Create a new Widget instance given the style parameters. + + Keyword arguments: + decorate -- whether to call theme.decorate(self) to allow the + theme a chance to decorate the widget. (default is true) + style -- a dict of style parameters. + x, y -- position parameters + width, height -- size parameters + align, valign -- alignment parameters, passed along to style + font -- the font to use with this widget + color -- the color property, if applicable + background -- the widget used to paint the background + cls -- class name as used by Theme + name -- name of widget as used by Form. If set, will call + form.add(self,name) to add the widget to the most recently + created Form. + focusable -- True if this widget can receive focus via Tab, etc. + (default is True) + disabled -- True of this widget is disabled (defaults is False) + value -- initial value + + """ + #object.Object.__init__(self) + self.connects = {} + params.setdefault('decorate',True) + params.setdefault('style',{}) + params.setdefault('focusable',True) + params.setdefault('disabled',False) + + self.focusable = params['focusable'] + self.disabled = params['disabled'] + + self.rect = pygame.Rect(params.get('x',0), + params.get('y',0), + params.get('width',0), + params.get('height',0)) + + s = params['style'] + #some of this is a bit "theme-ish" but it is very handy, so these + #things don't have to be put directly into the style. + for att in ('align','valign','x','y','width','height','color','font','background'): + if att in params: s[att] = params[att] + self.style = style.Style(self,s) + + self.cls = 'default' + if 'cls' in params: self.cls = params['cls'] + if 'name' in params: + from . import form + self.name = params['name'] + if form.Form.form: + form.Form.form.add(self) + self.form = form.Form.form + if 'value' in params: self.value = params['value'] + self.pcls = "" + + if params['decorate'] != False: + if (not pguglobals.app): + # TODO - fix this somehow + from . import app + app.App() + pguglobals.app.theme.decorate(self,params['decorate']) + + def focus(self): + """Focus this Widget.""" + if self.container: + if self.container.myfocus != self: ## by Gal Koren + self.container.focus(self) + + def blur(self): + """Blur this Widget.""" + if self.container: self.container.blur(self) + + def open(self): + """Open this widget as a modal dialog.""" + #if getattr(self,'container',None) != None: self.container.open(self) + pguglobals.app.open(self) + + def close(self, w=None): + """Close this widget, if it is currently an open dialog.""" + #if getattr(self,'container',None) != None: self.container.close(self) + if (not w): + w = self + pguglobals.app.close(w) + + def is_open(self): + return (self in pguglobals.app.windows) + + def is_hovering(self): + """Returns true if the mouse is hovering over this widget.""" + if self.container: + return (self.container.myhover is self) + return False + + def resize(self,width=None,height=None): + """Resize this widget and all sub-widgets, returning the new size. + + This should be implemented by a subclass. + + """ + return (self.style.width, self.style.height) + + def chsize(self): + """Signal that this widget has changed its size.""" + + if (not self._painted): + return + + if (not self.container): + return + + if (pguglobals.app): + pguglobals.app.chsize() + + def update(self,s): + """Updates the surface and returns a rect list of updated areas + + This should be implemented by a subclass. + + """ + return + + def paint(self,s): + """Render this widget onto the given surface + + This should be implemented by a subclass. + + """ + return + + def repaint(self): + """Request a repaint of this Widget.""" + if self.container: self.container.repaint(self) + + def repaintall(self): + """Request a repaint of all Widgets.""" + if self.container: self.container.repaintall() + + def reupdate(self): + """Request a reupdate of this Widget.""" + if self.container: self.container.reupdate(self) + + def next(self): + """Pass focus to next Widget. + + Widget order determined by the order they were added to their container. + + """ + if self.container: self.container.next(self) + + def previous(self): + """Pass focus to previous Widget. + + Widget order determined by the order they were added to their container. + + """ + + if self.container: self.container.previous(self) + + def get_abs_rect(self): + """Returns the absolute rect of this widget on the App screen.""" + x, y = self.rect.x, self.rect.y + cnt = self.container + while cnt: + x += cnt.rect.x + y += cnt.rect.y + if cnt._rect_content: + x += cnt._rect_content.x + y += cnt._rect_content.y + cnt = cnt.container + return pygame.Rect(x, y, self.rect.w, self.rect.h) + + def connect(self,code,func,*params): + """Connect an event code to a callback function. + + Note that there may be multiple callbacks per event code. + + Arguments: + code -- event type + fnc -- callback function + *values -- values to pass to callback. + + Please note that callbacks may also have "magicaly" parameters. + Such as: + + _event -- receive the event + _code -- receive the event code + _widget -- receive the sending widget + + Example: + def onclick(value): + print 'click', value + + w = Button("PGU!") + w.connect(gui.CLICK,onclick,'PGU Button Clicked') + + """ + if (not code in self.connects): + self.connects[code] = [] + for cb in self.connects[code]: + if (cb.func == func): + # Already connected to this callback function + return + # Wrap the callback function and add it to the list + cb = SignalCallback() + cb.func = func + cb.params = params + self.connects[code].append(cb) + + # Remove signal handlers from the given event code. If func is specified, + # only those handlers will be removed. If func is None, all handlers + # will be removed. + def disconnect(self, code, func=None): + if (not code in self.connects): + return + if (not func): + # Remove all signal handlers + del self.connects[code] + else: + # Remove handlers that call 'func' + n = 0 + callbacks = self.connects[code] + while (n < len(callbacks)): + if (callbacks[n].func == func): + # Remove this callback + del callbacks[n] + else: + n += 1 + + def send(self,code,event=None): + """Send a code, event callback trigger.""" + if (not code in self.connects): + return + # Trigger all connected signal handlers + for cb in self.connects[code]: + func = cb.func + values = list(cb.params) + + # Attempt to be compatible with previous versions of python + try: + code = func.__code__ + except: + code = func.func_code + + nargs = code.co_argcount + names = list(code.co_varnames)[:nargs] + + # If the function is bound to an instance, remove the first argument name. Again + # we keep compatibility with older versions of python. + if (hasattr(func, "__self__") and hasattr(func.__self__, "__class__") or + hasattr(func,'im_class')): + names.pop(0) + + args = [] + magic = {'_event':event,'_code':code,'_widget':self} + for name in names: + if name in magic.keys(): + args.append(magic[name]) + elif len(values): + args.append(values.pop(0)) + else: + break + args.extend(values) + func(*args) + + def _event(self,e): + if self.disabled: return + self.send(e.type,e) + return self.event(e) + + def event(self,e): + """Called when an event is passed to this object. + + Please note that if you use an event, returning the value True + will stop parent containers from also using the event. (For example, if + your widget handles TABs or arrow keys, and you don't want those to + also alter the focus.) + + This should be implemented by a subclass. + + """ + return + + def get_toplevel(self): + """Returns the top-level widget (usually the Desktop) by following the + chain of 'container' references.""" + top = self + while (top.container): + top = top.container + return top + + def collidepoint(self, pos): + """Test if the given point hits this widget. Over-ride this function + for more advanced collision testing.""" + return self.rect.collidepoint(pos) + + diff --git a/2-WordSwarm/test.py b/2-WordSwarm/test.py new file mode 100644 index 0000000..abb2915 --- /dev/null +++ b/2-WordSwarm/test.py @@ -0,0 +1,25 @@ +import pygame, pygame.examples, time, os +pygame.init() +main_dir = os.path.split(os.path.abspath(pygame.examples.__file__))[0] +data_dir = os.path.join(main_dir, 'data') +image_path = os.path.join(data_dir, "arraydemo.bmp") + +screen = pygame.display.set_mode((640, 480), 0, 32) +slice_h = 40 +test_tile = pygame.image.load(image_path).convert() +slicescaled = pygame.Surface((1, slice_h)) + +going = True +while going: + going = pygame.QUIT not in [e.type for e in pygame.event.get()] + + screen.fill((0, 0, 0)) #clear screen + for x in xrange(100): + texoffset = x + slicepiece = pygame.Surface((1, 128)) + slicepiece.blit(test_tile, (0,0), (texoffset, 0, 1, 128)) + pygame.transform.scale(slicepiece, (1, slice_h), slicescaled) + screen.blit(slicescaled, (x, 10)) + pygame.display.flip() + pygame.time.wait(10) +pygame.quit() \ No newline at end of file diff --git a/2-WordSwarm/wordSwarm.py b/2-WordSwarm/wordSwarm.py new file mode 100644 index 0000000..60f7bd7 --- /dev/null +++ b/2-WordSwarm/wordSwarm.py @@ -0,0 +1,371 @@ +# -*- coding: utf-8 -*- +""" + + This is the main WordSwarm program. It reads in a CSV file + that contains a first column of words and subsequent columns + with the words' frequency with each date specified by the + first row of the CSV file. + + Arguments: + -t + : Title to display in output. Quotes are required if + the title has more than one word + -i <inputfile> + : CSV file to read (default: nGrams2plot.csv) + -s + : Should frames be saved as image files (default: false) + Default directory is '../3-Postprocessing/frames/' + if the -d argument is not used. + -d <output directory of frames> + : Directory to save output frame images. + -s not required when -d is used + It is best practice to use quotes. + A final '/' should be added to the directory + -m <max word height> + : A value that determines how big words are allowed to get. + The default value is 2. Typically between 5-10. + Tweak this parameter until the wordSwarm is large + enough to see, yet doesn't overflow the screen. + + + This file is part of WordSwarm. + + WordSwarm is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + WordSwarm is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + Copyright 2014 Michael Kane + + PyBox2D Framework: + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + C++ version Copyright (c) 2006-2007 Erin Catto http://www.box2d.org + Python version by Ken Lauer / sirkne at gmail dot com + +""" + +import sys, os, getopt # For system operations and argument parsing +import random +import re + +# Import the PyBox2D/PyGame framework +sys.path.append('./framework') +from framework import * # The abstracted PyBox2D framework +import pygame # The PyGame 'sub-framework' +from pygame.locals import * # Some parts of the PyGame framework to import locally + +# Import WordSwarm modules +from wsWordObj import * # Module with a class for representing words +from wsNGrams import * # Module for storing nGram time histories + +import pdb, gc, objgraph + +class WordSwarm (Framework): + + # Settings + name="WordSarm" + saveFrames = False + csvName = 'nGrams2plot.csv' + saveFolder = '../3-Postprocessing/frames/' + + frameN = 0; + bodies = []; + joints = []; + wordObjs = [] + sun = [] + wordHue = (-1, -1) + + # Size of words (m) + maxSize = 1 + minSize = 0.1 + + # Sun strength + frequency = 0.1 + damping = 2 + + def __init__(self, argv): + + # Initialize pygame/pybox2d framework/world + super(WordSwarm, self).__init__() + self.world.gravity = (0,0); + startDateStr = None + endDateStr = None + + # Parse arguments + try: + opts, args = getopt.getopt(argv, + "hst:i:d:m:c:b:e:",["ifile="]) + except getopt.GetoptError: + print 'Invalid argument' + print(argv) + print('try:') + print 'wordSwarm.py -s -t <title> -i <inputfile> -d <outputFolder> -m <maxWordHeight> -c <HexHue1_HexHue2> -b <startDate YYYYMMDD> -e <endDate YYYYMMDD>' + sys.exit(2) + + for opt, arg in opts: + if opt == '-h': + print 'wordSwarm.py -s -t <title> -i <inputfile> -d <outputFolder> -m <maxWordHeight> -c <HexHue1_HexHue2> -b <startDate YYYYMMDD> -e <endDate YYYYMMDD>' + sys.exit() + elif opt in ("-i", "--ifile"): + + print('Reading csv: %s' % arg) + self.csvName = arg + + elif opt in ("-d"): + self.saveFrames = True + self.saveFolder = arg + print('Saving frames to %s' % self.saveFolder) + + elif opt in ("-s"): + self.saveFrames = True + print('Saving frames to %s' % self.saveFolder) + + elif opt in ("-t"): + + print('WordSwarm title: %s' % arg) + self.name = arg + + elif opt in ("-m"): + self.maxSize = int(arg) + print('Max word height set to: %d' % self.maxSize) + + elif opt in ("-c"): + self.wordHue = (int(arg[0:2],16), int(arg[3:5],16)) + print('Words will have hues %d or %d' % (self.wordHue[0], self.wordHue[1])) + + elif opt in ("-b"): + startDateStr = arg + print('Starting animation at %s' % startDateStr) + + elif opt in ("-e"): + endDateStr = arg + print('Ending animation on %s' % endDateStr) + + # Create output directory if required + if self.saveFrames: + if not os.path.exists(self.saveFolder): + os.makedirs(self.saveFolder) + else: + self.purge(self.saveFolder, '.*') + + # Create ngrams database + self.nGrams = wsNGrams(self.csvName, startDateStr, endDateStr) + + # The centre of the universe + self.sun.append(self.world.CreateStaticBody( + position=b2Vec2(random.uniform( + -45,65),0))); + + box_half_size = (0.5, 0.5) + + # Place word objects + for word_k in range(0, self.nGrams.nWords): + + # The centre of the universe + self.sun.append(self.world.CreateStaticBody( + position=b2Vec2(random.uniform( + -45,65),0))); + + # Create word object + self.wordObjs.append(wsWordObj( + self.nGrams.words[word_k], self.wordHue)); + + # Determine initial box size + self.bodies.append(self.world.CreateDynamicBody( + position=(random.uniform(-60,70), + random.uniform(-40,40)), + fixtures=b2FixtureDef( + shape=b2PolygonShape(box=(box_half_size[0] / self.wordObjs[-1].paddedAR,box_half_size[0]))) + )) + + # Link word object to sun + self.joints.append( + self.world.CreateJoint( + b2DistanceJointDef( + frequencyHz = self.frequency, + dampingRatio = self.damping, + bodyA=self.sun[len(self.bodies)], + bodyB=self.bodies[-1], + localAnchorA=(0,0), + localAnchorB=(0,0), + length = 0.5 + ) + ) + ) + + # Removes files from a directory matching a pattern + def purge(self, dir, pattern): + for f in os.listdir(dir): + if re.search(pattern, f): + os.remove(os.path.join(dir, f)) + + # Converts a size in (m) to a size in (px) + def convertWorld2Screen(self, size_m): + + # Generate faux coordinates in (m) + coord_m1 = size_m + coord_m2 = list(size_m) + coord_m2[0] = -coord_m2[0] + coord_m2[1] = -coord_m2[1] + + # Convert faux coordinates to (px) + coord_px1 = self.renderer.to_screen(coord_m1) + coord_px2 = self.renderer.to_screen(coord_m2) + + # Calculate size from new coordinates + size_p = [abs(coord_px1[0] - coord_px2[0]), + abs(coord_px1[1] - coord_px2[1])] + + return size_p + + # Draw the date progress bar + #@TODO Scale text and line weight with screen size + def Draw_Date(self, date_k): + + color = (255,255,255) + dateTxt = freetype.Font(None) + dateTxt.size = 18 + dateTxt.fgcolor = color + + top = (int(self.screen.get_height()*0.0625),int(self.screen.get_height()*0.0625)) + bot = (int(self.screen.get_height()*0.0625),int(self.screen.get_height()*(1-0.0625))) + + self.screen.blit(dateTxt.render(self.name)[0], + (self.screen.get_height()*0.03, self.screen.get_height()*0.03)) + + pygame.draw.line(self.screen, color, top, bot, 4) + pygame.draw.line(self.screen, color, (top[0]-4, top[1]), (top[0]+4, top[1]), 4) + pygame.draw.line(self.screen, color, (bot[0]-4, bot[1]), (bot[0]+4, bot[1]), 4) + + + self.screen.blit(dateTxt.render(self.nGrams.dates[0].strftime('%b %Y'))[0], + (top[0]+20, top[1]-6)) + self.screen.blit(dateTxt.render(self.nGrams.dates[-1].strftime('%b %Y'))[0], + (bot[0]+20, bot[1]-6)) + + progress = ( (self.nGrams.dates[date_k] - self.nGrams.dates[0]).total_seconds() / + (self.nGrams.dates[-1] - self.nGrams.dates[0]).total_seconds() ) + pos = (top[0] + 1, int((bot[1] - top[1]) * progress + top[1]) ) + pygame.draw.circle(self.screen, color, pos, 8) + self.screen.blit(dateTxt.render(self.nGrams.dates[date_k].strftime('%b %Y'))[0], + (pos[0]+20, pos[1]-6)) + + def Step(self, settings): + + self.screen.fill((0,0,0)) + + self.frameN = self.frameN+1; + + # Update ngram date every n-frames + nFrames = 30 + date_k = int(self.frameN / nFrames) + 1 # Date moving towards + phase = (self.frameN % nFrames) / float(nFrames) # (0-1) way to new date + + # Stop if at the end of the dataset + if date_k == self.nGrams.nDates: + print('WordSwarm animation complete') + print('Hope you enjoyed the show!') + exit() + + dateTxt = freetype.Font(None) + dateTxt.size = 12 + dateTxt.fgcolor = (255,255,255) + + self.Draw_Date(date_k) # Draw the date + + # Update size of each word + #@TODO There is a memory leak in creating the new bodies (it doesn't delete the old ones) + for word_k in range(0, self.nGrams.nWords): + + # Calculate word sizes + if phase == 1: + newSize = (0,0) + + newSize[1] = (self.maxSize - self.minSize) * (self.nGrams.counts[word_k][date_k-1] / float(self.nGrams.maxCount)) + self.minSize + + newSize[0] = newSize[1] / self.wordObjs[word_k].paddedAR + + self.wordObjs[word_k].boxSize = self.convertWorld2Screen( newSize ) + else: + newSize = list((0,0)) + newSize[1] = (self.maxSize - self.minSize) * (self.nGrams.counts[word_k][date_k] / float(self.nGrams.maxCount)) + self.minSize + newSize[0] = newSize[1] / self.wordObjs[word_k].paddedAR + + oldSize = list((0,0)) + oldSize[1] = (self.maxSize - self.minSize) * (self.nGrams.counts[word_k][date_k-1] / float(self.nGrams.maxCount)) + self.minSize + oldSize[0] = oldSize[1] / self.wordObjs[word_k].paddedAR + + size = list((0,0)) + size[0] = (newSize[0] - oldSize[0]) * phase + oldSize[0] + size[1] = (newSize[1] - oldSize[1]) * phase + oldSize[1] + + self.wordObjs[word_k].boxSize = self.convertWorld2Screen( size ) + + # Destroy old body + pos = self.bodies[word_k].position; + vel = self.bodies[word_k].linearVelocity; + self.world.DestroyJoint(self.joints[word_k]) + self.bodies[word_k].DestroyFixture(self.bodies[word_k].fixtures[0]) + self.world.DestroyBody(self.bodies[word_k]) + self.joints[word_k] = None + self.bodies[word_k] = None + + # Place new body + self.bodies[word_k] = self.world.CreateDynamicBody( + position=pos, + linearVelocity=vel, + mass=(4*newSize[0]*newSize[1]), + fixtures=b2FixtureDef( + shape=b2PolygonShape(box=newSize) + ) + ) + + # Connect new body to its sun + self.joints[word_k] = self.world.CreateJoint( + b2DistanceJointDef( + frequencyHz = self.frequency, + dampingRatio = self.damping, + bodyA=self.sun[word_k], + bodyB=self.bodies[word_k], + localAnchorA=(0,0), + localAnchorB=(0,0), + length = 0.5 + ) + ) + + # Redraw word in new shape + pos = self.renderer.to_screen(self.bodies[word_k].position); + self.wordObjs[word_k].Draw(self.screen, pos) + + # Save frames to create film + if self.saveFrames: + pygame.image.save(self.screen, + self.saveFolder + int(self.frameN).__format__('') + + '.png') + + + + Framework.Step(self, settings); + + +if __name__=="__main__": + main(WordSwarm,sys.argv[1:]) diff --git a/2-WordSwarm/wsColorer.py b/2-WordSwarm/wsColorer.py new file mode 100644 index 0000000..e7a5683 --- /dev/null +++ b/2-WordSwarm/wsColorer.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +""" + + This module is used to generate the colours of the text + for the wordSwarm. + + @TODO Arguements for fixed hues and for white backgrounds + + This code was inspired by the colorer used in WordCram + available at http://wordcram.org/ + + This file is part of WordSwarm. + + WordSwarm is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + WordSwarm is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + Copyright 2014 Michael Kane +""" + +import random +import colorsys + +class wsColorer(): + + def __init__(self, hues): + + # Initialize two hues that all words will be coloured with + self.hues = [-1, -1] + + if hues[0] == -1: + self.hues[0] = random.uniform(0,1) + else: + self.hues[0] = hues[0]/255.0 + + if hues[1] == -1: + self.hues[1] = random.uniform(0,1) + else: + self.hues[1] = hues[1]/255.0 + + def getColor(self): + + # Choose one of the two different hues, then select a + # saturation and a value that works well with the background + # color. Then convert to 0-255 RGB values + hue = self.hues[random.randint(0,1)] + sat = random.uniform(0,1) + val = random.uniform(0.5,1) + #val = random.uniform(0,0.5) + rgb = list(colorsys.hsv_to_rgb(hue, sat, val)) + rgb[0] = rgb[0] * 255 + rgb[1] = rgb[1] * 255 + rgb[2] = rgb[2] * 255 + + return rgb \ No newline at end of file diff --git a/2-WordSwarm/wsNGrams.py b/2-WordSwarm/wsNGrams.py new file mode 100644 index 0000000..ae3424a --- /dev/null +++ b/2-WordSwarm/wsNGrams.py @@ -0,0 +1,93 @@ +# -*- coding: utf-8 -*- +""" + + The module contains a class that is used to store all of the + nGrams and their time histories. This includes a list of words, + a list of dates, and a matrix of the word counts (or frequencies) + at each date. + + Dates in CSV file should be in the form of MM/DD/YYYY + + + This file is part of WordSwarm. + + WordSwarm is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + WordSwarm is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + Copyright 2014 Michael Kane +""" + +import csv +import datetime + +class wsNGrams: + words = [] # List of words + counts = [] # Matrix of word counts (or frequencies) + # [word index][Date index] + dates = [] # List of dates + nDates = 0 # Total number of dates + nWords = 0 # Total number of words + maxCount = 0 # Count of the word with the highest count + # in any given date-bin + + def __init__(self,fName, startDateStr, endDateStr): + + if startDateStr is None: + startdate = datetime.datetime.strptime('00010101','%Y%m%d'); + else: + startdate = datetime.datetime.strptime(startDateStr,'%Y%m%d'); + + if endDateStr is None: + enddate = datetime.datetime.strptime('99991231','%Y%m%d'); + else: + enddate = datetime.datetime.strptime(endDateStr,'%Y%m%d'); + + # Import data from CSV file + with open(fName, 'rb') as csvfile: + fNgrams = csv.reader(csvfile) # Open CSV file + rowN = 0 + for row in fNgrams: # Process each row in CSV file + + if rowN == 0: # Import dates + + startdateK = 0; + for dateStr in row[1:]: + if datetime.datetime.strptime(dateStr,'%m/%d/%Y') < startdate: + startdateK = startdateK+1 + else: + break; + + enddateK = 0; + for dateStr in row[1:]: + if datetime.datetime.strptime(dateStr,'%m/%d/%Y') < enddate: + enddateK = enddateK+1; + else: + break; + enddateK = enddateK-1; + + for dateStr in row[startdateK+1:enddateK+2]: + self.dates.append(datetime.datetime.strptime(dateStr,'%m/%d/%Y')) + + self.nDates = len(self.dates) + + elif rowN>0: # Import words and counts + + self.counts.append([0]*self.nDates) + self.words.append(row[0]) + + for countN in range(startdateK, enddateK+1): + count = float(row[countN+1]) + self.counts[rowN-2][countN-startdateK] = count + if count>self.maxCount: + self.maxCount = count + + rowN = rowN+1 + + self.nWords = len(self.words) \ No newline at end of file diff --git a/2-WordSwarm/wsWordObj.py b/2-WordSwarm/wsWordObj.py new file mode 100644 index 0000000..cac9218 --- /dev/null +++ b/2-WordSwarm/wsWordObj.py @@ -0,0 +1,83 @@ +# -*- coding: utf-8 -*- +""" + + The module contains a class for word objects. The object contains + the string containing the word, the word's colour, its aspect + ratio used for scaling, and bounding box size. There is also a + method for drawing the word to a position on the screen. + + The only thing to change here is the padding around each + word to add a little better visual clash protection. + + + This file is part of WordSwarm. + + WordSwarm is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + WordSwarm is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + Copyright 2014 Michael Kane +""" + +import sys + +# Import the PyBox2D/PyGame framework +sys.path.append('./framework') +from framework import * # The abstracted PyBox2D framework +import pygame # The PyGame 'sub-framework' +from pygame.locals import * # Some parts of the PyGame framework to import locally + +# Import WordSwarm modules +from wsColorer import * # Module for generating word colours + +try: # Try to import advanced freetype font module + import pygame.freetype as freetype +except ImportError: + print ("No FreeType support compiled") + sys.exit () + +class wsWordObj(freetype.Font): + + padding = 20; # The number of pixels around the text of the word + # to give a little better visual clash protection + #@TODO Create an option for this that can be import from a + # settings file and to scale with screen size. + + + + def __init__(self, string, hues): + super(wsWordObj, self).__init__(None) + + self.colorer = wsColorer(hues) # Initialize the colourer + + self.string = string # Assign the string + + # Determine aspect ratio using a big size + # to avoid rounding errors + self.size = 100 + self.fgcolor = list(self.colorer.getColor()) + self.render = self.render(self.string)[0] + + # Calculate aspect ratio of textbox with padding + self.boxSize = self.get_rect(self.string)[2:4] # Box size (px) + self.paddedAR = (self.boxSize[1] + self.padding) / (float(self.boxSize[0] + self.padding)) + self.paddedWScale = (self.boxSize[0] - self.padding) / float(self.boxSize[0]) + self.paddedHScale = (self.boxSize[1] - self.padding) / float(self.boxSize[1]) + + def Draw(self, screen, pos): + + # Draw the word in a box of width of newSize(x,y) (px) + newSize = list((0,0)) + newSize[0] = int(self.boxSize[0] * self.paddedWScale) + newSize[1] = int(self.boxSize[1] * self.paddedHScale) + scaledRender = pygame.transform.smoothscale(self.render, newSize) + pos = list(pos) + pos[0] = pos[0] - (newSize[0] / 2) + pos[1] = pos[1] - (newSize[1] / 2) + screen.blit(scaledRender, pos) diff --git a/3-Postprocessing/ffmpeg/README.txt b/3-Postprocessing/ffmpeg/README.txt new file mode 100644 index 0000000..4427ceb --- /dev/null +++ b/3-Postprocessing/ffmpeg/README.txt @@ -0,0 +1,101 @@ +This is a FFmpeg Win32 static build by Kyle Schwarz. + +Zeranoe's FFmpeg Builds Home Page: <http://ffmpeg.zeranoe.com/builds/> + +This build was compiled on: Apr 23 2014, at: 22:01:58 + +FFmpeg version: 2014-04-24 git-443936d + libavutil 52. 78.100 / 52. 78.100 + libavcodec 55. 59.100 / 55. 59.100 + libavformat 55. 37.101 / 55. 37.101 + libavdevice 55. 13.100 / 55. 13.100 + libavfilter 4. 4.100 / 4. 4.100 + libswscale 2. 6.100 / 2. 6.100 + libswresample 0. 18.100 / 0. 18.100 + libpostproc 52. 3.100 / 52. 3.100 + +This FFmpeg build was configured with: + --enable-gpl + --enable-version3 + --disable-w32threads + --enable-avisynth + --enable-bzlib + --enable-fontconfig + --enable-frei0r + --enable-gnutls + --enable-iconv + --enable-libass + --enable-libbluray + --enable-libcaca + --enable-libfreetype + --enable-libgsm + --enable-libilbc + --enable-libmodplug + --enable-libmp3lame + --enable-libopencore-amrnb + --enable-libopencore-amrwb + --enable-libopenjpeg + --enable-libopus + --enable-librtmp + --enable-libschroedinger + --enable-libsoxr + --enable-libspeex + --enable-libtheora + --enable-libtwolame + --enable-libvidstab + --enable-libvo-aacenc + --enable-libvo-amrwbenc + --enable-libvorbis + --enable-libvpx + --enable-libwavpack + --enable-libx264 + --enable-libx265 + --enable-libxavs + --enable-libxvid + --enable-decklink + --enable-zlib + +This build was compiled with the following external libraries: + bzip2 1.0.6 <http://bzip.org/> + Fontconfig 2.11.1 <http://freedesktop.org/wiki/Software/fontconfig> + Frei0r 20130909-git-10d8360 <http://frei0r.dyne.org/> + GnuTLS 3.2.13 <http://gnutls.org/> + libiconv 1.14 <http://gnu.org/software/libiconv/> + libass 0.10.2 <http://code.google.com/p/libass/> + libbluray 0.5.0 <http://videolan.org/developers/libbluray.html> + libcaca 0.99.beta18 <http://caca.zoy.org/wiki/libcaca> + FreeType 2.5.3 <http://freetype.sourceforge.net/> + GSM 1.0.13-4 <http://packages.debian.org/source/squeeze/libgsm> + iLBC 20120913-git-b5f9b10 <https://github.com/dekkers/libilbc/> + Modplug-XMMS 0.8.8.4 <http://modplug-xmms.sourceforge.net/> + LAME 3.99.5 <http://lame.sourceforge.net/> + OpenCORE AMR 0.1.3 <http://sourceforge.net/projects/opencore-amr/> + OpenJPEG 1.5.1 <http://www.openjpeg.org/> + Opus 1.1 <http://opus-codec.org/> + RTMPDump 20140302-git-79459a2 <http://rtmpdump.mplayerhq.hu/> + Schroedinger 1.0.11 <http://diracvideo.org/> + libsoxr 0.1.1 <http://sourceforge.net/projects/soxr/> + Speex 1.2rc1 <http://speex.org/> + Theora 1.1.1 <http://theora.org/> + TwoLAME 0.3.13 <http://twolame.org/> + vid.stab 0.98 <http://public.hronopik.de/vid.stab/> + VisualOn AAC 0.1.3 <https://github.com/mstorsjo/vo-aacenc> + VisualOn AMR-WB 0.1.2 <https://github.com/mstorsjo/vo-amrwbenc> + Vorbis 1.3.4 <http://vorbis.com/> + vpx 1.3.0 <http://webmproject.org/> + WavPack 4.70.0 <http://wavpack.com/> + x264 20140313-git-d6b4e63 <http://videolan.org/developers/x264.html> + x265 20140410-hg-83ccf2f1 <http://x265.org/> + XAVS svn-r55 <http://xavs.sourceforge.net/> + Xvid 1.3.2 <http://xvid.org/> + zlib 1.2.8 <http://zlib.net/> + +The source code for this FFmpeg build can be found at: <http://ffmpeg.zeranoe.com/builds/source/> + +This build was compiled on Debian jessie/sid (64-bit): <http://www.debian.org/> + +GCC 4.8.2 was used to compile this FFmpeg build: <http://gcc.gnu.org/> + +This build was compiled using the MinGW-w64 toolchain: <http://mingw-w64.sourceforge.net/> + +Licenses for each library can be found in the 'licenses' folder. diff --git a/3-Postprocessing/ffmpeg/bin/ffmpeg.exe b/3-Postprocessing/ffmpeg/bin/ffmpeg.exe new file mode 100644 index 0000000..b601b74 Binary files /dev/null and b/3-Postprocessing/ffmpeg/bin/ffmpeg.exe differ diff --git a/3-Postprocessing/ffmpeg/bin/ffplay.exe b/3-Postprocessing/ffmpeg/bin/ffplay.exe new file mode 100644 index 0000000..918d7cc Binary files /dev/null and b/3-Postprocessing/ffmpeg/bin/ffplay.exe differ diff --git a/3-Postprocessing/ffmpeg/bin/ffprobe.exe b/3-Postprocessing/ffmpeg/bin/ffprobe.exe new file mode 100644 index 0000000..37cc538 Binary files /dev/null and b/3-Postprocessing/ffmpeg/bin/ffprobe.exe differ diff --git a/3-Postprocessing/ffmpeg/doc/developer.html b/3-Postprocessing/ffmpeg/doc/developer.html new file mode 100644 index 0000000..5574068 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/developer.html @@ -0,0 +1,877 @@ +<!DOCTYPE html> +<html> +<!-- Created on April 23, 2014 by texi2html 1.82 --> +<!-- +texi2html was written by: + Lionel Cons <Lionel.Cons@cern.ch> (original author) + Karl Berry <karl@freefriends.org> + Olaf Bachmann <obachman@mathematik.uni-kl.de> + and many others. +Maintained by: Many creative people. +Send bugs and suggestions to <texi2html-bug@nongnu.org> + +--> +<head> +<title>FFmpeg documentation : Developer + + + + + + + + + + +
+
+ + +

Developer Documentation

+ + +

Table of Contents

+ + + +

1. Developers Guide

+ + +

1.1 Notes for external developers

+ +

This document is mostly useful for internal FFmpeg developers. +External developers who need to use the API in their application should +refer to the API doxygen documentation in the public headers, and +check the examples in ‘doc/examples’ and in the source code to +see how the public API is employed. +

+

You can use the FFmpeg libraries in your commercial program, but you +are encouraged to publish any patch you make. In this case the +best way to proceed is to send your patches to the ffmpeg-devel +mailing list following the guidelines illustrated in the remainder of +this document. +

+

For more detailed legal information about the use of FFmpeg in +external programs read the ‘LICENSE’ file in the source tree and +consult http://ffmpeg.org/legal.html. +

+ +

1.2 Contributing

+ +

There are 3 ways by which code gets into ffmpeg. +

    +
  • Submitting Patches to the main developer mailing list + see Submitting patches for details. +
  • Directly committing changes to the main tree. +
  • Committing changes to a git clone, for example on github.com or + gitorious.org. And asking us to merge these changes. +
+ +

Whichever way, changes should be reviewed by the maintainer of the code +before they are committed. And they should follow the Coding Rules. +The developer making the commit and the author are responsible for their changes +and should try to fix issues their commit causes. +

+

+

+

1.3 Coding Rules

+ + +

1.3.1 Code formatting conventions

+ +

There are the following guidelines regarding the indentation in files: +

+
    +
  • +Indent size is 4. + +
  • +The TAB character is forbidden outside of Makefiles as is any +form of trailing whitespace. Commits containing either will be +rejected by the git repository. + +
  • +You should try to limit your code lines to 80 characters; however, do so if +and only if this improves readability. +
+

The presentation is one inspired by ’indent -i4 -kr -nut’. +

+

The main priority in FFmpeg is simplicity and small code size in order to +minimize the bug count. +

+ +

1.3.2 Comments

+

Use the JavaDoc/Doxygen format (see examples below) so that code documentation +can be generated automatically. All nontrivial functions should have a comment +above them explaining what the function does, even if it is just one sentence. +All structures and their member variables should be documented, too. +

+

Avoid Qt-style and similar Doxygen syntax with ! in it, i.e. replace +//! with /// and similar. Also @ syntax should be employed +for markup commands, i.e. use @param and not \param. +

+
 
/**
+ * @file
+ * MPEG codec.
+ * @author ...
+ */
+
+/**
+ * Summary sentence.
+ * more text ...
+ * ...
+ */
+typedef struct Foobar {
+    int var1; /**< var1 description */
+    int var2; ///< var2 description
+    /** var3 description */
+    int var3;
+} Foobar;
+
+/**
+ * Summary sentence.
+ * more text ...
+ * ...
+ * @param my_parameter description of my_parameter
+ * @return return value description
+ */
+int myfunc(int my_parameter)
+...
+
+ + +

1.3.3 C language features

+ +

FFmpeg is programmed in the ISO C90 language with a few additional +features from ISO C99, namely: +

+
    +
  • +the ‘inline’ keyword; + +
  • +‘//’ comments; + +
  • +designated struct initializers (‘struct s x = { .i = 17 };’) + +
  • +compound literals (‘x = (struct s) { 17, 23 };’) +
+ +

These features are supported by all compilers we care about, so we will not +accept patches to remove their use unless they absolutely do not impair +clarity and performance. +

+

All code must compile with recent versions of GCC and a number of other +currently supported compilers. To ensure compatibility, please do not use +additional C99 features or GCC extensions. Especially watch out for: +

+
    +
  • +mixing statements and declarations; + +
  • +‘long long’ (use ‘int64_t’ instead); + +
  • +‘__attribute__’ not protected by ‘#ifdef __GNUC__’ or similar; + +
  • +GCC statement expressions (‘(x = ({ int y = 4; y; })’). +
+ + +

1.3.4 Naming conventions

+

All names should be composed with underscores (_), not CamelCase. For example, +‘avfilter_get_video_buffer’ is an acceptable function name and +‘AVFilterGetVideo’ is not. The exception from this are type names, like +for example structs and enums; they should always be in the CamelCase +

+

There are the following conventions for naming variables and functions: +

+
    +
  • +For local variables no prefix is required. + +
  • +For file-scope variables and functions declared as static, no prefix +is required. + +
  • +For variables and functions visible outside of file scope, but only used +internally by a library, an ff_ prefix should be used, +e.g. ‘ff_w64_demuxer’. + +
  • +For variables and functions visible outside of file scope, used internally +across multiple libraries, use avpriv_ as prefix, for example, +‘avpriv_aac_parse_header’. + +
  • +Each library has its own prefix for public symbols, in addition to the +commonly used av_ (avformat_ for libavformat, +avcodec_ for libavcodec, swr_ for libswresample, etc). +Check the existing code and choose names accordingly. +Note that some symbols without these prefixes are also exported for +retro-compatibility reasons. These exceptions are declared in the +lib<name>/lib<name>.v files. +
+ +

Furthermore, name space reserved for the system should not be invaded. +Identifiers ending in _t are reserved by +POSIX. +Also avoid names starting with __ or _ followed by an uppercase +letter as they are reserved by the C standard. Names starting with _ +are reserved at the file level and may not be used for externally visible +symbols. If in doubt, just avoid names starting with _ altogether. +

+ +

1.3.5 Miscellaneous conventions

+ +
    +
  • +fprintf and printf are forbidden in libavformat and libavcodec, +please use av_log() instead. + +
  • +Casts should be used only when necessary. Unneeded parentheses +should also be avoided if they don’t make the code easier to understand. +
+ + +

1.3.6 Editor configuration

+

In order to configure Vim to follow FFmpeg formatting conventions, paste +the following snippet into your ‘.vimrc’: +

 
" indentation rules for FFmpeg: 4 spaces, no tabs
+set expandtab
+set shiftwidth=4
+set softtabstop=4
+set cindent
+set cinoptions=(0
+" Allow tabs in Makefiles.
+autocmd FileType make,automake set noexpandtab shiftwidth=8 softtabstop=8
+" Trailing whitespace and tabs are forbidden, so highlight them.
+highlight ForbiddenWhitespace ctermbg=red guibg=red
+match ForbiddenWhitespace /\s\+$\|\t/
+" Do not highlight spaces at the end of line while typing on that line.
+autocmd InsertEnter * match ForbiddenWhitespace /\t\|\s\+\%#\@<!$/
+
+ +

For Emacs, add these roughly equivalent lines to your ‘.emacs.d/init.el’: +

 
(c-add-style "ffmpeg"
+             '("k&r"
+               (c-basic-offset . 4)
+               (indent-tabs-mode . nil)
+               (show-trailing-whitespace . t)
+               (c-offsets-alist
+                (statement-cont . (c-lineup-assignments +)))
+               )
+             )
+(setq c-default-style "ffmpeg")
+
+ + +

1.4 Development Policy

+ +
    +
  1. +Contributions should be licensed under the +LGPL 2.1, +including an "or any later version" clause, or, if you prefer +a gift-style license, the +ISC or +MIT license. +GPL 2 including +an "or any later version" clause is also acceptable, but LGPL is +preferred. +If you add a new file, give it a proper license header. Do not copy and +paste it from a random place, use an existing file as template. + +
  2. +You must not commit code which breaks FFmpeg! (Meaning unfinished but +enabled code which breaks compilation or compiles but does not work or +breaks the regression tests) +You can commit unfinished stuff (for testing etc), but it must be disabled +(#ifdef etc) by default so it does not interfere with other developers’ +work. + +
  3. +The commit message should have a short first line in the form of +a ‘topic: short description’ as a header, separated by a newline +from the body consisting of an explanation of why the change is necessary. +If the commit fixes a known bug on the bug tracker, the commit message +should include its bug ID. Referring to the issue on the bug tracker does +not exempt you from writing an excerpt of the bug in the commit message. + +
  4. +You do not have to over-test things. If it works for you, and you think it +should work for others, then commit. If your code has problems +(portability, triggers compiler bugs, unusual environment etc) they will be +reported and eventually fixed. + +
  5. +Do not commit unrelated changes together, split them into self-contained +pieces. Also do not forget that if part B depends on part A, but A does not +depend on B, then A can and should be committed first and separate from B. +Keeping changes well split into self-contained parts makes reviewing and +understanding them on the commit log mailing list easier. This also helps +in case of debugging later on. +Also if you have doubts about splitting or not splitting, do not hesitate to +ask/discuss it on the developer mailing list. + +
  6. +Do not change behavior of the programs (renaming options etc) or public +API or ABI without first discussing it on the ffmpeg-devel mailing list. +Do not remove functionality from the code. Just improve! + +

    Note: Redundant code can be removed. +

    +
  7. +Do not commit changes to the build system (Makefiles, configure script) +which change behavior, defaults etc, without asking first. The same +applies to compiler warning fixes, trivial looking fixes and to code +maintained by other developers. We usually have a reason for doing things +the way we do. Send your changes as patches to the ffmpeg-devel mailing +list, and if the code maintainers say OK, you may commit. This does not +apply to files you wrote and/or maintain. + +
  8. +We refuse source indentation and other cosmetic changes if they are mixed +with functional changes, such commits will be rejected and removed. Every +developer has his own indentation style, you should not change it. Of course +if you (re)write something, you can use your own style, even though we would +prefer if the indentation throughout FFmpeg was consistent (Many projects +force a given indentation style - we do not.). If you really need to make +indentation changes (try to avoid this), separate them strictly from real +changes. + +

    NOTE: If you had to put if(){ .. } over a large (> 5 lines) chunk of code, +then either do NOT change the indentation of the inner part within (do not +move it to the right)! or do so in a separate commit +

    +
  9. +Always fill out the commit log message. Describe in a few lines what you +changed and why. You can refer to mailing list postings if you fix a +particular bug. Comments such as "fixed!" or "Changed it." are unacceptable. +Recommended format: +area changed: Short 1 line description + +

    details describing what and why and giving references. +

    +
  10. +Make sure the author of the commit is set correctly. (see git commit –author) +If you apply a patch, send an +answer to ffmpeg-devel (or wherever you got the patch from) saying that +you applied the patch. + +
  11. +When applying patches that have been discussed (at length) on the mailing +list, reference the thread in the log message. + +
  12. +Do NOT commit to code actively maintained by others without permission. +Send a patch to ffmpeg-devel instead. If no one answers within a reasonable +timeframe (12h for build failures and security fixes, 3 days small changes, +1 week for big patches) then commit your patch if you think it is OK. +Also note, the maintainer can simply ask for more time to review! + +
  13. +Subscribe to the ffmpeg-cvslog mailing list. The diffs of all commits +are sent there and reviewed by all the other developers. Bugs and possible +improvements or general questions regarding commits are discussed there. We +expect you to react if problems with your code are uncovered. + +
  14. +Update the documentation if you change behavior or add features. If you are +unsure how best to do this, send a patch to ffmpeg-devel, the documentation +maintainer(s) will review and commit your stuff. + +
  15. +Try to keep important discussions and requests (also) on the public +developer mailing list, so that all developers can benefit from them. + +
  16. +Never write to unallocated memory, never write over the end of arrays, +always check values read from some untrusted source before using them +as array index or other risky things. + +
  17. +Remember to check if you need to bump versions for the specific libav* +parts (libavutil, libavcodec, libavformat) you are changing. You need +to change the version integer. +Incrementing the first component means no backward compatibility to +previous versions (e.g. removal of a function from the public API). +Incrementing the second component means backward compatible change +(e.g. addition of a function to the public API or extension of an +existing data structure). +Incrementing the third component means a noteworthy binary compatible +change (e.g. encoder bug fix that matters for the decoder). The third +component always starts at 100 to distinguish FFmpeg from Libav. + +
  18. +Compiler warnings indicate potential bugs or code with bad style. If a type of +warning always points to correct and clean code, that warning should +be disabled, not the code changed. +Thus the remaining warnings can either be bugs or correct code. +If it is a bug, the bug has to be fixed. If it is not, the code should +be changed to not generate a warning unless that causes a slowdown +or obfuscates the code. + +
  19. +Make sure that no parts of the codebase that you maintain are missing from the +‘MAINTAINERS’ file. If something that you want to maintain is missing add it with +your name after it. +If at some point you no longer want to maintain some code, then please help +finding a new maintainer and also don’t forget updating the ‘MAINTAINERS’ file. +
+ +

We think our rules are not too hard. If you have comments, contact us. +

+

+

+

1.5 Submitting patches

+ +

First, read the Coding Rules above if you did not yet, in particular +the rules regarding patch submission. +

+

When you submit your patch, please use git format-patch or +git send-email. We cannot read other diffs :-) +

+

Also please do not submit a patch which contains several unrelated changes. +Split it into separate, self-contained pieces. This does not mean splitting +file by file. Instead, make the patch as small as possible while still +keeping it as a logical unit that contains an individual change, even +if it spans multiple files. This makes reviewing your patches much easier +for us and greatly increases your chances of getting your patch applied. +

+

Use the patcheck tool of FFmpeg to check your patch. +The tool is located in the tools directory. +

+

Run the Regression tests before submitting a patch in order to verify +it does not cause unexpected problems. +

+

It also helps quite a bit if you tell us what the patch does (for example +’replaces lrint by lrintf’), and why (for example ’*BSD isn’t C99 compliant +and has no lrint()’) +

+

Also please if you send several patches, send each patch as a separate mail, +do not attach several unrelated patches to the same mail. +

+

Patches should be posted to the +ffmpeg-devel +mailing list. Use git send-email when possible since it will properly +send patches without requiring extra care. If you cannot, then send patches +as base64-encoded attachments, so your patch is not trashed during +transmission. +

+

Your patch will be reviewed on the mailing list. You will likely be asked +to make some changes and are expected to send in an improved version that +incorporates the requests from the review. This process may go through +several iterations. Once your patch is deemed good enough, some developer +will pick it up and commit it to the official FFmpeg tree. +

+

Give us a few days to react. But if some time passes without reaction, +send a reminder by email. Your patch should eventually be dealt with. +

+ + +

1.6 New codecs or formats checklist

+ +
    +
  1. +Did you use av_cold for codec initialization and close functions? + +
  2. +Did you add a long_name under NULL_IF_CONFIG_SMALL to the AVCodec or +AVInputFormat/AVOutputFormat struct? + +
  3. +Did you bump the minor version number (and reset the micro version +number) in ‘libavcodec/version.h’ or ‘libavformat/version.h’? + +
  4. +Did you register it in ‘allcodecs.c’ or ‘allformats.c’? + +
  5. +Did you add the AVCodecID to ‘avcodec.h’? +When adding new codec IDs, also add an entry to the codec descriptor +list in ‘libavcodec/codec_desc.c’. + +
  6. +If it has a FourCC, did you add it to ‘libavformat/riff.c’, +even if it is only a decoder? + +
  7. +Did you add a rule to compile the appropriate files in the Makefile? +Remember to do this even if you’re just adding a format to a file that is +already being compiled by some other rule, like a raw demuxer. + +
  8. +Did you add an entry to the table of supported formats or codecs in +‘doc/general.texi’? + +
  9. +Did you add an entry in the Changelog? + +
  10. +If it depends on a parser or a library, did you add that dependency in +configure? + +
  11. +Did you git add the appropriate files before committing? + +
  12. +Did you make sure it compiles standalone, i.e. with +configure --disable-everything --enable-decoder=foo +(or --enable-demuxer or whatever your component is)? +
+ + + +

1.7 patch submission checklist

+ +
    +
  1. +Does make fate pass with the patch applied? + +
  2. +Was the patch generated with git format-patch or send-email? + +
  3. +Did you sign off your patch? (git commit -s) +See http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob_plain;f=Documentation/SubmittingPatches for the meaning +of sign off. + +
  4. +Did you provide a clear git commit log message? + +
  5. +Is the patch against latest FFmpeg git master branch? + +
  6. +Are you subscribed to ffmpeg-devel? +(the list is subscribers only due to spam) + +
  7. +Have you checked that the changes are minimal, so that the same cannot be +achieved with a smaller patch and/or simpler final code? + +
  8. +If the change is to speed critical code, did you benchmark it? + +
  9. +If you did any benchmarks, did you provide them in the mail? + +
  10. +Have you checked that the patch does not introduce buffer overflows or +other security issues? + +
  11. +Did you test your decoder or demuxer against damaged data? If no, see +tools/trasher, the noise bitstream filter, and +zzuf. Your decoder or demuxer +should not crash, end in a (near) infinite loop, or allocate ridiculous +amounts of memory when fed damaged data. + +
  12. +Does the patch not mix functional and cosmetic changes? + +
  13. +Did you add tabs or trailing whitespace to the code? Both are forbidden. + +
  14. +Is the patch attached to the email you send? + +
  15. +Is the mime type of the patch correct? It should be text/x-diff or +text/x-patch or at least text/plain and not application/octet-stream. + +
  16. +If the patch fixes a bug, did you provide a verbose analysis of the bug? + +
  17. +If the patch fixes a bug, did you provide enough information, including +a sample, so the bug can be reproduced and the fix can be verified? +Note please do not attach samples >100k to mails but rather provide a +URL, you can upload to ftp://upload.ffmpeg.org + +
  18. +Did you provide a verbose summary about what the patch does change? + +
  19. +Did you provide a verbose explanation why it changes things like it does? + +
  20. +Did you provide a verbose summary of the user visible advantages and +disadvantages if the patch is applied? + +
  21. +Did you provide an example so we can verify the new feature added by the +patch easily? + +
  22. +If you added a new file, did you insert a license header? It should be +taken from FFmpeg, not randomly copied and pasted from somewhere else. + +
  23. +You should maintain alphabetical order in alphabetically ordered lists as +long as doing so does not break API/ABI compatibility. + +
  24. +Lines with similar content should be aligned vertically when doing so +improves readability. + +
  25. +Consider to add a regression test for your code. + +
  26. +If you added YASM code please check that things still work with –disable-yasm + +
  27. +Make sure you check the return values of function and return appropriate +error codes. Especially memory allocation functions like av_malloc() +are notoriously left unchecked, which is a serious problem. + +
  28. +Test your code with valgrind and or Address Sanitizer to ensure it’s free +of leaks, out of array accesses, etc. +
+ + +

1.8 Patch review process

+ +

All patches posted to ffmpeg-devel will be reviewed, unless they contain a +clear note that the patch is not for the git master branch. +Reviews and comments will be posted as replies to the patch on the +mailing list. The patch submitter then has to take care of every comment, +that can be by resubmitting a changed patch or by discussion. Resubmitted +patches will themselves be reviewed like any other patch. If at some point +a patch passes review with no comments then it is approved, that can for +simple and small patches happen immediately while large patches will generally +have to be changed and reviewed many times before they are approved. +After a patch is approved it will be committed to the repository. +

+

We will review all submitted patches, but sometimes we are quite busy so +especially for large patches this can take several weeks. +

+

If you feel that the review process is too slow and you are willing to try to +take over maintainership of the area of code you change then just clone +git master and maintain the area of code there. We will merge each area from +where its best maintained. +

+

When resubmitting patches, please do not make any significant changes +not related to the comments received during review. Such patches will +be rejected. Instead, submit significant changes or new features as +separate patches. +

+

+

+

1.9 Regression tests

+ +

Before submitting a patch (or committing to the repository), you should at least +test that you did not break anything. +

+

Running ’make fate’ accomplishes this, please see fate.html for details. +

+

[Of course, some patches may change the results of the regression tests. In +this case, the reference results of the regression tests shall be modified +accordingly]. +

+ +

1.9.1 Adding files to the fate-suite dataset

+ +

When there is no muxer or encoder available to generate test media for a +specific test then the media has to be inlcuded in the fate-suite. +First please make sure that the sample file is as small as possible to test the +respective decoder or demuxer sufficiently. Large files increase network +bandwidth and disk space requirements. +Once you have a working fate test and fate sample, provide in the commit +message or introductionary message for the patch series that you post to +the ffmpeg-devel mailing list, a direct link to download the sample media. +

+ + +

1.9.2 Visualizing Test Coverage

+ +

The FFmpeg build system allows visualizing the test coverage in an easy +manner with the coverage tools gcov/lcov. This involves +the following steps: +

+
    +
  1. + Configure to compile with instrumentation enabled: + configure --toolchain=gcov. + +
  2. + Run your test case, either manually or via FATE. This can be either + the full FATE regression suite, or any arbitrary invocation of any + front-end tool provided by FFmpeg, in any combination. + +
  3. + Run make lcov to generate coverage data in HTML format. + +
  4. + View lcov/index.html in your preferred HTML viewer. +
+ +

You can use the command make lcov-reset to reset the coverage +measurements. You will need to rerun make lcov after running a +new test. +

+ +

1.9.3 Using Valgrind

+ +

The configure script provides a shortcut for using valgrind to spot bugs +related to memory handling. Just add the option +--toolchain=valgrind-memcheck or --toolchain=valgrind-massif +to your configure line, and reasonable defaults will be set for running +FATE under the supervision of either the memcheck or the +massif tool of the valgrind suite. +

+

In case you need finer control over how valgrind is invoked, use the +--target-exec='valgrind <your_custom_valgrind_options> option in +your configure line instead. +

+

+

+

1.10 Release process

+ +

FFmpeg maintains a set of release branches, which are the +recommended deliverable for system integrators and distributors (such as +Linux distributions, etc.). At regular times, a release +manager prepares, tests and publishes tarballs on the +http://ffmpeg.org website. +

+

There are two kinds of releases: +

+
    +
  1. +Major releases always include the latest and greatest +features and functionality. + +
  2. +Point releases are cut from release branches, +which are named release/X, with X being the release +version number. +
+ +

Note that we promise to our users that shared libraries from any FFmpeg +release never break programs that have been compiled against +previous versions of the same release series in any case! +

+

However, from time to time, we do make API changes that require adaptations +in applications. Such changes are only allowed in (new) major releases and +require further steps such as bumping library version numbers and/or +adjustments to the symbol versioning file. Please discuss such changes +on the ffmpeg-devel mailing list in time to allow forward planning. +

+

+

+

1.10.1 Criteria for Point Releases

+ +

Changes that match the following criteria are valid candidates for +inclusion into a point release: +

+
    +
  1. +Fixes a security issue, preferably identified by a CVE +number issued by http://cve.mitre.org/. + +
  2. +Fixes a documented bug in https://trac.ffmpeg.org. + +
  3. +Improves the included documentation. + +
  4. +Retains both source code and binary compatibility with previous +point releases of the same release branch. +
+ +

The order for checking the rules is (1 OR 2 OR 3) AND 4. +

+ + +

1.10.2 Release Checklist

+ +

The release process involves the following steps: +

+
    +
  1. +Ensure that the ‘RELEASE’ file contains the version number for +the upcoming release. + +
  2. +Add the release at https://trac.ffmpeg.org/admin/ticket/versions. + +
  3. +Announce the intent to do a release to the mailing list. + +
  4. +Make sure all relevant security fixes have been backported. See +https://ffmpeg.org/security.html. + +
  5. +Ensure that the FATE regression suite still passes in the release +branch on at least i386 and amd64 +(cf. Regression tests). + +
  6. +Prepare the release tarballs in bz2 and gz formats, and +supplementing files that contain gpg signatures + +
  7. +Publish the tarballs at http://ffmpeg.org/releases. Create and +push an annotated tag in the form nX, with X +containing the version number. + +
  8. +Propose and send a patch to the ffmpeg-devel mailing list +with a news entry for the website. + +
  9. +Publish the news entry. + +
  10. +Send announcement to the mailing list. +
+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/examples/Makefile b/3-Postprocessing/ffmpeg/doc/examples/Makefile new file mode 100644 index 0000000..03c7021 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/examples/Makefile @@ -0,0 +1,42 @@ +# use pkg-config for getting CFLAGS and LDLIBS +FFMPEG_LIBS= libavdevice \ + libavformat \ + libavfilter \ + libavcodec \ + libswresample \ + libswscale \ + libavutil \ + +CFLAGS += -Wall -g +CFLAGS := $(shell pkg-config --cflags $(FFMPEG_LIBS)) $(CFLAGS) +LDLIBS := $(shell pkg-config --libs $(FFMPEG_LIBS)) $(LDLIBS) + +EXAMPLES= avio_reading \ + decoding_encoding \ + demuxing_decoding \ + filtering_video \ + filtering_audio \ + metadata \ + muxing \ + remuxing \ + resampling_audio \ + scaling_video \ + transcode_aac \ + transcoding \ + +OBJS=$(addsuffix .o,$(EXAMPLES)) + +# the following examples make explicit use of the math library +avcodec: LDLIBS += -lm +muxing: LDLIBS += -lm +resampling_audio: LDLIBS += -lm + +.phony: all clean-test clean + +all: $(OBJS) $(EXAMPLES) + +clean-test: + $(RM) test*.pgm test.h264 test.mp2 test.sw test.mpg + +clean: clean-test + $(RM) $(EXAMPLES) $(OBJS) diff --git a/3-Postprocessing/ffmpeg/doc/examples/README b/3-Postprocessing/ffmpeg/doc/examples/README new file mode 100644 index 0000000..c1ce619 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/examples/README @@ -0,0 +1,23 @@ +FFmpeg examples README +---------------------- + +Both following use cases rely on pkg-config and make, thus make sure +that you have them installed and working on your system. + + +Method 1: build the installed examples in a generic read/write user directory + +Copy to a read/write user directory and just use "make", it will link +to the libraries on your system, assuming the PKG_CONFIG_PATH is +correctly configured. + +Method 2: build the examples in-tree + +Assuming you are in the source FFmpeg checkout directory, you need to build +FFmpeg (no need to make install in any prefix). Then just run "make examples". +This will build the examples using the FFmpeg build system. You can clean those +examples using "make examplesclean" + +If you want to try the dedicated Makefile examples (to emulate the first +method), go into doc/examples and run a command such as +PKG_CONFIG_PATH=pc-uninstalled make. diff --git a/3-Postprocessing/ffmpeg/doc/examples/avio_reading.c b/3-Postprocessing/ffmpeg/doc/examples/avio_reading.c new file mode 100644 index 0000000..02474e9 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/examples/avio_reading.c @@ -0,0 +1,134 @@ +/* + * Copyright (c) 2014 Stefano Sabatini + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +/** + * @file + * libavformat AVIOContext API example. + * + * Make libavformat demuxer access media content through a custom + * AVIOContext read callback. + * @example avio_reading.c + */ + +#include +#include +#include +#include + +struct buffer_data { + uint8_t *ptr; + size_t size; ///< size left in the buffer +}; + +static int read_packet(void *opaque, uint8_t *buf, int buf_size) +{ + struct buffer_data *bd = (struct buffer_data *)opaque; + buf_size = FFMIN(buf_size, bd->size); + + printf("ptr:%p size:%zu\n", bd->ptr, bd->size); + + /* copy internal buffer data to buf */ + memcpy(buf, bd->ptr, buf_size); + bd->ptr += buf_size; + bd->size -= buf_size; + + return buf_size; +} + +int main(int argc, char *argv[]) +{ + AVFormatContext *fmt_ctx = NULL; + AVIOContext *avio_ctx = NULL; + uint8_t *buffer = NULL, *avio_ctx_buffer = NULL; + size_t buffer_size, avio_ctx_buffer_size = 4096; + char *input_filename = NULL; + int ret = 0; + struct buffer_data bd = { 0 }; + + if (argc != 2) { + fprintf(stderr, "usage: %s input_file\n" + "API example program to show how to read from a custom buffer " + "accessed through AVIOContext.\n", argv[0]); + return 1; + } + input_filename = argv[1]; + + /* register codecs and formats and other lavf/lavc components*/ + av_register_all(); + + /* slurp file content into buffer */ + ret = av_file_map(input_filename, &buffer, &buffer_size, 0, NULL); + if (ret < 0) + goto end; + + /* fill opaque structure used by the AVIOContext read callback */ + bd.ptr = buffer; + bd.size = buffer_size; + + if (!(fmt_ctx = avformat_alloc_context())) { + ret = AVERROR(ENOMEM); + goto end; + } + + avio_ctx_buffer = av_malloc(avio_ctx_buffer_size); + if (!avio_ctx_buffer) { + ret = AVERROR(ENOMEM); + goto end; + } + avio_ctx = avio_alloc_context(avio_ctx_buffer, avio_ctx_buffer_size, + 0, &bd, &read_packet, NULL, NULL); + if (!avio_ctx) { + ret = AVERROR(ENOMEM); + goto end; + } + fmt_ctx->pb = avio_ctx; + + ret = avformat_open_input(&fmt_ctx, NULL, NULL, NULL); + if (ret < 0) { + fprintf(stderr, "Could not open input\n"); + goto end; + } + + ret = avformat_find_stream_info(fmt_ctx, NULL); + if (ret < 0) { + fprintf(stderr, "Could not find stream information\n"); + goto end; + } + + av_dump_format(fmt_ctx, 0, input_filename, 0); + +end: + avformat_close_input(&fmt_ctx); + /* note: the internal buffer could have changed, and be != avio_ctx_buffer */ + if (avio_ctx) { + av_freep(&avio_ctx->buffer); + av_freep(&avio_ctx); + } + av_file_unmap(buffer, buffer_size); + + if (ret < 0) { + fprintf(stderr, "Error occurred: %s\n", av_err2str(ret)); + return 1; + } + + return 0; +} diff --git a/3-Postprocessing/ffmpeg/doc/examples/decoding_encoding.c b/3-Postprocessing/ffmpeg/doc/examples/decoding_encoding.c new file mode 100644 index 0000000..0585e51 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/examples/decoding_encoding.c @@ -0,0 +1,664 @@ +/* + * Copyright (c) 2001 Fabrice Bellard + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +/** + * @file + * libavcodec API use example. + * + * @example decoding_encoding.c + * Note that libavcodec only handles codecs (mpeg, mpeg4, etc...), + * not file formats (avi, vob, mp4, mov, mkv, mxf, flv, mpegts, mpegps, etc...). See library 'libavformat' for the + * format handling + */ + +#include + +#include +#include +#include +#include +#include +#include +#include + +#define INBUF_SIZE 4096 +#define AUDIO_INBUF_SIZE 20480 +#define AUDIO_REFILL_THRESH 4096 + +/* check that a given sample format is supported by the encoder */ +static int check_sample_fmt(AVCodec *codec, enum AVSampleFormat sample_fmt) +{ + const enum AVSampleFormat *p = codec->sample_fmts; + + while (*p != AV_SAMPLE_FMT_NONE) { + if (*p == sample_fmt) + return 1; + p++; + } + return 0; +} + +/* just pick the highest supported samplerate */ +static int select_sample_rate(AVCodec *codec) +{ + const int *p; + int best_samplerate = 0; + + if (!codec->supported_samplerates) + return 44100; + + p = codec->supported_samplerates; + while (*p) { + best_samplerate = FFMAX(*p, best_samplerate); + p++; + } + return best_samplerate; +} + +/* select layout with the highest channel count */ +static int select_channel_layout(AVCodec *codec) +{ + const uint64_t *p; + uint64_t best_ch_layout = 0; + int best_nb_channels = 0; + + if (!codec->channel_layouts) + return AV_CH_LAYOUT_STEREO; + + p = codec->channel_layouts; + while (*p) { + int nb_channels = av_get_channel_layout_nb_channels(*p); + + if (nb_channels > best_nb_channels) { + best_ch_layout = *p; + best_nb_channels = nb_channels; + } + p++; + } + return best_ch_layout; +} + +/* + * Audio encoding example + */ +static void audio_encode_example(const char *filename) +{ + AVCodec *codec; + AVCodecContext *c= NULL; + AVFrame *frame; + AVPacket pkt; + int i, j, k, ret, got_output; + int buffer_size; + FILE *f; + uint16_t *samples; + float t, tincr; + + printf("Encode audio file %s\n", filename); + + /* find the MP2 encoder */ + codec = avcodec_find_encoder(AV_CODEC_ID_MP2); + if (!codec) { + fprintf(stderr, "Codec not found\n"); + exit(1); + } + + c = avcodec_alloc_context3(codec); + if (!c) { + fprintf(stderr, "Could not allocate audio codec context\n"); + exit(1); + } + + /* put sample parameters */ + c->bit_rate = 64000; + + /* check that the encoder supports s16 pcm input */ + c->sample_fmt = AV_SAMPLE_FMT_S16; + if (!check_sample_fmt(codec, c->sample_fmt)) { + fprintf(stderr, "Encoder does not support sample format %s", + av_get_sample_fmt_name(c->sample_fmt)); + exit(1); + } + + /* select other audio parameters supported by the encoder */ + c->sample_rate = select_sample_rate(codec); + c->channel_layout = select_channel_layout(codec); + c->channels = av_get_channel_layout_nb_channels(c->channel_layout); + + /* open it */ + if (avcodec_open2(c, codec, NULL) < 0) { + fprintf(stderr, "Could not open codec\n"); + exit(1); + } + + f = fopen(filename, "wb"); + if (!f) { + fprintf(stderr, "Could not open %s\n", filename); + exit(1); + } + + /* frame containing input raw audio */ + frame = av_frame_alloc(); + if (!frame) { + fprintf(stderr, "Could not allocate audio frame\n"); + exit(1); + } + + frame->nb_samples = c->frame_size; + frame->format = c->sample_fmt; + frame->channel_layout = c->channel_layout; + + /* the codec gives us the frame size, in samples, + * we calculate the size of the samples buffer in bytes */ + buffer_size = av_samples_get_buffer_size(NULL, c->channels, c->frame_size, + c->sample_fmt, 0); + if (buffer_size < 0) { + fprintf(stderr, "Could not get sample buffer size\n"); + exit(1); + } + samples = av_malloc(buffer_size); + if (!samples) { + fprintf(stderr, "Could not allocate %d bytes for samples buffer\n", + buffer_size); + exit(1); + } + /* setup the data pointers in the AVFrame */ + ret = avcodec_fill_audio_frame(frame, c->channels, c->sample_fmt, + (const uint8_t*)samples, buffer_size, 0); + if (ret < 0) { + fprintf(stderr, "Could not setup audio frame\n"); + exit(1); + } + + /* encode a single tone sound */ + t = 0; + tincr = 2 * M_PI * 440.0 / c->sample_rate; + for (i = 0; i < 200; i++) { + av_init_packet(&pkt); + pkt.data = NULL; // packet data will be allocated by the encoder + pkt.size = 0; + + for (j = 0; j < c->frame_size; j++) { + samples[2*j] = (int)(sin(t) * 10000); + + for (k = 1; k < c->channels; k++) + samples[2*j + k] = samples[2*j]; + t += tincr; + } + /* encode the samples */ + ret = avcodec_encode_audio2(c, &pkt, frame, &got_output); + if (ret < 0) { + fprintf(stderr, "Error encoding audio frame\n"); + exit(1); + } + if (got_output) { + fwrite(pkt.data, 1, pkt.size, f); + av_free_packet(&pkt); + } + } + + /* get the delayed frames */ + for (got_output = 1; got_output; i++) { + ret = avcodec_encode_audio2(c, &pkt, NULL, &got_output); + if (ret < 0) { + fprintf(stderr, "Error encoding frame\n"); + exit(1); + } + + if (got_output) { + fwrite(pkt.data, 1, pkt.size, f); + av_free_packet(&pkt); + } + } + fclose(f); + + av_freep(&samples); + av_frame_free(&frame); + avcodec_close(c); + av_free(c); +} + +/* + * Audio decoding. + */ +static void audio_decode_example(const char *outfilename, const char *filename) +{ + AVCodec *codec; + AVCodecContext *c= NULL; + int len; + FILE *f, *outfile; + uint8_t inbuf[AUDIO_INBUF_SIZE + FF_INPUT_BUFFER_PADDING_SIZE]; + AVPacket avpkt; + AVFrame *decoded_frame = NULL; + + av_init_packet(&avpkt); + + printf("Decode audio file %s to %s\n", filename, outfilename); + + /* find the mpeg audio decoder */ + codec = avcodec_find_decoder(AV_CODEC_ID_MP2); + if (!codec) { + fprintf(stderr, "Codec not found\n"); + exit(1); + } + + c = avcodec_alloc_context3(codec); + if (!c) { + fprintf(stderr, "Could not allocate audio codec context\n"); + exit(1); + } + + /* open it */ + if (avcodec_open2(c, codec, NULL) < 0) { + fprintf(stderr, "Could not open codec\n"); + exit(1); + } + + f = fopen(filename, "rb"); + if (!f) { + fprintf(stderr, "Could not open %s\n", filename); + exit(1); + } + outfile = fopen(outfilename, "wb"); + if (!outfile) { + av_free(c); + exit(1); + } + + /* decode until eof */ + avpkt.data = inbuf; + avpkt.size = fread(inbuf, 1, AUDIO_INBUF_SIZE, f); + + while (avpkt.size > 0) { + int got_frame = 0; + + if (!decoded_frame) { + if (!(decoded_frame = av_frame_alloc())) { + fprintf(stderr, "Could not allocate audio frame\n"); + exit(1); + } + } + + len = avcodec_decode_audio4(c, decoded_frame, &got_frame, &avpkt); + if (len < 0) { + fprintf(stderr, "Error while decoding\n"); + exit(1); + } + if (got_frame) { + /* if a frame has been decoded, output it */ + int data_size = av_samples_get_buffer_size(NULL, c->channels, + decoded_frame->nb_samples, + c->sample_fmt, 1); + if (data_size < 0) { + /* This should not occur, checking just for paranoia */ + fprintf(stderr, "Failed to calculate data size\n"); + exit(1); + } + fwrite(decoded_frame->data[0], 1, data_size, outfile); + } + avpkt.size -= len; + avpkt.data += len; + avpkt.dts = + avpkt.pts = AV_NOPTS_VALUE; + if (avpkt.size < AUDIO_REFILL_THRESH) { + /* Refill the input buffer, to avoid trying to decode + * incomplete frames. Instead of this, one could also use + * a parser, or use a proper container format through + * libavformat. */ + memmove(inbuf, avpkt.data, avpkt.size); + avpkt.data = inbuf; + len = fread(avpkt.data + avpkt.size, 1, + AUDIO_INBUF_SIZE - avpkt.size, f); + if (len > 0) + avpkt.size += len; + } + } + + fclose(outfile); + fclose(f); + + avcodec_close(c); + av_free(c); + av_frame_free(&decoded_frame); +} + +/* + * Video encoding example + */ +static void video_encode_example(const char *filename, int codec_id) +{ + AVCodec *codec; + AVCodecContext *c= NULL; + int i, ret, x, y, got_output; + FILE *f; + AVFrame *frame; + AVPacket pkt; + uint8_t endcode[] = { 0, 0, 1, 0xb7 }; + + printf("Encode video file %s\n", filename); + + /* find the mpeg1 video encoder */ + codec = avcodec_find_encoder(codec_id); + if (!codec) { + fprintf(stderr, "Codec not found\n"); + exit(1); + } + + c = avcodec_alloc_context3(codec); + if (!c) { + fprintf(stderr, "Could not allocate video codec context\n"); + exit(1); + } + + /* put sample parameters */ + c->bit_rate = 400000; + /* resolution must be a multiple of two */ + c->width = 352; + c->height = 288; + /* frames per second */ + c->time_base = (AVRational){1,25}; + /* emit one intra frame every ten frames + * check frame pict_type before passing frame + * to encoder, if frame->pict_type is AV_PICTURE_TYPE_I + * then gop_size is ignored and the output of encoder + * will always be I frame irrespective to gop_size + */ + c->gop_size = 10; + c->max_b_frames = 1; + c->pix_fmt = AV_PIX_FMT_YUV420P; + + if (codec_id == AV_CODEC_ID_H264) + av_opt_set(c->priv_data, "preset", "slow", 0); + + /* open it */ + if (avcodec_open2(c, codec, NULL) < 0) { + fprintf(stderr, "Could not open codec\n"); + exit(1); + } + + f = fopen(filename, "wb"); + if (!f) { + fprintf(stderr, "Could not open %s\n", filename); + exit(1); + } + + frame = av_frame_alloc(); + if (!frame) { + fprintf(stderr, "Could not allocate video frame\n"); + exit(1); + } + frame->format = c->pix_fmt; + frame->width = c->width; + frame->height = c->height; + + /* the image can be allocated by any means and av_image_alloc() is + * just the most convenient way if av_malloc() is to be used */ + ret = av_image_alloc(frame->data, frame->linesize, c->width, c->height, + c->pix_fmt, 32); + if (ret < 0) { + fprintf(stderr, "Could not allocate raw picture buffer\n"); + exit(1); + } + + /* encode 1 second of video */ + for (i = 0; i < 25; i++) { + av_init_packet(&pkt); + pkt.data = NULL; // packet data will be allocated by the encoder + pkt.size = 0; + + fflush(stdout); + /* prepare a dummy image */ + /* Y */ + for (y = 0; y < c->height; y++) { + for (x = 0; x < c->width; x++) { + frame->data[0][y * frame->linesize[0] + x] = x + y + i * 3; + } + } + + /* Cb and Cr */ + for (y = 0; y < c->height/2; y++) { + for (x = 0; x < c->width/2; x++) { + frame->data[1][y * frame->linesize[1] + x] = 128 + y + i * 2; + frame->data[2][y * frame->linesize[2] + x] = 64 + x + i * 5; + } + } + + frame->pts = i; + + /* encode the image */ + ret = avcodec_encode_video2(c, &pkt, frame, &got_output); + if (ret < 0) { + fprintf(stderr, "Error encoding frame\n"); + exit(1); + } + + if (got_output) { + printf("Write frame %3d (size=%5d)\n", i, pkt.size); + fwrite(pkt.data, 1, pkt.size, f); + av_free_packet(&pkt); + } + } + + /* get the delayed frames */ + for (got_output = 1; got_output; i++) { + fflush(stdout); + + ret = avcodec_encode_video2(c, &pkt, NULL, &got_output); + if (ret < 0) { + fprintf(stderr, "Error encoding frame\n"); + exit(1); + } + + if (got_output) { + printf("Write frame %3d (size=%5d)\n", i, pkt.size); + fwrite(pkt.data, 1, pkt.size, f); + av_free_packet(&pkt); + } + } + + /* add sequence end code to have a real mpeg file */ + fwrite(endcode, 1, sizeof(endcode), f); + fclose(f); + + avcodec_close(c); + av_free(c); + av_freep(&frame->data[0]); + av_frame_free(&frame); + printf("\n"); +} + +/* + * Video decoding example + */ + +static void pgm_save(unsigned char *buf, int wrap, int xsize, int ysize, + char *filename) +{ + FILE *f; + int i; + + f = fopen(filename,"w"); + fprintf(f, "P5\n%d %d\n%d\n", xsize, ysize, 255); + for (i = 0; i < ysize; i++) + fwrite(buf + i * wrap, 1, xsize, f); + fclose(f); +} + +static int decode_write_frame(const char *outfilename, AVCodecContext *avctx, + AVFrame *frame, int *frame_count, AVPacket *pkt, int last) +{ + int len, got_frame; + char buf[1024]; + + len = avcodec_decode_video2(avctx, frame, &got_frame, pkt); + if (len < 0) { + fprintf(stderr, "Error while decoding frame %d\n", *frame_count); + return len; + } + if (got_frame) { + printf("Saving %sframe %3d\n", last ? "last " : "", *frame_count); + fflush(stdout); + + /* the picture is allocated by the decoder, no need to free it */ + snprintf(buf, sizeof(buf), outfilename, *frame_count); + pgm_save(frame->data[0], frame->linesize[0], + avctx->width, avctx->height, buf); + (*frame_count)++; + } + if (pkt->data) { + pkt->size -= len; + pkt->data += len; + } + return 0; +} + +static void video_decode_example(const char *outfilename, const char *filename) +{ + AVCodec *codec; + AVCodecContext *c= NULL; + int frame_count; + FILE *f; + AVFrame *frame; + uint8_t inbuf[INBUF_SIZE + FF_INPUT_BUFFER_PADDING_SIZE]; + AVPacket avpkt; + + av_init_packet(&avpkt); + + /* set end of buffer to 0 (this ensures that no overreading happens for damaged mpeg streams) */ + memset(inbuf + INBUF_SIZE, 0, FF_INPUT_BUFFER_PADDING_SIZE); + + printf("Decode video file %s to %s\n", filename, outfilename); + + /* find the mpeg1 video decoder */ + codec = avcodec_find_decoder(AV_CODEC_ID_MPEG1VIDEO); + if (!codec) { + fprintf(stderr, "Codec not found\n"); + exit(1); + } + + c = avcodec_alloc_context3(codec); + if (!c) { + fprintf(stderr, "Could not allocate video codec context\n"); + exit(1); + } + + if(codec->capabilities&CODEC_CAP_TRUNCATED) + c->flags|= CODEC_FLAG_TRUNCATED; /* we do not send complete frames */ + + /* For some codecs, such as msmpeg4 and mpeg4, width and height + MUST be initialized there because this information is not + available in the bitstream. */ + + /* open it */ + if (avcodec_open2(c, codec, NULL) < 0) { + fprintf(stderr, "Could not open codec\n"); + exit(1); + } + + f = fopen(filename, "rb"); + if (!f) { + fprintf(stderr, "Could not open %s\n", filename); + exit(1); + } + + frame = av_frame_alloc(); + if (!frame) { + fprintf(stderr, "Could not allocate video frame\n"); + exit(1); + } + + frame_count = 0; + for (;;) { + avpkt.size = fread(inbuf, 1, INBUF_SIZE, f); + if (avpkt.size == 0) + break; + + /* NOTE1: some codecs are stream based (mpegvideo, mpegaudio) + and this is the only method to use them because you cannot + know the compressed data size before analysing it. + + BUT some other codecs (msmpeg4, mpeg4) are inherently frame + based, so you must call them with all the data for one + frame exactly. You must also initialize 'width' and + 'height' before initializing them. */ + + /* NOTE2: some codecs allow the raw parameters (frame size, + sample rate) to be changed at any frame. We handle this, so + you should also take care of it */ + + /* here, we use a stream based decoder (mpeg1video), so we + feed decoder and see if it could decode a frame */ + avpkt.data = inbuf; + while (avpkt.size > 0) + if (decode_write_frame(outfilename, c, frame, &frame_count, &avpkt, 0) < 0) + exit(1); + } + + /* some codecs, such as MPEG, transmit the I and P frame with a + latency of one frame. You must do the following to have a + chance to get the last frame of the video */ + avpkt.data = NULL; + avpkt.size = 0; + decode_write_frame(outfilename, c, frame, &frame_count, &avpkt, 1); + + fclose(f); + + avcodec_close(c); + av_free(c); + av_frame_free(&frame); + printf("\n"); +} + +int main(int argc, char **argv) +{ + const char *output_type; + + /* register all the codecs */ + avcodec_register_all(); + + if (argc < 2) { + printf("usage: %s output_type\n" + "API example program to decode/encode a media stream with libavcodec.\n" + "This program generates a synthetic stream and encodes it to a file\n" + "named test.h264, test.mp2 or test.mpg depending on output_type.\n" + "The encoded stream is then decoded and written to a raw data output.\n" + "output_type must be choosen between 'h264', 'mp2', 'mpg'.\n", + argv[0]); + return 1; + } + output_type = argv[1]; + + if (!strcmp(output_type, "h264")) { + video_encode_example("test.h264", AV_CODEC_ID_H264); + } else if (!strcmp(output_type, "mp2")) { + audio_encode_example("test.mp2"); + audio_decode_example("test.sw", "test.mp2"); + } else if (!strcmp(output_type, "mpg")) { + video_encode_example("test.mpg", AV_CODEC_ID_MPEG1VIDEO); + video_decode_example("test%02d.pgm", "test.mpg"); + } else { + fprintf(stderr, "Invalid output type '%s', choose between 'h264', 'mp2', or 'mpg'\n", + output_type); + return 1; + } + + return 0; +} diff --git a/3-Postprocessing/ffmpeg/doc/examples/demuxing_decoding.c b/3-Postprocessing/ffmpeg/doc/examples/demuxing_decoding.c new file mode 100644 index 0000000..2ce4018 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/examples/demuxing_decoding.c @@ -0,0 +1,386 @@ +/* + * Copyright (c) 2012 Stefano Sabatini + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +/** + * @file + * Demuxing and decoding example. + * + * Show how to use the libavformat and libavcodec API to demux and + * decode audio and video data. + * @example demuxing_decoding.c + */ + +#include +#include +#include +#include + +static AVFormatContext *fmt_ctx = NULL; +static AVCodecContext *video_dec_ctx = NULL, *audio_dec_ctx; +static AVStream *video_stream = NULL, *audio_stream = NULL; +static const char *src_filename = NULL; +static const char *video_dst_filename = NULL; +static const char *audio_dst_filename = NULL; +static FILE *video_dst_file = NULL; +static FILE *audio_dst_file = NULL; + +static uint8_t *video_dst_data[4] = {NULL}; +static int video_dst_linesize[4]; +static int video_dst_bufsize; + +static int video_stream_idx = -1, audio_stream_idx = -1; +static AVFrame *frame = NULL; +static AVPacket pkt; +static int video_frame_count = 0; +static int audio_frame_count = 0; + +/* The different ways of decoding and managing data memory. You are not + * supposed to support all the modes in your application but pick the one most + * appropriate to your needs. Look for the use of api_mode in this example to + * see what are the differences of API usage between them */ +enum { + API_MODE_OLD = 0, /* old method, deprecated */ + API_MODE_NEW_API_REF_COUNT = 1, /* new method, using the frame reference counting */ + API_MODE_NEW_API_NO_REF_COUNT = 2, /* new method, without reference counting */ +}; + +static int api_mode = API_MODE_OLD; + +static int decode_packet(int *got_frame, int cached) +{ + int ret = 0; + int decoded = pkt.size; + + *got_frame = 0; + + if (pkt.stream_index == video_stream_idx) { + /* decode video frame */ + ret = avcodec_decode_video2(video_dec_ctx, frame, got_frame, &pkt); + if (ret < 0) { + fprintf(stderr, "Error decoding video frame (%s)\n", av_err2str(ret)); + return ret; + } + + if (*got_frame) { + printf("video_frame%s n:%d coded_n:%d pts:%s\n", + cached ? "(cached)" : "", + video_frame_count++, frame->coded_picture_number, + av_ts2timestr(frame->pts, &video_dec_ctx->time_base)); + + /* copy decoded frame to destination buffer: + * this is required since rawvideo expects non aligned data */ + av_image_copy(video_dst_data, video_dst_linesize, + (const uint8_t **)(frame->data), frame->linesize, + video_dec_ctx->pix_fmt, video_dec_ctx->width, video_dec_ctx->height); + + /* write to rawvideo file */ + fwrite(video_dst_data[0], 1, video_dst_bufsize, video_dst_file); + } + } else if (pkt.stream_index == audio_stream_idx) { + /* decode audio frame */ + ret = avcodec_decode_audio4(audio_dec_ctx, frame, got_frame, &pkt); + if (ret < 0) { + fprintf(stderr, "Error decoding audio frame (%s)\n", av_err2str(ret)); + return ret; + } + /* Some audio decoders decode only part of the packet, and have to be + * called again with the remainder of the packet data. + * Sample: fate-suite/lossless-audio/luckynight-partial.shn + * Also, some decoders might over-read the packet. */ + decoded = FFMIN(ret, pkt.size); + + if (*got_frame) { + size_t unpadded_linesize = frame->nb_samples * av_get_bytes_per_sample(frame->format); + printf("audio_frame%s n:%d nb_samples:%d pts:%s\n", + cached ? "(cached)" : "", + audio_frame_count++, frame->nb_samples, + av_ts2timestr(frame->pts, &audio_dec_ctx->time_base)); + + /* Write the raw audio data samples of the first plane. This works + * fine for packed formats (e.g. AV_SAMPLE_FMT_S16). However, + * most audio decoders output planar audio, which uses a separate + * plane of audio samples for each channel (e.g. AV_SAMPLE_FMT_S16P). + * In other words, this code will write only the first audio channel + * in these cases. + * You should use libswresample or libavfilter to convert the frame + * to packed data. */ + fwrite(frame->extended_data[0], 1, unpadded_linesize, audio_dst_file); + } + } + + /* If we use the new API with reference counting, we own the data and need + * to de-reference it when we don't use it anymore */ + if (*got_frame && api_mode == API_MODE_NEW_API_REF_COUNT) + av_frame_unref(frame); + + return decoded; +} + +static int open_codec_context(int *stream_idx, + AVFormatContext *fmt_ctx, enum AVMediaType type) +{ + int ret; + AVStream *st; + AVCodecContext *dec_ctx = NULL; + AVCodec *dec = NULL; + AVDictionary *opts = NULL; + + ret = av_find_best_stream(fmt_ctx, type, -1, -1, NULL, 0); + if (ret < 0) { + fprintf(stderr, "Could not find %s stream in input file '%s'\n", + av_get_media_type_string(type), src_filename); + return ret; + } else { + *stream_idx = ret; + st = fmt_ctx->streams[*stream_idx]; + + /* find decoder for the stream */ + dec_ctx = st->codec; + dec = avcodec_find_decoder(dec_ctx->codec_id); + if (!dec) { + fprintf(stderr, "Failed to find %s codec\n", + av_get_media_type_string(type)); + return AVERROR(EINVAL); + } + + /* Init the decoders, with or without reference counting */ + if (api_mode == API_MODE_NEW_API_REF_COUNT) + av_dict_set(&opts, "refcounted_frames", "1", 0); + if ((ret = avcodec_open2(dec_ctx, dec, &opts)) < 0) { + fprintf(stderr, "Failed to open %s codec\n", + av_get_media_type_string(type)); + return ret; + } + } + + return 0; +} + +static int get_format_from_sample_fmt(const char **fmt, + enum AVSampleFormat sample_fmt) +{ + int i; + struct sample_fmt_entry { + enum AVSampleFormat sample_fmt; const char *fmt_be, *fmt_le; + } sample_fmt_entries[] = { + { AV_SAMPLE_FMT_U8, "u8", "u8" }, + { AV_SAMPLE_FMT_S16, "s16be", "s16le" }, + { AV_SAMPLE_FMT_S32, "s32be", "s32le" }, + { AV_SAMPLE_FMT_FLT, "f32be", "f32le" }, + { AV_SAMPLE_FMT_DBL, "f64be", "f64le" }, + }; + *fmt = NULL; + + for (i = 0; i < FF_ARRAY_ELEMS(sample_fmt_entries); i++) { + struct sample_fmt_entry *entry = &sample_fmt_entries[i]; + if (sample_fmt == entry->sample_fmt) { + *fmt = AV_NE(entry->fmt_be, entry->fmt_le); + return 0; + } + } + + fprintf(stderr, + "sample format %s is not supported as output format\n", + av_get_sample_fmt_name(sample_fmt)); + return -1; +} + +int main (int argc, char **argv) +{ + int ret = 0, got_frame; + + if (argc != 4 && argc != 5) { + fprintf(stderr, "usage: %s [-refcount=] " + "input_file video_output_file audio_output_file\n" + "API example program to show how to read frames from an input file.\n" + "This program reads frames from a file, decodes them, and writes decoded\n" + "video frames to a rawvideo file named video_output_file, and decoded\n" + "audio frames to a rawaudio file named audio_output_file.\n\n" + "If the -refcount option is specified, the program use the\n" + "reference counting frame system which allows keeping a copy of\n" + "the data for longer than one decode call. If unset, it's using\n" + "the classic old method.\n" + "\n", argv[0]); + exit(1); + } + if (argc == 5) { + const char *mode = argv[1] + strlen("-refcount="); + if (!strcmp(mode, "old")) api_mode = API_MODE_OLD; + else if (!strcmp(mode, "new_norefcount")) api_mode = API_MODE_NEW_API_NO_REF_COUNT; + else if (!strcmp(mode, "new_refcount")) api_mode = API_MODE_NEW_API_REF_COUNT; + else { + fprintf(stderr, "unknow mode '%s'\n", mode); + exit(1); + } + argv++; + } + src_filename = argv[1]; + video_dst_filename = argv[2]; + audio_dst_filename = argv[3]; + + /* register all formats and codecs */ + av_register_all(); + + /* open input file, and allocate format context */ + if (avformat_open_input(&fmt_ctx, src_filename, NULL, NULL) < 0) { + fprintf(stderr, "Could not open source file %s\n", src_filename); + exit(1); + } + + /* retrieve stream information */ + if (avformat_find_stream_info(fmt_ctx, NULL) < 0) { + fprintf(stderr, "Could not find stream information\n"); + exit(1); + } + + if (open_codec_context(&video_stream_idx, fmt_ctx, AVMEDIA_TYPE_VIDEO) >= 0) { + video_stream = fmt_ctx->streams[video_stream_idx]; + video_dec_ctx = video_stream->codec; + + video_dst_file = fopen(video_dst_filename, "wb"); + if (!video_dst_file) { + fprintf(stderr, "Could not open destination file %s\n", video_dst_filename); + ret = 1; + goto end; + } + + /* allocate image where the decoded image will be put */ + ret = av_image_alloc(video_dst_data, video_dst_linesize, + video_dec_ctx->width, video_dec_ctx->height, + video_dec_ctx->pix_fmt, 1); + if (ret < 0) { + fprintf(stderr, "Could not allocate raw video buffer\n"); + goto end; + } + video_dst_bufsize = ret; + } + + if (open_codec_context(&audio_stream_idx, fmt_ctx, AVMEDIA_TYPE_AUDIO) >= 0) { + audio_stream = fmt_ctx->streams[audio_stream_idx]; + audio_dec_ctx = audio_stream->codec; + audio_dst_file = fopen(audio_dst_filename, "wb"); + if (!audio_dst_file) { + fprintf(stderr, "Could not open destination file %s\n", audio_dst_filename); + ret = 1; + goto end; + } + } + + /* dump input information to stderr */ + av_dump_format(fmt_ctx, 0, src_filename, 0); + + if (!audio_stream && !video_stream) { + fprintf(stderr, "Could not find audio or video stream in the input, aborting\n"); + ret = 1; + goto end; + } + + /* When using the new API, you need to use the libavutil/frame.h API, while + * the classic frame management is available in libavcodec */ + if (api_mode == API_MODE_OLD) + frame = avcodec_alloc_frame(); + else + frame = av_frame_alloc(); + if (!frame) { + fprintf(stderr, "Could not allocate frame\n"); + ret = AVERROR(ENOMEM); + goto end; + } + + /* initialize packet, set data to NULL, let the demuxer fill it */ + av_init_packet(&pkt); + pkt.data = NULL; + pkt.size = 0; + + if (video_stream) + printf("Demuxing video from file '%s' into '%s'\n", src_filename, video_dst_filename); + if (audio_stream) + printf("Demuxing audio from file '%s' into '%s'\n", src_filename, audio_dst_filename); + + /* read frames from the file */ + while (av_read_frame(fmt_ctx, &pkt) >= 0) { + AVPacket orig_pkt = pkt; + do { + ret = decode_packet(&got_frame, 0); + if (ret < 0) + break; + pkt.data += ret; + pkt.size -= ret; + } while (pkt.size > 0); + av_free_packet(&orig_pkt); + } + + /* flush cached frames */ + pkt.data = NULL; + pkt.size = 0; + do { + decode_packet(&got_frame, 1); + } while (got_frame); + + printf("Demuxing succeeded.\n"); + + if (video_stream) { + printf("Play the output video file with the command:\n" + "ffplay -f rawvideo -pix_fmt %s -video_size %dx%d %s\n", + av_get_pix_fmt_name(video_dec_ctx->pix_fmt), video_dec_ctx->width, video_dec_ctx->height, + video_dst_filename); + } + + if (audio_stream) { + enum AVSampleFormat sfmt = audio_dec_ctx->sample_fmt; + int n_channels = audio_dec_ctx->channels; + const char *fmt; + + if (av_sample_fmt_is_planar(sfmt)) { + const char *packed = av_get_sample_fmt_name(sfmt); + printf("Warning: the sample format the decoder produced is planar " + "(%s). This example will output the first channel only.\n", + packed ? packed : "?"); + sfmt = av_get_packed_sample_fmt(sfmt); + n_channels = 1; + } + + if ((ret = get_format_from_sample_fmt(&fmt, sfmt)) < 0) + goto end; + + printf("Play the output audio file with the command:\n" + "ffplay -f %s -ac %d -ar %d %s\n", + fmt, n_channels, audio_dec_ctx->sample_rate, + audio_dst_filename); + } + +end: + avcodec_close(video_dec_ctx); + avcodec_close(audio_dec_ctx); + avformat_close_input(&fmt_ctx); + if (video_dst_file) + fclose(video_dst_file); + if (audio_dst_file) + fclose(audio_dst_file); + if (api_mode == API_MODE_OLD) + avcodec_free_frame(&frame); + else + av_frame_free(&frame); + av_free(video_dst_data[0]); + + return ret < 0; +} diff --git a/3-Postprocessing/ffmpeg/doc/examples/filter_audio.c b/3-Postprocessing/ffmpeg/doc/examples/filter_audio.c new file mode 100644 index 0000000..8451f9c --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/examples/filter_audio.c @@ -0,0 +1,364 @@ +/* + * copyright (c) 2013 Andrew Kelley + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * libavfilter API usage example. + * + * @example filter_audio.c + * This example will generate a sine wave audio, + * pass it through a simple filter chain, and then compute the MD5 checksum of + * the output data. + * + * The filter chain it uses is: + * (input) -> abuffer -> volume -> aformat -> abuffersink -> (output) + * + * abuffer: This provides the endpoint where you can feed the decoded samples. + * volume: In this example we hardcode it to 0.90. + * aformat: This converts the samples to the samplefreq, channel layout, + * and sample format required by the audio device. + * abuffersink: This provides the endpoint where you can read the samples after + * they have passed through the filter chain. + */ + +#include +#include +#include +#include + +#include "libavutil/channel_layout.h" +#include "libavutil/md5.h" +#include "libavutil/opt.h" +#include "libavutil/samplefmt.h" + +#include "libavfilter/avfilter.h" +#include "libavfilter/buffersink.h" +#include "libavfilter/buffersrc.h" + +#define INPUT_SAMPLERATE 48000 +#define INPUT_FORMAT AV_SAMPLE_FMT_FLTP +#define INPUT_CHANNEL_LAYOUT AV_CH_LAYOUT_5POINT0 + +#define VOLUME_VAL 0.90 + +static int init_filter_graph(AVFilterGraph **graph, AVFilterContext **src, + AVFilterContext **sink) +{ + AVFilterGraph *filter_graph; + AVFilterContext *abuffer_ctx; + AVFilter *abuffer; + AVFilterContext *volume_ctx; + AVFilter *volume; + AVFilterContext *aformat_ctx; + AVFilter *aformat; + AVFilterContext *abuffersink_ctx; + AVFilter *abuffersink; + + AVDictionary *options_dict = NULL; + uint8_t options_str[1024]; + uint8_t ch_layout[64]; + + int err; + + /* Create a new filtergraph, which will contain all the filters. */ + filter_graph = avfilter_graph_alloc(); + if (!filter_graph) { + fprintf(stderr, "Unable to create filter graph.\n"); + return AVERROR(ENOMEM); + } + + /* Create the abuffer filter; + * it will be used for feeding the data into the graph. */ + abuffer = avfilter_get_by_name("abuffer"); + if (!abuffer) { + fprintf(stderr, "Could not find the abuffer filter.\n"); + return AVERROR_FILTER_NOT_FOUND; + } + + abuffer_ctx = avfilter_graph_alloc_filter(filter_graph, abuffer, "src"); + if (!abuffer_ctx) { + fprintf(stderr, "Could not allocate the abuffer instance.\n"); + return AVERROR(ENOMEM); + } + + /* Set the filter options through the AVOptions API. */ + av_get_channel_layout_string(ch_layout, sizeof(ch_layout), 0, INPUT_CHANNEL_LAYOUT); + av_opt_set (abuffer_ctx, "channel_layout", ch_layout, AV_OPT_SEARCH_CHILDREN); + av_opt_set (abuffer_ctx, "sample_fmt", av_get_sample_fmt_name(INPUT_FORMAT), AV_OPT_SEARCH_CHILDREN); + av_opt_set_q (abuffer_ctx, "time_base", (AVRational){ 1, INPUT_SAMPLERATE }, AV_OPT_SEARCH_CHILDREN); + av_opt_set_int(abuffer_ctx, "sample_rate", INPUT_SAMPLERATE, AV_OPT_SEARCH_CHILDREN); + + /* Now initialize the filter; we pass NULL options, since we have already + * set all the options above. */ + err = avfilter_init_str(abuffer_ctx, NULL); + if (err < 0) { + fprintf(stderr, "Could not initialize the abuffer filter.\n"); + return err; + } + + /* Create volume filter. */ + volume = avfilter_get_by_name("volume"); + if (!volume) { + fprintf(stderr, "Could not find the volume filter.\n"); + return AVERROR_FILTER_NOT_FOUND; + } + + volume_ctx = avfilter_graph_alloc_filter(filter_graph, volume, "volume"); + if (!volume_ctx) { + fprintf(stderr, "Could not allocate the volume instance.\n"); + return AVERROR(ENOMEM); + } + + /* A different way of passing the options is as key/value pairs in a + * dictionary. */ + av_dict_set(&options_dict, "volume", AV_STRINGIFY(VOLUME_VAL), 0); + err = avfilter_init_dict(volume_ctx, &options_dict); + av_dict_free(&options_dict); + if (err < 0) { + fprintf(stderr, "Could not initialize the volume filter.\n"); + return err; + } + + /* Create the aformat filter; + * it ensures that the output is of the format we want. */ + aformat = avfilter_get_by_name("aformat"); + if (!aformat) { + fprintf(stderr, "Could not find the aformat filter.\n"); + return AVERROR_FILTER_NOT_FOUND; + } + + aformat_ctx = avfilter_graph_alloc_filter(filter_graph, aformat, "aformat"); + if (!aformat_ctx) { + fprintf(stderr, "Could not allocate the aformat instance.\n"); + return AVERROR(ENOMEM); + } + + /* A third way of passing the options is in a string of the form + * key1=value1:key2=value2.... */ + snprintf(options_str, sizeof(options_str), + "sample_fmts=%s:sample_rates=%d:channel_layouts=0x%"PRIx64, + av_get_sample_fmt_name(AV_SAMPLE_FMT_S16), 44100, + (uint64_t)AV_CH_LAYOUT_STEREO); + err = avfilter_init_str(aformat_ctx, options_str); + if (err < 0) { + av_log(NULL, AV_LOG_ERROR, "Could not initialize the aformat filter.\n"); + return err; + } + + /* Finally create the abuffersink filter; + * it will be used to get the filtered data out of the graph. */ + abuffersink = avfilter_get_by_name("abuffersink"); + if (!abuffersink) { + fprintf(stderr, "Could not find the abuffersink filter.\n"); + return AVERROR_FILTER_NOT_FOUND; + } + + abuffersink_ctx = avfilter_graph_alloc_filter(filter_graph, abuffersink, "sink"); + if (!abuffersink_ctx) { + fprintf(stderr, "Could not allocate the abuffersink instance.\n"); + return AVERROR(ENOMEM); + } + + /* This filter takes no options. */ + err = avfilter_init_str(abuffersink_ctx, NULL); + if (err < 0) { + fprintf(stderr, "Could not initialize the abuffersink instance.\n"); + return err; + } + + /* Connect the filters; + * in this simple case the filters just form a linear chain. */ + err = avfilter_link(abuffer_ctx, 0, volume_ctx, 0); + if (err >= 0) + err = avfilter_link(volume_ctx, 0, aformat_ctx, 0); + if (err >= 0) + err = avfilter_link(aformat_ctx, 0, abuffersink_ctx, 0); + if (err < 0) { + fprintf(stderr, "Error connecting filters\n"); + return err; + } + + /* Configure the graph. */ + err = avfilter_graph_config(filter_graph, NULL); + if (err < 0) { + av_log(NULL, AV_LOG_ERROR, "Error configuring the filter graph\n"); + return err; + } + + *graph = filter_graph; + *src = abuffer_ctx; + *sink = abuffersink_ctx; + + return 0; +} + +/* Do something useful with the filtered data: this simple + * example just prints the MD5 checksum of each plane to stdout. */ +static int process_output(struct AVMD5 *md5, AVFrame *frame) +{ + int planar = av_sample_fmt_is_planar(frame->format); + int channels = av_get_channel_layout_nb_channels(frame->channel_layout); + int planes = planar ? channels : 1; + int bps = av_get_bytes_per_sample(frame->format); + int plane_size = bps * frame->nb_samples * (planar ? 1 : channels); + int i, j; + + for (i = 0; i < planes; i++) { + uint8_t checksum[16]; + + av_md5_init(md5); + av_md5_sum(checksum, frame->extended_data[i], plane_size); + + fprintf(stdout, "plane %d: 0x", i); + for (j = 0; j < sizeof(checksum); j++) + fprintf(stdout, "%02X", checksum[j]); + fprintf(stdout, "\n"); + } + fprintf(stdout, "\n"); + + return 0; +} + +/* Construct a frame of audio data to be filtered; + * this simple example just synthesizes a sine wave. */ +static int get_input(AVFrame *frame, int frame_num) +{ + int err, i, j; + +#define FRAME_SIZE 1024 + + /* Set up the frame properties and allocate the buffer for the data. */ + frame->sample_rate = INPUT_SAMPLERATE; + frame->format = INPUT_FORMAT; + frame->channel_layout = INPUT_CHANNEL_LAYOUT; + frame->nb_samples = FRAME_SIZE; + frame->pts = frame_num * FRAME_SIZE; + + err = av_frame_get_buffer(frame, 0); + if (err < 0) + return err; + + /* Fill the data for each channel. */ + for (i = 0; i < 5; i++) { + float *data = (float*)frame->extended_data[i]; + + for (j = 0; j < frame->nb_samples; j++) + data[j] = sin(2 * M_PI * (frame_num + j) * (i + 1) / FRAME_SIZE); + } + + return 0; +} + +int main(int argc, char *argv[]) +{ + struct AVMD5 *md5; + AVFilterGraph *graph; + AVFilterContext *src, *sink; + AVFrame *frame; + uint8_t errstr[1024]; + float duration; + int err, nb_frames, i; + + if (argc < 2) { + fprintf(stderr, "Usage: %s \n", argv[0]); + return 1; + } + + duration = atof(argv[1]); + nb_frames = duration * INPUT_SAMPLERATE / FRAME_SIZE; + if (nb_frames <= 0) { + fprintf(stderr, "Invalid duration: %s\n", argv[1]); + return 1; + } + + avfilter_register_all(); + + /* Allocate the frame we will be using to store the data. */ + frame = av_frame_alloc(); + if (!frame) { + fprintf(stderr, "Error allocating the frame\n"); + return 1; + } + + md5 = av_md5_alloc(); + if (!md5) { + fprintf(stderr, "Error allocating the MD5 context\n"); + return 1; + } + + /* Set up the filtergraph. */ + err = init_filter_graph(&graph, &src, &sink); + if (err < 0) { + fprintf(stderr, "Unable to init filter graph:"); + goto fail; + } + + /* the main filtering loop */ + for (i = 0; i < nb_frames; i++) { + /* get an input frame to be filtered */ + err = get_input(frame, i); + if (err < 0) { + fprintf(stderr, "Error generating input frame:"); + goto fail; + } + + /* Send the frame to the input of the filtergraph. */ + err = av_buffersrc_add_frame(src, frame); + if (err < 0) { + av_frame_unref(frame); + fprintf(stderr, "Error submitting the frame to the filtergraph:"); + goto fail; + } + + /* Get all the filtered output that is available. */ + while ((err = av_buffersink_get_frame(sink, frame)) >= 0) { + /* now do something with our filtered frame */ + err = process_output(md5, frame); + if (err < 0) { + fprintf(stderr, "Error processing the filtered frame:"); + goto fail; + } + av_frame_unref(frame); + } + + if (err == AVERROR(EAGAIN)) { + /* Need to feed more frames in. */ + continue; + } else if (err == AVERROR_EOF) { + /* Nothing more to do, finish. */ + break; + } else if (err < 0) { + /* An error occurred. */ + fprintf(stderr, "Error filtering the data:"); + goto fail; + } + } + + avfilter_graph_free(&graph); + av_frame_free(&frame); + av_freep(&md5); + + return 0; + +fail: + av_strerror(err, errstr, sizeof(errstr)); + fprintf(stderr, "%s\n", errstr); + return 1; +} diff --git a/3-Postprocessing/ffmpeg/doc/examples/filtering_audio.c b/3-Postprocessing/ffmpeg/doc/examples/filtering_audio.c new file mode 100644 index 0000000..46595fb --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/examples/filtering_audio.c @@ -0,0 +1,280 @@ +/* + * Copyright (c) 2010 Nicolas George + * Copyright (c) 2011 Stefano Sabatini + * Copyright (c) 2012 Clément Bœsch + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +/** + * @file + * API example for audio decoding and filtering + * @example filtering_audio.c + */ + +#include + +#include +#include +#include +#include +#include +#include +#include + +static const char *filter_descr = "aresample=8000,aformat=sample_fmts=s16:channel_layouts=mono"; +static const char *player = "ffplay -f s16le -ar 8000 -ac 1 -"; + +static AVFormatContext *fmt_ctx; +static AVCodecContext *dec_ctx; +AVFilterContext *buffersink_ctx; +AVFilterContext *buffersrc_ctx; +AVFilterGraph *filter_graph; +static int audio_stream_index = -1; + +static int open_input_file(const char *filename) +{ + int ret; + AVCodec *dec; + + if ((ret = avformat_open_input(&fmt_ctx, filename, NULL, NULL)) < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot open input file\n"); + return ret; + } + + if ((ret = avformat_find_stream_info(fmt_ctx, NULL)) < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot find stream information\n"); + return ret; + } + + /* select the audio stream */ + ret = av_find_best_stream(fmt_ctx, AVMEDIA_TYPE_AUDIO, -1, -1, &dec, 0); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot find a audio stream in the input file\n"); + return ret; + } + audio_stream_index = ret; + dec_ctx = fmt_ctx->streams[audio_stream_index]->codec; + av_opt_set_int(dec_ctx, "refcounted_frames", 1, 0); + + /* init the audio decoder */ + if ((ret = avcodec_open2(dec_ctx, dec, NULL)) < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot open audio decoder\n"); + return ret; + } + + return 0; +} + +static int init_filters(const char *filters_descr) +{ + char args[512]; + int ret = 0; + AVFilter *abuffersrc = avfilter_get_by_name("abuffer"); + AVFilter *abuffersink = avfilter_get_by_name("abuffersink"); + AVFilterInOut *outputs = avfilter_inout_alloc(); + AVFilterInOut *inputs = avfilter_inout_alloc(); + static const enum AVSampleFormat out_sample_fmts[] = { AV_SAMPLE_FMT_S16, -1 }; + static const int64_t out_channel_layouts[] = { AV_CH_LAYOUT_MONO, -1 }; + static const int out_sample_rates[] = { 8000, -1 }; + const AVFilterLink *outlink; + AVRational time_base = fmt_ctx->streams[audio_stream_index]->time_base; + + filter_graph = avfilter_graph_alloc(); + if (!outputs || !inputs || !filter_graph) { + ret = AVERROR(ENOMEM); + goto end; + } + + /* buffer audio source: the decoded frames from the decoder will be inserted here. */ + if (!dec_ctx->channel_layout) + dec_ctx->channel_layout = av_get_default_channel_layout(dec_ctx->channels); + snprintf(args, sizeof(args), + "time_base=%d/%d:sample_rate=%d:sample_fmt=%s:channel_layout=0x%"PRIx64, + time_base.num, time_base.den, dec_ctx->sample_rate, + av_get_sample_fmt_name(dec_ctx->sample_fmt), dec_ctx->channel_layout); + ret = avfilter_graph_create_filter(&buffersrc_ctx, abuffersrc, "in", + args, NULL, filter_graph); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot create audio buffer source\n"); + goto end; + } + + /* buffer audio sink: to terminate the filter chain. */ + ret = avfilter_graph_create_filter(&buffersink_ctx, abuffersink, "out", + NULL, NULL, filter_graph); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot create audio buffer sink\n"); + goto end; + } + + ret = av_opt_set_int_list(buffersink_ctx, "sample_fmts", out_sample_fmts, -1, + AV_OPT_SEARCH_CHILDREN); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot set output sample format\n"); + goto end; + } + + ret = av_opt_set_int_list(buffersink_ctx, "channel_layouts", out_channel_layouts, -1, + AV_OPT_SEARCH_CHILDREN); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot set output channel layout\n"); + goto end; + } + + ret = av_opt_set_int_list(buffersink_ctx, "sample_rates", out_sample_rates, -1, + AV_OPT_SEARCH_CHILDREN); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot set output sample rate\n"); + goto end; + } + + /* Endpoints for the filter graph. */ + outputs->name = av_strdup("in"); + outputs->filter_ctx = buffersrc_ctx; + outputs->pad_idx = 0; + outputs->next = NULL; + + inputs->name = av_strdup("out"); + inputs->filter_ctx = buffersink_ctx; + inputs->pad_idx = 0; + inputs->next = NULL; + + if ((ret = avfilter_graph_parse_ptr(filter_graph, filters_descr, + &inputs, &outputs, NULL)) < 0) + goto end; + + if ((ret = avfilter_graph_config(filter_graph, NULL)) < 0) + goto end; + + /* Print summary of the sink buffer + * Note: args buffer is reused to store channel layout string */ + outlink = buffersink_ctx->inputs[0]; + av_get_channel_layout_string(args, sizeof(args), -1, outlink->channel_layout); + av_log(NULL, AV_LOG_INFO, "Output: srate:%dHz fmt:%s chlayout:%s\n", + (int)outlink->sample_rate, + (char *)av_x_if_null(av_get_sample_fmt_name(outlink->format), "?"), + args); + +end: + avfilter_inout_free(&inputs); + avfilter_inout_free(&outputs); + + return ret; +} + +static void print_frame(const AVFrame *frame) +{ + const int n = frame->nb_samples * av_get_channel_layout_nb_channels(av_frame_get_channel_layout(frame)); + const uint16_t *p = (uint16_t*)frame->data[0]; + const uint16_t *p_end = p + n; + + while (p < p_end) { + fputc(*p & 0xff, stdout); + fputc(*p>>8 & 0xff, stdout); + p++; + } + fflush(stdout); +} + +int main(int argc, char **argv) +{ + int ret; + AVPacket packet0, packet; + AVFrame *frame = av_frame_alloc(); + AVFrame *filt_frame = av_frame_alloc(); + int got_frame; + + if (!frame || !filt_frame) { + perror("Could not allocate frame"); + exit(1); + } + if (argc != 2) { + fprintf(stderr, "Usage: %s file | %s\n", argv[0], player); + exit(1); + } + + av_register_all(); + avfilter_register_all(); + + if ((ret = open_input_file(argv[1])) < 0) + goto end; + if ((ret = init_filters(filter_descr)) < 0) + goto end; + + /* read all packets */ + packet0.data = NULL; + packet.data = NULL; + while (1) { + if (!packet0.data) { + if ((ret = av_read_frame(fmt_ctx, &packet)) < 0) + break; + packet0 = packet; + } + + if (packet.stream_index == audio_stream_index) { + got_frame = 0; + ret = avcodec_decode_audio4(dec_ctx, frame, &got_frame, &packet); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Error decoding audio\n"); + continue; + } + packet.size -= ret; + packet.data += ret; + + if (got_frame) { + /* push the audio data from decoded frame into the filtergraph */ + if (av_buffersrc_add_frame_flags(buffersrc_ctx, frame, 0) < 0) { + av_log(NULL, AV_LOG_ERROR, "Error while feeding the audio filtergraph\n"); + break; + } + + /* pull filtered audio from the filtergraph */ + while (1) { + ret = av_buffersink_get_frame(buffersink_ctx, filt_frame); + if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) + break; + if (ret < 0) + goto end; + print_frame(filt_frame); + av_frame_unref(filt_frame); + } + } + + if (packet.size <= 0) + av_free_packet(&packet0); + } else { + /* discard non-wanted packets */ + av_free_packet(&packet0); + } + } +end: + avfilter_graph_free(&filter_graph); + avcodec_close(dec_ctx); + avformat_close_input(&fmt_ctx); + av_frame_free(&frame); + av_frame_free(&filt_frame); + + if (ret < 0 && ret != AVERROR_EOF) { + fprintf(stderr, "Error occurred: %s\n", av_err2str(ret)); + exit(1); + } + + exit(0); +} diff --git a/3-Postprocessing/ffmpeg/doc/examples/filtering_video.c b/3-Postprocessing/ffmpeg/doc/examples/filtering_video.c new file mode 100644 index 0000000..8d59573 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/examples/filtering_video.c @@ -0,0 +1,261 @@ +/* + * Copyright (c) 2010 Nicolas George + * Copyright (c) 2011 Stefano Sabatini + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +/** + * @file + * API example for decoding and filtering + * @example filtering_video.c + */ + +#define _XOPEN_SOURCE 600 /* for usleep */ +#include + +#include +#include +#include +#include +#include +#include +#include + +const char *filter_descr = "scale=78:24"; + +static AVFormatContext *fmt_ctx; +static AVCodecContext *dec_ctx; +AVFilterContext *buffersink_ctx; +AVFilterContext *buffersrc_ctx; +AVFilterGraph *filter_graph; +static int video_stream_index = -1; +static int64_t last_pts = AV_NOPTS_VALUE; + +static int open_input_file(const char *filename) +{ + int ret; + AVCodec *dec; + + if ((ret = avformat_open_input(&fmt_ctx, filename, NULL, NULL)) < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot open input file\n"); + return ret; + } + + if ((ret = avformat_find_stream_info(fmt_ctx, NULL)) < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot find stream information\n"); + return ret; + } + + /* select the video stream */ + ret = av_find_best_stream(fmt_ctx, AVMEDIA_TYPE_VIDEO, -1, -1, &dec, 0); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot find a video stream in the input file\n"); + return ret; + } + video_stream_index = ret; + dec_ctx = fmt_ctx->streams[video_stream_index]->codec; + av_opt_set_int(dec_ctx, "refcounted_frames", 1, 0); + + /* init the video decoder */ + if ((ret = avcodec_open2(dec_ctx, dec, NULL)) < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot open video decoder\n"); + return ret; + } + + return 0; +} + +static int init_filters(const char *filters_descr) +{ + char args[512]; + int ret = 0; + AVFilter *buffersrc = avfilter_get_by_name("buffer"); + AVFilter *buffersink = avfilter_get_by_name("buffersink"); + AVFilterInOut *outputs = avfilter_inout_alloc(); + AVFilterInOut *inputs = avfilter_inout_alloc(); + enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE }; + + filter_graph = avfilter_graph_alloc(); + if (!outputs || !inputs || !filter_graph) { + ret = AVERROR(ENOMEM); + goto end; + } + + /* buffer video source: the decoded frames from the decoder will be inserted here. */ + snprintf(args, sizeof(args), + "video_size=%dx%d:pix_fmt=%d:time_base=%d/%d:pixel_aspect=%d/%d", + dec_ctx->width, dec_ctx->height, dec_ctx->pix_fmt, + dec_ctx->time_base.num, dec_ctx->time_base.den, + dec_ctx->sample_aspect_ratio.num, dec_ctx->sample_aspect_ratio.den); + + ret = avfilter_graph_create_filter(&buffersrc_ctx, buffersrc, "in", + args, NULL, filter_graph); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot create buffer source\n"); + goto end; + } + + /* buffer video sink: to terminate the filter chain. */ + ret = avfilter_graph_create_filter(&buffersink_ctx, buffersink, "out", + NULL, NULL, filter_graph); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot create buffer sink\n"); + goto end; + } + + ret = av_opt_set_int_list(buffersink_ctx, "pix_fmts", pix_fmts, + AV_PIX_FMT_NONE, AV_OPT_SEARCH_CHILDREN); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot set output pixel format\n"); + goto end; + } + + /* Endpoints for the filter graph. */ + outputs->name = av_strdup("in"); + outputs->filter_ctx = buffersrc_ctx; + outputs->pad_idx = 0; + outputs->next = NULL; + + inputs->name = av_strdup("out"); + inputs->filter_ctx = buffersink_ctx; + inputs->pad_idx = 0; + inputs->next = NULL; + + if ((ret = avfilter_graph_parse_ptr(filter_graph, filters_descr, + &inputs, &outputs, NULL)) < 0) + goto end; + + if ((ret = avfilter_graph_config(filter_graph, NULL)) < 0) + goto end; + +end: + avfilter_inout_free(&inputs); + avfilter_inout_free(&outputs); + + return ret; +} + +static void display_frame(const AVFrame *frame, AVRational time_base) +{ + int x, y; + uint8_t *p0, *p; + int64_t delay; + + if (frame->pts != AV_NOPTS_VALUE) { + if (last_pts != AV_NOPTS_VALUE) { + /* sleep roughly the right amount of time; + * usleep is in microseconds, just like AV_TIME_BASE. */ + delay = av_rescale_q(frame->pts - last_pts, + time_base, AV_TIME_BASE_Q); + if (delay > 0 && delay < 1000000) + usleep(delay); + } + last_pts = frame->pts; + } + + /* Trivial ASCII grayscale display. */ + p0 = frame->data[0]; + puts("\033c"); + for (y = 0; y < frame->height; y++) { + p = p0; + for (x = 0; x < frame->width; x++) + putchar(" .-+#"[*(p++) / 52]); + putchar('\n'); + p0 += frame->linesize[0]; + } + fflush(stdout); +} + +int main(int argc, char **argv) +{ + int ret; + AVPacket packet; + AVFrame *frame = av_frame_alloc(); + AVFrame *filt_frame = av_frame_alloc(); + int got_frame; + + if (!frame || !filt_frame) { + perror("Could not allocate frame"); + exit(1); + } + if (argc != 2) { + fprintf(stderr, "Usage: %s file\n", argv[0]); + exit(1); + } + + av_register_all(); + avfilter_register_all(); + + if ((ret = open_input_file(argv[1])) < 0) + goto end; + if ((ret = init_filters(filter_descr)) < 0) + goto end; + + /* read all packets */ + while (1) { + if ((ret = av_read_frame(fmt_ctx, &packet)) < 0) + break; + + if (packet.stream_index == video_stream_index) { + got_frame = 0; + ret = avcodec_decode_video2(dec_ctx, frame, &got_frame, &packet); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Error decoding video\n"); + break; + } + + if (got_frame) { + frame->pts = av_frame_get_best_effort_timestamp(frame); + + /* push the decoded frame into the filtergraph */ + if (av_buffersrc_add_frame_flags(buffersrc_ctx, frame, AV_BUFFERSRC_FLAG_KEEP_REF) < 0) { + av_log(NULL, AV_LOG_ERROR, "Error while feeding the filtergraph\n"); + break; + } + + /* pull filtered frames from the filtergraph */ + while (1) { + ret = av_buffersink_get_frame(buffersink_ctx, filt_frame); + if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) + break; + if (ret < 0) + goto end; + display_frame(filt_frame, buffersink_ctx->inputs[0]->time_base); + av_frame_unref(filt_frame); + } + av_frame_unref(frame); + } + } + av_free_packet(&packet); + } +end: + avfilter_graph_free(&filter_graph); + avcodec_close(dec_ctx); + avformat_close_input(&fmt_ctx); + av_frame_free(&frame); + av_frame_free(&filt_frame); + + if (ret < 0 && ret != AVERROR_EOF) { + fprintf(stderr, "Error occurred: %s\n", av_err2str(ret)); + exit(1); + } + + exit(0); +} diff --git a/3-Postprocessing/ffmpeg/doc/examples/metadata.c b/3-Postprocessing/ffmpeg/doc/examples/metadata.c new file mode 100644 index 0000000..f73c267 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/examples/metadata.c @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2011 Reinhard Tartler + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +/** + * @file + * Shows how the metadata API can be used in application programs. + * @example metadata.c + */ + +#include + +#include +#include + +int main (int argc, char **argv) +{ + AVFormatContext *fmt_ctx = NULL; + AVDictionaryEntry *tag = NULL; + int ret; + + if (argc != 2) { + printf("usage: %s \n" + "example program to demonstrate the use of the libavformat metadata API.\n" + "\n", argv[0]); + return 1; + } + + av_register_all(); + if ((ret = avformat_open_input(&fmt_ctx, argv[1], NULL, NULL))) + return ret; + + while ((tag = av_dict_get(fmt_ctx->metadata, "", tag, AV_DICT_IGNORE_SUFFIX))) + printf("%s=%s\n", tag->key, tag->value); + + avformat_close_input(&fmt_ctx); + return 0; +} diff --git a/3-Postprocessing/ffmpeg/doc/examples/muxing.c b/3-Postprocessing/ffmpeg/doc/examples/muxing.c new file mode 100644 index 0000000..ad8e027 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/examples/muxing.c @@ -0,0 +1,606 @@ +/* + * Copyright (c) 2003 Fabrice Bellard + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +/** + * @file + * libavformat API example. + * + * Output a media file in any supported libavformat format. The default + * codecs are used. + * @example muxing.c + */ + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +static int audio_is_eof, video_is_eof; + +#define STREAM_DURATION 10.0 +#define STREAM_FRAME_RATE 25 /* 25 images/s */ +#define STREAM_PIX_FMT AV_PIX_FMT_YUV420P /* default pix_fmt */ + +static int sws_flags = SWS_BICUBIC; + +static void log_packet(const AVFormatContext *fmt_ctx, const AVPacket *pkt) +{ + AVRational *time_base = &fmt_ctx->streams[pkt->stream_index]->time_base; + + printf("pts:%s pts_time:%s dts:%s dts_time:%s duration:%s duration_time:%s stream_index:%d\n", + av_ts2str(pkt->pts), av_ts2timestr(pkt->pts, time_base), + av_ts2str(pkt->dts), av_ts2timestr(pkt->dts, time_base), + av_ts2str(pkt->duration), av_ts2timestr(pkt->duration, time_base), + pkt->stream_index); +} + +static int write_frame(AVFormatContext *fmt_ctx, const AVRational *time_base, AVStream *st, AVPacket *pkt) +{ + /* rescale output packet timestamp values from codec to stream timebase */ + pkt->pts = av_rescale_q_rnd(pkt->pts, *time_base, st->time_base, AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX); + pkt->dts = av_rescale_q_rnd(pkt->dts, *time_base, st->time_base, AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX); + pkt->duration = av_rescale_q(pkt->duration, *time_base, st->time_base); + pkt->stream_index = st->index; + + /* Write the compressed frame to the media file. */ + log_packet(fmt_ctx, pkt); + return av_interleaved_write_frame(fmt_ctx, pkt); +} + +/* Add an output stream. */ +static AVStream *add_stream(AVFormatContext *oc, AVCodec **codec, + enum AVCodecID codec_id) +{ + AVCodecContext *c; + AVStream *st; + + /* find the encoder */ + *codec = avcodec_find_encoder(codec_id); + if (!(*codec)) { + fprintf(stderr, "Could not find encoder for '%s'\n", + avcodec_get_name(codec_id)); + exit(1); + } + + st = avformat_new_stream(oc, *codec); + if (!st) { + fprintf(stderr, "Could not allocate stream\n"); + exit(1); + } + st->id = oc->nb_streams-1; + c = st->codec; + + switch ((*codec)->type) { + case AVMEDIA_TYPE_AUDIO: + c->sample_fmt = (*codec)->sample_fmts ? + (*codec)->sample_fmts[0] : AV_SAMPLE_FMT_FLTP; + c->bit_rate = 64000; + c->sample_rate = 44100; + c->channels = 2; + break; + + case AVMEDIA_TYPE_VIDEO: + c->codec_id = codec_id; + + c->bit_rate = 400000; + /* Resolution must be a multiple of two. */ + c->width = 352; + c->height = 288; + /* timebase: This is the fundamental unit of time (in seconds) in terms + * of which frame timestamps are represented. For fixed-fps content, + * timebase should be 1/framerate and timestamp increments should be + * identical to 1. */ + c->time_base.den = STREAM_FRAME_RATE; + c->time_base.num = 1; + c->gop_size = 12; /* emit one intra frame every twelve frames at most */ + c->pix_fmt = STREAM_PIX_FMT; + if (c->codec_id == AV_CODEC_ID_MPEG2VIDEO) { + /* just for testing, we also add B frames */ + c->max_b_frames = 2; + } + if (c->codec_id == AV_CODEC_ID_MPEG1VIDEO) { + /* Needed to avoid using macroblocks in which some coeffs overflow. + * This does not happen with normal video, it just happens here as + * the motion of the chroma plane does not match the luma plane. */ + c->mb_decision = 2; + } + break; + + default: + break; + } + + /* Some formats want stream headers to be separate. */ + if (oc->oformat->flags & AVFMT_GLOBALHEADER) + c->flags |= CODEC_FLAG_GLOBAL_HEADER; + + return st; +} + +/**************************************************************/ +/* audio output */ + +static float t, tincr, tincr2; + +AVFrame *audio_frame; +static uint8_t **src_samples_data; +static int src_samples_linesize; +static int src_nb_samples; + +static int max_dst_nb_samples; +uint8_t **dst_samples_data; +int dst_samples_linesize; +int dst_samples_size; +int samples_count; + +struct SwrContext *swr_ctx = NULL; + +static void open_audio(AVFormatContext *oc, AVCodec *codec, AVStream *st) +{ + AVCodecContext *c; + int ret; + + c = st->codec; + + /* allocate and init a re-usable frame */ + audio_frame = av_frame_alloc(); + if (!audio_frame) { + fprintf(stderr, "Could not allocate audio frame\n"); + exit(1); + } + + /* open it */ + ret = avcodec_open2(c, codec, NULL); + if (ret < 0) { + fprintf(stderr, "Could not open audio codec: %s\n", av_err2str(ret)); + exit(1); + } + + /* init signal generator */ + t = 0; + tincr = 2 * M_PI * 110.0 / c->sample_rate; + /* increment frequency by 110 Hz per second */ + tincr2 = 2 * M_PI * 110.0 / c->sample_rate / c->sample_rate; + + src_nb_samples = c->codec->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE ? + 10000 : c->frame_size; + + ret = av_samples_alloc_array_and_samples(&src_samples_data, &src_samples_linesize, c->channels, + src_nb_samples, AV_SAMPLE_FMT_S16, 0); + if (ret < 0) { + fprintf(stderr, "Could not allocate source samples\n"); + exit(1); + } + + /* compute the number of converted samples: buffering is avoided + * ensuring that the output buffer will contain at least all the + * converted input samples */ + max_dst_nb_samples = src_nb_samples; + + /* create resampler context */ + if (c->sample_fmt != AV_SAMPLE_FMT_S16) { + swr_ctx = swr_alloc(); + if (!swr_ctx) { + fprintf(stderr, "Could not allocate resampler context\n"); + exit(1); + } + + /* set options */ + av_opt_set_int (swr_ctx, "in_channel_count", c->channels, 0); + av_opt_set_int (swr_ctx, "in_sample_rate", c->sample_rate, 0); + av_opt_set_sample_fmt(swr_ctx, "in_sample_fmt", AV_SAMPLE_FMT_S16, 0); + av_opt_set_int (swr_ctx, "out_channel_count", c->channels, 0); + av_opt_set_int (swr_ctx, "out_sample_rate", c->sample_rate, 0); + av_opt_set_sample_fmt(swr_ctx, "out_sample_fmt", c->sample_fmt, 0); + + /* initialize the resampling context */ + if ((ret = swr_init(swr_ctx)) < 0) { + fprintf(stderr, "Failed to initialize the resampling context\n"); + exit(1); + } + + ret = av_samples_alloc_array_and_samples(&dst_samples_data, &dst_samples_linesize, c->channels, + max_dst_nb_samples, c->sample_fmt, 0); + if (ret < 0) { + fprintf(stderr, "Could not allocate destination samples\n"); + exit(1); + } + } else { + dst_samples_data = src_samples_data; + } + dst_samples_size = av_samples_get_buffer_size(NULL, c->channels, max_dst_nb_samples, + c->sample_fmt, 0); +} + +/* Prepare a 16 bit dummy audio frame of 'frame_size' samples and + * 'nb_channels' channels. */ +static void get_audio_frame(int16_t *samples, int frame_size, int nb_channels) +{ + int j, i, v; + int16_t *q; + + q = samples; + for (j = 0; j < frame_size; j++) { + v = (int)(sin(t) * 10000); + for (i = 0; i < nb_channels; i++) + *q++ = v; + t += tincr; + tincr += tincr2; + } +} + +static void write_audio_frame(AVFormatContext *oc, AVStream *st, int flush) +{ + AVCodecContext *c; + AVPacket pkt = { 0 }; // data and size must be 0; + int got_packet, ret, dst_nb_samples; + + av_init_packet(&pkt); + c = st->codec; + + if (!flush) { + get_audio_frame((int16_t *)src_samples_data[0], src_nb_samples, c->channels); + + /* convert samples from native format to destination codec format, using the resampler */ + if (swr_ctx) { + /* compute destination number of samples */ + dst_nb_samples = av_rescale_rnd(swr_get_delay(swr_ctx, c->sample_rate) + src_nb_samples, + c->sample_rate, c->sample_rate, AV_ROUND_UP); + if (dst_nb_samples > max_dst_nb_samples) { + av_free(dst_samples_data[0]); + ret = av_samples_alloc(dst_samples_data, &dst_samples_linesize, c->channels, + dst_nb_samples, c->sample_fmt, 0); + if (ret < 0) + exit(1); + max_dst_nb_samples = dst_nb_samples; + dst_samples_size = av_samples_get_buffer_size(NULL, c->channels, dst_nb_samples, + c->sample_fmt, 0); + } + + /* convert to destination format */ + ret = swr_convert(swr_ctx, + dst_samples_data, dst_nb_samples, + (const uint8_t **)src_samples_data, src_nb_samples); + if (ret < 0) { + fprintf(stderr, "Error while converting\n"); + exit(1); + } + } else { + dst_nb_samples = src_nb_samples; + } + + audio_frame->nb_samples = dst_nb_samples; + audio_frame->pts = av_rescale_q(samples_count, (AVRational){1, c->sample_rate}, c->time_base); + avcodec_fill_audio_frame(audio_frame, c->channels, c->sample_fmt, + dst_samples_data[0], dst_samples_size, 0); + samples_count += dst_nb_samples; + } + + ret = avcodec_encode_audio2(c, &pkt, flush ? NULL : audio_frame, &got_packet); + if (ret < 0) { + fprintf(stderr, "Error encoding audio frame: %s\n", av_err2str(ret)); + exit(1); + } + + if (!got_packet) { + if (flush) + audio_is_eof = 1; + return; + } + + ret = write_frame(oc, &c->time_base, st, &pkt); + if (ret < 0) { + fprintf(stderr, "Error while writing audio frame: %s\n", + av_err2str(ret)); + exit(1); + } +} + +static void close_audio(AVFormatContext *oc, AVStream *st) +{ + avcodec_close(st->codec); + if (dst_samples_data != src_samples_data) { + av_free(dst_samples_data[0]); + av_free(dst_samples_data); + } + av_free(src_samples_data[0]); + av_free(src_samples_data); + av_frame_free(&audio_frame); +} + +/**************************************************************/ +/* video output */ + +static AVFrame *frame; +static AVPicture src_picture, dst_picture; +static int frame_count; + +static void open_video(AVFormatContext *oc, AVCodec *codec, AVStream *st) +{ + int ret; + AVCodecContext *c = st->codec; + + /* open the codec */ + ret = avcodec_open2(c, codec, NULL); + if (ret < 0) { + fprintf(stderr, "Could not open video codec: %s\n", av_err2str(ret)); + exit(1); + } + + /* allocate and init a re-usable frame */ + frame = av_frame_alloc(); + if (!frame) { + fprintf(stderr, "Could not allocate video frame\n"); + exit(1); + } + frame->format = c->pix_fmt; + frame->width = c->width; + frame->height = c->height; + + /* Allocate the encoded raw picture. */ + ret = avpicture_alloc(&dst_picture, c->pix_fmt, c->width, c->height); + if (ret < 0) { + fprintf(stderr, "Could not allocate picture: %s\n", av_err2str(ret)); + exit(1); + } + + /* If the output format is not YUV420P, then a temporary YUV420P + * picture is needed too. It is then converted to the required + * output format. */ + if (c->pix_fmt != AV_PIX_FMT_YUV420P) { + ret = avpicture_alloc(&src_picture, AV_PIX_FMT_YUV420P, c->width, c->height); + if (ret < 0) { + fprintf(stderr, "Could not allocate temporary picture: %s\n", + av_err2str(ret)); + exit(1); + } + } + + /* copy data and linesize picture pointers to frame */ + *((AVPicture *)frame) = dst_picture; +} + +/* Prepare a dummy image. */ +static void fill_yuv_image(AVPicture *pict, int frame_index, + int width, int height) +{ + int x, y, i; + + i = frame_index; + + /* Y */ + for (y = 0; y < height; y++) + for (x = 0; x < width; x++) + pict->data[0][y * pict->linesize[0] + x] = x + y + i * 3; + + /* Cb and Cr */ + for (y = 0; y < height / 2; y++) { + for (x = 0; x < width / 2; x++) { + pict->data[1][y * pict->linesize[1] + x] = 128 + y + i * 2; + pict->data[2][y * pict->linesize[2] + x] = 64 + x + i * 5; + } + } +} + +static void write_video_frame(AVFormatContext *oc, AVStream *st, int flush) +{ + int ret; + static struct SwsContext *sws_ctx; + AVCodecContext *c = st->codec; + + if (!flush) { + if (c->pix_fmt != AV_PIX_FMT_YUV420P) { + /* as we only generate a YUV420P picture, we must convert it + * to the codec pixel format if needed */ + if (!sws_ctx) { + sws_ctx = sws_getContext(c->width, c->height, AV_PIX_FMT_YUV420P, + c->width, c->height, c->pix_fmt, + sws_flags, NULL, NULL, NULL); + if (!sws_ctx) { + fprintf(stderr, + "Could not initialize the conversion context\n"); + exit(1); + } + } + fill_yuv_image(&src_picture, frame_count, c->width, c->height); + sws_scale(sws_ctx, + (const uint8_t * const *)src_picture.data, src_picture.linesize, + 0, c->height, dst_picture.data, dst_picture.linesize); + } else { + fill_yuv_image(&dst_picture, frame_count, c->width, c->height); + } + } + + if (oc->oformat->flags & AVFMT_RAWPICTURE && !flush) { + /* Raw video case - directly store the picture in the packet */ + AVPacket pkt; + av_init_packet(&pkt); + + pkt.flags |= AV_PKT_FLAG_KEY; + pkt.stream_index = st->index; + pkt.data = dst_picture.data[0]; + pkt.size = sizeof(AVPicture); + + ret = av_interleaved_write_frame(oc, &pkt); + } else { + AVPacket pkt = { 0 }; + int got_packet; + av_init_packet(&pkt); + + /* encode the image */ + frame->pts = frame_count; + ret = avcodec_encode_video2(c, &pkt, flush ? NULL : frame, &got_packet); + if (ret < 0) { + fprintf(stderr, "Error encoding video frame: %s\n", av_err2str(ret)); + exit(1); + } + /* If size is zero, it means the image was buffered. */ + + if (got_packet) { + ret = write_frame(oc, &c->time_base, st, &pkt); + } else { + if (flush) + video_is_eof = 1; + ret = 0; + } + } + + if (ret < 0) { + fprintf(stderr, "Error while writing video frame: %s\n", av_err2str(ret)); + exit(1); + } + frame_count++; +} + +static void close_video(AVFormatContext *oc, AVStream *st) +{ + avcodec_close(st->codec); + av_free(src_picture.data[0]); + av_free(dst_picture.data[0]); + av_frame_free(&frame); +} + +/**************************************************************/ +/* media file output */ + +int main(int argc, char **argv) +{ + const char *filename; + AVOutputFormat *fmt; + AVFormatContext *oc; + AVStream *audio_st, *video_st; + AVCodec *audio_codec, *video_codec; + double audio_time, video_time; + int flush, ret; + + /* Initialize libavcodec, and register all codecs and formats. */ + av_register_all(); + + if (argc != 2) { + printf("usage: %s output_file\n" + "API example program to output a media file with libavformat.\n" + "This program generates a synthetic audio and video stream, encodes and\n" + "muxes them into a file named output_file.\n" + "The output format is automatically guessed according to the file extension.\n" + "Raw images can also be output by using '%%d' in the filename.\n" + "\n", argv[0]); + return 1; + } + + filename = argv[1]; + + /* allocate the output media context */ + avformat_alloc_output_context2(&oc, NULL, NULL, filename); + if (!oc) { + printf("Could not deduce output format from file extension: using MPEG.\n"); + avformat_alloc_output_context2(&oc, NULL, "mpeg", filename); + } + if (!oc) + return 1; + + fmt = oc->oformat; + + /* Add the audio and video streams using the default format codecs + * and initialize the codecs. */ + video_st = NULL; + audio_st = NULL; + + if (fmt->video_codec != AV_CODEC_ID_NONE) + video_st = add_stream(oc, &video_codec, fmt->video_codec); + if (fmt->audio_codec != AV_CODEC_ID_NONE) + audio_st = add_stream(oc, &audio_codec, fmt->audio_codec); + + /* Now that all the parameters are set, we can open the audio and + * video codecs and allocate the necessary encode buffers. */ + if (video_st) + open_video(oc, video_codec, video_st); + if (audio_st) + open_audio(oc, audio_codec, audio_st); + + av_dump_format(oc, 0, filename, 1); + + /* open the output file, if needed */ + if (!(fmt->flags & AVFMT_NOFILE)) { + ret = avio_open(&oc->pb, filename, AVIO_FLAG_WRITE); + if (ret < 0) { + fprintf(stderr, "Could not open '%s': %s\n", filename, + av_err2str(ret)); + return 1; + } + } + + /* Write the stream header, if any. */ + ret = avformat_write_header(oc, NULL); + if (ret < 0) { + fprintf(stderr, "Error occurred when opening output file: %s\n", + av_err2str(ret)); + return 1; + } + + flush = 0; + while ((video_st && !video_is_eof) || (audio_st && !audio_is_eof)) { + /* Compute current audio and video time. */ + audio_time = (audio_st && !audio_is_eof) ? audio_st->pts.val * av_q2d(audio_st->time_base) : INFINITY; + video_time = (video_st && !video_is_eof) ? video_st->pts.val * av_q2d(video_st->time_base) : INFINITY; + + if (!flush && + (!audio_st || audio_time >= STREAM_DURATION) && + (!video_st || video_time >= STREAM_DURATION)) { + flush = 1; + } + + /* write interleaved audio and video frames */ + if (audio_st && !audio_is_eof && audio_time <= video_time) { + write_audio_frame(oc, audio_st, flush); + } else if (video_st && !video_is_eof && video_time < audio_time) { + write_video_frame(oc, video_st, flush); + } + } + + /* Write the trailer, if any. The trailer must be written before you + * close the CodecContexts open when you wrote the header; otherwise + * av_write_trailer() may try to use memory that was freed on + * av_codec_close(). */ + av_write_trailer(oc); + + /* Close each codec. */ + if (video_st) + close_video(oc, video_st); + if (audio_st) + close_audio(oc, audio_st); + + if (!(fmt->flags & AVFMT_NOFILE)) + /* Close the output file. */ + avio_close(oc->pb); + + /* free the stream */ + avformat_free_context(oc); + + return 0; +} diff --git a/3-Postprocessing/ffmpeg/doc/examples/remuxing.c b/3-Postprocessing/ffmpeg/doc/examples/remuxing.c new file mode 100644 index 0000000..39d9dee --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/examples/remuxing.c @@ -0,0 +1,165 @@ +/* + * Copyright (c) 2013 Stefano Sabatini + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +/** + * @file + * libavformat/libavcodec demuxing and muxing API example. + * + * Remux streams from one container format to another. + * @example remuxing.c + */ + +#include +#include + +static void log_packet(const AVFormatContext *fmt_ctx, const AVPacket *pkt, const char *tag) +{ + AVRational *time_base = &fmt_ctx->streams[pkt->stream_index]->time_base; + + printf("%s: pts:%s pts_time:%s dts:%s dts_time:%s duration:%s duration_time:%s stream_index:%d\n", + tag, + av_ts2str(pkt->pts), av_ts2timestr(pkt->pts, time_base), + av_ts2str(pkt->dts), av_ts2timestr(pkt->dts, time_base), + av_ts2str(pkt->duration), av_ts2timestr(pkt->duration, time_base), + pkt->stream_index); +} + +int main(int argc, char **argv) +{ + AVOutputFormat *ofmt = NULL; + AVFormatContext *ifmt_ctx = NULL, *ofmt_ctx = NULL; + AVPacket pkt; + const char *in_filename, *out_filename; + int ret, i; + + if (argc < 3) { + printf("usage: %s input output\n" + "API example program to remux a media file with libavformat and libavcodec.\n" + "The output format is guessed according to the file extension.\n" + "\n", argv[0]); + return 1; + } + + in_filename = argv[1]; + out_filename = argv[2]; + + av_register_all(); + + if ((ret = avformat_open_input(&ifmt_ctx, in_filename, 0, 0)) < 0) { + fprintf(stderr, "Could not open input file '%s'", in_filename); + goto end; + } + + if ((ret = avformat_find_stream_info(ifmt_ctx, 0)) < 0) { + fprintf(stderr, "Failed to retrieve input stream information"); + goto end; + } + + av_dump_format(ifmt_ctx, 0, in_filename, 0); + + avformat_alloc_output_context2(&ofmt_ctx, NULL, NULL, out_filename); + if (!ofmt_ctx) { + fprintf(stderr, "Could not create output context\n"); + ret = AVERROR_UNKNOWN; + goto end; + } + + ofmt = ofmt_ctx->oformat; + + for (i = 0; i < ifmt_ctx->nb_streams; i++) { + AVStream *in_stream = ifmt_ctx->streams[i]; + AVStream *out_stream = avformat_new_stream(ofmt_ctx, in_stream->codec->codec); + if (!out_stream) { + fprintf(stderr, "Failed allocating output stream\n"); + ret = AVERROR_UNKNOWN; + goto end; + } + + ret = avcodec_copy_context(out_stream->codec, in_stream->codec); + if (ret < 0) { + fprintf(stderr, "Failed to copy context from input to output stream codec context\n"); + goto end; + } + out_stream->codec->codec_tag = 0; + if (ofmt_ctx->oformat->flags & AVFMT_GLOBALHEADER) + out_stream->codec->flags |= CODEC_FLAG_GLOBAL_HEADER; + } + av_dump_format(ofmt_ctx, 0, out_filename, 1); + + if (!(ofmt->flags & AVFMT_NOFILE)) { + ret = avio_open(&ofmt_ctx->pb, out_filename, AVIO_FLAG_WRITE); + if (ret < 0) { + fprintf(stderr, "Could not open output file '%s'", out_filename); + goto end; + } + } + + ret = avformat_write_header(ofmt_ctx, NULL); + if (ret < 0) { + fprintf(stderr, "Error occurred when opening output file\n"); + goto end; + } + + while (1) { + AVStream *in_stream, *out_stream; + + ret = av_read_frame(ifmt_ctx, &pkt); + if (ret < 0) + break; + + in_stream = ifmt_ctx->streams[pkt.stream_index]; + out_stream = ofmt_ctx->streams[pkt.stream_index]; + + log_packet(ifmt_ctx, &pkt, "in"); + + /* copy packet */ + pkt.pts = av_rescale_q_rnd(pkt.pts, in_stream->time_base, out_stream->time_base, AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX); + pkt.dts = av_rescale_q_rnd(pkt.dts, in_stream->time_base, out_stream->time_base, AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX); + pkt.duration = av_rescale_q(pkt.duration, in_stream->time_base, out_stream->time_base); + pkt.pos = -1; + log_packet(ofmt_ctx, &pkt, "out"); + + ret = av_interleaved_write_frame(ofmt_ctx, &pkt); + if (ret < 0) { + fprintf(stderr, "Error muxing packet\n"); + break; + } + av_free_packet(&pkt); + } + + av_write_trailer(ofmt_ctx); +end: + + avformat_close_input(&ifmt_ctx); + + /* close output */ + if (ofmt_ctx && !(ofmt->flags & AVFMT_NOFILE)) + avio_close(ofmt_ctx->pb); + avformat_free_context(ofmt_ctx); + + if (ret < 0 && ret != AVERROR_EOF) { + fprintf(stderr, "Error occurred: %s\n", av_err2str(ret)); + return 1; + } + + return 0; +} diff --git a/3-Postprocessing/ffmpeg/doc/examples/resampling_audio.c b/3-Postprocessing/ffmpeg/doc/examples/resampling_audio.c new file mode 100644 index 0000000..f743cbe --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/examples/resampling_audio.c @@ -0,0 +1,215 @@ +/* + * Copyright (c) 2012 Stefano Sabatini + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +/** + * @example resampling_audio.c + * libswresample API use example. + */ + +#include +#include +#include +#include + +static int get_format_from_sample_fmt(const char **fmt, + enum AVSampleFormat sample_fmt) +{ + int i; + struct sample_fmt_entry { + enum AVSampleFormat sample_fmt; const char *fmt_be, *fmt_le; + } sample_fmt_entries[] = { + { AV_SAMPLE_FMT_U8, "u8", "u8" }, + { AV_SAMPLE_FMT_S16, "s16be", "s16le" }, + { AV_SAMPLE_FMT_S32, "s32be", "s32le" }, + { AV_SAMPLE_FMT_FLT, "f32be", "f32le" }, + { AV_SAMPLE_FMT_DBL, "f64be", "f64le" }, + }; + *fmt = NULL; + + for (i = 0; i < FF_ARRAY_ELEMS(sample_fmt_entries); i++) { + struct sample_fmt_entry *entry = &sample_fmt_entries[i]; + if (sample_fmt == entry->sample_fmt) { + *fmt = AV_NE(entry->fmt_be, entry->fmt_le); + return 0; + } + } + + fprintf(stderr, + "Sample format %s not supported as output format\n", + av_get_sample_fmt_name(sample_fmt)); + return AVERROR(EINVAL); +} + +/** + * Fill dst buffer with nb_samples, generated starting from t. + */ +static void fill_samples(double *dst, int nb_samples, int nb_channels, int sample_rate, double *t) +{ + int i, j; + double tincr = 1.0 / sample_rate, *dstp = dst; + const double c = 2 * M_PI * 440.0; + + /* generate sin tone with 440Hz frequency and duplicated channels */ + for (i = 0; i < nb_samples; i++) { + *dstp = sin(c * *t); + for (j = 1; j < nb_channels; j++) + dstp[j] = dstp[0]; + dstp += nb_channels; + *t += tincr; + } +} + +int main(int argc, char **argv) +{ + int64_t src_ch_layout = AV_CH_LAYOUT_STEREO, dst_ch_layout = AV_CH_LAYOUT_SURROUND; + int src_rate = 48000, dst_rate = 44100; + uint8_t **src_data = NULL, **dst_data = NULL; + int src_nb_channels = 0, dst_nb_channels = 0; + int src_linesize, dst_linesize; + int src_nb_samples = 1024, dst_nb_samples, max_dst_nb_samples; + enum AVSampleFormat src_sample_fmt = AV_SAMPLE_FMT_DBL, dst_sample_fmt = AV_SAMPLE_FMT_S16; + const char *dst_filename = NULL; + FILE *dst_file; + int dst_bufsize; + const char *fmt; + struct SwrContext *swr_ctx; + double t; + int ret; + + if (argc != 2) { + fprintf(stderr, "Usage: %s output_file\n" + "API example program to show how to resample an audio stream with libswresample.\n" + "This program generates a series of audio frames, resamples them to a specified " + "output format and rate and saves them to an output file named output_file.\n", + argv[0]); + exit(1); + } + dst_filename = argv[1]; + + dst_file = fopen(dst_filename, "wb"); + if (!dst_file) { + fprintf(stderr, "Could not open destination file %s\n", dst_filename); + exit(1); + } + + /* create resampler context */ + swr_ctx = swr_alloc(); + if (!swr_ctx) { + fprintf(stderr, "Could not allocate resampler context\n"); + ret = AVERROR(ENOMEM); + goto end; + } + + /* set options */ + av_opt_set_int(swr_ctx, "in_channel_layout", src_ch_layout, 0); + av_opt_set_int(swr_ctx, "in_sample_rate", src_rate, 0); + av_opt_set_sample_fmt(swr_ctx, "in_sample_fmt", src_sample_fmt, 0); + + av_opt_set_int(swr_ctx, "out_channel_layout", dst_ch_layout, 0); + av_opt_set_int(swr_ctx, "out_sample_rate", dst_rate, 0); + av_opt_set_sample_fmt(swr_ctx, "out_sample_fmt", dst_sample_fmt, 0); + + /* initialize the resampling context */ + if ((ret = swr_init(swr_ctx)) < 0) { + fprintf(stderr, "Failed to initialize the resampling context\n"); + goto end; + } + + /* allocate source and destination samples buffers */ + + src_nb_channels = av_get_channel_layout_nb_channels(src_ch_layout); + ret = av_samples_alloc_array_and_samples(&src_data, &src_linesize, src_nb_channels, + src_nb_samples, src_sample_fmt, 0); + if (ret < 0) { + fprintf(stderr, "Could not allocate source samples\n"); + goto end; + } + + /* compute the number of converted samples: buffering is avoided + * ensuring that the output buffer will contain at least all the + * converted input samples */ + max_dst_nb_samples = dst_nb_samples = + av_rescale_rnd(src_nb_samples, dst_rate, src_rate, AV_ROUND_UP); + + /* buffer is going to be directly written to a rawaudio file, no alignment */ + dst_nb_channels = av_get_channel_layout_nb_channels(dst_ch_layout); + ret = av_samples_alloc_array_and_samples(&dst_data, &dst_linesize, dst_nb_channels, + dst_nb_samples, dst_sample_fmt, 0); + if (ret < 0) { + fprintf(stderr, "Could not allocate destination samples\n"); + goto end; + } + + t = 0; + do { + /* generate synthetic audio */ + fill_samples((double *)src_data[0], src_nb_samples, src_nb_channels, src_rate, &t); + + /* compute destination number of samples */ + dst_nb_samples = av_rescale_rnd(swr_get_delay(swr_ctx, src_rate) + + src_nb_samples, dst_rate, src_rate, AV_ROUND_UP); + if (dst_nb_samples > max_dst_nb_samples) { + av_free(dst_data[0]); + ret = av_samples_alloc(dst_data, &dst_linesize, dst_nb_channels, + dst_nb_samples, dst_sample_fmt, 1); + if (ret < 0) + break; + max_dst_nb_samples = dst_nb_samples; + } + + /* convert to destination format */ + ret = swr_convert(swr_ctx, dst_data, dst_nb_samples, (const uint8_t **)src_data, src_nb_samples); + if (ret < 0) { + fprintf(stderr, "Error while converting\n"); + goto end; + } + dst_bufsize = av_samples_get_buffer_size(&dst_linesize, dst_nb_channels, + ret, dst_sample_fmt, 1); + if (dst_bufsize < 0) { + fprintf(stderr, "Could not get sample buffer size\n"); + goto end; + } + printf("t:%f in:%d out:%d\n", t, src_nb_samples, ret); + fwrite(dst_data[0], 1, dst_bufsize, dst_file); + } while (t < 10); + + if ((ret = get_format_from_sample_fmt(&fmt, dst_sample_fmt)) < 0) + goto end; + fprintf(stderr, "Resampling succeeded. Play the output file with the command:\n" + "ffplay -f %s -channel_layout %"PRId64" -channels %d -ar %d %s\n", + fmt, dst_ch_layout, dst_nb_channels, dst_rate, dst_filename); + +end: + if (dst_file) + fclose(dst_file); + + if (src_data) + av_freep(&src_data[0]); + av_freep(&src_data); + + if (dst_data) + av_freep(&dst_data[0]); + av_freep(&dst_data); + + swr_free(&swr_ctx); + return ret < 0; +} diff --git a/3-Postprocessing/ffmpeg/doc/examples/scaling_video.c b/3-Postprocessing/ffmpeg/doc/examples/scaling_video.c new file mode 100644 index 0000000..fcb98b7 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/examples/scaling_video.c @@ -0,0 +1,141 @@ +/* + * Copyright (c) 2012 Stefano Sabatini + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +/** + * @file + * libswscale API use example. + * @example scaling_video.c + */ + +#include +#include +#include + +static void fill_yuv_image(uint8_t *data[4], int linesize[4], + int width, int height, int frame_index) +{ + int x, y; + + /* Y */ + for (y = 0; y < height; y++) + for (x = 0; x < width; x++) + data[0][y * linesize[0] + x] = x + y + frame_index * 3; + + /* Cb and Cr */ + for (y = 0; y < height / 2; y++) { + for (x = 0; x < width / 2; x++) { + data[1][y * linesize[1] + x] = 128 + y + frame_index * 2; + data[2][y * linesize[2] + x] = 64 + x + frame_index * 5; + } + } +} + +int main(int argc, char **argv) +{ + uint8_t *src_data[4], *dst_data[4]; + int src_linesize[4], dst_linesize[4]; + int src_w = 320, src_h = 240, dst_w, dst_h; + enum AVPixelFormat src_pix_fmt = AV_PIX_FMT_YUV420P, dst_pix_fmt = AV_PIX_FMT_RGB24; + const char *dst_size = NULL; + const char *dst_filename = NULL; + FILE *dst_file; + int dst_bufsize; + struct SwsContext *sws_ctx; + int i, ret; + + if (argc != 3) { + fprintf(stderr, "Usage: %s output_file output_size\n" + "API example program to show how to scale an image with libswscale.\n" + "This program generates a series of pictures, rescales them to the given " + "output_size and saves them to an output file named output_file\n." + "\n", argv[0]); + exit(1); + } + dst_filename = argv[1]; + dst_size = argv[2]; + + if (av_parse_video_size(&dst_w, &dst_h, dst_size) < 0) { + fprintf(stderr, + "Invalid size '%s', must be in the form WxH or a valid size abbreviation\n", + dst_size); + exit(1); + } + + dst_file = fopen(dst_filename, "wb"); + if (!dst_file) { + fprintf(stderr, "Could not open destination file %s\n", dst_filename); + exit(1); + } + + /* create scaling context */ + sws_ctx = sws_getContext(src_w, src_h, src_pix_fmt, + dst_w, dst_h, dst_pix_fmt, + SWS_BILINEAR, NULL, NULL, NULL); + if (!sws_ctx) { + fprintf(stderr, + "Impossible to create scale context for the conversion " + "fmt:%s s:%dx%d -> fmt:%s s:%dx%d\n", + av_get_pix_fmt_name(src_pix_fmt), src_w, src_h, + av_get_pix_fmt_name(dst_pix_fmt), dst_w, dst_h); + ret = AVERROR(EINVAL); + goto end; + } + + /* allocate source and destination image buffers */ + if ((ret = av_image_alloc(src_data, src_linesize, + src_w, src_h, src_pix_fmt, 16)) < 0) { + fprintf(stderr, "Could not allocate source image\n"); + goto end; + } + + /* buffer is going to be written to rawvideo file, no alignment */ + if ((ret = av_image_alloc(dst_data, dst_linesize, + dst_w, dst_h, dst_pix_fmt, 1)) < 0) { + fprintf(stderr, "Could not allocate destination image\n"); + goto end; + } + dst_bufsize = ret; + + for (i = 0; i < 100; i++) { + /* generate synthetic video */ + fill_yuv_image(src_data, src_linesize, src_w, src_h, i); + + /* convert to destination format */ + sws_scale(sws_ctx, (const uint8_t * const*)src_data, + src_linesize, 0, src_h, dst_data, dst_linesize); + + /* write scaled image to file */ + fwrite(dst_data[0], 1, dst_bufsize, dst_file); + } + + fprintf(stderr, "Scaling succeeded. Play the output file with the command:\n" + "ffplay -f rawvideo -pix_fmt %s -video_size %dx%d %s\n", + av_get_pix_fmt_name(dst_pix_fmt), dst_w, dst_h, dst_filename); + +end: + if (dst_file) + fclose(dst_file); + av_freep(&src_data[0]); + av_freep(&dst_data[0]); + sws_freeContext(sws_ctx); + return ret < 0; +} diff --git a/3-Postprocessing/ffmpeg/doc/examples/transcode_aac.c b/3-Postprocessing/ffmpeg/doc/examples/transcode_aac.c new file mode 100644 index 0000000..bf0128f --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/examples/transcode_aac.c @@ -0,0 +1,755 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * simple audio converter + * + * @example transcode_aac.c + * Convert an input audio file to AAC in an MP4 container using FFmpeg. + * @author Andreas Unterweger (dustsigns@gmail.com) + */ + +#include + +#include "libavformat/avformat.h" +#include "libavformat/avio.h" + +#include "libavcodec/avcodec.h" + +#include "libavutil/audio_fifo.h" +#include "libavutil/avassert.h" +#include "libavutil/avstring.h" +#include "libavutil/frame.h" +#include "libavutil/opt.h" + +#include "libswresample/swresample.h" + +/** The output bit rate in kbit/s */ +#define OUTPUT_BIT_RATE 48000 +/** The number of output channels */ +#define OUTPUT_CHANNELS 2 +/** The audio sample output format */ +#define OUTPUT_SAMPLE_FORMAT AV_SAMPLE_FMT_S16 + +/** + * Convert an error code into a text message. + * @param error Error code to be converted + * @return Corresponding error text (not thread-safe) + */ +static char *const get_error_text(const int error) +{ + static char error_buffer[255]; + av_strerror(error, error_buffer, sizeof(error_buffer)); + return error_buffer; +} + +/** Open an input file and the required decoder. */ +static int open_input_file(const char *filename, + AVFormatContext **input_format_context, + AVCodecContext **input_codec_context) +{ + AVCodec *input_codec; + int error; + + /** Open the input file to read from it. */ + if ((error = avformat_open_input(input_format_context, filename, NULL, + NULL)) < 0) { + fprintf(stderr, "Could not open input file '%s' (error '%s')\n", + filename, get_error_text(error)); + *input_format_context = NULL; + return error; + } + + /** Get information on the input file (number of streams etc.). */ + if ((error = avformat_find_stream_info(*input_format_context, NULL)) < 0) { + fprintf(stderr, "Could not open find stream info (error '%s')\n", + get_error_text(error)); + avformat_close_input(input_format_context); + return error; + } + + /** Make sure that there is only one stream in the input file. */ + if ((*input_format_context)->nb_streams != 1) { + fprintf(stderr, "Expected one audio input stream, but found %d\n", + (*input_format_context)->nb_streams); + avformat_close_input(input_format_context); + return AVERROR_EXIT; + } + + /** Find a decoder for the audio stream. */ + if (!(input_codec = avcodec_find_decoder((*input_format_context)->streams[0]->codec->codec_id))) { + fprintf(stderr, "Could not find input codec\n"); + avformat_close_input(input_format_context); + return AVERROR_EXIT; + } + + /** Open the decoder for the audio stream to use it later. */ + if ((error = avcodec_open2((*input_format_context)->streams[0]->codec, + input_codec, NULL)) < 0) { + fprintf(stderr, "Could not open input codec (error '%s')\n", + get_error_text(error)); + avformat_close_input(input_format_context); + return error; + } + + /** Save the decoder context for easier access later. */ + *input_codec_context = (*input_format_context)->streams[0]->codec; + + return 0; +} + +/** + * Open an output file and the required encoder. + * Also set some basic encoder parameters. + * Some of these parameters are based on the input file's parameters. + */ +static int open_output_file(const char *filename, + AVCodecContext *input_codec_context, + AVFormatContext **output_format_context, + AVCodecContext **output_codec_context) +{ + AVIOContext *output_io_context = NULL; + AVStream *stream = NULL; + AVCodec *output_codec = NULL; + int error; + + /** Open the output file to write to it. */ + if ((error = avio_open(&output_io_context, filename, + AVIO_FLAG_WRITE)) < 0) { + fprintf(stderr, "Could not open output file '%s' (error '%s')\n", + filename, get_error_text(error)); + return error; + } + + /** Create a new format context for the output container format. */ + if (!(*output_format_context = avformat_alloc_context())) { + fprintf(stderr, "Could not allocate output format context\n"); + return AVERROR(ENOMEM); + } + + /** Associate the output file (pointer) with the container format context. */ + (*output_format_context)->pb = output_io_context; + + /** Guess the desired container format based on the file extension. */ + if (!((*output_format_context)->oformat = av_guess_format(NULL, filename, + NULL))) { + fprintf(stderr, "Could not find output file format\n"); + goto cleanup; + } + + av_strlcpy((*output_format_context)->filename, filename, + sizeof((*output_format_context)->filename)); + + /** Find the encoder to be used by its name. */ + if (!(output_codec = avcodec_find_encoder(AV_CODEC_ID_AAC))) { + fprintf(stderr, "Could not find an AAC encoder.\n"); + goto cleanup; + } + + /** Create a new audio stream in the output file container. */ + if (!(stream = avformat_new_stream(*output_format_context, output_codec))) { + fprintf(stderr, "Could not create new stream\n"); + error = AVERROR(ENOMEM); + goto cleanup; + } + + /** Save the encoder context for easiert access later. */ + *output_codec_context = stream->codec; + + /** + * Set the basic encoder parameters. + * The input file's sample rate is used to avoid a sample rate conversion. + */ + (*output_codec_context)->channels = OUTPUT_CHANNELS; + (*output_codec_context)->channel_layout = av_get_default_channel_layout(OUTPUT_CHANNELS); + (*output_codec_context)->sample_rate = input_codec_context->sample_rate; + (*output_codec_context)->sample_fmt = AV_SAMPLE_FMT_S16; + (*output_codec_context)->bit_rate = OUTPUT_BIT_RATE; + + /** + * Some container formats (like MP4) require global headers to be present + * Mark the encoder so that it behaves accordingly. + */ + if ((*output_format_context)->oformat->flags & AVFMT_GLOBALHEADER) + (*output_codec_context)->flags |= CODEC_FLAG_GLOBAL_HEADER; + + /** Open the encoder for the audio stream to use it later. */ + if ((error = avcodec_open2(*output_codec_context, output_codec, NULL)) < 0) { + fprintf(stderr, "Could not open output codec (error '%s')\n", + get_error_text(error)); + goto cleanup; + } + + return 0; + +cleanup: + avio_close((*output_format_context)->pb); + avformat_free_context(*output_format_context); + *output_format_context = NULL; + return error < 0 ? error : AVERROR_EXIT; +} + +/** Initialize one data packet for reading or writing. */ +static void init_packet(AVPacket *packet) +{ + av_init_packet(packet); + /** Set the packet data and size so that it is recognized as being empty. */ + packet->data = NULL; + packet->size = 0; +} + +/** Initialize one audio frame for reading from the input file */ +static int init_input_frame(AVFrame **frame) +{ + if (!(*frame = av_frame_alloc())) { + fprintf(stderr, "Could not allocate input frame\n"); + return AVERROR(ENOMEM); + } + return 0; +} + +/** + * Initialize the audio resampler based on the input and output codec settings. + * If the input and output sample formats differ, a conversion is required + * libswresample takes care of this, but requires initialization. + */ +static int init_resampler(AVCodecContext *input_codec_context, + AVCodecContext *output_codec_context, + SwrContext **resample_context) +{ + int error; + + /** + * Create a resampler context for the conversion. + * Set the conversion parameters. + * Default channel layouts based on the number of channels + * are assumed for simplicity (they are sometimes not detected + * properly by the demuxer and/or decoder). + */ + *resample_context = swr_alloc_set_opts(NULL, + av_get_default_channel_layout(output_codec_context->channels), + output_codec_context->sample_fmt, + output_codec_context->sample_rate, + av_get_default_channel_layout(input_codec_context->channels), + input_codec_context->sample_fmt, + input_codec_context->sample_rate, + 0, NULL); + if (!*resample_context) { + fprintf(stderr, "Could not allocate resample context\n"); + return AVERROR(ENOMEM); + } + /** + * Perform a sanity check so that the number of converted samples is + * not greater than the number of samples to be converted. + * If the sample rates differ, this case has to be handled differently + */ + av_assert0(output_codec_context->sample_rate == input_codec_context->sample_rate); + + /** Open the resampler with the specified parameters. */ + if ((error = swr_init(*resample_context)) < 0) { + fprintf(stderr, "Could not open resample context\n"); + swr_free(resample_context); + return error; + } + return 0; +} + +/** Initialize a FIFO buffer for the audio samples to be encoded. */ +static int init_fifo(AVAudioFifo **fifo) +{ + /** Create the FIFO buffer based on the specified output sample format. */ + if (!(*fifo = av_audio_fifo_alloc(OUTPUT_SAMPLE_FORMAT, OUTPUT_CHANNELS, 1))) { + fprintf(stderr, "Could not allocate FIFO\n"); + return AVERROR(ENOMEM); + } + return 0; +} + +/** Write the header of the output file container. */ +static int write_output_file_header(AVFormatContext *output_format_context) +{ + int error; + if ((error = avformat_write_header(output_format_context, NULL)) < 0) { + fprintf(stderr, "Could not write output file header (error '%s')\n", + get_error_text(error)); + return error; + } + return 0; +} + +/** Decode one audio frame from the input file. */ +static int decode_audio_frame(AVFrame *frame, + AVFormatContext *input_format_context, + AVCodecContext *input_codec_context, + int *data_present, int *finished) +{ + /** Packet used for temporary storage. */ + AVPacket input_packet; + int error; + init_packet(&input_packet); + + /** Read one audio frame from the input file into a temporary packet. */ + if ((error = av_read_frame(input_format_context, &input_packet)) < 0) { + /** If we are the the end of the file, flush the decoder below. */ + if (error == AVERROR_EOF) + *finished = 1; + else { + fprintf(stderr, "Could not read frame (error '%s')\n", + get_error_text(error)); + return error; + } + } + + /** + * Decode the audio frame stored in the temporary packet. + * The input audio stream decoder is used to do this. + * If we are at the end of the file, pass an empty packet to the decoder + * to flush it. + */ + if ((error = avcodec_decode_audio4(input_codec_context, frame, + data_present, &input_packet)) < 0) { + fprintf(stderr, "Could not decode frame (error '%s')\n", + get_error_text(error)); + av_free_packet(&input_packet); + return error; + } + + /** + * If the decoder has not been flushed completely, we are not finished, + * so that this function has to be called again. + */ + if (*finished && *data_present) + *finished = 0; + av_free_packet(&input_packet); + return 0; +} + +/** + * Initialize a temporary storage for the specified number of audio samples. + * The conversion requires temporary storage due to the different format. + * The number of audio samples to be allocated is specified in frame_size. + */ +static int init_converted_samples(uint8_t ***converted_input_samples, + AVCodecContext *output_codec_context, + int frame_size) +{ + int error; + + /** + * Allocate as many pointers as there are audio channels. + * Each pointer will later point to the audio samples of the corresponding + * channels (although it may be NULL for interleaved formats). + */ + if (!(*converted_input_samples = calloc(output_codec_context->channels, + sizeof(**converted_input_samples)))) { + fprintf(stderr, "Could not allocate converted input sample pointers\n"); + return AVERROR(ENOMEM); + } + + /** + * Allocate memory for the samples of all channels in one consecutive + * block for convenience. + */ + if ((error = av_samples_alloc(*converted_input_samples, NULL, + output_codec_context->channels, + frame_size, + output_codec_context->sample_fmt, 0)) < 0) { + fprintf(stderr, + "Could not allocate converted input samples (error '%s')\n", + get_error_text(error)); + av_freep(&(*converted_input_samples)[0]); + free(*converted_input_samples); + return error; + } + return 0; +} + +/** + * Convert the input audio samples into the output sample format. + * The conversion happens on a per-frame basis, the size of which is specified + * by frame_size. + */ +static int convert_samples(const uint8_t **input_data, + uint8_t **converted_data, const int frame_size, + SwrContext *resample_context) +{ + int error; + + /** Convert the samples using the resampler. */ + if ((error = swr_convert(resample_context, + converted_data, frame_size, + input_data , frame_size)) < 0) { + fprintf(stderr, "Could not convert input samples (error '%s')\n", + get_error_text(error)); + return error; + } + + return 0; +} + +/** Add converted input audio samples to the FIFO buffer for later processing. */ +static int add_samples_to_fifo(AVAudioFifo *fifo, + uint8_t **converted_input_samples, + const int frame_size) +{ + int error; + + /** + * Make the FIFO as large as it needs to be to hold both, + * the old and the new samples. + */ + if ((error = av_audio_fifo_realloc(fifo, av_audio_fifo_size(fifo) + frame_size)) < 0) { + fprintf(stderr, "Could not reallocate FIFO\n"); + return error; + } + + /** Store the new samples in the FIFO buffer. */ + if (av_audio_fifo_write(fifo, (void **)converted_input_samples, + frame_size) < frame_size) { + fprintf(stderr, "Could not write data to FIFO\n"); + return AVERROR_EXIT; + } + return 0; +} + +/** + * Read one audio frame from the input file, decodes, converts and stores + * it in the FIFO buffer. + */ +static int read_decode_convert_and_store(AVAudioFifo *fifo, + AVFormatContext *input_format_context, + AVCodecContext *input_codec_context, + AVCodecContext *output_codec_context, + SwrContext *resampler_context, + int *finished) +{ + /** Temporary storage of the input samples of the frame read from the file. */ + AVFrame *input_frame = NULL; + /** Temporary storage for the converted input samples. */ + uint8_t **converted_input_samples = NULL; + int data_present; + int ret = AVERROR_EXIT; + + /** Initialize temporary storage for one input frame. */ + if (init_input_frame(&input_frame)) + goto cleanup; + /** Decode one frame worth of audio samples. */ + if (decode_audio_frame(input_frame, input_format_context, + input_codec_context, &data_present, finished)) + goto cleanup; + /** + * If we are at the end of the file and there are no more samples + * in the decoder which are delayed, we are actually finished. + * This must not be treated as an error. + */ + if (*finished && !data_present) { + ret = 0; + goto cleanup; + } + /** If there is decoded data, convert and store it */ + if (data_present) { + /** Initialize the temporary storage for the converted input samples. */ + if (init_converted_samples(&converted_input_samples, output_codec_context, + input_frame->nb_samples)) + goto cleanup; + + /** + * Convert the input samples to the desired output sample format. + * This requires a temporary storage provided by converted_input_samples. + */ + if (convert_samples((const uint8_t**)input_frame->extended_data, converted_input_samples, + input_frame->nb_samples, resampler_context)) + goto cleanup; + + /** Add the converted input samples to the FIFO buffer for later processing. */ + if (add_samples_to_fifo(fifo, converted_input_samples, + input_frame->nb_samples)) + goto cleanup; + ret = 0; + } + ret = 0; + +cleanup: + if (converted_input_samples) { + av_freep(&converted_input_samples[0]); + free(converted_input_samples); + } + av_frame_free(&input_frame); + + return ret; +} + +/** + * Initialize one input frame for writing to the output file. + * The frame will be exactly frame_size samples large. + */ +static int init_output_frame(AVFrame **frame, + AVCodecContext *output_codec_context, + int frame_size) +{ + int error; + + /** Create a new frame to store the audio samples. */ + if (!(*frame = av_frame_alloc())) { + fprintf(stderr, "Could not allocate output frame\n"); + return AVERROR_EXIT; + } + + /** + * Set the frame's parameters, especially its size and format. + * av_frame_get_buffer needs this to allocate memory for the + * audio samples of the frame. + * Default channel layouts based on the number of channels + * are assumed for simplicity. + */ + (*frame)->nb_samples = frame_size; + (*frame)->channel_layout = output_codec_context->channel_layout; + (*frame)->format = output_codec_context->sample_fmt; + (*frame)->sample_rate = output_codec_context->sample_rate; + + /** + * Allocate the samples of the created frame. This call will make + * sure that the audio frame can hold as many samples as specified. + */ + if ((error = av_frame_get_buffer(*frame, 0)) < 0) { + fprintf(stderr, "Could allocate output frame samples (error '%s')\n", + get_error_text(error)); + av_frame_free(frame); + return error; + } + + return 0; +} + +/** Encode one frame worth of audio to the output file. */ +static int encode_audio_frame(AVFrame *frame, + AVFormatContext *output_format_context, + AVCodecContext *output_codec_context, + int *data_present) +{ + /** Packet used for temporary storage. */ + AVPacket output_packet; + int error; + init_packet(&output_packet); + + /** + * Encode the audio frame and store it in the temporary packet. + * The output audio stream encoder is used to do this. + */ + if ((error = avcodec_encode_audio2(output_codec_context, &output_packet, + frame, data_present)) < 0) { + fprintf(stderr, "Could not encode frame (error '%s')\n", + get_error_text(error)); + av_free_packet(&output_packet); + return error; + } + + /** Write one audio frame from the temporary packet to the output file. */ + if (*data_present) { + if ((error = av_write_frame(output_format_context, &output_packet)) < 0) { + fprintf(stderr, "Could not write frame (error '%s')\n", + get_error_text(error)); + av_free_packet(&output_packet); + return error; + } + + av_free_packet(&output_packet); + } + + return 0; +} + +/** + * Load one audio frame from the FIFO buffer, encode and write it to the + * output file. + */ +static int load_encode_and_write(AVAudioFifo *fifo, + AVFormatContext *output_format_context, + AVCodecContext *output_codec_context) +{ + /** Temporary storage of the output samples of the frame written to the file. */ + AVFrame *output_frame; + /** + * Use the maximum number of possible samples per frame. + * If there is less than the maximum possible frame size in the FIFO + * buffer use this number. Otherwise, use the maximum possible frame size + */ + const int frame_size = FFMIN(av_audio_fifo_size(fifo), + output_codec_context->frame_size); + int data_written; + + /** Initialize temporary storage for one output frame. */ + if (init_output_frame(&output_frame, output_codec_context, frame_size)) + return AVERROR_EXIT; + + /** + * Read as many samples from the FIFO buffer as required to fill the frame. + * The samples are stored in the frame temporarily. + */ + if (av_audio_fifo_read(fifo, (void **)output_frame->data, frame_size) < frame_size) { + fprintf(stderr, "Could not read data from FIFO\n"); + av_frame_free(&output_frame); + return AVERROR_EXIT; + } + + /** Encode one frame worth of audio samples. */ + if (encode_audio_frame(output_frame, output_format_context, + output_codec_context, &data_written)) { + av_frame_free(&output_frame); + return AVERROR_EXIT; + } + av_frame_free(&output_frame); + return 0; +} + +/** Write the trailer of the output file container. */ +static int write_output_file_trailer(AVFormatContext *output_format_context) +{ + int error; + if ((error = av_write_trailer(output_format_context)) < 0) { + fprintf(stderr, "Could not write output file trailer (error '%s')\n", + get_error_text(error)); + return error; + } + return 0; +} + +/** Convert an audio file to an AAC file in an MP4 container. */ +int main(int argc, char **argv) +{ + AVFormatContext *input_format_context = NULL, *output_format_context = NULL; + AVCodecContext *input_codec_context = NULL, *output_codec_context = NULL; + SwrContext *resample_context = NULL; + AVAudioFifo *fifo = NULL; + int ret = AVERROR_EXIT; + + if (argc < 3) { + fprintf(stderr, "Usage: %s \n", argv[0]); + exit(1); + } + + /** Register all codecs and formats so that they can be used. */ + av_register_all(); + /** Open the input file for reading. */ + if (open_input_file(argv[1], &input_format_context, + &input_codec_context)) + goto cleanup; + /** Open the output file for writing. */ + if (open_output_file(argv[2], input_codec_context, + &output_format_context, &output_codec_context)) + goto cleanup; + /** Initialize the resampler to be able to convert audio sample formats. */ + if (init_resampler(input_codec_context, output_codec_context, + &resample_context)) + goto cleanup; + /** Initialize the FIFO buffer to store audio samples to be encoded. */ + if (init_fifo(&fifo)) + goto cleanup; + /** Write the header of the output file container. */ + if (write_output_file_header(output_format_context)) + goto cleanup; + + /** + * Loop as long as we have input samples to read or output samples + * to write; abort as soon as we have neither. + */ + while (1) { + /** Use the encoder's desired frame size for processing. */ + const int output_frame_size = output_codec_context->frame_size; + int finished = 0; + + /** + * Make sure that there is one frame worth of samples in the FIFO + * buffer so that the encoder can do its work. + * Since the decoder's and the encoder's frame size may differ, we + * need to FIFO buffer to store as many frames worth of input samples + * that they make up at least one frame worth of output samples. + */ + while (av_audio_fifo_size(fifo) < output_frame_size) { + /** + * Decode one frame worth of audio samples, convert it to the + * output sample format and put it into the FIFO buffer. + */ + if (read_decode_convert_and_store(fifo, input_format_context, + input_codec_context, + output_codec_context, + resample_context, &finished)) + goto cleanup; + + /** + * If we are at the end of the input file, we continue + * encoding the remaining audio samples to the output file. + */ + if (finished) + break; + } + + /** + * If we have enough samples for the encoder, we encode them. + * At the end of the file, we pass the remaining samples to + * the encoder. + */ + while (av_audio_fifo_size(fifo) >= output_frame_size || + (finished && av_audio_fifo_size(fifo) > 0)) + /** + * Take one frame worth of audio samples from the FIFO buffer, + * encode it and write it to the output file. + */ + if (load_encode_and_write(fifo, output_format_context, + output_codec_context)) + goto cleanup; + + /** + * If we are at the end of the input file and have encoded + * all remaining samples, we can exit this loop and finish. + */ + if (finished) { + int data_written; + /** Flush the encoder as it may have delayed frames. */ + do { + if (encode_audio_frame(NULL, output_format_context, + output_codec_context, &data_written)) + goto cleanup; + } while (data_written); + break; + } + } + + /** Write the trailer of the output file container. */ + if (write_output_file_trailer(output_format_context)) + goto cleanup; + ret = 0; + +cleanup: + if (fifo) + av_audio_fifo_free(fifo); + swr_free(&resample_context); + if (output_codec_context) + avcodec_close(output_codec_context); + if (output_format_context) { + avio_close(output_format_context->pb); + avformat_free_context(output_format_context); + } + if (input_codec_context) + avcodec_close(input_codec_context); + if (input_format_context) + avformat_close_input(&input_format_context); + + return ret; +} diff --git a/3-Postprocessing/ffmpeg/doc/examples/transcoding.c b/3-Postprocessing/ffmpeg/doc/examples/transcoding.c new file mode 100644 index 0000000..5194de3 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/examples/transcoding.c @@ -0,0 +1,597 @@ +/* + * Copyright (c) 2010 Nicolas George + * Copyright (c) 2011 Stefano Sabatini + * Copyright (c) 2014 Andrey Utkin + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +/** + * @file + * API example for demuxing, decoding, filtering, encoding and muxing + * @example doc/examples/transcoding.c + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +static AVFormatContext *ifmt_ctx; +static AVFormatContext *ofmt_ctx; +typedef struct FilteringContext { + AVFilterContext *buffersink_ctx; + AVFilterContext *buffersrc_ctx; + AVFilterGraph *filter_graph; +} FilteringContext; +static FilteringContext *filter_ctx; + +static int open_input_file(const char *filename) +{ + int ret; + unsigned int i; + + ifmt_ctx = NULL; + if ((ret = avformat_open_input(&ifmt_ctx, filename, NULL, NULL)) < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot open input file\n"); + return ret; + } + + if ((ret = avformat_find_stream_info(ifmt_ctx, NULL)) < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot find stream information\n"); + return ret; + } + + for (i = 0; i < ifmt_ctx->nb_streams; i++) { + AVStream *stream; + AVCodecContext *codec_ctx; + stream = ifmt_ctx->streams[i]; + codec_ctx = stream->codec; + /* Reencode video & audio and remux subtitles etc. */ + if (codec_ctx->codec_type == AVMEDIA_TYPE_VIDEO + || codec_ctx->codec_type == AVMEDIA_TYPE_AUDIO) { + /* Open decoder */ + ret = avcodec_open2(codec_ctx, + avcodec_find_decoder(codec_ctx->codec_id), NULL); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Failed to open decoder for stream #%u\n", i); + return ret; + } + } + } + + av_dump_format(ifmt_ctx, 0, filename, 0); + return 0; +} + +static int open_output_file(const char *filename) +{ + AVStream *out_stream; + AVStream *in_stream; + AVCodecContext *dec_ctx, *enc_ctx; + AVCodec *encoder; + int ret; + unsigned int i; + + ofmt_ctx = NULL; + avformat_alloc_output_context2(&ofmt_ctx, NULL, NULL, filename); + if (!ofmt_ctx) { + av_log(NULL, AV_LOG_ERROR, "Could not create output context\n"); + return AVERROR_UNKNOWN; + } + + + for (i = 0; i < ifmt_ctx->nb_streams; i++) { + out_stream = avformat_new_stream(ofmt_ctx, NULL); + if (!out_stream) { + av_log(NULL, AV_LOG_ERROR, "Failed allocating output stream\n"); + return AVERROR_UNKNOWN; + } + + in_stream = ifmt_ctx->streams[i]; + dec_ctx = in_stream->codec; + enc_ctx = out_stream->codec; + + if (dec_ctx->codec_type == AVMEDIA_TYPE_VIDEO + || dec_ctx->codec_type == AVMEDIA_TYPE_AUDIO) { + /* in this example, we choose transcoding to same codec */ + encoder = avcodec_find_encoder(dec_ctx->codec_id); + + /* In this example, we transcode to same properties (picture size, + * sample rate etc.). These properties can be changed for output + * streams easily using filters */ + if (dec_ctx->codec_type == AVMEDIA_TYPE_VIDEO) { + enc_ctx->height = dec_ctx->height; + enc_ctx->width = dec_ctx->width; + enc_ctx->sample_aspect_ratio = dec_ctx->sample_aspect_ratio; + /* take first format from list of supported formats */ + enc_ctx->pix_fmt = encoder->pix_fmts[0]; + /* video time_base can be set to whatever is handy and supported by encoder */ + enc_ctx->time_base = dec_ctx->time_base; + } else { + enc_ctx->sample_rate = dec_ctx->sample_rate; + enc_ctx->channel_layout = dec_ctx->channel_layout; + enc_ctx->channels = av_get_channel_layout_nb_channels(enc_ctx->channel_layout); + /* take first format from list of supported formats */ + enc_ctx->sample_fmt = encoder->sample_fmts[0]; + enc_ctx->time_base = (AVRational){1, enc_ctx->sample_rate}; + } + + /* Third parameter can be used to pass settings to encoder */ + ret = avcodec_open2(enc_ctx, encoder, NULL); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot open video encoder for stream #%u\n", i); + return ret; + } + } else if (dec_ctx->codec_type == AVMEDIA_TYPE_UNKNOWN) { + av_log(NULL, AV_LOG_FATAL, "Elementary stream #%d is of unknown type, cannot proceed\n", i); + return AVERROR_INVALIDDATA; + } else { + /* if this stream must be remuxed */ + ret = avcodec_copy_context(ofmt_ctx->streams[i]->codec, + ifmt_ctx->streams[i]->codec); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Copying stream context failed\n"); + return ret; + } + } + + if (ofmt_ctx->oformat->flags & AVFMT_GLOBALHEADER) + enc_ctx->flags |= CODEC_FLAG_GLOBAL_HEADER; + + } + av_dump_format(ofmt_ctx, 0, filename, 1); + + if (!(ofmt_ctx->oformat->flags & AVFMT_NOFILE)) { + ret = avio_open(&ofmt_ctx->pb, filename, AVIO_FLAG_WRITE); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Could not open output file '%s'", filename); + return ret; + } + } + + /* init muxer, write output file header */ + ret = avformat_write_header(ofmt_ctx, NULL); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Error occurred when opening output file\n"); + return ret; + } + + return 0; +} + +static int init_filter(FilteringContext* fctx, AVCodecContext *dec_ctx, + AVCodecContext *enc_ctx, const char *filter_spec) +{ + char args[512]; + int ret = 0; + AVFilter *buffersrc = NULL; + AVFilter *buffersink = NULL; + AVFilterContext *buffersrc_ctx = NULL; + AVFilterContext *buffersink_ctx = NULL; + AVFilterInOut *outputs = avfilter_inout_alloc(); + AVFilterInOut *inputs = avfilter_inout_alloc(); + AVFilterGraph *filter_graph = avfilter_graph_alloc(); + + if (!outputs || !inputs || !filter_graph) { + ret = AVERROR(ENOMEM); + goto end; + } + + if (dec_ctx->codec_type == AVMEDIA_TYPE_VIDEO) { + buffersrc = avfilter_get_by_name("buffer"); + buffersink = avfilter_get_by_name("buffersink"); + if (!buffersrc || !buffersink) { + av_log(NULL, AV_LOG_ERROR, "filtering source or sink element not found\n"); + ret = AVERROR_UNKNOWN; + goto end; + } + + snprintf(args, sizeof(args), + "video_size=%dx%d:pix_fmt=%d:time_base=%d/%d:pixel_aspect=%d/%d", + dec_ctx->width, dec_ctx->height, dec_ctx->pix_fmt, + dec_ctx->time_base.num, dec_ctx->time_base.den, + dec_ctx->sample_aspect_ratio.num, + dec_ctx->sample_aspect_ratio.den); + + ret = avfilter_graph_create_filter(&buffersrc_ctx, buffersrc, "in", + args, NULL, filter_graph); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot create buffer source\n"); + goto end; + } + + ret = avfilter_graph_create_filter(&buffersink_ctx, buffersink, "out", + NULL, NULL, filter_graph); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot create buffer sink\n"); + goto end; + } + + ret = av_opt_set_bin(buffersink_ctx, "pix_fmts", + (uint8_t*)&enc_ctx->pix_fmt, sizeof(enc_ctx->pix_fmt), + AV_OPT_SEARCH_CHILDREN); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot set output pixel format\n"); + goto end; + } + } else if (dec_ctx->codec_type == AVMEDIA_TYPE_AUDIO) { + buffersrc = avfilter_get_by_name("abuffer"); + buffersink = avfilter_get_by_name("abuffersink"); + if (!buffersrc || !buffersink) { + av_log(NULL, AV_LOG_ERROR, "filtering source or sink element not found\n"); + ret = AVERROR_UNKNOWN; + goto end; + } + + if (!dec_ctx->channel_layout) + dec_ctx->channel_layout = + av_get_default_channel_layout(dec_ctx->channels); + snprintf(args, sizeof(args), + "time_base=%d/%d:sample_rate=%d:sample_fmt=%s:channel_layout=0x%"PRIx64, + dec_ctx->time_base.num, dec_ctx->time_base.den, dec_ctx->sample_rate, + av_get_sample_fmt_name(dec_ctx->sample_fmt), + dec_ctx->channel_layout); + ret = avfilter_graph_create_filter(&buffersrc_ctx, buffersrc, "in", + args, NULL, filter_graph); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot create audio buffer source\n"); + goto end; + } + + ret = avfilter_graph_create_filter(&buffersink_ctx, buffersink, "out", + NULL, NULL, filter_graph); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot create audio buffer sink\n"); + goto end; + } + + ret = av_opt_set_bin(buffersink_ctx, "sample_fmts", + (uint8_t*)&enc_ctx->sample_fmt, sizeof(enc_ctx->sample_fmt), + AV_OPT_SEARCH_CHILDREN); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot set output sample format\n"); + goto end; + } + + ret = av_opt_set_bin(buffersink_ctx, "channel_layouts", + (uint8_t*)&enc_ctx->channel_layout, + sizeof(enc_ctx->channel_layout), AV_OPT_SEARCH_CHILDREN); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot set output channel layout\n"); + goto end; + } + + ret = av_opt_set_bin(buffersink_ctx, "sample_rates", + (uint8_t*)&enc_ctx->sample_rate, sizeof(enc_ctx->sample_rate), + AV_OPT_SEARCH_CHILDREN); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Cannot set output sample rate\n"); + goto end; + } + } else { + ret = AVERROR_UNKNOWN; + goto end; + } + + /* Endpoints for the filter graph. */ + outputs->name = av_strdup("in"); + outputs->filter_ctx = buffersrc_ctx; + outputs->pad_idx = 0; + outputs->next = NULL; + + inputs->name = av_strdup("out"); + inputs->filter_ctx = buffersink_ctx; + inputs->pad_idx = 0; + inputs->next = NULL; + + if (!outputs->name || !inputs->name) { + ret = AVERROR(ENOMEM); + goto end; + } + + if ((ret = avfilter_graph_parse_ptr(filter_graph, filter_spec, + &inputs, &outputs, NULL)) < 0) + goto end; + + if ((ret = avfilter_graph_config(filter_graph, NULL)) < 0) + goto end; + + /* Fill FilteringContext */ + fctx->buffersrc_ctx = buffersrc_ctx; + fctx->buffersink_ctx = buffersink_ctx; + fctx->filter_graph = filter_graph; + +end: + avfilter_inout_free(&inputs); + avfilter_inout_free(&outputs); + + return ret; +} + +static int init_filters(void) +{ + const char *filter_spec; + unsigned int i; + int ret; + filter_ctx = av_malloc_array(ifmt_ctx->nb_streams, sizeof(*filter_ctx)); + if (!filter_ctx) + return AVERROR(ENOMEM); + + for (i = 0; i < ifmt_ctx->nb_streams; i++) { + filter_ctx[i].buffersrc_ctx = NULL; + filter_ctx[i].buffersink_ctx = NULL; + filter_ctx[i].filter_graph = NULL; + if (!(ifmt_ctx->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO + || ifmt_ctx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO)) + continue; + + + if (ifmt_ctx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) + filter_spec = "null"; /* passthrough (dummy) filter for video */ + else + filter_spec = "anull"; /* passthrough (dummy) filter for audio */ + ret = init_filter(&filter_ctx[i], ifmt_ctx->streams[i]->codec, + ofmt_ctx->streams[i]->codec, filter_spec); + if (ret) + return ret; + } + return 0; +} + +static int encode_write_frame(AVFrame *filt_frame, unsigned int stream_index, int *got_frame) { + int ret; + int got_frame_local; + AVPacket enc_pkt; + int (*enc_func)(AVCodecContext *, AVPacket *, const AVFrame *, int *) = + (ifmt_ctx->streams[stream_index]->codec->codec_type == + AVMEDIA_TYPE_VIDEO) ? avcodec_encode_video2 : avcodec_encode_audio2; + + if (!got_frame) + got_frame = &got_frame_local; + + av_log(NULL, AV_LOG_INFO, "Encoding frame\n"); + /* encode filtered frame */ + enc_pkt.data = NULL; + enc_pkt.size = 0; + av_init_packet(&enc_pkt); + ret = enc_func(ofmt_ctx->streams[stream_index]->codec, &enc_pkt, + filt_frame, got_frame); + av_frame_free(&filt_frame); + if (ret < 0) + return ret; + if (!(*got_frame)) + return 0; + + /* prepare packet for muxing */ + enc_pkt.stream_index = stream_index; + enc_pkt.dts = av_rescale_q_rnd(enc_pkt.dts, + ofmt_ctx->streams[stream_index]->codec->time_base, + ofmt_ctx->streams[stream_index]->time_base, + AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX); + enc_pkt.pts = av_rescale_q_rnd(enc_pkt.pts, + ofmt_ctx->streams[stream_index]->codec->time_base, + ofmt_ctx->streams[stream_index]->time_base, + AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX); + enc_pkt.duration = av_rescale_q(enc_pkt.duration, + ofmt_ctx->streams[stream_index]->codec->time_base, + ofmt_ctx->streams[stream_index]->time_base); + + av_log(NULL, AV_LOG_DEBUG, "Muxing frame\n"); + /* mux encoded frame */ + ret = av_interleaved_write_frame(ofmt_ctx, &enc_pkt); + return ret; +} + +static int filter_encode_write_frame(AVFrame *frame, unsigned int stream_index) +{ + int ret; + AVFrame *filt_frame; + + av_log(NULL, AV_LOG_INFO, "Pushing decoded frame to filters\n"); + /* push the decoded frame into the filtergraph */ + ret = av_buffersrc_add_frame_flags(filter_ctx[stream_index].buffersrc_ctx, + frame, 0); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Error while feeding the filtergraph\n"); + return ret; + } + + /* pull filtered frames from the filtergraph */ + while (1) { + filt_frame = av_frame_alloc(); + if (!filt_frame) { + ret = AVERROR(ENOMEM); + break; + } + av_log(NULL, AV_LOG_INFO, "Pulling filtered frame from filters\n"); + ret = av_buffersink_get_frame(filter_ctx[stream_index].buffersink_ctx, + filt_frame); + if (ret < 0) { + /* if no more frames for output - returns AVERROR(EAGAIN) + * if flushed and no more frames for output - returns AVERROR_EOF + * rewrite retcode to 0 to show it as normal procedure completion + */ + if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) + ret = 0; + av_frame_free(&filt_frame); + break; + } + + filt_frame->pict_type = AV_PICTURE_TYPE_NONE; + ret = encode_write_frame(filt_frame, stream_index, NULL); + if (ret < 0) + break; + } + + return ret; +} + +static int flush_encoder(unsigned int stream_index) +{ + int ret; + int got_frame; + + if (!(ofmt_ctx->streams[stream_index]->codec->codec->capabilities & + CODEC_CAP_DELAY)) + return 0; + + while (1) { + av_log(NULL, AV_LOG_INFO, "Flushing stream #%u encoder\n", stream_index); + ret = encode_write_frame(NULL, stream_index, &got_frame); + if (ret < 0) + break; + if (!got_frame) + return 0; + } + return ret; +} + +int main(int argc, char **argv) +{ + int ret; + AVPacket packet = { .data = NULL, .size = 0 }; + AVFrame *frame = NULL; + enum AVMediaType type; + unsigned int stream_index; + unsigned int i; + int got_frame; + int (*dec_func)(AVCodecContext *, AVFrame *, int *, const AVPacket *); + + if (argc != 3) { + av_log(NULL, AV_LOG_ERROR, "Usage: %s \n", argv[0]); + return 1; + } + + av_register_all(); + avfilter_register_all(); + + if ((ret = open_input_file(argv[1])) < 0) + goto end; + if ((ret = open_output_file(argv[2])) < 0) + goto end; + if ((ret = init_filters()) < 0) + goto end; + + /* read all packets */ + while (1) { + if ((ret = av_read_frame(ifmt_ctx, &packet)) < 0) + break; + stream_index = packet.stream_index; + type = ifmt_ctx->streams[packet.stream_index]->codec->codec_type; + av_log(NULL, AV_LOG_DEBUG, "Demuxer gave frame of stream_index %u\n", + stream_index); + + if (filter_ctx[stream_index].filter_graph) { + av_log(NULL, AV_LOG_DEBUG, "Going to reencode&filter the frame\n"); + frame = av_frame_alloc(); + if (!frame) { + ret = AVERROR(ENOMEM); + break; + } + packet.dts = av_rescale_q_rnd(packet.dts, + ifmt_ctx->streams[stream_index]->time_base, + ifmt_ctx->streams[stream_index]->codec->time_base, + AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX); + packet.pts = av_rescale_q_rnd(packet.pts, + ifmt_ctx->streams[stream_index]->time_base, + ifmt_ctx->streams[stream_index]->codec->time_base, + AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX); + dec_func = (type == AVMEDIA_TYPE_VIDEO) ? avcodec_decode_video2 : + avcodec_decode_audio4; + ret = dec_func(ifmt_ctx->streams[stream_index]->codec, frame, + &got_frame, &packet); + if (ret < 0) { + av_frame_free(&frame); + av_log(NULL, AV_LOG_ERROR, "Decoding failed\n"); + break; + } + + if (got_frame) { + frame->pts = av_frame_get_best_effort_timestamp(frame); + ret = filter_encode_write_frame(frame, stream_index); + av_frame_free(&frame); + if (ret < 0) + goto end; + } else { + av_frame_free(&frame); + } + } else { + /* remux this frame without reencoding */ + packet.dts = av_rescale_q_rnd(packet.dts, + ifmt_ctx->streams[stream_index]->time_base, + ofmt_ctx->streams[stream_index]->time_base, + AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX); + packet.pts = av_rescale_q_rnd(packet.pts, + ifmt_ctx->streams[stream_index]->time_base, + ofmt_ctx->streams[stream_index]->time_base, + AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX); + + ret = av_interleaved_write_frame(ofmt_ctx, &packet); + if (ret < 0) + goto end; + } + av_free_packet(&packet); + } + + /* flush filters and encoders */ + for (i = 0; i < ifmt_ctx->nb_streams; i++) { + /* flush filter */ + if (!filter_ctx[i].filter_graph) + continue; + ret = filter_encode_write_frame(NULL, i); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Flushing filter failed\n"); + goto end; + } + + /* flush encoder */ + ret = flush_encoder(i); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Flushing encoder failed\n"); + goto end; + } + } + + av_write_trailer(ofmt_ctx); +end: + av_free_packet(&packet); + av_frame_free(&frame); + for (i = 0; i < ifmt_ctx->nb_streams; i++) { + avcodec_close(ifmt_ctx->streams[i]->codec); + if (ofmt_ctx && ofmt_ctx->nb_streams > i && ofmt_ctx->streams[i] && ofmt_ctx->streams[i]->codec) + avcodec_close(ofmt_ctx->streams[i]->codec); + if (filter_ctx && filter_ctx[i].filter_graph) + avfilter_graph_free(&filter_ctx[i].filter_graph); + } + av_free(filter_ctx); + avformat_close_input(&ifmt_ctx); + if (ofmt_ctx && !(ofmt_ctx->oformat->flags & AVFMT_NOFILE)) + avio_close(ofmt_ctx->pb); + avformat_free_context(ofmt_ctx); + + if (ret < 0) + av_log(NULL, AV_LOG_ERROR, "Error occurred: %s\n", av_err2str(ret)); + + return ret ? 1 : 0; +} diff --git a/3-Postprocessing/ffmpeg/doc/faq.html b/3-Postprocessing/ffmpeg/doc/faq.html new file mode 100644 index 0000000..269caa4 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/faq.html @@ -0,0 +1,659 @@ + + + + + +FFmpeg documentation : FFmpeg FAQ: + + + + + + + + + + +
+
+ + +

FFmpeg FAQ

+ + +

Table of Contents

+
+ + +
+ + +

1. General Questions

+ + +

1.1 Why doesn’t FFmpeg support feature [xyz]?

+ +

Because no one has taken on that task yet. FFmpeg development is +driven by the tasks that are important to the individual developers. +If there is a feature that is important to you, the best way to get +it implemented is to undertake the task yourself or sponsor a developer. +

+ +

1.2 FFmpeg does not support codec XXX. Can you include a Windows DLL loader to support it?

+ +

No. Windows DLLs are not portable, bloated and often slow. +Moreover FFmpeg strives to support all codecs natively. +A DLL loader is not conducive to that goal. +

+ +

1.3 I cannot read this file although this format seems to be supported by ffmpeg.

+ +

Even if ffmpeg can read the container format, it may not support all its +codecs. Please consult the supported codec list in the ffmpeg +documentation. +

+ +

1.4 Which codecs are supported by Windows?

+ +

Windows does not support standard formats like MPEG very well, unless you +install some additional codecs. +

+

The following list of video codecs should work on most Windows systems: +

+
msmpeg4v2
+

.avi/.asf +

+
msmpeg4
+

.asf only +

+
wmv1
+

.asf only +

+
wmv2
+

.asf only +

+
mpeg4
+

Only if you have some MPEG-4 codec like ffdshow or Xvid installed. +

+
mpeg1video
+

.mpg only +

+
+

Note, ASF files often have .wmv or .wma extensions in Windows. It should also +be mentioned that Microsoft claims a patent on the ASF format, and may sue +or threaten users who create ASF files with non-Microsoft software. It is +strongly advised to avoid ASF where possible. +

+

The following list of audio codecs should work on most Windows systems: +

+
adpcm_ima_wav
+
adpcm_ms
+
pcm_s16le
+

always +

+
libmp3lame
+

If some MP3 codec like LAME is installed. +

+
+ + + +

2. Compilation

+ + +

2.1 error: can't find a register in class 'GENERAL_REGS' while reloading 'asm'

+ +

This is a bug in gcc. Do not report it to us. Instead, please report it to +the gcc developers. Note that we will not add workarounds for gcc bugs. +

+

Also note that (some of) the gcc developers believe this is not a bug or +not a bug they should fix: +http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11203. +Then again, some of them do not know the difference between an undecidable +problem and an NP-hard problem... +

+ +

2.2 I have installed this library with my distro’s package manager. Why does configure not see it?

+ +

Distributions usually split libraries in several packages. The main package +contains the files necessary to run programs using the library. The +development package contains the files necessary to build programs using the +library. Sometimes, docs and/or data are in a separate package too. +

+

To build FFmpeg, you need to install the development package. It is usually +called ‘libfoo-dev’ or ‘libfoo-devel’. You can remove it after the +build is finished, but be sure to keep the main package. +

+ +

3. Usage

+ + +

3.1 ffmpeg does not work; what is wrong?

+ +

Try a make distclean in the ffmpeg source directory before the build. +If this does not help see +(http://ffmpeg.org/bugreports.html). +

+ +

3.2 How do I encode single pictures into movies?

+ +

First, rename your pictures to follow a numerical sequence. +For example, img1.jpg, img2.jpg, img3.jpg,... +Then you may run: +

+
 
ffmpeg -f image2 -i img%d.jpg /tmp/a.mpg
+
+ +

Notice that ‘%d’ is replaced by the image number. +

+

img%03d.jpg’ means the sequence ‘img001.jpg’, ‘img002.jpg’, etc. +

+

Use the ‘-start_number’ option to declare a starting number for +the sequence. This is useful if your sequence does not start with +‘img001.jpg’ but is still in a numerical order. The following +example will start with ‘img100.jpg’: +

+
 
ffmpeg -f image2 -start_number 100 -i img%d.jpg /tmp/a.mpg
+
+ +

If you have large number of pictures to rename, you can use the +following command to ease the burden. The command, using the bourne +shell syntax, symbolically links all files in the current directory +that match *jpg to the ‘/tmp’ directory in the sequence of +‘img001.jpg’, ‘img002.jpg’ and so on. +

+
 
x=1; for i in *jpg; do counter=$(printf %03d $x); ln -s "$i" /tmp/img"$counter".jpg; x=$(($x+1)); done
+
+ +

If you want to sequence them by oldest modified first, substitute +$(ls -r -t *jpg) in place of *jpg. +

+

Then run: +

+
 
ffmpeg -f image2 -i /tmp/img%03d.jpg /tmp/a.mpg
+
+ +

The same logic is used for any image format that ffmpeg reads. +

+

You can also use cat to pipe images to ffmpeg: +

+
 
cat *.jpg | ffmpeg -f image2pipe -c:v mjpeg -i - output.mpg
+
+ + +

3.3 How do I encode movie to single pictures?

+ +

Use: +

+
 
ffmpeg -i movie.mpg movie%d.jpg
+
+ +

The ‘movie.mpg’ used as input will be converted to +‘movie1.jpg’, ‘movie2.jpg’, etc... +

+

Instead of relying on file format self-recognition, you may also use +

+
-c:v ppm
+
-c:v png
+
-c:v mjpeg
+
+

to force the encoding. +

+

Applying that to the previous example: +

 
ffmpeg -i movie.mpg -f image2 -c:v mjpeg menu%d.jpg
+
+ +

Beware that there is no "jpeg" codec. Use "mjpeg" instead. +

+ +

3.4 Why do I see a slight quality degradation with multithreaded MPEG* encoding?

+ +

For multithreaded MPEG* encoding, the encoded slices must be independent, +otherwise thread n would practically have to wait for n-1 to finish, so it’s +quite logical that there is a small reduction of quality. This is not a bug. +

+ +

3.5 How can I read from the standard input or write to the standard output?

+ +

Use ‘-’ as file name. +

+ +

3.6 -f jpeg doesn’t work.

+ +

Try ’-f image2 test%d.jpg’. +

+ +

3.7 Why can I not change the frame rate?

+ +

Some codecs, like MPEG-1/2, only allow a small number of fixed frame rates. +Choose a different codec with the -c:v command line option. +

+ +

3.8 How do I encode Xvid or DivX video with ffmpeg?

+ +

Both Xvid and DivX (version 4+) are implementations of the ISO MPEG-4 +standard (note that there are many other coding formats that use this +same standard). Thus, use ’-c:v mpeg4’ to encode in these formats. The +default fourcc stored in an MPEG-4-coded file will be ’FMP4’. If you want +a different fourcc, use the ’-vtag’ option. E.g., ’-vtag xvid’ will +force the fourcc ’xvid’ to be stored as the video fourcc rather than the +default. +

+ +

3.9 Which are good parameters for encoding high quality MPEG-4?

+ +

’-mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 300 -pass 1/2’, +things to try: ’-bf 2’, ’-flags qprd’, ’-flags mv0’, ’-flags skiprd’. +

+ +

3.10 Which are good parameters for encoding high quality MPEG-1/MPEG-2?

+ +

’-mbd rd -trellis 2 -cmp 2 -subcmp 2 -g 100 -pass 1/2’ +but beware the ’-g 100’ might cause problems with some decoders. +Things to try: ’-bf 2’, ’-flags qprd’, ’-flags mv0’, ’-flags skiprd. +

+ +

3.11 Interlaced video looks very bad when encoded with ffmpeg, what is wrong?

+ +

You should use ’-flags +ilme+ildct’ and maybe ’-flags +alt’ for interlaced +material, and try ’-top 0/1’ if the result looks really messed-up. +

+ +

3.12 How can I read DirectShow files?

+ +

If you have built FFmpeg with ./configure --enable-avisynth +(only possible on MinGW/Cygwin platforms), +then you may use any file that DirectShow can read as input. +

+

Just create an "input.avs" text file with this single line ... +

 
DirectShowSource("C:\path to your file\yourfile.asf")
+
+

... and then feed that text file to ffmpeg: +

 
ffmpeg -i input.avs
+
+ +

For ANY other help on AviSynth, please visit the +AviSynth homepage. +

+ +

3.13 How can I join video files?

+ +

To "join" video files is quite ambiguous. The following list explains the +different kinds of "joining" and points out how those are addressed in +FFmpeg. To join video files may mean: +

+
    +
  • +To put them one after the other: this is called to concatenate them +(in short: concat) and is addressed +in this very faq. + +
  • +To put them together in the same file, to let the user choose between the +different versions (example: different audio languages): this is called to +multiplex them together (in short: mux), and is done by simply +invoking ffmpeg with several ‘-i’ options. + +
  • +For audio, to put all channels together in a single stream (example: two +mono streams into one stereo stream): this is sometimes called to +merge them, and can be done using the +amerge filter. + +
  • +For audio, to play one on top of the other: this is called to mix +them, and can be done by first merging them into a single stream and then +using the pan filter to mix +the channels at will. + +
  • +For video, to display both together, side by side or one on top of a part of +the other; it can be done using the +overlay video filter. + +
+ +

+

+

3.14 How can I concatenate video files?

+ +

There are several solutions, depending on the exact circumstances. +

+ +

3.14.1 Concatenating using the concat filter

+ +

FFmpeg has a concat filter designed specifically for that, with examples in the +documentation. This operation is recommended if you need to re-encode. +

+ +

3.14.2 Concatenating using the concat demuxer

+ +

FFmpeg has a concat demuxer which you can use when you want to avoid a re-encode and +your format doesn’t support file level concatenation. +

+ +

3.14.3 Concatenating using the concat protocol (file level)

+ +

FFmpeg has a concat protocol designed specifically for that, with examples in the +documentation. +

+

A few multimedia containers (MPEG-1, MPEG-2 PS, DV) allow to concatenate +video by merely concatenating the files containing them. +

+

Hence you may concatenate your multimedia files by first transcoding them to +these privileged formats, then using the humble cat command (or the +equally humble copy under Windows), and finally transcoding back to your +format of choice. +

+
 
ffmpeg -i input1.avi -qscale:v 1 intermediate1.mpg
+ffmpeg -i input2.avi -qscale:v 1 intermediate2.mpg
+cat intermediate1.mpg intermediate2.mpg > intermediate_all.mpg
+ffmpeg -i intermediate_all.mpg -qscale:v 2 output.avi
+
+ +

Additionally, you can use the concat protocol instead of cat or +copy which will avoid creation of a potentially huge intermediate file. +

+
 
ffmpeg -i input1.avi -qscale:v 1 intermediate1.mpg
+ffmpeg -i input2.avi -qscale:v 1 intermediate2.mpg
+ffmpeg -i concat:"intermediate1.mpg|intermediate2.mpg" -c copy intermediate_all.mpg
+ffmpeg -i intermediate_all.mpg -qscale:v 2 output.avi
+
+ +

Note that you may need to escape the character "|" which is special for many +shells. +

+

Another option is usage of named pipes, should your platform support it: +

+
 
mkfifo intermediate1.mpg
+mkfifo intermediate2.mpg
+ffmpeg -i input1.avi -qscale:v 1 -y intermediate1.mpg < /dev/null &
+ffmpeg -i input2.avi -qscale:v 1 -y intermediate2.mpg < /dev/null &
+cat intermediate1.mpg intermediate2.mpg |\
+ffmpeg -f mpeg -i - -c:v mpeg4 -acodec libmp3lame output.avi
+
+ + +

3.14.4 Concatenating using raw audio and video

+ +

Similarly, the yuv4mpegpipe format, and the raw video, raw audio codecs also +allow concatenation, and the transcoding step is almost lossless. +When using multiple yuv4mpegpipe(s), the first line needs to be discarded +from all but the first stream. This can be accomplished by piping through +tail as seen below. Note that when piping through tail you +must use command grouping, { ;}, to background properly. +

+

For example, let’s say we want to concatenate two FLV files into an +output.flv file: +

+
 
mkfifo temp1.a
+mkfifo temp1.v
+mkfifo temp2.a
+mkfifo temp2.v
+mkfifo all.a
+mkfifo all.v
+ffmpeg -i input1.flv -vn -f u16le -acodec pcm_s16le -ac 2 -ar 44100 - > temp1.a < /dev/null &
+ffmpeg -i input2.flv -vn -f u16le -acodec pcm_s16le -ac 2 -ar 44100 - > temp2.a < /dev/null &
+ffmpeg -i input1.flv -an -f yuv4mpegpipe - > temp1.v < /dev/null &
+{ ffmpeg -i input2.flv -an -f yuv4mpegpipe - < /dev/null | tail -n +2 > temp2.v ; } &
+cat temp1.a temp2.a > all.a &
+cat temp1.v temp2.v > all.v &
+ffmpeg -f u16le -acodec pcm_s16le -ac 2 -ar 44100 -i all.a \
+       -f yuv4mpegpipe -i all.v \
+       -y output.flv
+rm temp[12].[av] all.[av]
+
+ + +

3.15 Using ‘-f lavfi’, audio becomes mono for no apparent reason.

+ +

Use ‘-dumpgraph -’ to find out exactly where the channel layout is +lost. +

+

Most likely, it is through auto-inserted aresample. Try to understand +why the converting filter was needed at that place. +

+

Just before the output is a likely place, as ‘-f lavfi’ currently +only support packed S16. +

+

Then insert the correct aformat explicitly in the filtergraph, +specifying the exact format. +

+
 
aformat=sample_fmts=s16:channel_layouts=stereo
+
+ + +

3.16 Why does FFmpeg not see the subtitles in my VOB file?

+ +

VOB and a few other formats do not have a global header that describes +everything present in the file. Instead, applications are supposed to scan +the file to see what it contains. Since VOB files are frequently large, only +the beginning is scanned. If the subtitles happen only later in the file, +they will not be initally detected. +

+

Some applications, including the ffmpeg command-line tool, can only +work with streams that were detected during the initial scan; streams that +are detected later are ignored. +

+

The size of the initial scan is controlled by two options: probesize +(default ~5 Mo) and analyzeduration (default 5,000,000 µs = 5 s). For +the subtitle stream to be detected, both values must be large enough. +

+ +

3.17 Why was the ffmpeg-sameq’ option removed? What to use instead?

+ +

The ‘-sameq’ option meant "same quantizer", and made sense only in a +very limited set of cases. Unfortunately, a lot of people mistook it for +"same quality" and used it in places where it did not make sense: it had +roughly the expected visible effect, but achieved it in a very inefficient +way. +

+

Each encoder has its own set of options to set the quality-vs-size balance, +use the options for the encoder you are using to set the quality level to a +point acceptable for your tastes. The most common options to do that are +‘-qscale’ and ‘-qmax’, but you should peruse the documentation +of the encoder you chose. +

+ +

4. Development

+ + +

4.1 Are there examples illustrating how to use the FFmpeg libraries, particularly libavcodec and libavformat?

+ +

Yes. Check the ‘doc/examples’ directory in the source +repository, also available online at: +https://github.com/FFmpeg/FFmpeg/tree/master/doc/examples. +

+

Examples are also installed by default, usually in +$PREFIX/share/ffmpeg/examples. +

+

Also you may read the Developers Guide of the FFmpeg documentation. Alternatively, +examine the source code for one of the many open source projects that +already incorporate FFmpeg at (projects.html). +

+ +

4.2 Can you support my C compiler XXX?

+ +

It depends. If your compiler is C99-compliant, then patches to support +it are likely to be welcome if they do not pollute the source code +with #ifdefs related to the compiler. +

+ +

4.3 Is Microsoft Visual C++ supported?

+ +

Yes. Please see the Microsoft Visual C++ +section in the FFmpeg documentation. +

+ +

4.4 Can you add automake, libtool or autoconf support?

+ +

No. These tools are too bloated and they complicate the build. +

+ +

4.5 Why not rewrite FFmpeg in object-oriented C++?

+ +

FFmpeg is already organized in a highly modular manner and does not need to +be rewritten in a formal object language. Further, many of the developers +favor straight C; it works for them. For more arguments on this matter, +read "Programming Religion". +

+ +

4.6 Why are the ffmpeg programs devoid of debugging symbols?

+ +

The build process creates ffmpeg_g, ffplay_g, etc. which +contain full debug information. Those binaries are stripped to create +ffmpeg, ffplay, etc. If you need the debug information, use +the *_g versions. +

+ +

4.7 I do not like the LGPL, can I contribute code under the GPL instead?

+ +

Yes, as long as the code is optional and can easily and cleanly be placed +under #if CONFIG_GPL without breaking anything. So, for example, a new codec +or filter would be OK under GPL while a bug fix to LGPL code would not. +

+ +

4.8 I’m using FFmpeg from within my C application but the linker complains about missing symbols from the libraries themselves.

+ +

FFmpeg builds static libraries by default. In static libraries, dependencies +are not handled. That has two consequences. First, you must specify the +libraries in dependency order: -lavdevice must come before +-lavformat, -lavutil must come after everything else, etc. +Second, external libraries that are used in FFmpeg have to be specified too. +

+

An easy way to get the full list of required libraries in dependency order +is to use pkg-config. +

+
 
c99 -o program program.c $(pkg-config --cflags --libs libavformat libavcodec)
+
+ +

See ‘doc/example/Makefile’ and ‘doc/example/pc-uninstalled’ for +more details. +

+ +

4.9 I’m using FFmpeg from within my C++ application but the linker complains about missing symbols which seem to be available.

+ +

FFmpeg is a pure C project, so to use the libraries within your C++ application +you need to explicitly state that you are using a C library. You can do this by +encompassing your FFmpeg includes using extern "C". +

+

See http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html#faq-32.3 +

+ +

4.10 I’m using libavutil from within my C++ application but the compiler complains about ’UINT64_C’ was not declared in this scope

+ +

FFmpeg is a pure C project using C99 math features, in order to enable C++ +to use them you have to append -D__STDC_CONSTANT_MACROS to your CXXFLAGS +

+ +

4.11 I have a file in memory / a API different from *open/*read/ libc how do I use it with libavformat?

+ +

You have to create a custom AVIOContext using avio_alloc_context, +see ‘libavformat/aviobuf.c’ in FFmpeg and ‘libmpdemux/demux_lavf.c’ in MPlayer or MPlayer2 sources. +

+ +

4.12 Where is the documentation about ffv1, msmpeg4, asv1, 4xm?

+ +

see http://www.ffmpeg.org/~michael/ +

+ +

4.13 How do I feed H.263-RTP (and other codecs in RTP) to libavcodec?

+ +

Even if peculiar since it is network oriented, RTP is a container like any +other. You have to demux RTP before feeding the payload to libavcodec. +In this specific case please look at RFC 4629 to see how it should be done. +

+ +

4.14 AVStream.r_frame_rate is wrong, it is much larger than the frame rate.

+ +

r_frame_rate is NOT the average frame rate, it is the smallest frame rate +that can accurately represent all timestamps. So no, it is not +wrong if it is larger than the average! +For example, if you have mixed 25 and 30 fps content, then r_frame_rate +will be 150 (it is the least common multiple). +If you are looking for the average frame rate, see AVStream.avg_frame_rate. +

+ +

4.15 Why is make fate not running all tests?

+ +

Make sure you have the fate-suite samples and the SAMPLES Make variable +or FATE_SAMPLES environment variable or the --samples +configure option is set to the right path. +

+ +

4.16 Why is make fate not finding the samples?

+ +

Do you happen to have a ~ character in the samples path to indicate a +home directory? The value is used in ways where the shell cannot expand it, +causing FATE to not find files. Just replace ~ by the full path. +

+
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/fate.html b/3-Postprocessing/ffmpeg/doc/fate.html new file mode 100644 index 0000000..f86809b --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/fate.html @@ -0,0 +1,284 @@ + + + + + +FFmpeg documentation : FFmpeg Automated Testing Environment: + + + + + + + + + + +
+
+ + + +

FFmpeg Automated Testing Environment

+ + +

Table of Contents

+ + + +

1. Introduction

+ +

FATE is an extended regression suite on the client-side and a means +for results aggregation and presentation on the server-side. +

+

The first part of this document explains how you can use FATE from +your FFmpeg source directory to test your ffmpeg binary. The second +part describes how you can run FATE to submit the results to FFmpeg’s +FATE server. +

+

In any way you can have a look at the publicly viewable FATE results +by visiting this website: +

+

http://fate.ffmpeg.org/ +

+

This is especially recommended for all people contributing source +code to FFmpeg, as it can be seen if some test on some platform broke +with their recent contribution. This usually happens on the platforms +the developers could not test on. +

+

The second part of this document describes how you can run FATE to +submit your results to FFmpeg’s FATE server. If you want to submit your +results be sure to check that your combination of CPU, OS and compiler +is not already listed on the above mentioned website. +

+

In the third part you can find a comprehensive listing of FATE makefile +targets and variables. +

+ + +

2. Using FATE from your FFmpeg source directory

+ +

If you want to run FATE on your machine you need to have the samples +in place. You can get the samples via the build target fate-rsync. +Use this command from the top-level source directory: +

+
 
make fate-rsync SAMPLES=fate-suite/
+make fate       SAMPLES=fate-suite/
+
+ +

The above commands set the samples location by passing a makefile +variable via command line. It is also possible to set the samples +location at source configuration time by invoking configure with +‘–samples=<path to the samples directory>’. Afterwards you can +invoke the makefile targets without setting the SAMPLES makefile +variable. This is illustrated by the following commands: +

+
 
./configure --samples=fate-suite/
+make fate-rsync
+make fate
+
+ +

Yet another way to tell FATE about the location of the sample +directory is by making sure the environment variable FATE_SAMPLES +contains the path to your samples directory. This can be achieved +by e.g. putting that variable in your shell profile or by setting +it in your interactive session. +

+
 
FATE_SAMPLES=fate-suite/ make fate
+
+ +
+

Do not put a ’~’ character in the samples path to indicate a home +directory. Because of shell nuances, this will cause FATE to fail. +

+

To use a custom wrapper to run the test, pass ‘--target-exec’ to +configure or set the TARGET_EXEC Make variable. +

+ + +

3. Submitting the results to the FFmpeg result aggregation server

+ +

To submit your results to the server you should run fate through the +shell script ‘tests/fate.sh’ from the FFmpeg sources. This script needs +to be invoked with a configuration file as its first argument. +

+
 
tests/fate.sh /path/to/fate_config
+
+ +

A configuration file template with comments describing the individual +configuration variables can be found at ‘doc/fate_config.sh.template’. +

+

The mentioned configuration template is also available here: +

slot=                                    # some unique identifier
+repo=git://source.ffmpeg.org/ffmpeg.git  # the source repository
+samples=                                 # path to samples directory
+workdir=                                 # directory in which to do all the work
+#fate_recv="ssh -T fate@fate.ffmpeg.org" # command to submit report
+comment=                                 # optional description
+build_only=     # set to "yes" for a compile-only instance that skips tests
+
+# the following are optional and map to configure options
+arch=
+cpu=
+cross_prefix=
+as=
+cc=
+ld=
+target_os=
+sysroot=
+target_exec=
+target_path=
+target_samples=
+extra_cflags=
+extra_ldflags=
+extra_libs=
+extra_conf=     # extra configure options not covered above
+
+#make=          # name of GNU make if not 'make'
+makeopts=       # extra options passed to 'make'
+#tar=           # command to create a tar archive from its arguments on stdout,
+                # defaults to 'tar c'
+

+

Create a configuration that suits your needs, based on the configuration +template. The ‘slot’ configuration variable can be any string that is not +yet used, but it is suggested that you name it adhering to the following +pattern <arch>-<os>-<compiler>-<compiler version>. The configuration file +itself will be sourced in a shell script, therefore all shell features may +be used. This enables you to setup the environment as you need it for your +build. +

+

For your first test runs the ‘fate_recv’ variable should be empty or +commented out. This will run everything as normal except that it will omit +the submission of the results to the server. The following files should be +present in $workdir as specified in the configuration file: +

+
    +
  • configure.log +
  • compile.log +
  • test.log +
  • report +
  • version +
+ +

When you have everything working properly you can create an SSH key pair +and send the public key to the FATE server administrator who can be contacted +at the email address fate-admin@ffmpeg.org. +

+

Configure your SSH client to use public key authentication with that key +when connecting to the FATE server. Also do not forget to check the identity +of the server and to accept its host key. This can usually be achieved by +running your SSH client manually and killing it after you accepted the key. +The FATE server’s fingerprint is: +

+
+
RSA
+

d3:f1:83:97:a4:75:2b:a6:fb:d6:e8:aa:81:93:97:51 +

+
ECDSA
+

76:9f:68:32:04:1e:d5:d4:ec:47:3f:dc:fc:18:17:86 +

+
+ +

If you have problems connecting to the FATE server, it may help to try out +the ssh command with one or more ‘-v’ options. You should +get detailed output concerning your SSH configuration and the authentication +process. +

+

The only thing left is to automate the execution of the fate.sh script and +the synchronisation of the samples directory. +

+ + +

4. FATE makefile targets and variables

+ + +

4.1 Makefile targets

+ +
+
fate-rsync
+

Download/synchronize sample files to the configured samples directory. +

+
+
fate-list
+

Will list all fate/regression test targets. +

+
+
fate
+

Run the FATE test suite (requires the fate-suite dataset). +

+
+ + +

4.2 Makefile variables

+ +
+
V
+

Verbosity level, can be set to 0, 1 or 2. +

    +
  • 0: show just the test arguments +
  • 1: show just the command used in the test +
  • 2: show everything +
+ +
+
SAMPLES
+

Specify or override the path to the FATE samples at make time, it has a +meaning only while running the regression tests. +

+
+
THREADS
+

Specify how many threads to use while running regression tests, it is +quite useful to detect thread-related regressions. +

+
+
THREAD_TYPE
+

Specify which threading strategy test, either slice or frame, +by default slice+frame +

+
+
CPUFLAGS
+

Specify CPU flags. +

+
+
TARGET_EXEC
+

Specify or override the wrapper used to run the tests. +The TARGET_EXEC option provides a way to run FATE wrapped in +valgrind, qemu-user or wine or on remote targets +through ssh. +

+
+
GEN
+

Set to 1 to generate the missing or mismatched references. +

+
+ + +

4.3 Examples

+ +
 
make V=1 SAMPLES=/var/fate/samples THREADS=2 CPUFLAGS=mmx fate
+
+
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/ffmpeg-all.html b/3-Postprocessing/ffmpeg/doc/ffmpeg-all.html new file mode 100644 index 0000000..c52196a --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/ffmpeg-all.html @@ -0,0 +1,24765 @@ + + + + + +FFmpeg documentation : ffmpeg + + + + + + + + + + +
+
+ + +

ffmpeg Documentation

+ + +

Table of Contents

+
+ + +
+ + +

1. Synopsis

+ +

ffmpeg [global_options] {[input_file_options] -i ‘input_file’} ... {[output_file_options] ‘output_file’} ... +

+ +

2. Description

+ +

ffmpeg is a very fast video and audio converter that can also grab from +a live audio/video source. It can also convert between arbitrary sample +rates and resize video on the fly with a high quality polyphase filter. +

+

ffmpeg reads from an arbitrary number of input "files" (which can be regular +files, pipes, network streams, grabbing devices, etc.), specified by the +-i option, and writes to an arbitrary number of output "files", which are +specified by a plain output filename. Anything found on the command line which +cannot be interpreted as an option is considered to be an output filename. +

+

Each input or output file can, in principle, contain any number of streams of +different types (video/audio/subtitle/attachment/data). The allowed number and/or +types of streams may be limited by the container format. Selecting which +streams from which inputs will go into which output is either done automatically +or with the -map option (see the Stream selection chapter). +

+

To refer to input files in options, you must use their indices (0-based). E.g. +the first input file is 0, the second is 1, etc. Similarly, streams +within a file are referred to by their indices. E.g. 2:3 refers to the +fourth stream in the third input file. Also see the Stream specifiers chapter. +

+

As a general rule, options are applied to the next specified +file. Therefore, order is important, and you can have the same +option on the command line multiple times. Each occurrence is +then applied to the next input or output file. +Exceptions from this rule are the global options (e.g. verbosity level), +which should be specified first. +

+

Do not mix input and output files – first specify all input files, then all +output files. Also do not mix options which belong to different files. All +options apply ONLY to the next input or output file and are reset between files. +

+
    +
  • +To set the video bitrate of the output file to 64 kbit/s: +
     
    ffmpeg -i input.avi -b:v 64k -bufsize 64k output.avi
    +
    + +
  • +To force the frame rate of the output file to 24 fps: +
     
    ffmpeg -i input.avi -r 24 output.avi
    +
    + +
  • +To force the frame rate of the input file (valid for raw formats only) +to 1 fps and the frame rate of the output file to 24 fps: +
     
    ffmpeg -r 1 -i input.m2v -r 24 output.avi
    +
    +
+ +

The format option may be needed for raw input files. +

+ + +

3. Detailed description

+ +

The transcoding process in ffmpeg for each output can be described by +the following diagram: +

+
 
 _______              ______________
+|       |            |              |
+| input |  demuxer   | encoded data |   decoder
+| file  | ---------> | packets      | -----+
+|_______|            |______________|      |
+                                           v
+                                       _________
+                                      |         |
+                                      | decoded |
+                                      | frames  |
+                                      |_________|
+ ________             ______________       |
+|        |           |              |      |
+| output | <-------- | encoded data | <----+
+| file   |   muxer   | packets      |   encoder
+|________|           |______________|
+
+
+
+ +

ffmpeg calls the libavformat library (containing demuxers) to read +input files and get packets containing encoded data from them. When there are +multiple input files, ffmpeg tries to keep them synchronized by +tracking lowest timestamp on any active input stream. +

+

Encoded packets are then passed to the decoder (unless streamcopy is selected +for the stream, see further for a description). The decoder produces +uncompressed frames (raw video/PCM audio/...) which can be processed further by +filtering (see next section). After filtering, the frames are passed to the +encoder, which encodes them and outputs encoded packets. Finally those are +passed to the muxer, which writes the encoded packets to the output file. +

+ +

3.1 Filtering

+

Before encoding, ffmpeg can process raw audio and video frames using +filters from the libavfilter library. Several chained filters form a filter +graph. ffmpeg distinguishes between two types of filtergraphs: +simple and complex. +

+ +

3.1.1 Simple filtergraphs

+

Simple filtergraphs are those that have exactly one input and output, both of +the same type. In the above diagram they can be represented by simply inserting +an additional step between decoding and encoding: +

+
 
 _________                        ______________
+|         |                      |              |
+| decoded |                      | encoded data |
+| frames  |\                   _ | packets      |
+|_________| \                  /||______________|
+             \   __________   /
+  simple     _\||          | /  encoder
+  filtergraph   | filtered |/
+                | frames   |
+                |__________|
+
+
+ +

Simple filtergraphs are configured with the per-stream ‘-filter’ option +(with ‘-vf’ and ‘-af’ aliases for video and audio respectively). +A simple filtergraph for video can look for example like this: +

+
 
 _______        _____________        _______        ________
+|       |      |             |      |       |      |        |
+| input | ---> | deinterlace | ---> | scale | ---> | output |
+|_______|      |_____________|      |_______|      |________|
+
+
+ +

Note that some filters change frame properties but not frame contents. E.g. the +fps filter in the example above changes number of frames, but does not +touch the frame contents. Another example is the setpts filter, which +only sets timestamps and otherwise passes the frames unchanged. +

+ +

3.1.2 Complex filtergraphs

+

Complex filtergraphs are those which cannot be described as simply a linear +processing chain applied to one stream. This is the case, for example, when the graph has +more than one input and/or output, or when output stream type is different from +input. They can be represented with the following diagram: +

+
 
 _________
+|         |
+| input 0 |\                    __________
+|_________| \                  |          |
+             \   _________    /| output 0 |
+              \ |         |  / |__________|
+ _________     \| complex | /
+|         |     |         |/
+| input 1 |---->| filter  |\
+|_________|     |         | \   __________
+               /| graph   |  \ |          |
+              / |         |   \| output 1 |
+ _________   /  |_________|    |__________|
+|         | /
+| input 2 |/
+|_________|
+
+
+ +

Complex filtergraphs are configured with the ‘-filter_complex’ option. +Note that this option is global, since a complex filtergraph, by its nature, +cannot be unambiguously associated with a single stream or file. +

+

The ‘-lavfi’ option is equivalent to ‘-filter_complex’. +

+

A trivial example of a complex filtergraph is the overlay filter, which +has two video inputs and one video output, containing one video overlaid on top +of the other. Its audio counterpart is the amix filter. +

+ +

3.2 Stream copy

+

Stream copy is a mode selected by supplying the copy parameter to the +‘-codec’ option. It makes ffmpeg omit the decoding and encoding +step for the specified stream, so it does only demuxing and muxing. It is useful +for changing the container format or modifying container-level metadata. The +diagram above will, in this case, simplify to this: +

+
 
 _______              ______________            ________
+|       |            |              |          |        |
+| input |  demuxer   | encoded data |  muxer   | output |
+| file  | ---------> | packets      | -------> | file   |
+|_______|            |______________|          |________|
+
+
+ +

Since there is no decoding or encoding, it is very fast and there is no quality +loss. However, it might not work in some cases because of many factors. Applying +filters is obviously also impossible, since filters work on uncompressed data. +

+ + +

4. Stream selection

+ +

By default, ffmpeg includes only one stream of each type (video, audio, subtitle) +present in the input files and adds them to each output file. It picks the +"best" of each based upon the following criteria: for video, it is the stream +with the highest resolution, for audio, it is the stream with the most channels, for +subtitles, it is the first subtitle stream. In the case where several streams of +the same type rate equally, the stream with the lowest index is chosen. +

+

You can disable some of those defaults by using the -vn/-an/-sn options. For +full manual control, use the -map option, which disables the defaults just +described. +

+ + +

5. Options

+ +

All the numerical options, if not specified otherwise, accept a string +representing a number as input, which may be followed by one of the SI +unit prefixes, for example: ’K’, ’M’, or ’G’. +

+

If ’i’ is appended to the SI unit prefix, the complete prefix will be +interpreted as a unit prefix for binary multiplies, which are based on +powers of 1024 instead of powers of 1000. Appending ’B’ to the SI unit +prefix multiplies the value by 8. This allows using, for example: +’KB’, ’MiB’, ’G’ and ’B’ as number suffixes. +

+

Options which do not take arguments are boolean options, and set the +corresponding value to true. They can be set to false by prefixing +the option name with "no". For example using "-nofoo" +will set the boolean option with name "foo" to false. +

+

+

+

5.1 Stream specifiers

+

Some options are applied per-stream, e.g. bitrate or codec. Stream specifiers +are used to precisely specify which stream(s) a given option belongs to. +

+

A stream specifier is a string generally appended to the option name and +separated from it by a colon. E.g. -codec:a:1 ac3 contains the +a:1 stream specifier, which matches the second audio stream. Therefore, it +would select the ac3 codec for the second audio stream. +

+

A stream specifier can match several streams, so that the option is applied to all +of them. E.g. the stream specifier in -b:a 128k matches all audio +streams. +

+

An empty stream specifier matches all streams. For example, -codec copy +or -codec: copy would copy all the streams without reencoding. +

+

Possible forms of stream specifiers are: +

+
stream_index
+

Matches the stream with this index. E.g. -threads:1 4 would set the +thread count for the second stream to 4. +

+
stream_type[:stream_index]
+

stream_type is one of following: ’v’ for video, ’a’ for audio, ’s’ for subtitle, +’d’ for data, and ’t’ for attachments. If stream_index is given, then it matches +stream number stream_index of this type. Otherwise, it matches all +streams of this type. +

+
p:program_id[:stream_index]
+

If stream_index is given, then it matches the stream with number stream_index +in the program with the id program_id. Otherwise, it matches all streams in the +program. +

+
#stream_id or i:stream_id
+

Match the stream by stream id (e.g. PID in MPEG-TS container). +

+
+ + +

5.2 Generic options

+ +

These options are shared amongst the ff* tools. +

+
+
-L
+

Show license. +

+
+
-h, -?, -help, --help [arg]
+

Show help. An optional parameter may be specified to print help about a specific +item. If no argument is specified, only basic (non advanced) tool +options are shown. +

+

Possible values of arg are: +

+
long
+

Print advanced tool options in addition to the basic tool options. +

+
+
full
+

Print complete list of options, including shared and private options +for encoders, decoders, demuxers, muxers, filters, etc. +

+
+
decoder=decoder_name
+

Print detailed information about the decoder named decoder_name. Use the +‘-decoders’ option to get a list of all decoders. +

+
+
encoder=encoder_name
+

Print detailed information about the encoder named encoder_name. Use the +‘-encoders’ option to get a list of all encoders. +

+
+
demuxer=demuxer_name
+

Print detailed information about the demuxer named demuxer_name. Use the +‘-formats’ option to get a list of all demuxers and muxers. +

+
+
muxer=muxer_name
+

Print detailed information about the muxer named muxer_name. Use the +‘-formats’ option to get a list of all muxers and demuxers. +

+
+
filter=filter_name
+

Print detailed information about the filter name filter_name. Use the +‘-filters’ option to get a list of all filters. +

+
+ +
+
-version
+

Show version. +

+
+
-formats
+

Show available formats. +

+
+
-codecs
+

Show all codecs known to libavcodec. +

+

Note that the term ’codec’ is used throughout this documentation as a shortcut +for what is more correctly called a media bitstream format. +

+
+
-decoders
+

Show available decoders. +

+
+
-encoders
+

Show all available encoders. +

+
+
-bsfs
+

Show available bitstream filters. +

+
+
-protocols
+

Show available protocols. +

+
+
-filters
+

Show available libavfilter filters. +

+
+
-pix_fmts
+

Show available pixel formats. +

+
+
-sample_fmts
+

Show available sample formats. +

+
+
-layouts
+

Show channel names and standard channel layouts. +

+
+
-colors
+

Show recognized color names. +

+
+
-loglevel [repeat+]loglevel | -v [repeat+]loglevel
+

Set the logging level used by the library. +Adding "repeat+" indicates that repeated log output should not be compressed +to the first line and the "Last message repeated n times" line will be +omitted. "repeat" can also be used alone. +If "repeat" is used alone, and with no prior loglevel set, the default +loglevel will be used. If multiple loglevel parameters are given, using +’repeat’ will not change the loglevel. +loglevel is a number or a string containing one of the following values: +

+
quiet
+

Show nothing at all; be silent. +

+
panic
+

Only show fatal errors which could lead the process to crash, such as +and assert failure. This is not currently used for anything. +

+
fatal
+

Only show fatal errors. These are errors after which the process absolutely +cannot continue after. +

+
error
+

Show all errors, including ones which can be recovered from. +

+
warning
+

Show all warnings and errors. Any message related to possibly +incorrect or unexpected events will be shown. +

+
info
+

Show informative messages during processing. This is in addition to +warnings and errors. This is the default value. +

+
verbose
+

Same as info, except more verbose. +

+
debug
+

Show everything, including debugging information. +

+
+ +

By default the program logs to stderr, if coloring is supported by the +terminal, colors are used to mark errors and warnings. Log coloring +can be disabled setting the environment variable +AV_LOG_FORCE_NOCOLOR or NO_COLOR, or can be forced setting +the environment variable AV_LOG_FORCE_COLOR. +The use of the environment variable NO_COLOR is deprecated and +will be dropped in a following FFmpeg version. +

+
+
-report
+

Dump full command line and console output to a file named +program-YYYYMMDD-HHMMSS.log in the current +directory. +This file can be useful for bug reports. +It also implies -loglevel verbose. +

+

Setting the environment variable FFREPORT to any value has the +same effect. If the value is a ’:’-separated key=value sequence, these +options will affect the report; options values must be escaped if they +contain special characters or the options delimiter ’:’ (see the +“Quoting and escaping” section in the ffmpeg-utils manual). The +following option is recognized: +

+
file
+

set the file name to use for the report; %p is expanded to the name +of the program, %t is expanded to a timestamp, %% is expanded +to a plain % +

+
+ +

Errors in parsing the environment variable are not fatal, and will not +appear in the report. +

+
+
-hide_banner
+

Suppress printing banner. +

+

All FFmpeg tools will normally show a copyright notice, build options +and library versions. This option can be used to suppress printing +this information. +

+
+
-cpuflags flags (global)
+

Allows setting and clearing cpu flags. This option is intended +for testing. Do not use it unless you know what you’re doing. +

 
ffmpeg -cpuflags -sse+mmx ...
+ffmpeg -cpuflags mmx ...
+ffmpeg -cpuflags 0 ...
+
+

Possible flags for this option are: +

+
x86
+
+
mmx
+
mmxext
+
sse
+
sse2
+
sse2slow
+
sse3
+
sse3slow
+
ssse3
+
atom
+
sse4.1
+
sse4.2
+
avx
+
xop
+
fma4
+
3dnow
+
3dnowext
+
cmov
+
+
+
ARM
+
+
armv5te
+
armv6
+
armv6t2
+
vfp
+
vfpv3
+
neon
+
+
+
PowerPC
+
+
altivec
+
+
+
Specific Processors
+
+
pentium2
+
pentium3
+
pentium4
+
k6
+
k62
+
athlon
+
athlonxp
+
k8
+
+
+
+ +
+
-opencl_bench
+

Benchmark all available OpenCL devices and show the results. This option +is only available when FFmpeg has been compiled with --enable-opencl. +

+
+
-opencl_options options (global)
+

Set OpenCL environment options. This option is only available when +FFmpeg has been compiled with --enable-opencl. +

+

options must be a list of key=value option pairs +separated by ’:’. See the “OpenCL Options” section in the +ffmpeg-utils manual for the list of supported options. +

+
+ + +

5.3 AVOptions

+ +

These options are provided directly by the libavformat, libavdevice and +libavcodec libraries. To see the list of available AVOptions, use the +‘-help’ option. They are separated into two categories: +

+
generic
+

These options can be set for any container, codec or device. Generic options +are listed under AVFormatContext options for containers/devices and under +AVCodecContext options for codecs. +

+
private
+

These options are specific to the given container, device or codec. Private +options are listed under their corresponding containers/devices/codecs. +

+
+ +

For example to write an ID3v2.3 header instead of a default ID3v2.4 to +an MP3 file, use the ‘id3v2_version’ private option of the MP3 +muxer: +

 
ffmpeg -i input.flac -id3v2_version 3 out.mp3
+
+ +

All codec AVOptions are per-stream, and thus a stream specifier +should be attached to them. +

+

Note: the ‘-nooption’ syntax cannot be used for boolean +AVOptions, use ‘-option 0’/‘-option 1’. +

+

Note: the old undocumented way of specifying per-stream AVOptions by +prepending v/a/s to the options name is now obsolete and will be +removed soon. +

+ +

5.4 Main options

+ +
+
-f fmt (input/output)
+

Force input or output file format. The format is normally auto detected for input +files and guessed from the file extension for output files, so this option is not +needed in most cases. +

+
+
-i filename (input)
+

input file name +

+
+
-y (global)
+

Overwrite output files without asking. +

+
+
-n (global)
+

Do not overwrite output files, and exit immediately if a specified +output file already exists. +

+
+
-c[:stream_specifier] codec (input/output,per-stream)
+
-codec[:stream_specifier] codec (input/output,per-stream)
+

Select an encoder (when used before an output file) or a decoder (when used +before an input file) for one or more streams. codec is the name of a +decoder/encoder or a special value copy (output only) to indicate that +the stream is not to be re-encoded. +

+

For example +

 
ffmpeg -i INPUT -map 0 -c:v libx264 -c:a copy OUTPUT
+
+

encodes all video streams with libx264 and copies all audio streams. +

+

For each stream, the last matching c option is applied, so +

 
ffmpeg -i INPUT -map 0 -c copy -c:v:1 libx264 -c:a:137 libvorbis OUTPUT
+
+

will copy all the streams except the second video, which will be encoded with +libx264, and the 138th audio, which will be encoded with libvorbis. +

+
+
-t duration (output)
+

Stop writing the output after its duration reaches duration. +duration may be a number in seconds, or in hh:mm:ss[.xxx] form. +

+

-to and -t are mutually exclusive and -t has priority. +

+
+
-to position (output)
+

Stop writing the output at position. +position may be a number in seconds, or in hh:mm:ss[.xxx] form. +

+

-to and -t are mutually exclusive and -t has priority. +

+
+
-fs limit_size (output)
+

Set the file size limit, expressed in bytes. +

+
+
-ss position (input/output)
+

When used as an input option (before -i), seeks in this input file to +position. Note the in most formats it is not possible to seek exactly, so +ffmpeg will seek to the closest seek point before position. +When transcoding and ‘-accurate_seek’ is enabled (the default), this +extra segment between the seek point and position will be decoded and +discarded. When doing stream copy or when ‘-noaccurate_seek’ is used, it +will be preserved. +

+

When used as an output option (before an output filename), decodes but discards +input until the timestamps reach position. +

+

position may be either in seconds or in hh:mm:ss[.xxx] form. +

+
+
-itsoffset offset (input)
+

Set the input time offset. +

+

offset must be a time duration specification, +see (ffmpeg-utils)time duration syntax. +

+

The offset is added to the timestamps of the input files. Specifying +a positive offset means that the corresponding streams are delayed by +the time duration specified in offset. +

+
+
-timestamp date (output)
+

Set the recording timestamp in the container. +

+

date must be a time duration specification, +see (ffmpeg-utils)date syntax. +

+
+
-metadata[:metadata_specifier] key=value (output,per-metadata)
+

Set a metadata key/value pair. +

+

An optional metadata_specifier may be given to set metadata +on streams or chapters. See -map_metadata documentation for +details. +

+

This option overrides metadata set with -map_metadata. It is +also possible to delete metadata by using an empty value. +

+

For example, for setting the title in the output file: +

 
ffmpeg -i in.avi -metadata title="my title" out.flv
+
+ +

To set the language of the first audio stream: +

 
ffmpeg -i INPUT -metadata:s:a:1 language=eng OUTPUT
+
+ +
+
-target type (output)
+

Specify target file type (vcd, svcd, dvd, dv, +dv50). type may be prefixed with pal-, ntsc- or +film- to use the corresponding standard. All the format options +(bitrate, codecs, buffer sizes) are then set automatically. You can just type: +

+
 
ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg
+
+ +

Nevertheless you can specify additional options as long as you know +they do not conflict with the standard, as in: +

+
 
ffmpeg -i myfile.avi -target vcd -bf 2 /tmp/vcd.mpg
+
+ +
+
-dframes number (output)
+

Set the number of data frames to record. This is an alias for -frames:d. +

+
+
-frames[:stream_specifier] framecount (output,per-stream)
+

Stop writing to the stream after framecount frames. +

+
+
-q[:stream_specifier] q (output,per-stream)
+
-qscale[:stream_specifier] q (output,per-stream)
+

Use fixed quality scale (VBR). The meaning of q/qscale is +codec-dependent. +If qscale is used without a stream_specifier then it applies only +to the video stream, this is to maintain compatibility with previous behavior +and as specifying the same codec specific value to 2 different codecs that is +audio and video generally is not what is intended when no stream_specifier is +used. +

+

+

+
-filter[:stream_specifier] filtergraph (output,per-stream)
+

Create the filtergraph specified by filtergraph and use it to +filter the stream. +

+

filtergraph is a description of the filtergraph to apply to +the stream, and must have a single input and a single output of the +same type of the stream. In the filtergraph, the input is associated +to the label in, and the output to the label out. See +the ffmpeg-filters manual for more information about the filtergraph +syntax. +

+

See the -filter_complex option if you +want to create filtergraphs with multiple inputs and/or outputs. +

+
+
-filter_script[:stream_specifier] filename (output,per-stream)
+

This option is similar to ‘-filter’, the only difference is that its +argument is the name of the file from which a filtergraph description is to be +read. +

+
+
-pre[:stream_specifier] preset_name (output,per-stream)
+

Specify the preset for matching stream(s). +

+
+
-stats (global)
+

Print encoding progress/statistics. It is on by default, to explicitly +disable it you need to specify -nostats. +

+
+
-progress url (global)
+

Send program-friendly progress information to url. +

+

Progress information is written approximately every second and at the end of +the encoding process. It is made of "key=value" lines. key +consists of only alphanumeric characters. The last key of a sequence of +progress information is always "progress". +

+
+
-stdin
+

Enable interaction on standard input. On by default unless standard input is +used as an input. To explicitly disable interaction you need to specify +-nostdin. +

+

Disabling interaction on standard input is useful, for example, if +ffmpeg is in the background process group. Roughly the same result can +be achieved with ffmpeg ... < /dev/null but it requires a +shell. +

+
+
-debug_ts (global)
+

Print timestamp information. It is off by default. This option is +mostly useful for testing and debugging purposes, and the output +format may change from one version to another, so it should not be +employed by portable scripts. +

+

See also the option -fdebug ts. +

+
+
-attach filename (output)
+

Add an attachment to the output file. This is supported by a few formats +like Matroska for e.g. fonts used in rendering subtitles. Attachments +are implemented as a specific type of stream, so this option will add +a new stream to the file. It is then possible to use per-stream options +on this stream in the usual way. Attachment streams created with this +option will be created after all the other streams (i.e. those created +with -map or automatic mappings). +

+

Note that for Matroska you also have to set the mimetype metadata tag: +

 
ffmpeg -i INPUT -attach DejaVuSans.ttf -metadata:s:2 mimetype=application/x-truetype-font out.mkv
+
+

(assuming that the attachment stream will be third in the output file). +

+
+
-dump_attachment[:stream_specifier] filename (input,per-stream)
+

Extract the matching attachment stream into a file named filename. If +filename is empty, then the value of the filename metadata tag +will be used. +

+

E.g. to extract the first attachment to a file named ’out.ttf’: +

 
ffmpeg -dump_attachment:t:0 out.ttf -i INPUT
+
+

To extract all attachments to files determined by the filename tag: +

 
ffmpeg -dump_attachment:t "" -i INPUT
+
+ +

Technical note – attachments are implemented as codec extradata, so this +option can actually be used to extract extradata from any stream, not just +attachments. +

+
+
+ + +

5.5 Video Options

+ +
+
-vframes number (output)
+

Set the number of video frames to record. This is an alias for -frames:v. +

+
-r[:stream_specifier] fps (input/output,per-stream)
+

Set frame rate (Hz value, fraction or abbreviation). +

+

As an input option, ignore any timestamps stored in the file and instead +generate timestamps assuming constant frame rate fps. +

+

As an output option, duplicate or drop input frames to achieve constant output +frame rate fps. +

+
+
-s[:stream_specifier] size (input/output,per-stream)
+

Set frame size. +

+

As an input option, this is a shortcut for the ‘video_size’ private +option, recognized by some demuxers for which the frame size is either not +stored in the file or is configurable – e.g. raw video or video grabbers. +

+

As an output option, this inserts the scale video filter to the +end of the corresponding filtergraph. Please use the scale filter +directly to insert it at the beginning or some other place. +

+

The format is ‘wxh’ (default - same as source). +

+
+
-aspect[:stream_specifier] aspect (output,per-stream)
+

Set the video display aspect ratio specified by aspect. +

+

aspect can be a floating point number string, or a string of the +form num:den, where num and den are the +numerator and denominator of the aspect ratio. For example "4:3", +"16:9", "1.3333", and "1.7777" are valid argument values. +

+

If used together with ‘-vcodec copy’, it will affect the aspect ratio +stored at container level, but not the aspect ratio stored in encoded +frames, if it exists. +

+
+
-vn (output)
+

Disable video recording. +

+
+
-vcodec codec (output)
+

Set the video codec. This is an alias for -codec:v. +

+
+
-pass[:stream_specifier] n (output,per-stream)
+

Select the pass number (1 or 2). It is used to do two-pass +video encoding. The statistics of the video are recorded in the first +pass into a log file (see also the option -passlogfile), +and in the second pass that log file is used to generate the video +at the exact requested bitrate. +On pass 1, you may just deactivate audio and set output to null, +examples for Windows and Unix: +

 
ffmpeg -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y NUL
+ffmpeg -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y /dev/null
+
+ +
+
-passlogfile[:stream_specifier] prefix (output,per-stream)
+

Set two-pass log file name prefix to prefix, the default file name +prefix is “ffmpeg2pass”. The complete file name will be +‘PREFIX-N.log’, where N is a number specific to the output +stream +

+
+
-vf filtergraph (output)
+

Create the filtergraph specified by filtergraph and use it to +filter the stream. +

+

This is an alias for -filter:v, see the -filter option. +

+
+ + +

5.6 Advanced Video Options

+ +
+
-pix_fmt[:stream_specifier] format (input/output,per-stream)
+

Set pixel format. Use -pix_fmts to show all the supported +pixel formats. +If the selected pixel format can not be selected, ffmpeg will print a +warning and select the best pixel format supported by the encoder. +If pix_fmt is prefixed by a +, ffmpeg will exit with an error +if the requested pixel format can not be selected, and automatic conversions +inside filtergraphs are disabled. +If pix_fmt is a single +, ffmpeg selects the same pixel format +as the input (or graph output) and automatic conversions are disabled. +

+
+
-sws_flags flags (input/output)
+

Set SwScaler flags. +

+
-vdt n
+

Discard threshold. +

+
+
-rc_override[:stream_specifier] override (output,per-stream)
+

Rate control override for specific intervals, formatted as "int,int,int" +list separated with slashes. Two first values are the beginning and +end frame numbers, last one is quantizer to use if positive, or quality +factor if negative. +

+
+
-ilme
+

Force interlacing support in encoder (MPEG-2 and MPEG-4 only). +Use this option if your input file is interlaced and you want +to keep the interlaced format for minimum losses. +The alternative is to deinterlace the input stream with +‘-deinterlace’, but deinterlacing introduces losses. +

+
-psnr
+

Calculate PSNR of compressed frames. +

+
-vstats
+

Dump video coding statistics to ‘vstats_HHMMSS.log’. +

+
-vstats_file file
+

Dump video coding statistics to file. +

+
-top[:stream_specifier] n (output,per-stream)
+

top=1/bottom=0/auto=-1 field first +

+
-dc precision
+

Intra_dc_precision. +

+
-vtag fourcc/tag (output)
+

Force video tag/fourcc. This is an alias for -tag:v. +

+
-qphist (global)
+

Show QP histogram +

+
-vbsf bitstream_filter
+

Deprecated see -bsf +

+
+
-force_key_frames[:stream_specifier] time[,time...] (output,per-stream)
+
-force_key_frames[:stream_specifier] expr:expr (output,per-stream)
+

Force key frames at the specified timestamps, more precisely at the first +frames after each specified time. +

+

If the argument is prefixed with expr:, the string expr +is interpreted like an expression and is evaluated for each frame. A +key frame is forced in case the evaluation is non-zero. +

+

If one of the times is "chapters[delta]", it is expanded into +the time of the beginning of all chapters in the file, shifted by +delta, expressed as a time in seconds. +This option can be useful to ensure that a seek point is present at a +chapter mark or any other designated place in the output file. +

+

For example, to insert a key frame at 5 minutes, plus key frames 0.1 second +before the beginning of every chapter: +

 
-force_key_frames 0:05:00,chapters-0.1
+
+ +

The expression in expr can contain the following constants: +

+
n
+

the number of current processed frame, starting from 0 +

+
n_forced
+

the number of forced frames +

+
prev_forced_n
+

the number of the previous forced frame, it is NAN when no +keyframe was forced yet +

+
prev_forced_t
+

the time of the previous forced frame, it is NAN when no +keyframe was forced yet +

+
t
+

the time of the current processed frame +

+
+ +

For example to force a key frame every 5 seconds, you can specify: +

 
-force_key_frames expr:gte(t,n_forced*5)
+
+ +

To force a key frame 5 seconds after the time of the last forced one, +starting from second 13: +

 
-force_key_frames expr:if(isnan(prev_forced_t),gte(t,13),gte(t,prev_forced_t+5))
+
+ +

Note that forcing too many keyframes is very harmful for the lookahead +algorithms of certain encoders: using fixed-GOP options or similar +would be more efficient. +

+
+
-copyinkf[:stream_specifier] (output,per-stream)
+

When doing stream copy, copy also non-key frames found at the +beginning. +

+
+
-hwaccel[:stream_specifier] hwaccel (input,per-stream)
+

Use hardware acceleration to decode the matching stream(s). The allowed values +of hwaccel are: +

+
none
+

Do not use any hardware acceleration (the default). +

+
+
auto
+

Automatically select the hardware acceleration method. +

+
+
vdpau
+

Use VDPAU (Video Decode and Presentation API for Unix) hardware acceleration. +

+
+ +

This option has no effect if the selected hwaccel is not available or not +supported by the chosen decoder. +

+

Note that most acceleration methods are intended for playback and will not be +faster than software decoding on modern CPUs. Additionally, ffmpeg +will usually need to copy the decoded frames from the GPU memory into the system +memory, resulting in further performance loss. This option is thus mainly +useful for testing. +

+
+
-hwaccel_device[:stream_specifier] hwaccel_device (input,per-stream)
+

Select a device to use for hardware acceleration. +

+

This option only makes sense when the ‘-hwaccel’ option is also +specified. Its exact meaning depends on the specific hardware acceleration +method chosen. +

+
+
vdpau
+

For VDPAU, this option specifies the X11 display/screen to use. If this option +is not specified, the value of the DISPLAY environment variable is used +

+
+
+
+ + +

5.7 Audio Options

+ +
+
-aframes number (output)
+

Set the number of audio frames to record. This is an alias for -frames:a. +

+
-ar[:stream_specifier] freq (input/output,per-stream)
+

Set the audio sampling frequency. For output streams it is set by +default to the frequency of the corresponding input stream. For input +streams this option only makes sense for audio grabbing devices and raw +demuxers and is mapped to the corresponding demuxer options. +

+
-aq q (output)
+

Set the audio quality (codec-specific, VBR). This is an alias for -q:a. +

+
-ac[:stream_specifier] channels (input/output,per-stream)
+

Set the number of audio channels. For output streams it is set by +default to the number of input audio channels. For input streams +this option only makes sense for audio grabbing devices and raw demuxers +and is mapped to the corresponding demuxer options. +

+
-an (output)
+

Disable audio recording. +

+
-acodec codec (input/output)
+

Set the audio codec. This is an alias for -codec:a. +

+
-sample_fmt[:stream_specifier] sample_fmt (output,per-stream)
+

Set the audio sample format. Use -sample_fmts to get a list +of supported sample formats. +

+
+
-af filtergraph (output)
+

Create the filtergraph specified by filtergraph and use it to +filter the stream. +

+

This is an alias for -filter:a, see the -filter option. +

+
+ + +

5.8 Advanced Audio options:

+ +
+
-atag fourcc/tag (output)
+

Force audio tag/fourcc. This is an alias for -tag:a. +

+
-absf bitstream_filter
+

Deprecated, see -bsf +

+
-guess_layout_max channels (input,per-stream)
+

If some input channel layout is not known, try to guess only if it +corresponds to at most the specified number of channels. For example, 2 +tells to ffmpeg to recognize 1 channel as mono and 2 channels as +stereo but not 6 channels as 5.1. The default is to always try to guess. Use +0 to disable all guessing. +

+
+ + +

5.9 Subtitle options:

+ +
+
-scodec codec (input/output)
+

Set the subtitle codec. This is an alias for -codec:s. +

+
-sn (output)
+

Disable subtitle recording. +

+
-sbsf bitstream_filter
+

Deprecated, see -bsf +

+
+ + +

5.10 Advanced Subtitle options:

+ +
+
-fix_sub_duration
+

Fix subtitles durations. For each subtitle, wait for the next packet in the +same stream and adjust the duration of the first to avoid overlap. This is +necessary with some subtitles codecs, especially DVB subtitles, because the +duration in the original packet is only a rough estimate and the end is +actually marked by an empty subtitle frame. Failing to use this option when +necessary can result in exaggerated durations or muxing failures due to +non-monotonic timestamps. +

+

Note that this option will delay the output of all data until the next +subtitle packet is decoded: it may increase memory consumption and latency a +lot. +

+
+
-canvas_size size
+

Set the size of the canvas used to render subtitles. +

+
+
+ + +

5.11 Advanced options

+ +
+
-map [-]input_file_id[:stream_specifier][,sync_file_id[:stream_specifier]] | [linklabel] (output)
+
+

Designate one or more input streams as a source for the output file. Each input +stream is identified by the input file index input_file_id and +the input stream index input_stream_id within the input +file. Both indices start at 0. If specified, +sync_file_id:stream_specifier sets which input stream +is used as a presentation sync reference. +

+

The first -map option on the command line specifies the +source for output stream 0, the second -map option specifies +the source for output stream 1, etc. +

+

A - character before the stream identifier creates a "negative" mapping. +It disables matching streams from already created mappings. +

+

An alternative [linklabel] form will map outputs from complex filter +graphs (see the ‘-filter_complex’ option) to the output file. +linklabel must correspond to a defined output link label in the graph. +

+

For example, to map ALL streams from the first input file to output +

 
ffmpeg -i INPUT -map 0 output
+
+ +

For example, if you have two audio streams in the first input file, +these streams are identified by "0:0" and "0:1". You can use +-map to select which streams to place in an output file. For +example: +

 
ffmpeg -i INPUT -map 0:1 out.wav
+
+

will map the input stream in ‘INPUT’ identified by "0:1" to +the (single) output stream in ‘out.wav’. +

+

For example, to select the stream with index 2 from input file +‘a.mov’ (specified by the identifier "0:2"), and stream with +index 6 from input ‘b.mov’ (specified by the identifier "1:6"), +and copy them to the output file ‘out.mov’: +

 
ffmpeg -i a.mov -i b.mov -c copy -map 0:2 -map 1:6 out.mov
+
+ +

To select all video and the third audio stream from an input file: +

 
ffmpeg -i INPUT -map 0:v -map 0:a:2 OUTPUT
+
+ +

To map all the streams except the second audio, use negative mappings +

 
ffmpeg -i INPUT -map 0 -map -0:a:1 OUTPUT
+
+ +

Note that using this option disables the default mappings for this output file. +

+
+
-map_channel [input_file_id.stream_specifier.channel_id|-1][:output_file_id.stream_specifier]
+

Map an audio channel from a given input to an output. If +output_file_id.stream_specifier is not set, the audio channel will +be mapped on all the audio streams. +

+

Using "-1" instead of +input_file_id.stream_specifier.channel_id will map a muted +channel. +

+

For example, assuming INPUT is a stereo audio file, you can switch the +two audio channels with the following command: +

 
ffmpeg -i INPUT -map_channel 0.0.1 -map_channel 0.0.0 OUTPUT
+
+ +

If you want to mute the first channel and keep the second: +

 
ffmpeg -i INPUT -map_channel -1 -map_channel 0.0.1 OUTPUT
+
+ +

The order of the "-map_channel" option specifies the order of the channels in +the output stream. The output channel layout is guessed from the number of +channels mapped (mono if one "-map_channel", stereo if two, etc.). Using "-ac" +in combination of "-map_channel" makes the channel gain levels to be updated if +input and output channel layouts don’t match (for instance two "-map_channel" +options and "-ac 6"). +

+

You can also extract each channel of an input to specific outputs; the following +command extracts two channels of the INPUT audio stream (file 0, stream 0) +to the respective OUTPUT_CH0 and OUTPUT_CH1 outputs: +

 
ffmpeg -i INPUT -map_channel 0.0.0 OUTPUT_CH0 -map_channel 0.0.1 OUTPUT_CH1
+
+ +

The following example splits the channels of a stereo input into two separate +streams, which are put into the same output file: +

 
ffmpeg -i stereo.wav -map 0:0 -map 0:0 -map_channel 0.0.0:0.0 -map_channel 0.0.1:0.1 -y out.ogg
+
+ +

Note that currently each output stream can only contain channels from a single +input stream; you can’t for example use "-map_channel" to pick multiple input +audio channels contained in different streams (from the same or different files) +and merge them into a single output stream. It is therefore not currently +possible, for example, to turn two separate mono streams into a single stereo +stream. However splitting a stereo stream into two single channel mono streams +is possible. +

+

If you need this feature, a possible workaround is to use the amerge +filter. For example, if you need to merge a media (here ‘input.mkv’) with 2 +mono audio streams into one single stereo channel audio stream (and keep the +video stream), you can use the following command: +

 
ffmpeg -i input.mkv -filter_complex "[0:1] [0:2] amerge" -c:a pcm_s16le -c:v copy output.mkv
+
+ +
+
-map_metadata[:metadata_spec_out] infile[:metadata_spec_in] (output,per-metadata)
+

Set metadata information of the next output file from infile. Note that +those are file indices (zero-based), not filenames. +Optional metadata_spec_in/out parameters specify, which metadata to copy. +A metadata specifier can have the following forms: +

+
g
+

global metadata, i.e. metadata that applies to the whole file +

+
+
s[:stream_spec]
+

per-stream metadata. stream_spec is a stream specifier as described +in the Stream specifiers chapter. In an input metadata specifier, the first +matching stream is copied from. In an output metadata specifier, all matching +streams are copied to. +

+
+
c:chapter_index
+

per-chapter metadata. chapter_index is the zero-based chapter index. +

+
+
p:program_index
+

per-program metadata. program_index is the zero-based program index. +

+
+

If metadata specifier is omitted, it defaults to global. +

+

By default, global metadata is copied from the first input file, +per-stream and per-chapter metadata is copied along with streams/chapters. These +default mappings are disabled by creating any mapping of the relevant type. A negative +file index can be used to create a dummy mapping that just disables automatic copying. +

+

For example to copy metadata from the first stream of the input file to global metadata +of the output file: +

 
ffmpeg -i in.ogg -map_metadata 0:s:0 out.mp3
+
+ +

To do the reverse, i.e. copy global metadata to all audio streams: +

 
ffmpeg -i in.mkv -map_metadata:s:a 0:g out.mkv
+
+

Note that simple 0 would work as well in this example, since global +metadata is assumed by default. +

+
+
-map_chapters input_file_index (output)
+

Copy chapters from input file with index input_file_index to the next +output file. If no chapter mapping is specified, then chapters are copied from +the first input file with at least one chapter. Use a negative file index to +disable any chapter copying. +

+
+
-benchmark (global)
+

Show benchmarking information at the end of an encode. +Shows CPU time used and maximum memory consumption. +Maximum memory consumption is not supported on all systems, +it will usually display as 0 if not supported. +

+
-benchmark_all (global)
+

Show benchmarking information during the encode. +Shows CPU time used in various steps (audio/video encode/decode). +

+
-timelimit duration (global)
+

Exit after ffmpeg has been running for duration seconds. +

+
-dump (global)
+

Dump each input packet to stderr. +

+
-hex (global)
+

When dumping packets, also dump the payload. +

+
-re (input)
+

Read input at native frame rate. Mainly used to simulate a grab device. +or live input stream (e.g. when reading from a file). Should not be used +with actual grab devices or live input streams (where it can cause packet +loss). +By default ffmpeg attempts to read the input(s) as fast as possible. +This option will slow down the reading of the input(s) to the native frame rate +of the input(s). It is useful for real-time output (e.g. live streaming). +

+
-loop_input
+

Loop over the input stream. Currently it works only for image +streams. This option is used for automatic FFserver testing. +This option is deprecated, use -loop 1. +

+
-loop_output number_of_times
+

Repeatedly loop output for formats that support looping such as animated GIF +(0 will loop the output infinitely). +This option is deprecated, use -loop. +

+
-vsync parameter
+

Video sync method. +For compatibility reasons old values can be specified as numbers. +Newly added values will have to be specified as strings always. +

+
+
0, passthrough
+

Each frame is passed with its timestamp from the demuxer to the muxer. +

+
1, cfr
+

Frames will be duplicated and dropped to achieve exactly the requested +constant frame rate. +

+
2, vfr
+

Frames are passed through with their timestamp or dropped so as to +prevent 2 frames from having the same timestamp. +

+
drop
+

As passthrough but destroys all timestamps, making the muxer generate +fresh timestamps based on frame-rate. +

+
-1, auto
+

Chooses between 1 and 2 depending on muxer capabilities. This is the +default method. +

+
+ +

Note that the timestamps may be further modified by the muxer, after this. +For example, in the case that the format option ‘avoid_negative_ts’ +is enabled. +

+

With -map you can select from which stream the timestamps should be +taken. You can leave either video or audio unchanged and sync the +remaining stream(s) to the unchanged one. +

+
+
-async samples_per_second
+

Audio sync method. "Stretches/squeezes" the audio stream to match the timestamps, +the parameter is the maximum samples per second by which the audio is changed. +-async 1 is a special case where only the start of the audio stream is corrected +without any later correction. +

+

Note that the timestamps may be further modified by the muxer, after this. +For example, in the case that the format option ‘avoid_negative_ts’ +is enabled. +

+

This option has been deprecated. Use the aresample audio filter instead. +

+
+
-copyts
+

Do not process input timestamps, but keep their values without trying +to sanitize them. In particular, do not remove the initial start time +offset value. +

+

Note that, depending on the ‘vsync’ option or on specific muxer +processing (e.g. in case the format option ‘avoid_negative_ts’ +is enabled) the output timestamps may mismatch with the input +timestamps even when this option is selected. +

+
+
-copytb mode
+

Specify how to set the encoder timebase when stream copying. mode is an +integer numeric value, and can assume one of the following values: +

+
+
1
+

Use the demuxer timebase. +

+

The time base is copied to the output encoder from the corresponding input +demuxer. This is sometimes required to avoid non monotonically increasing +timestamps when copying video streams with variable frame rate. +

+
+
0
+

Use the decoder timebase. +

+

The time base is copied to the output encoder from the corresponding input +decoder. +

+
+
-1
+

Try to make the choice automatically, in order to generate a sane output. +

+
+ +

Default value is -1. +

+
+
-shortest (output)
+

Finish encoding when the shortest input stream ends. +

+
-dts_delta_threshold
+

Timestamp discontinuity delta threshold. +

+
-muxdelay seconds (input)
+

Set the maximum demux-decode delay. +

+
-muxpreload seconds (input)
+

Set the initial demux-decode delay. +

+
-streamid output-stream-index:new-value (output)
+

Assign a new stream-id value to an output stream. This option should be +specified prior to the output filename to which it applies. +For the situation where multiple output files exist, a streamid +may be reassigned to a different value. +

+

For example, to set the stream 0 PID to 33 and the stream 1 PID to 36 for +an output mpegts file: +

 
ffmpeg -i infile -streamid 0:33 -streamid 1:36 out.ts
+
+ +
+
-bsf[:stream_specifier] bitstream_filters (output,per-stream)
+

Set bitstream filters for matching streams. bitstream_filters is +a comma-separated list of bitstream filters. Use the -bsfs option +to get the list of bitstream filters. +

 
ffmpeg -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264
+
+
 
ffmpeg -i file.mov -an -vn -bsf:s mov2textsub -c:s copy -f rawvideo sub.txt
+
+ +
+
-tag[:stream_specifier] codec_tag (input/output,per-stream)
+

Force a tag/fourcc for matching streams. +

+
+
-timecode hh:mm:ssSEPff
+

Specify Timecode for writing. SEP is ’:’ for non drop timecode and ’;’ +(or ’.’) for drop. +

 
ffmpeg -i input.mpg -timecode 01:02:03.04 -r 30000/1001 -s ntsc output.mpg
+
+ +

+

+
-filter_complex filtergraph (global)
+

Define a complex filtergraph, i.e. one with arbitrary number of inputs and/or +outputs. For simple graphs – those with one input and one output of the same +type – see the ‘-filter’ options. filtergraph is a description of +the filtergraph, as described in the “Filtergraph syntax” section of the +ffmpeg-filters manual. +

+

Input link labels must refer to input streams using the +[file_index:stream_specifier] syntax (i.e. the same as ‘-map’ +uses). If stream_specifier matches multiple streams, the first one will be +used. An unlabeled input will be connected to the first unused input stream of +the matching type. +

+

Output link labels are referred to with ‘-map’. Unlabeled outputs are +added to the first output file. +

+

Note that with this option it is possible to use only lavfi sources without +normal input files. +

+

For example, to overlay an image over video +

 
ffmpeg -i video.mkv -i image.png -filter_complex '[0:v][1:v]overlay[out]' -map
+'[out]' out.mkv
+
+

Here [0:v] refers to the first video stream in the first input file, +which is linked to the first (main) input of the overlay filter. Similarly the +first video stream in the second input is linked to the second (overlay) input +of overlay. +

+

Assuming there is only one video stream in each input file, we can omit input +labels, so the above is equivalent to +

 
ffmpeg -i video.mkv -i image.png -filter_complex 'overlay[out]' -map
+'[out]' out.mkv
+
+ +

Furthermore we can omit the output label and the single output from the filter +graph will be added to the output file automatically, so we can simply write +

 
ffmpeg -i video.mkv -i image.png -filter_complex 'overlay' out.mkv
+
+ +

To generate 5 seconds of pure red video using lavfi color source: +

 
ffmpeg -filter_complex 'color=c=red' -t 5 out.mkv
+
+ +
+
-lavfi filtergraph (global)
+

Define a complex filtergraph, i.e. one with arbitrary number of inputs and/or +outputs. Equivalent to ‘-filter_complex’. +

+
+
-filter_complex_script filename (global)
+

This option is similar to ‘-filter_complex’, the only difference is that +its argument is the name of the file from which a complex filtergraph +description is to be read. +

+
+
-accurate_seek (input)
+

This option enables or disables accurate seeking in input files with the +‘-ss’ option. It is enabled by default, so seeking is accurate when +transcoding. Use ‘-noaccurate_seek’ to disable it, which may be useful +e.g. when copying some streams and transcoding the others. +

+
+
-override_ffserver (global)
+

Overrides the input specifications from ffserver. Using this +option you can map any input stream to ffserver and control +many aspects of the encoding from ffmpeg. Without this +option ffmpeg will transmit to ffserver what is +requested by ffserver. +

+

The option is intended for cases where features are needed that cannot be +specified to ffserver but can be to ffmpeg. +

+
+
+ +

As a special exception, you can use a bitmap subtitle stream as input: it +will be converted into a video with the same size as the largest video in +the file, or 720x576 if no video is present. Note that this is an +experimental and temporary solution. It will be removed once libavfilter has +proper support for subtitles. +

+

For example, to hardcode subtitles on top of a DVB-T recording stored in +MPEG-TS format, delaying the subtitles by 1 second: +

 
ffmpeg -i input.ts -filter_complex \
+  '[#0x2ef] setpts=PTS+1/TB [sub] ; [#0x2d0] [sub] overlay' \
+  -sn -map '#0x2dc' output.mkv
+
+

(0x2d0, 0x2dc and 0x2ef are the MPEG-TS PIDs of respectively the video, +audio and subtitles streams; 0:0, 0:3 and 0:7 would have worked too) +

+ +

5.12 Preset files

+

A preset file contains a sequence of option=value pairs, +one for each line, specifying a sequence of options which would be +awkward to specify on the command line. Lines starting with the hash +(’#’) character are ignored and are used to provide comments. Check +the ‘presets’ directory in the FFmpeg source tree for examples. +

+

Preset files are specified with the vpre, apre, +spre, and fpre options. The fpre option takes the +filename of the preset instead of a preset name as input and can be +used for any kind of codec. For the vpre, apre, and +spre options, the options specified in a preset file are +applied to the currently selected codec of the same type as the preset +option. +

+

The argument passed to the vpre, apre, and spre +preset options identifies the preset file to use according to the +following rules: +

+

First ffmpeg searches for a file named arg.ffpreset in the +directories ‘$FFMPEG_DATADIR’ (if set), and ‘$HOME/.ffmpeg’, and in +the datadir defined at configuration time (usually ‘PREFIX/share/ffmpeg’) +or in a ‘ffpresets’ folder along the executable on win32, +in that order. For example, if the argument is libvpx-1080p, it will +search for the file ‘libvpx-1080p.ffpreset’. +

+

If no such file is found, then ffmpeg will search for a file named +codec_name-arg.ffpreset in the above-mentioned +directories, where codec_name is the name of the codec to which +the preset file options will be applied. For example, if you select +the video codec with -vcodec libvpx and use -vpre 1080p, +then it will search for the file ‘libvpx-1080p.ffpreset’. +

+ +

6. Tips

+ +
    +
  • +For streaming at very low bitrates, use a low frame rate +and a small GOP size. This is especially true for RealVideo where +the Linux player does not seem to be very fast, so it can miss +frames. An example is: + +
     
    ffmpeg -g 3 -r 3 -t 10 -b:v 50k -s qcif -f rv10 /tmp/b.rm
    +
    + +
  • +The parameter ’q’ which is displayed while encoding is the current +quantizer. The value 1 indicates that a very good quality could +be achieved. The value 31 indicates the worst quality. If q=31 appears +too often, it means that the encoder cannot compress enough to meet +your bitrate. You must either increase the bitrate, decrease the +frame rate or decrease the frame size. + +
  • +If your computer is not fast enough, you can speed up the +compression at the expense of the compression ratio. You can use +’-me zero’ to speed up motion estimation, and ’-g 0’ to disable +motion estimation completely (you have only I-frames, which means it +is about as good as JPEG compression). + +
  • +To have very low audio bitrates, reduce the sampling frequency +(down to 22050 Hz for MPEG audio, 22050 or 11025 for AC-3). + +
  • +To have a constant quality (but a variable bitrate), use the option +’-qscale n’ when ’n’ is between 1 (excellent quality) and 31 (worst +quality). + +
+ + +

7. Examples

+ + +

7.1 Preset files

+ +

A preset file contains a sequence of option=value pairs, one for +each line, specifying a sequence of options which can be specified also on +the command line. Lines starting with the hash (’#’) character are ignored and +are used to provide comments. Empty lines are also ignored. Check the +‘presets’ directory in the FFmpeg source tree for examples. +

+

Preset files are specified with the pre option, this option takes a +preset name as input. FFmpeg searches for a file named preset_name.avpreset in +the directories ‘$AVCONV_DATADIR’ (if set), and ‘$HOME/.ffmpeg’, and in +the data directory defined at configuration time (usually ‘$PREFIX/share/ffmpeg’) +in that order. For example, if the argument is libx264-max, it will +search for the file ‘libx264-max.avpreset’. +

+ +

7.2 Video and Audio grabbing

+ +

If you specify the input format and device then ffmpeg can grab video +and audio directly. +

+
 
ffmpeg -f oss -i /dev/dsp -f video4linux2 -i /dev/video0 /tmp/out.mpg
+
+ +

Or with an ALSA audio source (mono input, card id 1) instead of OSS: +

 
ffmpeg -f alsa -ac 1 -i hw:1 -f video4linux2 -i /dev/video0 /tmp/out.mpg
+
+ +

Note that you must activate the right video source and channel before +launching ffmpeg with any TV viewer such as +xawtv by Gerd Knorr. You also +have to set the audio recording levels correctly with a +standard mixer. +

+ +

7.3 X11 grabbing

+ +

Grab the X11 display with ffmpeg via +

+
 
ffmpeg -f x11grab -video_size cif -framerate 25 -i :0.0 /tmp/out.mpg
+
+ +

0.0 is display.screen number of your X11 server, same as +the DISPLAY environment variable. +

+
 
ffmpeg -f x11grab -video_size cif -framerate 25 -i :0.0+10,20 /tmp/out.mpg
+
+ +

0.0 is display.screen number of your X11 server, same as the DISPLAY environment +variable. 10 is the x-offset and 20 the y-offset for the grabbing. +

+ +

7.4 Video and Audio file format conversion

+ +

Any supported file format and protocol can serve as input to ffmpeg: +

+

Examples: +

    +
  • +You can use YUV files as input: + +
     
    ffmpeg -i /tmp/test%d.Y /tmp/out.mpg
    +
    + +

    It will use the files: +

     
    /tmp/test0.Y, /tmp/test0.U, /tmp/test0.V,
    +/tmp/test1.Y, /tmp/test1.U, /tmp/test1.V, etc...
    +
    + +

    The Y files use twice the resolution of the U and V files. They are +raw files, without header. They can be generated by all decent video +decoders. You must specify the size of the image with the ‘-s’ option +if ffmpeg cannot guess it. +

    +
  • +You can input from a raw YUV420P file: + +
     
    ffmpeg -i /tmp/test.yuv /tmp/out.avi
    +
    + +

    test.yuv is a file containing raw YUV planar data. Each frame is composed +of the Y plane followed by the U and V planes at half vertical and +horizontal resolution. +

    +
  • +You can output to a raw YUV420P file: + +
     
    ffmpeg -i mydivx.avi hugefile.yuv
    +
    + +
  • +You can set several input files and output files: + +
     
    ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg
    +
    + +

    Converts the audio file a.wav and the raw YUV video file a.yuv +to MPEG file a.mpg. +

    +
  • +You can also do audio and video conversions at the same time: + +
     
    ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2
    +
    + +

    Converts a.wav to MPEG audio at 22050 Hz sample rate. +

    +
  • +You can encode to several formats at the same time and define a +mapping from input stream to output streams: + +
     
    ffmpeg -i /tmp/a.wav -map 0:a -b:a 64k /tmp/a.mp2 -map 0:a -b:a 128k /tmp/b.mp2
    +
    + +

    Converts a.wav to a.mp2 at 64 kbits and to b.mp2 at 128 kbits. ’-map +file:index’ specifies which input stream is used for each output +stream, in the order of the definition of output streams. +

    +
  • +You can transcode decrypted VOBs: + +
     
    ffmpeg -i snatch_1.vob -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k snatch.avi
    +
    + +

    This is a typical DVD ripping example; the input is a VOB file, the +output an AVI file with MPEG-4 video and MP3 audio. Note that in this +command we use B-frames so the MPEG-4 stream is DivX5 compatible, and +GOP size is 300 which means one intra frame every 10 seconds for 29.97fps +input video. Furthermore, the audio stream is MP3-encoded so you need +to enable LAME support by passing --enable-libmp3lame to configure. +The mapping is particularly useful for DVD transcoding +to get the desired audio language. +

    +

    NOTE: To see the supported input formats, use ffmpeg -formats. +

    +
  • +You can extract images from a video, or create a video from many images: + +

    For extracting images from a video: +

     
    ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg
    +
    + +

    This will extract one video frame per second from the video and will +output them in files named ‘foo-001.jpeg’, ‘foo-002.jpeg’, +etc. Images will be rescaled to fit the new WxH values. +

    +

    If you want to extract just a limited number of frames, you can use the +above command in combination with the -vframes or -t option, or in +combination with -ss to start extracting from a certain point in time. +

    +

    For creating a video from many images: +

     
    ffmpeg -f image2 -i foo-%03d.jpeg -r 12 -s WxH foo.avi
    +
    + +

    The syntax foo-%03d.jpeg specifies to use a decimal number +composed of three digits padded with zeroes to express the sequence +number. It is the same syntax supported by the C printf function, but +only formats accepting a normal integer are suitable. +

    +

    When importing an image sequence, -i also supports expanding +shell-like wildcard patterns (globbing) internally, by selecting the +image2-specific -pattern_type glob option. +

    +

    For example, for creating a video from filenames matching the glob pattern +foo-*.jpeg: +

     
    ffmpeg -f image2 -pattern_type glob -i 'foo-*.jpeg' -r 12 -s WxH foo.avi
    +
    + +
  • +You can put many streams of the same type in the output: + +
     
    ffmpeg -i test1.avi -i test2.avi -map 0:3 -map 0:2 -map 0:1 -map 0:0 -c copy test12.nut
    +
    + +

    The resulting output file ‘test12.avi’ will contain first four streams from +the input file in reverse order. +

    +
  • +To force CBR video output: +
     
    ffmpeg -i myfile.avi -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2v
    +
    + +
  • +The four options lmin, lmax, mblmin and mblmax use ’lambda’ units, +but you may use the QP2LAMBDA constant to easily convert from ’q’ units: +
     
    ffmpeg -i src.ext -lmax 21*QP2LAMBDA dst.ext
    +
    + +
+ + +

8. Syntax

+ +

This section documents the syntax and formats employed by the FFmpeg +libraries and tools. +

+

+

+

8.1 Quoting and escaping

+ +

FFmpeg adopts the following quoting and escaping mechanism, unless +explicitly specified. The following rules are applied: +

+
    +
  • +' and \ are special characters (respectively used for +quoting and escaping). In addition to them, there might be other +special characters depending on the specific syntax where the escaping +and quoting are employed. + +
  • +A special character is escaped by prefixing it with a ’\’. + +
  • +All characters enclosed between ” are included literally in the +parsed string. The quote character ' itself cannot be quoted, +so you may need to close the quote and escape it. + +
  • +Leading and trailing whitespaces, unless escaped or quoted, are +removed from the parsed string. +
+ +

Note that you may need to add a second level of escaping when using +the command line or a script, which depends on the syntax of the +adopted shell language. +

+

The function av_get_token defined in +‘libavutil/avstring.h’ can be used to parse a token quoted or +escaped according to the rules defined above. +

+

The tool ‘tools/ffescape’ in the FFmpeg source tree can be used +to automatically quote or escape a string in a script. +

+ +

8.1.1 Examples

+ +
    +
  • +Escape the string Crime d'Amour containing the ' special +character: +
     
    Crime d\'Amour
    +
    + +
  • +The string above contains a quote, so the ' needs to be escaped +when quoting it: +
     
    'Crime d'\''Amour'
    +
    + +
  • +Include leading or trailing whitespaces using quoting: +
     
    '  this string starts and ends with whitespaces  '
    +
    + +
  • +Escaping and quoting can be mixed together: +
     
    ' The string '\'string\'' is a string '
    +
    + +
  • +To include a literal \ you can use either escaping or quoting: +
     
    'c:\foo' can be written as c:\\foo
    +
    +
+ +

+

+

8.2 Date

+ +

The accepted syntax is: +

 
[(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z]
+now
+
+ +

If the value is "now" it takes the current time. +

+

Time is local time unless Z is appended, in which case it is +interpreted as UTC. +If the year-month-day part is not specified it takes the current +year-month-day. +

+

+

+

8.3 Time duration

+ +

There are two accepted syntaxes for expressing time duration. +

+
 
[-][HH:]MM:SS[.m...]
+
+ +

HH expresses the number of hours, MM the number of minutes +for a maximum of 2 digits, and SS the number of seconds for a +maximum of 2 digits. The m at the end expresses decimal value for +SS. +

+

or +

+
 
[-]S+[.m...]
+
+ +

S expresses the number of seconds, with the optional decimal part +m. +

+

In both expressions, the optional ‘-’ indicates negative duration. +

+ +

8.3.1 Examples

+ +

The following examples are all valid time duration: +

+
+
55
+

55 seconds +

+
+
12:03:45
+

12 hours, 03 minutes and 45 seconds +

+
+
23.189
+

23.189 seconds +

+
+ +

+

+

8.4 Video size

+

Specify the size of the sourced video, it may be a string of the form +widthxheight, or the name of a size abbreviation. +

+

The following abbreviations are recognized: +

+
ntsc
+

720x480 +

+
pal
+

720x576 +

+
qntsc
+

352x240 +

+
qpal
+

352x288 +

+
sntsc
+

640x480 +

+
spal
+

768x576 +

+
film
+

352x240 +

+
ntsc-film
+

352x240 +

+
sqcif
+

128x96 +

+
qcif
+

176x144 +

+
cif
+

352x288 +

+
4cif
+

704x576 +

+
16cif
+

1408x1152 +

+
qqvga
+

160x120 +

+
qvga
+

320x240 +

+
vga
+

640x480 +

+
svga
+

800x600 +

+
xga
+

1024x768 +

+
uxga
+

1600x1200 +

+
qxga
+

2048x1536 +

+
sxga
+

1280x1024 +

+
qsxga
+

2560x2048 +

+
hsxga
+

5120x4096 +

+
wvga
+

852x480 +

+
wxga
+

1366x768 +

+
wsxga
+

1600x1024 +

+
wuxga
+

1920x1200 +

+
woxga
+

2560x1600 +

+
wqsxga
+

3200x2048 +

+
wquxga
+

3840x2400 +

+
whsxga
+

6400x4096 +

+
whuxga
+

7680x4800 +

+
cga
+

320x200 +

+
ega
+

640x350 +

+
hd480
+

852x480 +

+
hd720
+

1280x720 +

+
hd1080
+

1920x1080 +

+
2k
+

2048x1080 +

+
2kflat
+

1998x1080 +

+
2kscope
+

2048x858 +

+
4k
+

4096x2160 +

+
4kflat
+

3996x2160 +

+
4kscope
+

4096x1716 +

+
nhd
+

640x360 +

+
hqvga
+

240x160 +

+
wqvga
+

400x240 +

+
fwqvga
+

432x240 +

+
hvga
+

480x320 +

+
qhd
+

960x540 +

+
+ +

+

+

8.5 Video rate

+ +

Specify the frame rate of a video, expressed as the number of frames +generated per second. It has to be a string in the format +frame_rate_num/frame_rate_den, an integer number, a float +number or a valid video frame rate abbreviation. +

+

The following abbreviations are recognized: +

+
ntsc
+

30000/1001 +

+
pal
+

25/1 +

+
qntsc
+

30000/1001 +

+
qpal
+

25/1 +

+
sntsc
+

30000/1001 +

+
spal
+

25/1 +

+
film
+

24/1 +

+
ntsc-film
+

24000/1001 +

+
+ +

+

+

8.6 Ratio

+ +

A ratio can be expressed as an expression, or in the form +numerator:denominator. +

+

Note that a ratio with infinite (1/0) or negative value is +considered valid, so you should check on the returned value if you +want to exclude those values. +

+

The undefined value can be expressed using the "0:0" string. +

+

+

+

8.7 Color

+ +

It can be the name of a color as defined below (case insensitive match) or a +[0x|#]RRGGBB[AA] sequence, possibly followed by @ and a string +representing the alpha component. +

+

The alpha component may be a string composed by "0x" followed by an +hexadecimal number or a decimal number between 0.0 and 1.0, which +represents the opacity value (‘0x00’ or ‘0.0’ means completely +transparent, ‘0xff’ or ‘1.0’ completely opaque). If the alpha +component is not specified then ‘0xff’ is assumed. +

+

The string ‘random’ will result in a random color. +

+

The following names of colors are recognized: +

+
AliceBlue
+

0xF0F8FF +

+
AntiqueWhite
+

0xFAEBD7 +

+
Aqua
+

0x00FFFF +

+
Aquamarine
+

0x7FFFD4 +

+
Azure
+

0xF0FFFF +

+
Beige
+

0xF5F5DC +

+
Bisque
+

0xFFE4C4 +

+
Black
+

0x000000 +

+
BlanchedAlmond
+

0xFFEBCD +

+
Blue
+

0x0000FF +

+
BlueViolet
+

0x8A2BE2 +

+
Brown
+

0xA52A2A +

+
BurlyWood
+

0xDEB887 +

+
CadetBlue
+

0x5F9EA0 +

+
Chartreuse
+

0x7FFF00 +

+
Chocolate
+

0xD2691E +

+
Coral
+

0xFF7F50 +

+
CornflowerBlue
+

0x6495ED +

+
Cornsilk
+

0xFFF8DC +

+
Crimson
+

0xDC143C +

+
Cyan
+

0x00FFFF +

+
DarkBlue
+

0x00008B +

+
DarkCyan
+

0x008B8B +

+
DarkGoldenRod
+

0xB8860B +

+
DarkGray
+

0xA9A9A9 +

+
DarkGreen
+

0x006400 +

+
DarkKhaki
+

0xBDB76B +

+
DarkMagenta
+

0x8B008B +

+
DarkOliveGreen
+

0x556B2F +

+
Darkorange
+

0xFF8C00 +

+
DarkOrchid
+

0x9932CC +

+
DarkRed
+

0x8B0000 +

+
DarkSalmon
+

0xE9967A +

+
DarkSeaGreen
+

0x8FBC8F +

+
DarkSlateBlue
+

0x483D8B +

+
DarkSlateGray
+

0x2F4F4F +

+
DarkTurquoise
+

0x00CED1 +

+
DarkViolet
+

0x9400D3 +

+
DeepPink
+

0xFF1493 +

+
DeepSkyBlue
+

0x00BFFF +

+
DimGray
+

0x696969 +

+
DodgerBlue
+

0x1E90FF +

+
FireBrick
+

0xB22222 +

+
FloralWhite
+

0xFFFAF0 +

+
ForestGreen
+

0x228B22 +

+
Fuchsia
+

0xFF00FF +

+
Gainsboro
+

0xDCDCDC +

+
GhostWhite
+

0xF8F8FF +

+
Gold
+

0xFFD700 +

+
GoldenRod
+

0xDAA520 +

+
Gray
+

0x808080 +

+
Green
+

0x008000 +

+
GreenYellow
+

0xADFF2F +

+
HoneyDew
+

0xF0FFF0 +

+
HotPink
+

0xFF69B4 +

+
IndianRed
+

0xCD5C5C +

+
Indigo
+

0x4B0082 +

+
Ivory
+

0xFFFFF0 +

+
Khaki
+

0xF0E68C +

+
Lavender
+

0xE6E6FA +

+
LavenderBlush
+

0xFFF0F5 +

+
LawnGreen
+

0x7CFC00 +

+
LemonChiffon
+

0xFFFACD +

+
LightBlue
+

0xADD8E6 +

+
LightCoral
+

0xF08080 +

+
LightCyan
+

0xE0FFFF +

+
LightGoldenRodYellow
+

0xFAFAD2 +

+
LightGreen
+

0x90EE90 +

+
LightGrey
+

0xD3D3D3 +

+
LightPink
+

0xFFB6C1 +

+
LightSalmon
+

0xFFA07A +

+
LightSeaGreen
+

0x20B2AA +

+
LightSkyBlue
+

0x87CEFA +

+
LightSlateGray
+

0x778899 +

+
LightSteelBlue
+

0xB0C4DE +

+
LightYellow
+

0xFFFFE0 +

+
Lime
+

0x00FF00 +

+
LimeGreen
+

0x32CD32 +

+
Linen
+

0xFAF0E6 +

+
Magenta
+

0xFF00FF +

+
Maroon
+

0x800000 +

+
MediumAquaMarine
+

0x66CDAA +

+
MediumBlue
+

0x0000CD +

+
MediumOrchid
+

0xBA55D3 +

+
MediumPurple
+

0x9370D8 +

+
MediumSeaGreen
+

0x3CB371 +

+
MediumSlateBlue
+

0x7B68EE +

+
MediumSpringGreen
+

0x00FA9A +

+
MediumTurquoise
+

0x48D1CC +

+
MediumVioletRed
+

0xC71585 +

+
MidnightBlue
+

0x191970 +

+
MintCream
+

0xF5FFFA +

+
MistyRose
+

0xFFE4E1 +

+
Moccasin
+

0xFFE4B5 +

+
NavajoWhite
+

0xFFDEAD +

+
Navy
+

0x000080 +

+
OldLace
+

0xFDF5E6 +

+
Olive
+

0x808000 +

+
OliveDrab
+

0x6B8E23 +

+
Orange
+

0xFFA500 +

+
OrangeRed
+

0xFF4500 +

+
Orchid
+

0xDA70D6 +

+
PaleGoldenRod
+

0xEEE8AA +

+
PaleGreen
+

0x98FB98 +

+
PaleTurquoise
+

0xAFEEEE +

+
PaleVioletRed
+

0xD87093 +

+
PapayaWhip
+

0xFFEFD5 +

+
PeachPuff
+

0xFFDAB9 +

+
Peru
+

0xCD853F +

+
Pink
+

0xFFC0CB +

+
Plum
+

0xDDA0DD +

+
PowderBlue
+

0xB0E0E6 +

+
Purple
+

0x800080 +

+
Red
+

0xFF0000 +

+
RosyBrown
+

0xBC8F8F +

+
RoyalBlue
+

0x4169E1 +

+
SaddleBrown
+

0x8B4513 +

+
Salmon
+

0xFA8072 +

+
SandyBrown
+

0xF4A460 +

+
SeaGreen
+

0x2E8B57 +

+
SeaShell
+

0xFFF5EE +

+
Sienna
+

0xA0522D +

+
Silver
+

0xC0C0C0 +

+
SkyBlue
+

0x87CEEB +

+
SlateBlue
+

0x6A5ACD +

+
SlateGray
+

0x708090 +

+
Snow
+

0xFFFAFA +

+
SpringGreen
+

0x00FF7F +

+
SteelBlue
+

0x4682B4 +

+
Tan
+

0xD2B48C +

+
Teal
+

0x008080 +

+
Thistle
+

0xD8BFD8 +

+
Tomato
+

0xFF6347 +

+
Turquoise
+

0x40E0D0 +

+
Violet
+

0xEE82EE +

+
Wheat
+

0xF5DEB3 +

+
White
+

0xFFFFFF +

+
WhiteSmoke
+

0xF5F5F5 +

+
Yellow
+

0xFFFF00 +

+
YellowGreen
+

0x9ACD32 +

+
+ +

+

+

8.8 Channel Layout

+ +

A channel layout specifies the spatial disposition of the channels in +a multi-channel audio stream. To specify a channel layout, FFmpeg +makes use of a special syntax. +

+

Individual channels are identified by an id, as given by the table +below: +

+
FL
+

front left +

+
FR
+

front right +

+
FC
+

front center +

+
LFE
+

low frequency +

+
BL
+

back left +

+
BR
+

back right +

+
FLC
+

front left-of-center +

+
FRC
+

front right-of-center +

+
BC
+

back center +

+
SL
+

side left +

+
SR
+

side right +

+
TC
+

top center +

+
TFL
+

top front left +

+
TFC
+

top front center +

+
TFR
+

top front right +

+
TBL
+

top back left +

+
TBC
+

top back center +

+
TBR
+

top back right +

+
DL
+

downmix left +

+
DR
+

downmix right +

+
WL
+

wide left +

+
WR
+

wide right +

+
SDL
+

surround direct left +

+
SDR
+

surround direct right +

+
LFE2
+

low frequency 2 +

+
+ +

Standard channel layout compositions can be specified by using the +following identifiers: +

+
mono
+

FC +

+
stereo
+

FL+FR +

+
2.1
+

FL+FR+LFE +

+
3.0
+

FL+FR+FC +

+
3.0(back)
+

FL+FR+BC +

+
4.0
+

FL+FR+FC+BC +

+
quad
+

FL+FR+BL+BR +

+
quad(side)
+

FL+FR+SL+SR +

+
3.1
+

FL+FR+FC+LFE +

+
5.0
+

FL+FR+FC+BL+BR +

+
5.0(side)
+

FL+FR+FC+SL+SR +

+
4.1
+

FL+FR+FC+LFE+BC +

+
5.1
+

FL+FR+FC+LFE+BL+BR +

+
5.1(side)
+

FL+FR+FC+LFE+SL+SR +

+
6.0
+

FL+FR+FC+BC+SL+SR +

+
6.0(front)
+

FL+FR+FLC+FRC+SL+SR +

+
hexagonal
+

FL+FR+FC+BL+BR+BC +

+
6.1
+

FL+FR+FC+LFE+BC+SL+SR +

+
6.1
+

FL+FR+FC+LFE+BL+BR+BC +

+
6.1(front)
+

FL+FR+LFE+FLC+FRC+SL+SR +

+
7.0
+

FL+FR+FC+BL+BR+SL+SR +

+
7.0(front)
+

FL+FR+FC+FLC+FRC+SL+SR +

+
7.1
+

FL+FR+FC+LFE+BL+BR+SL+SR +

+
7.1(wide)
+

FL+FR+FC+LFE+BL+BR+FLC+FRC +

+
7.1(wide-side)
+

FL+FR+FC+LFE+FLC+FRC+SL+SR +

+
octagonal
+

FL+FR+FC+BL+BR+BC+SL+SR +

+
downmix
+

DL+DR +

+
+ +

A custom channel layout can be specified as a sequence of terms, separated by +’+’ or ’|’. Each term can be: +

    +
  • +the name of a standard channel layout (e.g. ‘mono’, +‘stereo’, ‘4.0’, ‘quad’, ‘5.0’, etc.) + +
  • +the name of a single channel (e.g. ‘FL’, ‘FR’, ‘FC’, ‘LFE’, etc.) + +
  • +a number of channels, in decimal, optionally followed by ’c’, yielding +the default channel layout for that number of channels (see the +function av_get_default_channel_layout) + +
  • +a channel layout mask, in hexadecimal starting with "0x" (see the +AV_CH_* macros in ‘libavutil/channel_layout.h’. +
+ +

Starting from libavutil version 53 the trailing character "c" to +specify a number of channels will be required, while a channel layout +mask could also be specified as a decimal number (if and only if not +followed by "c"). +

+

See also the function av_get_channel_layout defined in +‘libavutil/channel_layout.h’. +

+ +

9. Expression Evaluation

+ +

When evaluating an arithmetic expression, FFmpeg uses an internal +formula evaluator, implemented through the ‘libavutil/eval.h’ +interface. +

+

An expression may contain unary, binary operators, constants, and +functions. +

+

Two expressions expr1 and expr2 can be combined to form +another expression "expr1;expr2". +expr1 and expr2 are evaluated in turn, and the new +expression evaluates to the value of expr2. +

+

The following binary operators are available: +, -, +*, /, ^. +

+

The following unary operators are available: +, -. +

+

The following functions are available: +

+
abs(x)
+

Compute absolute value of x. +

+
+
acos(x)
+

Compute arccosine of x. +

+
+
asin(x)
+

Compute arcsine of x. +

+
+
atan(x)
+

Compute arctangent of x. +

+
+
between(x, min, max)
+

Return 1 if x is greater than or equal to min and lesser than or +equal to max, 0 otherwise. +

+
+
bitand(x, y)
+
bitor(x, y)
+

Compute bitwise and/or operation on x and y. +

+

The results of the evaluation of x and y are converted to +integers before executing the bitwise operation. +

+

Note that both the conversion to integer and the conversion back to +floating point can lose precision. Beware of unexpected results for +large numbers (usually 2^53 and larger). +

+
+
ceil(expr)
+

Round the value of expression expr upwards to the nearest +integer. For example, "ceil(1.5)" is "2.0". +

+
+
cos(x)
+

Compute cosine of x. +

+
+
cosh(x)
+

Compute hyperbolic cosine of x. +

+
+
eq(x, y)
+

Return 1 if x and y are equivalent, 0 otherwise. +

+
+
exp(x)
+

Compute exponential of x (with base e, the Euler’s number). +

+
+
floor(expr)
+

Round the value of expression expr downwards to the nearest +integer. For example, "floor(-1.5)" is "-2.0". +

+
+
gauss(x)
+

Compute Gauss function of x, corresponding to +exp(-x*x/2) / sqrt(2*PI). +

+
+
gcd(x, y)
+

Return the greatest common divisor of x and y. If both x and +y are 0 or either or both are less than zero then behavior is undefined. +

+
+
gt(x, y)
+

Return 1 if x is greater than y, 0 otherwise. +

+
+
gte(x, y)
+

Return 1 if x is greater than or equal to y, 0 otherwise. +

+
+
hypot(x, y)
+

This function is similar to the C function with the same name; it returns +"sqrt(x*x + y*y)", the length of the hypotenuse of a +right triangle with sides of length x and y, or the distance of the +point (x, y) from the origin. +

+
+
if(x, y)
+

Evaluate x, and if the result is non-zero return the result of +the evaluation of y, return 0 otherwise. +

+
+
if(x, y, z)
+

Evaluate x, and if the result is non-zero return the evaluation +result of y, otherwise the evaluation result of z. +

+
+
ifnot(x, y)
+

Evaluate x, and if the result is zero return the result of the +evaluation of y, return 0 otherwise. +

+
+
ifnot(x, y, z)
+

Evaluate x, and if the result is zero return the evaluation +result of y, otherwise the evaluation result of z. +

+
+
isinf(x)
+

Return 1.0 if x is +/-INFINITY, 0.0 otherwise. +

+
+
isnan(x)
+

Return 1.0 if x is NAN, 0.0 otherwise. +

+
+
ld(var)
+

Allow to load the value of the internal variable with number +var, which was previously stored with st(var, expr). +The function returns the loaded value. +

+
+
log(x)
+

Compute natural logarithm of x. +

+
+
lt(x, y)
+

Return 1 if x is lesser than y, 0 otherwise. +

+
+
lte(x, y)
+

Return 1 if x is lesser than or equal to y, 0 otherwise. +

+
+
max(x, y)
+

Return the maximum between x and y. +

+
+
min(x, y)
+

Return the maximum between x and y. +

+
+
mod(x, y)
+

Compute the remainder of division of x by y. +

+
+
not(expr)
+

Return 1.0 if expr is zero, 0.0 otherwise. +

+
+
pow(x, y)
+

Compute the power of x elevated y, it is equivalent to +"(x)^(y)". +

+
+
print(t)
+
print(t, l)
+

Print the value of expression t with loglevel l. If +l is not specified then a default log level is used. +Returns the value of the expression printed. +

+

Prints t with loglevel l +

+
+
random(x)
+

Return a pseudo random value between 0.0 and 1.0. x is the index of the +internal variable which will be used to save the seed/state. +

+
+
root(expr, max)
+

Find an input value for which the function represented by expr +with argument ld(0) is 0 in the interval 0..max. +

+

The expression in expr must denote a continuous function or the +result is undefined. +

+

ld(0) is used to represent the function input value, which means +that the given expression will be evaluated multiple times with +various input values that the expression can access through +ld(0). When the expression evaluates to 0 then the +corresponding input value will be returned. +

+
+
sin(x)
+

Compute sine of x. +

+
+
sinh(x)
+

Compute hyperbolic sine of x. +

+
+
sqrt(expr)
+

Compute the square root of expr. This is equivalent to +"(expr)^.5". +

+
+
squish(x)
+

Compute expression 1/(1 + exp(4*x)). +

+
+
st(var, expr)
+

Allow to store the value of the expression expr in an internal +variable. var specifies the number of the variable where to +store the value, and it is a value ranging from 0 to 9. The function +returns the value stored in the internal variable. +Note, Variables are currently not shared between expressions. +

+
+
tan(x)
+

Compute tangent of x. +

+
+
tanh(x)
+

Compute hyperbolic tangent of x. +

+
+
taylor(expr, x)
+
taylor(expr, x, id)
+

Evaluate a Taylor series at x, given an expression representing +the ld(id)-th derivative of a function at 0. +

+

When the series does not converge the result is undefined. +

+

ld(id) is used to represent the derivative order in expr, +which means that the given expression will be evaluated multiple times +with various input values that the expression can access through +ld(id). If id is not specified then 0 is assumed. +

+

Note, when you have the derivatives at y instead of 0, +taylor(expr, x-y) can be used. +

+
+
time(0)
+

Return the current (wallclock) time in seconds. +

+
+
trunc(expr)
+

Round the value of expression expr towards zero to the nearest +integer. For example, "trunc(-1.5)" is "-1.0". +

+
+
while(cond, expr)
+

Evaluate expression expr while the expression cond is +non-zero, and returns the value of the last expr evaluation, or +NAN if cond was always false. +

+
+ +

The following constants are available: +

+
PI
+

area of the unit disc, approximately 3.14 +

+
E
+

exp(1) (Euler’s number), approximately 2.718 +

+
PHI
+

golden ratio (1+sqrt(5))/2, approximately 1.618 +

+
+ +

Assuming that an expression is considered "true" if it has a non-zero +value, note that: +

+

* works like AND +

+

+ works like OR +

+

For example the construct: +

 
if (A AND B) then C
+
+

is equivalent to: +

 
if(A*B, C)
+
+ +

In your C code, you can extend the list of unary and binary functions, +and define recognized constants, so that they are available for your +expressions. +

+

The evaluator also recognizes the International System unit prefixes. +If ’i’ is appended after the prefix, binary prefixes are used, which +are based on powers of 1024 instead of powers of 1000. +The ’B’ postfix multiplies the value by 8, and can be appended after a +unit prefix or used alone. This allows using for example ’KB’, ’MiB’, +’G’ and ’B’ as number postfix. +

+

The list of available International System prefixes follows, with +indication of the corresponding powers of 10 and of 2. +

+
y
+

10^-24 / 2^-80 +

+
z
+

10^-21 / 2^-70 +

+
a
+

10^-18 / 2^-60 +

+
f
+

10^-15 / 2^-50 +

+
p
+

10^-12 / 2^-40 +

+
n
+

10^-9 / 2^-30 +

+
u
+

10^-6 / 2^-20 +

+
m
+

10^-3 / 2^-10 +

+
c
+

10^-2 +

+
d
+

10^-1 +

+
h
+

10^2 +

+
k
+

10^3 / 2^10 +

+
K
+

10^3 / 2^10 +

+
M
+

10^6 / 2^20 +

+
G
+

10^9 / 2^30 +

+
T
+

10^12 / 2^40 +

+
P
+

10^15 / 2^40 +

+
E
+

10^18 / 2^50 +

+
Z
+

10^21 / 2^60 +

+
Y
+

10^24 / 2^70 +

+
+ + + +

10. OpenCL Options

+ +

When FFmpeg is configured with --enable-opencl, it is possible +to set the options for the global OpenCL context. +

+

The list of supported options follows: +

+
+
build_options
+

Set build options used to compile the registered kernels. +

+

See reference "OpenCL Specification Version: 1.2 chapter 5.6.4". +

+
+
platform_idx
+

Select the index of the platform to run OpenCL code. +

+

The specified index must be one of the indexes in the device list +which can be obtained with ffmpeg -opencl_bench or av_opencl_get_device_list(). +

+
+
device_idx
+

Select the index of the device used to run OpenCL code. +

+

The specified index must be one of the indexes in the device list which +can be obtained with ffmpeg -opencl_bench or av_opencl_get_device_list(). +

+
+
+ +

+

+

11. Codec Options

+ +

libavcodec provides some generic global options, which can be set on +all the encoders and decoders. In addition each codec may support +so-called private options, which are specific for a given codec. +

+

Sometimes, a global option may only affect a specific kind of codec, +and may be unsensical or ignored by another, so you need to be aware +of the meaning of the specified options. Also some options are +meant only for decoding or encoding. +

+

Options may be set by specifying -option value in the +FFmpeg tools, or by setting the value explicitly in the +AVCodecContext options or using the ‘libavutil/opt.h’ API +for programmatic use. +

+

The list of supported options follow: +

+
+
b integer (encoding,audio,video)
+

Set bitrate in bits/s. Default value is 200K. +

+
+
ab integer (encoding,audio)
+

Set audio bitrate (in bits/s). Default value is 128K. +

+
+
bt integer (encoding,video)
+

Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate +tolerance specifies how far ratecontrol is willing to deviate from the +target average bitrate value. This is not related to min/max +bitrate. Lowering tolerance too much has an adverse effect on quality. +

+
+
flags flags (decoding/encoding,audio,video,subtitles)
+

Set generic flags. +

+

Possible values: +

+
mv4
+

Use four motion vector by macroblock (mpeg4). +

+
qpel
+

Use 1/4 pel motion compensation. +

+
loop
+

Use loop filter. +

+
qscale
+

Use fixed qscale. +

+
gmc
+

Use gmc. +

+
mv0
+

Always try a mb with mv=<0,0>. +

+
input_preserved
+
pass1
+

Use internal 2pass ratecontrol in first pass mode. +

+
pass2
+

Use internal 2pass ratecontrol in second pass mode. +

+
gray
+

Only decode/encode grayscale. +

+
emu_edge
+

Do not draw edges. +

+
psnr
+

Set error[?] variables during encoding. +

+
truncated
+
naq
+

Normalize adaptive quantization. +

+
ildct
+

Use interlaced DCT. +

+
low_delay
+

Force low delay. +

+
global_header
+

Place global headers in extradata instead of every keyframe. +

+
bitexact
+

Use only bitexact stuff (except (I)DCT). +

+
aic
+

Apply H263 advanced intra coding / mpeg4 ac prediction. +

+
cbp
+

Deprecated, use mpegvideo private options instead. +

+
qprd
+

Deprecated, use mpegvideo private options instead. +

+
ilme
+

Apply interlaced motion estimation. +

+
cgop
+

Use closed gop. +

+
+ +
+
me_method integer (encoding,video)
+

Set motion estimation method. +

+

Possible values: +

+
zero
+

zero motion estimation (fastest) +

+
full
+

full motion estimation (slowest) +

+
epzs
+

EPZS motion estimation (default) +

+
esa
+

esa motion estimation (alias for full) +

+
tesa
+

tesa motion estimation +

+
dia
+

dia motion estimation (alias for epzs) +

+
log
+

log motion estimation +

+
phods
+

phods motion estimation +

+
x1
+

X1 motion estimation +

+
hex
+

hex motion estimation +

+
umh
+

umh motion estimation +

+
iter
+

iter motion estimation +

+
+ +
+
extradata_size integer
+

Set extradata size. +

+
+
time_base rational number
+

Set codec time base. +

+

It is the fundamental unit of time (in seconds) in terms of which +frame timestamps are represented. For fixed-fps content, timebase +should be 1 / frame_rate and timestamp increments should be +identically 1. +

+
+
g integer (encoding,video)
+

Set the group of picture size. Default value is 12. +

+
+
ar integer (decoding/encoding,audio)
+

Set audio sampling rate (in Hz). +

+
+
ac integer (decoding/encoding,audio)
+

Set number of audio channels. +

+
+
cutoff integer (encoding,audio)
+

Set cutoff bandwidth. +

+
+
frame_size integer (encoding,audio)
+

Set audio frame size. +

+

Each submitted frame except the last must contain exactly frame_size +samples per channel. May be 0 when the codec has +CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is not +restricted. It is set by some decoders to indicate constant frame +size. +

+
+
frame_number integer
+

Set the frame number. +

+
+
delay integer
+
qcomp float (encoding,video)
+

Set video quantizer scale compression (VBR). It is used as a constant +in the ratecontrol equation. Recommended range for default rc_eq: +0.0-1.0. +

+
+
qblur float (encoding,video)
+

Set video quantizer scale blur (VBR). +

+
+
qmin integer (encoding,video)
+

Set min video quantizer scale (VBR). Must be included between -1 and +69, default value is 2. +

+
+
qmax integer (encoding,video)
+

Set max video quantizer scale (VBR). Must be included between -1 and +1024, default value is 31. +

+
+
qdiff integer (encoding,video)
+

Set max difference between the quantizer scale (VBR). +

+
+
bf integer (encoding,video)
+

Set max number of B frames between non-B-frames. +

+

Must be an integer between -1 and 16. 0 means that B-frames are +disabled. If a value of -1 is used, it will choose an automatic value +depending on the encoder. +

+

Default value is 0. +

+
+
b_qfactor float (encoding,video)
+

Set qp factor between P and B frames. +

+
+
rc_strategy integer (encoding,video)
+

Set ratecontrol method. +

+
+
b_strategy integer (encoding,video)
+

Set strategy to choose between I/P/B-frames. +

+
+
ps integer (encoding,video)
+

Set RTP payload size in bytes. +

+
+
mv_bits integer
+
header_bits integer
+
i_tex_bits integer
+
p_tex_bits integer
+
i_count integer
+
p_count integer
+
skip_count integer
+
misc_bits integer
+
frame_bits integer
+
codec_tag integer
+
bug flags (decoding,video)
+

Workaround not auto detected encoder bugs. +

+

Possible values: +

+
autodetect
+
old_msmpeg4
+

some old lavc generated msmpeg4v3 files (no autodetection) +

+
xvid_ilace
+

Xvid interlacing bug (autodetected if fourcc==XVIX) +

+
ump4
+

(autodetected if fourcc==UMP4) +

+
no_padding
+

padding bug (autodetected) +

+
amv
+
ac_vlc
+

illegal vlc bug (autodetected per fourcc) +

+
qpel_chroma
+
std_qpel
+

old standard qpel (autodetected per fourcc/version) +

+
qpel_chroma2
+
direct_blocksize
+

direct-qpel-blocksize bug (autodetected per fourcc/version) +

+
edge
+

edge padding bug (autodetected per fourcc/version) +

+
hpel_chroma
+
dc_clip
+
ms
+

Workaround various bugs in microsoft broken decoders. +

+
trunc
+

trancated frames +

+
+ +
+
lelim integer (encoding,video)
+

Set single coefficient elimination threshold for luminance (negative +values also consider DC coefficient). +

+
+
celim integer (encoding,video)
+

Set single coefficient elimination threshold for chrominance (negative +values also consider dc coefficient) +

+
+
strict integer (decoding/encoding,audio,video)
+

Specify how strictly to follow the standards. +

+

Possible values: +

+
very
+

strictly conform to a older more strict version of the spec or reference software +

+
strict
+

strictly conform to all the things in the spec no matter what consequences +

+
normal
+
unofficial
+

allow unofficial extensions +

+
experimental
+

allow non standardized experimental things, experimental +(unfinished/work in progress/not well tested) decoders and encoders. +Note: experimental decoders can pose a security risk, do not use this for +decoding untrusted input. +

+
+ +
+
b_qoffset float (encoding,video)
+

Set QP offset between P and B frames. +

+
+
err_detect flags (decoding,audio,video)
+

Set error detection flags. +

+

Possible values: +

+
crccheck
+

verify embedded CRCs +

+
bitstream
+

detect bitstream specification deviations +

+
buffer
+

detect improper bitstream length +

+
explode
+

abort decoding on minor error detection +

+
careful
+

consider things that violate the spec and have not been seen in the wild as errors +

+
compliant
+

consider all spec non compliancies as errors +

+
aggressive
+

consider things that a sane encoder should not do as an error +

+
+ +
+
has_b_frames integer
+
block_align integer
+
mpeg_quant integer (encoding,video)
+

Use MPEG quantizers instead of H.263. +

+
+
qsquish float (encoding,video)
+

How to keep quantizer between qmin and qmax (0 = clip, 1 = use +differentiable function). +

+
+
rc_qmod_amp float (encoding,video)
+

Set experimental quantizer modulation. +

+
+
rc_qmod_freq integer (encoding,video)
+

Set experimental quantizer modulation. +

+
+
rc_override_count integer
+
rc_eq string (encoding,video)
+

Set rate control equation. When computing the expression, besides the +standard functions defined in the section ’Expression Evaluation’, the +following functions are available: bits2qp(bits), qp2bits(qp). Also +the following constants are available: iTex pTex tex mv fCode iCount +mcVar var isI isP isB avgQP qComp avgIITex avgPITex avgPPTex avgBPTex +avgTex. +

+
+
maxrate integer (encoding,audio,video)
+

Set max bitrate tolerance (in bits/s). Requires bufsize to be set. +

+
+
minrate integer (encoding,audio,video)
+

Set min bitrate tolerance (in bits/s). Most useful in setting up a CBR +encode. It is of little use elsewise. +

+
+
bufsize integer (encoding,audio,video)
+

Set ratecontrol buffer size (in bits). +

+
+
rc_buf_aggressivity float (encoding,video)
+

Currently useless. +

+
+
i_qfactor float (encoding,video)
+

Set QP factor between P and I frames. +

+
+
i_qoffset float (encoding,video)
+

Set QP offset between P and I frames. +

+
+
rc_init_cplx float (encoding,video)
+

Set initial complexity for 1-pass encoding. +

+
+
dct integer (encoding,video)
+

Set DCT algorithm. +

+

Possible values: +

+
auto
+

autoselect a good one (default) +

+
fastint
+

fast integer +

+
int
+

accurate integer +

+
mmx
+
altivec
+
faan
+

floating point AAN DCT +

+
+ +
+
lumi_mask float (encoding,video)
+

Compress bright areas stronger than medium ones. +

+
+
tcplx_mask float (encoding,video)
+

Set temporal complexity masking. +

+
+
scplx_mask float (encoding,video)
+

Set spatial complexity masking. +

+
+
p_mask float (encoding,video)
+

Set inter masking. +

+
+
dark_mask float (encoding,video)
+

Compress dark areas stronger than medium ones. +

+
+
idct integer (decoding/encoding,video)
+

Select IDCT implementation. +

+

Possible values: +

+
auto
+
int
+
simple
+
simplemmx
+
arm
+
altivec
+
sh4
+
simplearm
+
simplearmv5te
+
simplearmv6
+
simpleneon
+
simplealpha
+
ipp
+
xvidmmx
+
faani
+

floating point AAN IDCT +

+
+ +
+
slice_count integer
+
ec flags (decoding,video)
+

Set error concealment strategy. +

+

Possible values: +

+
guess_mvs
+

iterative motion vector (MV) search (slow) +

+
deblock
+

use strong deblock filter for damaged MBs +

+
+ +
+
bits_per_coded_sample integer
+
pred integer (encoding,video)
+

Set prediction method. +

+

Possible values: +

+
left
+
plane
+
median
+
+ +
+
aspect rational number (encoding,video)
+

Set sample aspect ratio. +

+
+
debug flags (decoding/encoding,audio,video,subtitles)
+

Print specific debug info. +

+

Possible values: +

+
pict
+

picture info +

+
rc
+

rate control +

+
bitstream
+
mb_type
+

macroblock (MB) type +

+
qp
+

per-block quantization parameter (QP) +

+
mv
+

motion vector +

+
dct_coeff
+
skip
+
startcode
+
pts
+
er
+

error recognition +

+
mmco
+

memory management control operations (H.264) +

+
bugs
+
vis_qp
+

visualize quantization parameter (QP), lower QP are tinted greener +

+
vis_mb_type
+

visualize block types +

+
buffers
+

picture buffer allocations +

+
thread_ops
+

threading operations +

+
+ +
+
vismv integer (decoding,video)
+

Visualize motion vectors (MVs). +

+

Possible values: +

+
pf
+

forward predicted MVs of P-frames +

+
bf
+

forward predicted MVs of B-frames +

+
bb
+

backward predicted MVs of B-frames +

+
+ +
+
cmp integer (encoding,video)
+

Set full pel me compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
subcmp integer (encoding,video)
+

Set sub pel me compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
mbcmp integer (encoding,video)
+

Set macroblock compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
ildctcmp integer (encoding,video)
+

Set interlaced dct compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
dia_size integer (encoding,video)
+

Set diamond type & size for motion estimation. +

+
+
last_pred integer (encoding,video)
+

Set amount of motion predictors from the previous frame. +

+
+
preme integer (encoding,video)
+

Set pre motion estimation. +

+
+
precmp integer (encoding,video)
+

Set pre motion estimation compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
pre_dia_size integer (encoding,video)
+

Set diamond type & size for motion estimation pre-pass. +

+
+
subq integer (encoding,video)
+

Set sub pel motion estimation quality. +

+
+
dtg_active_format integer
+
me_range integer (encoding,video)
+

Set limit motion vectors range (1023 for DivX player). +

+
+
ibias integer (encoding,video)
+

Set intra quant bias. +

+
+
pbias integer (encoding,video)
+

Set inter quant bias. +

+
+
color_table_id integer
+
global_quality integer (encoding,audio,video)
+
coder integer (encoding,video)
+
+

Possible values: +

+
vlc
+

variable length coder / huffman coder +

+
ac
+

arithmetic coder +

+
raw
+

raw (no encoding) +

+
rle
+

run-length coder +

+
deflate
+

deflate-based coder +

+
+ +
+
context integer (encoding,video)
+

Set context model. +

+
+
slice_flags integer
+
xvmc_acceleration integer
+
mbd integer (encoding,video)
+

Set macroblock decision algorithm (high quality mode). +

+

Possible values: +

+
simple
+

use mbcmp (default) +

+
bits
+

use fewest bits +

+
rd
+

use best rate distortion +

+
+ +
+
stream_codec_tag integer
+
sc_threshold integer (encoding,video)
+

Set scene change threshold. +

+
+
lmin integer (encoding,video)
+

Set min lagrange factor (VBR). +

+
+
lmax integer (encoding,video)
+

Set max lagrange factor (VBR). +

+
+
nr integer (encoding,video)
+

Set noise reduction. +

+
+
rc_init_occupancy integer (encoding,video)
+

Set number of bits which should be loaded into the rc buffer before +decoding starts. +

+
+
flags2 flags (decoding/encoding,audio,video)
+
+

Possible values: +

+
fast
+

Allow non spec compliant speedup tricks. +

+
sgop
+

Deprecated, use mpegvideo private options instead. +

+
noout
+

Skip bitstream encoding. +

+
ignorecrop
+

Ignore cropping information from sps. +

+
local_header
+

Place global headers at every keyframe instead of in extradata. +

+
chunks
+

Frame data might be split into multiple chunks. +

+
showall
+

Show all frames before the first keyframe. +

+
skiprd
+

Deprecated, use mpegvideo private options instead. +

+
+ +
+
error integer (encoding,video)
+
qns integer (encoding,video)
+

Deprecated, use mpegvideo private options instead. +

+
+
threads integer (decoding/encoding,video)
+
+

Possible values: +

+
auto
+

detect a good number of threads +

+
+ +
+
me_threshold integer (encoding,video)
+

Set motion estimation threshold. +

+
+
mb_threshold integer (encoding,video)
+

Set macroblock threshold. +

+
+
dc integer (encoding,video)
+

Set intra_dc_precision. +

+
+
nssew integer (encoding,video)
+

Set nsse weight. +

+
+
skip_top integer (decoding,video)
+

Set number of macroblock rows at the top which are skipped. +

+
+
skip_bottom integer (decoding,video)
+

Set number of macroblock rows at the bottom which are skipped. +

+
+
profile integer (encoding,audio,video)
+
+

Possible values: +

+
unknown
+
aac_main
+
aac_low
+
aac_ssr
+
aac_ltp
+
aac_he
+
aac_he_v2
+
aac_ld
+
aac_eld
+
mpeg2_aac_low
+
mpeg2_aac_he
+
dts
+
dts_es
+
dts_96_24
+
dts_hd_hra
+
dts_hd_ma
+
+ +
+
level integer (encoding,audio,video)
+
+

Possible values: +

+
unknown
+
+ +
+
lowres integer (decoding,audio,video)
+

Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions. +

+
+
skip_threshold integer (encoding,video)
+

Set frame skip threshold. +

+
+
skip_factor integer (encoding,video)
+

Set frame skip factor. +

+
+
skip_exp integer (encoding,video)
+

Set frame skip exponent. +Negative values behave identical to the corresponding positive ones, except +that the score is normalized. +Positive values exist primarly for compatibility reasons and are not so useful. +

+
+
skipcmp integer (encoding,video)
+

Set frame skip compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
border_mask float (encoding,video)
+

Increase the quantizer for macroblocks close to borders. +

+
+
mblmin integer (encoding,video)
+

Set min macroblock lagrange factor (VBR). +

+
+
mblmax integer (encoding,video)
+

Set max macroblock lagrange factor (VBR). +

+
+
mepc integer (encoding,video)
+

Set motion estimation bitrate penalty compensation (1.0 = 256). +

+
+
skip_loop_filter integer (decoding,video)
+
skip_idct integer (decoding,video)
+
skip_frame integer (decoding,video)
+
+

Make decoder discard processing depending on the frame type selected +by the option value. +

+

skip_loop_filter’ skips frame loop filtering, ‘skip_idct’ +skips frame IDCT/dequantization, ‘skip_frame’ skips decoding. +

+

Possible values: +

+
none
+

Discard no frame. +

+
+
default
+

Discard useless frames like 0-sized frames. +

+
+
noref
+

Discard all non-reference frames. +

+
+
bidir
+

Discard all bidirectional frames. +

+
+
nokey
+

Discard all frames excepts keyframes. +

+
+
all
+

Discard all frames. +

+
+ +

Default value is ‘default’. +

+
+
bidir_refine integer (encoding,video)
+

Refine the two motion vectors used in bidirectional macroblocks. +

+
+
brd_scale integer (encoding,video)
+

Downscale frames for dynamic B-frame decision. +

+
+
keyint_min integer (encoding,video)
+

Set minimum interval between IDR-frames. +

+
+
refs integer (encoding,video)
+

Set reference frames to consider for motion compensation. +

+
+
chromaoffset integer (encoding,video)
+

Set chroma qp offset from luma. +

+
+
trellis integer (encoding,audio,video)
+

Set rate-distortion optimal quantization. +

+
+
sc_factor integer (encoding,video)
+

Set value multiplied by qscale for each frame and added to +scene_change_score. +

+
+
mv0_threshold integer (encoding,video)
+
b_sensitivity integer (encoding,video)
+

Adjust sensitivity of b_frame_strategy 1. +

+
+
compression_level integer (encoding,audio,video)
+
min_prediction_order integer (encoding,audio)
+
max_prediction_order integer (encoding,audio)
+
timecode_frame_start integer (encoding,video)
+

Set GOP timecode frame start number, in non drop frame format. +

+
+
request_channels integer (decoding,audio)
+

Set desired number of audio channels. +

+
+
bits_per_raw_sample integer
+
channel_layout integer (decoding/encoding,audio)
+
+

Possible values: +

+
request_channel_layout integer (decoding,audio)
+
+

Possible values: +

+
rc_max_vbv_use float (encoding,video)
+
rc_min_vbv_use float (encoding,video)
+
ticks_per_frame integer (decoding/encoding,audio,video)
+
color_primaries integer (decoding/encoding,video)
+
color_trc integer (decoding/encoding,video)
+
colorspace integer (decoding/encoding,video)
+
color_range integer (decoding/encoding,video)
+
chroma_sample_location integer (decoding/encoding,video)
+
log_level_offset integer
+

Set the log level offset. +

+
+
slices integer (encoding,video)
+

Number of slices, used in parallelized encoding. +

+
+
thread_type flags (decoding/encoding,video)
+

Select multithreading type. +

+

Possible values: +

+
slice
+
frame
+
+
+
audio_service_type integer (encoding,audio)
+

Set audio service type. +

+

Possible values: +

+
ma
+

Main Audio Service +

+
ef
+

Effects +

+
vi
+

Visually Impaired +

+
hi
+

Hearing Impaired +

+
di
+

Dialogue +

+
co
+

Commentary +

+
em
+

Emergency +

+
vo
+

Voice Over +

+
ka
+

Karaoke +

+
+ +
+
request_sample_fmt sample_fmt (decoding,audio)
+

Set sample format audio decoders should prefer. Default value is +none. +

+
+
pkt_timebase rational number
+
sub_charenc encoding (decoding,subtitles)
+

Set the input subtitles character encoding. +

+
+
field_order field_order (video)
+

Set/override the field order of the video. +Possible values: +

+
progressive
+

Progressive video +

+
tt
+

Interlaced video, top field coded and displayed first +

+
bb
+

Interlaced video, bottom field coded and displayed first +

+
tb
+

Interlaced video, top coded first, bottom displayed first +

+
bt
+

Interlaced video, bottom coded first, top displayed first +

+
+ +
+
skip_alpha integer (decoding,video)
+

Set to 1 to disable processing alpha (transparency). This works like the +‘gray’ flag in the ‘flags’ option which skips chroma information +instead of alpha. Default is 0. +

+
+ + + +

12. Decoders

+ +

Decoders are configured elements in FFmpeg which allow the decoding of +multimedia streams. +

+

When you configure your FFmpeg build, all the supported native decoders +are enabled by default. Decoders requiring an external library must be enabled +manually via the corresponding --enable-lib option. You can list all +available decoders using the configure option --list-decoders. +

+

You can disable all the decoders with the configure option +--disable-decoders and selectively enable / disable single decoders +with the options --enable-decoder=DECODER / +--disable-decoder=DECODER. +

+

The option -decoders of the ff* tools will display the list of +enabled decoders. +

+ + +

13. Video Decoders

+ +

A description of some of the currently available video decoders +follows. +

+ +

13.1 rawvideo

+ +

Raw video decoder. +

+

This decoder decodes rawvideo streams. +

+ +

13.1.1 Options

+ +
+
top top_field_first
+

Specify the assumed field type of the input video. +

+
-1
+

the video is assumed to be progressive (default) +

+
0
+

bottom-field-first is assumed +

+
1
+

top-field-first is assumed +

+
+ +
+
+ + + +

14. Audio Decoders

+ +

A description of some of the currently available audio decoders +follows. +

+ +

14.1 ac3

+ +

AC-3 audio decoder. +

+

This decoder implements part of ATSC A/52:2010 and ETSI TS 102 366, as well as +the undocumented RealAudio 3 (a.k.a. dnet). +

+ +

14.1.1 AC-3 Decoder Options

+ +
+
-drc_scale value
+

Dynamic Range Scale Factor. The factor to apply to dynamic range values +from the AC-3 stream. This factor is applied exponentially. +There are 3 notable scale factor ranges: +

+
drc_scale == 0
+

DRC disabled. Produces full range audio. +

+
0 < drc_scale <= 1
+

DRC enabled. Applies a fraction of the stream DRC value. +Audio reproduction is between full range and full compression. +

+
drc_scale > 1
+

DRC enabled. Applies drc_scale asymmetrically. +Loud sounds are fully compressed. Soft sounds are enhanced. +

+
+ +
+
+ + +

14.2 ffwavesynth

+ +

Internal wave synthetizer. +

+

This decoder generates wave patterns according to predefined sequences. Its +use is purely internal and the format of the data it accepts is not publicly +documented. +

+ +

14.3 libcelt

+ +

libcelt decoder wrapper. +

+

libcelt allows libavcodec to decode the Xiph CELT ultra-low delay audio codec. +Requires the presence of the libcelt headers and library during configuration. +You need to explicitly configure the build with --enable-libcelt. +

+ +

14.4 libgsm

+ +

libgsm decoder wrapper. +

+

libgsm allows libavcodec to decode the GSM full rate audio codec. Requires +the presence of the libgsm headers and library during configuration. You need +to explicitly configure the build with --enable-libgsm. +

+

This decoder supports both the ordinary GSM and the Microsoft variant. +

+ +

14.5 libilbc

+ +

libilbc decoder wrapper. +

+

libilbc allows libavcodec to decode the Internet Low Bitrate Codec (iLBC) +audio codec. Requires the presence of the libilbc headers and library during +configuration. You need to explicitly configure the build with +--enable-libilbc. +

+ +

14.5.1 Options

+ +

The following option is supported by the libilbc wrapper. +

+
+
enhance
+
+

Enable the enhancement of the decoded audio when set to 1. The default +value is 0 (disabled). +

+
+
+ + +

14.6 libopencore-amrnb

+ +

libopencore-amrnb decoder wrapper. +

+

libopencore-amrnb allows libavcodec to decode the Adaptive Multi-Rate +Narrowband audio codec. Using it requires the presence of the +libopencore-amrnb headers and library during configuration. You need to +explicitly configure the build with --enable-libopencore-amrnb. +

+

An FFmpeg native decoder for AMR-NB exists, so users can decode AMR-NB +without this library. +

+ +

14.7 libopencore-amrwb

+ +

libopencore-amrwb decoder wrapper. +

+

libopencore-amrwb allows libavcodec to decode the Adaptive Multi-Rate +Wideband audio codec. Using it requires the presence of the +libopencore-amrwb headers and library during configuration. You need to +explicitly configure the build with --enable-libopencore-amrwb. +

+

An FFmpeg native decoder for AMR-WB exists, so users can decode AMR-WB +without this library. +

+ +

14.8 libopus

+ +

libopus decoder wrapper. +

+

libopus allows libavcodec to decode the Opus Interactive Audio Codec. +Requires the presence of the libopus headers and library during +configuration. You need to explicitly configure the build with +--enable-libopus. +

+ + +

15. Subtitles Decoders

+ + +

15.1 dvdsub

+ +

This codec decodes the bitmap subtitles used in DVDs; the same subtitles can +also be found in VobSub file pairs and in some Matroska files. +

+ +

15.1.1 Options

+ +
+
palette
+

Specify the global palette used by the bitmaps. When stored in VobSub, the +palette is normally specified in the index file; in Matroska, the palette is +stored in the codec extra-data in the same format as in VobSub. In DVDs, the +palette is stored in the IFO file, and therefore not available when reading +from dumped VOB files. +

+

The format for this option is a string containing 16 24-bits hexadecimal +numbers (without 0x prefix) separated by comas, for example 0d00ee, +ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b, 0d617a, 7b7b7b, d1d1d1, +7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c, 7c127b. +

+
+ + +

15.2 libzvbi-teletext

+ +

Libzvbi allows libavcodec to decode DVB teletext pages and DVB teletext +subtitles. Requires the presence of the libzvbi headers and library during +configuration. You need to explicitly configure the build with +--enable-libzvbi. +

+ +

15.2.1 Options

+ +
+
txt_page
+

List of teletext page numbers to decode. You may use the special * string to +match all pages. Pages that do not match the specified list are dropped. +Default value is *. +

+
txt_chop_top
+

Discards the top teletext line. Default value is 1. +

+
txt_format
+

Specifies the format of the decoded subtitles. The teletext decoder is capable +of decoding the teletext pages to bitmaps or to simple text, you should use +"bitmap" for teletext pages, because certain graphics and colors cannot be +expressed in simple text. You might use "text" for teletext based subtitles if +your application can handle simple text based subtitles. Default value is +bitmap. +

+
txt_left
+

X offset of generated bitmaps, default is 0. +

+
txt_top
+

Y offset of generated bitmaps, default is 0. +

+
txt_chop_spaces
+

Chops leading and trailing spaces and removes empty lines from the generated +text. This option is useful for teletext based subtitles where empty spaces may +be present at the start or at the end of the lines or empty lines may be +present between the subtitle lines because of double-sized teletext charactes. +Default value is 1. +

+
txt_duration
+

Sets the display duration of the decoded teletext pages or subtitles in +miliseconds. Default value is 30000 which is 30 seconds. +

+
txt_transparent
+

Force transparent background of the generated teletext bitmaps. Default value +is 0 which means an opaque (black) background. +

+
+ + +

16. Encoders

+ +

Encoders are configured elements in FFmpeg which allow the encoding of +multimedia streams. +

+

When you configure your FFmpeg build, all the supported native encoders +are enabled by default. Encoders requiring an external library must be enabled +manually via the corresponding --enable-lib option. You can list all +available encoders using the configure option --list-encoders. +

+

You can disable all the encoders with the configure option +--disable-encoders and selectively enable / disable single encoders +with the options --enable-encoder=ENCODER / +--disable-encoder=ENCODER. +

+

The option -encoders of the ff* tools will display the list of +enabled encoders. +

+ + +

17. Audio Encoders

+ +

A description of some of the currently available audio encoders +follows. +

+

+

+

17.1 aac

+ +

Advanced Audio Coding (AAC) encoder. +

+

This encoder is an experimental FFmpeg-native AAC encoder. Currently only the +low complexity (AAC-LC) profile is supported. To use this encoder, you must set +‘strict’ option to ‘experimental’ or lower. +

+

As this encoder is experimental, unexpected behavior may exist from time to +time. For a more stable AAC encoder, see libvo-aacenc. However, be warned +that it has a worse quality reported by some users. +

+

See also libfdk_aac and libfaac. +

+ +

17.1.1 Options

+ +
+
b
+

Set bit rate in bits/s. Setting this automatically activates constant bit rate +(CBR) mode. +

+
+
q
+

Set quality for variable bit rate (VBR) mode. This option is valid only using +the ffmpeg command-line tool. For library interface users, use +‘global_quality’. +

+
+
stereo_mode
+

Set stereo encoding mode. Possible values: +

+
+
auto
+

Automatically selected by the encoder. +

+
+
ms_off
+

Disable middle/side encoding. This is the default. +

+
+
ms_force
+

Force middle/side encoding. +

+
+ +
+
aac_coder
+

Set AAC encoder coding method. Possible values: +

+
+
faac
+

FAAC-inspired method. +

+

This method is a simplified reimplementation of the method used in FAAC, which +sets thresholds proportional to the band energies, and then decreases all the +thresholds with quantizer steps to find the appropriate quantization with +distortion below threshold band by band. +

+

The quality of this method is comparable to the two loop searching method +descibed below, but somewhat a little better and slower. +

+
+
anmr
+

Average noise to mask ratio (ANMR) trellis-based solution. +

+

This has a theoretic best quality out of all the coding methods, but at the +cost of the slowest speed. +

+
+
twoloop
+

Two loop searching (TLS) method. +

+

This method first sets quantizers depending on band thresholds and then tries +to find an optimal combination by adding or subtracting a specific value from +all quantizers and adjusting some individual quantizer a little. +

+

This method produces similar quality with the FAAC method and is the default. +

+
+
fast
+

Constant quantizer method. +

+

This method sets a constant quantizer for all bands. This is the fastest of all +the methods, yet produces the worst quality. +

+
+
+ +
+
+ + +

17.2 ac3 and ac3_fixed

+ +

AC-3 audio encoders. +

+

These encoders implement part of ATSC A/52:2010 and ETSI TS 102 366, as well as +the undocumented RealAudio 3 (a.k.a. dnet). +

+

The ac3 encoder uses floating-point math, while the ac3_fixed +encoder only uses fixed-point integer math. This does not mean that one is +always faster, just that one or the other may be better suited to a +particular system. The floating-point encoder will generally produce better +quality audio for a given bitrate. The ac3_fixed encoder is not the +default codec for any of the output formats, so it must be specified explicitly +using the option -acodec ac3_fixed in order to use it. +

+ +

17.2.1 AC-3 Metadata

+ +

The AC-3 metadata options are used to set parameters that describe the audio, +but in most cases do not affect the audio encoding itself. Some of the options +do directly affect or influence the decoding and playback of the resulting +bitstream, while others are just for informational purposes. A few of the +options will add bits to the output stream that could otherwise be used for +audio data, and will thus affect the quality of the output. Those will be +indicated accordingly with a note in the option list below. +

+

These parameters are described in detail in several publicly-available +documents. +

+ + +

17.2.1.1 Metadata Control Options

+ +
+
-per_frame_metadata boolean
+

Allow Per-Frame Metadata. Specifies if the encoder should check for changing +metadata for each frame. +

+
0
+

The metadata values set at initialization will be used for every frame in the +stream. (default) +

+
1
+

Metadata values can be changed before encoding each frame. +

+
+ +
+
+ + +

17.2.1.2 Downmix Levels

+ +
+
-center_mixlev level
+

Center Mix Level. The amount of gain the decoder should apply to the center +channel when downmixing to stereo. This field will only be written to the +bitstream if a center channel is present. The value is specified as a scale +factor. There are 3 valid values: +

+
0.707
+

Apply -3dB gain +

+
0.595
+

Apply -4.5dB gain (default) +

+
0.500
+

Apply -6dB gain +

+
+ +
+
-surround_mixlev level
+

Surround Mix Level. The amount of gain the decoder should apply to the surround +channel(s) when downmixing to stereo. This field will only be written to the +bitstream if one or more surround channels are present. The value is specified +as a scale factor. There are 3 valid values: +

+
0.707
+

Apply -3dB gain +

+
0.500
+

Apply -6dB gain (default) +

+
0.000
+

Silence Surround Channel(s) +

+
+ +
+
+ + +

17.2.1.3 Audio Production Information

+

Audio Production Information is optional information describing the mixing +environment. Either none or both of the fields are written to the bitstream. +

+
+
-mixing_level number
+

Mixing Level. Specifies peak sound pressure level (SPL) in the production +environment when the mix was mastered. Valid values are 80 to 111, or -1 for +unknown or not indicated. The default value is -1, but that value cannot be +used if the Audio Production Information is written to the bitstream. Therefore, +if the room_type option is not the default value, the mixing_level +option must not be -1. +

+
+
-room_type type
+

Room Type. Describes the equalization used during the final mixing session at +the studio or on the dubbing stage. A large room is a dubbing stage with the +industry standard X-curve equalization; a small room has flat equalization. +This field will not be written to the bitstream if both the mixing_level +option and the room_type option have the default values. +

+
0
+
notindicated
+

Not Indicated (default) +

+
1
+
large
+

Large Room +

+
2
+
small
+

Small Room +

+
+ +
+
+ + +

17.2.1.4 Other Metadata Options

+ +
+
-copyright boolean
+

Copyright Indicator. Specifies whether a copyright exists for this audio. +

+
0
+
off
+

No Copyright Exists (default) +

+
1
+
on
+

Copyright Exists +

+
+ +
+
-dialnorm value
+

Dialogue Normalization. Indicates how far the average dialogue level of the +program is below digital 100% full scale (0 dBFS). This parameter determines a +level shift during audio reproduction that sets the average volume of the +dialogue to a preset level. The goal is to match volume level between program +sources. A value of -31dB will result in no volume level change, relative to +the source volume, during audio reproduction. Valid values are whole numbers in +the range -31 to -1, with -31 being the default. +

+
+
-dsur_mode mode
+

Dolby Surround Mode. Specifies whether the stereo signal uses Dolby Surround +(Pro Logic). This field will only be written to the bitstream if the audio +stream is stereo. Using this option does NOT mean the encoder will actually +apply Dolby Surround processing. +

+
0
+
notindicated
+

Not Indicated (default) +

+
1
+
off
+

Not Dolby Surround Encoded +

+
2
+
on
+

Dolby Surround Encoded +

+
+ +
+
-original boolean
+

Original Bit Stream Indicator. Specifies whether this audio is from the +original source and not a copy. +

+
0
+
off
+

Not Original Source +

+
1
+
on
+

Original Source (default) +

+
+ +
+
+ + +

17.2.2 Extended Bitstream Information

+

The extended bitstream options are part of the Alternate Bit Stream Syntax as +specified in Annex D of the A/52:2010 standard. It is grouped into 2 parts. +If any one parameter in a group is specified, all values in that group will be +written to the bitstream. Default values are used for those that are written +but have not been specified. If the mixing levels are written, the decoder +will use these values instead of the ones specified in the center_mixlev +and surround_mixlev options if it supports the Alternate Bit Stream +Syntax. +

+ +

17.2.2.1 Extended Bitstream Information - Part 1

+ +
+
-dmix_mode mode
+

Preferred Stereo Downmix Mode. Allows the user to select either Lt/Rt +(Dolby Surround) or Lo/Ro (normal stereo) as the preferred stereo downmix mode. +

+
0
+
notindicated
+

Not Indicated (default) +

+
1
+
ltrt
+

Lt/Rt Downmix Preferred +

+
2
+
loro
+

Lo/Ro Downmix Preferred +

+
+ +
+
-ltrt_cmixlev level
+

Lt/Rt Center Mix Level. The amount of gain the decoder should apply to the +center channel when downmixing to stereo in Lt/Rt mode. +

+
1.414
+

Apply +3dB gain +

+
1.189
+

Apply +1.5dB gain +

+
1.000
+

Apply 0dB gain +

+
0.841
+

Apply -1.5dB gain +

+
0.707
+

Apply -3.0dB gain +

+
0.595
+

Apply -4.5dB gain (default) +

+
0.500
+

Apply -6.0dB gain +

+
0.000
+

Silence Center Channel +

+
+ +
+
-ltrt_surmixlev level
+

Lt/Rt Surround Mix Level. The amount of gain the decoder should apply to the +surround channel(s) when downmixing to stereo in Lt/Rt mode. +

+
0.841
+

Apply -1.5dB gain +

+
0.707
+

Apply -3.0dB gain +

+
0.595
+

Apply -4.5dB gain +

+
0.500
+

Apply -6.0dB gain (default) +

+
0.000
+

Silence Surround Channel(s) +

+
+ +
+
-loro_cmixlev level
+

Lo/Ro Center Mix Level. The amount of gain the decoder should apply to the +center channel when downmixing to stereo in Lo/Ro mode. +

+
1.414
+

Apply +3dB gain +

+
1.189
+

Apply +1.5dB gain +

+
1.000
+

Apply 0dB gain +

+
0.841
+

Apply -1.5dB gain +

+
0.707
+

Apply -3.0dB gain +

+
0.595
+

Apply -4.5dB gain (default) +

+
0.500
+

Apply -6.0dB gain +

+
0.000
+

Silence Center Channel +

+
+ +
+
-loro_surmixlev level
+

Lo/Ro Surround Mix Level. The amount of gain the decoder should apply to the +surround channel(s) when downmixing to stereo in Lo/Ro mode. +

+
0.841
+

Apply -1.5dB gain +

+
0.707
+

Apply -3.0dB gain +

+
0.595
+

Apply -4.5dB gain +

+
0.500
+

Apply -6.0dB gain (default) +

+
0.000
+

Silence Surround Channel(s) +

+
+ +
+
+ + +

17.2.2.2 Extended Bitstream Information - Part 2

+ +
+
-dsurex_mode mode
+

Dolby Surround EX Mode. Indicates whether the stream uses Dolby Surround EX +(7.1 matrixed to 5.1). Using this option does NOT mean the encoder will actually +apply Dolby Surround EX processing. +

+
0
+
notindicated
+

Not Indicated (default) +

+
1
+
on
+

Dolby Surround EX Off +

+
2
+
off
+

Dolby Surround EX On +

+
+ +
+
-dheadphone_mode mode
+

Dolby Headphone Mode. Indicates whether the stream uses Dolby Headphone +encoding (multi-channel matrixed to 2.0 for use with headphones). Using this +option does NOT mean the encoder will actually apply Dolby Headphone +processing. +

+
0
+
notindicated
+

Not Indicated (default) +

+
1
+
on
+

Dolby Headphone Off +

+
2
+
off
+

Dolby Headphone On +

+
+ +
+
-ad_conv_type type
+

A/D Converter Type. Indicates whether the audio has passed through HDCD A/D +conversion. +

+
0
+
standard
+

Standard A/D Converter (default) +

+
1
+
hdcd
+

HDCD A/D Converter +

+
+ +
+
+ + +

17.2.3 Other AC-3 Encoding Options

+ +
+
-stereo_rematrixing boolean
+

Stereo Rematrixing. Enables/Disables use of rematrixing for stereo input. This +is an optional AC-3 feature that increases quality by selectively encoding +the left/right channels as mid/side. This option is enabled by default, and it +is highly recommended that it be left as enabled except for testing purposes. +

+
+
+ + +

17.2.4 Floating-Point-Only AC-3 Encoding Options

+ +

These options are only valid for the floating-point encoder and do not exist +for the fixed-point encoder due to the corresponding features not being +implemented in fixed-point. +

+
+
-channel_coupling boolean
+

Enables/Disables use of channel coupling, which is an optional AC-3 feature +that increases quality by combining high frequency information from multiple +channels into a single channel. The per-channel high frequency information is +sent with less accuracy in both the frequency and time domains. This allows +more bits to be used for lower frequencies while preserving enough information +to reconstruct the high frequencies. This option is enabled by default for the +floating-point encoder and should generally be left as enabled except for +testing purposes or to increase encoding speed. +

+
-1
+
auto
+

Selected by Encoder (default) +

+
0
+
off
+

Disable Channel Coupling +

+
1
+
on
+

Enable Channel Coupling +

+
+ +
+
-cpl_start_band number
+

Coupling Start Band. Sets the channel coupling start band, from 1 to 15. If a +value higher than the bandwidth is used, it will be reduced to 1 less than the +coupling end band. If auto is used, the start band will be determined by +the encoder based on the bit rate, sample rate, and channel layout. This option +has no effect if channel coupling is disabled. +

+
-1
+
auto
+

Selected by Encoder (default) +

+
+ +
+
+ +

+

+

17.3 libfaac

+ +

libfaac AAC (Advanced Audio Coding) encoder wrapper. +

+

Requires the presence of the libfaac headers and library during +configuration. You need to explicitly configure the build with +--enable-libfaac --enable-nonfree. +

+

This encoder is considered to be of higher quality with respect to the +the native experimental FFmpeg AAC encoder. +

+

For more information see the libfaac project at +http://www.audiocoding.com/faac.html/. +

+ +

17.3.1 Options

+ +

The following shared FFmpeg codec options are recognized. +

+

The following options are supported by the libfaac wrapper. The +faac-equivalent of the options are listed in parentheses. +

+
+
b (-b)
+

Set bit rate in bits/s for ABR (Average Bit Rate) mode. If the bit rate +is not explicitly specified, it is automatically set to a suitable +value depending on the selected profile. faac bitrate is +expressed in kilobits/s. +

+

Note that libfaac does not support CBR (Constant Bit Rate) but only +ABR (Average Bit Rate). +

+

If VBR mode is enabled this option is ignored. +

+
+
ar (-R)
+

Set audio sampling rate (in Hz). +

+
+
ac (-c)
+

Set the number of audio channels. +

+
+
cutoff (-C)
+

Set cutoff frequency. If not specified (or explicitly set to 0) it +will use a value automatically computed by the library. Default value +is 0. +

+
+
profile
+

Set audio profile. +

+

The following profiles are recognized: +

+
aac_main
+

Main AAC (Main) +

+
+
aac_low
+

Low Complexity AAC (LC) +

+
+
aac_ssr
+

Scalable Sample Rate (SSR) +

+
+
aac_ltp
+

Long Term Prediction (LTP) +

+
+ +

If not specified it is set to ‘aac_low’. +

+
+
flags +qscale
+

Set constant quality VBR (Variable Bit Rate) mode. +

+
+
global_quality
+

Set quality in VBR mode as an integer number of lambda units. +

+

Only relevant when VBR mode is enabled with flags +qscale. The +value is converted to QP units by dividing it by FF_QP2LAMBDA, +and used to set the quality value used by libfaac. A reasonable range +for the option value in QP units is [10-500], the higher the value the +higher the quality. +

+
+
q (-q)
+

Enable VBR mode when set to a non-negative value, and set constant +quality value as a double floating point value in QP units. +

+

The value sets the quality value used by libfaac. A reasonable range +for the option value is [10-500], the higher the value the higher the +quality. +

+

This option is valid only using the ffmpeg command-line +tool. For library interface users, use ‘global_quality’. +

+
+ + +

17.3.2 Examples

+ +
    +
  • +Use ffmpeg to convert an audio file to ABR 128 kbps AAC in an M4A (MP4) +container: +
     
    ffmpeg -i input.wav -codec:a libfaac -b:a 128k -output.m4a
    +
    + +
  • +Use ffmpeg to convert an audio file to VBR AAC, using the +LTP AAC profile: +
     
    ffmpeg -i input.wav -c:a libfaac -profile:a aac_ltp -q:a 100 output.m4a
    +
    +
+ +

+

+

17.4 libfdk_aac

+ +

libfdk-aac AAC (Advanced Audio Coding) encoder wrapper. +

+

The libfdk-aac library is based on the Fraunhofer FDK AAC code from +the Android project. +

+

Requires the presence of the libfdk-aac headers and library during +configuration. You need to explicitly configure the build with +--enable-libfdk-aac. The library is also incompatible with GPL, +so if you allow the use of GPL, you should configure with +--enable-gpl --enable-nonfree --enable-libfdk-aac. +

+

This encoder is considered to be of higher quality with respect to +both the native experimental FFmpeg AAC encoder and +libfaac. +

+

VBR encoding, enabled through the ‘vbr’ or ‘flags ++qscale’ options, is experimental and only works with some +combinations of parameters. +

+

Support for encoding 7.1 audio is only available with libfdk-aac 0.1.3 or +higher. +

+

For more information see the fdk-aac project at +http://sourceforge.net/p/opencore-amr/fdk-aac/. +

+ +

17.4.1 Options

+ +

The following options are mapped on the shared FFmpeg codec options. +

+
+
b
+

Set bit rate in bits/s. If the bitrate is not explicitly specified, it +is automatically set to a suitable value depending on the selected +profile. +

+

In case VBR mode is enabled the option is ignored. +

+
+
ar
+

Set audio sampling rate (in Hz). +

+
+
channels
+

Set the number of audio channels. +

+
+
flags +qscale
+

Enable fixed quality, VBR (Variable Bit Rate) mode. +Note that VBR is implicitly enabled when the ‘vbr’ value is +positive. +

+
+
cutoff
+

Set cutoff frequency. If not specified (or explicitly set to 0) it +will use a value automatically computed by the library. Default value +is 0. +

+
+
profile
+

Set audio profile. +

+

The following profiles are recognized: +

+
aac_low
+

Low Complexity AAC (LC) +

+
+
aac_he
+

High Efficiency AAC (HE-AAC) +

+
+
aac_he_v2
+

High Efficiency AAC version 2 (HE-AACv2) +

+
+
aac_ld
+

Low Delay AAC (LD) +

+
+
aac_eld
+

Enhanced Low Delay AAC (ELD) +

+
+ +

If not specified it is set to ‘aac_low’. +

+
+ +

The following are private options of the libfdk_aac encoder. +

+
+
afterburner
+

Enable afterburner feature if set to 1, disabled if set to 0. This +improves the quality but also the required processing power. +

+

Default value is 1. +

+
+
eld_sbr
+

Enable SBR (Spectral Band Replication) for ELD if set to 1, disabled +if set to 0. +

+

Default value is 0. +

+
+
signaling
+

Set SBR/PS signaling style. +

+

It can assume one of the following values: +

+
default
+

choose signaling implicitly (explicit hierarchical by default, +implicit if global header is disabled) +

+
+
implicit
+

implicit backwards compatible signaling +

+
+
explicit_sbr
+

explicit SBR, implicit PS signaling +

+
+
explicit_hierarchical
+

explicit hierarchical signaling +

+
+ +

Default value is ‘default’. +

+
+
latm
+

Output LATM/LOAS encapsulated data if set to 1, disabled if set to 0. +

+

Default value is 0. +

+
+
header_period
+

Set StreamMuxConfig and PCE repetition period (in frames) for sending +in-band configuration buffers within LATM/LOAS transport layer. +

+

Must be a 16-bits non-negative integer. +

+

Default value is 0. +

+
+
vbr
+

Set VBR mode, from 1 to 5. 1 is lowest quality (though still pretty +good) and 5 is highest quality. A value of 0 will disable VBR, and CBR +(Constant Bit Rate) is enabled. +

+

Currently only the ‘aac_low’ profile supports VBR encoding. +

+

VBR modes 1-5 correspond to roughly the following average bit rates: +

+
+
1
+

32 kbps/channel +

+
2
+

40 kbps/channel +

+
3
+

48-56 kbps/channel +

+
4
+

64 kbps/channel +

+
5
+

about 80-96 kbps/channel +

+
+ +

Default value is 0. +

+
+ + +

17.4.2 Examples

+ +
    +
  • +Use ffmpeg to convert an audio file to VBR AAC in an M4A (MP4) +container: +
     
    ffmpeg -i input.wav -codec:a libfdk_aac -vbr 3 output.m4a
    +
    + +
  • +Use ffmpeg to convert an audio file to CBR 64k kbps AAC, using the +High-Efficiency AAC profile: +
     
    ffmpeg -i input.wav -c:a libfdk_aac -profile:a aac_he -b:a 64k output.m4a
    +
    +
+ +

+

+

17.5 libmp3lame

+ +

LAME (Lame Ain’t an MP3 Encoder) MP3 encoder wrapper. +

+

Requires the presence of the libmp3lame headers and library during +configuration. You need to explicitly configure the build with +--enable-libmp3lame. +

+

See libshine for a fixed-point MP3 encoder, although with a +lower quality. +

+ +

17.5.1 Options

+ +

The following options are supported by the libmp3lame wrapper. The +lame-equivalent of the options are listed in parentheses. +

+
+
b (-b)
+

Set bitrate expressed in bits/s for CBR or ABR. LAME bitrate is +expressed in kilobits/s. +

+
+
q (-V)
+

Set constant quality setting for VBR. This option is valid only +using the ffmpeg command-line tool. For library interface +users, use ‘global_quality’. +

+
+
compression_level (-q)
+

Set algorithm quality. Valid arguments are integers in the 0-9 range, +with 0 meaning highest quality but slowest, and 9 meaning fastest +while producing the worst quality. +

+
+
reservoir
+

Enable use of bit reservoir when set to 1. Default value is 1. LAME +has this enabled by default, but can be overridden by use +‘--nores’ option. +

+
+
joint_stereo (-m j)
+

Enable the encoder to use (on a frame by frame basis) either L/R +stereo or mid/side stereo. Default value is 1. +

+
+
abr (--abr)
+

Enable the encoder to use ABR when set to 1. The lame +‘--abr’ sets the target bitrate, while this options only +tells FFmpeg to use ABR still relies on ‘b’ to set bitrate. +

+
+
+ + +

17.6 libopencore-amrnb

+ +

OpenCORE Adaptive Multi-Rate Narrowband encoder. +

+

Requires the presence of the libopencore-amrnb headers and library during +configuration. You need to explicitly configure the build with +--enable-libopencore-amrnb --enable-version3. +

+

This is a mono-only encoder. Officially it only supports 8000Hz sample rate, +but you can override it by setting ‘strict’ to ‘unofficial’ or +lower. +

+ +

17.6.1 Options

+ +
+
b
+

Set bitrate in bits per second. Only the following bitrates are supported, +otherwise libavcodec will round to the nearest valid bitrate. +

+
+
4750
+
5150
+
5900
+
6700
+
7400
+
7950
+
10200
+
12200
+
+ +
+
dtx
+

Allow discontinuous transmission (generate comfort noise) when set to 1. The +default value is 0 (disabled). +

+
+
+ +

+

+

17.7 libshine

+ +

Shine Fixed-Point MP3 encoder wrapper. +

+

Shine is a fixed-point MP3 encoder. It has a far better performance on +platforms without an FPU, e.g. armel CPUs, and some phones and tablets. +However, as it is more targeted on performance than quality, it is not on par +with LAME and other production-grade encoders quality-wise. Also, according to +the project’s homepage, this encoder may not be free of bugs as the code was +written a long time ago and the project was dead for at least 5 years. +

+

This encoder only supports stereo and mono input. This is also CBR-only. +

+

The original project (last updated in early 2007) is at +http://sourceforge.net/projects/libshine-fxp/. We only support the +updated fork by the Savonet/Liquidsoap project at https://github.com/savonet/shine. +

+

Requires the presence of the libshine headers and library during +configuration. You need to explicitly configure the build with +--enable-libshine. +

+

See also libmp3lame. +

+ +

17.7.1 Options

+ +

The following options are supported by the libshine wrapper. The +shineenc-equivalent of the options are listed in parentheses. +

+
+
b (-b)
+

Set bitrate expressed in bits/s for CBR. shineenc-b’ option +is expressed in kilobits/s. +

+
+
+ + +

17.8 libtwolame

+ +

TwoLAME MP2 encoder wrapper. +

+

Requires the presence of the libtwolame headers and library during +configuration. You need to explicitly configure the build with +--enable-libtwolame. +

+ +

17.8.1 Options

+ +

The following options are supported by the libtwolame wrapper. The +twolame-equivalent options follow the FFmpeg ones and are in +parentheses. +

+
+
b (-b)
+

Set bitrate expressed in bits/s for CBR. twolameb’ +option is expressed in kilobits/s. Default value is 128k. +

+
+
q (-V)
+

Set quality for experimental VBR support. Maximum value range is +from -50 to 50, useful range is from -10 to 10. The higher the +value, the better the quality. This option is valid only using the +ffmpeg command-line tool. For library interface users, +use ‘global_quality’. +

+
+
mode (--mode)
+

Set the mode of the resulting audio. Possible values: +

+
+
auto
+

Choose mode automatically based on the input. This is the default. +

+
stereo
+

Stereo +

+
joint_stereo
+

Joint stereo +

+
dual_channel
+

Dual channel +

+
mono
+

Mono +

+
+ +
+
psymodel (--psyc-mode)
+

Set psychoacoustic model to use in encoding. The argument must be +an integer between -1 and 4, inclusive. The higher the value, the +better the quality. The default value is 3. +

+
+
energy_levels (--energy)
+

Enable energy levels extensions when set to 1. The default value is +0 (disabled). +

+
+
error_protection (--protect)
+

Enable CRC error protection when set to 1. The default value is 0 +(disabled). +

+
+
copyright (--copyright)
+

Set MPEG audio copyright flag when set to 1. The default value is 0 +(disabled). +

+
+
original (--original)
+

Set MPEG audio original flag when set to 1. The default value is 0 +(disabled). +

+
+
+ +

+

+

17.9 libvo-aacenc

+ +

VisualOn AAC encoder. +

+

Requires the presence of the libvo-aacenc headers and library during +configuration. You need to explicitly configure the build with +--enable-libvo-aacenc --enable-version3. +

+

This encoder is considered to be worse than the +native experimental FFmpeg AAC encoder, according to +multiple sources. +

+ +

17.9.1 Options

+ +

The VisualOn AAC encoder only support encoding AAC-LC and up to 2 +channels. It is also CBR-only. +

+
+
b
+

Set bit rate in bits/s. +

+
+
+ + +

17.10 libvo-amrwbenc

+ +

VisualOn Adaptive Multi-Rate Wideband encoder. +

+

Requires the presence of the libvo-amrwbenc headers and library during +configuration. You need to explicitly configure the build with +--enable-libvo-amrwbenc --enable-version3. +

+

This is a mono-only encoder. Officially it only supports 16000Hz sample +rate, but you can override it by setting ‘strict’ to +‘unofficial’ or lower. +

+ +

17.10.1 Options

+ +
+
b
+

Set bitrate in bits/s. Only the following bitrates are supported, otherwise +libavcodec will round to the nearest valid bitrate. +

+
+
6600
+
8850
+
12650
+
14250
+
15850
+
18250
+
19850
+
23050
+
23850
+
+ +
+
dtx
+

Allow discontinuous transmission (generate comfort noise) when set to 1. The +default value is 0 (disabled). +

+
+
+ + +

17.11 libopus

+ +

libopus Opus Interactive Audio Codec encoder wrapper. +

+

Requires the presence of the libopus headers and library during +configuration. You need to explicitly configure the build with +--enable-libopus. +

+ +

17.11.1 Option Mapping

+ +

Most libopus options are modeled after the opusenc utility from +opus-tools. The following is an option mapping chart describing options +supported by the libopus wrapper, and their opusenc-equivalent +in parentheses. +

+
+
b (bitrate)
+

Set the bit rate in bits/s. FFmpeg’s ‘b’ option is +expressed in bits/s, while opusenc’s ‘bitrate’ in +kilobits/s. +

+
+
vbr (vbr, hard-cbr, and cvbr)
+

Set VBR mode. The FFmpeg ‘vbr’ option has the following +valid arguments, with the their opusenc equivalent options +in parentheses: +

+
+
off (hard-cbr)
+

Use constant bit rate encoding. +

+
+
on (vbr)
+

Use variable bit rate encoding (the default). +

+
+
constrained (cvbr)
+

Use constrained variable bit rate encoding. +

+
+ +
+
compression_level (comp)
+

Set encoding algorithm complexity. Valid options are integers in +the 0-10 range. 0 gives the fastest encodes but lower quality, while 10 +gives the highest quality but slowest encoding. The default is 10. +

+
+
frame_duration (framesize)
+

Set maximum frame size, or duration of a frame in milliseconds. The +argument must be exactly the following: 2.5, 5, 10, 20, 40, 60. Smaller +frame sizes achieve lower latency but less quality at a given bitrate. +Sizes greater than 20ms are only interesting at fairly low bitrates. +The default is 20ms. +

+
+
packet_loss (expect-loss)
+

Set expected packet loss percentage. The default is 0. +

+
+
application (N.A.)
+

Set intended application type. Valid options are listed below: +

+
+
voip
+

Favor improved speech intelligibility. +

+
audio
+

Favor faithfulness to the input (the default). +

+
lowdelay
+

Restrict to only the lowest delay modes. +

+
+ +
+
cutoff (N.A.)
+

Set cutoff bandwidth in Hz. The argument must be exactly one of the +following: 4000, 6000, 8000, 12000, or 20000, corresponding to +narrowband, mediumband, wideband, super wideband, and fullband +respectively. The default is 0 (cutoff disabled). +

+
+
+ + +

17.12 libvorbis

+ +

libvorbis encoder wrapper. +

+

Requires the presence of the libvorbisenc headers and library during +configuration. You need to explicitly configure the build with +--enable-libvorbis. +

+ +

17.12.1 Options

+ +

The following options are supported by the libvorbis wrapper. The +oggenc-equivalent of the options are listed in parentheses. +

+

To get a more accurate and extensive documentation of the libvorbis +options, consult the libvorbisenc’s and oggenc’s documentations. +See http://xiph.org/vorbis/, +http://wiki.xiph.org/Vorbis-tools, and oggenc(1). +

+
+
b (-b)
+

Set bitrate expressed in bits/s for ABR. oggenc-b’ is +expressed in kilobits/s. +

+
+
q (-q)
+

Set constant quality setting for VBR. The value should be a float +number in the range of -1.0 to 10.0. The higher the value, the better +the quality. The default value is ‘3.0’. +

+

This option is valid only using the ffmpeg command-line tool. +For library interface users, use ‘global_quality’. +

+
+
cutoff (--advanced-encode-option lowpass_frequency=N)
+

Set cutoff bandwidth in Hz, a value of 0 disables cutoff. oggenc’s +related option is expressed in kHz. The default value is ‘0’ (cutoff +disabled). +

+
+
minrate (-m)
+

Set minimum bitrate expressed in bits/s. oggenc-m’ is +expressed in kilobits/s. +

+
+
maxrate (-M)
+

Set maximum bitrate expressed in bits/s. oggenc-M’ is +expressed in kilobits/s. This only has effect on ABR mode. +

+
+
iblock (--advanced-encode-option impulse_noisetune=N)
+

Set noise floor bias for impulse blocks. The value is a float number from +-15.0 to 0.0. A negative bias instructs the encoder to pay special attention +to the crispness of transients in the encoded audio. The tradeoff for better +transient response is a higher bitrate. +

+
+
+ +

+

+

17.13 libwavpack

+ +

A wrapper providing WavPack encoding through libwavpack. +

+

Only lossless mode using 32-bit integer samples is supported currently. +

+

Requires the presence of the libwavpack headers and library during +configuration. You need to explicitly configure the build with +--enable-libwavpack. +

+

Note that a libavcodec-native encoder for the WavPack codec exists so users can +encode audios with this codec without using this encoder. See wavpackenc. +

+ +

17.13.1 Options

+ +

wavpack command line utility’s corresponding options are listed in +parentheses, if any. +

+
+
frame_size (--blocksize)
+

Default is 32768. +

+
+
compression_level
+

Set speed vs. compression tradeoff. Acceptable arguments are listed below: +

+
+
0 (-f)
+

Fast mode. +

+
+
1
+

Normal (default) settings. +

+
+
2 (-h)
+

High quality. +

+
+
3 (-hh)
+

Very high quality. +

+
+
4-8 (-hh -xEXTRAPROC)
+

Same as ‘3’, but with extra processing enabled. +

+

4’ is the same as ‘-x2’ and ‘8’ is the same as ‘-x6’. +

+
+
+
+
+ +

+

+

17.14 wavpack

+ +

WavPack lossless audio encoder. +

+

This is a libavcodec-native WavPack encoder. There is also an encoder based on +libwavpack, but there is virtually no reason to use that encoder. +

+

See also libwavpack. +

+ +

17.14.1 Options

+ +

The equivalent options for wavpack command line utility are listed in +parentheses. +

+ +

17.14.1.1 Shared options

+ +

The following shared options are effective for this encoder. Only special notes +about this particular encoder will be documented here. For the general meaning +of the options, see the Codec Options chapter. +

+
+
frame_size (--blocksize)
+

For this encoder, the range for this option is between 128 and 131072. Default +is automatically decided based on sample rate and number of channel. +

+

For the complete formula of calculating default, see +‘libavcodec/wavpackenc.c’. +

+
+
compression_level (-f, -h, -hh, and -x)
+

This option’s syntax is consistent with libwavpack’s. +

+
+ + +

17.14.1.2 Private options

+ +
+
joint_stereo (-j)
+

Set whether to enable joint stereo. Valid values are: +

+
+
on (1)
+

Force mid/side audio encoding. +

+
off (0)
+

Force left/right audio encoding. +

+
auto
+

Let the encoder decide automatically. +

+
+ +
+
optimize_mono
+

Set whether to enable optimization for mono. This option is only effective for +non-mono streams. Available values: +

+
+
on
+

enabled +

+
off
+

disabled +

+
+ +
+
+ + + +

18. Video Encoders

+ +

A description of some of the currently available video encoders +follows. +

+ +

18.1 libtheora

+ +

libtheora Theora encoder wrapper. +

+

Requires the presence of the libtheora headers and library during +configuration. You need to explicitly configure the build with +--enable-libtheora. +

+

For more information about the libtheora project see +http://www.theora.org/. +

+ +

18.1.1 Options

+ +

The following global options are mapped to internal libtheora options +which affect the quality and the bitrate of the encoded stream. +

+
+
b
+

Set the video bitrate in bit/s for CBR (Constant Bit Rate) mode. In +case VBR (Variable Bit Rate) mode is enabled this option is ignored. +

+
+
flags
+

Used to enable constant quality mode (VBR) encoding through the +‘qscale’ flag, and to enable the pass1 and pass2 +modes. +

+
+
g
+

Set the GOP size. +

+
+
global_quality
+

Set the global quality as an integer in lambda units. +

+

Only relevant when VBR mode is enabled with flags +qscale. The +value is converted to QP units by dividing it by FF_QP2LAMBDA, +clipped in the [0 - 10] range, and then multiplied by 6.3 to get a +value in the native libtheora range [0-63]. A higher value corresponds +to a higher quality. +

+
+
q
+

Enable VBR mode when set to a non-negative value, and set constant +quality value as a double floating point value in QP units. +

+

The value is clipped in the [0-10] range, and then multiplied by 6.3 +to get a value in the native libtheora range [0-63]. +

+

This option is valid only using the ffmpeg command-line +tool. For library interface users, use ‘global_quality’. +

+
+ + +

18.1.2 Examples

+ +
    +
  • +Set maximum constant quality (VBR) encoding with ffmpeg: +
     
    ffmpeg -i INPUT -codec:v libtheora -q:v 10 OUTPUT.ogg
    +
    + +
  • +Use ffmpeg to convert a CBR 1000 kbps Theora video stream: +
     
    ffmpeg -i INPUT -codec:v libtheora -b:v 1000k OUTPUT.ogg
    +
    +
+ + +

18.2 libvpx

+ +

VP8 format supported through libvpx. +

+

Requires the presence of the libvpx headers and library during configuration. +You need to explicitly configure the build with --enable-libvpx. +

+ +

18.2.1 Options

+ +

Mapping from FFmpeg to libvpx options with conversion notes in parentheses. +

+
+
threads
+

g_threads +

+
+
profile
+

g_profile +

+
+
vb
+

rc_target_bitrate +

+
+
g
+

kf_max_dist +

+
+
keyint_min
+

kf_min_dist +

+
+
qmin
+

rc_min_quantizer +

+
+
qmax
+

rc_max_quantizer +

+
+
bufsize, vb
+

rc_buf_sz +(bufsize * 1000 / vb) +

+

rc_buf_optimal_sz +(bufsize * 1000 / vb * 5 / 6) +

+
+
rc_init_occupancy, vb
+

rc_buf_initial_sz +(rc_init_occupancy * 1000 / vb) +

+
+
rc_buffer_aggressivity
+

rc_undershoot_pct +

+
+
skip_threshold
+

rc_dropframe_thresh +

+
+
qcomp
+

rc_2pass_vbr_bias_pct +

+
+
maxrate, vb
+

rc_2pass_vbr_maxsection_pct +(maxrate * 100 / vb) +

+
+
minrate, vb
+

rc_2pass_vbr_minsection_pct +(minrate * 100 / vb) +

+
+
minrate, maxrate, vb
+

VPX_CBR +(minrate == maxrate == vb) +

+
+
crf
+

VPX_CQ, VP8E_SET_CQ_LEVEL +

+
+
quality
+
+
best
+

VPX_DL_BEST_QUALITY +

+
good
+

VPX_DL_GOOD_QUALITY +

+
realtime
+

VPX_DL_REALTIME +

+
+ +
+
speed
+

VP8E_SET_CPUUSED +

+
+
nr
+

VP8E_SET_NOISE_SENSITIVITY +

+
+
mb_threshold
+

VP8E_SET_STATIC_THRESHOLD +

+
+
slices
+

VP8E_SET_TOKEN_PARTITIONS +

+
+
max-intra-rate
+

VP8E_SET_MAX_INTRA_BITRATE_PCT +

+
+
force_key_frames
+

VPX_EFLAG_FORCE_KF +

+
+
Alternate reference frame related
+
+
vp8flags altref
+

VP8E_SET_ENABLEAUTOALTREF +

+
arnr_max_frames
+

VP8E_SET_ARNR_MAXFRAMES +

+
arnr_type
+

VP8E_SET_ARNR_TYPE +

+
arnr_strength
+

VP8E_SET_ARNR_STRENGTH +

+
rc_lookahead
+

g_lag_in_frames +

+
+ +
+
vp8flags error_resilient
+

g_error_resilient +

+
+
+ +

For more information about libvpx see: +http://www.webmproject.org/ +

+ + +

18.3 libwebp

+ +

libwebp WebP Image encoder wrapper +

+

libwebp is Google’s official encoder for WebP images. It can encode in either +lossy or lossless mode. Lossy images are essentially a wrapper around a VP8 +frame. Lossless images are a separate codec developed by Google. +

+ +

18.3.1 Pixel Format

+ +

Currently, libwebp only supports YUV420 for lossy and RGB for lossless due +to limitations of the format and libwebp. Alpha is supported for either mode. +Because of API limitations, if RGB is passed in when encoding lossy or YUV is +passed in for encoding lossless, the pixel format will automatically be +converted using functions from libwebp. This is not ideal and is done only for +convenience. +

+ +

18.3.2 Options

+ +
+
-lossless boolean
+

Enables/Disables use of lossless mode. Default is 0. +

+
+
-compression_level integer
+

For lossy, this is a quality/speed tradeoff. Higher values give better quality +for a given size at the cost of increased encoding time. For lossless, this is +a size/speed tradeoff. Higher values give smaller size at the cost of increased +encoding time. More specifically, it controls the number of extra algorithms +and compression tools used, and varies the combination of these tools. This +maps to the method option in libwebp. The valid range is 0 to 6. +Default is 4. +

+
+
-qscale float
+

For lossy encoding, this controls image quality, 0 to 100. For lossless +encoding, this controls the effort and time spent at compressing more. The +default value is 75. Note that for usage via libavcodec, this option is called +global_quality and must be multiplied by FF_QP2LAMBDA. +

+
+
-preset type
+

Configuration preset. This does some automatic settings based on the general +type of the image. +

+
none
+

Do not use a preset. +

+
default
+

Use the encoder default. +

+
picture
+

Digital picture, like portrait, inner shot +

+
photo
+

Outdoor photograph, with natural lighting +

+
drawing
+

Hand or line drawing, with high-contrast details +

+
icon
+

Small-sized colorful images +

+
text
+

Text-like +

+
+ +
+
+ + +

18.4 libx264, libx264rgb

+ +

x264 H.264/MPEG-4 AVC encoder wrapper. +

+

This encoder requires the presence of the libx264 headers and library +during configuration. You need to explicitly configure the build with +--enable-libx264. +

+

libx264 supports an impressive number of features, including 8x8 and +4x4 adaptive spatial transform, adaptive B-frame placement, CAVLC/CABAC +entropy coding, interlacing (MBAFF), lossless mode, psy optimizations +for detail retention (adaptive quantization, psy-RD, psy-trellis). +

+

Many libx264 encoder options are mapped to FFmpeg global codec +options, while unique encoder options are provided through private +options. Additionally the ‘x264opts’ and ‘x264-params’ +private options allows one to pass a list of key=value tuples as accepted +by the libx264 x264_param_parse function. +

+

The x264 project website is at +http://www.videolan.org/developers/x264.html. +

+

The libx264rgb encoder is the same as libx264, except it accepts packed RGB +pixel formats as input instead of YUV. +

+ +

18.4.1 Supported Pixel Formats

+ +

x264 supports 8- to 10-bit color spaces. The exact bit depth is controlled at +x264’s configure time. FFmpeg only supports one bit depth in one particular +build. In other words, it is not possible to build one FFmpeg with multiple +versions of x264 with different bit depths. +

+ +

18.4.2 Options

+ +

The following options are supported by the libx264 wrapper. The +x264-equivalent options or values are listed in parentheses +for easy migration. +

+

To reduce the duplication of documentation, only the private options +and some others requiring special attention are documented here. For +the documentation of the undocumented generic options, see +the Codec Options chapter. +

+

To get a more accurate and extensive documentation of the libx264 +options, invoke the command x264 --full-help or consult +the libx264 documentation. +

+
+
b (bitrate)
+

Set bitrate in bits/s. Note that FFmpeg’s ‘b’ option is +expressed in bits/s, while x264’s ‘bitrate’ is in +kilobits/s. +

+
+
bf (bframes)
+
g (keyint)
+
qmin (qpmin)
+

Minimum quantizer scale. +

+
+
qmax (qpmax)
+

Maximum quantizer scale. +

+
+
qdiff (qpstep)
+

Maximum difference between quantizer scales. +

+
+
qblur (qblur)
+

Quantizer curve blur +

+
+
qcomp (qcomp)
+

Quantizer curve compression factor +

+
+
refs (ref)
+

Number of reference frames each P-frame can use. The range is from 0-16. +

+
+
sc_threshold (scenecut)
+

Sets the threshold for the scene change detection. +

+
+
trellis (trellis)
+

Performs Trellis quantization to increase efficiency. Enabled by default. +

+
+
nr (nr)
+
me_range (merange)
+

Maximum range of the motion search in pixels. +

+
+
me_method (me)
+

Set motion estimation method. Possible values in the decreasing order +of speed: +

+
+
dia (dia)
+
epzs (dia)
+

Diamond search with radius 1 (fastest). ‘epzs’ is an alias for +‘dia’. +

+
hex (hex)
+

Hexagonal search with radius 2. +

+
umh (umh)
+

Uneven multi-hexagon search. +

+
esa (esa)
+

Exhaustive search. +

+
tesa (tesa)
+

Hadamard exhaustive search (slowest). +

+
+ +
+
subq (subme)
+

Sub-pixel motion estimation method. +

+
+
b_strategy (b-adapt)
+

Adaptive B-frame placement decision algorithm. Use only on first-pass. +

+
+
keyint_min (min-keyint)
+

Minimum GOP size. +

+
+
coder
+

Set entropy encoder. Possible values: +

+
+
ac
+

Enable CABAC. +

+
+
vlc
+

Enable CAVLC and disable CABAC. It generates the same effect as +x264’s ‘--no-cabac’ option. +

+
+ +
+
cmp
+

Set full pixel motion estimation comparation algorithm. Possible values: +

+
+
chroma
+

Enable chroma in motion estimation. +

+
+
sad
+

Ignore chroma in motion estimation. It generates the same effect as +x264’s ‘--no-chroma-me’ option. +

+
+ +
+
threads (threads)
+

Number of encoding threads. +

+
+
thread_type
+

Set multithreading technique. Possible values: +

+
+
slice
+

Slice-based multithreading. It generates the same effect as +x264’s ‘--sliced-threads’ option. +

+
frame
+

Frame-based multithreading. +

+
+ +
+
flags
+

Set encoding flags. It can be used to disable closed GOP and enable +open GOP by setting it to -cgop. The result is similar to +the behavior of x264’s ‘--open-gop’ option. +

+
+
rc_init_occupancy (vbv-init)
+
preset (preset)
+

Set the encoding preset. +

+
+
tune (tune)
+

Set tuning of the encoding params. +

+
+
profile (profile)
+

Set profile restrictions. +

+
+
fastfirstpass
+

Enable fast settings when encoding first pass, when set to 1. When set +to 0, it has the same effect of x264’s +‘--slow-firstpass’ option. +

+
+
crf (crf)
+

Set the quality for constant quality mode. +

+
+
crf_max (crf-max)
+

In CRF mode, prevents VBV from lowering quality beyond this point. +

+
+
qp (qp)
+

Set constant quantization rate control method parameter. +

+
+
aq-mode (aq-mode)
+

Set AQ method. Possible values: +

+
+
none (0)
+

Disabled. +

+
+
variance (1)
+

Variance AQ (complexity mask). +

+
+
autovariance (2)
+

Auto-variance AQ (experimental). +

+
+ +
+
aq-strength (aq-strength)
+

Set AQ strength, reduce blocking and blurring in flat and textured areas. +

+
+
psy
+

Use psychovisual optimizations when set to 1. When set to 0, it has the +same effect as x264’s ‘--no-psy’ option. +

+
+
psy-rd (psy-rd)
+

Set strength of psychovisual optimization, in +psy-rd:psy-trellis format. +

+
+
rc-lookahead (rc-lookahead)
+

Set number of frames to look ahead for frametype and ratecontrol. +

+
+
weightb
+

Enable weighted prediction for B-frames when set to 1. When set to 0, +it has the same effect as x264’s ‘--no-weightb’ option. +

+
+
weightp (weightp)
+

Set weighted prediction method for P-frames. Possible values: +

+
+
none (0)
+

Disabled +

+
simple (1)
+

Enable only weighted refs +

+
smart (2)
+

Enable both weighted refs and duplicates +

+
+ +
+
ssim (ssim)
+

Enable calculation and printing SSIM stats after the encoding. +

+
+
intra-refresh (intra-refresh)
+

Enable the use of Periodic Intra Refresh instead of IDR frames when set +to 1. +

+
+
bluray-compat (bluray-compat)
+

Configure the encoder to be compatible with the bluray standard. +It is a shorthand for setting "bluray-compat=1 force-cfr=1". +

+
+
b-bias (b-bias)
+

Set the influence on how often B-frames are used. +

+
+
b-pyramid (b-pyramid)
+

Set method for keeping of some B-frames as references. Possible values: +

+
+
none (none)
+

Disabled. +

+
strict (strict)
+

Strictly hierarchical pyramid. +

+
normal (normal)
+

Non-strict (not Blu-ray compatible). +

+
+ +
+
mixed-refs
+

Enable the use of one reference per partition, as opposed to one +reference per macroblock when set to 1. When set to 0, it has the +same effect as x264’s ‘--no-mixed-refs’ option. +

+
+
8x8dct
+

Enable adaptive spatial transform (high profile 8x8 transform) +when set to 1. When set to 0, it has the same effect as +x264’s ‘--no-8x8dct’ option. +

+
+
fast-pskip
+

Enable early SKIP detection on P-frames when set to 1. When set +to 0, it has the same effect as x264’s +‘--no-fast-pskip’ option. +

+
+
aud (aud)
+

Enable use of access unit delimiters when set to 1. +

+
+
mbtree
+

Enable use macroblock tree ratecontrol when set to 1. When set +to 0, it has the same effect as x264’s +‘--no-mbtree’ option. +

+
+
deblock (deblock)
+

Set loop filter parameters, in alpha:beta form. +

+
+
cplxblur (cplxblur)
+

Set fluctuations reduction in QP (before curve compression). +

+
+
partitions (partitions)
+

Set partitions to consider as a comma-separated list of. Possible +values in the list: +

+
+
p8x8
+

8x8 P-frame partition. +

+
p4x4
+

4x4 P-frame partition. +

+
b8x8
+

4x4 B-frame partition. +

+
i8x8
+

8x8 I-frame partition. +

+
i4x4
+

4x4 I-frame partition. +(Enabling ‘p4x4’ requires ‘p8x8’ to be enabled. Enabling +‘i8x8’ requires adaptive spatial transform (‘8x8dct’ +option) to be enabled.) +

+
none (none)
+

Do not consider any partitions. +

+
all (all)
+

Consider every partition. +

+
+ +
+
direct-pred (direct)
+

Set direct MV prediction mode. Possible values: +

+
+
none (none)
+

Disable MV prediction. +

+
spatial (spatial)
+

Enable spatial predicting. +

+
temporal (temporal)
+

Enable temporal predicting. +

+
auto (auto)
+

Automatically decided. +

+
+ +
+
slice-max-size (slice-max-size)
+

Set the limit of the size of each slice in bytes. If not specified +but RTP payload size (‘ps’) is specified, that is used. +

+
+
stats (stats)
+

Set the file name for multi-pass stats. +

+
+
nal-hrd (nal-hrd)
+

Set signal HRD information (requires ‘vbv-bufsize’ to be set). +Possible values: +

+
+
none (none)
+

Disable HRD information signaling. +

+
vbr (vbr)
+

Variable bit rate. +

+
cbr (cbr)
+

Constant bit rate (not allowed in MP4 container). +

+
+ +
+
x264opts (N.A.)
+

Set any x264 option, see x264 --fullhelp for a list. +

+

Argument is a list of key=value couples separated by +":". In filter and psy-rd options that use ":" as a separator +themselves, use "," instead. They accept it as well since long ago but this +is kept undocumented for some reason. +

+

For example to specify libx264 encoding options with ffmpeg: +

 
ffmpeg -i foo.mpg -vcodec libx264 -x264opts keyint=123:min-keyint=20 -an out.mkv
+
+ +
+
x264-params (N.A.)
+

Override the x264 configuration using a :-separated list of key=value +parameters. +

+

This option is functionally the same as the ‘x264opts’, but is +duplicated for compatibility with the Libav fork. +

+

For example to specify libx264 encoding options with ffmpeg: +

 
ffmpeg -i INPUT -c:v libx264 -x264-params level=30:bframes=0:weightp=0:\
+cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:\
+no-fast-pskip=1:subq=6:8x8dct=0:trellis=0 OUTPUT
+
+
+
+ +

Encoding ffpresets for common usages are provided so they can be used with the +general presets system (e.g. passing the ‘pre’ option). +

+ +

18.5 libxvid

+ +

Xvid MPEG-4 Part 2 encoder wrapper. +

+

This encoder requires the presence of the libxvidcore headers and library +during configuration. You need to explicitly configure the build with +--enable-libxvid --enable-gpl. +

+

The native mpeg4 encoder supports the MPEG-4 Part 2 format, so +users can encode to this format without this library. +

+ +

18.5.1 Options

+ +

The following options are supported by the libxvid wrapper. Some of +the following options are listed but are not documented, and +correspond to shared codec options. See the Codec Options chapter for their documentation. The other shared options +which are not listed have no effect for the libxvid encoder. +

+
+
b
+
g
+
qmin
+
qmax
+
mpeg_quant
+
threads
+
bf
+
b_qfactor
+
b_qoffset
+
flags
+

Set specific encoding flags. Possible values: +

+
+
mv4
+

Use four motion vector by macroblock. +

+
+
aic
+

Enable high quality AC prediction. +

+
+
gray
+

Only encode grayscale. +

+
+
gmc
+

Enable the use of global motion compensation (GMC). +

+
+
qpel
+

Enable quarter-pixel motion compensation. +

+
+
cgop
+

Enable closed GOP. +

+
+
global_header
+

Place global headers in extradata instead of every keyframe. +

+
+
+ +
+
trellis
+
me_method
+

Set motion estimation method. Possible values in decreasing order of +speed and increasing order of quality: +

+
+
zero
+

Use no motion estimation (default). +

+
+
phods
+
x1
+
log
+

Enable advanced diamond zonal search for 16x16 blocks and half-pixel +refinement for 16x16 blocks. ‘x1’ and ‘log’ are aliases for +‘phods’. +

+
+
epzs
+

Enable all of the things described above, plus advanced diamond zonal +search for 8x8 blocks, half-pixel refinement for 8x8 blocks, and motion +estimation on chroma planes. +

+
+
full
+

Enable all of the things described above, plus extended 16x16 and 8x8 +blocks search. +

+
+ +
+
mbd
+

Set macroblock decision algorithm. Possible values in the increasing +order of quality: +

+
+
simple
+

Use macroblock comparing function algorithm (default). +

+
+
bits
+

Enable rate distortion-based half pixel and quarter pixel refinement for +16x16 blocks. +

+
+
rd
+

Enable all of the things described above, plus rate distortion-based +half pixel and quarter pixel refinement for 8x8 blocks, and rate +distortion-based search using square pattern. +

+
+ +
+
lumi_aq
+

Enable lumi masking adaptive quantization when set to 1. Default is 0 +(disabled). +

+
+
variance_aq
+

Enable variance adaptive quantization when set to 1. Default is 0 +(disabled). +

+

When combined with ‘lumi_aq’, the resulting quality will not +be better than any of the two specified individually. In other +words, the resulting quality will be the worse one of the two +effects. +

+
+
ssim
+

Set structural similarity (SSIM) displaying method. Possible values: +

+
+
off
+

Disable displaying of SSIM information. +

+
+
avg
+

Output average SSIM at the end of encoding to stdout. The format of +showing the average SSIM is: +

+
 
Average SSIM: %f
+
+ +

For users who are not familiar with C, %f means a float number, or +a decimal (e.g. 0.939232). +

+
+
frame
+

Output both per-frame SSIM data during encoding and average SSIM at +the end of encoding to stdout. The format of per-frame information +is: +

+
 
       SSIM: avg: %1.3f min: %1.3f max: %1.3f
+
+ +

For users who are not familiar with C, %1.3f means a float number +rounded to 3 digits after the dot (e.g. 0.932). +

+
+
+ +
+
ssim_acc
+

Set SSIM accuracy. Valid options are integers within the range of +0-4, while 0 gives the most accurate result and 4 computes the +fastest. +

+
+
+ + +

18.6 png

+ +

PNG image encoder. +

+ +

18.6.1 Private options

+ +
+
dpi integer
+

Set physical density of pixels, in dots per inch, unset by default +

+
dpm integer
+

Set physical density of pixels, in dots per meter, unset by default +

+
+ + +

18.7 ProRes

+ +

Apple ProRes encoder. +

+

FFmpeg contains 2 ProRes encoders, the prores-aw and prores-ks encoder. +The used encoder can be chosen with the -vcodec option. +

+ +

18.7.1 Private Options for prores-ks

+ +
+
profile integer
+

Select the ProRes profile to encode +

+
proxy
+
lt
+
standard
+
hq
+
4444
+
+ +
+
quant_mat integer
+

Select quantization matrix. +

+
auto
+
default
+
proxy
+
lt
+
standard
+
hq
+
+

If set to auto, the matrix matching the profile will be picked. +If not set, the matrix providing the highest quality, default, will be +picked. +

+
+
bits_per_mb integer
+

How many bits to allot for coding one macroblock. Different profiles use +between 200 and 2400 bits per macroblock, the maximum is 8000. +

+
+
mbs_per_slice integer
+

Number of macroblocks in each slice (1-8); the default value (8) +should be good in almost all situations. +

+
+
vendor string
+

Override the 4-byte vendor ID. +A custom vendor ID like apl0 would claim the stream was produced by +the Apple encoder. +

+
+
alpha_bits integer
+

Specify number of bits for alpha component. +Possible values are 0, 8 and 16. +Use 0 to disable alpha plane coding. +

+
+
+ + +

18.7.2 Speed considerations

+ +

In the default mode of operation the encoder has to honor frame constraints +(i.e. not produc frames with size bigger than requested) while still making +output picture as good as possible. +A frame containing a lot of small details is harder to compress and the encoder +would spend more time searching for appropriate quantizers for each slice. +

+

Setting a higher ‘bits_per_mb’ limit will improve the speed. +

+

For the fastest encoding speed set the ‘qscale’ parameter (4 is the +recommended value) and do not set a size constraint. +

+ +

19. Bitstream Filters

+ +

When you configure your FFmpeg build, all the supported bitstream +filters are enabled by default. You can list all available ones using +the configure option --list-bsfs. +

+

You can disable all the bitstream filters using the configure option +--disable-bsfs, and selectively enable any bitstream filter using +the option --enable-bsf=BSF, or you can disable a particular +bitstream filter using the option --disable-bsf=BSF. +

+

The option -bsfs of the ff* tools will display the list of +all the supported bitstream filters included in your build. +

+

Below is a description of the currently available bitstream filters. +

+ +

19.1 aac_adtstoasc

+ +

Convert MPEG-2/4 AAC ADTS to MPEG-4 Audio Specific Configuration +bitstream filter. +

+

This filter creates an MPEG-4 AudioSpecificConfig from an MPEG-2/4 +ADTS header and removes the ADTS header. +

+

This is required for example when copying an AAC stream from a raw +ADTS AAC container to a FLV or a MOV/MP4 file. +

+ +

19.2 chomp

+ +

Remove zero padding at the end of a packet. +

+ +

19.3 dump_extra

+ +

Add extradata to the beginning of the filtered packets. +

+

The additional argument specifies which packets should be filtered. +It accepts the values: +

+
a
+

add extradata to all key packets, but only if local_header is +set in the ‘flags2’ codec context field +

+
+
k
+

add extradata to all key packets +

+
+
e
+

add extradata to all packets +

+
+ +

If not specified it is assumed ‘k’. +

+

For example the following ffmpeg command forces a global +header (thus disabling individual packet headers) in the H.264 packets +generated by the libx264 encoder, but corrects them by adding +the header stored in extradata to the key packets: +

 
ffmpeg -i INPUT -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra out.ts
+
+ + +

19.4 h264_mp4toannexb

+ +

Convert an H.264 bitstream from length prefixed mode to start code +prefixed mode (as defined in the Annex B of the ITU-T H.264 +specification). +

+

This is required by some streaming formats, typically the MPEG-2 +transport stream format ("mpegts"). +

+

For example to remux an MP4 file containing an H.264 stream to mpegts +format with ffmpeg, you can use the command: +

+
 
ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264_mp4toannexb OUTPUT.ts
+
+ + +

19.5 imx_dump_header

+ + +

19.6 mjpeg2jpeg

+ +

Convert MJPEG/AVI1 packets to full JPEG/JFIF packets. +

+

MJPEG is a video codec wherein each video frame is essentially a +JPEG image. The individual frames can be extracted without loss, +e.g. by +

+
 
ffmpeg -i ../some_mjpeg.avi -c:v copy frames_%d.jpg
+
+ +

Unfortunately, these chunks are incomplete JPEG images, because +they lack the DHT segment required for decoding. Quoting from +http://www.digitalpreservation.gov/formats/fdd/fdd000063.shtml: +

+

Avery Lee, writing in the rec.video.desktop newsgroup in 2001, +commented that "MJPEG, or at least the MJPEG in AVIs having the +MJPG fourcc, is restricted JPEG with a fixed – and *omitted* – +Huffman table. The JPEG must be YCbCr colorspace, it must be 4:2:2, +and it must use basic Huffman encoding, not arithmetic or +progressive. . . . You can indeed extract the MJPEG frames and +decode them with a regular JPEG decoder, but you have to prepend +the DHT segment to them, or else the decoder won’t have any idea +how to decompress the data. The exact table necessary is given in +the OpenDML spec." +

+

This bitstream filter patches the header of frames extracted from an MJPEG +stream (carrying the AVI1 header ID and lacking a DHT segment) to +produce fully qualified JPEG images. +

+
 
ffmpeg -i mjpeg-movie.avi -c:v copy -bsf:v mjpeg2jpeg frame_%d.jpg
+exiftran -i -9 frame*.jpg
+ffmpeg -i frame_%d.jpg -c:v copy rotated.avi
+
+ + +

19.7 mjpega_dump_header

+ + +

19.8 movsub

+ + +

19.9 mp3_header_decompress

+ + +

19.10 noise

+ + +

19.11 remove_extra

+ + +

20. Format Options

+ +

The libavformat library provides some generic global options, which +can be set on all the muxers and demuxers. In addition each muxer or +demuxer may support so-called private options, which are specific for +that component. +

+

Options may be set by specifying -option value in the +FFmpeg tools, or by setting the value explicitly in the +AVFormatContext options or using the ‘libavutil/opt.h’ API +for programmatic use. +

+

The list of supported options follows: +

+
+
avioflags flags (input/output)
+

Possible values: +

+
direct
+

Reduce buffering. +

+
+ +
+
probesize integer (input)
+

Set probing size in bytes, i.e. the size of the data to analyze to get +stream information. A higher value will allow to detect more +information in case it is dispersed into the stream, but will increase +latency. Must be an integer not lesser than 32. It is 5000000 by default. +

+
+
packetsize integer (output)
+

Set packet size. +

+
+
fflags flags (input/output)
+

Set format flags. +

+

Possible values: +

+
ignidx
+

Ignore index. +

+
genpts
+

Generate PTS. +

+
nofillin
+

Do not fill in missing values that can be exactly calculated. +

+
noparse
+

Disable AVParsers, this needs +nofillin too. +

+
igndts
+

Ignore DTS. +

+
discardcorrupt
+

Discard corrupted frames. +

+
sortdts
+

Try to interleave output packets by DTS. +

+
keepside
+

Do not merge side data. +

+
latm
+

Enable RTP MP4A-LATM payload. +

+
nobuffer
+

Reduce the latency introduced by optional buffering +

+
+ +
+
seek2any integer (input)
+

Allow seeking to non-keyframes on demuxer level when supported if set to 1. +Default is 0. +

+
+
analyzeduration integer (input)
+

Specify how many microseconds are analyzed to probe the input. A +higher value will allow to detect more accurate information, but will +increase latency. It defaults to 5,000,000 microseconds = 5 seconds. +

+
+
cryptokey hexadecimal string (input)
+

Set decryption key. +

+
+
indexmem integer (input)
+

Set max memory used for timestamp index (per stream). +

+
+
rtbufsize integer (input)
+

Set max memory used for buffering real-time frames. +

+
+
fdebug flags (input/output)
+

Print specific debug info. +

+

Possible values: +

+
ts
+
+ +
+
max_delay integer (input/output)
+

Set maximum muxing or demuxing delay in microseconds. +

+
+
fpsprobesize integer (input)
+

Set number of frames used to probe fps. +

+
+
audio_preload integer (output)
+

Set microseconds by which audio packets should be interleaved earlier. +

+
+
chunk_duration integer (output)
+

Set microseconds for each chunk. +

+
+
chunk_size integer (output)
+

Set size in bytes for each chunk. +

+
+
err_detect, f_err_detect flags (input)
+

Set error detection flags. f_err_detect is deprecated and +should be used only via the ffmpeg tool. +

+

Possible values: +

+
crccheck
+

Verify embedded CRCs. +

+
bitstream
+

Detect bitstream specification deviations. +

+
buffer
+

Detect improper bitstream length. +

+
explode
+

Abort decoding on minor error detection. +

+
careful
+

Consider things that violate the spec and have not been seen in the +wild as errors. +

+
compliant
+

Consider all spec non compliancies as errors. +

+
aggressive
+

Consider things that a sane encoder should not do as an error. +

+
+ +
+
use_wallclock_as_timestamps integer (input)
+

Use wallclock as timestamps. +

+
+
avoid_negative_ts integer (output)
+
+

Possible values: +

+
make_non_negative
+

Shift timestamps to make them non-negative. +Also note that this affects only leading negative timestamps, and not +non-monotonic negative timestamps. +

+
make_zero
+

Shift timestamps so that the first timestamp is 0. +

+
auto (default)
+

Enables shifting when required by the target format. +

+
disabled
+

Disables shifting of timestamp. +

+
+ +

When shifting is enabled, all output timestamps are shifted by the +same amount. Audio, video, and subtitles desynching and relative +timestamp differences are preserved compared to how they would have +been without shifting. +

+
+
skip_initial_bytes integer (input)
+

Set number of bytes to skip before reading header and frames if set to 1. +Default is 0. +

+
+
correct_ts_overflow integer (input)
+

Correct single timestamp overflows if set to 1. Default is 1. +

+
+
flush_packets integer (output)
+

Flush the underlying I/O stream after each packet. Default 1 enables it, and +has the effect of reducing the latency; 0 disables it and may slightly +increase performance in some cases. +

+
+
output_ts_offset offset (output)
+

Set the output time offset. +

+

offset must be a time duration specification, +see (ffmpeg-utils)time duration syntax. +

+

The offset is added by the muxer to the output timestamps. +

+

Specifying a positive offset means that the corresponding streams are +delayed bt the time duration specified in offset. Default value +is 0 (meaning that no offset is applied). +

+
+ + +

+

+

20.1 Format stream specifiers

+ +

Format stream specifiers allow selection of one or more streams that +match specific properties. +

+

Possible forms of stream specifiers are: +

+
stream_index
+

Matches the stream with this index. +

+
+
stream_type[:stream_index]
+

stream_type is one of following: ’v’ for video, ’a’ for audio, +’s’ for subtitle, ’d’ for data, and ’t’ for attachments. If +stream_index is given, then it matches the stream number +stream_index of this type. Otherwise, it matches all streams of +this type. +

+
+
p:program_id[:stream_index]
+

If stream_index is given, then it matches the stream with number +stream_index in the program with the id +program_id. Otherwise, it matches all streams in the program. +

+
+
#stream_id
+

Matches the stream by a format-specific ID. +

+
+ +

The exact semantics of stream specifiers is defined by the +avformat_match_stream_specifier() function declared in the +‘libavformat/avformat.h’ header. +

+ +

21. Demuxers

+ +

Demuxers are configured elements in FFmpeg that can read the +multimedia streams from a particular type of file. +

+

When you configure your FFmpeg build, all the supported demuxers +are enabled by default. You can list all available ones using the +configure option --list-demuxers. +

+

You can disable all the demuxers using the configure option +--disable-demuxers, and selectively enable a single demuxer with +the option --enable-demuxer=DEMUXER, or disable it +with the option --disable-demuxer=DEMUXER. +

+

The option -formats of the ff* tools will display the list of +enabled demuxers. +

+

The description of some of the currently available demuxers follows. +

+ +

21.1 applehttp

+ +

Apple HTTP Live Streaming demuxer. +

+

This demuxer presents all AVStreams from all variant streams. +The id field is set to the bitrate variant index number. By setting +the discard flags on AVStreams (by pressing ’a’ or ’v’ in ffplay), +the caller can decide which variant streams to actually receive. +The total bitrate of the variant that the stream belongs to is +available in a metadata key named "variant_bitrate". +

+ +

21.2 asf

+ +

Advanced Systems Format demuxer. +

+

This demuxer is used to demux ASF files and MMS network streams. +

+
+
-no_resync_search bool
+

Do not try to resynchronize by looking for a certain optional start code. +

+
+ +

+

+

21.3 concat

+ +

Virtual concatenation script demuxer. +

+

This demuxer reads a list of files and other directives from a text file and +demuxes them one after the other, as if all their packet had been muxed +together. +

+

The timestamps in the files are adjusted so that the first file starts at 0 +and each next file starts where the previous one finishes. Note that it is +done globally and may cause gaps if all streams do not have exactly the same +length. +

+

All files must have the same streams (same codecs, same time base, etc.). +

+

The duration of each file is used to adjust the timestamps of the next file: +if the duration is incorrect (because it was computed using the bit-rate or +because the file is truncated, for example), it can cause artifacts. The +duration directive can be used to override the duration stored in +each file. +

+ +

21.3.1 Syntax

+ +

The script is a text file in extended-ASCII, with one directive per line. +Empty lines, leading spaces and lines starting with ’#’ are ignored. The +following directive is recognized: +

+
+
file path
+

Path to a file to read; special characters and spaces must be escaped with +backslash or single quotes. +

+

All subsequent file-related directives apply to that file. +

+
+
ffconcat version 1.0
+

Identify the script type and version. It also sets the ‘safe’ option +to 1 if it was to its default -1. +

+

To make FFmpeg recognize the format automatically, this directive must +appears exactly as is (no extra space or byte-order-mark) on the very first +line of the script. +

+
+
duration dur
+

Duration of the file. This information can be specified from the file; +specifying it here may be more efficient or help if the information from the +file is not available or accurate. +

+

If the duration is set for all files, then it is possible to seek in the +whole concatenated video. +

+
+
stream
+

Introduce a stream in the virtual file. +All subsequent stream-related directives apply to the last introduced +stream. +Some streams properties must be set in order to allow identifying the +matching streams in the subfiles. +If no streams are defined in the script, the streams from the first file are +copied. +

+
+
exact_stream_id id
+

Set the id of the stream. +If this directive is given, the string with the corresponding id in the +subfiles will be used. +This is especially useful for MPEG-PS (VOB) files, where the order of the +streams is not reliable. +

+
+
+ + +

21.3.2 Options

+ +

This demuxer accepts the following option: +

+
+
safe
+

If set to 1, reject unsafe file paths. A file path is considered safe if it +does not contain a protocol specification and is relative and all components +only contain characters from the portable character set (letters, digits, +period, underscore and hyphen) and have no period at the beginning of a +component. +

+

If set to 0, any file name is accepted. +

+

The default is -1, it is equivalent to 1 if the format was automatically +probed and 0 otherwise. +

+
+
+ + +

21.4 flv

+ +

Adobe Flash Video Format demuxer. +

+

This demuxer is used to demux FLV files and RTMP network streams. +

+
+
-flv_metadata bool
+

Allocate the streams according to the onMetaData array content. +

+
+ + +

21.5 libgme

+ +

The Game Music Emu library is a collection of video game music file emulators. +

+

See http://code.google.com/p/game-music-emu/ for more information. +

+

Some files have multiple tracks. The demuxer will pick the first track by +default. The ‘track_index’ option can be used to select a different +track. Track indexes start at 0. The demuxer exports the number of tracks as +tracks meta data entry. +

+

For very large files, the ‘max_size’ option may have to be adjusted. +

+ +

21.6 libquvi

+ +

Play media from Internet services using the quvi project. +

+

The demuxer accepts a ‘format’ option to request a specific quality. It +is by default set to best. +

+

See http://quvi.sourceforge.net/ for more information. +

+

FFmpeg needs to be built with --enable-libquvi for this demuxer to be +enabled. +

+ +

21.7 image2

+ +

Image file demuxer. +

+

This demuxer reads from a list of image files specified by a pattern. +The syntax and meaning of the pattern is specified by the +option pattern_type. +

+

The pattern may contain a suffix which is used to automatically +determine the format of the images contained in the files. +

+

The size, the pixel format, and the format of each image must be the +same for all the files in the sequence. +

+

This demuxer accepts the following options: +

+
framerate
+

Set the frame rate for the video stream. It defaults to 25. +

+
loop
+

If set to 1, loop over the input. Default value is 0. +

+
pattern_type
+

Select the pattern type used to interpret the provided filename. +

+

pattern_type accepts one of the following values. +

+
sequence
+

Select a sequence pattern type, used to specify a sequence of files +indexed by sequential numbers. +

+

A sequence pattern may contain the string "%d" or "%0Nd", which +specifies the position of the characters representing a sequential +number in each filename matched by the pattern. If the form +"%d0Nd" is used, the string representing the number in each +filename is 0-padded and N is the total number of 0-padded +digits representing the number. The literal character ’%’ can be +specified in the pattern with the string "%%". +

+

If the sequence pattern contains "%d" or "%0Nd", the first filename of +the file list specified by the pattern must contain a number +inclusively contained between start_number and +start_number+start_number_range-1, and all the following +numbers must be sequential. +

+

For example the pattern "img-%03d.bmp" will match a sequence of +filenames of the form ‘img-001.bmp’, ‘img-002.bmp’, ..., +‘img-010.bmp’, etc.; the pattern "i%%m%%g-%d.jpg" will match a +sequence of filenames of the form ‘i%m%g-1.jpg’, +‘i%m%g-2.jpg’, ..., ‘i%m%g-10.jpg’, etc. +

+

Note that the pattern must not necessarily contain "%d" or +"%0Nd", for example to convert a single image file +‘img.jpeg’ you can employ the command: +

 
ffmpeg -i img.jpeg img.png
+
+ +
+
glob
+

Select a glob wildcard pattern type. +

+

The pattern is interpreted like a glob() pattern. This is only +selectable if libavformat was compiled with globbing support. +

+
+
glob_sequence (deprecated, will be removed)
+

Select a mixed glob wildcard/sequence pattern. +

+

If your version of libavformat was compiled with globbing support, and +the provided pattern contains at least one glob meta character among +%*?[]{} that is preceded by an unescaped "%", the pattern is +interpreted like a glob() pattern, otherwise it is interpreted +like a sequence pattern. +

+

All glob special characters %*?[]{} must be prefixed +with "%". To escape a literal "%" you shall use "%%". +

+

For example the pattern foo-%*.jpeg will match all the +filenames prefixed by "foo-" and terminating with ".jpeg", and +foo-%?%?%?.jpeg will match all the filenames prefixed with +"foo-", followed by a sequence of three characters, and terminating +with ".jpeg". +

+

This pattern type is deprecated in favor of glob and +sequence. +

+
+ +

Default value is glob_sequence. +

+
pixel_format
+

Set the pixel format of the images to read. If not specified the pixel +format is guessed from the first image file in the sequence. +

+
start_number
+

Set the index of the file matched by the image file pattern to start +to read from. Default value is 0. +

+
start_number_range
+

Set the index interval range to check when looking for the first image +file in the sequence, starting from start_number. Default value +is 5. +

+
ts_from_file
+

If set to 1, will set frame timestamp to modification time of image file. Note +that monotonity of timestamps is not provided: images go in the same order as +without this option. Default value is 0. +If set to 2, will set frame timestamp to the modification time of the image file in +nanosecond precision. +

+
video_size
+

Set the video size of the images to read. If not specified the video +size is guessed from the first image file in the sequence. +

+
+ + +

21.7.1 Examples

+ +
    +
  • +Use ffmpeg for creating a video from the images in the file +sequence ‘img-001.jpeg’, ‘img-002.jpeg’, ..., assuming an +input frame rate of 10 frames per second: +
     
    ffmpeg -framerate 10 -i 'img-%03d.jpeg' out.mkv
    +
    + +
  • +As above, but start by reading from a file with index 100 in the sequence: +
     
    ffmpeg -framerate 10 -start_number 100 -i 'img-%03d.jpeg' out.mkv
    +
    + +
  • +Read images matching the "*.png" glob pattern , that is all the files +terminating with the ".png" suffix: +
     
    ffmpeg -framerate 10 -pattern_type glob -i "*.png" out.mkv
    +
    +
+ + +

21.8 mpegts

+ +

MPEG-2 transport stream demuxer. +

+
+
fix_teletext_pts
+

Overrides teletext packet PTS and DTS values with the timestamps calculated +from the PCR of the first program which the teletext stream is part of and is +not discarded. Default value is 1, set this option to 0 if you want your +teletext packet PTS and DTS values untouched. +

+
+ + +

21.9 rawvideo

+ +

Raw video demuxer. +

+

This demuxer allows one to read raw video data. Since there is no header +specifying the assumed video parameters, the user must specify them +in order to be able to decode the data correctly. +

+

This demuxer accepts the following options: +

+
framerate
+

Set input video frame rate. Default value is 25. +

+
+
pixel_format
+

Set the input video pixel format. Default value is yuv420p. +

+
+
video_size
+

Set the input video size. This value must be specified explicitly. +

+
+ +

For example to read a rawvideo file ‘input.raw’ with +ffplay, assuming a pixel format of rgb24, a video +size of 320x240, and a frame rate of 10 images per second, use +the command: +

 
ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -framerate 10 input.raw
+
+ + +

21.10 sbg

+ +

SBaGen script demuxer. +

+

This demuxer reads the script language used by SBaGen +http://uazu.net/sbagen/ to generate binaural beats sessions. A SBG +script looks like that: +

 
-SE
+a: 300-2.5/3 440+4.5/0
+b: 300-2.5/0 440+4.5/3
+off: -
+NOW      == a
++0:07:00 == b
++0:14:00 == a
++0:21:00 == b
++0:30:00    off
+
+ +

A SBG script can mix absolute and relative timestamps. If the script uses +either only absolute timestamps (including the script start time) or only +relative ones, then its layout is fixed, and the conversion is +straightforward. On the other hand, if the script mixes both kind of +timestamps, then the NOW reference for relative timestamps will be +taken from the current time of day at the time the script is read, and the +script layout will be frozen according to that reference. That means that if +the script is directly played, the actual times will match the absolute +timestamps up to the sound controller’s clock accuracy, but if the user +somehow pauses the playback or seeks, all times will be shifted accordingly. +

+ +

21.11 tedcaptions

+ +

JSON captions used for TED Talks. +

+

TED does not provide links to the captions, but they can be guessed from the +page. The file ‘tools/bookmarklets.html’ from the FFmpeg source tree +contains a bookmarklet to expose them. +

+

This demuxer accepts the following option: +

+
start_time
+

Set the start time of the TED talk, in milliseconds. The default is 15000 +(15s). It is used to sync the captions with the downloadable videos, because +they include a 15s intro. +

+
+ +

Example: convert the captions to a format most players understand: +

 
ffmpeg -i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-en.srt
+
+ + +

22. Muxers

+ +

Muxers are configured elements in FFmpeg which allow writing +multimedia streams to a particular type of file. +

+

When you configure your FFmpeg build, all the supported muxers +are enabled by default. You can list all available muxers using the +configure option --list-muxers. +

+

You can disable all the muxers with the configure option +--disable-muxers and selectively enable / disable single muxers +with the options --enable-muxer=MUXER / +--disable-muxer=MUXER. +

+

The option -formats of the ff* tools will display the list of +enabled muxers. +

+

A description of some of the currently available muxers follows. +

+

+

+

22.1 aiff

+ +

Audio Interchange File Format muxer. +

+ +

22.1.1 Options

+ +

It accepts the following options: +

+
+
write_id3v2
+

Enable ID3v2 tags writing when set to 1. Default is 0 (disabled). +

+
+
id3v2_version
+

Select ID3v2 version to write. Currently only version 3 and 4 (aka. +ID3v2.3 and ID3v2.4) are supported. The default is version 4. +

+
+
+ +

+

+

22.2 crc

+ +

CRC (Cyclic Redundancy Check) testing format. +

+

This muxer computes and prints the Adler-32 CRC of all the input audio +and video frames. By default audio frames are converted to signed +16-bit raw audio and video frames to raw video before computing the +CRC. +

+

The output of the muxer consists of a single line of the form: +CRC=0xCRC, where CRC is a hexadecimal number 0-padded to +8 digits containing the CRC for all the decoded input frames. +

+

See also the framecrc muxer. +

+ +

22.2.1 Examples

+ +

For example to compute the CRC of the input, and store it in the file +‘out.crc’: +

 
ffmpeg -i INPUT -f crc out.crc
+
+ +

You can print the CRC to stdout with the command: +

 
ffmpeg -i INPUT -f crc -
+
+ +

You can select the output format of each frame with ffmpeg by +specifying the audio and video codec and format. For example to +compute the CRC of the input audio converted to PCM unsigned 8-bit +and the input video converted to MPEG-2 video, use the command: +

 
ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f crc -
+
+ +

+

+

22.3 framecrc

+ +

Per-packet CRC (Cyclic Redundancy Check) testing format. +

+

This muxer computes and prints the Adler-32 CRC for each audio +and video packet. By default audio frames are converted to signed +16-bit raw audio and video frames to raw video before computing the +CRC. +

+

The output of the muxer consists of a line for each audio and video +packet of the form: +

 
stream_index, packet_dts, packet_pts, packet_duration, packet_size, 0xCRC
+
+ +

CRC is a hexadecimal number 0-padded to 8 digits containing the +CRC of the packet. +

+ +

22.3.1 Examples

+ +

For example to compute the CRC of the audio and video frames in +‘INPUT’, converted to raw audio and video packets, and store it +in the file ‘out.crc’: +

 
ffmpeg -i INPUT -f framecrc out.crc
+
+ +

To print the information to stdout, use the command: +

 
ffmpeg -i INPUT -f framecrc -
+
+ +

With ffmpeg, you can select the output format to which the +audio and video frames are encoded before computing the CRC for each +packet by specifying the audio and video codec. For example, to +compute the CRC of each decoded input audio frame converted to PCM +unsigned 8-bit and of each decoded input video frame converted to +MPEG-2 video, use the command: +

 
ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f framecrc -
+
+ +

See also the crc muxer. +

+

+

+

22.4 framemd5

+ +

Per-packet MD5 testing format. +

+

This muxer computes and prints the MD5 hash for each audio +and video packet. By default audio frames are converted to signed +16-bit raw audio and video frames to raw video before computing the +hash. +

+

The output of the muxer consists of a line for each audio and video +packet of the form: +

 
stream_index, packet_dts, packet_pts, packet_duration, packet_size, MD5
+
+ +

MD5 is a hexadecimal number representing the computed MD5 hash +for the packet. +

+ +

22.4.1 Examples

+ +

For example to compute the MD5 of the audio and video frames in +‘INPUT’, converted to raw audio and video packets, and store it +in the file ‘out.md5’: +

 
ffmpeg -i INPUT -f framemd5 out.md5
+
+ +

To print the information to stdout, use the command: +

 
ffmpeg -i INPUT -f framemd5 -
+
+ +

See also the md5 muxer. +

+

+

+

22.5 gif

+ +

Animated GIF muxer. +

+

It accepts the following options: +

+
+
loop
+

Set the number of times to loop the output. Use -1 for no loop, 0 +for looping indefinitely (default). +

+
+
final_delay
+

Force the delay (expressed in centiseconds) after the last frame. Each frame +ends with a delay until the next frame. The default is -1, which is a +special value to tell the muxer to re-use the previous delay. In case of a +loop, you might want to customize this value to mark a pause for instance. +

+
+ +

For example, to encode a gif looping 10 times, with a 5 seconds delay between +the loops: +

 
ffmpeg -i INPUT -loop 10 -final_delay 500 out.gif
+
+ +

Note 1: if you wish to extract the frames in separate GIF files, you need to +force the image2 muxer: +

 
ffmpeg -i INPUT -c:v gif -f image2 "out%d.gif"
+
+ +

Note 2: the GIF format has a very small time base: the delay between two frames +can not be smaller than one centi second. +

+

+

+

22.6 hls

+ +

Apple HTTP Live Streaming muxer that segments MPEG-TS according to +the HTTP Live Streaming (HLS) specification. +

+

It creates a playlist file and numbered segment files. The output +filename specifies the playlist filename; the segment filenames +receive the same basename as the playlist, a sequential number and +a .ts extension. +

+

For example, to convert an input file with ffmpeg: +

 
ffmpeg -i in.nut out.m3u8
+
+ +

See also the segment muxer, which provides a more generic and +flexible implementation of a segmenter, and can be used to perform HLS +segmentation. +

+ +

22.6.1 Options

+ +

This muxer supports the following options: +

+
+
hls_time seconds
+

Set the segment length in seconds. Default value is 2. +

+
+
hls_list_size size
+

Set the maximum number of playlist entries. If set to 0 the list file +will contain all the segments. Default value is 5. +

+
+
hls_wrap wrap
+

Set the number after which the segment filename number (the number +specified in each segment file) wraps. If set to 0 the number will be +never wrapped. Default value is 0. +

+

This option is useful to avoid to fill the disk with many segment +files, and limits the maximum number of segment files written to disk +to wrap. +

+
+
start_number number
+

Start the playlist sequence number from number. Default value is +0. +

+

Note that the playlist sequence number must be unique for each segment +and it is not to be confused with the segment filename sequence number +which can be cyclic, for example if the ‘wrap’ option is +specified. +

+
+ +

+

+

22.7 ico

+ +

ICO file muxer. +

+

Microsoft’s icon file format (ICO) has some strict limitations that should be noted: +

+
    +
  • +Size cannot exceed 256 pixels in any dimension + +
  • +Only BMP and PNG images can be stored + +
  • +If a BMP image is used, it must be one of the following pixel formats: +
     
    BMP Bit Depth      FFmpeg Pixel Format
    +1bit               pal8
    +4bit               pal8
    +8bit               pal8
    +16bit              rgb555le
    +24bit              bgr24
    +32bit              bgra
    +
    + +
  • +If a BMP image is used, it must use the BITMAPINFOHEADER DIB header + +
  • +If a PNG image is used, it must use the rgba pixel format +
+ +

+

+

22.8 image2

+ +

Image file muxer. +

+

The image file muxer writes video frames to image files. +

+

The output filenames are specified by a pattern, which can be used to +produce sequentially numbered series of files. +The pattern may contain the string "%d" or "%0Nd", this string +specifies the position of the characters representing a numbering in +the filenames. If the form "%0Nd" is used, the string +representing the number in each filename is 0-padded to N +digits. The literal character ’%’ can be specified in the pattern with +the string "%%". +

+

If the pattern contains "%d" or "%0Nd", the first filename of +the file list specified will contain the number 1, all the following +numbers will be sequential. +

+

The pattern may contain a suffix which is used to automatically +determine the format of the image files to write. +

+

For example the pattern "img-%03d.bmp" will specify a sequence of +filenames of the form ‘img-001.bmp’, ‘img-002.bmp’, ..., +‘img-010.bmp’, etc. +The pattern "img%%-%d.jpg" will specify a sequence of filenames of the +form ‘img%-1.jpg’, ‘img%-2.jpg’, ..., ‘img%-10.jpg’, +etc. +

+ +

22.8.1 Examples

+ +

The following example shows how to use ffmpeg for creating a +sequence of files ‘img-001.jpeg’, ‘img-002.jpeg’, ..., +taking one image every second from the input video: +

 
ffmpeg -i in.avi -vsync 1 -r 1 -f image2 'img-%03d.jpeg'
+
+ +

Note that with ffmpeg, if the format is not specified with the +-f option and the output filename specifies an image file +format, the image2 muxer is automatically selected, so the previous +command can be written as: +

 
ffmpeg -i in.avi -vsync 1 -r 1 'img-%03d.jpeg'
+
+ +

Note also that the pattern must not necessarily contain "%d" or +"%0Nd", for example to create a single image file +‘img.jpeg’ from the input video you can employ the command: +

 
ffmpeg -i in.avi -f image2 -frames:v 1 img.jpeg
+
+ +

The ‘strftime’ option allows you to expand the filename with +date and time information. Check the documentation of +the strftime() function for the syntax. +

+

For example to generate image files from the strftime() +"%Y-%m-%d_%H-%M-%S" pattern, the following ffmpeg command +can be used: +

 
ffmpeg -f v4l2 -r 1 -i /dev/video0 -f image2 -strftime 1 "%Y-%m-%d_%H-%M-%S.jpg"
+
+ + +

22.8.2 Options

+ +
+
start_number
+

Start the sequence from the specified number. Default value is 1. Must +be a non-negative number. +

+
+
update
+

If set to 1, the filename will always be interpreted as just a +filename, not a pattern, and the corresponding file will be continuously +overwritten with new images. Default value is 0. +

+
+
strftime
+

If set to 1, expand the filename with date and time information from +strftime(). Default value is 0. +

+
+ +

The image muxer supports the .Y.U.V image file format. This format is +special in that that each image frame consists of three files, for +each of the YUV420P components. To read or write this image file format, +specify the name of the ’.Y’ file. The muxer will automatically open the +’.U’ and ’.V’ files as required. +

+ +

22.9 matroska

+ +

Matroska container muxer. +

+

This muxer implements the matroska and webm container specs. +

+ +

22.9.1 Metadata

+ +

The recognized metadata settings in this muxer are: +

+
+
title
+

Set title name provided to a single track. +

+
+
language
+

Specify the language of the track in the Matroska languages form. +

+

The language can be either the 3 letters bibliographic ISO-639-2 (ISO +639-2/B) form (like "fre" for French), or a language code mixed with a +country code for specialities in languages (like "fre-ca" for Canadian +French). +

+
+
stereo_mode
+

Set stereo 3D video layout of two views in a single video track. +

+

The following values are recognized: +

+
mono
+

video is not stereo +

+
left_right
+

Both views are arranged side by side, Left-eye view is on the left +

+
bottom_top
+

Both views are arranged in top-bottom orientation, Left-eye view is at bottom +

+
top_bottom
+

Both views are arranged in top-bottom orientation, Left-eye view is on top +

+
checkerboard_rl
+

Each view is arranged in a checkerboard interleaved pattern, Left-eye view being first +

+
checkerboard_lr
+

Each view is arranged in a checkerboard interleaved pattern, Right-eye view being first +

+
row_interleaved_rl
+

Each view is constituted by a row based interleaving, Right-eye view is first row +

+
row_interleaved_lr
+

Each view is constituted by a row based interleaving, Left-eye view is first row +

+
col_interleaved_rl
+

Both views are arranged in a column based interleaving manner, Right-eye view is first column +

+
col_interleaved_lr
+

Both views are arranged in a column based interleaving manner, Left-eye view is first column +

+
anaglyph_cyan_red
+

All frames are in anaglyph format viewable through red-cyan filters +

+
right_left
+

Both views are arranged side by side, Right-eye view is on the left +

+
anaglyph_green_magenta
+

All frames are in anaglyph format viewable through green-magenta filters +

+
block_lr
+

Both eyes laced in one Block, Left-eye view is first +

+
block_rl
+

Both eyes laced in one Block, Right-eye view is first +

+
+
+
+ +

For example a 3D WebM clip can be created using the following command line: +

 
ffmpeg -i sample_left_right_clip.mpg -an -c:v libvpx -metadata stereo_mode=left_right -y stereo_clip.webm
+
+ + +

22.9.2 Options

+ +

This muxer supports the following options: +

+
+
reserve_index_space
+

By default, this muxer writes the index for seeking (called cues in Matroska +terms) at the end of the file, because it cannot know in advance how much space +to leave for the index at the beginning of the file. However for some use cases +– e.g. streaming where seeking is possible but slow – it is useful to put the +index at the beginning of the file. +

+

If this option is set to a non-zero value, the muxer will reserve a given amount +of space in the file header and then try to write the cues there when the muxing +finishes. If the available space does not suffice, muxing will fail. A safe size +for most use cases should be about 50kB per hour of video. +

+

Note that cues are only written if the output is seekable and this option will +have no effect if it is not. +

+
+ +

+

+

22.10 md5

+ +

MD5 testing format. +

+

This muxer computes and prints the MD5 hash of all the input audio +and video frames. By default audio frames are converted to signed +16-bit raw audio and video frames to raw video before computing the +hash. +

+

The output of the muxer consists of a single line of the form: +MD5=MD5, where MD5 is a hexadecimal number representing +the computed MD5 hash. +

+

For example to compute the MD5 hash of the input converted to raw +audio and video, and store it in the file ‘out.md5’: +

 
ffmpeg -i INPUT -f md5 out.md5
+
+ +

You can print the MD5 to stdout with the command: +

 
ffmpeg -i INPUT -f md5 -
+
+ +

See also the framemd5 muxer. +

+ +

22.11 mov, mp4, ismv

+ +

MOV/MP4/ISMV (Smooth Streaming) muxer. +

+

The mov/mp4/ismv muxer supports fragmentation. Normally, a MOV/MP4 +file has all the metadata about all packets stored in one location +(written at the end of the file, it can be moved to the start for +better playback by adding faststart to the movflags, or +using the qt-faststart tool). A fragmented +file consists of a number of fragments, where packets and metadata +about these packets are stored together. Writing a fragmented +file has the advantage that the file is decodable even if the +writing is interrupted (while a normal MOV/MP4 is undecodable if +it is not properly finished), and it requires less memory when writing +very long files (since writing normal MOV/MP4 files stores info about +every single packet in memory until the file is closed). The downside +is that it is less compatible with other applications. +

+ +

22.11.1 Options

+ +

Fragmentation is enabled by setting one of the AVOptions that define +how to cut the file into fragments: +

+
+
-moov_size bytes
+

Reserves space for the moov atom at the beginning of the file instead of placing the +moov atom at the end. If the space reserved is insufficient, muxing will fail. +

+
-movflags frag_keyframe
+

Start a new fragment at each video keyframe. +

+
-frag_duration duration
+

Create fragments that are duration microseconds long. +

+
-frag_size size
+

Create fragments that contain up to size bytes of payload data. +

+
-movflags frag_custom
+

Allow the caller to manually choose when to cut fragments, by +calling av_write_frame(ctx, NULL) to write a fragment with +the packets written so far. (This is only useful with other +applications integrating libavformat, not from ffmpeg.) +

+
-min_frag_duration duration
+

Don’t create fragments that are shorter than duration microseconds long. +

+
+ +

If more than one condition is specified, fragments are cut when +one of the specified conditions is fulfilled. The exception to this is +-min_frag_duration, which has to be fulfilled for any of the other +conditions to apply. +

+

Additionally, the way the output file is written can be adjusted +through a few other options: +

+
+
-movflags empty_moov
+

Write an initial moov atom directly at the start of the file, without +describing any samples in it. Generally, an mdat/moov pair is written +at the start of the file, as a normal MOV/MP4 file, containing only +a short portion of the file. With this option set, there is no initial +mdat atom, and the moov atom only describes the tracks but has +a zero duration. +

+

Files written with this option set do not work in QuickTime. +This option is implicitly set when writing ismv (Smooth Streaming) files. +

+
-movflags separate_moof
+

Write a separate moof (movie fragment) atom for each track. Normally, +packets for all tracks are written in a moof atom (which is slightly +more efficient), but with this option set, the muxer writes one moof/mdat +pair for each track, making it easier to separate tracks. +

+

This option is implicitly set when writing ismv (Smooth Streaming) files. +

+
-movflags faststart
+

Run a second pass moving the index (moov atom) to the beginning of the file. +This operation can take a while, and will not work in various situations such +as fragmented output, thus it is not enabled by default. +

+
-movflags rtphint
+

Add RTP hinting tracks to the output file. +

+
+ + +

22.11.2 Example

+ +

Smooth Streaming content can be pushed in real time to a publishing +point on IIS with this muxer. Example: +

 
ffmpeg -re <normal input/transcoding options> -movflags isml+frag_keyframe -f ismv http://server/publishingpoint.isml/Streams(Encoder1)
+
+ + +

22.12 mp3

+ +

The MP3 muxer writes a raw MP3 stream with an ID3v2 header at the beginning and +optionally an ID3v1 tag at the end. ID3v2.3 and ID3v2.4 are supported, the +id3v2_version option controls which one is used. Setting +id3v2_version to 0 will disable the ID3v2 header completely. The legacy +ID3v1 tag is not written by default, but may be enabled with the +write_id3v1 option. +

+

The muxer may also write a Xing frame at the beginning, which contains the +number of frames in the file. It is useful for computing duration of VBR files. +The Xing frame is written if the output stream is seekable and if the +write_xing option is set to 1 (the default). +

+

The muxer supports writing ID3v2 attached pictures (APIC frames). The pictures +are supplied to the muxer in form of a video stream with a single packet. There +can be any number of those streams, each will correspond to a single APIC frame. +The stream metadata tags title and comment map to APIC +description and picture type respectively. See +http://id3.org/id3v2.4.0-frames for allowed picture types. +

+

Note that the APIC frames must be written at the beginning, so the muxer will +buffer the audio frames until it gets all the pictures. It is therefore advised +to provide the pictures as soon as possible to avoid excessive buffering. +

+

Examples: +

+

Write an mp3 with an ID3v2.3 header and an ID3v1 footer: +

 
ffmpeg -i INPUT -id3v2_version 3 -write_id3v1 1 out.mp3
+
+ +

To attach a picture to an mp3 file select both the audio and the picture stream +with map: +

 
ffmpeg -i input.mp3 -i cover.png -c copy -map 0 -map 1
+-metadata:s:v title="Album cover" -metadata:s:v comment="Cover (Front)" out.mp3
+
+ +

Write a "clean" MP3 without any extra features: +

 
ffmpeg -i input.wav -write_xing 0 -id3v2_version 0 out.mp3
+
+ + +

22.13 mpegts

+ +

MPEG transport stream muxer. +

+

This muxer implements ISO 13818-1 and part of ETSI EN 300 468. +

+

The recognized metadata settings in mpegts muxer are service_provider +and service_name. If they are not set the default for +service_provider is "FFmpeg" and the default for +service_name is "Service01". +

+ +

22.13.1 Options

+ +

The muxer options are: +

+
+
-mpegts_original_network_id number
+

Set the original_network_id (default 0x0001). This is unique identifier +of a network in DVB. Its main use is in the unique identification of a +service through the path Original_Network_ID, Transport_Stream_ID. +

+
-mpegts_transport_stream_id number
+

Set the transport_stream_id (default 0x0001). This identifies a +transponder in DVB. +

+
-mpegts_service_id number
+

Set the service_id (default 0x0001) also known as program in DVB. +

+
-mpegts_pmt_start_pid number
+

Set the first PID for PMT (default 0x1000, max 0x1f00). +

+
-mpegts_start_pid number
+

Set the first PID for data packets (default 0x0100, max 0x0f00). +

+
-mpegts_m2ts_mode number
+

Enable m2ts mode if set to 1. Default value is -1 which disables m2ts mode. +

+
-muxrate number
+

Set muxrate. +

+
-pes_payload_size number
+

Set minimum PES packet payload in bytes. +

+
-mpegts_flags flags
+

Set flags (see below). +

+
-mpegts_copyts number
+

Preserve original timestamps, if value is set to 1. Default value is -1, which +results in shifting timestamps so that they start from 0. +

+
-tables_version number
+

Set PAT, PMT and SDT version (default 0, valid values are from 0 to 31, inclusively). +This option allows updating stream structure so that standard consumer may +detect the change. To do so, reopen output AVFormatContext (in case of API +usage) or restart ffmpeg instance, cyclically changing tables_version value: +

 
ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 udp://1.1.1.1:1111
+ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 udp://1.1.1.1:1111
+...
+ffmpeg -i source3.ts -codec copy -f mpegts -tables_version 31 udp://1.1.1.1:1111
+ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 udp://1.1.1.1:1111
+ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 udp://1.1.1.1:1111
+...
+
+
+
+ +

Option mpegts_flags may take a set of such flags: +

+
+
resend_headers
+

Reemit PAT/PMT before writing the next packet. +

+
latm
+

Use LATM packetization for AAC. +

+
+ + +

22.13.2 Example

+ +
 
ffmpeg -i file.mpg -c copy \
+     -mpegts_original_network_id 0x1122 \
+     -mpegts_transport_stream_id 0x3344 \
+     -mpegts_service_id 0x5566 \
+     -mpegts_pmt_start_pid 0x1500 \
+     -mpegts_start_pid 0x150 \
+     -metadata service_provider="Some provider" \
+     -metadata service_name="Some Channel" \
+     -y out.ts
+
+ + +

22.14 null

+ +

Null muxer. +

+

This muxer does not generate any output file, it is mainly useful for +testing or benchmarking purposes. +

+

For example to benchmark decoding with ffmpeg you can use the +command: +

 
ffmpeg -benchmark -i INPUT -f null out.null
+
+ +

Note that the above command does not read or write the ‘out.null’ +file, but specifying the output file is required by the ffmpeg +syntax. +

+

Alternatively you can write the command as: +

 
ffmpeg -benchmark -i INPUT -f null -
+
+ + +

22.15 ogg

+ +

Ogg container muxer. +

+
+
-page_duration duration
+

Preferred page duration, in microseconds. The muxer will attempt to create +pages that are approximately duration microseconds long. This allows the +user to compromise between seek granularity and container overhead. The default +is 1 second. A value of 0 will fill all segments, making pages as large as +possible. A value of 1 will effectively use 1 packet-per-page in most +situations, giving a small seek granularity at the cost of additional container +overhead. +

+
+ +

+

+

22.16 segment, stream_segment, ssegment

+ +

Basic stream segmenter. +

+

This muxer outputs streams to a number of separate files of nearly +fixed duration. Output filename pattern can be set in a fashion similar to +image2. +

+

stream_segment is a variant of the muxer used to write to +streaming output formats, i.e. which do not require global headers, +and is recommended for outputting e.g. to MPEG transport stream segments. +ssegment is a shorter alias for stream_segment. +

+

Every segment starts with a keyframe of the selected reference stream, +which is set through the ‘reference_stream’ option. +

+

Note that if you want accurate splitting for a video file, you need to +make the input key frames correspond to the exact splitting times +expected by the segmenter, or the segment muxer will start the new +segment with the key frame found next after the specified start +time. +

+

The segment muxer works best with a single constant frame rate video. +

+

Optionally it can generate a list of the created segments, by setting +the option segment_list. The list type is specified by the +segment_list_type option. The entry filenames in the segment +list are set by default to the basename of the corresponding segment +files. +

+

See also the hls muxer, which provides a more specific +implementation for HLS segmentation. +

+ +

22.16.1 Options

+ +

The segment muxer supports the following options: +

+
+
reference_stream specifier
+

Set the reference stream, as specified by the string specifier. +If specifier is set to auto, the reference is chosen +automatically. Otherwise it must be a stream specifier (see the “Stream +specifiers” chapter in the ffmpeg manual) which specifies the +reference stream. The default value is auto. +

+
+
segment_format format
+

Override the inner container format, by default it is guessed by the filename +extension. +

+
+
segment_list name
+

Generate also a listfile named name. If not specified no +listfile is generated. +

+
+
segment_list_flags flags
+

Set flags affecting the segment list generation. +

+

It currently supports the following flags: +

+
cache
+

Allow caching (only affects M3U8 list files). +

+
+
live
+

Allow live-friendly file generation. +

+
+ +
+
segment_list_size size
+

Update the list file so that it contains at most the last size +segments. If 0 the list file will contain all the segments. Default +value is 0. +

+
+
segment_list_entry_prefix prefix
+

Set prefix to prepend to the name of each entry filename. By +default no prefix is applied. +

+
+
segment_list_type type
+

Specify the format for the segment list file. +

+

The following values are recognized: +

+
flat
+

Generate a flat list for the created segments, one segment per line. +

+
+
csv, ext
+

Generate a list for the created segments, one segment per line, +each line matching the format (comma-separated values): +

 
segment_filename,segment_start_time,segment_end_time
+
+ +

segment_filename is the name of the output file generated by the +muxer according to the provided pattern. CSV escaping (according to +RFC4180) is applied if required. +

+

segment_start_time and segment_end_time specify +the segment start and end time expressed in seconds. +

+

A list file with the suffix ".csv" or ".ext" will +auto-select this format. +

+

ext’ is deprecated in favor or ‘csv’. +

+
+
ffconcat
+

Generate an ffconcat file for the created segments. The resulting file +can be read using the FFmpeg concat demuxer. +

+

A list file with the suffix ".ffcat" or ".ffconcat" will +auto-select this format. +

+
+
m3u8
+

Generate an extended M3U8 file, version 3, compliant with +http://tools.ietf.org/id/draft-pantos-http-live-streaming. +

+

A list file with the suffix ".m3u8" will auto-select this format. +

+
+ +

If not specified the type is guessed from the list file name suffix. +

+
+
segment_time time
+

Set segment duration to time, the value must be a duration +specification. Default value is "2". See also the +‘segment_times’ option. +

+

Note that splitting may not be accurate, unless you force the +reference stream key-frames at the given time. See the introductory +notice and the examples below. +

+
+
segment_time_delta delta
+

Specify the accuracy time when selecting the start time for a +segment, expressed as a duration specification. Default value is "0". +

+

When delta is specified a key-frame will start a new segment if its +PTS satisfies the relation: +

 
PTS >= start_time - time_delta
+
+ +

This option is useful when splitting video content, which is always +split at GOP boundaries, in case a key frame is found just before the +specified split time. +

+

In particular may be used in combination with the ‘ffmpeg’ option +force_key_frames. The key frame times specified by +force_key_frames may not be set accurately because of rounding +issues, with the consequence that a key frame time may result set just +before the specified time. For constant frame rate videos a value of +1/(2*frame_rate) should address the worst case mismatch between +the specified time and the time set by force_key_frames. +

+
+
segment_times times
+

Specify a list of split points. times contains a list of comma +separated duration specifications, in increasing order. See also +the ‘segment_time’ option. +

+
+
segment_frames frames
+

Specify a list of split video frame numbers. frames contains a +list of comma separated integer numbers, in increasing order. +

+

This option specifies to start a new segment whenever a reference +stream key frame is found and the sequential number (starting from 0) +of the frame is greater or equal to the next value in the list. +

+
+
segment_wrap limit
+

Wrap around segment index once it reaches limit. +

+
+
segment_start_number number
+

Set the sequence number of the first segment. Defaults to 0. +

+
+
reset_timestamps 1|0
+

Reset timestamps at the begin of each segment, so that each segment +will start with near-zero timestamps. It is meant to ease the playback +of the generated segments. May not work with some combinations of +muxers/codecs. It is set to 0 by default. +

+
+
initial_offset offset
+

Specify timestamp offset to apply to the output packet timestamps. The +argument must be a time duration specification, and defaults to 0. +

+
+ + +

22.16.2 Examples

+ +
    +
  • +To remux the content of file ‘in.mkv’ to a list of segments +‘out-000.nut’, ‘out-001.nut’, etc., and write the list of +generated segments to ‘out.list’: +
     
    ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.list out%03d.nut
    +
    + +
  • +As the example above, but segment the input file according to the split +points specified by the segment_times option: +
     
    ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_times 1,2,3,5,8,13,21 out%03d.nut
    +
    + +
  • +As the example above, but use the ffmpegforce_key_frames’ +option to force key frames in the input at the specified location, together +with the segment option ‘segment_time_delta’ to account for +possible roundings operated when setting key frame times. +
     
    ffmpeg -i in.mkv -force_key_frames 1,2,3,5,8,13,21 -codec:v mpeg4 -codec:a pcm_s16le -map 0 \
    +-f segment -segment_list out.csv -segment_times 1,2,3,5,8,13,21 -segment_time_delta 0.05 out%03d.nut
    +
    +

    In order to force key frames on the input file, transcoding is +required. +

    +
  • +Segment the input file by splitting the input file according to the +frame numbers sequence specified with the ‘segment_frames’ option: +
     
    ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_frames 100,200,300,500,800 out%03d.nut
    +
    + +
  • +To convert the ‘in.mkv’ to TS segments using the libx264 +and libfaac encoders: +
     
    ffmpeg -i in.mkv -map 0 -codec:v libx264 -codec:a libfaac -f ssegment -segment_list out.list out%03d.ts
    +
    + +
  • +Segment the input file, and create an M3U8 live playlist (can be used +as live HLS source): +
     
    ffmpeg -re -i in.mkv -codec copy -map 0 -f segment -segment_list playlist.m3u8 \
    +-segment_list_flags +live -segment_time 10 out%03d.mkv
    +
    +
+ + +

22.17 tee

+ +

The tee muxer can be used to write the same data to several files or any +other kind of muxer. It can be used, for example, to both stream a video to +the network and save it to disk at the same time. +

+

It is different from specifying several outputs to the ffmpeg +command-line tool because the audio and video data will be encoded only once +with the tee muxer; encoding can be a very expensive process. It is not +useful when using the libavformat API directly because it is then possible +to feed the same packets to several muxers directly. +

+

The slave outputs are specified in the file name given to the muxer, +separated by ’|’. If any of the slave name contains the ’|’ separator, +leading or trailing spaces or any special character, it must be +escaped (see (ffmpeg-utils)quoting_and_escaping). +

+

Muxer options can be specified for each slave by prepending them as a list of +key=value pairs separated by ’:’, between square brackets. If +the options values contain a special character or the ’:’ separator, they +must be escaped; note that this is a second level escaping. +

+

The following special options are also recognized: +

+
f
+

Specify the format name. Useful if it cannot be guessed from the +output name suffix. +

+
+
bsfs[/spec]
+

Specify a list of bitstream filters to apply to the specified +output. +

+

It is possible to specify to which streams a given bitstream filter +applies, by appending a stream specifier to the option separated by +/. spec must be a stream specifier (see Format stream specifiers). If the stream specifier is not specified, the +bistream filters will be applied to all streams in the output. +

+

Several bitstream filters can be specified, separated by ",". +

+
+
select
+

Select the streams that should be mapped to the slave output, +specified by a stream specifier. If not specified, this defaults to +all the input streams. +

+
+ + +

22.17.1 Examples

+ +
    +
  • +Encode something and both archive it in a WebM file and stream it +as MPEG-TS over UDP (the streams need to be explicitly mapped): +
     
    ffmpeg -i ... -c:v libx264 -c:a mp2 -f tee -map 0:v -map 0:a
    +  "archive-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/"
    +
    + +
  • +Use ffmpeg to encode the input, and send the output +to three different destinations. The dump_extra bitstream +filter is used to add extradata information to all the output video +keyframes packets, as requested by the MPEG-TS format. The select +option is applied to ‘out.aac’ in order to make it contain only +audio packets. +
     
    ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac -strict experimental
    +       -f tee "[bsfs/v=dump_extra]out.ts|[movflags=+faststart]out.mp4|[select=a]out.aac"
    +
    + +
  • +As below, but select only stream a:1 for the audio output. Note +that a second level escaping must be performed, as ":" is a special +character used to separate options. +
     
    ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac -strict experimental
    +       -f tee "[bsfs/v=dump_extra]out.ts|[movflags=+faststart]out.mp4|[select=\'a:1\']out.aac"
    +
    +
+ +

Note: some codecs may need different options depending on the output format; +the auto-detection of this can not work with the tee muxer. The main example +is the ‘global_header’ flag. +

+ +

23. Metadata

+ +

FFmpeg is able to dump metadata from media files into a simple UTF-8-encoded +INI-like text file and then load it back using the metadata muxer/demuxer. +

+

The file format is as follows: +

    +
  1. +A file consists of a header and a number of metadata tags divided into sections, +each on its own line. + +
  2. +The header is a ’;FFMETADATA’ string, followed by a version number (now 1). + +
  3. +Metadata tags are of the form ’key=value’ + +
  4. +Immediately after header follows global metadata + +
  5. +After global metadata there may be sections with per-stream/per-chapter +metadata. + +
  6. +A section starts with the section name in uppercase (i.e. STREAM or CHAPTER) in +brackets (’[’, ’]’) and ends with next section or end of file. + +
  7. +At the beginning of a chapter section there may be an optional timebase to be +used for start/end values. It must be in form ’TIMEBASE=num/den’, where num and +den are integers. If the timebase is missing then start/end times are assumed to +be in milliseconds. +Next a chapter section must contain chapter start and end times in form +’START=num’, ’END=num’, where num is a positive integer. + +
  8. +Empty lines and lines starting with ’;’ or ’#’ are ignored. + +
  9. +Metadata keys or values containing special characters (’=’, ’;’, ’#’, ’\’ and a +newline) must be escaped with a backslash ’\’. + +
  10. +Note that whitespace in metadata (e.g. foo = bar) is considered to be a part of +the tag (in the example above key is ’foo ’, value is ’ bar’). +
+ +

A ffmetadata file might look like this: +

 
;FFMETADATA1
+title=bike\\shed
+;this is a comment
+artist=FFmpeg troll team
+
+[CHAPTER]
+TIMEBASE=1/1000
+START=0
+#chapter ends at 0:01:00
+END=60000
+title=chapter \#1
+[STREAM]
+title=multi\
+line
+
+ +

By using the ffmetadata muxer and demuxer it is possible to extract +metadata from an input file to an ffmetadata file, and then transcode +the file into an output file with the edited ffmetadata file. +

+

Extracting an ffmetadata file with ‘ffmpeg’ goes as follows: +

 
ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE
+
+ +

Reinserting edited metadata information from the FFMETADATAFILE file can +be done as: +

 
ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec copy OUTPUT
+
+ + +

24. Protocols

+ +

Protocols are configured elements in FFmpeg that enable access to +resources that require specific protocols. +

+

When you configure your FFmpeg build, all the supported protocols are +enabled by default. You can list all available ones using the +configure option "–list-protocols". +

+

You can disable all the protocols using the configure option +"–disable-protocols", and selectively enable a protocol using the +option "–enable-protocol=PROTOCOL", or you can disable a +particular protocol using the option +"–disable-protocol=PROTOCOL". +

+

The option "-protocols" of the ff* tools will display the list of +supported protocols. +

+

A description of the currently available protocols follows. +

+ +

24.1 bluray

+ +

Read BluRay playlist. +

+

The accepted options are: +

+
angle
+

BluRay angle +

+
+
chapter
+

Start chapter (1...N) +

+
+
playlist
+

Playlist to read (BDMV/PLAYLIST/?????.mpls) +

+
+
+ +

Examples: +

+

Read longest playlist from BluRay mounted to /mnt/bluray: +

 
bluray:/mnt/bluray
+
+ +

Read angle 2 of playlist 4 from BluRay mounted to /mnt/bluray, start from chapter 2: +

 
-playlist 4 -angle 2 -chapter 2 bluray:/mnt/bluray
+
+ + +

24.2 cache

+ +

Caching wrapper for input stream. +

+

Cache the input stream to temporary file. It brings seeking capability to live streams. +

+
 
cache:URL
+
+ + +

24.3 concat

+ +

Physical concatenation protocol. +

+

Allow to read and seek from many resource in sequence as if they were +a unique resource. +

+

A URL accepted by this protocol has the syntax: +

 
concat:URL1|URL2|...|URLN
+
+ +

where URL1, URL2, ..., URLN are the urls of the +resource to be concatenated, each one possibly specifying a distinct +protocol. +

+

For example to read a sequence of files ‘split1.mpeg’, +‘split2.mpeg’, ‘split3.mpeg’ with ffplay use the +command: +

 
ffplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg
+
+ +

Note that you may need to escape the character "|" which is special for +many shells. +

+ +

24.4 crypto

+ +

AES-encrypted stream reading protocol. +

+

The accepted options are: +

+
key
+

Set the AES decryption key binary block from given hexadecimal representation. +

+
+
iv
+

Set the AES decryption initialization vector binary block from given hexadecimal representation. +

+
+ +

Accepted URL formats: +

 
crypto:URL
+crypto+URL
+
+ + +

24.5 data

+ +

Data in-line in the URI. See http://en.wikipedia.org/wiki/Data_URI_scheme. +

+

For example, to convert a GIF file given inline with ffmpeg: +

 
ffmpeg -i "data:image/gif;base64,R0lGODdhCAAIAMIEAAAAAAAA//8AAP//AP///////////////ywAAAAACAAIAAADF0gEDLojDgdGiJdJqUX02iB4E8Q9jUMkADs=" smiley.png
+
+ + +

24.6 file

+ +

File access protocol. +

+

Allow to read from or write to a file. +

+

A file URL can have the form: +

 
file:filename
+
+ +

where filename is the path of the file to read. +

+

An URL that does not have a protocol prefix will be assumed to be a +file URL. Depending on the build, an URL that looks like a Windows +path with the drive letter at the beginning will also be assumed to be +a file URL (usually not the case in builds for unix-like systems). +

+

For example to read from a file ‘input.mpeg’ with ffmpeg +use the command: +

 
ffmpeg -i file:input.mpeg output.mpeg
+
+ +

This protocol accepts the following options: +

+
+
truncate
+

Truncate existing files on write, if set to 1. A value of 0 prevents +truncating. Default value is 1. +

+
+
blocksize
+

Set I/O operation maximum block size, in bytes. Default value is +INT_MAX, which results in not limiting the requested block size. +Setting this value reasonably low improves user termination request reaction +time, which is valuable for files on slow medium. +

+
+ + +

24.7 ftp

+ +

FTP (File Transfer Protocol). +

+

Allow to read from or write to remote resources using FTP protocol. +

+

Following syntax is required. +

 
ftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
+
+ +

This protocol accepts the following options. +

+
+
timeout
+

Set timeout of socket I/O operations used by the underlying low level +operation. By default it is set to -1, which means that the timeout is +not specified. +

+
+
ftp-anonymous-password
+

Password used when login as anonymous user. Typically an e-mail address +should be used. +

+
+
ftp-write-seekable
+

Control seekability of connection during encoding. If set to 1 the +resource is supposed to be seekable, if set to 0 it is assumed not +to be seekable. Default value is 0. +

+
+ +

NOTE: Protocol can be used as output, but it is recommended to not do +it, unless special care is taken (tests, customized server configuration +etc.). Different FTP servers behave in different way during seek +operation. ff* tools may produce incomplete content due to server limitations. +

+ +

24.8 gopher

+ +

Gopher protocol. +

+ +

24.9 hls

+ +

Read Apple HTTP Live Streaming compliant segmented stream as +a uniform one. The M3U8 playlists describing the segments can be +remote HTTP resources or local files, accessed using the standard +file protocol. +The nested protocol is declared by specifying +"+proto" after the hls URI scheme name, where proto +is either "file" or "http". +

+
 
hls+http://host/path/to/remote/resource.m3u8
+hls+file://path/to/local/resource.m3u8
+
+ +

Using this protocol is discouraged - the hls demuxer should work +just as well (if not, please report the issues) and is more complete. +To use the hls demuxer instead, simply use the direct URLs to the +m3u8 files. +

+ +

24.10 http

+ +

HTTP (Hyper Text Transfer Protocol). +

+

This protocol accepts the following options: +

+
+
seekable
+

Control seekability of connection. If set to 1 the resource is +supposed to be seekable, if set to 0 it is assumed not to be seekable, +if set to -1 it will try to autodetect if it is seekable. Default +value is -1. +

+
+
chunked_post
+

If set to 1 use chunked Transfer-Encoding for posts, default is 1. +

+
+
content_type
+

Set a specific content type for the POST messages. +

+
+
headers
+

Set custom HTTP headers, can override built in default headers. The +value must be a string encoding the headers. +

+
+
multiple_requests
+

Use persistent connections if set to 1, default is 0. +

+
+
post_data
+

Set custom HTTP post data. +

+
+
user-agent
+
user_agent
+

Override the User-Agent header. If not specified the protocol will use a +string describing the libavformat build. ("Lavf/<version>") +

+
+
timeout
+

Set timeout of socket I/O operations used by the underlying low level +operation. By default it is set to -1, which means that the timeout is +not specified. +

+
+
mime_type
+

Export the MIME type. +

+
+
icy
+

If set to 1 request ICY (SHOUTcast) metadata from the server. If the server +supports this, the metadata has to be retrieved by the application by reading +the ‘icy_metadata_headers’ and ‘icy_metadata_packet’ options. +The default is 0. +

+
+
icy_metadata_headers
+

If the server supports ICY metadata, this contains the ICY-specific HTTP reply +headers, separated by newline characters. +

+
+
icy_metadata_packet
+

If the server supports ICY metadata, and ‘icy’ was set to 1, this +contains the last non-empty metadata packet sent by the server. It should be +polled in regular intervals by applications interested in mid-stream metadata +updates. +

+
+
cookies
+

Set the cookies to be sent in future requests. The format of each cookie is the +same as the value of a Set-Cookie HTTP response field. Multiple cookies can be +delimited by a newline character. +

+
+
offset
+

Set initial byte offset. +

+
+
end_offset
+

Try to limit the request to bytes preceding this offset. +

+
+ + +

24.10.1 HTTP Cookies

+ +

Some HTTP requests will be denied unless cookie values are passed in with the +request. The ‘cookies’ option allows these cookies to be specified. At +the very least, each cookie must specify a value along with a path and domain. +HTTP requests that match both the domain and path will automatically include the +cookie value in the HTTP Cookie header field. Multiple cookies can be delimited +by a newline. +

+

The required syntax to play a stream specifying a cookie is: +

 
ffplay -cookies "nlqptid=nltid=tsn; path=/; domain=somedomain.com;" http://somedomain.com/somestream.m3u8
+
+ + +

24.11 mmst

+ +

MMS (Microsoft Media Server) protocol over TCP. +

+ +

24.12 mmsh

+ +

MMS (Microsoft Media Server) protocol over HTTP. +

+

The required syntax is: +

 
mmsh://server[:port][/app][/playpath]
+
+ + +

24.13 md5

+ +

MD5 output protocol. +

+

Computes the MD5 hash of the data to be written, and on close writes +this to the designated output or stdout if none is specified. It can +be used to test muxers without writing an actual file. +

+

Some examples follow. +

 
# Write the MD5 hash of the encoded AVI file to the file output.avi.md5.
+ffmpeg -i input.flv -f avi -y md5:output.avi.md5
+
+# Write the MD5 hash of the encoded AVI file to stdout.
+ffmpeg -i input.flv -f avi -y md5:
+
+ +

Note that some formats (typically MOV) require the output protocol to +be seekable, so they will fail with the MD5 output protocol. +

+ +

24.14 pipe

+ +

UNIX pipe access protocol. +

+

Allow to read and write from UNIX pipes. +

+

The accepted syntax is: +

 
pipe:[number]
+
+ +

number is the number corresponding to the file descriptor of the +pipe (e.g. 0 for stdin, 1 for stdout, 2 for stderr). If number +is not specified, by default the stdout file descriptor will be used +for writing, stdin for reading. +

+

For example to read from stdin with ffmpeg: +

 
cat test.wav | ffmpeg -i pipe:0
+# ...this is the same as...
+cat test.wav | ffmpeg -i pipe:
+
+ +

For writing to stdout with ffmpeg: +

 
ffmpeg -i test.wav -f avi pipe:1 | cat > test.avi
+# ...this is the same as...
+ffmpeg -i test.wav -f avi pipe: | cat > test.avi
+
+ +

This protocol accepts the following options: +

+
+
blocksize
+

Set I/O operation maximum block size, in bytes. Default value is +INT_MAX, which results in not limiting the requested block size. +Setting this value reasonably low improves user termination request reaction +time, which is valuable if data transmission is slow. +

+
+ +

Note that some formats (typically MOV), require the output protocol to +be seekable, so they will fail with the pipe output protocol. +

+ +

24.15 rtmp

+ +

Real-Time Messaging Protocol. +

+

The Real-Time Messaging Protocol (RTMP) is used for streaming multimedia +content across a TCP/IP network. +

+

The required syntax is: +

 
rtmp://[username:password@]server[:port][/app][/instance][/playpath]
+
+ +

The accepted parameters are: +

+
username
+

An optional username (mostly for publishing). +

+
+
password
+

An optional password (mostly for publishing). +

+
+
server
+

The address of the RTMP server. +

+
+
port
+

The number of the TCP port to use (by default is 1935). +

+
+
app
+

It is the name of the application to access. It usually corresponds to +the path where the application is installed on the RTMP server +(e.g. ‘/ondemand/’, ‘/flash/live/’, etc.). You can override +the value parsed from the URI through the rtmp_app option, too. +

+
+
playpath
+

It is the path or name of the resource to play with reference to the +application specified in app, may be prefixed by "mp4:". You +can override the value parsed from the URI through the rtmp_playpath +option, too. +

+
+
listen
+

Act as a server, listening for an incoming connection. +

+
+
timeout
+

Maximum time to wait for the incoming connection. Implies listen. +

+
+ +

Additionally, the following parameters can be set via command line options +(or in code via AVOptions): +

+
rtmp_app
+

Name of application to connect on the RTMP server. This option +overrides the parameter specified in the URI. +

+
+
rtmp_buffer
+

Set the client buffer time in milliseconds. The default is 3000. +

+
+
rtmp_conn
+

Extra arbitrary AMF connection parameters, parsed from a string, +e.g. like B:1 S:authMe O:1 NN:code:1.23 NS:flag:ok O:0. +Each value is prefixed by a single character denoting the type, +B for Boolean, N for number, S for string, O for object, or Z for null, +followed by a colon. For Booleans the data must be either 0 or 1 for +FALSE or TRUE, respectively. Likewise for Objects the data must be 0 or +1 to end or begin an object, respectively. Data items in subobjects may +be named, by prefixing the type with ’N’ and specifying the name before +the value (i.e. NB:myFlag:1). This option may be used multiple +times to construct arbitrary AMF sequences. +

+
+
rtmp_flashver
+

Version of the Flash plugin used to run the SWF player. The default +is LNX 9,0,124,2. (When publishing, the default is FMLE/3.0 (compatible; +<libavformat version>).) +

+
+
rtmp_flush_interval
+

Number of packets flushed in the same request (RTMPT only). The default +is 10. +

+
+
rtmp_live
+

Specify that the media is a live stream. No resuming or seeking in +live streams is possible. The default value is any, which means the +subscriber first tries to play the live stream specified in the +playpath. If a live stream of that name is not found, it plays the +recorded stream. The other possible values are live and +recorded. +

+
+
rtmp_pageurl
+

URL of the web page in which the media was embedded. By default no +value will be sent. +

+
+
rtmp_playpath
+

Stream identifier to play or to publish. This option overrides the +parameter specified in the URI. +

+
+
rtmp_subscribe
+

Name of live stream to subscribe to. By default no value will be sent. +It is only sent if the option is specified or if rtmp_live +is set to live. +

+
+
rtmp_swfhash
+

SHA256 hash of the decompressed SWF file (32 bytes). +

+
+
rtmp_swfsize
+

Size of the decompressed SWF file, required for SWFVerification. +

+
+
rtmp_swfurl
+

URL of the SWF player for the media. By default no value will be sent. +

+
+
rtmp_swfverify
+

URL to player swf file, compute hash/size automatically. +

+
+
rtmp_tcurl
+

URL of the target stream. Defaults to proto://host[:port]/app. +

+
+
+ +

For example to read with ffplay a multimedia resource named +"sample" from the application "vod" from an RTMP server "myserver": +

 
ffplay rtmp://myserver/vod/sample
+
+ +

To publish to a password protected server, passing the playpath and +app names separately: +

 
ffmpeg -re -i <input> -f flv -rtmp_playpath some/long/path -rtmp_app long/app/name rtmp://username:password@myserver/
+
+ + +

24.16 rtmpe

+ +

Encrypted Real-Time Messaging Protocol. +

+

The Encrypted Real-Time Messaging Protocol (RTMPE) is used for +streaming multimedia content within standard cryptographic primitives, +consisting of Diffie-Hellman key exchange and HMACSHA256, generating +a pair of RC4 keys. +

+ +

24.17 rtmps

+ +

Real-Time Messaging Protocol over a secure SSL connection. +

+

The Real-Time Messaging Protocol (RTMPS) is used for streaming +multimedia content across an encrypted connection. +

+ +

24.18 rtmpt

+ +

Real-Time Messaging Protocol tunneled through HTTP. +

+

The Real-Time Messaging Protocol tunneled through HTTP (RTMPT) is used +for streaming multimedia content within HTTP requests to traverse +firewalls. +

+ +

24.19 rtmpte

+ +

Encrypted Real-Time Messaging Protocol tunneled through HTTP. +

+

The Encrypted Real-Time Messaging Protocol tunneled through HTTP (RTMPTE) +is used for streaming multimedia content within HTTP requests to traverse +firewalls. +

+ +

24.20 rtmpts

+ +

Real-Time Messaging Protocol tunneled through HTTPS. +

+

The Real-Time Messaging Protocol tunneled through HTTPS (RTMPTS) is used +for streaming multimedia content within HTTPS requests to traverse +firewalls. +

+ +

24.21 libssh

+ +

Secure File Transfer Protocol via libssh +

+

Allow to read from or write to remote resources using SFTP protocol. +

+

Following syntax is required. +

+
 
sftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
+
+ +

This protocol accepts the following options. +

+
+
timeout
+

Set timeout of socket I/O operations used by the underlying low level +operation. By default it is set to -1, which means that the timeout +is not specified. +

+
+
truncate
+

Truncate existing files on write, if set to 1. A value of 0 prevents +truncating. Default value is 1. +

+
+
private_key
+

Specify the path of the file containing private key to use during authorization. +By default libssh searches for keys in the ‘~/.ssh/’ directory. +

+
+
+ +

Example: Play a file stored on remote server. +

+
 
ffplay sftp://user:password@server_address:22/home/user/resource.mpeg
+
+ + +

24.22 librtmp rtmp, rtmpe, rtmps, rtmpt, rtmpte

+ +

Real-Time Messaging Protocol and its variants supported through +librtmp. +

+

Requires the presence of the librtmp headers and library during +configuration. You need to explicitly configure the build with +"–enable-librtmp". If enabled this will replace the native RTMP +protocol. +

+

This protocol provides most client functions and a few server +functions needed to support RTMP, RTMP tunneled in HTTP (RTMPT), +encrypted RTMP (RTMPE), RTMP over SSL/TLS (RTMPS) and tunneled +variants of these encrypted types (RTMPTE, RTMPTS). +

+

The required syntax is: +

 
rtmp_proto://server[:port][/app][/playpath] options
+
+ +

where rtmp_proto is one of the strings "rtmp", "rtmpt", "rtmpe", +"rtmps", "rtmpte", "rtmpts" corresponding to each RTMP variant, and +server, port, app and playpath have the same +meaning as specified for the RTMP native protocol. +options contains a list of space-separated options of the form +key=val. +

+

See the librtmp manual page (man 3 librtmp) for more information. +

+

For example, to stream a file in real-time to an RTMP server using +ffmpeg: +

 
ffmpeg -re -i myfile -f flv rtmp://myserver/live/mystream
+
+ +

To play the same stream using ffplay: +

 
ffplay "rtmp://myserver/live/mystream live=1"
+
+ + +

24.23 rtp

+ +

Real-time Transport Protocol. +

+

The required syntax for an RTP URL is: +rtp://hostname[:port][?option=val...] +

+

port specifies the RTP port to use. +

+

The following URL options are supported: +

+
+
ttl=n
+

Set the TTL (Time-To-Live) value (for multicast only). +

+
+
rtcpport=n
+

Set the remote RTCP port to n. +

+
+
localrtpport=n
+

Set the local RTP port to n. +

+
+
localrtcpport=n'
+

Set the local RTCP port to n. +

+
+
pkt_size=n
+

Set max packet size (in bytes) to n. +

+
+
connect=0|1
+

Do a connect() on the UDP socket (if set to 1) or not (if set +to 0). +

+
+
sources=ip[,ip]
+

List allowed source IP addresses. +

+
+
block=ip[,ip]
+

List disallowed (blocked) source IP addresses. +

+
+
write_to_source=0|1
+

Send packets to the source address of the latest received packet (if +set to 1) or to a default remote address (if set to 0). +

+
+
localport=n
+

Set the local RTP port to n. +

+

This is a deprecated option. Instead, ‘localrtpport’ should be +used. +

+
+
+ +

Important notes: +

+
    +
  1. +If ‘rtcpport’ is not set the RTCP port will be set to the RTP +port value plus 1. + +
  2. +If ‘localrtpport’ (the local RTP port) is not set any available +port will be used for the local RTP and RTCP ports. + +
  3. +If ‘localrtcpport’ (the local RTCP port) is not set it will be +set to the the local RTP port value plus 1. +
+ + +

24.24 rtsp

+ +

Real-Time Streaming Protocol. +

+

RTSP is not technically a protocol handler in libavformat, it is a demuxer +and muxer. The demuxer supports both normal RTSP (with data transferred +over RTP; this is used by e.g. Apple and Microsoft) and Real-RTSP (with +data transferred over RDT). +

+

The muxer can be used to send a stream using RTSP ANNOUNCE to a server +supporting it (currently Darwin Streaming Server and Mischa Spiegelmock’s +RTSP server). +

+

The required syntax for a RTSP url is: +

 
rtsp://hostname[:port]/path
+
+ +

Options can be set on the ffmpeg/ffplay command +line, or set in code via AVOptions or in +avformat_open_input. +

+

The following options are supported. +

+
+
initial_pause
+

Do not start playing the stream immediately if set to 1. Default value +is 0. +

+
+
rtsp_transport
+

Set RTSP trasport protocols. +

+

It accepts the following values: +

+
udp
+

Use UDP as lower transport protocol. +

+
+
tcp
+

Use TCP (interleaving within the RTSP control channel) as lower +transport protocol. +

+
+
udp_multicast
+

Use UDP multicast as lower transport protocol. +

+
+
http
+

Use HTTP tunneling as lower transport protocol, which is useful for +passing proxies. +

+
+ +

Multiple lower transport protocols may be specified, in that case they are +tried one at a time (if the setup of one fails, the next one is tried). +For the muxer, only the ‘tcp’ and ‘udp’ options are supported. +

+
+
rtsp_flags
+

Set RTSP flags. +

+

The following values are accepted: +

+
filter_src
+

Accept packets only from negotiated peer address and port. +

+
listen
+

Act as a server, listening for an incoming connection. +

+
prefer_tcp
+

Try TCP for RTP transport first, if TCP is available as RTSP RTP transport. +

+
+ +

Default value is ‘none’. +

+
+
allowed_media_types
+

Set media types to accept from the server. +

+

The following flags are accepted: +

+
video
+
audio
+
data
+
+ +

By default it accepts all media types. +

+
+
min_port
+

Set minimum local UDP port. Default value is 5000. +

+
+
max_port
+

Set maximum local UDP port. Default value is 65000. +

+
+
timeout
+

Set maximum timeout (in seconds) to wait for incoming connections. +

+

A value of -1 mean infinite (default). This option implies the +‘rtsp_flags’ set to ‘listen’. +

+
+
reorder_queue_size
+

Set number of packets to buffer for handling of reordered packets. +

+
+
stimeout
+

Set socket TCP I/O timeout in micro seconds. +

+
+
user-agent
+

Override User-Agent header. If not specified, it default to the +libavformat identifier string. +

+
+ +

When receiving data over UDP, the demuxer tries to reorder received packets +(since they may arrive out of order, or packets may get lost totally). This +can be disabled by setting the maximum demuxing delay to zero (via +the max_delay field of AVFormatContext). +

+

When watching multi-bitrate Real-RTSP streams with ffplay, the +streams to display can be chosen with -vst n and +-ast n for video and audio respectively, and can be switched +on the fly by pressing v and a. +

+ +

24.24.1 Examples

+ +

The following examples all make use of the ffplay and +ffmpeg tools. +

+
    +
  • +Watch a stream over UDP, with a max reordering delay of 0.5 seconds: +
     
    ffplay -max_delay 500000 -rtsp_transport udp rtsp://server/video.mp4
    +
    + +
  • +Watch a stream tunneled over HTTP: +
     
    ffplay -rtsp_transport http rtsp://server/video.mp4
    +
    + +
  • +Send a stream in realtime to a RTSP server, for others to watch: +
     
    ffmpeg -re -i input -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
    +
    + +
  • +Receive a stream in realtime: +
     
    ffmpeg -rtsp_flags listen -i rtsp://ownaddress/live.sdp output
    +
    +
+ + +

24.25 sap

+ +

Session Announcement Protocol (RFC 2974). This is not technically a +protocol handler in libavformat, it is a muxer and demuxer. +It is used for signalling of RTP streams, by announcing the SDP for the +streams regularly on a separate port. +

+ +

24.25.1 Muxer

+ +

The syntax for a SAP url given to the muxer is: +

 
sap://destination[:port][?options]
+
+ +

The RTP packets are sent to destination on port port, +or to port 5004 if no port is specified. +options is a &-separated list. The following options +are supported: +

+
+
announce_addr=address
+

Specify the destination IP address for sending the announcements to. +If omitted, the announcements are sent to the commonly used SAP +announcement multicast address 224.2.127.254 (sap.mcast.net), or +ff0e::2:7ffe if destination is an IPv6 address. +

+
+
announce_port=port
+

Specify the port to send the announcements on, defaults to +9875 if not specified. +

+
+
ttl=ttl
+

Specify the time to live value for the announcements and RTP packets, +defaults to 255. +

+
+
same_port=0|1
+

If set to 1, send all RTP streams on the same port pair. If zero (the +default), all streams are sent on unique ports, with each stream on a +port 2 numbers higher than the previous. +VLC/Live555 requires this to be set to 1, to be able to receive the stream. +The RTP stack in libavformat for receiving requires all streams to be sent +on unique ports. +

+
+ +

Example command lines follow. +

+

To broadcast a stream on the local subnet, for watching in VLC: +

+
 
ffmpeg -re -i input -f sap sap://224.0.0.255?same_port=1
+
+ +

Similarly, for watching in ffplay: +

+
 
ffmpeg -re -i input -f sap sap://224.0.0.255
+
+ +

And for watching in ffplay, over IPv6: +

+
 
ffmpeg -re -i input -f sap sap://[ff0e::1:2:3:4]
+
+ + +

24.25.2 Demuxer

+ +

The syntax for a SAP url given to the demuxer is: +

 
sap://[address][:port]
+
+ +

address is the multicast address to listen for announcements on, +if omitted, the default 224.2.127.254 (sap.mcast.net) is used. port +is the port that is listened on, 9875 if omitted. +

+

The demuxers listens for announcements on the given address and port. +Once an announcement is received, it tries to receive that particular stream. +

+

Example command lines follow. +

+

To play back the first stream announced on the normal SAP multicast address: +

+
 
ffplay sap://
+
+ +

To play back the first stream announced on one the default IPv6 SAP multicast address: +

+
 
ffplay sap://[ff0e::2:7ffe]
+
+ + +

24.26 sctp

+ +

Stream Control Transmission Protocol. +

+

The accepted URL syntax is: +

 
sctp://host:port[?options]
+
+ +

The protocol accepts the following options: +

+
listen
+

If set to any value, listen for an incoming connection. Outgoing connection is done by default. +

+
+
max_streams
+

Set the maximum number of streams. By default no limit is set. +

+
+ + +

24.27 srtp

+ +

Secure Real-time Transport Protocol. +

+

The accepted options are: +

+
srtp_in_suite
+
srtp_out_suite
+

Select input and output encoding suites. +

+

Supported values: +

+
AES_CM_128_HMAC_SHA1_80
+
SRTP_AES128_CM_HMAC_SHA1_80
+
AES_CM_128_HMAC_SHA1_32
+
SRTP_AES128_CM_HMAC_SHA1_32
+
+ +
+
srtp_in_params
+
srtp_out_params
+

Set input and output encoding parameters, which are expressed by a +base64-encoded representation of a binary block. The first 16 bytes of +this binary block are used as master key, the following 14 bytes are +used as master salt. +

+
+ + +

24.28 subfile

+ +

Virtually extract a segment of a file or another stream. +The underlying stream must be seekable. +

+

Accepted options: +

+
start
+

Start offset of the extracted segment, in bytes. +

+
end
+

End offset of the extracted segment, in bytes. +

+
+ +

Examples: +

+

Extract a chapter from a DVD VOB file (start and end sectors obtained +externally and multiplied by 2048): +

 
subfile,,start,153391104,end,268142592,,:/media/dvd/VIDEO_TS/VTS_08_1.VOB
+
+ +

Play an AVI file directly from a TAR archive: +subfile,,start,183241728,end,366490624,,:archive.tar +

+ +

24.29 tcp

+ +

Transmission Control Protocol. +

+

The required syntax for a TCP url is: +

 
tcp://hostname:port[?options]
+
+ +

options contains a list of &-separated options of the form +key=val. +

+

The list of supported options follows. +

+
+
listen=1|0
+

Listen for an incoming connection. Default value is 0. +

+
+
timeout=microseconds
+

Set raise error timeout, expressed in microseconds. +

+

This option is only relevant in read mode: if no data arrived in more +than this time interval, raise error. +

+
+
listen_timeout=microseconds
+

Set listen timeout, expressed in microseconds. +

+
+ +

The following example shows how to setup a listening TCP connection +with ffmpeg, which is then accessed with ffplay: +

 
ffmpeg -i input -f format tcp://hostname:port?listen
+ffplay tcp://hostname:port
+
+ + +

24.30 tls

+ +

Transport Layer Security (TLS) / Secure Sockets Layer (SSL) +

+

The required syntax for a TLS/SSL url is: +

 
tls://hostname:port[?options]
+
+ +

The following parameters can be set via command line options +(or in code via AVOptions): +

+
+
ca_file, cafile=filename
+

A file containing certificate authority (CA) root certificates to treat +as trusted. If the linked TLS library contains a default this might not +need to be specified for verification to work, but not all libraries and +setups have defaults built in. +The file must be in OpenSSL PEM format. +

+
+
tls_verify=1|0
+

If enabled, try to verify the peer that we are communicating with. +Note, if using OpenSSL, this currently only makes sure that the +peer certificate is signed by one of the root certificates in the CA +database, but it does not validate that the certificate actually +matches the host name we are trying to connect to. (With GnuTLS, +the host name is validated as well.) +

+

This is disabled by default since it requires a CA database to be +provided by the caller in many cases. +

+
+
cert_file, cert=filename
+

A file containing a certificate to use in the handshake with the peer. +(When operating as server, in listen mode, this is more often required +by the peer, while client certificates only are mandated in certain +setups.) +

+
+
key_file, key=filename
+

A file containing the private key for the certificate. +

+
+
listen=1|0
+

If enabled, listen for connections on the provided port, and assume +the server role in the handshake instead of the client role. +

+
+
+ +

Example command lines: +

+

To create a TLS/SSL server that serves an input stream. +

+
 
ffmpeg -i input -f format tls://hostname:port?listen&cert=server.crt&key=server.key
+
+ +

To play back a stream from the TLS/SSL server using ffplay: +

+
 
ffplay tls://hostname:port
+
+ + +

24.31 udp

+ +

User Datagram Protocol. +

+

The required syntax for an UDP URL is: +

 
udp://hostname:port[?options]
+
+ +

options contains a list of &-separated options of the form key=val. +

+

In case threading is enabled on the system, a circular buffer is used +to store the incoming data, which allows one to reduce loss of data due to +UDP socket buffer overruns. The fifo_size and +overrun_nonfatal options are related to this buffer. +

+

The list of supported options follows. +

+
+
buffer_size=size
+

Set the UDP maximum socket buffer size in bytes. This is used to set either +the receive or send buffer size, depending on what the socket is used for. +Default is 64KB. See also fifo_size. +

+
+
localport=port
+

Override the local UDP port to bind with. +

+
+
localaddr=addr
+

Choose the local IP address. This is useful e.g. if sending multicast +and the host has multiple interfaces, where the user can choose +which interface to send on by specifying the IP address of that interface. +

+
+
pkt_size=size
+

Set the size in bytes of UDP packets. +

+
+
reuse=1|0
+

Explicitly allow or disallow reusing UDP sockets. +

+
+
ttl=ttl
+

Set the time to live value (for multicast only). +

+
+
connect=1|0
+

Initialize the UDP socket with connect(). In this case, the +destination address can’t be changed with ff_udp_set_remote_url later. +If the destination address isn’t known at the start, this option can +be specified in ff_udp_set_remote_url, too. +This allows finding out the source address for the packets with getsockname, +and makes writes return with AVERROR(ECONNREFUSED) if "destination +unreachable" is received. +For receiving, this gives the benefit of only receiving packets from +the specified peer address/port. +

+
+
sources=address[,address]
+

Only receive packets sent to the multicast group from one of the +specified sender IP addresses. +

+
+
block=address[,address]
+

Ignore packets sent to the multicast group from the specified +sender IP addresses. +

+
+
fifo_size=units
+

Set the UDP receiving circular buffer size, expressed as a number of +packets with size of 188 bytes. If not specified defaults to 7*4096. +

+
+
overrun_nonfatal=1|0
+

Survive in case of UDP receiving circular buffer overrun. Default +value is 0. +

+
+
timeout=microseconds
+

Set raise error timeout, expressed in microseconds. +

+

This option is only relevant in read mode: if no data arrived in more +than this time interval, raise error. +

+
+ + +

24.31.1 Examples

+ +
    +
  • +Use ffmpeg to stream over UDP to a remote endpoint: +
     
    ffmpeg -i input -f format udp://hostname:port
    +
    + +
  • +Use ffmpeg to stream in mpegts format over UDP using 188 +sized UDP packets, using a large input buffer: +
     
    ffmpeg -i input -f mpegts udp://hostname:port?pkt_size=188&buffer_size=65535
    +
    + +
  • +Use ffmpeg to receive over UDP from a remote endpoint: +
     
    ffmpeg -i udp://[multicast-address]:port ...
    +
    +
+ + +

24.32 unix

+ +

Unix local socket +

+

The required syntax for a Unix socket URL is: +

+
 
unix://filepath
+
+ +

The following parameters can be set via command line options +(or in code via AVOptions): +

+
+
timeout
+

Timeout in ms. +

+
listen
+

Create the Unix socket in listening mode. +

+
+ + +

25. Device Options

+ +

The libavdevice library provides the same interface as +libavformat. Namely, an input device is considered like a demuxer, and +an output device like a muxer, and the interface and generic device +options are the same provided by libavformat (see the ffmpeg-formats +manual). +

+

In addition each input or output device may support so-called private +options, which are specific for that component. +

+

Options may be set by specifying -option value in the +FFmpeg tools, or by setting the value explicitly in the device +AVFormatContext options or using the ‘libavutil/opt.h’ API +for programmatic use. +

+ + +

26. Input Devices

+ +

Input devices are configured elements in FFmpeg which allow to access +the data coming from a multimedia device attached to your system. +

+

When you configure your FFmpeg build, all the supported input devices +are enabled by default. You can list all available ones using the +configure option "–list-indevs". +

+

You can disable all the input devices using the configure option +"–disable-indevs", and selectively enable an input device using the +option "–enable-indev=INDEV", or you can disable a particular +input device using the option "–disable-indev=INDEV". +

+

The option "-formats" of the ff* tools will display the list of +supported input devices (amongst the demuxers). +

+

A description of the currently available input devices follows. +

+ +

26.1 alsa

+ +

ALSA (Advanced Linux Sound Architecture) input device. +

+

To enable this input device during configuration you need libasound +installed on your system. +

+

This device allows capturing from an ALSA device. The name of the +device to capture has to be an ALSA card identifier. +

+

An ALSA identifier has the syntax: +

 
hw:CARD[,DEV[,SUBDEV]]
+
+ +

where the DEV and SUBDEV components are optional. +

+

The three arguments (in order: CARD,DEV,SUBDEV) +specify card number or identifier, device number and subdevice number +(-1 means any). +

+

To see the list of cards currently recognized by your system check the +files ‘/proc/asound/cards’ and ‘/proc/asound/devices’. +

+

For example to capture with ffmpeg from an ALSA device with +card id 0, you may run the command: +

 
ffmpeg -f alsa -i hw:0 alsaout.wav
+
+ +

For more information see: +http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html +

+ +

26.2 avfoundation

+ +

AVFoundation input device. +

+

AVFoundation is the currently recommended framework by Apple for streamgrabbing on OSX >= 10.7 as well as on iOS. +The older QTKit framework has been marked deprecated since OSX version 10.7. +

+

The filename passed as input is parsed to contain either a device name or index. +The device index can also be given by using -video_device_index. +A given device index will override any given device name. +If the desired device consists of numbers only, use -video_device_index to identify it. +The default device will be chosen if an empty string or the device name "default" is given. +The available devices can be enumerated by using -list_devices. +

+
 
ffmpeg -f avfoundation -i "0" out.mpg
+
+ +
 
ffmpeg -f avfoundation -video_device_index 0 -i "" out.mpg
+
+ +
 
ffmpeg -f avfoundation -i "default" out.mpg
+
+ +
 
ffmpeg -f avfoundation -list_devices true -i ""
+
+ + +

26.3 bktr

+ +

BSD video input device. +

+ +

26.4 dshow

+ +

Windows DirectShow input device. +

+

DirectShow support is enabled when FFmpeg is built with the mingw-w64 project. +Currently only audio and video devices are supported. +

+

Multiple devices may be opened as separate inputs, but they may also be +opened on the same input, which should improve synchronism between them. +

+

The input name should be in the format: +

+
 
TYPE=NAME[:TYPE=NAME]
+
+ +

where TYPE can be either audio or video, +and NAME is the device’s name. +

+ +

26.4.1 Options

+ +

If no options are specified, the device’s defaults are used. +If the device does not support the requested options, it will +fail to open. +

+
+
video_size
+

Set the video size in the captured video. +

+
+
framerate
+

Set the frame rate in the captured video. +

+
+
sample_rate
+

Set the sample rate (in Hz) of the captured audio. +

+
+
sample_size
+

Set the sample size (in bits) of the captured audio. +

+
+
channels
+

Set the number of channels in the captured audio. +

+
+
list_devices
+

If set to ‘true’, print a list of devices and exit. +

+
+
list_options
+

If set to ‘true’, print a list of selected device’s options +and exit. +

+
+
video_device_number
+

Set video device number for devices with same name (starts at 0, +defaults to 0). +

+
+
audio_device_number
+

Set audio device number for devices with same name (starts at 0, +defaults to 0). +

+
+
pixel_format
+

Select pixel format to be used by DirectShow. This may only be set when +the video codec is not set or set to rawvideo. +

+
+
audio_buffer_size
+

Set audio device buffer size in milliseconds (which can directly +impact latency, depending on the device). +Defaults to using the audio device’s +default buffer size (typically some multiple of 500ms). +Setting this value too low can degrade performance. +See also +http://msdn.microsoft.com/en-us/library/windows/desktop/dd377582(v=vs.85).aspx +

+
+
+ + +

26.4.2 Examples

+ +
    +
  • +Print the list of DirectShow supported devices and exit: +
     
    $ ffmpeg -list_devices true -f dshow -i dummy
    +
    + +
  • +Open video device Camera: +
     
    $ ffmpeg -f dshow -i video="Camera"
    +
    + +
  • +Open second video device with name Camera: +
     
    $ ffmpeg -f dshow -video_device_number 1 -i video="Camera"
    +
    + +
  • +Open video device Camera and audio device Microphone: +
     
    $ ffmpeg -f dshow -i video="Camera":audio="Microphone"
    +
    + +
  • +Print the list of supported options in selected device and exit: +
     
    $ ffmpeg -list_options true -f dshow -i video="Camera"
    +
    + +
+ + +

26.5 dv1394

+ +

Linux DV 1394 input device. +

+ +

26.6 fbdev

+ +

Linux framebuffer input device. +

+

The Linux framebuffer is a graphic hardware-independent abstraction +layer to show graphics on a computer monitor, typically on the +console. It is accessed through a file device node, usually +‘/dev/fb0’. +

+

For more detailed information read the file +Documentation/fb/framebuffer.txt included in the Linux source tree. +

+

To record from the framebuffer device ‘/dev/fb0’ with +ffmpeg: +

 
ffmpeg -f fbdev -r 10 -i /dev/fb0 out.avi
+
+ +

You can take a single screenshot image with the command: +

 
ffmpeg -f fbdev -frames:v 1 -r 1 -i /dev/fb0 screenshot.jpeg
+
+ +

See also http://linux-fbdev.sourceforge.net/, and fbset(1). +

+ +

26.7 gdigrab

+ +

Win32 GDI-based screen capture device. +

+

This device allows you to capture a region of the display on Windows. +

+

There are two options for the input filename: +

 
desktop
+
+

or +

 
title=window_title
+
+ +

The first option will capture the entire desktop, or a fixed region of the +desktop. The second option will instead capture the contents of a single +window, regardless of its position on the screen. +

+

For example, to grab the entire desktop using ffmpeg: +

 
ffmpeg -f gdigrab -framerate 6 -i desktop out.mpg
+
+ +

Grab a 640x480 region at position 10,20: +

 
ffmpeg -f gdigrab -framerate 6 -offset_x 10 -offset_y 20 -video_size vga -i desktop out.mpg
+
+ +

Grab the contents of the window named "Calculator" +

 
ffmpeg -f gdigrab -framerate 6 -i title=Calculator out.mpg
+
+ + +

26.7.1 Options

+ +
+
draw_mouse
+

Specify whether to draw the mouse pointer. Use the value 0 to +not draw the pointer. Default value is 1. +

+
+
framerate
+

Set the grabbing frame rate. Default value is ntsc, +corresponding to a frame rate of 30000/1001. +

+
+
show_region
+

Show grabbed region on screen. +

+

If show_region is specified with 1, then the grabbing +region will be indicated on screen. With this option, it is easy to +know what is being grabbed if only a portion of the screen is grabbed. +

+

Note that show_region is incompatible with grabbing the contents +of a single window. +

+

For example: +

 
ffmpeg -f gdigrab -show_region 1 -framerate 6 -video_size cif -offset_x 10 -offset_y 20 -i desktop out.mpg
+
+ +
+
video_size
+

Set the video frame size. The default is to capture the full screen if ‘desktop’ is selected, or the full window size if ‘title=window_title’ is selected. +

+
+
offset_x
+

When capturing a region with video_size, set the distance from the left edge of the screen or desktop. +

+

Note that the offset calculation is from the top left corner of the primary monitor on Windows. If you have a monitor positioned to the left of your primary monitor, you will need to use a negative offset_x value to move the region to that monitor. +

+
+
offset_y
+

When capturing a region with video_size, set the distance from the top edge of the screen or desktop. +

+

Note that the offset calculation is from the top left corner of the primary monitor on Windows. If you have a monitor positioned above your primary monitor, you will need to use a negative offset_y value to move the region to that monitor. +

+
+
+ + +

26.8 iec61883

+ +

FireWire DV/HDV input device using libiec61883. +

+

To enable this input device, you need libiec61883, libraw1394 and +libavc1394 installed on your system. Use the configure option +--enable-libiec61883 to compile with the device enabled. +

+

The iec61883 capture device supports capturing from a video device +connected via IEEE1394 (FireWire), using libiec61883 and the new Linux +FireWire stack (juju). This is the default DV/HDV input method in Linux +Kernel 2.6.37 and later, since the old FireWire stack was removed. +

+

Specify the FireWire port to be used as input file, or "auto" +to choose the first port connected. +

+ +

26.8.1 Options

+ +
+
dvtype
+

Override autodetection of DV/HDV. This should only be used if auto +detection does not work, or if usage of a different device type +should be prohibited. Treating a DV device as HDV (or vice versa) will +not work and result in undefined behavior. +The values ‘auto’, ‘dv’ and ‘hdv’ are supported. +

+
+
dvbuffer
+

Set maxiumum size of buffer for incoming data, in frames. For DV, this +is an exact value. For HDV, it is not frame exact, since HDV does +not have a fixed frame size. +

+
+
dvguid
+

Select the capture device by specifying it’s GUID. Capturing will only +be performed from the specified device and fails if no device with the +given GUID is found. This is useful to select the input if multiple +devices are connected at the same time. +Look at /sys/bus/firewire/devices to find out the GUIDs. +

+
+
+ + +

26.8.2 Examples

+ +
    +
  • +Grab and show the input of a FireWire DV/HDV device. +
     
    ffplay -f iec61883 -i auto
    +
    + +
  • +Grab and record the input of a FireWire DV/HDV device, +using a packet buffer of 100000 packets if the source is HDV. +
     
    ffmpeg -f iec61883 -i auto -hdvbuffer 100000 out.mpg
    +
    + +
+ + +

26.9 jack

+ +

JACK input device. +

+

To enable this input device during configuration you need libjack +installed on your system. +

+

A JACK input device creates one or more JACK writable clients, one for +each audio channel, with name client_name:input_N, where +client_name is the name provided by the application, and N +is a number which identifies the channel. +Each writable client will send the acquired data to the FFmpeg input +device. +

+

Once you have created one or more JACK readable clients, you need to +connect them to one or more JACK writable clients. +

+

To connect or disconnect JACK clients you can use the jack_connect +and jack_disconnect programs, or do it through a graphical interface, +for example with qjackctl. +

+

To list the JACK clients and their properties you can invoke the command +jack_lsp. +

+

Follows an example which shows how to capture a JACK readable client +with ffmpeg. +

 
# Create a JACK writable client with name "ffmpeg".
+$ ffmpeg -f jack -i ffmpeg -y out.wav
+
+# Start the sample jack_metro readable client.
+$ jack_metro -b 120 -d 0.2 -f 4000
+
+# List the current JACK clients.
+$ jack_lsp -c
+system:capture_1
+system:capture_2
+system:playback_1
+system:playback_2
+ffmpeg:input_1
+metro:120_bpm
+
+# Connect metro to the ffmpeg writable client.
+$ jack_connect metro:120_bpm ffmpeg:input_1
+
+ +

For more information read: +http://jackaudio.org/ +

+ +

26.10 lavfi

+ +

Libavfilter input virtual device. +

+

This input device reads data from the open output pads of a libavfilter +filtergraph. +

+

For each filtergraph open output, the input device will create a +corresponding stream which is mapped to the generated output. Currently +only video data is supported. The filtergraph is specified through the +option ‘graph’. +

+ +

26.10.1 Options

+ +
+
graph
+

Specify the filtergraph to use as input. Each video open output must be +labelled by a unique string of the form "outN", where N is a +number starting from 0 corresponding to the mapped input stream +generated by the device. +The first unlabelled output is automatically assigned to the "out0" +label, but all the others need to be specified explicitly. +

+

If not specified defaults to the filename specified for the input +device. +

+
+
graph_file
+

Set the filename of the filtergraph to be read and sent to the other +filters. Syntax of the filtergraph is the same as the one specified by +the option graph. +

+
+
+ + +

26.10.2 Examples

+ +
    +
  • +Create a color video stream and play it back with ffplay: +
     
    ffplay -f lavfi -graph "color=c=pink [out0]" dummy
    +
    + +
  • +As the previous example, but use filename for specifying the graph +description, and omit the "out0" label: +
     
    ffplay -f lavfi color=c=pink
    +
    + +
  • +Create three different video test filtered sources and play them: +
     
    ffplay -f lavfi -graph "testsrc [out0]; testsrc,hflip [out1]; testsrc,negate [out2]" test3
    +
    + +
  • +Read an audio stream from a file using the amovie source and play it +back with ffplay: +
     
    ffplay -f lavfi "amovie=test.wav"
    +
    + +
  • +Read an audio stream and a video stream and play it back with +ffplay: +
     
    ffplay -f lavfi "movie=test.avi[out0];amovie=test.wav[out1]"
    +
    + +
+ + +

26.11 libdc1394

+ +

IIDC1394 input device, based on libdc1394 and libraw1394. +

+ +

26.12 openal

+ +

The OpenAL input device provides audio capture on all systems with a +working OpenAL 1.1 implementation. +

+

To enable this input device during configuration, you need OpenAL +headers and libraries installed on your system, and need to configure +FFmpeg with --enable-openal. +

+

OpenAL headers and libraries should be provided as part of your OpenAL +implementation, or as an additional download (an SDK). Depending on your +installation you may need to specify additional flags via the +--extra-cflags and --extra-ldflags for allowing the build +system to locate the OpenAL headers and libraries. +

+

An incomplete list of OpenAL implementations follows: +

+
+
Creative
+

The official Windows implementation, providing hardware acceleration +with supported devices and software fallback. +See http://openal.org/. +

+
OpenAL Soft
+

Portable, open source (LGPL) software implementation. Includes +backends for the most common sound APIs on the Windows, Linux, +Solaris, and BSD operating systems. +See http://kcat.strangesoft.net/openal.html. +

+
Apple
+

OpenAL is part of Core Audio, the official Mac OS X Audio interface. +See http://developer.apple.com/technologies/mac/audio-and-video.html +

+
+ +

This device allows one to capture from an audio input device handled +through OpenAL. +

+

You need to specify the name of the device to capture in the provided +filename. If the empty string is provided, the device will +automatically select the default device. You can get the list of the +supported devices by using the option list_devices. +

+ +

26.12.1 Options

+ +
+
channels
+

Set the number of channels in the captured audio. Only the values +‘1’ (monaural) and ‘2’ (stereo) are currently supported. +Defaults to ‘2’. +

+
+
sample_size
+

Set the sample size (in bits) of the captured audio. Only the values +‘8’ and ‘16’ are currently supported. Defaults to +‘16’. +

+
+
sample_rate
+

Set the sample rate (in Hz) of the captured audio. +Defaults to ‘44.1k’. +

+
+
list_devices
+

If set to ‘true’, print a list of devices and exit. +Defaults to ‘false’. +

+
+
+ + +

26.12.2 Examples

+ +

Print the list of OpenAL supported devices and exit: +

 
$ ffmpeg -list_devices true -f openal -i dummy out.ogg
+
+ +

Capture from the OpenAL device ‘DR-BT101 via PulseAudio’: +

 
$ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out.ogg
+
+ +

Capture from the default device (note the empty string ” as filename): +

 
$ ffmpeg -f openal -i '' out.ogg
+
+ +

Capture from two devices simultaneously, writing to two different files, +within the same ffmpeg command: +

 
$ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out1.ogg -f openal -i 'ALSA Default' out2.ogg
+
+

Note: not all OpenAL implementations support multiple simultaneous capture - +try the latest OpenAL Soft if the above does not work. +

+ +

26.13 oss

+ +

Open Sound System input device. +

+

The filename to provide to the input device is the device node +representing the OSS input device, and is usually set to +‘/dev/dsp’. +

+

For example to grab from ‘/dev/dsp’ using ffmpeg use the +command: +

 
ffmpeg -f oss -i /dev/dsp /tmp/oss.wav
+
+ +

For more information about OSS see: +http://manuals.opensound.com/usersguide/dsp.html +

+ +

26.14 pulse

+ +

PulseAudio input device. +

+

To enable this output device you need to configure FFmpeg with --enable-libpulse. +

+

The filename to provide to the input device is a source device or the +string "default" +

+

To list the PulseAudio source devices and their properties you can invoke +the command pactl list sources. +

+

More information about PulseAudio can be found on http://www.pulseaudio.org. +

+ +

26.14.1 Options

+
+
server
+

Connect to a specific PulseAudio server, specified by an IP address. +Default server is used when not provided. +

+
+
name
+

Specify the application name PulseAudio will use when showing active clients, +by default it is the LIBAVFORMAT_IDENT string. +

+
+
stream_name
+

Specify the stream name PulseAudio will use when showing active streams, +by default it is "record". +

+
+
sample_rate
+

Specify the samplerate in Hz, by default 48kHz is used. +

+
+
channels
+

Specify the channels in use, by default 2 (stereo) is set. +

+
+
frame_size
+

Specify the number of bytes per frame, by default it is set to 1024. +

+
+
fragment_size
+

Specify the minimal buffering fragment in PulseAudio, it will affect the +audio latency. By default it is unset. +

+
+ + +

26.14.2 Examples

+

Record a stream from default device: +

 
ffmpeg -f pulse -i default /tmp/pulse.wav
+
+ + +

26.15 qtkit

+ +

QTKit input device. +

+

The filename passed as input is parsed to contain either a device name or index. +The device index can also be given by using -video_device_index. +A given device index will override any given device name. +If the desired device consists of numbers only, use -video_device_index to identify it. +The default device will be chosen if an empty string or the device name "default" is given. +The available devices can be enumerated by using -list_devices. +

+
 
ffmpeg -f qtkit -i "0" out.mpg
+
+ +
 
ffmpeg -f qtkit -video_device_index 0 -i "" out.mpg
+
+ +
 
ffmpeg -f qtkit -i "default" out.mpg
+
+ +
 
ffmpeg -f qtkit -list_devices true -i ""
+
+ + +

26.16 sndio

+ +

sndio input device. +

+

To enable this input device during configuration you need libsndio +installed on your system. +

+

The filename to provide to the input device is the device node +representing the sndio input device, and is usually set to +‘/dev/audio0’. +

+

For example to grab from ‘/dev/audio0’ using ffmpeg use the +command: +

 
ffmpeg -f sndio -i /dev/audio0 /tmp/oss.wav
+
+ + +

26.17 video4linux2, v4l2

+ +

Video4Linux2 input video device. +

+

"v4l2" can be used as alias for "video4linux2". +

+

If FFmpeg is built with v4l-utils support (by using the +--enable-libv4l2 configure option), it is possible to use it with the +-use_libv4l2 input device option. +

+

The name of the device to grab is a file device node, usually Linux +systems tend to automatically create such nodes when the device +(e.g. an USB webcam) is plugged into the system, and has a name of the +kind ‘/dev/videoN’, where N is a number associated to +the device. +

+

Video4Linux2 devices usually support a limited set of +widthxheight sizes and frame rates. You can check which are +supported using -list_formats all for Video4Linux2 devices. +Some devices, like TV cards, support one or more standards. It is possible +to list all the supported standards using -list_standards all. +

+

The time base for the timestamps is 1 microsecond. Depending on the kernel +version and configuration, the timestamps may be derived from the real time +clock (origin at the Unix Epoch) or the monotonic clock (origin usually at +boot time, unaffected by NTP or manual changes to the clock). The +‘-timestamps abs’ or ‘-ts abs’ option can be used to force +conversion into the real time clock. +

+

Some usage examples of the video4linux2 device with ffmpeg +and ffplay: +

    +
  • +Grab and show the input of a video4linux2 device: +
     
    ffplay -f video4linux2 -framerate 30 -video_size hd720 /dev/video0
    +
    + +
  • +Grab and record the input of a video4linux2 device, leave the +frame rate and size as previously set: +
     
    ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 out.mpeg
    +
    +
+ +

For more information about Video4Linux, check http://linuxtv.org/. +

+ +

26.17.1 Options

+ +
+
standard
+

Set the standard. Must be the name of a supported standard. To get a +list of the supported standards, use the ‘list_standards’ +option. +

+
+
channel
+

Set the input channel number. Default to -1, which means using the +previously selected channel. +

+
+
video_size
+

Set the video frame size. The argument must be a string in the form +WIDTHxHEIGHT or a valid size abbreviation. +

+
+
pixel_format
+

Select the pixel format (only valid for raw video input). +

+
+
input_format
+

Set the preferred pixel format (for raw video) or a codec name. +This option allows one to select the input format, when several are +available. +

+
+
framerate
+

Set the preferred video frame rate. +

+
+
list_formats
+

List available formats (supported pixel formats, codecs, and frame +sizes) and exit. +

+

Available values are: +

+
all
+

Show all available (compressed and non-compressed) formats. +

+
+
raw
+

Show only raw video (non-compressed) formats. +

+
+
compressed
+

Show only compressed formats. +

+
+ +
+
list_standards
+

List supported standards and exit. +

+

Available values are: +

+
all
+

Show all supported standards. +

+
+ +
+
timestamps, ts
+

Set type of timestamps for grabbed frames. +

+

Available values are: +

+
default
+

Use timestamps from the kernel. +

+
+
abs
+

Use absolute timestamps (wall clock). +

+
+
mono2abs
+

Force conversion from monotonic to absolute timestamps. +

+
+ +

Default value is default. +

+
+ + +

26.18 vfwcap

+ +

VfW (Video for Windows) capture input device. +

+

The filename passed as input is the capture driver number, ranging from +0 to 9. You may use "list" as filename to print a list of drivers. Any +other filename will be interpreted as device number 0. +

+ +

26.19 x11grab

+ +

X11 video input device. +

+

This device allows one to capture a region of an X11 display. +

+

The filename passed as input has the syntax: +

 
[hostname]:display_number.screen_number[+x_offset,y_offset]
+
+ +

hostname:display_number.screen_number specifies the +X11 display name of the screen to grab from. hostname can be +omitted, and defaults to "localhost". The environment variable +DISPLAY contains the default display name. +

+

x_offset and y_offset specify the offsets of the grabbed +area with respect to the top-left border of the X11 screen. They +default to 0. +

+

Check the X11 documentation (e.g. man X) for more detailed information. +

+

Use the dpyinfo program for getting basic information about the +properties of your X11 display (e.g. grep for "name" or "dimensions"). +

+

For example to grab from ‘:0.0’ using ffmpeg: +

 
ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0 out.mpg
+
+ +

Grab at position 10,20: +

 
ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
+
+ + +

26.19.1 Options

+ +
+
draw_mouse
+

Specify whether to draw the mouse pointer. A value of 0 specify +not to draw the pointer. Default value is 1. +

+
+
follow_mouse
+

Make the grabbed area follow the mouse. The argument can be +centered or a number of pixels PIXELS. +

+

When it is specified with "centered", the grabbing region follows the mouse +pointer and keeps the pointer at the center of region; otherwise, the region +follows only when the mouse pointer reaches within PIXELS (greater than +zero) to the edge of region. +

+

For example: +

 
ffmpeg -f x11grab -follow_mouse centered -framerate 25 -video_size cif -i :0.0 out.mpg
+
+ +

To follow only when the mouse pointer reaches within 100 pixels to edge: +

 
ffmpeg -f x11grab -follow_mouse 100 -framerate 25 -video_size cif -i :0.0 out.mpg
+
+ +
+
framerate
+

Set the grabbing frame rate. Default value is ntsc, +corresponding to a frame rate of 30000/1001. +

+
+
show_region
+

Show grabbed region on screen. +

+

If show_region is specified with 1, then the grabbing +region will be indicated on screen. With this option, it is easy to +know what is being grabbed if only a portion of the screen is grabbed. +

+

For example: +

 
ffmpeg -f x11grab -show_region 1 -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
+
+ +

With follow_mouse: +

 
ffmpeg -f x11grab -follow_mouse centered -show_region 1 -framerate 25 -video_size cif -i :0.0 out.mpg
+
+ +
+
video_size
+

Set the video frame size. Default value is vga. +

+
+ + +

27. Output Devices

+ +

Output devices are configured elements in FFmpeg that can write +multimedia data to an output device attached to your system. +

+

When you configure your FFmpeg build, all the supported output devices +are enabled by default. You can list all available ones using the +configure option "–list-outdevs". +

+

You can disable all the output devices using the configure option +"–disable-outdevs", and selectively enable an output device using the +option "–enable-outdev=OUTDEV", or you can disable a particular +input device using the option "–disable-outdev=OUTDEV". +

+

The option "-formats" of the ff* tools will display the list of +enabled output devices (amongst the muxers). +

+

A description of the currently available output devices follows. +

+ +

27.1 alsa

+ +

ALSA (Advanced Linux Sound Architecture) output device. +

+ +

27.1.1 Examples

+ +
    +
  • +Play a file on default ALSA device: +
     
    ffmpeg -i INPUT -f alsa default
    +
    + +
  • +Play a file on soundcard 1, audio device 7: +
     
    ffmpeg -i INPUT -f alsa hw:1,7
    +
    +
+ + +

27.2 caca

+ +

CACA output device. +

+

This output device allows one to show a video stream in CACA window. +Only one CACA window is allowed per application, so you can +have only one instance of this output device in an application. +

+

To enable this output device you need to configure FFmpeg with +--enable-libcaca. +libcaca is a graphics library that outputs text instead of pixels. +

+

For more information about libcaca, check: +http://caca.zoy.org/wiki/libcaca +

+ +

27.2.1 Options

+ +
+
window_title
+

Set the CACA window title, if not specified default to the filename +specified for the output device. +

+
+
window_size
+

Set the CACA window size, can be a string of the form +widthxheight or a video size abbreviation. +If not specified it defaults to the size of the input video. +

+
+
driver
+

Set display driver. +

+
+
algorithm
+

Set dithering algorithm. Dithering is necessary +because the picture being rendered has usually far more colours than +the available palette. +The accepted values are listed with -list_dither algorithms. +

+
+
antialias
+

Set antialias method. Antialiasing smoothens the rendered +image and avoids the commonly seen staircase effect. +The accepted values are listed with -list_dither antialiases. +

+
+
charset
+

Set which characters are going to be used when rendering text. +The accepted values are listed with -list_dither charsets. +

+
+
color
+

Set color to be used when rendering text. +The accepted values are listed with -list_dither colors. +

+
+
list_drivers
+

If set to ‘true’, print a list of available drivers and exit. +

+
+
list_dither
+

List available dither options related to the argument. +The argument must be one of algorithms, antialiases, +charsets, colors. +

+
+ + +

27.2.2 Examples

+ +
    +
  • +The following command shows the ffmpeg output is an +CACA window, forcing its size to 80x25: +
     
    ffmpeg -i INPUT -vcodec rawvideo -pix_fmt rgb24 -window_size 80x25 -f caca -
    +
    + +
  • +Show the list of available drivers and exit: +
     
    ffmpeg -i INPUT -pix_fmt rgb24 -f caca -list_drivers true -
    +
    + +
  • +Show the list of available dither colors and exit: +
     
    ffmpeg -i INPUT -pix_fmt rgb24 -f caca -list_dither colors -
    +
    +
+ + +

27.3 decklink

+ +

The decklink output device provides playback capabilities for Blackmagic +DeckLink devices. +

+

To enable this output device, you need the Blackmagic DeckLink SDK and you +need to configure with the appropriate --extra-cflags +and --extra-ldflags. +On Windows, you need to run the IDL files through widl. +

+

DeckLink is very picky about the formats it supports. Pixel format is always +uyvy422, framerate and video size must be determined for your device with +-list_formats 1. Audio sample rate is always 48 kHz. +

+ +

27.3.1 Options

+ +
+
list_devices
+

If set to ‘true’, print a list of devices and exit. +Defaults to ‘false’. +

+
+
list_formats
+

If set to ‘true’, print a list of supported formats and exit. +Defaults to ‘false’. +

+
+
preroll
+

Amount of time to preroll video in seconds. +Defaults to ‘0.5’. +

+
+
+ + +

27.3.2 Examples

+ +
    +
  • +List output devices: +
     
    ffmpeg -i test.avi -f decklink -list_devices 1 dummy
    +
    + +
  • +List supported formats: +
     
    ffmpeg -i test.avi -f decklink -list_formats 1 'DeckLink Mini Monitor'
    +
    + +
  • +Play video clip: +
     
    ffmpeg -i test.avi -f decklink -pix_fmt uyvy422 'DeckLink Mini Monitor'
    +
    + +
  • +Play video clip with non-standard framerate or video size: +
     
    ffmpeg -i test.avi -f decklink -pix_fmt uyvy422 -s 720x486 -r 24000/1001 'DeckLink Mini Monitor'
    +
    + +
+ + +

27.4 fbdev

+ +

Linux framebuffer output device. +

+

The Linux framebuffer is a graphic hardware-independent abstraction +layer to show graphics on a computer monitor, typically on the +console. It is accessed through a file device node, usually +‘/dev/fb0’. +

+

For more detailed information read the file +‘Documentation/fb/framebuffer.txt’ included in the Linux source tree. +

+ +

27.4.1 Options

+
+
xoffset
+
yoffset
+

Set x/y coordinate of top left corner. Default is 0. +

+
+ + +

27.4.2 Examples

+

Play a file on framebuffer device ‘/dev/fb0’. +Required pixel format depends on current framebuffer settings. +

 
ffmpeg -re -i INPUT -vcodec rawvideo -pix_fmt bgra -f fbdev /dev/fb0
+
+ +

See also http://linux-fbdev.sourceforge.net/, and fbset(1). +

+ +

27.5 opengl

+

OpenGL output device. +

+

To enable this output device you need to configure FFmpeg with --enable-opengl. +

+

This output device allows one to render to OpenGL context. +Context may be provided by application or default SDL window is created. +

+

When device renders to external context, application must implement handlers for following messages: +AV_CTL_MESSAGE_CREATE_WINDOW_BUFFER - create OpenGL context on current thread. +AV_CTL_MESSAGE_PREPARE_WINDOW_BUFFER - make OpenGL context current. +AV_CTL_MESSAGE_DISPLAY_WINDOW_BUFFER - swap buffers. +AV_CTL_MESSAGE_DESTROY_WINDOW_BUFFER - destroy OpenGL context. +Application is also required to inform a device about current resolution by sending AV_DEVICE_WINDOW_RESIZED message. +

+ +

27.5.1 Options

+
+
background
+

Set background color. Black is a default. +

+
no_window
+

Disables default SDL window when set to non-zero value. +Application must provide OpenGL context and both window_size_cb and window_swap_buffers_cb callbacks when set. +

+
window_title
+

Set the SDL window title, if not specified default to the filename specified for the output device. +Ignored when ‘no_window’ is set. +

+
+
+ + +

27.5.2 Examples

+

Play a file on SDL window using OpenGL rendering: +

 
ffmpeg  -i INPUT -f opengl "window title"
+
+ + +

27.6 oss

+ +

OSS (Open Sound System) output device. +

+ +

27.7 pulse

+ +

PulseAudio output device. +

+

To enable this output device you need to configure FFmpeg with --enable-libpulse. +

+

More information about PulseAudio can be found on http://www.pulseaudio.org +

+ +

27.7.1 Options

+
+
server
+

Connect to a specific PulseAudio server, specified by an IP address. +Default server is used when not provided. +

+
+
name
+

Specify the application name PulseAudio will use when showing active clients, +by default it is the LIBAVFORMAT_IDENT string. +

+
+
stream_name
+

Specify the stream name PulseAudio will use when showing active streams, +by default it is set to the specified output name. +

+
+
device
+

Specify the device to use. Default device is used when not provided. +List of output devices can be obtained with command pactl list sinks. +

+
+
buffer_size
+
buffer_duration
+

Control the size and duration of the PulseAudio buffer. A small buffer +gives more control, but requires more frequent updates. +

+

buffer_size’ specifies size in bytes while +‘buffer_duration’ specifies duration in milliseconds. +

+

When both options are provided then the highest value is used +(duration is recalculated to bytes using stream parameters). If they +are set to 0 (which is default), the device will use the default +PulseAudio duration value. By default PulseAudio set buffer duration +to around 2 seconds. +

+
+ + +

27.7.2 Examples

+

Play a file on default device on default server: +

 
ffmpeg  -i INPUT -f pulse "stream name"
+
+ + +

27.8 sdl

+ +

SDL (Simple DirectMedia Layer) output device. +

+

This output device allows one to show a video stream in an SDL +window. Only one SDL window is allowed per application, so you can +have only one instance of this output device in an application. +

+

To enable this output device you need libsdl installed on your system +when configuring your build. +

+

For more information about SDL, check: +http://www.libsdl.org/ +

+ +

27.8.1 Options

+ +
+
window_title
+

Set the SDL window title, if not specified default to the filename +specified for the output device. +

+
+
icon_title
+

Set the name of the iconified SDL window, if not specified it is set +to the same value of window_title. +

+
+
window_size
+

Set the SDL window size, can be a string of the form +widthxheight or a video size abbreviation. +If not specified it defaults to the size of the input video, +downscaled according to the aspect ratio. +

+
+
window_fullscreen
+

Set fullscreen mode when non-zero value is provided. +Default value is zero. +

+
+ + +

27.8.2 Interactive commands

+ +

The window created by the device can be controlled through the +following interactive commands. +

+
+
<q, ESC>
+

Quit the device immediately. +

+
+ + +

27.8.3 Examples

+ +

The following command shows the ffmpeg output is an +SDL window, forcing its size to the qcif format: +

 
ffmpeg -i INPUT -vcodec rawvideo -pix_fmt yuv420p -window_size qcif -f sdl "SDL output"
+
+ + +

27.9 sndio

+ +

sndio audio output device. +

+ +

27.10 xv

+ +

XV (XVideo) output device. +

+

This output device allows one to show a video stream in a X Window System +window. +

+ +

27.10.1 Options

+ +
+
display_name
+

Specify the hardware display name, which determines the display and +communications domain to be used. +

+

The display name or DISPLAY environment variable can be a string in +the format hostname[:number[.screen_number]]. +

+

hostname specifies the name of the host machine on which the +display is physically attached. number specifies the number of +the display server on that host machine. screen_number specifies +the screen to be used on that server. +

+

If unspecified, it defaults to the value of the DISPLAY environment +variable. +

+

For example, dual-headed:0.1 would specify screen 1 of display +0 on the machine named “dual-headed”. +

+

Check the X11 specification for more detailed information about the +display name format. +

+
+
window_id
+

When set to non-zero value then device doesn’t create new window, +but uses existing one with provided window_id. By default +this options is set to zero and device creates its own window. +

+
+
window_size
+

Set the created window size, can be a string of the form +widthxheight or a video size abbreviation. If not +specified it defaults to the size of the input video. +Ignored when window_id is set. +

+
+
window_x
+
window_y
+

Set the X and Y window offsets for the created window. They are both +set to 0 by default. The values may be ignored by the window manager. +Ignored when window_id is set. +

+
+
window_title
+

Set the window title, if not specified default to the filename +specified for the output device. Ignored when window_id is set. +

+
+ +

For more information about XVideo see http://www.x.org/. +

+ +

27.10.2 Examples

+ +
    +
  • +Decode, display and encode video input with ffmpeg at the +same time: +
     
    ffmpeg -i INPUT OUTPUT -f xv display
    +
    + +
  • +Decode and display the input video to multiple X11 windows: +
     
    ffmpeg -i INPUT -f xv normal -vf negate -f xv negated
    +
    +
+ + +

28. Resampler Options

+ +

The audio resampler supports the following named options. +

+

Options may be set by specifying -option value in the +FFmpeg tools, option=value for the aresample filter, +by setting the value explicitly in the +SwrContext options or using the ‘libavutil/opt.h’ API for +programmatic use. +

+
+
ich, in_channel_count
+

Set the number of input channels. Default value is 0. Setting this +value is not mandatory if the corresponding channel layout +‘in_channel_layout’ is set. +

+
+
och, out_channel_count
+

Set the number of output channels. Default value is 0. Setting this +value is not mandatory if the corresponding channel layout +‘out_channel_layout’ is set. +

+
+
uch, used_channel_count
+

Set the number of used input channels. Default value is 0. This option is +only used for special remapping. +

+
+
isr, in_sample_rate
+

Set the input sample rate. Default value is 0. +

+
+
osr, out_sample_rate
+

Set the output sample rate. Default value is 0. +

+
+
isf, in_sample_fmt
+

Specify the input sample format. It is set by default to none. +

+
+
osf, out_sample_fmt
+

Specify the output sample format. It is set by default to none. +

+
+
tsf, internal_sample_fmt
+

Set the internal sample format. Default value is none. +This will automatically be chosen when it is not explicitly set. +

+
+
icl, in_channel_layout
+
ocl, out_channel_layout
+

Set the input/output channel layout. +

+

See (ffmpeg-utils)channel layout syntax +for the required syntax. +

+
+
clev, center_mix_level
+

Set the center mix level. It is a value expressed in deciBel, and must be +in the interval [-32,32]. +

+
+
slev, surround_mix_level
+

Set the surround mix level. It is a value expressed in deciBel, and must +be in the interval [-32,32]. +

+
+
lfe_mix_level
+

Set LFE mix into non LFE level. It is used when there is a LFE input but no +LFE output. It is a value expressed in deciBel, and must +be in the interval [-32,32]. +

+
+
rmvol, rematrix_volume
+

Set rematrix volume. Default value is 1.0. +

+
+
rematrix_maxval
+

Set maximum output value for rematrixing. +This can be used to prevent clipping vs. preventing volumn reduction +A value of 1.0 prevents cliping. +

+
+
flags, swr_flags
+

Set flags used by the converter. Default value is 0. +

+

It supports the following individual flags: +

+
res
+

force resampling, this flag forces resampling to be used even when the +input and output sample rates match. +

+
+ +
+
dither_scale
+

Set the dither scale. Default value is 1. +

+
+
dither_method
+

Set dither method. Default value is 0. +

+

Supported values: +

+
rectangular
+

select rectangular dither +

+
triangular
+

select triangular dither +

+
triangular_hp
+

select triangular dither with high pass +

+
lipshitz
+

select lipshitz noise shaping dither +

+
shibata
+

select shibata noise shaping dither +

+
low_shibata
+

select low shibata noise shaping dither +

+
high_shibata
+

select high shibata noise shaping dither +

+
f_weighted
+

select f-weighted noise shaping dither +

+
modified_e_weighted
+

select modified-e-weighted noise shaping dither +

+
improved_e_weighted
+

select improved-e-weighted noise shaping dither +

+
+
+ +
+
resampler
+

Set resampling engine. Default value is swr. +

+

Supported values: +

+
swr
+

select the native SW Resampler; filter options precision and cheby are not +applicable in this case. +

+
soxr
+

select the SoX Resampler (where available); compensation, and filter options +filter_size, phase_shift, filter_type & kaiser_beta, are not applicable in this +case. +

+
+ +
+
filter_size
+

For swr only, set resampling filter size, default value is 32. +

+
+
phase_shift
+

For swr only, set resampling phase shift, default value is 10, and must be in +the interval [0,30]. +

+
+
linear_interp
+

Use Linear Interpolation if set to 1, default value is 0. +

+
+
cutoff
+

Set cutoff frequency (swr: 6dB point; soxr: 0dB point) ratio; must be a float +value between 0 and 1. Default value is 0.97 with swr, and 0.91 with soxr +(which, with a sample-rate of 44100, preserves the entire audio band to 20kHz). +

+
+
precision
+

For soxr only, the precision in bits to which the resampled signal will be +calculated. The default value of 20 (which, with suitable dithering, is +appropriate for a destination bit-depth of 16) gives SoX’s ’High Quality’; a +value of 28 gives SoX’s ’Very High Quality’. +

+
+
cheby
+

For soxr only, selects passband rolloff none (Chebyshev) & higher-precision +approximation for ’irrational’ ratios. Default value is 0. +

+
+
async
+

For swr only, simple 1 parameter audio sync to timestamps using stretching, +squeezing, filling and trimming. Setting this to 1 will enable filling and +trimming, larger values represent the maximum amount in samples that the data +may be stretched or squeezed for each second. +Default value is 0, thus no compensation is applied to make the samples match +the audio timestamps. +

+
+
first_pts
+

For swr only, assume the first pts should be this value. The time unit is 1 / sample rate. +This allows for padding/trimming at the start of stream. By default, no +assumption is made about the first frame’s expected pts, so no padding or +trimming is done. For example, this could be set to 0 to pad the beginning with +silence if an audio stream starts after the video stream or to trim any samples +with a negative pts due to encoder delay. +

+
+
min_comp
+

For swr only, set the minimum difference between timestamps and audio data (in +seconds) to trigger stretching/squeezing/filling or trimming of the +data to make it match the timestamps. The default is that +stretching/squeezing/filling and trimming is disabled +(‘min_comp’ = FLT_MAX). +

+
+
min_hard_comp
+

For swr only, set the minimum difference between timestamps and audio data (in +seconds) to trigger adding/dropping samples to make it match the +timestamps. This option effectively is a threshold to select between +hard (trim/fill) and soft (squeeze/stretch) compensation. Note that +all compensation is by default disabled through ‘min_comp’. +The default is 0.1. +

+
+
comp_duration
+

For swr only, set duration (in seconds) over which data is stretched/squeezed +to make it match the timestamps. Must be a non-negative double float value, +default value is 1.0. +

+
+
max_soft_comp
+

For swr only, set maximum factor by which data is stretched/squeezed to make it +match the timestamps. Must be a non-negative double float value, default value +is 0. +

+
+
matrix_encoding
+

Select matrixed stereo encoding. +

+

It accepts the following values: +

+
none
+

select none +

+
dolby
+

select Dolby +

+
dplii
+

select Dolby Pro Logic II +

+
+ +

Default value is none. +

+
+
filter_type
+

For swr only, select resampling filter type. This only affects resampling +operations. +

+

It accepts the following values: +

+
cubic
+

select cubic +

+
blackman_nuttall
+

select Blackman Nuttall Windowed Sinc +

+
kaiser
+

select Kaiser Windowed Sinc +

+
+ +
+
kaiser_beta
+

For swr only, set Kaiser Window Beta value. Must be an integer in the +interval [2,16], default value is 9. +

+
+
output_sample_bits
+

For swr only, set number of used output sample bits for dithering. Must be an integer in the +interval [0,64], default value is 0, which means it’s not used. +

+
+
+ +

+

+

29. Scaler Options

+ +

The video scaler supports the following named options. +

+

Options may be set by specifying -option value in the +FFmpeg tools. For programmatic use, they can be set explicitly in the +SwsContext options or through the ‘libavutil/opt.h’ API. +

+
+
+

+

+
sws_flags
+

Set the scaler flags. This is also used to set the scaling +algorithm. Only a single algorithm should be selected. +

+

It accepts the following values: +

+
fast_bilinear
+

Select fast bilinear scaling algorithm. +

+
+
bilinear
+

Select bilinear scaling algorithm. +

+
+
bicubic
+

Select bicubic scaling algorithm. +

+
+
experimental
+

Select experimental scaling algorithm. +

+
+
neighbor
+

Select nearest neighbor rescaling algorithm. +

+
+
area
+

Select averaging area rescaling algorithm. +

+
+
bicublin
+

Select bicubic scaling algorithm for the luma component, bilinear for +chroma components. +

+
+
gauss
+

Select Gaussian rescaling algorithm. +

+
+
sinc
+

Select sinc rescaling algorithm. +

+
+
lanczos
+

Select lanczos rescaling algorithm. +

+
+
spline
+

Select natural bicubic spline rescaling algorithm. +

+
+
print_info
+

Enable printing/debug logging. +

+
+
accurate_rnd
+

Enable accurate rounding. +

+
+
full_chroma_int
+

Enable full chroma interpolation. +

+
+
full_chroma_inp
+

Select full chroma input. +

+
+
bitexact
+

Enable bitexact output. +

+
+ +
+
srcw
+

Set source width. +

+
+
srch
+

Set source height. +

+
+
dstw
+

Set destination width. +

+
+
dsth
+

Set destination height. +

+
+
src_format
+

Set source pixel format (must be expressed as an integer). +

+
+
dst_format
+

Set destination pixel format (must be expressed as an integer). +

+
+
src_range
+

Select source range. +

+
+
dst_range
+

Select destination range. +

+
+
param0, param1
+

Set scaling algorithm parameters. The specified values are specific of +some scaling algorithms and ignored by others. The specified values +are floating point number values. +

+
+
sws_dither
+

Set the dithering algorithm. Accepts one of the following +values. Default value is ‘auto’. +

+
+
auto
+

automatic choice +

+
+
none
+

no dithering +

+
+
bayer
+

bayer dither +

+
+
ed
+

error diffusion dither +

+
+
a_dither
+

arithmetic dither, based using addition +

+
+
x_dither
+

arithmetic dither, based using xor (more random/less apparent patterning that +a_dither). +

+
+
+ +
+
+ + +

30. Filtering Introduction

+ +

Filtering in FFmpeg is enabled through the libavfilter library. +

+

In libavfilter, a filter can have multiple inputs and multiple +outputs. +To illustrate the sorts of things that are possible, we consider the +following filtergraph. +

+
 
                [main]
+input --> split ---------------------> overlay --> output
+            |                             ^
+            |[tmp]                  [flip]|
+            +-----> crop --> vflip -------+
+
+ +

This filtergraph splits the input stream in two streams, then sends one +stream through the crop filter and the vflip filter, before merging it +back with the other stream by overlaying it on top. You can use the +following command to achieve this: +

+
 
ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT
+
+ +

The result will be that the top half of the video is mirrored +onto the bottom half of the output video. +

+

Filters in the same linear chain are separated by commas, and distinct +linear chains of filters are separated by semicolons. In our example, +crop,vflip are in one linear chain, split and +overlay are separately in another. The points where the linear +chains join are labelled by names enclosed in square brackets. In the +example, the split filter generates two outputs that are associated to +the labels [main] and [tmp]. +

+

The stream sent to the second output of split, labelled as +[tmp], is processed through the crop filter, which crops +away the lower half part of the video, and then vertically flipped. The +overlay filter takes in input the first unchanged output of the +split filter (which was labelled as [main]), and overlay on its +lower half the output generated by the crop,vflip filterchain. +

+

Some filters take in input a list of parameters: they are specified +after the filter name and an equal sign, and are separated from each other +by a colon. +

+

There exist so-called source filters that do not have an +audio/video input, and sink filters that will not have audio/video +output. +

+ + +

31. graph2dot

+ +

The ‘graph2dot’ program included in the FFmpeg ‘tools’ +directory can be used to parse a filtergraph description and issue a +corresponding textual representation in the dot language. +

+

Invoke the command: +

 
graph2dot -h
+
+ +

to see how to use ‘graph2dot’. +

+

You can then pass the dot description to the ‘dot’ program (from +the graphviz suite of programs) and obtain a graphical representation +of the filtergraph. +

+

For example the sequence of commands: +

 
echo GRAPH_DESCRIPTION | \
+tools/graph2dot -o graph.tmp && \
+dot -Tpng graph.tmp -o graph.png && \
+display graph.png
+
+ +

can be used to create and display an image representing the graph +described by the GRAPH_DESCRIPTION string. Note that this string must be +a complete self-contained graph, with its inputs and outputs explicitly defined. +For example if your command line is of the form: +

 
ffmpeg -i infile -vf scale=640:360 outfile
+
+

your GRAPH_DESCRIPTION string will need to be of the form: +

 
nullsrc,scale=640:360,nullsink
+
+

you may also need to set the nullsrc parameters and add a format +filter in order to simulate a specific input file. +

+ + +

32. Filtergraph description

+ +

A filtergraph is a directed graph of connected filters. It can contain +cycles, and there can be multiple links between a pair of +filters. Each link has one input pad on one side connecting it to one +filter from which it takes its input, and one output pad on the other +side connecting it to one filter accepting its output. +

+

Each filter in a filtergraph is an instance of a filter class +registered in the application, which defines the features and the +number of input and output pads of the filter. +

+

A filter with no input pads is called a "source", and a filter with no +output pads is called a "sink". +

+

+

+

32.1 Filtergraph syntax

+ +

A filtergraph has a textual representation, which is +recognized by the ‘-filter’/‘-vf’ and ‘-filter_complex’ +options in ffmpeg and ‘-vf’ in ffplay, and by the +avfilter_graph_parse()/avfilter_graph_parse2() functions defined in +‘libavfilter/avfilter.h’. +

+

A filterchain consists of a sequence of connected filters, each one +connected to the previous one in the sequence. A filterchain is +represented by a list of ","-separated filter descriptions. +

+

A filtergraph consists of a sequence of filterchains. A sequence of +filterchains is represented by a list of ";"-separated filterchain +descriptions. +

+

A filter is represented by a string of the form: +[in_link_1]...[in_link_N]filter_name=arguments[out_link_1]...[out_link_M] +

+

filter_name is the name of the filter class of which the +described filter is an instance of, and has to be the name of one of +the filter classes registered in the program. +The name of the filter class is optionally followed by a string +"=arguments". +

+

arguments is a string which contains the parameters used to +initialize the filter instance. It may have one of two forms: +

    +
  • +A ’:’-separated list of key=value pairs. + +
  • +A ’:’-separated list of value. In this case, the keys are assumed to be +the option names in the order they are declared. E.g. the fade filter +declares three options in this order – ‘type’, ‘start_frame’ and +‘nb_frames’. Then the parameter list in:0:30 means that the value +in is assigned to the option ‘type’, 0 to +‘start_frame’ and 30 to ‘nb_frames’. + +
  • +A ’:’-separated list of mixed direct value and long key=value +pairs. The direct value must precede the key=value pairs, and +follow the same constraints order of the previous point. The following +key=value pairs can be set in any preferred order. + +
+ +

If the option value itself is a list of items (e.g. the format filter +takes a list of pixel formats), the items in the list are usually separated by +’|’. +

+

The list of arguments can be quoted using the character "’" as initial +and ending mark, and the character ’\’ for escaping the characters +within the quoted text; otherwise the argument string is considered +terminated when the next special character (belonging to the set +"[]=;,") is encountered. +

+

The name and arguments of the filter are optionally preceded and +followed by a list of link labels. +A link label allows one to name a link and associate it to a filter output +or input pad. The preceding labels in_link_1 +... in_link_N, are associated to the filter input pads, +the following labels out_link_1 ... out_link_M, are +associated to the output pads. +

+

When two link labels with the same name are found in the +filtergraph, a link between the corresponding input and output pad is +created. +

+

If an output pad is not labelled, it is linked by default to the first +unlabelled input pad of the next filter in the filterchain. +For example in the filterchain +

 
nullsrc, split[L1], [L2]overlay, nullsink
+
+

the split filter instance has two output pads, and the overlay filter +instance two input pads. The first output pad of split is labelled +"L1", the first input pad of overlay is labelled "L2", and the second +output pad of split is linked to the second input pad of overlay, +which are both unlabelled. +

+

In a complete filterchain all the unlabelled filter input and output +pads must be connected. A filtergraph is considered valid if all the +filter input and output pads of all the filterchains are connected. +

+

Libavfilter will automatically insert scale filters where format +conversion is required. It is possible to specify swscale flags +for those automatically inserted scalers by prepending +sws_flags=flags; +to the filtergraph description. +

+

Here is a BNF description of the filtergraph syntax: +

 
NAME             ::= sequence of alphanumeric characters and '_'
+LINKLABEL        ::= "[" NAME "]"
+LINKLABELS       ::= LINKLABEL [LINKLABELS]
+FILTER_ARGUMENTS ::= sequence of chars (possibly quoted)
+FILTER           ::= [LINKLABELS] NAME ["=" FILTER_ARGUMENTS] [LINKLABELS]
+FILTERCHAIN      ::= FILTER [,FILTERCHAIN]
+FILTERGRAPH      ::= [sws_flags=flags;] FILTERCHAIN [;FILTERGRAPH]
+
+ + +

32.2 Notes on filtergraph escaping

+ +

Filtergraph description composition entails several levels of +escaping. See (ffmpeg-utils)quoting_and_escaping for more +information about the employed escaping procedure. +

+

A first level escaping affects the content of each filter option +value, which may contain the special character : used to +separate values, or one of the escaping characters \'. +

+

A second level escaping affects the whole filter description, which +may contain the escaping characters \' or the special +characters [],; used by the filtergraph description. +

+

Finally, when you specify a filtergraph on a shell commandline, you +need to perform a third level escaping for the shell special +characters contained within it. +

+

For example, consider the following string to be embedded in +the drawtext filter description ‘text’ value: +

 
this is a 'string': may contain one, or more, special characters
+
+ +

This string contains the ' special escaping character, and the +: special character, so it needs to be escaped in this way: +

 
text=this is a \'string\'\: may contain one, or more, special characters
+
+ +

A second level of escaping is required when embedding the filter +description in a filtergraph description, in order to escape all the +filtergraph special characters. Thus the example above becomes: +

 
drawtext=text=this is a \\\'string\\\'\\: may contain one\, or more\, special characters
+
+

(note that in addition to the \' escaping special characters, +also , needs to be escaped). +

+

Finally an additional level of escaping is needed when writing the +filtergraph description in a shell command, which depends on the +escaping rules of the adopted shell. For example, assuming that +\ is special and needs to be escaped with another \, the +previous string will finally result in: +

 
-vf "drawtext=text=this is a \\\\\\'string\\\\\\'\\\\: may contain one\\, or more\\, special characters"
+
+ + +

33. Timeline editing

+ +

Some filters support a generic ‘enable’ option. For the filters +supporting timeline editing, this option can be set to an expression which is +evaluated before sending a frame to the filter. If the evaluation is non-zero, +the filter will be enabled, otherwise the frame will be sent unchanged to the +next filter in the filtergraph. +

+

The expression accepts the following values: +

+
t
+

timestamp expressed in seconds, NAN if the input timestamp is unknown +

+
+
n
+

sequential number of the input frame, starting from 0 +

+
+
pos
+

the position in the file of the input frame, NAN if unknown +

+
+ +

Additionally, these filters support an ‘enable’ command that can be used +to re-define the expression. +

+

Like any other filtering option, the ‘enable’ option follows the same +rules. +

+

For example, to enable a blur filter (smartblur) from 10 seconds to 3 +minutes, and a curves filter starting at 3 seconds: +

 
smartblur = enable='between(t,10,3*60)',
+curves    = enable='gte(t,3)' : preset=cross_process
+
+ + + +

34. Audio Filters

+ +

When you configure your FFmpeg build, you can disable any of the +existing filters using --disable-filters. +The configure output will show the audio filters included in your +build. +

+

Below is a description of the currently available audio filters. +

+ +

34.1 aconvert

+ +

Convert the input audio format to the specified formats. +

+

This filter is deprecated. Use aformat instead. +

+

The filter accepts a string of the form: +"sample_format:channel_layout". +

+

sample_format specifies the sample format, and can be a string or the +corresponding numeric value defined in ‘libavutil/samplefmt.h’. Use ’p’ +suffix for a planar sample format. +

+

channel_layout specifies the channel layout, and can be a string +or the corresponding number value defined in ‘libavutil/channel_layout.h’. +

+

The special parameter "auto", signifies that the filter will +automatically select the output format depending on the output filter. +

+ +

34.1.1 Examples

+ +
    +
  • +Convert input to float, planar, stereo: +
     
    aconvert=fltp:stereo
    +
    + +
  • +Convert input to unsigned 8-bit, automatically select out channel layout: +
     
    aconvert=u8:auto
    +
    +
+ + +

34.2 adelay

+ +

Delay one or more audio channels. +

+

Samples in delayed channel are filled with silence. +

+

The filter accepts the following option: +

+
+
delays
+

Set list of delays in milliseconds for each channel separated by ’|’. +At least one delay greater than 0 should be provided. +Unused delays will be silently ignored. If number of given delays is +smaller than number of channels all remaining channels will not be delayed. +

+
+ + +

34.2.1 Examples

+ +
    +
  • +Delay first channel by 1.5 seconds, the third channel by 0.5 seconds and leave +the second channel (and any other channels that may be present) unchanged. +
     
    adelay=1500|0|500
    +
    +
+ + +

34.3 aecho

+ +

Apply echoing to the input audio. +

+

Echoes are reflected sound and can occur naturally amongst mountains +(and sometimes large buildings) when talking or shouting; digital echo +effects emulate this behaviour and are often used to help fill out the +sound of a single instrument or vocal. The time difference between the +original signal and the reflection is the delay, and the +loudness of the reflected signal is the decay. +Multiple echoes can have different delays and decays. +

+

A description of the accepted parameters follows. +

+
+
in_gain
+

Set input gain of reflected signal. Default is 0.6. +

+
+
out_gain
+

Set output gain of reflected signal. Default is 0.3. +

+
+
delays
+

Set list of time intervals in milliseconds between original signal and reflections +separated by ’|’. Allowed range for each delay is (0 - 90000.0]. +Default is 1000. +

+
+
decays
+

Set list of loudnesses of reflected signals separated by ’|’. +Allowed range for each decay is (0 - 1.0]. +Default is 0.5. +

+
+ + +

34.3.1 Examples

+ +
    +
  • +Make it sound as if there are twice as many instruments as are actually playing: +
     
    aecho=0.8:0.88:60:0.4
    +
    + +
  • +If delay is very short, then it sound like a (metallic) robot playing music: +
     
    aecho=0.8:0.88:6:0.4
    +
    + +
  • +A longer delay will sound like an open air concert in the mountains: +
     
    aecho=0.8:0.9:1000:0.3
    +
    + +
  • +Same as above but with one more mountain: +
     
    aecho=0.8:0.9:1000|1800:0.3|0.25
    +
    +
+ + +

34.4 aeval

+ +

Modify an audio signal according to the specified expressions. +

+

This filter accepts one or more expressions (one for each channel), +which are evaluated and used to modify a corresponding audio signal. +

+

It accepts the following parameters: +

+
+
exprs
+

Set the ’|’-separated expressions list for each separate channel. If +the number of input channels is greater than the number of +expressions, the last specified expression is used for the remaining +output channels. +

+
+
channel_layout, c
+

Set output channel layout. If not specified, the channel layout is +specified by the number of expressions. If set to ‘same’, it will +use by default the same input channel layout. +

+
+ +

Each expression in exprs can contain the following constants and functions: +

+
+
ch
+

channel number of the current expression +

+
+
n
+

number of the evaluated sample, starting from 0 +

+
+
s
+

sample rate +

+
+
t
+

time of the evaluated sample expressed in seconds +

+
+
nb_in_channels
+
nb_out_channels
+

input and output number of channels +

+
+
val(CH)
+

the value of input channel with number CH +

+
+ +

Note: this filter is slow. For faster processing you should use a +dedicated filter. +

+ +

34.4.1 Examples

+ +
    +
  • +Half volume: +
     
    aeval=val(ch)/2:c=same
    +
    + +
  • +Invert phase of the second channel: +
     
    eval=val(0)|-val(1)
    +
    +
+ + +

34.5 afade

+ +

Apply fade-in/out effect to input audio. +

+

A description of the accepted parameters follows. +

+
+
type, t
+

Specify the effect type, can be either in for fade-in, or +out for a fade-out effect. Default is in. +

+
+
start_sample, ss
+

Specify the number of the start sample for starting to apply the fade +effect. Default is 0. +

+
+
nb_samples, ns
+

Specify the number of samples for which the fade effect has to last. At +the end of the fade-in effect the output audio will have the same +volume as the input audio, at the end of the fade-out transition +the output audio will be silence. Default is 44100. +

+
+
start_time, st
+

Specify time for starting to apply the fade effect. Default is 0. +The accepted syntax is: +

 
[-]HH[:MM[:SS[.m...]]]
+[-]S+[.m...]
+
+

See also the function av_parse_time(). +If set this option is used instead of start_sample one. +

+
+
duration, d
+

Specify the duration for which the fade effect has to last. Default is 0. +The accepted syntax is: +

 
[-]HH[:MM[:SS[.m...]]]
+[-]S+[.m...]
+
+

See also the function av_parse_time(). +At the end of the fade-in effect the output audio will have the same +volume as the input audio, at the end of the fade-out transition +the output audio will be silence. +If set this option is used instead of nb_samples one. +

+
+
curve
+

Set curve for fade transition. +

+

It accepts the following values: +

+
tri
+

select triangular, linear slope (default) +

+
qsin
+

select quarter of sine wave +

+
hsin
+

select half of sine wave +

+
esin
+

select exponential sine wave +

+
log
+

select logarithmic +

+
par
+

select inverted parabola +

+
qua
+

select quadratic +

+
cub
+

select cubic +

+
squ
+

select square root +

+
cbr
+

select cubic root +

+
+
+
+ + +

34.5.1 Examples

+ +
    +
  • +Fade in first 15 seconds of audio: +
     
    afade=t=in:ss=0:d=15
    +
    + +
  • +Fade out last 25 seconds of a 900 seconds audio: +
     
    afade=t=out:st=875:d=25
    +
    +
+ +

+

+

34.6 aformat

+ +

Set output format constraints for the input audio. The framework will +negotiate the most appropriate format to minimize conversions. +

+

It accepts the following parameters: +

+
sample_fmts
+

A ’|’-separated list of requested sample formats. +

+
+
sample_rates
+

A ’|’-separated list of requested sample rates. +

+
+
channel_layouts
+

A ’|’-separated list of requested channel layouts. +

+

See (ffmpeg-utils)channel layout syntax +for the required syntax. +

+
+ +

If a parameter is omitted, all values are allowed. +

+

Force the output to either unsigned 8-bit or signed 16-bit stereo +

 
aformat=sample_fmts=u8|s16:channel_layouts=stereo
+
+ + +

34.7 allpass

+ +

Apply a two-pole all-pass filter with central frequency (in Hz) +frequency, and filter-width width. +An all-pass filter changes the audio’s frequency to phase relationship +without changing its frequency to amplitude relationship. +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set frequency in Hz. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +

+
+ + +

34.8 amerge

+ +

Merge two or more audio streams into a single multi-channel stream. +

+

The filter accepts the following options: +

+
+
inputs
+

Set the number of inputs. Default is 2. +

+
+
+ +

If the channel layouts of the inputs are disjoint, and therefore compatible, +the channel layout of the output will be set accordingly and the channels +will be reordered as necessary. If the channel layouts of the inputs are not +disjoint, the output will have all the channels of the first input then all +the channels of the second input, in that order, and the channel layout of +the output will be the default value corresponding to the total number of +channels. +

+

For example, if the first input is in 2.1 (FL+FR+LF) and the second input +is FC+BL+BR, then the output will be in 5.1, with the channels in the +following order: a1, a2, b1, a3, b2, b3 (a1 is the first channel of the +first input, b1 is the first channel of the second input). +

+

On the other hand, if both input are in stereo, the output channels will be +in the default order: a1, a2, b1, b2, and the channel layout will be +arbitrarily set to 4.0, which may or may not be the expected value. +

+

All inputs must have the same sample rate, and format. +

+

If inputs do not have the same duration, the output will stop with the +shortest. +

+ +

34.8.1 Examples

+ +
    +
  • +Merge two mono files into a stereo stream: +
     
    amovie=left.wav [l] ; amovie=right.mp3 [r] ; [l] [r] amerge
    +
    + +
  • +Multiple merges assuming 1 video stream and 6 audio streams in ‘input.mkv’: +
     
    ffmpeg -i input.mkv -filter_complex "[0:1][0:2][0:3][0:4][0:5][0:6] amerge=inputs=6" -c:a pcm_s16le output.mkv
    +
    +
+ + +

34.9 amix

+ +

Mixes multiple audio inputs into a single output. +

+

For example +

 
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT
+
+

will mix 3 input audio streams to a single output with the same duration as the +first input and a dropout transition time of 3 seconds. +

+

It accepts the following parameters: +

+
inputs
+

The number of inputs. If unspecified, it defaults to 2. +

+
+
duration
+

How to determine the end-of-stream. +

+
longest
+

The duration of the longest input. (default) +

+
+
shortest
+

The duration of the shortest input. +

+
+
first
+

The duration of the first input. +

+
+
+ +
+
dropout_transition
+

The transition time, in seconds, for volume renormalization when an input +stream ends. The default value is 2 seconds. +

+
+
+ + +

34.10 anull

+ +

Pass the audio source unchanged to the output. +

+ +

34.11 apad

+ +

Pad the end of a audio stream with silence, this can be used together with +-shortest to extend audio streams to the same length as the video stream. +

+ +

34.12 aphaser

+

Add a phasing effect to the input audio. +

+

A phaser filter creates series of peaks and troughs in the frequency spectrum. +The position of the peaks and troughs are modulated so that they vary over time, creating a sweeping effect. +

+

A description of the accepted parameters follows. +

+
+
in_gain
+

Set input gain. Default is 0.4. +

+
+
out_gain
+

Set output gain. Default is 0.74 +

+
+
delay
+

Set delay in milliseconds. Default is 3.0. +

+
+
decay
+

Set decay. Default is 0.4. +

+
+
speed
+

Set modulation speed in Hz. Default is 0.5. +

+
+
type
+

Set modulation type. Default is triangular. +

+

It accepts the following values: +

+
triangular, t
+
sinusoidal, s
+
+
+
+ +

+

+

34.13 aresample

+ +

Resample the input audio to the specified parameters, using the +libswresample library. If none are specified then the filter will +automatically convert between its input and output. +

+

This filter is also able to stretch/squeeze the audio data to make it match +the timestamps or to inject silence / cut out audio to make it match the +timestamps, do a combination of both or do neither. +

+

The filter accepts the syntax +[sample_rate:]resampler_options, where sample_rate +expresses a sample rate and resampler_options is a list of +key=value pairs, separated by ":". See the +ffmpeg-resampler manual for the complete list of supported options. +

+ +

34.13.1 Examples

+ +
    +
  • +Resample the input audio to 44100Hz: +
     
    aresample=44100
    +
    + +
  • +Stretch/squeeze samples to the given timestamps, with a maximum of 1000 +samples per second compensation: +
     
    aresample=async=1000
    +
    +
+ + +

34.14 asetnsamples

+ +

Set the number of samples per each output audio frame. +

+

The last output packet may contain a different number of samples, as +the filter will flush all the remaining samples when the input audio +signal its end. +

+

The filter accepts the following options: +

+
+
nb_out_samples, n
+

Set the number of frames per each output audio frame. The number is +intended as the number of samples per each channel. +Default value is 1024. +

+
+
pad, p
+

If set to 1, the filter will pad the last audio frame with zeroes, so +that the last frame will contain the same number of samples as the +previous ones. Default value is 1. +

+
+ +

For example, to set the number of per-frame samples to 1234 and +disable padding for the last frame, use: +

 
asetnsamples=n=1234:p=0
+
+ + +

34.15 asetrate

+ +

Set the sample rate without altering the PCM data. +This will result in a change of speed and pitch. +

+

The filter accepts the following options: +

+
+
sample_rate, r
+

Set the output sample rate. Default is 44100 Hz. +

+
+ + +

34.16 ashowinfo

+ +

Show a line containing various information for each input audio frame. +The input audio is not modified. +

+

The shown line contains a sequence of key/value pairs of the form +key:value. +

+

It accepts the following parameters: +

+
+
n
+

The (sequential) number of the input frame, starting from 0. +

+
+
pts
+

The presentation timestamp of the input frame, in time base units; the time base +depends on the filter input pad, and is usually 1/sample_rate. +

+
+
pts_time
+

The presentation timestamp of the input frame in seconds. +

+
+
pos
+

position of the frame in the input stream, -1 if this information in +unavailable and/or meaningless (for example in case of synthetic audio) +

+
+
fmt
+

The sample format. +

+
+
chlayout
+

The channel layout. +

+
+
rate
+

The sample rate for the audio frame. +

+
+
nb_samples
+

The number of samples (per channel) in the frame. +

+
+
checksum
+

The Adler-32 checksum (printed in hexadecimal) of the audio data. For planar +audio, the data is treated as if all the planes were concatenated. +

+
+
plane_checksums
+

A list of Adler-32 checksums for each data plane. +

+
+ + +

34.17 astats

+ +

Display time domain statistical information about the audio channels. +Statistics are calculated and displayed for each audio channel and, +where applicable, an overall figure is also given. +

+

It accepts the following option: +

+
length
+

Short window length in seconds, used for peak and trough RMS measurement. +Default is 0.05 (50 miliseconds). Allowed range is [0.1 - 10]. +

+
+ +

A description of each shown parameter follows: +

+
+
DC offset
+

Mean amplitude displacement from zero. +

+
+
Min level
+

Minimal sample level. +

+
+
Max level
+

Maximal sample level. +

+
+
Peak level dB
+
RMS level dB
+

Standard peak and RMS level measured in dBFS. +

+
+
RMS peak dB
+
RMS trough dB
+

Peak and trough values for RMS level measured over a short window. +

+
+
Crest factor
+

Standard ratio of peak to RMS level (note: not in dB). +

+
+
Flat factor
+

Flatness (i.e. consecutive samples with the same value) of the signal at its peak levels +(i.e. either Min level or Max level). +

+
+
Peak count
+

Number of occasions (not the number of samples) that the signal attained either +Min level or Max level. +

+
+ + +

34.18 astreamsync

+ +

Forward two audio streams and control the order the buffers are forwarded. +

+

The filter accepts the following options: +

+
+
expr, e
+

Set the expression deciding which stream should be +forwarded next: if the result is negative, the first stream is forwarded; if +the result is positive or zero, the second stream is forwarded. It can use +the following variables: +

+
+
b1 b2
+

number of buffers forwarded so far on each stream +

+
s1 s2
+

number of samples forwarded so far on each stream +

+
t1 t2
+

current timestamp of each stream +

+
+ +

The default value is t1-t2, which means to always forward the stream +that has a smaller timestamp. +

+
+ + +

34.18.1 Examples

+ +

Stress-test amerge by randomly sending buffers on the wrong +input, while avoiding too much of a desynchronization: +

 
amovie=file.ogg [a] ; amovie=file.mp3 [b] ;
+[a] [b] astreamsync=(2*random(1))-1+tanh(5*(t1-t2)) [a2] [b2] ;
+[a2] [b2] amerge
+
+ + +

34.19 asyncts

+ +

Synchronize audio data with timestamps by squeezing/stretching it and/or +dropping samples/adding silence when needed. +

+

This filter is not built by default, please use aresample to do squeezing/stretching. +

+

It accepts the following parameters: +

+
compensate
+

Enable stretching/squeezing the data to make it match the timestamps. Disabled +by default. When disabled, time gaps are covered with silence. +

+
+
min_delta
+

The minimum difference between timestamps and audio data (in seconds) to trigger +adding/dropping samples. The default value is 0.1. If you get an imperfect +sync with this filter, try setting this parameter to 0. +

+
+
max_comp
+

The maximum compensation in samples per second. Only relevant with compensate=1. +The default value is 500. +

+
+
first_pts
+

Assume that the first PTS should be this value. The time base is 1 / sample +rate. This allows for padding/trimming at the start of the stream. By default, +no assumption is made about the first frame’s expected PTS, so no padding or +trimming is done. For example, this could be set to 0 to pad the beginning with +silence if an audio stream starts after the video stream or to trim any samples +with a negative PTS due to encoder delay. +

+
+
+ + +

34.20 atempo

+ +

Adjust audio tempo. +

+

The filter accepts exactly one parameter, the audio tempo. If not +specified then the filter will assume nominal 1.0 tempo. Tempo must +be in the [0.5, 2.0] range. +

+ +

34.20.1 Examples

+ +
    +
  • +Slow down audio to 80% tempo: +
     
    atempo=0.8
    +
    + +
  • +To speed up audio to 125% tempo: +
     
    atempo=1.25
    +
    +
+ + +

34.21 atrim

+ +

Trim the input so that the output contains one continuous subpart of the input. +

+

It accepts the following parameters: +

+
start
+

Timestamp (in seconds) of the start of the section to keep. I.e. the audio +sample with the timestamp start will be the first sample in the output. +

+
+
end
+

Specify time of the first audio sample that will be dropped, i.e. the +audio sample immediately preceding the one with the timestamp end will be +the last sample in the output. +

+
+
start_pts
+

Same as start, except this option sets the start timestamp in samples +instead of seconds. +

+
+
end_pts
+

Same as end, except this option sets the end timestamp in samples instead +of seconds. +

+
+
duration
+

The maximum duration of the output in seconds. +

+
+
start_sample
+

The number of the first sample that should be output. +

+
+
end_sample
+

The number of the first sample that should be dropped. +

+
+ +

start’, ‘end’, ‘duration’ are expressed as time +duration specifications, check the "Time duration" section in the +ffmpeg-utils manual. +

+

Note that the first two sets of the start/end options and the ‘duration’ +option look at the frame timestamp, while the _sample options simply count the +samples that pass through the filter. So start/end_pts and start/end_sample will +give different results when the timestamps are wrong, inexact or do not start at +zero. Also note that this filter does not modify the timestamps. If you wish +to have the output timestamps start at zero, insert the asetpts filter after the +atrim filter. +

+

If multiple start or end options are set, this filter tries to be greedy and +keep all samples that match at least one of the specified constraints. To keep +only the part that matches all the constraints at once, chain multiple atrim +filters. +

+

The defaults are such that all the input is kept. So it is possible to set e.g. +just the end values to keep everything before the specified time. +

+

Examples: +

    +
  • +Drop everything except the second minute of input: +
     
    ffmpeg -i INPUT -af atrim=60:120
    +
    + +
  • +Keep only the first 1000 samples: +
     
    ffmpeg -i INPUT -af atrim=end_sample=1000
    +
    + +
+ + +

34.22 bandpass

+ +

Apply a two-pole Butterworth band-pass filter with central +frequency frequency, and (3dB-point) band-width width. +The csg option selects a constant skirt gain (peak gain = Q) +instead of the default: constant 0dB peak gain. +The filter roll off at 6dB per octave (20dB per decade). +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set the filter’s central frequency. Default is 3000. +

+
+
csg
+

Constant skirt gain if set to 1. Defaults to 0. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +

+
+ + +

34.23 bandreject

+ +

Apply a two-pole Butterworth band-reject filter with central +frequency frequency, and (3dB-point) band-width width. +The filter roll off at 6dB per octave (20dB per decade). +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set the filter’s central frequency. Default is 3000. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +

+
+ + +

34.24 bass

+ +

Boost or cut the bass (lower) frequencies of the audio using a two-pole +shelving filter with a response similar to that of a standard +hi-fi’s tone-controls. This is also known as shelving equalisation (EQ). +

+

The filter accepts the following options: +

+
+
gain, g
+

Give the gain at 0 Hz. Its useful range is about -20 +(for a large cut) to +20 (for a large boost). +Beware of clipping when using a positive gain. +

+
+
frequency, f
+

Set the filter’s central frequency and so can be used +to extend or reduce the frequency range to be boosted or cut. +The default value is 100 Hz. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Determine how steep is the filter’s shelf transition. +

+
+ + +

34.25 biquad

+ +

Apply a biquad IIR filter with the given coefficients. +Where b0, b1, b2 and a0, a1, a2 +are the numerator and denominator coefficients respectively. +

+ +

34.26 channelmap

+ +

Remap input channels to new locations. +

+

It accepts the following parameters: +

+
channel_layout
+

The channel layout of the output stream. +

+
+
map
+

Map channels from input to output. The argument is a ’|’-separated list of +mappings, each in the in_channel-out_channel or +in_channel form. in_channel can be either the name of the input +channel (e.g. FL for front left) or its index in the input channel layout. +out_channel is the name of the output channel or its index in the output +channel layout. If out_channel is not given then it is implicitly an +index, starting with zero and increasing by one for each mapping. +

+
+ +

If no mapping is present, the filter will implicitly map input channels to +output channels, preserving indices. +

+

For example, assuming a 5.1+downmix input MOV file, +

 
ffmpeg -i in.mov -filter 'channelmap=map=DL-FL|DR-FR' out.wav
+
+

will create an output WAV file tagged as stereo from the downmix channels of +the input. +

+

To fix a 5.1 WAV improperly encoded in AAC’s native channel order +

 
ffmpeg -i in.wav -filter 'channelmap=1|2|0|5|3|4:channel_layout=5.1' out.wav
+
+ + +

34.27 channelsplit

+ +

Split each channel from an input audio stream into a separate output stream. +

+

It accepts the following parameters: +

+
channel_layout
+

The channel layout of the input stream. The default is "stereo". +

+
+ +

For example, assuming a stereo input MP3 file, +

 
ffmpeg -i in.mp3 -filter_complex channelsplit out.mkv
+
+

will create an output Matroska file with two audio streams, one containing only +the left channel and the other the right channel. +

+

Split a 5.1 WAV file into per-channel files: +

 
ffmpeg -i in.wav -filter_complex
+'channelsplit=channel_layout=5.1[FL][FR][FC][LFE][SL][SR]'
+-map '[FL]' front_left.wav -map '[FR]' front_right.wav -map '[FC]'
+front_center.wav -map '[LFE]' lfe.wav -map '[SL]' side_left.wav -map '[SR]'
+side_right.wav
+
+ + +

34.28 compand

+

Compress or expand the audio’s dynamic range. +

+

It accepts the following parameters: +

+
+
attacks
+
decays
+

A list of times in seconds for each channel over which the instantaneous level +of the input signal is averaged to determine its volume. attacks refers to +increase of volume and decays refers to decrease of volume. For most +situations, the attack time (response to the audio getting louder) should be +shorter than the decay time, because the human ear is more sensitive to sudden +loud audio than sudden soft audio. A typical value for attack is 0.3 seconds and +a typical value for decay is 0.8 seconds. +

+
+
points
+

A list of points for the transfer function, specified in dB relative to the +maximum possible signal amplitude. Each key points list must be defined using +the following syntax: x0/y0|x1/y1|x2/y2|.... or +x0/y0 x1/y1 x2/y2 .... +

+

The input values must be in strictly increasing order but the transfer function +does not have to be monotonically rising. The point 0/0 is assumed but +may be overridden (by 0/out-dBn). Typical values for the transfer +function are -70/-70|-60/-20. +

+
+
soft-knee
+

Set the curve radius in dB for all joints. It defaults to 0.01. +

+
+
gain
+

Set the additional gain in dB to be applied at all points on the transfer +function. This allows for easy adjustment of the overall gain. +It defaults to 0. +

+
+
volume
+

Set an initial volume, in dB, to be assumed for each channel when filtering +starts. This permits the user to supply a nominal level initially, so that, for +example, a very large gain is not applied to initial signal levels before the +companding has begun to operate. A typical value for audio which is initially +quiet is -90 dB. It defaults to 0. +

+
+
delay
+

Set a delay, in seconds. The input audio is analyzed immediately, but audio is +delayed before being fed to the volume adjuster. Specifying a delay +approximately equal to the attack/decay times allows the filter to effectively +operate in predictive rather than reactive mode. It defaults to 0. +

+
+
+ + +

34.28.1 Examples

+ +
    +
  • +Make music with both quiet and loud passages suitable for listening to in a +noisy environment: +
     
    compand=.3|.3:1|1:-90/-60|-60/-40|-40/-30|-20/-20:6:0:-90:0.2
    +
    + +
  • +A noise gate for when the noise is at a lower level than the signal: +
     
    compand=.1|.1:.2|.2:-900/-900|-50.1/-900|-50/-50:.01:0:-90:.1
    +
    + +
  • +Here is another noise gate, this time for when the noise is at a higher level +than the signal (making it, in some ways, similar to squelch): +
     
    compand=.1|.1:.1|.1:-45.1/-45.1|-45/-900|0/-900:.01:45:-90:.1
    +
    +
+ + +

34.29 earwax

+ +

Make audio easier to listen to on headphones. +

+

This filter adds ‘cues’ to 44.1kHz stereo (i.e. audio CD format) audio +so that when listened to on headphones the stereo image is moved from +inside your head (standard for headphones) to outside and in front of +the listener (standard for speakers). +

+

Ported from SoX. +

+ +

34.30 equalizer

+ +

Apply a two-pole peaking equalisation (EQ) filter. With this +filter, the signal-level at and around a selected frequency can +be increased or decreased, whilst (unlike bandpass and bandreject +filters) that at all other frequencies is unchanged. +

+

In order to produce complex equalisation curves, this filter can +be given several times, each with a different central frequency. +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set the filter’s central frequency in Hz. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +

+
+
gain, g
+

Set the required gain or attenuation in dB. +Beware of clipping when using a positive gain. +

+
+ + +

34.30.1 Examples

+
    +
  • +Attenuate 10 dB at 1000 Hz, with a bandwidth of 200 Hz: +
     
    equalizer=f=1000:width_type=h:width=200:g=-10
    +
    + +
  • +Apply 2 dB gain at 1000 Hz with Q 1 and attenuate 5 dB at 100 Hz with Q 2: +
     
    equalizer=f=1000:width_type=q:width=1:g=2,equalizer=f=100:width_type=q:width=2:g=-5
    +
    +
+ + +

34.31 highpass

+ +

Apply a high-pass filter with 3dB point frequency. +The filter can be either single-pole, or double-pole (the default). +The filter roll off at 6dB per pole per octave (20dB per pole per decade). +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set frequency in Hz. Default is 3000. +

+
+
poles, p
+

Set number of poles. Default is 2. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +Applies only to double-pole filter. +The default is 0.707q and gives a Butterworth response. +

+
+ + +

34.32 join

+ +

Join multiple input streams into one multi-channel stream. +

+

It accepts the following parameters: +

+
inputs
+

The number of input streams. It defaults to 2. +

+
+
channel_layout
+

The desired output channel layout. It defaults to stereo. +

+
+
map
+

Map channels from inputs to output. The argument is a ’|’-separated list of +mappings, each in the input_idx.in_channel-out_channel +form. input_idx is the 0-based index of the input stream. in_channel +can be either the name of the input channel (e.g. FL for front left) or its +index in the specified input stream. out_channel is the name of the output +channel. +

+
+ +

The filter will attempt to guess the mappings when they are not specified +explicitly. It does so by first trying to find an unused matching input channel +and if that fails it picks the first unused input channel. +

+

Join 3 inputs (with properly set channel layouts): +

 
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex join=inputs=3 OUTPUT
+
+ +

Build a 5.1 output from 6 single-channel streams: +

 
ffmpeg -i fl -i fr -i fc -i sl -i sr -i lfe -filter_complex
+'join=inputs=6:channel_layout=5.1:map=0.0-FL|1.0-FR|2.0-FC|3.0-SL|4.0-SR|5.0-LFE'
+out
+
+ + +

34.33 ladspa

+ +

Load a LADSPA (Linux Audio Developer’s Simple Plugin API) plugin. +

+

To enable compilation of this filter you need to configure FFmpeg with +--enable-ladspa. +

+
+
file, f
+

Specifies the name of LADSPA plugin library to load. If the environment +variable LADSPA_PATH is defined, the LADSPA plugin is searched in +each one of the directories specified by the colon separated list in +LADSPA_PATH, otherwise in the standard LADSPA paths, which are in +this order: ‘HOME/.ladspa/lib/’, ‘/usr/local/lib/ladspa/’, +‘/usr/lib/ladspa/’. +

+
+
plugin, p
+

Specifies the plugin within the library. Some libraries contain only +one plugin, but others contain many of them. If this is not set filter +will list all available plugins within the specified library. +

+
+
controls, c
+

Set the ’|’ separated list of controls which are zero or more floating point +values that determine the behavior of the loaded plugin (for example delay, +threshold or gain). +Controls need to be defined using the following syntax: +c0=value0|c1=value1|c2=value2|..., where +valuei is the value set on the i-th control. +If ‘controls’ is set to help, all available controls and +their valid ranges are printed. +

+
+
sample_rate, s
+

Specify the sample rate, default to 44100. Only used if plugin have +zero inputs. +

+
+
nb_samples, n
+

Set the number of samples per channel per each output frame, default +is 1024. Only used if plugin have zero inputs. +

+
+
duration, d
+

Set the minimum duration of the sourced audio. See the function +av_parse_time() for the accepted format, also check the "Time duration" +section in the ffmpeg-utils manual. +Note that the resulting duration may be greater than the specified duration, +as the generated audio is always cut at the end of a complete frame. +If not specified, or the expressed duration is negative, the audio is +supposed to be generated forever. +Only used if plugin have zero inputs. +

+
+
+ + +

34.33.1 Examples

+ +
    +
  • +List all available plugins within amp (LADSPA example plugin) library: +
     
    ladspa=file=amp
    +
    + +
  • +List all available controls and their valid ranges for vcf_notch +plugin from VCF library: +
     
    ladspa=f=vcf:p=vcf_notch:c=help
    +
    + +
  • +Simulate low quality audio equipment using Computer Music Toolkit (CMT) +plugin library: +
     
    ladspa=file=cmt:plugin=lofi:controls=c0=22|c1=12|c2=12
    +
    + +
  • +Add reverberation to the audio using TAP-plugins +(Tom’s Audio Processing plugins): +
     
    ladspa=file=tap_reverb:tap_reverb
    +
    + +
  • +Generate white noise, with 0.2 amplitude: +
     
    ladspa=file=cmt:noise_source_white:c=c0=.2
    +
    + +
  • +Generate 20 bpm clicks using plugin C* Click - Metronome from the +C* Audio Plugin Suite (CAPS) library: +
     
    ladspa=file=caps:Click:c=c1=20'
    +
    + +
  • +Apply C* Eq10X2 - Stereo 10-band equaliser effect: +
     
    ladspa=caps:Eq10X2:c=c0=-48|c9=-24|c3=12|c4=2
    +
    +
+ + +

34.33.2 Commands

+ +

This filter supports the following commands: +

+
cN
+

Modify the N-th control value. +

+

If the specified value is not valid, it is ignored and prior one is kept. +

+
+ + +

34.34 lowpass

+ +

Apply a low-pass filter with 3dB point frequency. +The filter can be either single-pole or double-pole (the default). +The filter roll off at 6dB per pole per octave (20dB per pole per decade). +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set frequency in Hz. Default is 500. +

+
+
poles, p
+

Set number of poles. Default is 2. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +Applies only to double-pole filter. +The default is 0.707q and gives a Butterworth response. +

+
+ + +

34.35 pan

+ +

Mix channels with specific gain levels. The filter accepts the output +channel layout followed by a set of channels definitions. +

+

This filter is also designed to remap efficiently the channels of an audio +stream. +

+

The filter accepts parameters of the form: +"l:outdef:outdef:..." +

+
+
l
+

output channel layout or number of channels +

+
+
outdef
+

output channel specification, of the form: +"out_name=[gain*]in_name[+[gain*]in_name...]" +

+
+
out_name
+

output channel to define, either a channel name (FL, FR, etc.) or a channel +number (c0, c1, etc.) +

+
+
gain
+

multiplicative coefficient for the channel, 1 leaving the volume unchanged +

+
+
in_name
+

input channel to use, see out_name for details; it is not possible to mix +named and numbered input channels +

+
+ +

If the ‘=’ in a channel specification is replaced by ‘<’, then the gains for +that specification will be renormalized so that the total is 1, thus +avoiding clipping noise. +

+ +

34.35.1 Mixing examples

+ +

For example, if you want to down-mix from stereo to mono, but with a bigger +factor for the left channel: +

 
pan=1:c0=0.9*c0+0.1*c1
+
+ +

A customized down-mix to stereo that works automatically for 3-, 4-, 5- and +7-channels surround: +

 
pan=stereo: FL < FL + 0.5*FC + 0.6*BL + 0.6*SL : FR < FR + 0.5*FC + 0.6*BR + 0.6*SR
+
+ +

Note that ffmpeg integrates a default down-mix (and up-mix) system +that should be preferred (see "-ac" option) unless you have very specific +needs. +

+ +

34.35.2 Remapping examples

+ +

The channel remapping will be effective if, and only if: +

+
    +
  • gain coefficients are zeroes or ones, +
  • only one input per channel output, +
+ +

If all these conditions are satisfied, the filter will notify the user ("Pure +channel mapping detected"), and use an optimized and lossless method to do the +remapping. +

+

For example, if you have a 5.1 source and want a stereo audio stream by +dropping the extra channels: +

 
pan="stereo: c0=FL : c1=FR"
+
+ +

Given the same source, you can also switch front left and front right channels +and keep the input channel layout: +

 
pan="5.1: c0=c1 : c1=c0 : c2=c2 : c3=c3 : c4=c4 : c5=c5"
+
+ +

If the input is a stereo audio stream, you can mute the front left channel (and +still keep the stereo channel layout) with: +

 
pan="stereo:c1=c1"
+
+ +

Still with a stereo audio stream input, you can copy the right channel in both +front left and right: +

 
pan="stereo: c0=FR : c1=FR"
+
+ + +

34.36 replaygain

+ +

ReplayGain scanner filter. This filter takes an audio stream as an input and +outputs it unchanged. +At end of filtering it displays track_gain and track_peak. +

+ +

34.37 resample

+ +

Convert the audio sample format, sample rate and channel layout. It is +not meant to be used directly. +

+ +

34.38 silencedetect

+ +

Detect silence in an audio stream. +

+

This filter logs a message when it detects that the input audio volume is less +or equal to a noise tolerance value for a duration greater or equal to the +minimum detected noise duration. +

+

The printed times and duration are expressed in seconds. +

+

The filter accepts the following options: +

+
+
duration, d
+

Set silence duration until notification (default is 2 seconds). +

+
+
noise, n
+

Set noise tolerance. Can be specified in dB (in case "dB" is appended to the +specified value) or amplitude ratio. Default is -60dB, or 0.001. +

+
+ + +

34.38.1 Examples

+ +
    +
  • +Detect 5 seconds of silence with -50dB noise tolerance: +
     
    silencedetect=n=-50dB:d=5
    +
    + +
  • +Complete example with ffmpeg to detect silence with 0.0001 noise +tolerance in ‘silence.mp3’: +
     
    ffmpeg -i silence.mp3 -af silencedetect=noise=0.0001 -f null -
    +
    +
+ + +

34.39 treble

+ +

Boost or cut treble (upper) frequencies of the audio using a two-pole +shelving filter with a response similar to that of a standard +hi-fi’s tone-controls. This is also known as shelving equalisation (EQ). +

+

The filter accepts the following options: +

+
+
gain, g
+

Give the gain at whichever is the lower of ~22 kHz and the +Nyquist frequency. Its useful range is about -20 (for a large cut) +to +20 (for a large boost). Beware of clipping when using a positive gain. +

+
+
frequency, f
+

Set the filter’s central frequency and so can be used +to extend or reduce the frequency range to be boosted or cut. +The default value is 3000 Hz. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Determine how steep is the filter’s shelf transition. +

+
+ + +

34.40 volume

+ +

Adjust the input audio volume. +

+

It accepts the following parameters: +

+
volume
+

Set audio volume expression. +

+

Output values are clipped to the maximum value. +

+

The output audio volume is given by the relation: +

 
output_volume = volume * input_volume
+
+ +

The default value for volume is "1.0". +

+
+
precision
+

This parameter represents the mathematical precision. +

+

It determines which input sample formats will be allowed, which affects the +precision of the volume scaling. +

+
+
fixed
+

8-bit fixed-point; this limits input sample format to U8, S16, and S32. +

+
float
+

32-bit floating-point; this limits input sample format to FLT. (default) +

+
double
+

64-bit floating-point; this limits input sample format to DBL. +

+
+ +
+
replaygain
+

Choose the behaviour on encountering ReplayGain side data in input frames. +

+
+
drop
+

Remove ReplayGain side data, ignoring its contents (the default). +

+
+
ignore
+

Ignore ReplayGain side data, but leave it in the frame. +

+
+
track
+

Prefer the track gain, if present. +

+
+
album
+

Prefer the album gain, if present. +

+
+ +
+
replaygain_preamp
+

Pre-amplification gain in dB to apply to the selected replaygain gain. +

+

Default value for replaygain_preamp is 0.0. +

+
+
eval
+

Set when the volume expression is evaluated. +

+

It accepts the following values: +

+
once
+

only evaluate expression once during the filter initialization, or +when the ‘volume’ command is sent +

+
+
frame
+

evaluate expression for each incoming frame +

+
+ +

Default value is ‘once’. +

+
+ +

The volume expression can contain the following parameters. +

+
+
n
+

frame number (starting at zero) +

+
nb_channels
+

number of channels +

+
nb_consumed_samples
+

number of samples consumed by the filter +

+
nb_samples
+

number of samples in the current frame +

+
pos
+

original frame position in the file +

+
pts
+

frame PTS +

+
sample_rate
+

sample rate +

+
startpts
+

PTS at start of stream +

+
startt
+

time at start of stream +

+
t
+

frame time +

+
tb
+

timestamp timebase +

+
volume
+

last set volume value +

+
+ +

Note that when ‘eval’ is set to ‘once’ only the +sample_rate and tb variables are available, all other +variables will evaluate to NAN. +

+ +

34.40.1 Commands

+ +

This filter supports the following commands: +

+
volume
+

Modify the volume expression. +The command accepts the same syntax of the corresponding option. +

+

If the specified expression is not valid, it is kept at its current +value. +

+
replaygain_noclip
+

Prevent clipping by limiting the gain applied. +

+

Default value for replaygain_noclip is 1. +

+
+
+ + +

34.40.2 Examples

+ +
    +
  • +Halve the input audio volume: +
     
    volume=volume=0.5
    +volume=volume=1/2
    +volume=volume=-6.0206dB
    +
    + +

    In all the above example the named key for ‘volume’ can be +omitted, for example like in: +

     
    volume=0.5
    +
    + +
  • +Increase input audio power by 6 decibels using fixed-point precision: +
     
    volume=volume=6dB:precision=fixed
    +
    + +
  • +Fade volume after time 10 with an annihilation period of 5 seconds: +
     
    volume='if(lt(t,10),1,max(1-(t-10)/5,0))':eval=frame
    +
    +
+ + +

34.41 volumedetect

+ +

Detect the volume of the input video. +

+

The filter has no parameters. The input is not modified. Statistics about +the volume will be printed in the log when the input stream end is reached. +

+

In particular it will show the mean volume (root mean square), maximum +volume (on a per-sample basis), and the beginning of a histogram of the +registered volume values (from the maximum value to a cumulated 1/1000 of +the samples). +

+

All volumes are in decibels relative to the maximum PCM value. +

+ +

34.41.1 Examples

+ +

Here is an excerpt of the output: +

 
[Parsed_volumedetect_0  0xa23120] mean_volume: -27 dB
+[Parsed_volumedetect_0  0xa23120] max_volume: -4 dB
+[Parsed_volumedetect_0  0xa23120] histogram_4db: 6
+[Parsed_volumedetect_0  0xa23120] histogram_5db: 62
+[Parsed_volumedetect_0  0xa23120] histogram_6db: 286
+[Parsed_volumedetect_0  0xa23120] histogram_7db: 1042
+[Parsed_volumedetect_0  0xa23120] histogram_8db: 2551
+[Parsed_volumedetect_0  0xa23120] histogram_9db: 4609
+[Parsed_volumedetect_0  0xa23120] histogram_10db: 8409
+
+ +

It means that: +

    +
  • +The mean square energy is approximately -27 dB, or 10^-2.7. +
  • +The largest sample is at -4 dB, or more precisely between -4 dB and -5 dB. +
  • +There are 6 samples at -4 dB, 62 at -5 dB, 286 at -6 dB, etc. +
+ +

In other words, raising the volume by +4 dB does not cause any clipping, +raising it by +5 dB causes clipping for 6 samples, etc. +

+ + +

35. Audio Sources

+ +

Below is a description of the currently available audio sources. +

+ +

35.1 abuffer

+ +

Buffer audio frames, and make them available to the filter chain. +

+

This source is mainly intended for a programmatic use, in particular +through the interface defined in ‘libavfilter/asrc_abuffer.h’. +

+

It accepts the following parameters: +

+
time_base
+

The timebase which will be used for timestamps of submitted frames. It must be +either a floating-point number or in numerator/denominator form. +

+
+
sample_rate
+

The sample rate of the incoming audio buffers. +

+
+
sample_fmt
+

The sample format of the incoming audio buffers. +Either a sample format name or its corresponging integer representation from +the enum AVSampleFormat in ‘libavutil/samplefmt.h’ +

+
+
channel_layout
+

The channel layout of the incoming audio buffers. +Either a channel layout name from channel_layout_map in +‘libavutil/channel_layout.c’ or its corresponding integer representation +from the AV_CH_LAYOUT_* macros in ‘libavutil/channel_layout.h’ +

+
+
channels
+

The number of channels of the incoming audio buffers. +If both channels and channel_layout are specified, then they +must be consistent. +

+
+
+ + +

35.1.1 Examples

+ +
 
abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo
+
+ +

will instruct the source to accept planar 16bit signed stereo at 44100Hz. +Since the sample format with name "s16p" corresponds to the number +6 and the "stereo" channel layout corresponds to the value 0x3, this is +equivalent to: +

 
abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3
+
+ + +

35.2 aevalsrc

+ +

Generate an audio signal specified by an expression. +

+

This source accepts in input one or more expressions (one for each +channel), which are evaluated and used to generate a corresponding +audio signal. +

+

This source accepts the following options: +

+
+
exprs
+

Set the ’|’-separated expressions list for each separate channel. In case the +‘channel_layout’ option is not specified, the selected channel layout +depends on the number of provided expressions. Otherwise the last +specified expression is applied to the remaining output channels. +

+
+
channel_layout, c
+

Set the channel layout. The number of channels in the specified layout +must be equal to the number of specified expressions. +

+
+
duration, d
+

Set the minimum duration of the sourced audio. See the function +av_parse_time() for the accepted format. +Note that the resulting duration may be greater than the specified +duration, as the generated audio is always cut at the end of a +complete frame. +

+

If not specified, or the expressed duration is negative, the audio is +supposed to be generated forever. +

+
+
nb_samples, n
+

Set the number of samples per channel per each output frame, +default to 1024. +

+
+
sample_rate, s
+

Specify the sample rate, default to 44100. +

+
+ +

Each expression in exprs can contain the following constants: +

+
+
n
+

number of the evaluated sample, starting from 0 +

+
+
t
+

time of the evaluated sample expressed in seconds, starting from 0 +

+
+
s
+

sample rate +

+
+
+ + +

35.2.1 Examples

+ +
    +
  • +Generate silence: +
     
    aevalsrc=0
    +
    + +
  • +Generate a sin signal with frequency of 440 Hz, set sample rate to +8000 Hz: +
     
    aevalsrc="sin(440*2*PI*t):s=8000"
    +
    + +
  • +Generate a two channels signal, specify the channel layout (Front +Center + Back Center) explicitly: +
     
    aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC"
    +
    + +
  • +Generate white noise: +
     
    aevalsrc="-2+random(0)"
    +
    + +
  • +Generate an amplitude modulated signal: +
     
    aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)"
    +
    + +
  • +Generate 2.5 Hz binaural beats on a 360 Hz carrier: +
     
    aevalsrc="0.1*sin(2*PI*(360-2.5/2)*t) | 0.1*sin(2*PI*(360+2.5/2)*t)"
    +
    + +
+ + +

35.3 anullsrc

+ +

The null audio source, return unprocessed audio frames. It is mainly useful +as a template and to be employed in analysis / debugging tools, or as +the source for filters which ignore the input data (for example the sox +synth filter). +

+

This source accepts the following options: +

+
+
channel_layout, cl
+
+

Specifies the channel layout, and can be either an integer or a string +representing a channel layout. The default value of channel_layout +is "stereo". +

+

Check the channel_layout_map definition in +‘libavutil/channel_layout.c’ for the mapping between strings and +channel layout values. +

+
+
sample_rate, r
+

Specifies the sample rate, and defaults to 44100. +

+
+
nb_samples, n
+

Set the number of samples per requested frames. +

+
+
+ + +

35.3.1 Examples

+ +
    +
  • +Set the sample rate to 48000 Hz and the channel layout to AV_CH_LAYOUT_MONO. +
     
    anullsrc=r=48000:cl=4
    +
    + +
  • +Do the same operation with a more obvious syntax: +
     
    anullsrc=r=48000:cl=mono
    +
    +
+ +

All the parameters need to be explicitly defined. +

+ +

35.4 flite

+ +

Synthesize a voice utterance using the libflite library. +

+

To enable compilation of this filter you need to configure FFmpeg with +--enable-libflite. +

+

Note that the flite library is not thread-safe. +

+

The filter accepts the following options: +

+
+
list_voices
+

If set to 1, list the names of the available voices and exit +immediately. Default value is 0. +

+
+
nb_samples, n
+

Set the maximum number of samples per frame. Default value is 512. +

+
+
textfile
+

Set the filename containing the text to speak. +

+
+
text
+

Set the text to speak. +

+
+
voice, v
+

Set the voice to use for the speech synthesis. Default value is +kal. See also the list_voices option. +

+
+ + +

35.4.1 Examples

+ +
    +
  • +Read from file ‘speech.txt’, and synthetize the text using the +standard flite voice: +
     
    flite=textfile=speech.txt
    +
    + +
  • +Read the specified text selecting the slt voice: +
     
    flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
    +
    + +
  • +Input text to ffmpeg: +
     
    ffmpeg -f lavfi -i flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
    +
    + +
  • +Make ‘ffplay’ speak the specified text, using flite and +the lavfi device: +
     
    ffplay -f lavfi flite=text='No more be grieved for which that thou hast done.'
    +
    +
+ +

For more information about libflite, check: +http://www.speech.cs.cmu.edu/flite/ +

+ +

35.5 sine

+ +

Generate an audio signal made of a sine wave with amplitude 1/8. +

+

The audio signal is bit-exact. +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set the carrier frequency. Default is 440 Hz. +

+
+
beep_factor, b
+

Enable a periodic beep every second with frequency beep_factor times +the carrier frequency. Default is 0, meaning the beep is disabled. +

+
+
sample_rate, r
+

Specify the sample rate, default is 44100. +

+
+
duration, d
+

Specify the duration of the generated audio stream. +

+
+
samples_per_frame
+

Set the number of samples per output frame, default is 1024. +

+
+ + +

35.5.1 Examples

+ +
    +
  • +Generate a simple 440 Hz sine wave: +
     
    sine
    +
    + +
  • +Generate a 220 Hz sine wave with a 880 Hz beep each second, for 5 seconds: +
     
    sine=220:4:d=5
    +sine=f=220:b=4:d=5
    +sine=frequency=220:beep_factor=4:duration=5
    +
    + +
+ + + +

36. Audio Sinks

+ +

Below is a description of the currently available audio sinks. +

+ +

36.1 abuffersink

+ +

Buffer audio frames, and make them available to the end of filter chain. +

+

This sink is mainly intended for programmatic use, in particular +through the interface defined in ‘libavfilter/buffersink.h’ +or the options system. +

+

It accepts a pointer to an AVABufferSinkContext structure, which +defines the incoming buffers’ formats, to be passed as the opaque +parameter to avfilter_init_filter for initialization. +

+

36.2 anullsink

+ +

Null audio sink; do absolutely nothing with the input audio. It is +mainly useful as a template and for use in analysis / debugging +tools. +

+ + +

37. Video Filters

+ +

When you configure your FFmpeg build, you can disable any of the +existing filters using --disable-filters. +The configure output will show the video filters included in your +build. +

+

Below is a description of the currently available video filters. +

+ +

37.1 alphaextract

+ +

Extract the alpha component from the input as a grayscale video. This +is especially useful with the alphamerge filter. +

+ +

37.2 alphamerge

+ +

Add or replace the alpha component of the primary input with the +grayscale value of a second input. This is intended for use with +alphaextract to allow the transmission or storage of frame +sequences that have alpha in a format that doesn’t support an alpha +channel. +

+

For example, to reconstruct full frames from a normal YUV-encoded video +and a separate video created with alphaextract, you might use: +

 
movie=in_alpha.mkv [alpha]; [in][alpha] alphamerge [out]
+
+ +

Since this filter is designed for reconstruction, it operates on frame +sequences without considering timestamps, and terminates when either +input reaches end of stream. This will cause problems if your encoding +pipeline drops frames. If you’re trying to apply an image as an +overlay to a video stream, consider the overlay filter instead. +

+ +

37.3 ass

+ +

Same as the subtitles filter, except that it doesn’t require libavcodec +and libavformat to work. On the other hand, it is limited to ASS (Advanced +Substation Alpha) subtitles files. +

+ +

37.4 bbox

+ +

Compute the bounding box for the non-black pixels in the input frame +luminance plane. +

+

This filter computes the bounding box containing all the pixels with a +luminance value greater than the minimum allowed value. +The parameters describing the bounding box are printed on the filter +log. +

+

The filter accepts the following option: +

+
+
min_val
+

Set the minimal luminance value. Default is 16. +

+
+ + +

37.5 blackdetect

+ +

Detect video intervals that are (almost) completely black. Can be +useful to detect chapter transitions, commercials, or invalid +recordings. Output lines contains the time for the start, end and +duration of the detected black interval expressed in seconds. +

+

In order to display the output lines, you need to set the loglevel at +least to the AV_LOG_INFO value. +

+

The filter accepts the following options: +

+
+
black_min_duration, d
+

Set the minimum detected black duration expressed in seconds. It must +be a non-negative floating point number. +

+

Default value is 2.0. +

+
+
picture_black_ratio_th, pic_th
+

Set the threshold for considering a picture "black". +Express the minimum value for the ratio: +

 
nb_black_pixels / nb_pixels
+
+ +

for which a picture is considered black. +Default value is 0.98. +

+
+
pixel_black_th, pix_th
+

Set the threshold for considering a pixel "black". +

+

The threshold expresses the maximum pixel luminance value for which a +pixel is considered "black". The provided value is scaled according to +the following equation: +

 
absolute_threshold = luminance_minimum_value + pixel_black_th * luminance_range_size
+
+ +

luminance_range_size and luminance_minimum_value depend on +the input video format, the range is [0-255] for YUV full-range +formats and [16-235] for YUV non full-range formats. +

+

Default value is 0.10. +

+
+ +

The following example sets the maximum pixel threshold to the minimum +value, and detects only black intervals of 2 or more seconds: +

 
blackdetect=d=2:pix_th=0.00
+
+ + +

37.6 blackframe

+ +

Detect frames that are (almost) completely black. Can be useful to +detect chapter transitions or commercials. Output lines consist of +the frame number of the detected frame, the percentage of blackness, +the position in the file if known or -1 and the timestamp in seconds. +

+

In order to display the output lines, you need to set the loglevel at +least to the AV_LOG_INFO value. +

+

It accepts the following parameters: +

+
+
amount
+

The percentage of the pixels that have to be below the threshold; it defaults to +98. +

+
+
threshold, thresh
+

The threshold below which a pixel value is considered black; it defaults to +32. +

+
+
+ + +

37.7 blend

+ +

Blend two video frames into each other. +

+

It takes two input streams and outputs one stream, the first input is the +"top" layer and second input is "bottom" layer. +Output terminates when shortest input terminates. +

+

A description of the accepted options follows. +

+
+
c0_mode
+
c1_mode
+
c2_mode
+
c3_mode
+
all_mode
+

Set blend mode for specific pixel component or all pixel components in case +of all_mode. Default value is normal. +

+

Available values for component modes are: +

+
addition
+
and
+
average
+
burn
+
darken
+
difference
+
divide
+
dodge
+
exclusion
+
hardlight
+
lighten
+
multiply
+
negation
+
normal
+
or
+
overlay
+
phoenix
+
pinlight
+
reflect
+
screen
+
softlight
+
subtract
+
vividlight
+
xor
+
+ +
+
c0_opacity
+
c1_opacity
+
c2_opacity
+
c3_opacity
+
all_opacity
+

Set blend opacity for specific pixel component or all pixel components in case +of all_opacity. Only used in combination with pixel component blend modes. +

+
+
c0_expr
+
c1_expr
+
c2_expr
+
c3_expr
+
all_expr
+

Set blend expression for specific pixel component or all pixel components in case +of all_expr. Note that related mode options will be ignored if those are set. +

+

The expressions can use the following variables: +

+
+
N
+

The sequential number of the filtered frame, starting from 0. +

+
+
X
+
Y
+

the coordinates of the current sample +

+
+
W
+
H
+

the width and height of currently filtered plane +

+
+
SW
+
SH
+

Width and height scale depending on the currently filtered plane. It is the +ratio between the corresponding luma plane number of pixels and the current +plane ones. E.g. for YUV4:2:0 the values are 1,1 for the luma plane, and +0.5,0.5 for chroma planes. +

+
+
T
+

Time of the current frame, expressed in seconds. +

+
+
TOP, A
+

Value of pixel component at current location for first video frame (top layer). +

+
+
BOTTOM, B
+

Value of pixel component at current location for second video frame (bottom layer). +

+
+ +
+
shortest
+

Force termination when the shortest input terminates. Default is 0. +

+
repeatlast
+

Continue applying the last bottom frame after the end of the stream. A value of +0 disable the filter after the last frame of the bottom layer is reached. +Default is 1. +

+
+ + +

37.7.1 Examples

+ +
    +
  • +Apply transition from bottom layer to top layer in first 10 seconds: +
     
    blend=all_expr='A*(if(gte(T,10),1,T/10))+B*(1-(if(gte(T,10),1,T/10)))'
    +
    + +
  • +Apply 1x1 checkerboard effect: +
     
    blend=all_expr='if(eq(mod(X,2),mod(Y,2)),A,B)'
    +
    + +
  • +Apply uncover left effect: +
     
    blend=all_expr='if(gte(N*SW+X,W),A,B)'
    +
    + +
  • +Apply uncover down effect: +
     
    blend=all_expr='if(gte(Y-N*SH,0),A,B)'
    +
    + +
  • +Apply uncover up-left effect: +
     
    blend=all_expr='if(gte(T*SH*40+Y,H)*gte((T*40*SW+X)*W/H,W),A,B)'
    +
    +
+ + +

37.8 boxblur

+ +

Apply a boxblur algorithm to the input video. +

+

It accepts the following parameters: +

+
+
luma_radius, lr
+
luma_power, lp
+
chroma_radius, cr
+
chroma_power, cp
+
alpha_radius, ar
+
alpha_power, ap
+
+ +

A description of the accepted options follows. +

+
+
luma_radius, lr
+
chroma_radius, cr
+
alpha_radius, ar
+

Set an expression for the box radius in pixels used for blurring the +corresponding input plane. +

+

The radius value must be a non-negative number, and must not be +greater than the value of the expression min(w,h)/2 for the +luma and alpha planes, and of min(cw,ch)/2 for the chroma +planes. +

+

Default value for ‘luma_radius’ is "2". If not specified, +‘chroma_radius’ and ‘alpha_radius’ default to the +corresponding value set for ‘luma_radius’. +

+

The expressions can contain the following constants: +

+
w
+
h
+

The input width and height in pixels. +

+
+
cw
+
ch
+

The input chroma image width and height in pixels. +

+
+
hsub
+
vsub
+

The horizontal and vertical chroma subsample values. For example, for the +pixel format "yuv422p", hsub is 2 and vsub is 1. +

+
+ +
+
luma_power, lp
+
chroma_power, cp
+
alpha_power, ap
+

Specify how many times the boxblur filter is applied to the +corresponding plane. +

+

Default value for ‘luma_power’ is 2. If not specified, +‘chroma_power’ and ‘alpha_power’ default to the +corresponding value set for ‘luma_power’. +

+

A value of 0 will disable the effect. +

+
+ + +

37.8.1 Examples

+ +
    +
  • +Apply a boxblur filter with the luma, chroma, and alpha radii +set to 2: +
     
    boxblur=luma_radius=2:luma_power=1
    +boxblur=2:1
    +
    + +
  • +Set the luma radius to 2, and alpha and chroma radius to 0: +
     
    boxblur=2:1:cr=0:ar=0
    +
    + +
  • +Set the luma and chroma radii to a fraction of the video dimension: +
     
    boxblur=luma_radius=min(h\,w)/10:luma_power=1:chroma_radius=min(cw\,ch)/10:chroma_power=1
    +
    +
+ + +

37.9 colorbalance

+

Modify intensity of primary colors (red, green and blue) of input frames. +

+

The filter allows an input frame to be adjusted in the shadows, midtones or highlights +regions for the red-cyan, green-magenta or blue-yellow balance. +

+

A positive adjustment value shifts the balance towards the primary color, a negative +value towards the complementary color. +

+

The filter accepts the following options: +

+
+
rs
+
gs
+
bs
+

Adjust red, green and blue shadows (darkest pixels). +

+
+
rm
+
gm
+
bm
+

Adjust red, green and blue midtones (medium pixels). +

+
+
rh
+
gh
+
bh
+

Adjust red, green and blue highlights (brightest pixels). +

+

Allowed ranges for options are [-1.0, 1.0]. Defaults are 0. +

+
+ + +

37.9.1 Examples

+ +
    +
  • +Add red color cast to shadows: +
     
    colorbalance=rs=.3
    +
    +
+ + +

37.10 colorchannelmixer

+ +

Adjust video input frames by re-mixing color channels. +

+

This filter modifies a color channel by adding the values associated to +the other channels of the same pixels. For example if the value to +modify is red, the output value will be: +

 
red=red*rr + blue*rb + green*rg + alpha*ra
+
+ +

The filter accepts the following options: +

+
+
rr
+
rg
+
rb
+
ra
+

Adjust contribution of input red, green, blue and alpha channels for output red channel. +Default is 1 for rr, and 0 for rg, rb and ra. +

+
+
gr
+
gg
+
gb
+
ga
+

Adjust contribution of input red, green, blue and alpha channels for output green channel. +Default is 1 for gg, and 0 for gr, gb and ga. +

+
+
br
+
bg
+
bb
+
ba
+

Adjust contribution of input red, green, blue and alpha channels for output blue channel. +Default is 1 for bb, and 0 for br, bg and ba. +

+
+
ar
+
ag
+
ab
+
aa
+

Adjust contribution of input red, green, blue and alpha channels for output alpha channel. +Default is 1 for aa, and 0 for ar, ag and ab. +

+

Allowed ranges for options are [-2.0, 2.0]. +

+
+ + +

37.10.1 Examples

+ +
    +
  • +Convert source to grayscale: +
     
    colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3
    +
    +
  • +Simulate sepia tones: +
     
    colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131
    +
    +
+ + +

37.11 colormatrix

+ +

Convert color matrix. +

+

The filter accepts the following options: +

+
+
src
+
dst
+

Specify the source and destination color matrix. Both values must be +specified. +

+

The accepted values are: +

+
bt709
+

BT.709 +

+
+
bt601
+

BT.601 +

+
+
smpte240m
+

SMPTE-240M +

+
+
fcc
+

FCC +

+
+
+
+ +

For example to convert from BT.601 to SMPTE-240M, use the command: +

 
colormatrix=bt601:smpte240m
+
+ + +

37.12 copy

+ +

Copy the input source unchanged to the output. This is mainly useful for +testing purposes. +

+ +

37.13 crop

+ +

Crop the input video to given dimensions. +

+

It accepts the following parameters: +

+
+
w, out_w
+

The width of the output video. It defaults to iw. +This expression is evaluated only once during the filter +configuration. +

+
+
h, out_h
+

The height of the output video. It defaults to ih. +This expression is evaluated only once during the filter +configuration. +

+
+
x
+

The horizontal position, in the input video, of the left edge of the output +video. It defaults to (in_w-out_w)/2. +This expression is evaluated per-frame. +

+
+
y
+

The vertical position, in the input video, of the top edge of the output video. +It defaults to (in_h-out_h)/2. +This expression is evaluated per-frame. +

+
+
keep_aspect
+

If set to 1 will force the output display aspect ratio +to be the same of the input, by changing the output sample aspect +ratio. It defaults to 0. +

+
+ +

The out_w, out_h, x, y parameters are +expressions containing the following constants: +

+
+
x
+
y
+

The computed values for x and y. They are evaluated for +each new frame. +

+
+
in_w
+
in_h
+

The input width and height. +

+
+
iw
+
ih
+

These are the same as in_w and in_h. +

+
+
out_w
+
out_h
+

The output (cropped) width and height. +

+
+
ow
+
oh
+

These are the same as out_w and out_h. +

+
+
a
+

same as iw / ih +

+
+
sar
+

input sample aspect ratio +

+
+
dar
+

input display aspect ratio, it is the same as (iw / ih) * sar +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
n
+

The number of the input frame, starting from 0. +

+
+
pos
+

the position in the file of the input frame, NAN if unknown +

+
+
t
+

The timestamp expressed in seconds. It’s NAN if the input timestamp is unknown. +

+
+
+ +

The expression for out_w may depend on the value of out_h, +and the expression for out_h may depend on out_w, but they +cannot depend on x and y, as x and y are +evaluated after out_w and out_h. +

+

The x and y parameters specify the expressions for the +position of the top-left corner of the output (non-cropped) area. They +are evaluated for each frame. If the evaluated value is not valid, it +is approximated to the nearest valid value. +

+

The expression for x may depend on y, and the expression +for y may depend on x. +

+ +

37.13.1 Examples

+ +
    +
  • +Crop area with size 100x100 at position (12,34). +
     
    crop=100:100:12:34
    +
    + +

    Using named options, the example above becomes: +

     
    crop=w=100:h=100:x=12:y=34
    +
    + +
  • +Crop the central input area with size 100x100: +
     
    crop=100:100
    +
    + +
  • +Crop the central input area with size 2/3 of the input video: +
     
    crop=2/3*in_w:2/3*in_h
    +
    + +
  • +Crop the input video central square: +
     
    crop=out_w=in_h
    +crop=in_h
    +
    + +
  • +Delimit the rectangle with the top-left corner placed at position +100:100 and the right-bottom corner corresponding to the right-bottom +corner of the input image. +
     
    crop=in_w-100:in_h-100:100:100
    +
    + +
  • +Crop 10 pixels from the left and right borders, and 20 pixels from +the top and bottom borders +
     
    crop=in_w-2*10:in_h-2*20
    +
    + +
  • +Keep only the bottom right quarter of the input image: +
     
    crop=in_w/2:in_h/2:in_w/2:in_h/2
    +
    + +
  • +Crop height for getting Greek harmony: +
     
    crop=in_w:1/PHI*in_w
    +
    + +
  • +Appply trembling effect: +
     
    crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(n/10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(n/7)
    +
    + +
  • +Apply erratic camera effect depending on timestamp: +
     
    crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(t*10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(t*13)"
    +
    + +
  • +Set x depending on the value of y: +
     
    crop=in_w/2:in_h/2:y:10+10*sin(n/10)
    +
    +
+ + +

37.14 cropdetect

+ +

Auto-detect the crop size. +

+

It calculates the necessary cropping parameters and prints the +recommended parameters via the logging system. The detected dimensions +correspond to the non-black area of the input video. +

+

It accepts the following parameters: +

+
+
limit
+

Set higher black value threshold, which can be optionally specified +from nothing (0) to everything (255). An intensity value greater +to the set value is considered non-black. It defaults to 24. +

+
+
round
+

The value which the width/height should be divisible by. It defaults to +16. The offset is automatically adjusted to center the video. Use 2 to +get only even dimensions (needed for 4:2:2 video). 16 is best when +encoding to most video codecs. +

+
+
reset_count, reset
+

Set the counter that determines after how many frames cropdetect will +reset the previously detected largest video area and start over to +detect the current optimal crop area. Default value is 0. +

+

This can be useful when channel logos distort the video area. 0 +indicates ’never reset’, and returns the largest area encountered during +playback. +

+
+ +

+

+

37.15 curves

+ +

Apply color adjustments using curves. +

+

This filter is similar to the Adobe Photoshop and GIMP curves tools. Each +component (red, green and blue) has its values defined by N key points +tied from each other using a smooth curve. The x-axis represents the pixel +values from the input frame, and the y-axis the new pixel values to be set for +the output frame. +

+

By default, a component curve is defined by the two points (0;0) and +(1;1). This creates a straight line where each original pixel value is +"adjusted" to its own value, which means no change to the image. +

+

The filter allows you to redefine these two points and add some more. A new +curve (using a natural cubic spline interpolation) will be define to pass +smoothly through all these new coordinates. The new defined points needs to be +strictly increasing over the x-axis, and their x and y values must +be in the [0;1] interval. If the computed curves happened to go outside +the vector spaces, the values will be clipped accordingly. +

+

If there is no key point defined in x=0, the filter will automatically +insert a (0;0) point. In the same way, if there is no key point defined +in x=1, the filter will automatically insert a (1;1) point. +

+

The filter accepts the following options: +

+
+
preset
+

Select one of the available color presets. This option can be used in addition +to the ‘r’, ‘g’, ‘b’ parameters; in this case, the later +options takes priority on the preset values. +Available presets are: +

+
none
+
color_negative
+
cross_process
+
darker
+
increase_contrast
+
lighter
+
linear_contrast
+
medium_contrast
+
negative
+
strong_contrast
+
vintage
+
+

Default is none. +

+
master, m
+

Set the master key points. These points will define a second pass mapping. It +is sometimes called a "luminance" or "value" mapping. It can be used with +‘r’, ‘g’, ‘b’ or ‘all’ since it acts like a +post-processing LUT. +

+
red, r
+

Set the key points for the red component. +

+
green, g
+

Set the key points for the green component. +

+
blue, b
+

Set the key points for the blue component. +

+
all
+

Set the key points for all components (not including master). +Can be used in addition to the other key points component +options. In this case, the unset component(s) will fallback on this +‘all’ setting. +

+
psfile
+

Specify a Photoshop curves file (.asv) to import the settings from. +

+
+ +

To avoid some filtergraph syntax conflicts, each key points list need to be +defined using the following syntax: x0/y0 x1/y1 x2/y2 .... +

+ +

37.15.1 Examples

+ +
    +
  • +Increase slightly the middle level of blue: +
     
    curves=blue='0.5/0.58'
    +
    + +
  • +Vintage effect: +
     
    curves=r='0/0.11 .42/.51 1/0.95':g='0.50/0.48':b='0/0.22 .49/.44 1/0.8'
    +
    +

    Here we obtain the following coordinates for each components: +

    +
    red
    +

    (0;0.11) (0.42;0.51) (1;0.95) +

    +
    green
    +

    (0;0) (0.50;0.48) (1;1) +

    +
    blue
    +

    (0;0.22) (0.49;0.44) (1;0.80) +

    +
    + +
  • +The previous example can also be achieved with the associated built-in preset: +
     
    curves=preset=vintage
    +
    + +
  • +Or simply: +
     
    curves=vintage
    +
    + +
  • +Use a Photoshop preset and redefine the points of the green component: +
     
    curves=psfile='MyCurvesPresets/purple.asv':green='0.45/0.53'
    +
    +
+ + +

37.16 dctdnoiz

+ +

Denoise frames using 2D DCT (frequency domain filtering). +

+

This filter is not designed for real time and can be extremely slow. +

+

The filter accepts the following options: +

+
+
sigma, s
+

Set the noise sigma constant. +

+

This sigma defines a hard threshold of 3 * sigma; every DCT +coefficient (absolute value) below this threshold with be dropped. +

+

If you need a more advanced filtering, see ‘expr’. +

+

Default is 0. +

+
+
overlap
+

Set number overlapping pixels for each block. Each block is of size +16x16. Since the filter can be slow, you may want to reduce this value, +at the cost of a less effective filter and the risk of various artefacts. +

+

If the overlapping value doesn’t allow to process the whole input width or +height, a warning will be displayed and according borders won’t be denoised. +

+

Default value is 15. +

+
+
expr, e
+

Set the coefficient factor expression. +

+

For each coefficient of a DCT block, this expression will be evaluated as a +multiplier value for the coefficient. +

+

If this is option is set, the ‘sigma’ option will be ignored. +

+

The absolute value of the coefficient can be accessed through the c +variable. +

+
+ + +

37.16.1 Examples

+ +

Apply a denoise with a ‘sigma’ of 4.5: +

 
dctdnoiz=4.5
+
+ +

The same operation can be achieved using the expression system: +

 
dctdnoiz=e='gte(c, 4.5*3)'
+
+ +

+

+

37.17 decimate

+ +

Drop duplicated frames at regular intervals. +

+

The filter accepts the following options: +

+
+
cycle
+

Set the number of frames from which one will be dropped. Setting this to +N means one frame in every batch of N frames will be dropped. +Default is 5. +

+
+
dupthresh
+

Set the threshold for duplicate detection. If the difference metric for a frame +is less than or equal to this value, then it is declared as duplicate. Default +is 1.1 +

+
+
scthresh
+

Set scene change threshold. Default is 15. +

+
+
blockx
+
blocky
+

Set the size of the x and y-axis blocks used during metric calculations. +Larger blocks give better noise suppression, but also give worse detection of +small movements. Must be a power of two. Default is 32. +

+
+
ppsrc
+

Mark main input as a pre-processed input and activate clean source input +stream. This allows the input to be pre-processed with various filters to help +the metrics calculation while keeping the frame selection lossless. When set to +1, the first stream is for the pre-processed input, and the second +stream is the clean source from where the kept frames are chosen. Default is +0. +

+
+
chroma
+

Set whether or not chroma is considered in the metric calculations. Default is +1. +

+
+ + +

37.18 dejudder

+ +

Remove judder produced by partially interlaced telecined content. +

+

Judder can be introduced, for instance, by pullup filter. If the original +source was partially telecined content then the output of pullup,dejudder +will have a variable frame rate. May change the recorded frame rate of the +container. Aside from that change, this filter will not affect constant frame +rate video. +

+

The option available in this filter is: +

+
cycle
+

Specify the length of the window over which the judder repeats. +

+

Accepts any interger greater than 1. Useful values are: +

+
4
+

If the original was telecined from 24 to 30 fps (Film to NTSC). +

+
+
5
+

If the original was telecined from 25 to 30 fps (PAL to NTSC). +

+
+
20
+

If a mixture of the two. +

+
+ +

The default is ‘4’. +

+
+ + +

37.19 delogo

+ +

Suppress a TV station logo by a simple interpolation of the surrounding +pixels. Just set a rectangle covering the logo and watch it disappear +(and sometimes something even uglier appear - your mileage may vary). +

+

It accepts the following parameters: +

+
x
+
y
+

Specify the top left corner coordinates of the logo. They must be +specified. +

+
+
w
+
h
+

Specify the width and height of the logo to clear. They must be +specified. +

+
+
band, t
+

Specify the thickness of the fuzzy edge of the rectangle (added to +w and h). The default value is 4. +

+
+
show
+

When set to 1, a green rectangle is drawn on the screen to simplify +finding the right x, y, w, and h parameters. +The default value is 0. +

+

The rectangle is drawn on the outermost pixels which will be (partly) +replaced with interpolated values. The values of the next pixels +immediately outside this rectangle in each direction will be used to +compute the interpolated pixel values inside the rectangle. +

+
+
+ + +

37.19.1 Examples

+ +
    +
  • +Set a rectangle covering the area with top left corner coordinates 0,0 +and size 100x77, and a band of size 10: +
     
    delogo=x=0:y=0:w=100:h=77:band=10
    +
    + +
+ + +

37.20 deshake

+ +

Attempt to fix small changes in horizontal and/or vertical shift. This +filter helps remove camera shake from hand-holding a camera, bumping a +tripod, moving on a vehicle, etc. +

+

The filter accepts the following options: +

+
+
x
+
y
+
w
+
h
+

Specify a rectangular area where to limit the search for motion +vectors. +If desired the search for motion vectors can be limited to a +rectangular area of the frame defined by its top left corner, width +and height. These parameters have the same meaning as the drawbox +filter which can be used to visualise the position of the bounding +box. +

+

This is useful when simultaneous movement of subjects within the frame +might be confused for camera motion by the motion vector search. +

+

If any or all of x, y, w and h are set to -1 +then the full frame is used. This allows later options to be set +without specifying the bounding box for the motion vector search. +

+

Default - search the whole frame. +

+
+
rx
+
ry
+

Specify the maximum extent of movement in x and y directions in the +range 0-64 pixels. Default 16. +

+
+
edge
+

Specify how to generate pixels to fill blanks at the edge of the +frame. Available values are: +

+
blank, 0
+

Fill zeroes at blank locations +

+
original, 1
+

Original image at blank locations +

+
clamp, 2
+

Extruded edge value at blank locations +

+
mirror, 3
+

Mirrored edge at blank locations +

+
+

Default value is ‘mirror’. +

+
+
blocksize
+

Specify the blocksize to use for motion search. Range 4-128 pixels, +default 8. +

+
+
contrast
+

Specify the contrast threshold for blocks. Only blocks with more than +the specified contrast (difference between darkest and lightest +pixels) will be considered. Range 1-255, default 125. +

+
+
search
+

Specify the search strategy. Available values are: +

+
exhaustive, 0
+

Set exhaustive search +

+
less, 1
+

Set less exhaustive search. +

+
+

Default value is ‘exhaustive’. +

+
+
filename
+

If set then a detailed log of the motion search is written to the +specified file. +

+
+
opencl
+

If set to 1, specify using OpenCL capabilities, only available if +FFmpeg was configured with --enable-opencl. Default value is 0. +

+
+
+ + +

37.21 drawbox

+ +

Draw a colored box on the input image. +

+

It accepts the following parameters: +

+
+
x
+
y
+

The expressions which specify the top left corner coordinates of the box. It defaults to 0. +

+
+
width, w
+
height, h
+

The expressions which specify the width and height of the box; if 0 they are interpreted as +the input width and height. It defaults to 0. +

+
+
color, c
+

Specify the color of the box to write. For the general syntax of this option, +check the "Color" section in the ffmpeg-utils manual. If the special +value invert is used, the box edge color is the same as the +video with inverted luma. +

+
+
thickness, t
+

The expression which sets the thickness of the box edge. Default value is 3. +

+

See below for the list of accepted constants. +

+
+ +

The parameters for x, y, w and h and t are expressions containing the +following constants: +

+
+
dar
+

The input display aspect ratio, it is the same as (w / h) * sar. +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
in_h, ih
+
in_w, iw
+

The input width and height. +

+
+
sar
+

The input sample aspect ratio. +

+
+
x
+
y
+

The x and y offset coordinates where the box is drawn. +

+
+
w
+
h
+

The width and height of the drawn box. +

+
+
t
+

The thickness of the drawn box. +

+

These constants allow the x, y, w, h and t expressions to refer to +each other, so you may for example specify y=x/dar or h=w/dar. +

+
+
+ + +

37.21.1 Examples

+ +
    +
  • +Draw a black box around the edge of the input image: +
     
    drawbox
    +
    + +
  • +Draw a box with color red and an opacity of 50%: +
     
    drawbox=10:20:200:60:red@0.5
    +
    + +

    The previous example can be specified as: +

     
    drawbox=x=10:y=20:w=200:h=60:color=red@0.5
    +
    + +
  • +Fill the box with pink color: +
     
    drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=max
    +
    + +
  • +Draw a 2-pixel red 2.40:1 mask: +
     
    drawbox=x=-t:y=0.5*(ih-iw/2.4)-t:w=iw+t*2:h=iw/2.4+t*2:t=2:c=red
    +
    +
+ + +

37.22 drawgrid

+ +

Draw a grid on the input image. +

+

It accepts the following parameters: +

+
+
x
+
y
+

The expressions which specify the coordinates of some point of grid intersection (meant to configure offset). Both default to 0. +

+
+
width, w
+
height, h
+

The expressions which specify the width and height of the grid cell, if 0 they are interpreted as the +input width and height, respectively, minus thickness, so image gets +framed. Default to 0. +

+
+
color, c
+

Specify the color of the grid. For the general syntax of this option, +check the "Color" section in the ffmpeg-utils manual. If the special +value invert is used, the grid color is the same as the +video with inverted luma. +

+
+
thickness, t
+

The expression which sets the thickness of the grid line. Default value is 1. +

+

See below for the list of accepted constants. +

+
+ +

The parameters for x, y, w and h and t are expressions containing the +following constants: +

+
+
dar
+

The input display aspect ratio, it is the same as (w / h) * sar. +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
in_h, ih
+
in_w, iw
+

The input grid cell width and height. +

+
+
sar
+

The input sample aspect ratio. +

+
+
x
+
y
+

The x and y coordinates of some point of grid intersection (meant to configure offset). +

+
+
w
+
h
+

The width and height of the drawn cell. +

+
+
t
+

The thickness of the drawn cell. +

+

These constants allow the x, y, w, h and t expressions to refer to +each other, so you may for example specify y=x/dar or h=w/dar. +

+
+
+ + +

37.22.1 Examples

+ +
    +
  • +Draw a grid with cell 100x100 pixels, thickness 2 pixels, with color red and an opacity of 50%: +
     
    drawgrid=width=100:height=100:thickness=2:color=red@0.5
    +
    + +
  • +Draw a white 3x3 grid with an opacity of 50%: +
     
    drawgrid=w=iw/3:h=ih/3:t=2:c=white@0.5
    +
    +
+ +

+

+

37.23 drawtext

+ +

Draw a text string or text from a specified file on top of a video, using the +libfreetype library. +

+

To enable compilation of this filter, you need to configure FFmpeg with +--enable-libfreetype. +To enable default font fallback and the font option you need to +configure FFmpeg with --enable-libfontconfig. +

+ +

37.23.1 Syntax

+ +

It accepts the following parameters: +

+
+
box
+

Used to draw a box around text using the background color. +The value must be either 1 (enable) or 0 (disable). +The default value of box is 0. +

+
+
boxcolor
+

The color to be used for drawing box around text. For the syntax of this +option, check the "Color" section in the ffmpeg-utils manual. +

+

The default value of boxcolor is "white". +

+
+
borderw
+

Set the width of the border to be drawn around the text using bordercolor. +The default value of borderw is 0. +

+
+
bordercolor
+

Set the color to be used for drawing border around text. For the syntax of this +option, check the "Color" section in the ffmpeg-utils manual. +

+

The default value of bordercolor is "black". +

+
+
expansion
+

Select how the text is expanded. Can be either none, +strftime (deprecated) or +normal (default). See the Text expansion section +below for details. +

+
+
fix_bounds
+

If true, check and fix text coords to avoid clipping. +

+
+
fontcolor
+

The color to be used for drawing fonts. For the syntax of this option, check +the "Color" section in the ffmpeg-utils manual. +

+

The default value of fontcolor is "black". +

+
+
font
+

The font family to be used for drawing text. By default Sans. +

+
+
fontfile
+

The font file to be used for drawing text. The path must be included. +This parameter is mandatory if the fontconfig support is disabled. +

+
+
fontsize
+

The font size to be used for drawing text. +The default value of fontsize is 16. +

+
+
ft_load_flags
+

The flags to be used for loading the fonts. +

+

The flags map the corresponding flags supported by libfreetype, and are +a combination of the following values: +

+
default
+
no_scale
+
no_hinting
+
render
+
no_bitmap
+
vertical_layout
+
force_autohint
+
crop_bitmap
+
pedantic
+
ignore_global_advance_width
+
no_recurse
+
ignore_transform
+
monochrome
+
linear_design
+
no_autohint
+
+ +

Default value is "default". +

+

For more information consult the documentation for the FT_LOAD_* +libfreetype flags. +

+
+
shadowcolor
+

The color to be used for drawing a shadow behind the drawn text. For the +syntax of this option, check the "Color" section in the ffmpeg-utils manual. +

+

The default value of shadowcolor is "black". +

+
+
shadowx
+
shadowy
+

The x and y offsets for the text shadow position with respect to the +position of the text. They can be either positive or negative +values. The default value for both is "0". +

+
+
start_number
+

The starting frame number for the n/frame_num variable. The default value +is "0". +

+
+
tabsize
+

The size in number of spaces to use for rendering the tab. +Default value is 4. +

+
+
timecode
+

Set the initial timecode representation in "hh:mm:ss[:;.]ff" +format. It can be used with or without text parameter. timecode_rate +option must be specified. +

+
+
timecode_rate, rate, r
+

Set the timecode frame rate (timecode only). +

+
+
text
+

The text string to be drawn. The text must be a sequence of UTF-8 +encoded characters. +This parameter is mandatory if no file is specified with the parameter +textfile. +

+
+
textfile
+

A text file containing text to be drawn. The text must be a sequence +of UTF-8 encoded characters. +

+

This parameter is mandatory if no text string is specified with the +parameter text. +

+

If both text and textfile are specified, an error is thrown. +

+
+
reload
+

If set to 1, the textfile will be reloaded before each frame. +Be sure to update it atomically, or it may be read partially, or even fail. +

+
+
x
+
y
+

The expressions which specify the offsets where text will be drawn +within the video frame. They are relative to the top/left border of the +output image. +

+

The default value of x and y is "0". +

+

See below for the list of accepted constants and functions. +

+
+ +

The parameters for x and y are expressions containing the +following constants and functions: +

+
+
dar
+

input display aspect ratio, it is the same as (w / h) * sar +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
line_h, lh
+

the height of each text line +

+
+
main_h, h, H
+

the input height +

+
+
main_w, w, W
+

the input width +

+
+
max_glyph_a, ascent
+

the maximum distance from the baseline to the highest/upper grid +coordinate used to place a glyph outline point, for all the rendered +glyphs. +It is a positive value, due to the grid’s orientation with the Y axis +upwards. +

+
+
max_glyph_d, descent
+

the maximum distance from the baseline to the lowest grid coordinate +used to place a glyph outline point, for all the rendered glyphs. +This is a negative value, due to the grid’s orientation, with the Y axis +upwards. +

+
+
max_glyph_h
+

maximum glyph height, that is the maximum height for all the glyphs +contained in the rendered text, it is equivalent to ascent - +descent. +

+
+
max_glyph_w
+

maximum glyph width, that is the maximum width for all the glyphs +contained in the rendered text +

+
+
n
+

the number of input frame, starting from 0 +

+
+
rand(min, max)
+

return a random number included between min and max +

+
+
sar
+

The input sample aspect ratio. +

+
+
t
+

timestamp expressed in seconds, NAN if the input timestamp is unknown +

+
+
text_h, th
+

the height of the rendered text +

+
+
text_w, tw
+

the width of the rendered text +

+
+
x
+
y
+

the x and y offset coordinates where the text is drawn. +

+

These parameters allow the x and y expressions to refer +each other, so you can for example specify y=x/dar. +

+
+ +

+

+

37.23.2 Text expansion

+ +

If ‘expansion’ is set to strftime, +the filter recognizes strftime() sequences in the provided text and +expands them accordingly. Check the documentation of strftime(). This +feature is deprecated. +

+

If ‘expansion’ is set to none, the text is printed verbatim. +

+

If ‘expansion’ is set to normal (which is the default), +the following expansion mechanism is used. +

+

The backslash character ’\’, followed by any character, always expands to +the second character. +

+

Sequence of the form %{...} are expanded. The text between the +braces is a function name, possibly followed by arguments separated by ’:’. +If the arguments contain special characters or delimiters (’:’ or ’}’), +they should be escaped. +

+

Note that they probably must also be escaped as the value for the +‘text’ option in the filter argument string and as the filter +argument in the filtergraph description, and possibly also for the shell, +that makes up to four levels of escaping; using a text file avoids these +problems. +

+

The following functions are available: +

+
+
expr, e
+

The expression evaluation result. +

+

It must take one argument specifying the expression to be evaluated, +which accepts the same constants and functions as the x and +y values. Note that not all constants should be used, for +example the text size is not known when evaluating the expression, so +the constants text_w and text_h will have an undefined +value. +

+
+
gmtime
+

The time at which the filter is running, expressed in UTC. +It can accept an argument: a strftime() format string. +

+
+
localtime
+

The time at which the filter is running, expressed in the local time zone. +It can accept an argument: a strftime() format string. +

+
+
metadata
+

Frame metadata. It must take one argument specifying metadata key. +

+
+
n, frame_num
+

The frame number, starting from 0. +

+
+
pict_type
+

A 1 character description of the current picture type. +

+
+
pts
+

The timestamp of the current frame, in seconds, with microsecond accuracy. +

+
+
+ + +

37.23.3 Examples

+ +
    +
  • +Draw "Test Text" with font FreeSerif, using the default values for the +optional parameters. + +
     
    drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text'"
    +
    + +
  • +Draw ’Test Text’ with font FreeSerif of size 24 at position x=100 +and y=50 (counting from the top-left corner of the screen), text is +yellow with a red box around it. Both the text and the box have an +opacity of 20%. + +
     
    drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text':\
    +          x=100: y=50: fontsize=24: fontcolor=yellow@0.2: box=1: boxcolor=red@0.2"
    +
    + +

    Note that the double quotes are not necessary if spaces are not used +within the parameter list. +

    +
  • +Show the text at the center of the video frame: +
     
    drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h-line_h)/2"
    +
    + +
  • +Show a text line sliding from right to left in the last row of the video +frame. The file ‘LONG_LINE’ is assumed to contain a single line +with no newlines. +
     
    drawtext="fontsize=15:fontfile=FreeSerif.ttf:text=LONG_LINE:y=h-line_h:x=-50*t"
    +
    + +
  • +Show the content of file ‘CREDITS’ off the bottom of the frame and scroll up. +
     
    drawtext="fontsize=20:fontfile=FreeSerif.ttf:textfile=CREDITS:y=h-20*t"
    +
    + +
  • +Draw a single green letter "g", at the center of the input video. +The glyph baseline is placed at half screen height. +
     
    drawtext="fontsize=60:fontfile=FreeSerif.ttf:fontcolor=green:text=g:x=(w-max_glyph_w)/2:y=h/2-ascent"
    +
    + +
  • +Show text for 1 second every 3 seconds: +
     
    drawtext="fontfile=FreeSerif.ttf:fontcolor=white:x=100:y=x/dar:enable=lt(mod(t\,3)\,1):text='blink'"
    +
    + +
  • +Use fontconfig to set the font. Note that the colons need to be escaped. +
     
    drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'
    +
    + +
  • +Print the date of a real-time encoding (see strftime(3)): +
     
    drawtext='fontfile=FreeSans.ttf:text=%{localtime:%a %b %d %Y}'
    +
    + +
+ +

For more information about libfreetype, check: +http://www.freetype.org/. +

+

For more information about fontconfig, check: +http://freedesktop.org/software/fontconfig/fontconfig-user.html. +

+ +

37.24 edgedetect

+ +

Detect and draw edges. The filter uses the Canny Edge Detection algorithm. +

+

The filter accepts the following options: +

+
+
low
+
high
+

Set low and high threshold values used by the Canny thresholding +algorithm. +

+

The high threshold selects the "strong" edge pixels, which are then +connected through 8-connectivity with the "weak" edge pixels selected +by the low threshold. +

+

low and high threshold values must be chosen in the range +[0,1], and low should be lesser or equal to high. +

+

Default value for low is 20/255, and default value for high +is 50/255. +

+
+ +

Example: +

 
edgedetect=low=0.1:high=0.4
+
+ + +

37.25 extractplanes

+ +

Extract color channel components from input video stream into +separate grayscale video streams. +

+

The filter accepts the following option: +

+
+
planes
+

Set plane(s) to extract. +

+

Available values for planes are: +

+
y
+
u
+
v
+
a
+
r
+
g
+
b
+
+ +

Choosing planes not available in the input will result in an error. +That means you cannot select r, g, b planes +with y, u, v planes at same time. +

+
+ + +

37.25.1 Examples

+ +
    +
  • +Extract luma, u and v color channel component from input video frame +into 3 grayscale outputs: +
     
    ffmpeg -i video.avi -filter_complex 'extractplanes=y+u+v[y][u][v]' -map '[y]' y.avi -map '[u]' u.avi -map '[v]' v.avi
    +
    +
+ + +

37.26 elbg

+ +

Apply a posterize effect using the ELBG (Enhanced LBG) algorithm. +

+

For each input image, the filter will compute the optimal mapping from +the input to the output given the codebook length, that is the number +of distinct output colors. +

+

This filter accepts the following options. +

+
+
codebook_length, l
+

Set codebook length. The value must be a positive integer, and +represents the number of distinct output colors. Default value is 256. +

+
+
nb_steps, n
+

Set the maximum number of iterations to apply for computing the optimal +mapping. The higher the value the better the result and the higher the +computation time. Default value is 1. +

+
+
seed, s
+

Set a random seed, must be an integer included between 0 and +UINT32_MAX. If not specified, or if explicitly set to -1, the filter +will try to use a good random seed on a best effort basis. +

+
+ + +

37.27 fade

+ +

Apply a fade-in/out effect to the input video. +

+

It accepts the following parameters: +

+
+
type, t
+

The effect type can be either "in" for a fade-in, or "out" for a fade-out +effect. +Default is in. +

+
+
start_frame, s
+

Specify the number of the frame to start applying the fade +effect at. Default is 0. +

+
+
nb_frames, n
+

The number of frames that the fade effect lasts. At the end of the +fade-in effect, the output video will have the same intensity as the input video. +At the end of the fade-out transition, the output video will be filled with the +selected ‘color’. +Default is 25. +

+
+
alpha
+

If set to 1, fade only alpha channel, if one exists on the input. +Default value is 0. +

+
+
start_time, st
+

Specify the timestamp (in seconds) of the frame to start to apply the fade +effect. If both start_frame and start_time are specified, the fade will start at +whichever comes last. Default is 0. +

+
+
duration, d
+

The number of seconds for which the fade effect has to last. At the end of the +fade-in effect the output video will have the same intensity as the input video, +at the end of the fade-out transition the output video will be filled with the +selected ‘color’. +If both duration and nb_frames are specified, duration is used. Default is 0. +

+
+
color, c
+

Specify the color of the fade. Default is "black". +

+
+ + +

37.27.1 Examples

+ +
    +
  • +Fade in the first 30 frames of video: +
     
    fade=in:0:30
    +
    + +

    The command above is equivalent to: +

     
    fade=t=in:s=0:n=30
    +
    + +
  • +Fade out the last 45 frames of a 200-frame video: +
     
    fade=out:155:45
    +fade=type=out:start_frame=155:nb_frames=45
    +
    + +
  • +Fade in the first 25 frames and fade out the last 25 frames of a 1000-frame video: +
     
    fade=in:0:25, fade=out:975:25
    +
    + +
  • +Make the first 5 frames yellow, then fade in from frame 5-24: +
     
    fade=in:5:20:color=yellow
    +
    + +
  • +Fade in alpha over first 25 frames of video: +
     
    fade=in:0:25:alpha=1
    +
    + +
  • +Make the first 5.5 seconds black, then fade in for 0.5 seconds: +
     
    fade=t=in:st=5.5:d=0.5
    +
    + +
+ + +

37.28 field

+ +

Extract a single field from an interlaced image using stride +arithmetic to avoid wasting CPU time. The output frames are marked as +non-interlaced. +

+

The filter accepts the following options: +

+
+
type
+

Specify whether to extract the top (if the value is 0 or +top) or the bottom field (if the value is 1 or +bottom). +

+
+ + +

37.29 fieldmatch

+ +

Field matching filter for inverse telecine. It is meant to reconstruct the +progressive frames from a telecined stream. The filter does not drop duplicated +frames, so to achieve a complete inverse telecine fieldmatch needs to be +followed by a decimation filter such as decimate in the filtergraph. +

+

The separation of the field matching and the decimation is notably motivated by +the possibility of inserting a de-interlacing filter fallback between the two. +If the source has mixed telecined and real interlaced content, +fieldmatch will not be able to match fields for the interlaced parts. +But these remaining combed frames will be marked as interlaced, and thus can be +de-interlaced by a later filter such as yadif before decimation. +

+

In addition to the various configuration options, fieldmatch can take an +optional second stream, activated through the ‘ppsrc’ option. If +enabled, the frames reconstruction will be based on the fields and frames from +this second stream. This allows the first input to be pre-processed in order to +help the various algorithms of the filter, while keeping the output lossless +(assuming the fields are matched properly). Typically, a field-aware denoiser, +or brightness/contrast adjustments can help. +

+

Note that this filter uses the same algorithms as TIVTC/TFM (AviSynth project) +and VIVTC/VFM (VapourSynth project). The later is a light clone of TFM from +which fieldmatch is based on. While the semantic and usage are very +close, some behaviour and options names can differ. +

+

The filter accepts the following options: +

+
+
order
+

Specify the assumed field order of the input stream. Available values are: +

+
+
auto
+

Auto detect parity (use FFmpeg’s internal parity value). +

+
bff
+

Assume bottom field first. +

+
tff
+

Assume top field first. +

+
+ +

Note that it is sometimes recommended not to trust the parity announced by the +stream. +

+

Default value is auto. +

+
+
mode
+

Set the matching mode or strategy to use. ‘pc’ mode is the safest in the +sense that it won’t risk creating jerkiness due to duplicate frames when +possible, but if there are bad edits or blended fields it will end up +outputting combed frames when a good match might actually exist. On the other +hand, ‘pcn_ub’ mode is the most risky in terms of creating jerkiness, +but will almost always find a good frame if there is one. The other values are +all somewhere in between ‘pc’ and ‘pcn_ub’ in terms of risking +jerkiness and creating duplicate frames versus finding good matches in sections +with bad edits, orphaned fields, blended fields, etc. +

+

More details about p/c/n/u/b are available in p/c/n/u/b meaning section. +

+

Available values are: +

+
+
pc
+

2-way matching (p/c) +

+
pc_n
+

2-way matching, and trying 3rd match if still combed (p/c + n) +

+
pc_u
+

2-way matching, and trying 3rd match (same order) if still combed (p/c + u) +

+
pc_n_ub
+

2-way matching, trying 3rd match if still combed, and trying 4th/5th matches if +still combed (p/c + n + u/b) +

+
pcn
+

3-way matching (p/c/n) +

+
pcn_ub
+

3-way matching, and trying 4th/5th matches if all 3 of the original matches are +detected as combed (p/c/n + u/b) +

+
+ +

The parenthesis at the end indicate the matches that would be used for that +mode assuming ‘order’=tff (and ‘field’ on auto or +top). +

+

In terms of speed ‘pc’ mode is by far the fastest and ‘pcn_ub’ is +the slowest. +

+

Default value is pc_n. +

+
+
ppsrc
+

Mark the main input stream as a pre-processed input, and enable the secondary +input stream as the clean source to pick the fields from. See the filter +introduction for more details. It is similar to the ‘clip2’ feature from +VFM/TFM. +

+

Default value is 0 (disabled). +

+
+
field
+

Set the field to match from. It is recommended to set this to the same value as +‘order’ unless you experience matching failures with that setting. In +certain circumstances changing the field that is used to match from can have a +large impact on matching performance. Available values are: +

+
+
auto
+

Automatic (same value as ‘order’). +

+
bottom
+

Match from the bottom field. +

+
top
+

Match from the top field. +

+
+ +

Default value is auto. +

+
+
mchroma
+

Set whether or not chroma is included during the match comparisons. In most +cases it is recommended to leave this enabled. You should set this to 0 +only if your clip has bad chroma problems such as heavy rainbowing or other +artifacts. Setting this to 0 could also be used to speed things up at +the cost of some accuracy. +

+

Default value is 1. +

+
+
y0
+
y1
+

These define an exclusion band which excludes the lines between ‘y0’ and +‘y1’ from being included in the field matching decision. An exclusion +band can be used to ignore subtitles, a logo, or other things that may +interfere with the matching. ‘y0’ sets the starting scan line and +‘y1’ sets the ending line; all lines in between ‘y0’ and +‘y1’ (including ‘y0’ and ‘y1’) will be ignored. Setting +‘y0’ and ‘y1’ to the same value will disable the feature. +‘y0’ and ‘y1’ defaults to 0. +

+
+
scthresh
+

Set the scene change detection threshold as a percentage of maximum change on +the luma plane. Good values are in the [8.0, 14.0] range. Scene change +detection is only relevant in case ‘combmatch’=sc. The range for +‘scthresh’ is [0.0, 100.0]. +

+

Default value is 12.0. +

+
+
combmatch
+

When ‘combatch’ is not none, fieldmatch will take into +account the combed scores of matches when deciding what match to use as the +final match. Available values are: +

+
+
none
+

No final matching based on combed scores. +

+
sc
+

Combed scores are only used when a scene change is detected. +

+
full
+

Use combed scores all the time. +

+
+ +

Default is sc. +

+
+
combdbg
+

Force fieldmatch to calculate the combed metrics for certain matches and +print them. This setting is known as ‘micout’ in TFM/VFM vocabulary. +Available values are: +

+
+
none
+

No forced calculation. +

+
pcn
+

Force p/c/n calculations. +

+
pcnub
+

Force p/c/n/u/b calculations. +

+
+ +

Default value is none. +

+
+
cthresh
+

This is the area combing threshold used for combed frame detection. This +essentially controls how "strong" or "visible" combing must be to be detected. +Larger values mean combing must be more visible and smaller values mean combing +can be less visible or strong and still be detected. Valid settings are from +-1 (every pixel will be detected as combed) to 255 (no pixel will +be detected as combed). This is basically a pixel difference value. A good +range is [8, 12]. +

+

Default value is 9. +

+
+
chroma
+

Sets whether or not chroma is considered in the combed frame decision. Only +disable this if your source has chroma problems (rainbowing, etc.) that are +causing problems for the combed frame detection with chroma enabled. Actually, +using ‘chroma’=0 is usually more reliable, except for the case +where there is chroma only combing in the source. +

+

Default value is 0. +

+
+
blockx
+
blocky
+

Respectively set the x-axis and y-axis size of the window used during combed +frame detection. This has to do with the size of the area in which +‘combpel’ pixels are required to be detected as combed for a frame to be +declared combed. See the ‘combpel’ parameter description for more info. +Possible values are any number that is a power of 2 starting at 4 and going up +to 512. +

+

Default value is 16. +

+
+
combpel
+

The number of combed pixels inside any of the ‘blocky’ by +‘blockx’ size blocks on the frame for the frame to be detected as +combed. While ‘cthresh’ controls how "visible" the combing must be, this +setting controls "how much" combing there must be in any localized area (a +window defined by the ‘blockx’ and ‘blocky’ settings) on the +frame. Minimum value is 0 and maximum is blocky x blockx (at +which point no frames will ever be detected as combed). This setting is known +as ‘MI’ in TFM/VFM vocabulary. +

+

Default value is 80. +

+
+ +

+

+

37.29.1 p/c/n/u/b meaning

+ + +

37.29.1.1 p/c/n

+ +

We assume the following telecined stream: +

+
 
Top fields:     1 2 2 3 4
+Bottom fields:  1 2 3 4 4
+
+ +

The numbers correspond to the progressive frame the fields relate to. Here, the +first two frames are progressive, the 3rd and 4th are combed, and so on. +

+

When fieldmatch is configured to run a matching from bottom +(‘field’=bottom) this is how this input stream get transformed: +

+
 
Input stream:
+                T     1 2 2 3 4
+                B     1 2 3 4 4   <-- matching reference
+
+Matches:              c c n n c
+
+Output stream:
+                T     1 2 3 4 4
+                B     1 2 3 4 4
+
+ +

As a result of the field matching, we can see that some frames get duplicated. +To perform a complete inverse telecine, you need to rely on a decimation filter +after this operation. See for instance the decimate filter. +

+

The same operation now matching from top fields (‘field’=top) +looks like this: +

+
 
Input stream:
+                T     1 2 2 3 4   <-- matching reference
+                B     1 2 3 4 4
+
+Matches:              c c p p c
+
+Output stream:
+                T     1 2 2 3 4
+                B     1 2 2 3 4
+
+ +

In these examples, we can see what p, c and n mean; +basically, they refer to the frame and field of the opposite parity: +

+
    +
  • p matches the field of the opposite parity in the previous frame +
  • c matches the field of the opposite parity in the current frame +
  • n matches the field of the opposite parity in the next frame +
+ + +

37.29.1.2 u/b

+ +

The u and b matching are a bit special in the sense that they match +from the opposite parity flag. In the following examples, we assume that we are +currently matching the 2nd frame (Top:2, bottom:2). According to the match, a +’x’ is placed above and below each matched fields. +

+

With bottom matching (‘field’=bottom): +

 
Match:           c         p           n          b          u
+
+                 x       x               x        x          x
+  Top          1 2 2     1 2 2       1 2 2      1 2 2      1 2 2
+  Bottom       1 2 3     1 2 3       1 2 3      1 2 3      1 2 3
+                 x         x           x        x              x
+
+Output frames:
+                 2          1          2          2          2
+                 2          2          2          1          3
+
+ +

With top matching (‘field’=top): +

 
Match:           c         p           n          b          u
+
+                 x         x           x        x              x
+  Top          1 2 2     1 2 2       1 2 2      1 2 2      1 2 2
+  Bottom       1 2 3     1 2 3       1 2 3      1 2 3      1 2 3
+                 x       x               x        x          x
+
+Output frames:
+                 2          2          2          1          2
+                 2          1          3          2          2
+
+ + +

37.29.2 Examples

+ +

Simple IVTC of a top field first telecined stream: +

 
fieldmatch=order=tff:combmatch=none, decimate
+
+ +

Advanced IVTC, with fallback on yadif for still combed frames: +

 
fieldmatch=order=tff:combmatch=full, yadif=deint=interlaced, decimate
+
+ + +

37.30 fieldorder

+ +

Transform the field order of the input video. +

+

It accepts the following parameters: +

+
+
order
+

The output field order. Valid values are tff for top field first or bff +for bottom field first. +

+
+ +

The default value is ‘tff’. +

+

The transformation is done by shifting the picture content up or down +by one line, and filling the remaining line with appropriate picture content. +This method is consistent with most broadcast field order converters. +

+

If the input video is not flagged as being interlaced, or it is already +flagged as being of the required output field order, then this filter does +not alter the incoming video. +

+

It is very useful when converting to or from PAL DV material, +which is bottom field first. +

+

For example: +

 
ffmpeg -i in.vob -vf "fieldorder=bff" out.dv
+
+ + +

37.31 fifo

+ +

Buffer input images and send them when they are requested. +

+

It is mainly useful when auto-inserted by the libavfilter +framework. +

+

It does not take parameters. +

+

+

+

37.32 format

+ +

Convert the input video to one of the specified pixel formats. +Libavfilter will try to pick one that is suitable as input to +the next filter. +

+

It accepts the following parameters: +

+
pix_fmts
+

A ’|’-separated list of pixel format names, such as +"pix_fmts=yuv420p|monow|rgb24". +

+
+
+ + +

37.32.1 Examples

+ +
    +
  • +Convert the input video to the yuv420p format +
     
    format=pix_fmts=yuv420p
    +
    + +

    Convert the input video to any of the formats in the list +

     
    format=pix_fmts=yuv420p|yuv444p|yuv410p
    +
    +
+ +

+

+

37.33 fps

+ +

Convert the video to specified constant frame rate by duplicating or dropping +frames as necessary. +

+

It accepts the following parameters: +

+
fps
+

The desired output frame rate. The default is 25. +

+
+
round
+

Rounding method. +

+

Possible values are: +

+
zero
+

zero round towards 0 +

+
inf
+

round away from 0 +

+
down
+

round towards -infinity +

+
up
+

round towards +infinity +

+
near
+

round to nearest +

+
+

The default is near. +

+
+
start_time
+

Assume the first PTS should be the given value, in seconds. This allows for +padding/trimming at the start of stream. By default, no assumption is made +about the first frame’s expected PTS, so no padding or trimming is done. +For example, this could be set to 0 to pad the beginning with duplicates of +the first frame if a video stream starts after the audio stream or to trim any +frames with a negative PTS. +

+
+
+ +

Alternatively, the options can be specified as a flat string: +fps[:round]. +

+

See also the setpts filter. +

+ +

37.33.1 Examples

+ +
    +
  • +A typical usage in order to set the fps to 25: +
     
    fps=fps=25
    +
    + +
  • +Sets the fps to 24, using abbreviation and rounding method to round to nearest: +
     
    fps=fps=film:round=near
    +
    +
+ + +

37.34 framepack

+ +

Pack two different video streams into a stereoscopic video, setting proper +metadata on supported codecs. The two views should have the same size and +framerate and processing will stop when the shorter video ends. Please note +that you may conveniently adjust view properties with the scale and +fps filters. +

+

It accepts the following parameters: +

+
format
+

The desired packing format. Supported values are: +

+
+
sbs
+

The views are next to each other (default). +

+
+
tab
+

The views are on top of each other. +

+
+
lines
+

The views are packed by line. +

+
+
columns
+

The views are packed by column. +

+
+
frameseq
+

The views are temporally interleaved. +

+
+
+ +
+
+ +

Some examples: +

+
 
# Convert left and right views into a frame-sequential video
+ffmpeg -i LEFT -i RIGHT -filter_complex framepack=frameseq OUTPUT
+
+# Convert views into a side-by-side video with the same output resolution as the input
+ffmpeg -i LEFT -i RIGHT -filter_complex [0:v]scale=w=iw/2[left],[1:v]scale=w=iw/2[right],[left][right]framepack=sbs OUTPUT
+
+ + +

37.35 framestep

+ +

Select one frame every N-th frame. +

+

This filter accepts the following option: +

+
step
+

Select frame after every step frames. +Allowed values are positive integers higher than 0. Default value is 1. +

+
+ +

+

+

37.36 frei0r

+ +

Apply a frei0r effect to the input video. +

+

To enable the compilation of this filter, you need to install the frei0r +header and configure FFmpeg with --enable-frei0r. +

+

It accepts the following parameters: +

+
+
filter_name
+

The name of the frei0r effect to load. If the environment variable +FREI0R_PATH is defined, the frei0r effect is searched for in each of the +directories specified by the colon-separated list in FREIOR_PATH. +Otherwise, the standard frei0r paths are searched, in this order: +‘HOME/.frei0r-1/lib/’, ‘/usr/local/lib/frei0r-1/’, +‘/usr/lib/frei0r-1/’. +

+
+
filter_params
+

A ’|’-separated list of parameters to pass to the frei0r effect. +

+
+
+ +

A frei0r effect parameter can be a boolean (its value is either +"y" or "n"), a double, a color (specified as +R/G/B, where R, G, and B are floating point +numbers between 0.0 and 1.0, inclusive) or by a color description specified in the "Color" +section in the ffmpeg-utils manual), a position (specified as X/Y, where +X and Y are floating point numbers) and/or a string. +

+

The number and types of parameters depend on the loaded effect. If an +effect parameter is not specified, the default value is set. +

+ +

37.36.1 Examples

+ +
    +
  • +Apply the distort0r effect, setting the first two double parameters: +
     
    frei0r=filter_name=distort0r:filter_params=0.5|0.01
    +
    + +
  • +Apply the colordistance effect, taking a color as the first parameter: +
     
    frei0r=colordistance:0.2/0.3/0.4
    +frei0r=colordistance:violet
    +frei0r=colordistance:0x112233
    +
    + +
  • +Apply the perspective effect, specifying the top left and top right image +positions: +
     
    frei0r=perspective:0.2/0.2|0.8/0.2
    +
    +
+ +

For more information, see +http://frei0r.dyne.org +

+ +

37.37 geq

+ +

The filter accepts the following options: +

+
+
lum_expr, lum
+

Set the luminance expression. +

+
cb_expr, cb
+

Set the chrominance blue expression. +

+
cr_expr, cr
+

Set the chrominance red expression. +

+
alpha_expr, a
+

Set the alpha expression. +

+
red_expr, r
+

Set the red expression. +

+
green_expr, g
+

Set the green expression. +

+
blue_expr, b
+

Set the blue expression. +

+
+ +

The colorspace is selected according to the specified options. If one +of the ‘lum_expr’, ‘cb_expr’, or ‘cr_expr’ +options is specified, the filter will automatically select a YCbCr +colorspace. If one of the ‘red_expr’, ‘green_expr’, or +‘blue_expr’ options is specified, it will select an RGB +colorspace. +

+

If one of the chrominance expression is not defined, it falls back on the other +one. If no alpha expression is specified it will evaluate to opaque value. +If none of chrominance expressions are specified, they will evaluate +to the luminance expression. +

+

The expressions can use the following variables and functions: +

+
+
N
+

The sequential number of the filtered frame, starting from 0. +

+
+
X
+
Y
+

The coordinates of the current sample. +

+
+
W
+
H
+

The width and height of the image. +

+
+
SW
+
SH
+

Width and height scale depending on the currently filtered plane. It is the +ratio between the corresponding luma plane number of pixels and the current +plane ones. E.g. for YUV4:2:0 the values are 1,1 for the luma plane, and +0.5,0.5 for chroma planes. +

+
+
T
+

Time of the current frame, expressed in seconds. +

+
+
p(x, y)
+

Return the value of the pixel at location (x,y) of the current +plane. +

+
+
lum(x, y)
+

Return the value of the pixel at location (x,y) of the luminance +plane. +

+
+
cb(x, y)
+

Return the value of the pixel at location (x,y) of the +blue-difference chroma plane. Return 0 if there is no such plane. +

+
+
cr(x, y)
+

Return the value of the pixel at location (x,y) of the +red-difference chroma plane. Return 0 if there is no such plane. +

+
+
r(x, y)
+
g(x, y)
+
b(x, y)
+

Return the value of the pixel at location (x,y) of the +red/green/blue component. Return 0 if there is no such component. +

+
+
alpha(x, y)
+

Return the value of the pixel at location (x,y) of the alpha +plane. Return 0 if there is no such plane. +

+
+ +

For functions, if x and y are outside the area, the value will be +automatically clipped to the closer edge. +

+ +

37.37.1 Examples

+ +
    +
  • +Flip the image horizontally: +
     
    geq=p(W-X\,Y)
    +
    + +
  • +Generate a bidimensional sine wave, with angle PI/3 and a +wavelength of 100 pixels: +
     
    geq=128 + 100*sin(2*(PI/100)*(cos(PI/3)*(X-50*T) + sin(PI/3)*Y)):128:128
    +
    + +
  • +Generate a fancy enigmatic moving light: +
     
    nullsrc=s=256x256,geq=random(1)/hypot(X-cos(N*0.07)*W/2-W/2\,Y-sin(N*0.09)*H/2-H/2)^2*1000000*sin(N*0.02):128:128
    +
    + +
  • +Generate a quick emboss effect: +
     
    format=gray,geq=lum_expr='(p(X,Y)+(256-p(X-4,Y-4)))/2'
    +
    + +
  • +Modify RGB components depending on pixel position: +
     
    geq=r='X/W*r(X,Y)':g='(1-X/W)*g(X,Y)':b='(H-Y)/H*b(X,Y)'
    +
    +
+ + +

37.38 gradfun

+ +

Fix the banding artifacts that are sometimes introduced into nearly flat +regions by truncation to 8bit color depth. +Interpolate the gradients that should go where the bands are, and +dither them. +

+

It is designed for playback only. Do not use it prior to +lossy compression, because compression tends to lose the dither and +bring back the bands. +

+

It accepts the following parameters: +

+
+
strength
+

The maximum amount by which the filter will change any one pixel. This is also +the threshold for detecting nearly flat regions. Acceptable values range from +.51 to 64; the default value is 1.2. Out-of-range values will be clipped to the +valid range. +

+
+
radius
+

The neighborhood to fit the gradient to. A larger radius makes for smoother +gradients, but also prevents the filter from modifying the pixels near detailed +regions. Acceptable values are 8-32; the default value is 16. Out-of-range +values will be clipped to the valid range. +

+
+
+ +

Alternatively, the options can be specified as a flat string: +strength[:radius] +

+ +

37.38.1 Examples

+ +
    +
  • +Apply the filter with a 3.5 strength and radius of 8: +
     
    gradfun=3.5:8
    +
    + +
  • +Specify radius, omitting the strength (which will fall-back to the default +value): +
     
    gradfun=radius=8
    +
    + +
+ +

+

+

37.39 haldclut

+ +

Apply a Hald CLUT to a video stream. +

+

First input is the video stream to process, and second one is the Hald CLUT. +The Hald CLUT input can be a simple picture or a complete video stream. +

+

The filter accepts the following options: +

+
+
shortest
+

Force termination when the shortest input terminates. Default is 0. +

+
repeatlast
+

Continue applying the last CLUT after the end of the stream. A value of +0 disable the filter after the last frame of the CLUT is reached. +Default is 1. +

+
+ +

haldclut also has the same interpolation options as lut3d (both +filters share the same internals). +

+

More information about the Hald CLUT can be found on Eskil Steenberg’s website +(Hald CLUT author) at http://www.quelsolaar.com/technology/clut.html. +

+ +

37.39.1 Workflow examples

+ + +

37.39.1.1 Hald CLUT video stream

+ +

Generate an identity Hald CLUT stream altered with various effects: +

 
ffmpeg -f lavfi -i haldclutsrc=8 -vf "hue=H=2*PI*t:s=sin(2*PI*t)+1, curves=cross_process" -t 10 -c:v ffv1 clut.nut
+
+ +

Note: make sure you use a lossless codec. +

+

Then use it with haldclut to apply it on some random stream: +

 
ffmpeg -f lavfi -i mandelbrot -i clut.nut -filter_complex '[0][1] haldclut' -t 20 mandelclut.mkv
+
+ +

The Hald CLUT will be applied to the 10 first seconds (duration of +‘clut.nut’), then the latest picture of that CLUT stream will be applied +to the remaining frames of the mandelbrot stream. +

+ +

37.39.1.2 Hald CLUT with preview

+ +

A Hald CLUT is supposed to be a squared image of Level*Level*Level by +Level*Level*Level pixels. For a given Hald CLUT, FFmpeg will select the +biggest possible square starting at the top left of the picture. The remaining +padding pixels (bottom or right) will be ignored. This area can be used to add +a preview of the Hald CLUT. +

+

Typically, the following generated Hald CLUT will be supported by the +haldclut filter: +

+
 
ffmpeg -f lavfi -i haldclutsrc=8 -vf "
+   pad=iw+320 [padded_clut];
+   smptebars=s=320x256, split [a][b];
+   [padded_clut][a] overlay=W-320:h, curves=color_negative [main];
+   [main][b] overlay=W-320" -frames:v 1 clut.png
+
+ +

It contains the original and a preview of the effect of the CLUT: SMPTE color +bars are displayed on the right-top, and below the same color bars processed by +the color changes. +

+

Then, the effect of this Hald CLUT can be visualized with: +

 
ffplay input.mkv -vf "movie=clut.png, [in] haldclut"
+
+ + +

37.40 hflip

+ +

Flip the input video horizontally. +

+

For example, to horizontally flip the input video with ffmpeg: +

 
ffmpeg -i in.avi -vf "hflip" out.avi
+
+ + +

37.41 histeq

+

This filter applies a global color histogram equalization on a +per-frame basis. +

+

It can be used to correct video that has a compressed range of pixel +intensities. The filter redistributes the pixel intensities to +equalize their distribution across the intensity range. It may be +viewed as an "automatically adjusting contrast filter". This filter is +useful only for correcting degraded or poorly captured source +video. +

+

The filter accepts the following options: +

+
+
strength
+

Determine the amount of equalization to be applied. As the strength +is reduced, the distribution of pixel intensities more-and-more +approaches that of the input frame. The value must be a float number +in the range [0,1] and defaults to 0.200. +

+
+
intensity
+

Set the maximum intensity that can generated and scale the output +values appropriately. The strength should be set as desired and then +the intensity can be limited if needed to avoid washing-out. The value +must be a float number in the range [0,1] and defaults to 0.210. +

+
+
antibanding
+

Set the antibanding level. If enabled the filter will randomly vary +the luminance of output pixels by a small amount to avoid banding of +the histogram. Possible values are none, weak or +strong. It defaults to none. +

+
+ + +

37.42 histogram

+ +

Compute and draw a color distribution histogram for the input video. +

+

The computed histogram is a representation of the color component +distribution in an image. +

+

The filter accepts the following options: +

+
+
mode
+

Set histogram mode. +

+

It accepts the following values: +

+
levels
+

Standard histogram that displays the color components distribution in an +image. Displays color graph for each color component. Shows distribution of +the Y, U, V, A or R, G, B components, depending on input format, in the +current frame. Below each graph a color component scale meter is shown. +

+
+
color
+

Displays chroma values (U/V color placement) in a two dimensional +graph (which is called a vectorscope). The brighter a pixel in the +vectorscope, the more pixels of the input frame correspond to that pixel +(i.e., more pixels have this chroma value). The V component is displayed on +the horizontal (X) axis, with the leftmost side being V = 0 and the rightmost +side being V = 255. The U component is displayed on the vertical (Y) axis, +with the top representing U = 0 and the bottom representing U = 255. +

+

The position of a white pixel in the graph corresponds to the chroma value of +a pixel of the input clip. The graph can therefore be used to read the hue +(color flavor) and the saturation (the dominance of the hue in the color). As +the hue of a color changes, it moves around the square. At the center of the +square the saturation is zero, which means that the corresponding pixel has no +color. If the amount of a specific color is increased (while leaving the other +colors unchanged) the saturation increases, and the indicator moves towards +the edge of the square. +

+
+
color2
+

Chroma values in vectorscope, similar as color but actual chroma values +are displayed. +

+
+
waveform
+

Per row/column color component graph. In row mode, the graph on the left side +represents color component value 0 and the right side represents value = 255. +In column mode, the top side represents color component value = 0 and bottom +side represents value = 255. +

+
+

Default value is levels. +

+
+
level_height
+

Set height of level in levels. Default value is 200. +Allowed range is [50, 2048]. +

+
+
scale_height
+

Set height of color scale in levels. Default value is 12. +Allowed range is [0, 40]. +

+
+
step
+

Set step for waveform mode. Smaller values are useful to find out how +many values of the same luminance are distributed across input rows/columns. +Default value is 10. Allowed range is [1, 255]. +

+
+
waveform_mode
+

Set mode for waveform. Can be either row, or column. +Default is row. +

+
+
waveform_mirror
+

Set mirroring mode for waveform. 0 means unmirrored, 1 +means mirrored. In mirrored mode, higher values will be represented on the left +side for row mode and at the top for column mode. Default is +0 (unmirrored). +

+
+
display_mode
+

Set display mode for waveform and levels. +It accepts the following values: +

+
parade
+

Display separate graph for the color components side by side in +row waveform mode or one below the other in column waveform mode +for waveform histogram mode. For levels histogram mode, +per color component graphs are placed below each other. +

+

Using this display mode in waveform histogram mode makes it easy to +spot color casts in the highlights and shadows of an image, by comparing the +contours of the top and the bottom graphs of each waveform. Since whites, +grays, and blacks are characterized by exactly equal amounts of red, green, +and blue, neutral areas of the picture should display three waveforms of +roughly equal width/height. If not, the correction is easy to perform by +making level adjustments the three waveforms. +

+
+
overlay
+

Presents information identical to that in the parade, except +that the graphs representing color components are superimposed directly +over one another. +

+

This display mode in waveform histogram mode makes it easier to spot +relative differences or similarities in overlapping areas of the color +components that are supposed to be identical, such as neutral whites, grays, +or blacks. +

+
+

Default is parade. +

+
+
levels_mode
+

Set mode for levels. Can be either linear, or logarithmic. +Default is linear. +

+
+ + +

37.42.1 Examples

+ +
    +
  • +Calculate and draw histogram: +
     
    ffplay -i input -vf histogram
    +
    + +
+ +

+

+

37.43 hqdn3d

+ +

This is a high precision/quality 3d denoise filter. It aims to reduce +image noise, producing smooth images and making still images really +still. It should enhance compressibility. +

+

It accepts the following optional parameters: +

+
+
luma_spatial
+

A non-negative floating point number which specifies spatial luma strength. +It defaults to 4.0. +

+
+
chroma_spatial
+

A non-negative floating point number which specifies spatial chroma strength. +It defaults to 3.0*luma_spatial/4.0. +

+
+
luma_tmp
+

A floating point number which specifies luma temporal strength. It defaults to +6.0*luma_spatial/4.0. +

+
+
chroma_tmp
+

A floating point number which specifies chroma temporal strength. It defaults to +luma_tmp*chroma_spatial/luma_spatial. +

+
+ + +

37.44 hue

+ +

Modify the hue and/or the saturation of the input. +

+

It accepts the following parameters: +

+
+
h
+

Specify the hue angle as a number of degrees. It accepts an expression, +and defaults to "0". +

+
+
s
+

Specify the saturation in the [-10,10] range. It accepts an expression and +defaults to "1". +

+
+
H
+

Specify the hue angle as a number of radians. It accepts an +expression, and defaults to "0". +

+
+
b
+

Specify the brightness in the [-10,10] range. It accepts an expression and +defaults to "0". +

+
+ +

h’ and ‘H’ are mutually exclusive, and can’t be +specified at the same time. +

+

The ‘b’, ‘h’, ‘H’ and ‘s’ option values are +expressions containing the following constants: +

+
+
n
+

frame count of the input frame starting from 0 +

+
+
pts
+

presentation timestamp of the input frame expressed in time base units +

+
+
r
+

frame rate of the input video, NAN if the input frame rate is unknown +

+
+
t
+

timestamp expressed in seconds, NAN if the input timestamp is unknown +

+
+
tb
+

time base of the input video +

+
+ + +

37.44.1 Examples

+ +
    +
  • +Set the hue to 90 degrees and the saturation to 1.0: +
     
    hue=h=90:s=1
    +
    + +
  • +Same command but expressing the hue in radians: +
     
    hue=H=PI/2:s=1
    +
    + +
  • +Rotate hue and make the saturation swing between 0 +and 2 over a period of 1 second: +
     
    hue="H=2*PI*t: s=sin(2*PI*t)+1"
    +
    + +
  • +Apply a 3 seconds saturation fade-in effect starting at 0: +
     
    hue="s=min(t/3\,1)"
    +
    + +

    The general fade-in expression can be written as: +

     
    hue="s=min(0\, max((t-START)/DURATION\, 1))"
    +
    + +
  • +Apply a 3 seconds saturation fade-out effect starting at 5 seconds: +
     
    hue="s=max(0\, min(1\, (8-t)/3))"
    +
    + +

    The general fade-out expression can be written as: +

     
    hue="s=max(0\, min(1\, (START+DURATION-t)/DURATION))"
    +
    + +
+ + +

37.44.2 Commands

+ +

This filter supports the following commands: +

+
b
+
s
+
h
+
H
+

Modify the hue and/or the saturation and/or brightness of the input video. +The command accepts the same syntax of the corresponding option. +

+

If the specified expression is not valid, it is kept at its current +value. +

+
+ + +

37.45 idet

+ +

Detect video interlacing type. +

+

This filter tries to detect if the input is interlaced or progressive, +top or bottom field first. +

+

The filter accepts the following options: +

+
+
intl_thres
+

Set interlacing threshold. +

+
prog_thres
+

Set progressive threshold. +

+
+ + +

37.46 il

+ +

Deinterleave or interleave fields. +

+

This filter allows one to process interlaced images fields without +deinterlacing them. Deinterleaving splits the input frame into 2 +fields (so called half pictures). Odd lines are moved to the top +half of the output image, even lines to the bottom half. +You can process (filter) them independently and then re-interleave them. +

+

The filter accepts the following options: +

+
+
luma_mode, l
+
chroma_mode, c
+
alpha_mode, a
+

Available values for luma_mode, chroma_mode and +alpha_mode are: +

+
+
none
+

Do nothing. +

+
+
deinterleave, d
+

Deinterleave fields, placing one above the other. +

+
+
interleave, i
+

Interleave fields. Reverse the effect of deinterleaving. +

+
+

Default value is none. +

+
+
luma_swap, ls
+
chroma_swap, cs
+
alpha_swap, as
+

Swap luma/chroma/alpha fields. Exchange even & odd lines. Default value is 0. +

+
+ + +

37.47 interlace

+ +

Simple interlacing filter from progressive contents. This interleaves upper (or +lower) lines from odd frames with lower (or upper) lines from even frames, +halving the frame rate and preserving image height. A vertical lowpass filter +is always applied in order to avoid twitter effects and reduce moiré patterns. +

+
 
   Original        Original             New Frame
+   Frame 'j'      Frame 'j+1'             (tff)
+  ==========      ===========       ==================
+    Line 0  -------------------->    Frame 'j' Line 0
+    Line 1          Line 1  ---->   Frame 'j+1' Line 1
+    Line 2 --------------------->    Frame 'j' Line 2
+    Line 3          Line 3  ---->   Frame 'j+1' Line 3
+     ...             ...                   ...
+New Frame + 1 will be generated by Frame 'j+2' and Frame 'j+3' and so on
+
+ +

It accepts the following optional parameters: +

+
+
scan
+

This determines whether the interlaced frame is taken from the even +(tff - default) or odd (bff) lines of the progressive frame. +

+
+ + +

37.48 kerndeint

+ +

Deinterlace input video by applying Donald Graft’s adaptive kernel +deinterling. Work on interlaced parts of a video to produce +progressive frames. +

+

The description of the accepted parameters follows. +

+
+
thresh
+

Set the threshold which affects the filter’s tolerance when +determining if a pixel line must be processed. It must be an integer +in the range [0,255] and defaults to 10. A value of 0 will result in +applying the process on every pixels. +

+
+
map
+

Paint pixels exceeding the threshold value to white if set to 1. +Default is 0. +

+
+
order
+

Set the fields order. Swap fields if set to 1, leave fields alone if +0. Default is 0. +

+
+
sharp
+

Enable additional sharpening if set to 1. Default is 0. +

+
+
twoway
+

Enable twoway sharpening if set to 1. Default is 0. +

+
+ + +

37.48.1 Examples

+ +
    +
  • +Apply default values: +
     
    kerndeint=thresh=10:map=0:order=0:sharp=0:twoway=0
    +
    + +
  • +Enable additional sharpening: +
     
    kerndeint=sharp=1
    +
    + +
  • +Paint processed pixels in white: +
     
    kerndeint=map=1
    +
    +
+ +

+

+

37.49 lut3d

+ +

Apply a 3D LUT to an input video. +

+

The filter accepts the following options: +

+
+
file
+

Set the 3D LUT file name. +

+

Currently supported formats: +

+
3dl
+

AfterEffects +

+
cube
+

Iridas +

+
dat
+

DaVinci +

+
m3d
+

Pandora +

+
+
+
interp
+

Select interpolation mode. +

+

Available values are: +

+
+
nearest
+

Use values from the nearest defined point. +

+
trilinear
+

Interpolate values using the 8 points defining a cube. +

+
tetrahedral
+

Interpolate values using a tetrahedron. +

+
+
+
+ + +

37.50 lut, lutrgb, lutyuv

+ +

Compute a look-up table for binding each pixel component input value +to an output value, and apply it to the input video. +

+

lutyuv applies a lookup table to a YUV input video, lutrgb +to an RGB input video. +

+

These filters accept the following parameters: +

+
c0
+

set first pixel component expression +

+
c1
+

set second pixel component expression +

+
c2
+

set third pixel component expression +

+
c3
+

set fourth pixel component expression, corresponds to the alpha component +

+
+
r
+

set red component expression +

+
g
+

set green component expression +

+
b
+

set blue component expression +

+
a
+

alpha component expression +

+
+
y
+

set Y/luminance component expression +

+
u
+

set U/Cb component expression +

+
v
+

set V/Cr component expression +

+
+ +

Each of them specifies the expression to use for computing the lookup table for +the corresponding pixel component values. +

+

The exact component associated to each of the c* options depends on the +format in input. +

+

The lut filter requires either YUV or RGB pixel formats in input, +lutrgb requires RGB pixel formats in input, and lutyuv requires YUV. +

+

The expressions can contain the following constants and functions: +

+
+
w
+
h
+

The input width and height. +

+
+
val
+

The input value for the pixel component. +

+
+
clipval
+

The input value, clipped to the minval-maxval range. +

+
+
maxval
+

The maximum value for the pixel component. +

+
+
minval
+

The minimum value for the pixel component. +

+
+
negval
+

The negated value for the pixel component value, clipped to the +minval-maxval range; it corresponds to the expression +"maxval-clipval+minval". +

+
+
clip(val)
+

The computed value in val, clipped to the +minval-maxval range. +

+
+
gammaval(gamma)
+

The computed gamma correction value of the pixel component value, +clipped to the minval-maxval range. It corresponds to the +expression +"pow((clipval-minval)/(maxval-minval)\,gamma)*(maxval-minval)+minval" +

+
+
+ +

All expressions default to "val". +

+ +

37.50.1 Examples

+ +
    +
  • +Negate input video: +
     
    lutrgb="r=maxval+minval-val:g=maxval+minval-val:b=maxval+minval-val"
    +lutyuv="y=maxval+minval-val:u=maxval+minval-val:v=maxval+minval-val"
    +
    + +

    The above is the same as: +

     
    lutrgb="r=negval:g=negval:b=negval"
    +lutyuv="y=negval:u=negval:v=negval"
    +
    + +
  • +Negate luminance: +
     
    lutyuv=y=negval
    +
    + +
  • +Remove chroma components, turning the video into a graytone image: +
     
    lutyuv="u=128:v=128"
    +
    + +
  • +Apply a luma burning effect: +
     
    lutyuv="y=2*val"
    +
    + +
  • +Remove green and blue components: +
     
    lutrgb="g=0:b=0"
    +
    + +
  • +Set a constant alpha channel value on input: +
     
    format=rgba,lutrgb=a="maxval-minval/2"
    +
    + +
  • +Correct luminance gamma by a factor of 0.5: +
     
    lutyuv=y=gammaval(0.5)
    +
    + +
  • +Discard least significant bits of luma: +
     
    lutyuv=y='bitand(val, 128+64+32)'
    +
    +
+ + +

37.51 mergeplanes

+ +

Merge color channel components from several video streams. +

+

The filter accepts up to 4 input streams, and merge selected input +planes to the output video. +

+

This filter accepts the following options: +

+
mapping
+

Set input to output plane mapping. Default is 0. +

+

The mappings is specified as a bitmap. It should be specified as a +hexadecimal number in the form 0xAa[Bb[Cc[Dd]]]. ’Aa’ describes the +mapping for the first plane of the output stream. ’A’ sets the number of +the input stream to use (from 0 to 3), and ’a’ the plane number of the +corresponding input to use (from 0 to 3). The rest of the mappings is +similar, ’Bb’ describes the mapping for the output stream second +plane, ’Cc’ describes the mapping for the output stream third plane and +’Dd’ describes the mapping for the output stream fourth plane. +

+
+
format
+

Set output pixel format. Default is yuva444p. +

+
+ + +

37.51.1 Examples

+ +
    +
  • +Merge three gray video streams of same width and height into single video stream: +
     
    [a0][a1][a2]mergeplanes=0x001020:yuv444p
    +
    + +
  • +Merge 1st yuv444p stream and 2nd gray video stream into yuva444p video stream: +
     
    [a0][a1]mergeplanes=0x00010210:yuva444p
    +
    + +
  • +Swap Y and A plane in yuva444p stream: +
     
    format=yuva444p,mergeplanes=0x03010200:yuva444p
    +
    + +
  • +Swap U and V plane in yuv420p stream: +
     
    format=yuv420p,mergeplanes=0x000201:yuv420p
    +
    + +
  • +Cast a rgb24 clip to yuv444p: +
     
    format=rgb24,mergeplanes=0x000102:yuv444p
    +
    +
+ + +

37.52 mcdeint

+ +

Apply motion-compensation deinterlacing. +

+

It needs one field per frame as input and must thus be used together +with yadif=1/3 or equivalent. +

+

This filter accepts the following options: +

+
mode
+

Set the deinterlacing mode. +

+

It accepts one of the following values: +

+
fast
+
medium
+
slow
+

use iterative motion estimation +

+
extra_slow
+

like ‘slow’, but use multiple reference frames. +

+
+

Default value is ‘fast’. +

+
+
parity
+

Set the picture field parity assumed for the input video. It must be +one of the following values: +

+
+
0, tff
+

assume top field first +

+
1, bff
+

assume bottom field first +

+
+ +

Default value is ‘bff’. +

+
+
qp
+

Set per-block quantization parameter (QP) used by the internal +encoder. +

+

Higher values should result in a smoother motion vector field but less +optimal individual vectors. Default value is 1. +

+
+ + +

37.53 mp

+ +

Apply an MPlayer filter to the input video. +

+

This filter provides a wrapper around some of the filters of +MPlayer/MEncoder. +

+

This wrapper is considered experimental. Some of the wrapped filters +may not work properly and we may drop support for them, as they will +be implemented natively into FFmpeg. Thus you should avoid +depending on them when writing portable scripts. +

+

The filter accepts the parameters: +filter_name[:=]filter_params +

+

filter_name is the name of a supported MPlayer filter, +filter_params is a string containing the parameters accepted by +the named filter. +

+

The list of the currently supported filters follows: +

+
eq2
+
eq
+
fspp
+
ilpack
+
pp7
+
softpulldown
+
uspp
+
+ +

The parameter syntax and behavior for the listed filters are the same +of the corresponding MPlayer filters. For detailed instructions check +the "VIDEO FILTERS" section in the MPlayer manual. +

+ +

37.53.1 Examples

+ +
    +
  • +Adjust gamma, brightness, contrast: +
     
    mp=eq2=1.0:2:0.5
    +
    +
+ +

See also mplayer(1), http://www.mplayerhq.hu/. +

+ +

37.54 mpdecimate

+ +

Drop frames that do not differ greatly from the previous frame in +order to reduce frame rate. +

+

The main use of this filter is for very-low-bitrate encoding +(e.g. streaming over dialup modem), but it could in theory be used for +fixing movies that were inverse-telecined incorrectly. +

+

A description of the accepted options follows. +

+
+
max
+

Set the maximum number of consecutive frames which can be dropped (if +positive), or the minimum interval between dropped frames (if +negative). If the value is 0, the frame is dropped unregarding the +number of previous sequentially dropped frames. +

+

Default value is 0. +

+
+
hi
+
lo
+
frac
+

Set the dropping threshold values. +

+

Values for ‘hi’ and ‘lo’ are for 8x8 pixel blocks and +represent actual pixel value differences, so a threshold of 64 +corresponds to 1 unit of difference for each pixel, or the same spread +out differently over the block. +

+

A frame is a candidate for dropping if no 8x8 blocks differ by more +than a threshold of ‘hi’, and if no more than ‘frac’ blocks (1 +meaning the whole image) differ by more than a threshold of ‘lo’. +

+

Default value for ‘hi’ is 64*12, default value for ‘lo’ is +64*5, and default value for ‘frac’ is 0.33. +

+
+ + + +

37.55 negate

+ +

Negate input video. +

+

It accepts an integer in input; if non-zero it negates the +alpha component (if available). The default value in input is 0. +

+ +

37.56 noformat

+ +

Force libavfilter not to use any of the specified pixel formats for the +input to the next filter. +

+

It accepts the following parameters: +

+
pix_fmts
+

A ’|’-separated list of pixel format names, such as +apix_fmts=yuv420p|monow|rgb24". +

+
+
+ + +

37.56.1 Examples

+ +
    +
  • +Force libavfilter to use a format different from yuv420p for the +input to the vflip filter: +
     
    noformat=pix_fmts=yuv420p,vflip
    +
    + +
  • +Convert the input video to any of the formats not contained in the list: +
     
    noformat=yuv420p|yuv444p|yuv410p
    +
    +
+ + +

37.57 noise

+ +

Add noise on video input frame. +

+

The filter accepts the following options: +

+
+
all_seed
+
c0_seed
+
c1_seed
+
c2_seed
+
c3_seed
+

Set noise seed for specific pixel component or all pixel components in case +of all_seed. Default value is 123457. +

+
+
all_strength, alls
+
c0_strength, c0s
+
c1_strength, c1s
+
c2_strength, c2s
+
c3_strength, c3s
+

Set noise strength for specific pixel component or all pixel components in case +all_strength. Default value is 0. Allowed range is [0, 100]. +

+
+
all_flags, allf
+
c0_flags, c0f
+
c1_flags, c1f
+
c2_flags, c2f
+
c3_flags, c3f
+

Set pixel component flags or set flags for all components if all_flags. +Available values for component flags are: +

+
a
+

averaged temporal noise (smoother) +

+
p
+

mix random noise with a (semi)regular pattern +

+
t
+

temporal noise (noise pattern changes between frames) +

+
u
+

uniform noise (gaussian otherwise) +

+
+
+
+ + +

37.57.1 Examples

+ +

Add temporal and uniform noise to input video: +

 
noise=alls=20:allf=t+u
+
+ + +

37.58 null

+ +

Pass the video source unchanged to the output. +

+ +

37.59 ocv

+ +

Apply a video transform using libopencv. +

+

To enable this filter, install the libopencv library and headers and +configure FFmpeg with --enable-libopencv. +

+

It accepts the following parameters: +

+
+
filter_name
+

The name of the libopencv filter to apply. +

+
+
filter_params
+

The parameters to pass to the libopencv filter. If not specified, the default +values are assumed. +

+
+
+ +

Refer to the official libopencv documentation for more precise +information: +http://opencv.willowgarage.com/documentation/c/image_filtering.html +

+

Several libopencv filters are supported; see the following subsections. +

+

+

+

37.59.1 dilate

+ +

Dilate an image by using a specific structuring element. +It corresponds to the libopencv function cvDilate. +

+

It accepts the parameters: struct_el|nb_iterations. +

+

struct_el represents a structuring element, and has the syntax: +colsxrows+anchor_xxanchor_y/shape +

+

cols and rows represent the number of columns and rows of +the structuring element, anchor_x and anchor_y the anchor +point, and shape the shape for the structuring element. shape +must be "rect", "cross", "ellipse", or "custom". +

+

If the value for shape is "custom", it must be followed by a +string of the form "=filename". The file with name +filename is assumed to represent a binary image, with each +printable character corresponding to a bright pixel. When a custom +shape is used, cols and rows are ignored, the number +or columns and rows of the read file are assumed instead. +

+

The default value for struct_el is "3x3+0x0/rect". +

+

nb_iterations specifies the number of times the transform is +applied to the image, and defaults to 1. +

+

Some examples: +

 
# Use the default values
+ocv=dilate
+
+# Dilate using a structuring element with a 5x5 cross, iterating two times
+ocv=filter_name=dilate:filter_params=5x5+2x2/cross|2
+
+# Read the shape from the file diamond.shape, iterating two times.
+# The file diamond.shape may contain a pattern of characters like this
+#   *
+#  ***
+# *****
+#  ***
+#   *
+# The specified columns and rows are ignored
+# but the anchor point coordinates are not
+ocv=dilate:0x0+2x2/custom=diamond.shape|2
+
+ + +

37.59.2 erode

+ +

Erode an image by using a specific structuring element. +It corresponds to the libopencv function cvErode. +

+

It accepts the parameters: struct_el:nb_iterations, +with the same syntax and semantics as the dilate filter. +

+ +

37.59.3 smooth

+ +

Smooth the input video. +

+

The filter takes the following parameters: +type|param1|param2|param3|param4. +

+

type is the type of smooth filter to apply, and must be one of +the following values: "blur", "blur_no_scale", "median", "gaussian", +or "bilateral". The default value is "gaussian". +

+

The meaning of param1, param2, param3, and param4 +depend on the smooth type. param1 and +param2 accept integer positive values or 0. param3 and +param4 accept floating point values. +

+

The default value for param1 is 3. The default value for the +other parameters is 0. +

+

These parameters correspond to the parameters assigned to the +libopencv function cvSmooth. +

+

+

+

37.60 overlay

+ +

Overlay one video on top of another. +

+

It takes two inputs and has one output. The first input is the "main" +video on which the second input is overlayed. +

+

It accepts the following parameters: +

+

A description of the accepted options follows. +

+
+
x
+
y
+

Set the expression for the x and y coordinates of the overlayed video +on the main video. Default value is "0" for both expressions. In case +the expression is invalid, it is set to a huge value (meaning that the +overlay will not be displayed within the output visible area). +

+
+
eof_action
+

The action to take when EOF is encountered on the secondary input; it accepts +one of the following values: +

+
+
repeat
+

Repeat the last frame (the default). +

+
endall
+

End both streams. +

+
pass
+

Pass the main input through. +

+
+ +
+
eval
+

Set when the expressions for ‘x’, and ‘y’ are evaluated. +

+

It accepts the following values: +

+
init
+

only evaluate expressions once during the filter initialization or +when a command is processed +

+
+
frame
+

evaluate expressions for each incoming frame +

+
+ +

Default value is ‘frame’. +

+
+
shortest
+

If set to 1, force the output to terminate when the shortest input +terminates. Default value is 0. +

+
+
format
+

Set the format for the output video. +

+

It accepts the following values: +

+
yuv420
+

force YUV420 output +

+
+
yuv422
+

force YUV422 output +

+
+
yuv444
+

force YUV444 output +

+
+
rgb
+

force RGB output +

+
+ +

Default value is ‘yuv420’. +

+
+
rgb (deprecated)
+

If set to 1, force the filter to accept inputs in the RGB +color space. Default value is 0. This option is deprecated, use +‘format’ instead. +

+
+
repeatlast
+

If set to 1, force the filter to draw the last overlay frame over the +main input until the end of the stream. A value of 0 disables this +behavior. Default value is 1. +

+
+ +

The ‘x’, and ‘y’ expressions can contain the following +parameters. +

+
+
main_w, W
+
main_h, H
+

The main input width and height. +

+
+
overlay_w, w
+
overlay_h, h
+

The overlay input width and height. +

+
+
x
+
y
+

The computed values for x and y. They are evaluated for +each new frame. +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values of the output +format. For example for the pixel format "yuv422p" hsub is 2 and +vsub is 1. +

+
+
n
+

the number of input frame, starting from 0 +

+
+
pos
+

the position in the file of the input frame, NAN if unknown +

+
+
t
+

The timestamp, expressed in seconds. It’s NAN if the input timestamp is unknown. +

+
+
+ +

Note that the n, pos, t variables are available only +when evaluation is done per frame, and will evaluate to NAN +when ‘eval’ is set to ‘init’. +

+

Be aware that frames are taken from each input video in timestamp +order, hence, if their initial timestamps differ, it is a good idea +to pass the two inputs through a setpts=PTS-STARTPTS filter to +have them begin in the same zero timestamp, as the example for +the movie filter does. +

+

You can chain together more overlays but you should test the +efficiency of such approach. +

+ +

37.60.1 Commands

+ +

This filter supports the following commands: +

+
x
+
y
+

Modify the x and y of the overlay input. +The command accepts the same syntax of the corresponding option. +

+

If the specified expression is not valid, it is kept at its current +value. +

+
+ + +

37.60.2 Examples

+ +
    +
  • +Draw the overlay at 10 pixels from the bottom right corner of the main +video: +
     
    overlay=main_w-overlay_w-10:main_h-overlay_h-10
    +
    + +

    Using named options the example above becomes: +

     
    overlay=x=main_w-overlay_w-10:y=main_h-overlay_h-10
    +
    + +
  • +Insert a transparent PNG logo in the bottom left corner of the input, +using the ffmpeg tool with the -filter_complex option: +
     
    ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output
    +
    + +
  • +Insert 2 different transparent PNG logos (second logo on bottom +right corner) using the ffmpeg tool: +
     
    ffmpeg -i input -i logo1 -i logo2 -filter_complex 'overlay=x=10:y=H-h-10,overlay=x=W-w-10:y=H-h-10' output
    +
    + +
  • +Add a transparent color layer on top of the main video; WxH +must specify the size of the main input to the overlay filter: +
     
    color=color=red@.3:size=WxH [over]; [in][over] overlay [out]
    +
    + +
  • +Play an original video and a filtered version (here with the deshake +filter) side by side using the ffplay tool: +
     
    ffplay input.avi -vf 'split[a][b]; [a]pad=iw*2:ih[src]; [b]deshake[filt]; [src][filt]overlay=w'
    +
    + +

    The above command is the same as: +

     
    ffplay input.avi -vf 'split[b], pad=iw*2[src], [b]deshake, [src]overlay=w'
    +
    + +
  • +Make a sliding overlay appearing from the left to the right top part of the +screen starting since time 2: +
     
    overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0
    +
    + +
  • +Compose output by putting two input videos side to side: +
     
    ffmpeg -i left.avi -i right.avi -filter_complex "
    +nullsrc=size=200x100 [background];
    +[0:v] setpts=PTS-STARTPTS, scale=100x100 [left];
    +[1:v] setpts=PTS-STARTPTS, scale=100x100 [right];
    +[background][left]       overlay=shortest=1       [background+left];
    +[background+left][right] overlay=shortest=1:x=100 [left+right]
    +"
    +
    + +
  • +Mask 10-20 seconds of a video by applying the delogo filter to a section +
     
    ffmpeg -i test.avi -codec:v:0 wmv2 -ar 11025 -b:v 9000k
    +-vf '[in]split[split_main][split_delogo];[split_delogo]trim=start=360:end=371,delogo=0:0:640:480[delogoed];[split_main][delogoed]overlay=eof_action=pass[out]'
    +masked.avi
    +
    + +
  • +Chain several overlays in cascade: +
     
    nullsrc=s=200x200 [bg];
    +testsrc=s=100x100, split=4 [in0][in1][in2][in3];
    +[in0] lutrgb=r=0, [bg]   overlay=0:0     [mid0];
    +[in1] lutrgb=g=0, [mid0] overlay=100:0   [mid1];
    +[in2] lutrgb=b=0, [mid1] overlay=0:100   [mid2];
    +[in3] null,       [mid2] overlay=100:100 [out0]
    +
    + +
+ + +

37.61 owdenoise

+ +

Apply Overcomplete Wavelet denoiser. +

+

The filter accepts the following options: +

+
+
depth
+

Set depth. +

+

Larger depth values will denoise lower frequency components more, but +slow down filtering. +

+

Must be an int in the range 8-16, default is 8. +

+
+
luma_strength, ls
+

Set luma strength. +

+

Must be a double value in the range 0-1000, default is 1.0. +

+
+
chroma_strength, cs
+

Set chroma strength. +

+

Must be a double value in the range 0-1000, default is 1.0. +

+
+ + +

37.62 pad

+ +

Add paddings to the input image, and place the original input at the +provided x, y coordinates. +

+

It accepts the following parameters: +

+
+
width, w
+
height, h
+

Specify an expression for the size of the output image with the +paddings added. If the value for width or height is 0, the +corresponding input size is used for the output. +

+

The width expression can reference the value set by the +height expression, and vice versa. +

+

The default value of width and height is 0. +

+
+
x
+
y
+

Specify the offsets to place the input image at within the padded area, +with respect to the top/left border of the output image. +

+

The x expression can reference the value set by the y +expression, and vice versa. +

+

The default value of x and y is 0. +

+
+
color
+

Specify the color of the padded area. For the syntax of this option, +check the "Color" section in the ffmpeg-utils manual. +

+

The default value of color is "black". +

+
+ +

The value for the width, height, x, and y +options are expressions containing the following constants: +

+
+
in_w
+
in_h
+

The input video width and height. +

+
+
iw
+
ih
+

These are the same as in_w and in_h. +

+
+
out_w
+
out_h
+

The output width and height (the size of the padded area), as +specified by the width and height expressions. +

+
+
ow
+
oh
+

These are the same as out_w and out_h. +

+
+
x
+
y
+

The x and y offsets as specified by the x and y +expressions, or NAN if not yet specified. +

+
+
a
+

same as iw / ih +

+
+
sar
+

input sample aspect ratio +

+
+
dar
+

input display aspect ratio, it is the same as (iw / ih) * sar +

+
+
hsub
+
vsub
+

The horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+ + +

37.62.1 Examples

+ +
    +
  • +Add paddings with the color "violet" to the input video. The output video +size is 640x480, and the top-left corner of the input video is placed at +column 0, row 40 +
     
    pad=640:480:0:40:violet
    +
    + +

    The example above is equivalent to the following command: +

     
    pad=width=640:height=480:x=0:y=40:color=violet
    +
    + +
  • +Pad the input to get an output with dimensions increased by 3/2, +and put the input video at the center of the padded area: +
     
    pad="3/2*iw:3/2*ih:(ow-iw)/2:(oh-ih)/2"
    +
    + +
  • +Pad the input to get a squared output with size equal to the maximum +value between the input width and height, and put the input video at +the center of the padded area: +
     
    pad="max(iw\,ih):ow:(ow-iw)/2:(oh-ih)/2"
    +
    + +
  • +Pad the input to get a final w/h ratio of 16:9: +
     
    pad="ih*16/9:ih:(ow-iw)/2:(oh-ih)/2"
    +
    + +
  • +In case of anamorphic video, in order to set the output display aspect +correctly, it is necessary to use sar in the expression, +according to the relation: +
     
    (ih * X / ih) * sar = output_dar
    +X = output_dar / sar
    +
    + +

    Thus the previous example needs to be modified to: +

     
    pad="ih*16/9/sar:ih:(ow-iw)/2:(oh-ih)/2"
    +
    + +
  • +Double the output size and put the input video in the bottom-right +corner of the output padded area: +
     
    pad="2*iw:2*ih:ow-iw:oh-ih"
    +
    +
+ + +

37.63 perspective

+ +

Correct perspective of video not recorded perpendicular to the screen. +

+

A description of the accepted parameters follows. +

+
+
x0
+
y0
+
x1
+
y1
+
x2
+
y2
+
x3
+
y3
+

Set coordinates expression for top left, top right, bottom left and bottom right corners. +Default values are 0:0:W:0:0:H:W:H with which perspective will remain unchanged. +

+

The expressions can use the following variables: +

+
+
W
+
H
+

the width and height of video frame. +

+
+ +
+
interpolation
+

Set interpolation for perspective correction. +

+

It accepts the following values: +

+
linear
+
cubic
+
+ +

Default value is ‘linear’. +

+
+ + +

37.64 phase

+ +

Delay interlaced video by one field time so that the field order changes. +

+

The intended use is to fix PAL movies that have been captured with the +opposite field order to the film-to-video transfer. +

+

A description of the accepted parameters follows. +

+
+
mode
+

Set phase mode. +

+

It accepts the following values: +

+
t
+

Capture field order top-first, transfer bottom-first. +Filter will delay the bottom field. +

+
+
b
+

Capture field order bottom-first, transfer top-first. +Filter will delay the top field. +

+
+
p
+

Capture and transfer with the same field order. This mode only exists +for the documentation of the other options to refer to, but if you +actually select it, the filter will faithfully do nothing. +

+
+
a
+

Capture field order determined automatically by field flags, transfer +opposite. +Filter selects among ‘t’ and ‘b’ modes on a frame by frame +basis using field flags. If no field information is available, +then this works just like ‘u’. +

+
+
u
+

Capture unknown or varying, transfer opposite. +Filter selects among ‘t’ and ‘b’ on a frame by frame basis by +analyzing the images and selecting the alternative that produces best +match between the fields. +

+
+
T
+

Capture top-first, transfer unknown or varying. +Filter selects among ‘t’ and ‘p’ using image analysis. +

+
+
B
+

Capture bottom-first, transfer unknown or varying. +Filter selects among ‘b’ and ‘p’ using image analysis. +

+
+
A
+

Capture determined by field flags, transfer unknown or varying. +Filter selects among ‘t’, ‘b’ and ‘p’ using field flags and +image analysis. If no field information is available, then this works just +like ‘U’. This is the default mode. +

+
+
U
+

Both capture and transfer unknown or varying. +Filter selects among ‘t’, ‘b’ and ‘p’ using image analysis only. +

+
+
+
+ + +

37.65 pixdesctest

+ +

Pixel format descriptor test filter, mainly useful for internal +testing. The output video should be equal to the input video. +

+

For example: +

 
format=monow, pixdesctest
+
+ +

can be used to test the monowhite pixel format descriptor definition. +

+ +

37.66 pp

+ +

Enable the specified chain of postprocessing subfilters using libpostproc. This +library should be automatically selected with a GPL build (--enable-gpl). +Subfilters must be separated by ’/’ and can be disabled by prepending a ’-’. +Each subfilter and some options have a short and a long name that can be used +interchangeably, i.e. dr/dering are the same. +

+

The filters accept the following options: +

+
+
subfilters
+

Set postprocessing subfilters string. +

+
+ +

All subfilters share common options to determine their scope: +

+
+
a/autoq
+

Honor the quality commands for this subfilter. +

+
+
c/chrom
+

Do chrominance filtering, too (default). +

+
+
y/nochrom
+

Do luminance filtering only (no chrominance). +

+
+
n/noluma
+

Do chrominance filtering only (no luminance). +

+
+ +

These options can be appended after the subfilter name, separated by a ’|’. +

+

Available subfilters are: +

+
+
hb/hdeblock[|difference[|flatness]]
+

Horizontal deblocking filter +

+
difference
+

Difference factor where higher values mean more deblocking (default: 32). +

+
flatness
+

Flatness threshold where lower values mean more deblocking (default: 39). +

+
+ +
+
vb/vdeblock[|difference[|flatness]]
+

Vertical deblocking filter +

+
difference
+

Difference factor where higher values mean more deblocking (default: 32). +

+
flatness
+

Flatness threshold where lower values mean more deblocking (default: 39). +

+
+ +
+
ha/hadeblock[|difference[|flatness]]
+

Accurate horizontal deblocking filter +

+
difference
+

Difference factor where higher values mean more deblocking (default: 32). +

+
flatness
+

Flatness threshold where lower values mean more deblocking (default: 39). +

+
+ +
+
va/vadeblock[|difference[|flatness]]
+

Accurate vertical deblocking filter +

+
difference
+

Difference factor where higher values mean more deblocking (default: 32). +

+
flatness
+

Flatness threshold where lower values mean more deblocking (default: 39). +

+
+
+
+ +

The horizontal and vertical deblocking filters share the difference and +flatness values so you cannot set different horizontal and vertical +thresholds. +

+
+
h1/x1hdeblock
+

Experimental horizontal deblocking filter +

+
+
v1/x1vdeblock
+

Experimental vertical deblocking filter +

+
+
dr/dering
+

Deringing filter +

+
+
tn/tmpnoise[|threshold1[|threshold2[|threshold3]]], temporal noise reducer
+
+
threshold1
+

larger -> stronger filtering +

+
threshold2
+

larger -> stronger filtering +

+
threshold3
+

larger -> stronger filtering +

+
+ +
+
al/autolevels[:f/fullyrange], automatic brightness / contrast correction
+
+
f/fullyrange
+

Stretch luminance to 0-255. +

+
+ +
+
lb/linblenddeint
+

Linear blend deinterlacing filter that deinterlaces the given block by +filtering all lines with a (1 2 1) filter. +

+
+
li/linipoldeint
+

Linear interpolating deinterlacing filter that deinterlaces the given block by +linearly interpolating every second line. +

+
+
ci/cubicipoldeint
+

Cubic interpolating deinterlacing filter deinterlaces the given block by +cubically interpolating every second line. +

+
+
md/mediandeint
+

Median deinterlacing filter that deinterlaces the given block by applying a +median filter to every second line. +

+
+
fd/ffmpegdeint
+

FFmpeg deinterlacing filter that deinterlaces the given block by filtering every +second line with a (-1 4 2 4 -1) filter. +

+
+
l5/lowpass5
+

Vertically applied FIR lowpass deinterlacing filter that deinterlaces the given +block by filtering all lines with a (-1 2 6 2 -1) filter. +

+
+
fq/forceQuant[|quantizer]
+

Overrides the quantizer table from the input with the constant quantizer you +specify. +

+
quantizer
+

Quantizer to use +

+
+ +
+
de/default
+

Default pp filter combination (hb|a,vb|a,dr|a) +

+
+
fa/fast
+

Fast pp filter combination (h1|a,v1|a,dr|a) +

+
+
ac
+

High quality pp filter combination (ha|a|128|7,va|a,dr|a) +

+
+ + +

37.66.1 Examples

+ +
    +
  • +Apply horizontal and vertical deblocking, deringing and automatic +brightness/contrast: +
     
    pp=hb/vb/dr/al
    +
    + +
  • +Apply default filters without brightness/contrast correction: +
     
    pp=de/-al
    +
    + +
  • +Apply default filters and temporal denoiser: +
     
    pp=default/tmpnoise|1|2|3
    +
    + +
  • +Apply deblocking on luminance only, and switch vertical deblocking on or off +automatically depending on available CPU time: +
     
    pp=hb|y/vb|a
    +
    +
+ + +

37.67 psnr

+ +

Obtain the average, maximum and minimum PSNR (Peak Signal to Noise +Ratio) between two input videos. +

+

This filter takes in input two input videos, the first input is +considered the "main" source and is passed unchanged to the +output. The second input is used as a "reference" video for computing +the PSNR. +

+

Both video inputs must have the same resolution and pixel format for +this filter to work correctly. Also it assumes that both inputs +have the same number of frames, which are compared one by one. +

+

The obtained average PSNR is printed through the logging system. +

+

The filter stores the accumulated MSE (mean squared error) of each +frame, and at the end of the processing it is averaged across all frames +equally, and the following formula is applied to obtain the PSNR: +

+
 
PSNR = 10*log10(MAX^2/MSE)
+
+ +

Where MAX is the average of the maximum values of each component of the +image. +

+

The description of the accepted parameters follows. +

+
+
stats_file, f
+

If specified the filter will use the named file to save the PSNR of +each individual frame. +

+
+ +

The file printed if stats_file is selected, contains a sequence of +key/value pairs of the form key:value for each compared +couple of frames. +

+

A description of each shown parameter follows: +

+
+
n
+

sequential number of the input frame, starting from 1 +

+
+
mse_avg
+

Mean Square Error pixel-by-pixel average difference of the compared +frames, averaged over all the image components. +

+
+
mse_y, mse_u, mse_v, mse_r, mse_g, mse_g, mse_a
+

Mean Square Error pixel-by-pixel average difference of the compared +frames for the component specified by the suffix. +

+
+
psnr_y, psnr_u, psnr_v, psnr_r, psnr_g, psnr_b, psnr_a
+

Peak Signal to Noise ratio of the compared frames for the component +specified by the suffix. +

+
+ +

For example: +

 
movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
+[main][ref] psnr="stats_file=stats.log" [out]
+
+ +

On this example the input file being processed is compared with the +reference file ‘ref_movie.mpg’. The PSNR of each individual frame +is stored in ‘stats.log’. +

+

+

+

37.68 pullup

+ +

Pulldown reversal (inverse telecine) filter, capable of handling mixed +hard-telecine, 24000/1001 fps progressive, and 30000/1001 fps progressive +content. +

+

The pullup filter is designed to take advantage of future context in making +its decisions. This filter is stateless in the sense that it does not lock +onto a pattern to follow, but it instead looks forward to the following +fields in order to identify matches and rebuild progressive frames. +

+

To produce content with an even framerate, insert the fps filter after +pullup, use fps=24000/1001 if the input frame rate is 29.97fps, +fps=24 for 30fps and the (rare) telecined 25fps input. +

+

The filter accepts the following options: +

+
+
jl
+
jr
+
jt
+
jb
+

These options set the amount of "junk" to ignore at the left, right, top, and +bottom of the image, respectively. Left and right are in units of 8 pixels, +while top and bottom are in units of 2 lines. +The default is 8 pixels on each side. +

+
+
sb
+

Set the strict breaks. Setting this option to 1 will reduce the chances of +filter generating an occasional mismatched frame, but it may also cause an +excessive number of frames to be dropped during high motion sequences. +Conversely, setting it to -1 will make filter match fields more easily. +This may help processing of video where there is slight blurring between +the fields, but may also cause there to be interlaced frames in the output. +Default value is 0. +

+
+
mp
+

Set the metric plane to use. It accepts the following values: +

+
l
+

Use luma plane. +

+
+
u
+

Use chroma blue plane. +

+
+
v
+

Use chroma red plane. +

+
+ +

This option may be set to use chroma plane instead of the default luma plane +for doing filter’s computations. This may improve accuracy on very clean +source material, but more likely will decrease accuracy, especially if there +is chroma noise (rainbow effect) or any grayscale video. +The main purpose of setting ‘mp’ to a chroma plane is to reduce CPU +load and make pullup usable in realtime on slow machines. +

+
+ +

For best results (without duplicated frames in the output file) it is +necessary to change the output frame rate. For example, to inverse +telecine NTSC input: +

 
ffmpeg -i input -vf pullup -r 24000/1001 ...
+
+ + +

37.69 removelogo

+ +

Suppress a TV station logo, using an image file to determine which +pixels comprise the logo. It works by filling in the pixels that +comprise the logo with neighboring pixels. +

+

The filter accepts the following options: +

+
+
filename, f
+

Set the filter bitmap file, which can be any image format supported by +libavformat. The width and height of the image file must match those of the +video stream being processed. +

+
+ +

Pixels in the provided bitmap image with a value of zero are not +considered part of the logo, non-zero pixels are considered part of +the logo. If you use white (255) for the logo and black (0) for the +rest, you will be safe. For making the filter bitmap, it is +recommended to take a screen capture of a black frame with the logo +visible, and then using a threshold filter followed by the erode +filter once or twice. +

+

If needed, little splotches can be fixed manually. Remember that if +logo pixels are not covered, the filter quality will be much +reduced. Marking too many pixels as part of the logo does not hurt as +much, but it will increase the amount of blurring needed to cover over +the image and will destroy more information than necessary, and extra +pixels will slow things down on a large logo. +

+ +

37.70 rotate

+ +

Rotate video by an arbitrary angle expressed in radians. +

+

The filter accepts the following options: +

+

A description of the optional parameters follows. +

+
angle, a
+

Set an expression for the angle by which to rotate the input video +clockwise, expressed as a number of radians. A negative value will +result in a counter-clockwise rotation. By default it is set to "0". +

+

This expression is evaluated for each frame. +

+
+
out_w, ow
+

Set the output width expression, default value is "iw". +This expression is evaluated just once during configuration. +

+
+
out_h, oh
+

Set the output height expression, default value is "ih". +This expression is evaluated just once during configuration. +

+
+
bilinear
+

Enable bilinear interpolation if set to 1, a value of 0 disables +it. Default value is 1. +

+
+
fillcolor, c
+

Set the color used to fill the output area not covered by the rotated +image. For the generalsyntax of this option, check the "Color" section in the +ffmpeg-utils manual. If the special value "none" is selected then no +background is printed (useful for example if the background is never shown). +

+

Default value is "black". +

+
+ +

The expressions for the angle and the output size can contain the +following constants and functions: +

+
+
n
+

sequential number of the input frame, starting from 0. It is always NAN +before the first frame is filtered. +

+
+
t
+

time in seconds of the input frame, it is set to 0 when the filter is +configured. It is always NAN before the first frame is filtered. +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
in_w, iw
+
in_h, ih
+

the input video width and height +

+
+
out_w, ow
+
out_h, oh
+

the output width and height, that is the size of the padded area as +specified by the width and height expressions +

+
+
rotw(a)
+
roth(a)
+

the minimal width/height required for completely containing the input +video rotated by a radians. +

+

These are only available when computing the ‘out_w’ and +‘out_h’ expressions. +

+
+ + +

37.70.1 Examples

+ +
    +
  • +Rotate the input by PI/6 radians clockwise: +
     
    rotate=PI/6
    +
    + +
  • +Rotate the input by PI/6 radians counter-clockwise: +
     
    rotate=-PI/6
    +
    + +
  • +Rotate the input by 45 degrees clockwise: +
     
    rotate=45*PI/180
    +
    + +
  • +Apply a constant rotation with period T, starting from an angle of PI/3: +
     
    rotate=PI/3+2*PI*t/T
    +
    + +
  • +Make the input video rotation oscillating with a period of T +seconds and an amplitude of A radians: +
     
    rotate=A*sin(2*PI/T*t)
    +
    + +
  • +Rotate the video, output size is chosen so that the whole rotating +input video is always completely contained in the output: +
     
    rotate='2*PI*t:ow=hypot(iw,ih):oh=ow'
    +
    + +
  • +Rotate the video, reduce the output size so that no background is ever +shown: +
     
    rotate=2*PI*t:ow='min(iw,ih)/sqrt(2)':oh=ow:c=none
    +
    +
+ + +

37.70.2 Commands

+ +

The filter supports the following commands: +

+
+
a, angle
+

Set the angle expression. +The command accepts the same syntax of the corresponding option. +

+

If the specified expression is not valid, it is kept at its current +value. +

+
+ + +

37.71 sab

+ +

Apply Shape Adaptive Blur. +

+

The filter accepts the following options: +

+
+
luma_radius, lr
+

Set luma blur filter strength, must be a value in range 0.1-4.0, default +value is 1.0. A greater value will result in a more blurred image, and +in slower processing. +

+
+
luma_pre_filter_radius, lpfr
+

Set luma pre-filter radius, must be a value in the 0.1-2.0 range, default +value is 1.0. +

+
+
luma_strength, ls
+

Set luma maximum difference between pixels to still be considered, must +be a value in the 0.1-100.0 range, default value is 1.0. +

+
+
chroma_radius, cr
+

Set chroma blur filter strength, must be a value in range 0.1-4.0. A +greater value will result in a more blurred image, and in slower +processing. +

+
+
chroma_pre_filter_radius, cpfr
+

Set chroma pre-filter radius, must be a value in the 0.1-2.0 range. +

+
+
chroma_strength, cs
+

Set chroma maximum difference between pixels to still be considered, +must be a value in the 0.1-100.0 range. +

+
+ +

Each chroma option value, if not explicitly specified, is set to the +corresponding luma option value. +

+

+

+

37.72 scale

+ +

Scale (resize) the input video, using the libswscale library. +

+

The scale filter forces the output display aspect ratio to be the same +of the input, by changing the output sample aspect ratio. +

+

If the input image format is different from the format requested by +the next filter, the scale filter will convert the input to the +requested format. +

+ +

37.72.1 Options

+

The filter accepts the following options, or any of the options +supported by the libswscale scaler. +

+

See (ffmpeg-scaler)scaler_options for +the complete list of scaler options. +

+
+
width, w
+
height, h
+

Set the output video dimension expression. Default value is the input +dimension. +

+

If the value is 0, the input width is used for the output. +

+

If one of the values is -1, the scale filter will use a value that +maintains the aspect ratio of the input image, calculated from the +other specified dimension. If both of them are -1, the input size is +used +

+

If one of the values is -n with n > 1, the scale filter will also use a value +that maintains the aspect ratio of the input image, calculated from the other +specified dimension. After that it will, however, make sure that the calculated +dimension is divisible by n and adjust the value if necessary. +

+

See below for the list of accepted constants for use in the dimension +expression. +

+
+
interl
+

Set the interlacing mode. It accepts the following values: +

+
+
1
+

Force interlaced aware scaling. +

+
+
0
+

Do not apply interlaced scaling. +

+
+
-1
+

Select interlaced aware scaling depending on whether the source frames +are flagged as interlaced or not. +

+
+ +

Default value is ‘0’. +

+
+
flags
+

Set libswscale scaling flags. See +(ffmpeg-scaler)sws_flags for the +complete list of values. If not explicitly specified the filter applies +the default flags. +

+
+
size, s
+

Set the video size. For the syntax of this option, check the "Video size" +section in the ffmpeg-utils manual. +

+
+
in_color_matrix
+
out_color_matrix
+

Set in/output YCbCr color space type. +

+

This allows the autodetected value to be overridden as well as allows forcing +a specific value used for the output and encoder. +

+

If not specified, the color space type depends on the pixel format. +

+

Possible values: +

+
+
auto
+

Choose automatically. +

+
+
bt709
+

Format conforming to International Telecommunication Union (ITU) +Recommendation BT.709. +

+
+
fcc
+

Set color space conforming to the United States Federal Communications +Commission (FCC) Code of Federal Regulations (CFR) Title 47 (2003) 73.682 (a). +

+
+
bt601
+

Set color space conforming to: +

+
    +
  • +ITU Radiocommunication Sector (ITU-R) Recommendation BT.601 + +
  • +ITU-R Rec. BT.470-6 (1998) Systems B, B1, and G + +
  • +Society of Motion Picture and Television Engineers (SMPTE) ST 170:2004 + +
+ +
+
smpte240m
+

Set color space conforming to SMPTE ST 240:1999. +

+
+ +
+
in_range
+
out_range
+

Set in/output YCbCr sample range. +

+

This allows the autodetected value to be overridden as well as allows forcing +a specific value used for the output and encoder. If not specified, the +range depends on the pixel format. Possible values: +

+
+
auto
+

Choose automatically. +

+
+
jpeg/full/pc
+

Set full range (0-255 in case of 8-bit luma). +

+
+
mpeg/tv
+

Set "MPEG" range (16-235 in case of 8-bit luma). +

+
+ +
+
force_original_aspect_ratio
+

Enable decreasing or increasing output video width or height if necessary to +keep the original aspect ratio. Possible values: +

+
+
disable
+

Scale the video as specified and disable this feature. +

+
+
decrease
+

The output video dimensions will automatically be decreased if needed. +

+
+
increase
+

The output video dimensions will automatically be increased if needed. +

+
+
+ +

One useful instance of this option is that when you know a specific device’s +maximum allowed resolution, you can use this to limit the output video to +that, while retaining the aspect ratio. For example, device A allows +1280x720 playback, and your video is 1920x800. Using this option (set it to +decrease) and specifying 1280x720 to the command line makes the output +1280x533. +

+

Please note that this is a different thing than specifying -1 for ‘w’ +or ‘h’, you still need to specify the output resolution for this option +to work. +

+
+
+ +

The values of the ‘w’ and ‘h’ options are expressions +containing the following constants: +

+
+
in_w
+
in_h
+

The input width and height +

+
+
iw
+
ih
+

These are the same as in_w and in_h. +

+
+
out_w
+
out_h
+

The output (scaled) width and height +

+
+
ow
+
oh
+

These are the same as out_w and out_h +

+
+
a
+

The same as iw / ih +

+
+
sar
+

input sample aspect ratio +

+
+
dar
+

The input display aspect ratio. Calculated from (iw / ih) * sar. +

+
+
hsub
+
vsub
+

horizontal and vertical input chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
ohsub
+
ovsub
+

horizontal and vertical output chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+ + +

37.72.2 Examples

+ +
    +
  • +Scale the input video to a size of 200x100 +
     
    scale=w=200:h=100
    +
    + +

    This is equivalent to: +

     
    scale=200:100
    +
    + +

    or: +

     
    scale=200x100
    +
    + +
  • +Specify a size abbreviation for the output size: +
     
    scale=qcif
    +
    + +

    which can also be written as: +

     
    scale=size=qcif
    +
    + +
  • +Scale the input to 2x: +
     
    scale=w=2*iw:h=2*ih
    +
    + +
  • +The above is the same as: +
     
    scale=2*in_w:2*in_h
    +
    + +
  • +Scale the input to 2x with forced interlaced scaling: +
     
    scale=2*iw:2*ih:interl=1
    +
    + +
  • +Scale the input to half size: +
     
    scale=w=iw/2:h=ih/2
    +
    + +
  • +Increase the width, and set the height to the same size: +
     
    scale=3/2*iw:ow
    +
    + +
  • +Seek Greek harmony: +
     
    scale=iw:1/PHI*iw
    +scale=ih*PHI:ih
    +
    + +
  • +Increase the height, and set the width to 3/2 of the height: +
     
    scale=w=3/2*oh:h=3/5*ih
    +
    + +
  • +Increase the size, making the size a multiple of the chroma +subsample values: +
     
    scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub"
    +
    + +
  • +Increase the width to a maximum of 500 pixels, +keeping the same aspect ratio as the input: +
     
    scale=w='min(500\, iw*3/2):h=-1'
    +
    +
+ + +

37.73 separatefields

+ +

The separatefields takes a frame-based video input and splits +each frame into its components fields, producing a new half height clip +with twice the frame rate and twice the frame count. +

+

This filter use field-dominance information in frame to decide which +of each pair of fields to place first in the output. +If it gets it wrong use setfield filter before separatefields filter. +

+ +

37.74 setdar, setsar

+ +

The setdar filter sets the Display Aspect Ratio for the filter +output video. +

+

This is done by changing the specified Sample (aka Pixel) Aspect +Ratio, according to the following equation: +

 
DAR = HORIZONTAL_RESOLUTION / VERTICAL_RESOLUTION * SAR
+
+ +

Keep in mind that the setdar filter does not modify the pixel +dimensions of the video frame. Also, the display aspect ratio set by +this filter may be changed by later filters in the filterchain, +e.g. in case of scaling or if another "setdar" or a "setsar" filter is +applied. +

+

The setsar filter sets the Sample (aka Pixel) Aspect Ratio for +the filter output video. +

+

Note that as a consequence of the application of this filter, the +output display aspect ratio will change according to the equation +above. +

+

Keep in mind that the sample aspect ratio set by the setsar +filter may be changed by later filters in the filterchain, e.g. if +another "setsar" or a "setdar" filter is applied. +

+

It accepts the following parameters: +

+
+
r, ratio, dar (setdar only), sar (setsar only)
+

Set the aspect ratio used by the filter. +

+

The parameter can be a floating point number string, an expression, or +a string of the form num:den, where num and +den are the numerator and denominator of the aspect ratio. If +the parameter is not specified, it is assumed the value "0". +In case the form "num:den" is used, the : character +should be escaped. +

+
+
max
+

Set the maximum integer value to use for expressing numerator and +denominator when reducing the expressed aspect ratio to a rational. +Default value is 100. +

+
+
+ +

The parameter sar is an expression containing +the following constants: +

+
+
E, PI, PHI
+

These are approximated values for the mathematical constants e +(Euler’s number), pi (Greek pi), and phi (the golden ratio). +

+
+
w, h
+

The input width and height. +

+
+
a
+

These are the same as w / h. +

+
+
sar
+

The input sample aspect ratio. +

+
+
dar
+

The input display aspect ratio. It is the same as +(w / h) * sar. +

+
+
hsub, vsub
+

Horizontal and vertical chroma subsample values. For example, for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+ + +

37.74.1 Examples

+ +
    +
  • +To change the display aspect ratio to 16:9, specify one of the following: +
     
    setdar=dar=1.77777
    +setdar=dar=16/9
    +setdar=dar=1.77777
    +
    + +
  • +To change the sample aspect ratio to 10:11, specify: +
     
    setsar=sar=10/11
    +
    + +
  • +To set a display aspect ratio of 16:9, and specify a maximum integer value of +1000 in the aspect ratio reduction, use the command: +
     
    setdar=ratio=16/9:max=1000
    +
    + +
+ +

+

+

37.75 setfield

+ +

Force field for the output video frame. +

+

The setfield filter marks the interlace type field for the +output frames. It does not change the input frame, but only sets the +corresponding property, which affects how the frame is treated by +following filters (e.g. fieldorder or yadif). +

+

The filter accepts the following options: +

+
+
mode
+

Available values are: +

+
+
auto
+

Keep the same field property. +

+
+
bff
+

Mark the frame as bottom-field-first. +

+
+
tff
+

Mark the frame as top-field-first. +

+
+
prog
+

Mark the frame as progressive. +

+
+
+
+ + +

37.76 showinfo

+ +

Show a line containing various information for each input video frame. +The input video is not modified. +

+

The shown line contains a sequence of key/value pairs of the form +key:value. +

+

It accepts the following parameters: +

+
+
n
+

The (sequential) number of the input frame, starting from 0. +

+
+
pts
+

The Presentation TimeStamp of the input frame, expressed as a number of +time base units. The time base unit depends on the filter input pad. +

+
+
pts_time
+

The Presentation TimeStamp of the input frame, expressed as a number of +seconds. +

+
+
pos
+

The position of the frame in the input stream, or -1 if this information is +unavailable and/or meaningless (for example in case of synthetic video). +

+
+
fmt
+

The pixel format name. +

+
+
sar
+

The sample aspect ratio of the input frame, expressed in the form +num/den. +

+
+
s
+

The size of the input frame. For the syntax of this option, check the "Video size" +section in the ffmpeg-utils manual. +

+
+
i
+

The type of interlaced mode ("P" for "progressive", "T" for top field first, "B" +for bottom field first). +

+
+
iskey
+

This is 1 if the frame is a key frame, 0 otherwise. +

+
+
type
+

The picture type of the input frame ("I" for an I-frame, "P" for a +P-frame, "B" for a B-frame, or "?" for an unknown type). +Also refer to the documentation of the AVPictureType enum and of +the av_get_picture_type_char function defined in +‘libavutil/avutil.h’. +

+
+
checksum
+

The Adler-32 checksum (printed in hexadecimal) of all the planes of the input frame. +

+
+
plane_checksum
+

The Adler-32 checksum (printed in hexadecimal) of each plane of the input frame, +expressed in the form "[c0 c1 c2 c3]". +

+
+ + +

37.77 shuffleplanes

+ +

Reorder and/or duplicate video planes. +

+

It accepts the following parameters: +

+
+
map0
+

The index of the input plane to be used as the first output plane. +

+
+
map1
+

The index of the input plane to be used as the second output plane. +

+
+
map2
+

The index of the input plane to be used as the third output plane. +

+
+
map3
+

The index of the input plane to be used as the fourth output plane. +

+
+
+ +

The first plane has the index 0. The default is to keep the input unchanged. +

+

Swap the second and third planes of the input: +

 
ffmpeg -i INPUT -vf shuffleplanes=0:2:1:3 OUTPUT
+
+ +

+

+

37.78 smartblur

+ +

Blur the input video without impacting the outlines. +

+

It accepts the following options: +

+
+
luma_radius, lr
+

Set the luma radius. The option value must be a float number in +the range [0.1,5.0] that specifies the variance of the gaussian filter +used to blur the image (slower if larger). Default value is 1.0. +

+
+
luma_strength, ls
+

Set the luma strength. The option value must be a float number +in the range [-1.0,1.0] that configures the blurring. A value included +in [0.0,1.0] will blur the image whereas a value included in +[-1.0,0.0] will sharpen the image. Default value is 1.0. +

+
+
luma_threshold, lt
+

Set the luma threshold used as a coefficient to determine +whether a pixel should be blurred or not. The option value must be an +integer in the range [-30,30]. A value of 0 will filter all the image, +a value included in [0,30] will filter flat areas and a value included +in [-30,0] will filter edges. Default value is 0. +

+
+
chroma_radius, cr
+

Set the chroma radius. The option value must be a float number in +the range [0.1,5.0] that specifies the variance of the gaussian filter +used to blur the image (slower if larger). Default value is 1.0. +

+
+
chroma_strength, cs
+

Set the chroma strength. The option value must be a float number +in the range [-1.0,1.0] that configures the blurring. A value included +in [0.0,1.0] will blur the image whereas a value included in +[-1.0,0.0] will sharpen the image. Default value is 1.0. +

+
+
chroma_threshold, ct
+

Set the chroma threshold used as a coefficient to determine +whether a pixel should be blurred or not. The option value must be an +integer in the range [-30,30]. A value of 0 will filter all the image, +a value included in [0,30] will filter flat areas and a value included +in [-30,0] will filter edges. Default value is 0. +

+
+ +

If a chroma option is not explicitly set, the corresponding luma value +is set. +

+ +

37.79 stereo3d

+ +

Convert between different stereoscopic image formats. +

+

The filters accept the following options: +

+
+
in
+

Set stereoscopic image format of input. +

+

Available values for input image formats are: +

+
sbsl
+

side by side parallel (left eye left, right eye right) +

+
+
sbsr
+

side by side crosseye (right eye left, left eye right) +

+
+
sbs2l
+

side by side parallel with half width resolution +(left eye left, right eye right) +

+
+
sbs2r
+

side by side crosseye with half width resolution +(right eye left, left eye right) +

+
+
abl
+

above-below (left eye above, right eye below) +

+
+
abr
+

above-below (right eye above, left eye below) +

+
+
ab2l
+

above-below with half height resolution +(left eye above, right eye below) +

+
+
ab2r
+

above-below with half height resolution +(right eye above, left eye below) +

+
+
al
+

alternating frames (left eye first, right eye second) +

+
+
ar
+

alternating frames (right eye first, left eye second) +

+

Default value is ‘sbsl’. +

+
+ +
+
out
+

Set stereoscopic image format of output. +

+

Available values for output image formats are all the input formats as well as: +

+
arbg
+

anaglyph red/blue gray +(red filter on left eye, blue filter on right eye) +

+
+
argg
+

anaglyph red/green gray +(red filter on left eye, green filter on right eye) +

+
+
arcg
+

anaglyph red/cyan gray +(red filter on left eye, cyan filter on right eye) +

+
+
arch
+

anaglyph red/cyan half colored +(red filter on left eye, cyan filter on right eye) +

+
+
arcc
+

anaglyph red/cyan color +(red filter on left eye, cyan filter on right eye) +

+
+
arcd
+

anaglyph red/cyan color optimized with the least squares projection of dubois +(red filter on left eye, cyan filter on right eye) +

+
+
agmg
+

anaglyph green/magenta gray +(green filter on left eye, magenta filter on right eye) +

+
+
agmh
+

anaglyph green/magenta half colored +(green filter on left eye, magenta filter on right eye) +

+
+
agmc
+

anaglyph green/magenta colored +(green filter on left eye, magenta filter on right eye) +

+
+
agmd
+

anaglyph green/magenta color optimized with the least squares projection of dubois +(green filter on left eye, magenta filter on right eye) +

+
+
aybg
+

anaglyph yellow/blue gray +(yellow filter on left eye, blue filter on right eye) +

+
+
aybh
+

anaglyph yellow/blue half colored +(yellow filter on left eye, blue filter on right eye) +

+
+
aybc
+

anaglyph yellow/blue colored +(yellow filter on left eye, blue filter on right eye) +

+
+
aybd
+

anaglyph yellow/blue color optimized with the least squares projection of dubois +(yellow filter on left eye, blue filter on right eye) +

+
+
irl
+

interleaved rows (left eye has top row, right eye starts on next row) +

+
+
irr
+

interleaved rows (right eye has top row, left eye starts on next row) +

+
+
ml
+

mono output (left eye only) +

+
+
mr
+

mono output (right eye only) +

+
+ +

Default value is ‘arcd’. +

+
+ + +

37.79.1 Examples

+ +
    +
  • +Convert input video from side by side parallel to anaglyph yellow/blue dubois: +
     
    stereo3d=sbsl:aybd
    +
    + +
  • +Convert input video from above bellow (left eye above, right eye below) to side by side crosseye. +
     
    stereo3d=abl:sbsr
    +
    +
+ + +

37.80 spp

+ +

Apply a simple postprocessing filter that compresses and decompresses the image +at several (or - in the case of ‘quality’ level 6 - all) shifts +and average the results. +

+

The filter accepts the following options: +

+
+
quality
+

Set quality. This option defines the number of levels for averaging. It accepts +an integer in the range 0-6. If set to 0, the filter will have no +effect. A value of 6 means the higher quality. For each increment of +that value the speed drops by a factor of approximately 2. Default value is +3. +

+
+
qp
+

Force a constant quantization parameter. If not set, the filter will use the QP +from the video stream (if available). +

+
+
mode
+

Set thresholding mode. Available modes are: +

+
+
hard
+

Set hard thresholding (default). +

+
soft
+

Set soft thresholding (better de-ringing effect, but likely blurrier). +

+
+ +
+
use_bframe_qp
+

Enable the use of the QP from the B-Frames if set to 1. Using this +option may cause flicker since the B-Frames have often larger QP. Default is +0 (not enabled). +

+
+ +

+

+

37.81 subtitles

+ +

Draw subtitles on top of input video using the libass library. +

+

To enable compilation of this filter you need to configure FFmpeg with +--enable-libass. This filter also requires a build with libavcodec and +libavformat to convert the passed subtitles file to ASS (Advanced Substation +Alpha) subtitles format. +

+

The filter accepts the following options: +

+
+
filename, f
+

Set the filename of the subtitle file to read. It must be specified. +

+
+
original_size
+

Specify the size of the original video, the video for which the ASS file +was composed. For the syntax of this option, check the "Video size" section in +the ffmpeg-utils manual. Due to a misdesign in ASS aspect ratio arithmetic, +this is necessary to correctly scale the fonts if the aspect ratio has been +changed. +

+
+
charenc
+

Set subtitles input character encoding. subtitles filter only. Only +useful if not UTF-8. +

+
+ +

If the first key is not specified, it is assumed that the first value +specifies the ‘filename’. +

+

For example, to render the file ‘sub.srt’ on top of the input +video, use the command: +

 
subtitles=sub.srt
+
+ +

which is equivalent to: +

 
subtitles=filename=sub.srt
+
+ + +

37.82 super2xsai

+ +

Scale the input by 2x and smooth using the Super2xSaI (Scale and +Interpolate) pixel art scaling algorithm. +

+

Useful for enlarging pixel art images without reducing sharpness. +

+ +

37.83 swapuv

+

Swap U & V plane. +

+ +

37.84 telecine

+ +

Apply telecine process to the video. +

+

This filter accepts the following options: +

+
+
first_field
+
+
top, t
+

top field first +

+
bottom, b
+

bottom field first +The default value is top. +

+
+ +
+
pattern
+

A string of numbers representing the pulldown pattern you wish to apply. +The default value is 23. +

+
+ +
 
Some typical patterns:
+
+NTSC output (30i):
+27.5p: 32222
+24p: 23 (classic)
+24p: 2332 (preferred)
+20p: 33
+18p: 334
+16p: 3444
+
+PAL output (25i):
+27.5p: 12222
+24p: 222222222223 ("Euro pulldown")
+16.67p: 33
+16p: 33333334
+
+ + +

37.85 thumbnail

+

Select the most representative frame in a given sequence of consecutive frames. +

+

The filter accepts the following options: +

+
+
n
+

Set the frames batch size to analyze; in a set of n frames, the filter +will pick one of them, and then handle the next batch of n frames until +the end. Default is 100. +

+
+ +

Since the filter keeps track of the whole frames sequence, a bigger n +value will result in a higher memory usage, so a high value is not recommended. +

+ +

37.85.1 Examples

+ +
    +
  • +Extract one picture each 50 frames: +
     
    thumbnail=50
    +
    + +
  • +Complete example of a thumbnail creation with ffmpeg: +
     
    ffmpeg -i in.avi -vf thumbnail,scale=300:200 -frames:v 1 out.png
    +
    +
+ + +

37.86 tile

+ +

Tile several successive frames together. +

+

The filter accepts the following options: +

+
+
layout
+

Set the grid size (i.e. the number of lines and columns). For the syntax of +this option, check the "Video size" section in the ffmpeg-utils manual. +

+
+
nb_frames
+

Set the maximum number of frames to render in the given area. It must be less +than or equal to wxh. The default value is 0, meaning all +the area will be used. +

+
+
margin
+

Set the outer border margin in pixels. +

+
+
padding
+

Set the inner border thickness (i.e. the number of pixels between frames). For +more advanced padding options (such as having different values for the edges), +refer to the pad video filter. +

+
+
color
+

Specify the color of the unused areaFor the syntax of this option, check the +"Color" section in the ffmpeg-utils manual. The default value of color +is "black". +

+
+ + +

37.86.1 Examples

+ +
    +
  • +Produce 8x8 PNG tiles of all keyframes (‘-skip_frame nokey’) in a movie: +
     
    ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png
    +
    +

    The ‘-vsync 0’ is necessary to prevent ffmpeg from +duplicating each output frame to accommodate the originally detected frame +rate. +

    +
  • +Display 5 pictures in an area of 3x2 frames, +with 7 pixels between them, and 2 pixels of initial margin, using +mixed flat and named options: +
     
    tile=3x2:nb_frames=5:padding=7:margin=2
    +
    +
+ + +

37.87 tinterlace

+ +

Perform various types of temporal field interlacing. +

+

Frames are counted starting from 1, so the first input frame is +considered odd. +

+

The filter accepts the following options: +

+
+
mode
+

Specify the mode of the interlacing. This option can also be specified +as a value alone. See below for a list of values for this option. +

+

Available values are: +

+
+
merge, 0
+

Move odd frames into the upper field, even into the lower field, +generating a double height frame at half frame rate. +

+
+
drop_odd, 1
+

Only output even frames, odd frames are dropped, generating a frame with +unchanged height at half frame rate. +

+
+
drop_even, 2
+

Only output odd frames, even frames are dropped, generating a frame with +unchanged height at half frame rate. +

+
+
pad, 3
+

Expand each frame to full height, but pad alternate lines with black, +generating a frame with double height at the same input frame rate. +

+
+
interleave_top, 4
+

Interleave the upper field from odd frames with the lower field from +even frames, generating a frame with unchanged height at half frame rate. +

+
+
interleave_bottom, 5
+

Interleave the lower field from odd frames with the upper field from +even frames, generating a frame with unchanged height at half frame rate. +

+
+
interlacex2, 6
+

Double frame rate with unchanged height. Frames are inserted each +containing the second temporal field from the previous input frame and +the first temporal field from the next input frame. This mode relies on +the top_field_first flag. Useful for interlaced video displays with no +field synchronisation. +

+
+ +

Numeric values are deprecated but are accepted for backward +compatibility reasons. +

+

Default mode is merge. +

+
+
flags
+

Specify flags influencing the filter process. +

+

Available value for flags is: +

+
+
low_pass_filter, vlfp
+

Enable vertical low-pass filtering in the filter. +Vertical low-pass filtering is required when creating an interlaced +destination from a progressive source which contains high-frequency +vertical detail. Filtering will reduce interlace ’twitter’ and Moire +patterning. +

+

Vertical low-pass filtering can only be enabled for ‘mode’ +interleave_top and interleave_bottom. +

+
+
+
+
+ + +

37.88 transpose

+ +

Transpose rows with columns in the input video and optionally flip it. +

+

It accepts the following parameters: +

+
+
dir
+

Specify the transposition direction. +

+

Can assume the following values: +

+
0, 4, cclock_flip
+

Rotate by 90 degrees counterclockwise and vertically flip (default), that is: +

 
L.R     L.l
+. . ->  . .
+l.r     R.r
+
+ +
+
1, 5, clock
+

Rotate by 90 degrees clockwise, that is: +

 
L.R     l.L
+. . ->  . .
+l.r     r.R
+
+ +
+
2, 6, cclock
+

Rotate by 90 degrees counterclockwise, that is: +

 
L.R     R.r
+. . ->  . .
+l.r     L.l
+
+ +
+
3, 7, clock_flip
+

Rotate by 90 degrees clockwise and vertically flip, that is: +

 
L.R     r.R
+. . ->  . .
+l.r     l.L
+
+
+
+ +

For values between 4-7, the transposition is only done if the input +video geometry is portrait and not landscape. These values are +deprecated, the passthrough option should be used instead. +

+

Numerical values are deprecated, and should be dropped in favor of +symbolic constants. +

+
+
passthrough
+

Do not apply the transposition if the input geometry matches the one +specified by the specified value. It accepts the following values: +

+
none
+

Always apply transposition. +

+
portrait
+

Preserve portrait geometry (when height >= width). +

+
landscape
+

Preserve landscape geometry (when width >= height). +

+
+ +

Default value is none. +

+
+ +

For example to rotate by 90 degrees clockwise and preserve portrait +layout: +

 
transpose=dir=1:passthrough=portrait
+
+ +

The command above can also be specified as: +

 
transpose=1:portrait
+
+ + +

37.89 trim

+

Trim the input so that the output contains one continuous subpart of the input. +

+

It accepts the following parameters: +

+
start
+

Specify the time of the start of the kept section, i.e. the frame with the +timestamp start will be the first frame in the output. +

+
+
end
+

Specify the time of the first frame that will be dropped, i.e. the frame +immediately preceding the one with the timestamp end will be the last +frame in the output. +

+
+
start_pts
+

This is the same as start, except this option sets the start timestamp +in timebase units instead of seconds. +

+
+
end_pts
+

This is the same as end, except this option sets the end timestamp +in timebase units instead of seconds. +

+
+
duration
+

The maximum duration of the output in seconds. +

+
+
start_frame
+

The number of the first frame that should be passed to the output. +

+
+
end_frame
+

The number of the first frame that should be dropped. +

+
+ +

start’, ‘end’, ‘duration’ are expressed as time +duration specifications, check the "Time duration" section in the +ffmpeg-utils manual. +

+

Note that the first two sets of the start/end options and the ‘duration’ +option look at the frame timestamp, while the _frame variants simply count the +frames that pass through the filter. Also note that this filter does not modify +the timestamps. If you wish for the output timestamps to start at zero, insert a +setpts filter after the trim filter. +

+

If multiple start or end options are set, this filter tries to be greedy and +keep all the frames that match at least one of the specified constraints. To keep +only the part that matches all the constraints at once, chain multiple trim +filters. +

+

The defaults are such that all the input is kept. So it is possible to set e.g. +just the end values to keep everything before the specified time. +

+

Examples: +

    +
  • +Drop everything except the second minute of input: +
     
    ffmpeg -i INPUT -vf trim=60:120
    +
    + +
  • +Keep only the first second: +
     
    ffmpeg -i INPUT -vf trim=duration=1
    +
    + +
+ + + +

37.90 unsharp

+ +

Sharpen or blur the input video. +

+

It accepts the following parameters: +

+
+
luma_msize_x, lx
+

Set the luma matrix horizontal size. It must be an odd integer between +3 and 63. The default value is 5. +

+
+
luma_msize_y, ly
+

Set the luma matrix vertical size. It must be an odd integer between 3 +and 63. The default value is 5. +

+
+
luma_amount, la
+

Set the luma effect strength. It must be a floating point number, reasonable +values lay between -1.5 and 1.5. +

+

Negative values will blur the input video, while positive values will +sharpen it, a value of zero will disable the effect. +

+

Default value is 1.0. +

+
+
chroma_msize_x, cx
+

Set the chroma matrix horizontal size. It must be an odd integer +between 3 and 63. The default value is 5. +

+
+
chroma_msize_y, cy
+

Set the chroma matrix vertical size. It must be an odd integer +between 3 and 63. The default value is 5. +

+
+
chroma_amount, ca
+

Set the chroma effect strength. It must be a floating point number, reasonable +values lay between -1.5 and 1.5. +

+

Negative values will blur the input video, while positive values will +sharpen it, a value of zero will disable the effect. +

+

Default value is 0.0. +

+
+
opencl
+

If set to 1, specify using OpenCL capabilities, only available if +FFmpeg was configured with --enable-opencl. Default value is 0. +

+
+
+ +

All parameters are optional and default to the equivalent of the +string ’5:5:1.0:5:5:0.0’. +

+ +

37.90.1 Examples

+ +
    +
  • +Apply strong luma sharpen effect: +
     
    unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5
    +
    + +
  • +Apply a strong blur of both luma and chroma parameters: +
     
    unsharp=7:7:-2:7:7:-2
    +
    +
+ +

+

+

37.91 vidstabdetect

+ +

Analyze video stabilization/deshaking. Perform pass 1 of 2, see +vidstabtransform for pass 2. +

+

This filter generates a file with relative translation and rotation +transform information about subsequent frames, which is then used by +the vidstabtransform filter. +

+

To enable compilation of this filter you need to configure FFmpeg with +--enable-libvidstab. +

+

This filter accepts the following options: +

+
+
result
+

Set the path to the file used to write the transforms information. +Default value is ‘transforms.trf’. +

+
+
shakiness
+

Set how shaky the video is and how quick the camera is. It accepts an +integer in the range 1-10, a value of 1 means little shakiness, a +value of 10 means strong shakiness. Default value is 5. +

+
+
accuracy
+

Set the accuracy of the detection process. It must be a value in the +range 1-15. A value of 1 means low accuracy, a value of 15 means high +accuracy. Default value is 15. +

+
+
stepsize
+

Set stepsize of the search process. The region around minimum is +scanned with 1 pixel resolution. Default value is 6. +

+
+
mincontrast
+

Set minimum contrast. Below this value a local measurement field is +discarded. Must be a floating point value in the range 0-1. Default +value is 0.3. +

+
+
tripod
+

Set reference frame number for tripod mode. +

+

If enabled, the motion of the frames is compared to a reference frame +in the filtered stream, identified by the specified number. The idea +is to compensate all movements in a more-or-less static scene and keep +the camera view absolutely still. +

+

If set to 0, it is disabled. The frames are counted starting from 1. +

+
+
show
+

Show fields and transforms in the resulting frames. It accepts an +integer in the range 0-2. Default value is 0, which disables any +visualization. +

+
+ + +

37.91.1 Examples

+ +
    +
  • +Use default values: +
     
    vidstabdetect
    +
    + +
  • +Analyze strongly shaky movie and put the results in file +‘mytransforms.trf’: +
     
    vidstabdetect=shakiness=10:accuracy=15:result="mytransforms.trf"
    +
    + +
  • +Visualize the result of internal transformations in the resulting +video: +
     
    vidstabdetect=show=1
    +
    + +
  • +Analyze a video with medium shakiness using ffmpeg: +
     
    ffmpeg -i input -vf vidstabdetect=shakiness=5:show=1 dummy.avi
    +
    +
+ +

+

+

37.92 vidstabtransform

+ +

Video stabilization/deshaking: pass 2 of 2, +see vidstabdetect for pass 1. +

+

Read a file with transform information for each frame and +apply/compensate them. Together with the vidstabdetect +filter this can be used to deshake videos. See also +http://public.hronopik.de/vid.stab. It is important to also use +the unsharp filter, see below. +

+

To enable compilation of this filter you need to configure FFmpeg with +--enable-libvidstab. +

+ +

37.92.1 Options

+ +
+
input
+

Set path to the file used to read the transforms. Default value is +‘transforms.trf’). +

+
+
smoothing
+

Set the number of frames (value*2 + 1) used for lowpass filtering the +camera movements. Default value is 10. +

+

For example a number of 10 means that 21 frames are used (10 in the +past and 10 in the future) to smoothen the motion in the video. A +larger values leads to a smoother video, but limits the acceleration +of the camera (pan/tilt movements). 0 is a special case where a +static camera is simulated. +

+
+
optalgo
+

Set the camera path optimization algorithm. +

+

Accepted values are: +

+
gauss
+

gaussian kernel low-pass filter on camera motion (default) +

+
avg
+

averaging on transformations +

+
+ +
+
maxshift
+

Set maximal number of pixels to translate frames. Default value is -1, +meaning no limit. +

+
+
maxangle
+

Set maximal angle in radians (degree*PI/180) to rotate frames. Default +value is -1, meaning no limit. +

+
+
crop
+

Specify how to deal with borders that may be visible due to movement +compensation. +

+

Available values are: +

+
keep
+

keep image information from previous frame (default) +

+
black
+

fill the border black +

+
+ +
+
invert
+

Invert transforms if set to 1. Default value is 0. +

+
+
relative
+

Consider transforms as relative to previsou frame if set to 1, +absolute if set to 0. Default value is 0. +

+
+
zoom
+

Set percentage to zoom. A positive value will result in a zoom-in +effect, a negative value in a zoom-out effect. Default value is 0 (no +zoom). +

+
+
optzoom
+

Set optimal zooming to avoid borders. +

+

Accepted values are: +

+
0
+

disabled +

+
1
+

optimal static zoom value is determined (only very strong movements +will lead to visible borders) (default) +

+
2
+

optimal adaptive zoom value is determined (no borders will be +visible), see ‘zoomspeed’ +

+
+ +

Note that the value given at zoom is added to the one calculated here. +

+
+
zoomspeed
+

Set percent to zoom maximally each frame (enabled when +‘optzoom’ is set to 2). Range is from 0 to 5, default value is +0.25. +

+
+
interpol
+

Specify type of interpolation. +

+

Available values are: +

+
no
+

no interpolation +

+
linear
+

linear only horizontal +

+
bilinear
+

linear in both directions (default) +

+
bicubic
+

cubic in both directions (slow) +

+
+ +
+
tripod
+

Enable virtual tripod mode if set to 1, which is equivalent to +relative=0:smoothing=0. Default value is 0. +

+

Use also tripod option of vidstabdetect. +

+
+
debug
+

Increase log verbosity if set to 1. Also the detected global motions +are written to the temporary file ‘global_motions.trf’. Default +value is 0. +

+
+ + +

37.92.2 Examples

+ +
    +
  • +Use ffmpeg for a typical stabilization with default values: +
     
    ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 inp_stabilized.mpeg
    +
    + +

    Note the use of the unsharp filter which is always recommended. +

    +
  • +Zoom in a bit more and load transform data from a given file: +
     
    vidstabtransform=zoom=5:input="mytransforms.trf"
    +
    + +
  • +Smoothen the video even more: +
     
    vidstabtransform=smoothing=30
    +
    +
+ + +

37.93 vflip

+ +

Flip the input video vertically. +

+

For example, to vertically flip a video with ffmpeg: +

 
ffmpeg -i in.avi -vf "vflip" out.avi
+
+ + +

37.94 vignette

+ +

Make or reverse a natural vignetting effect. +

+

The filter accepts the following options: +

+
+
angle, a
+

Set lens angle expression as a number of radians. +

+

The value is clipped in the [0,PI/2] range. +

+

Default value: "PI/5" +

+
+
x0
+
y0
+

Set center coordinates expressions. Respectively "w/2" and "h/2" +by default. +

+
+
mode
+

Set forward/backward mode. +

+

Available modes are: +

+
forward
+

The larger the distance from the central point, the darker the image becomes. +

+
+
backward
+

The larger the distance from the central point, the brighter the image becomes. +This can be used to reverse a vignette effect, though there is no automatic +detection to extract the lens ‘angle’ and other settings (yet). It can +also be used to create a burning effect. +

+
+ +

Default value is ‘forward’. +

+
+
eval
+

Set evaluation mode for the expressions (‘angle’, ‘x0’, ‘y0’). +

+

It accepts the following values: +

+
init
+

Evaluate expressions only once during the filter initialization. +

+
+
frame
+

Evaluate expressions for each incoming frame. This is way slower than the +‘init’ mode since it requires all the scalers to be re-computed, but it +allows advanced dynamic expressions. +

+
+ +

Default value is ‘init’. +

+
+
dither
+

Set dithering to reduce the circular banding effects. Default is 1 +(enabled). +

+
+
aspect
+

Set vignette aspect. This setting allows one to adjust the shape of the vignette. +Setting this value to the SAR of the input will make a rectangular vignetting +following the dimensions of the video. +

+

Default is 1/1. +

+
+ + +

37.94.1 Expressions

+ +

The ‘alpha’, ‘x0’ and ‘y0’ expressions can contain the +following parameters. +

+
+
w
+
h
+

input width and height +

+
+
n
+

the number of input frame, starting from 0 +

+
+
pts
+

the PTS (Presentation TimeStamp) time of the filtered video frame, expressed in +TB units, NAN if undefined +

+
+
r
+

frame rate of the input video, NAN if the input frame rate is unknown +

+
+
t
+

the PTS (Presentation TimeStamp) of the filtered video frame, +expressed in seconds, NAN if undefined +

+
+
tb
+

time base of the input video +

+
+ + + +

37.94.2 Examples

+ +
    +
  • +Apply simple strong vignetting effect: +
     
    vignette=PI/4
    +
    + +
  • +Make a flickering vignetting: +
     
    vignette='PI/4+random(1)*PI/50':eval=frame
    +
    + +
+ + +

37.95 w3fdif

+ +

Deinterlace the input video ("w3fdif" stands for "Weston 3 Field +Deinterlacing Filter"). +

+

Based on the process described by Martin Weston for BBC R&D, and +implemented based on the de-interlace algorithm written by Jim +Easterbrook for BBC R&D, the Weston 3 field deinterlacing filter +uses filter coefficients calculated by BBC R&D. +

+

There are two sets of filter coefficients, so called "simple": +and "complex". Which set of filter coefficients is used can +be set by passing an optional parameter: +

+
+
filter
+

Set the interlacing filter coefficients. Accepts one of the following values: +

+
+
simple
+

Simple filter coefficient set. +

+
complex
+

More-complex filter coefficient set. +

+
+

Default value is ‘complex’. +

+
+
deint
+

Specify which frames to deinterlace. Accept one of the following values: +

+
+
all
+

Deinterlace all frames, +

+
interlaced
+

Only deinterlace frames marked as interlaced. +

+
+ +

Default value is ‘all’. +

+
+ +

+

+

37.96 yadif

+ +

Deinterlace the input video ("yadif" means "yet another deinterlacing +filter"). +

+

It accepts the following parameters: +

+ +
+
mode
+

The interlacing mode to adopt. It accepts one of the following values: +

+
+
0, send_frame
+

Output one frame for each frame. +

+
1, send_field
+

Output one frame for each field. +

+
2, send_frame_nospatial
+

Like send_frame, but it skips the spatial interlacing check. +

+
3, send_field_nospatial
+

Like send_field, but it skips the spatial interlacing check. +

+
+ +

The default value is send_frame. +

+
+
parity
+

The picture field parity assumed for the input interlaced video. It accepts one +of the following values: +

+
+
0, tff
+

Assume the top field is first. +

+
1, bff
+

Assume the bottom field is first. +

+
-1, auto
+

Enable automatic detection of field parity. +

+
+ +

The default value is auto. +If the interlacing is unknown or the decoder does not export this information, +top field first will be assumed. +

+
+
deint
+

Specify which frames to deinterlace. Accept one of the following +values: +

+
+
0, all
+

Deinterlace all frames. +

+
1, interlaced
+

Only deinterlace frames marked as interlaced. +

+
+ +

The default value is all. +

+
+ + + +

38. Video Sources

+ +

Below is a description of the currently available video sources. +

+ +

38.1 buffer

+ +

Buffer video frames, and make them available to the filter chain. +

+

This source is mainly intended for a programmatic use, in particular +through the interface defined in ‘libavfilter/vsrc_buffer.h’. +

+

It accepts the following parameters: +

+
+
video_size
+

Specify the size (width and height) of the buffered video frames. For the +syntax of this option, check the "Video size" section in the ffmpeg-utils +manual. +

+
+
width
+

The input video width. +

+
+
height
+

The input video height. +

+
+
pix_fmt
+

A string representing the pixel format of the buffered video frames. +It may be a number corresponding to a pixel format, or a pixel format +name. +

+
+
time_base
+

Specify the timebase assumed by the timestamps of the buffered frames. +

+
+
frame_rate
+

Specify the frame rate expected for the video stream. +

+
+
pixel_aspect, sar
+

The sample (pixel) aspect ratio of the input video. +

+
+
sws_param
+

Specify the optional parameters to be used for the scale filter which +is automatically inserted when an input change is detected in the +input size or format. +

+
+ +

For example: +

 
buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1
+
+ +

will instruct the source to accept video frames with size 320x240 and +with format "yuv410p", assuming 1/24 as the timestamps timebase and +square pixels (1:1 sample aspect ratio). +Since the pixel format with name "yuv410p" corresponds to the number 6 +(check the enum AVPixelFormat definition in ‘libavutil/pixfmt.h’), +this example corresponds to: +

 
buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1
+
+ +

Alternatively, the options can be specified as a flat string, but this +syntax is deprecated: +

+

width:height:pix_fmt:time_base.num:time_base.den:pixel_aspect.num:pixel_aspect.den[:sws_param] +

+ +

38.2 cellauto

+ +

Create a pattern generated by an elementary cellular automaton. +

+

The initial state of the cellular automaton can be defined through the +‘filename’, and ‘pattern’ options. If such options are +not specified an initial state is created randomly. +

+

At each new frame a new row in the video is filled with the result of +the cellular automaton next generation. The behavior when the whole +frame is filled is defined by the ‘scroll’ option. +

+

This source accepts the following options: +

+
+
filename, f
+

Read the initial cellular automaton state, i.e. the starting row, from +the specified file. +In the file, each non-whitespace character is considered an alive +cell, a newline will terminate the row, and further characters in the +file will be ignored. +

+
+
pattern, p
+

Read the initial cellular automaton state, i.e. the starting row, from +the specified string. +

+

Each non-whitespace character in the string is considered an alive +cell, a newline will terminate the row, and further characters in the +string will be ignored. +

+
+
rate, r
+

Set the video rate, that is the number of frames generated per second. +Default is 25. +

+
+
random_fill_ratio, ratio
+

Set the random fill ratio for the initial cellular automaton row. It +is a floating point number value ranging from 0 to 1, defaults to +1/PHI. +

+

This option is ignored when a file or a pattern is specified. +

+
+
random_seed, seed
+

Set the seed for filling randomly the initial row, must be an integer +included between 0 and UINT32_MAX. If not specified, or if explicitly +set to -1, the filter will try to use a good random seed on a best +effort basis. +

+
+
rule
+

Set the cellular automaton rule, it is a number ranging from 0 to 255. +Default value is 110. +

+
+
size, s
+

Set the size of the output video. For the syntax of this option, check +the "Video size" section in the ffmpeg-utils manual. +

+

If ‘filename’ or ‘pattern’ is specified, the size is set +by default to the width of the specified initial state row, and the +height is set to width * PHI. +

+

If ‘size’ is set, it must contain the width of the specified +pattern string, and the specified pattern will be centered in the +larger row. +

+

If a filename or a pattern string is not specified, the size value +defaults to "320x518" (used for a randomly generated initial state). +

+
+
scroll
+

If set to 1, scroll the output upward when all the rows in the output +have been already filled. If set to 0, the new generated row will be +written over the top row just after the bottom row is filled. +Defaults to 1. +

+
+
start_full, full
+

If set to 1, completely fill the output with generated rows before +outputting the first frame. +This is the default behavior, for disabling set the value to 0. +

+
+
stitch
+

If set to 1, stitch the left and right row edges together. +This is the default behavior, for disabling set the value to 0. +

+
+ + +

38.2.1 Examples

+ +
    +
  • +Read the initial state from ‘pattern’, and specify an output of +size 200x400. +
     
    cellauto=f=pattern:s=200x400
    +
    + +
  • +Generate a random initial row with a width of 200 cells, with a fill +ratio of 2/3: +
     
    cellauto=ratio=2/3:s=200x200
    +
    + +
  • +Create a pattern generated by rule 18 starting by a single alive cell +centered on an initial row with width 100: +
     
    cellauto=p=@:s=100x400:full=0:rule=18
    +
    + +
  • +Specify a more elaborated initial pattern: +
     
    cellauto=p='@@ @ @@':s=100x400:full=0:rule=18
    +
    + +
+ + +

38.3 mandelbrot

+ +

Generate a Mandelbrot set fractal, and progressively zoom towards the +point specified with start_x and start_y. +

+

This source accepts the following options: +

+
+
end_pts
+

Set the terminal pts value. Default value is 400. +

+
+
end_scale
+

Set the terminal scale value. +Must be a floating point value. Default value is 0.3. +

+
+
inner
+

Set the inner coloring mode, that is the algorithm used to draw the +Mandelbrot fractal internal region. +

+

It shall assume one of the following values: +

+
black
+

Set black mode. +

+
convergence
+

Show time until convergence. +

+
mincol
+

Set color based on point closest to the origin of the iterations. +

+
period
+

Set period mode. +

+
+ +

Default value is mincol. +

+
+
bailout
+

Set the bailout value. Default value is 10.0. +

+
+
maxiter
+

Set the maximum of iterations performed by the rendering +algorithm. Default value is 7189. +

+
+
outer
+

Set outer coloring mode. +It shall assume one of following values: +

+
iteration_count
+

Set iteration cound mode. +

+
normalized_iteration_count
+

set normalized iteration count mode. +

+
+

Default value is normalized_iteration_count. +

+
+
rate, r
+

Set frame rate, expressed as number of frames per second. Default +value is "25". +

+
+
size, s
+

Set frame size. For the syntax of this option, check the "Video +size" section in the ffmpeg-utils manual. Default value is "640x480". +

+
+
start_scale
+

Set the initial scale value. Default value is 3.0. +

+
+
start_x
+

Set the initial x position. Must be a floating point value between +-100 and 100. Default value is -0.743643887037158704752191506114774. +

+
+
start_y
+

Set the initial y position. Must be a floating point value between +-100 and 100. Default value is -0.131825904205311970493132056385139. +

+
+ + +

38.4 mptestsrc

+ +

Generate various test patterns, as generated by the MPlayer test filter. +

+

The size of the generated video is fixed, and is 256x256. +This source is useful in particular for testing encoding features. +

+

This source accepts the following options: +

+
+
rate, r
+

Specify the frame rate of the sourced video, as the number of frames +generated per second. It has to be a string in the format +frame_rate_num/frame_rate_den, an integer number, a floating point +number or a valid video frame rate abbreviation. The default value is +"25". +

+
+
duration, d
+

Set the video duration of the sourced video. The accepted syntax is: +

 
[-]HH:MM:SS[.m...]
+[-]S+[.m...]
+
+

See also the function av_parse_time(). +

+

If not specified, or the expressed duration is negative, the video is +supposed to be generated forever. +

+
+
test, t
+
+

Set the number or the name of the test to perform. Supported tests are: +

+
dc_luma
+
dc_chroma
+
freq_luma
+
freq_chroma
+
amp_luma
+
amp_chroma
+
cbp
+
mv
+
ring1
+
ring2
+
all
+
+ +

Default value is "all", which will cycle through the list of all tests. +

+
+ +

Some examples: +

 
testsrc=t=dc_luma
+
+ +

will generate a "dc_luma" test pattern. +

+ +

38.5 frei0r_src

+ +

Provide a frei0r source. +

+

To enable compilation of this filter you need to install the frei0r +header and configure FFmpeg with --enable-frei0r. +

+

This source accepts the following parameters: +

+
+
size
+

The size of the video to generate. For the syntax of this option, check the +"Video size" section in the ffmpeg-utils manual. +

+
+
framerate
+

The framerate of the generated video. It may be a string of the form +num/den or a frame rate abbreviation. +

+
+
filter_name
+

The name to the frei0r source to load. For more information regarding frei0r and +how to set the parameters, read the frei0r section in the video filters +documentation. +

+
+
filter_params
+

A ’|’-separated list of parameters to pass to the frei0r source. +

+
+
+ +

For example, to generate a frei0r partik0l source with size 200x200 +and frame rate 10 which is overlayed on the overlay filter main input: +

 
frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay
+
+ + +

38.6 life

+ +

Generate a life pattern. +

+

This source is based on a generalization of John Conway’s life game. +

+

The sourced input represents a life grid, each pixel represents a cell +which can be in one of two possible states, alive or dead. Every cell +interacts with its eight neighbours, which are the cells that are +horizontally, vertically, or diagonally adjacent. +

+

At each interaction the grid evolves according to the adopted rule, +which specifies the number of neighbor alive cells which will make a +cell stay alive or born. The ‘rule’ option allows one to specify +the rule to adopt. +

+

This source accepts the following options: +

+
+
filename, f
+

Set the file from which to read the initial grid state. In the file, +each non-whitespace character is considered an alive cell, and newline +is used to delimit the end of each row. +

+

If this option is not specified, the initial grid is generated +randomly. +

+
+
rate, r
+

Set the video rate, that is the number of frames generated per second. +Default is 25. +

+
+
random_fill_ratio, ratio
+

Set the random fill ratio for the initial random grid. It is a +floating point number value ranging from 0 to 1, defaults to 1/PHI. +It is ignored when a file is specified. +

+
+
random_seed, seed
+

Set the seed for filling the initial random grid, must be an integer +included between 0 and UINT32_MAX. If not specified, or if explicitly +set to -1, the filter will try to use a good random seed on a best +effort basis. +

+
+
rule
+

Set the life rule. +

+

A rule can be specified with a code of the kind "SNS/BNB", +where NS and NB are sequences of numbers in the range 0-8, +NS specifies the number of alive neighbor cells which make a +live cell stay alive, and NB the number of alive neighbor cells +which make a dead cell to become alive (i.e. to "born"). +"s" and "b" can be used in place of "S" and "B", respectively. +

+

Alternatively a rule can be specified by an 18-bits integer. The 9 +high order bits are used to encode the next cell state if it is alive +for each number of neighbor alive cells, the low order bits specify +the rule for "borning" new cells. Higher order bits encode for an +higher number of neighbor cells. +For example the number 6153 = (12<<9)+9 specifies a stay alive +rule of 12 and a born rule of 9, which corresponds to "S23/B03". +

+

Default value is "S23/B3", which is the original Conway’s game of life +rule, and will keep a cell alive if it has 2 or 3 neighbor alive +cells, and will born a new cell if there are three alive cells around +a dead cell. +

+
+
size, s
+

Set the size of the output video. For the syntax of this option, check the +"Video size" section in the ffmpeg-utils manual. +

+

If ‘filename’ is specified, the size is set by default to the +same size of the input file. If ‘size’ is set, it must contain +the size specified in the input file, and the initial grid defined in +that file is centered in the larger resulting area. +

+

If a filename is not specified, the size value defaults to "320x240" +(used for a randomly generated initial grid). +

+
+
stitch
+

If set to 1, stitch the left and right grid edges together, and the +top and bottom edges also. Defaults to 1. +

+
+
mold
+

Set cell mold speed. If set, a dead cell will go from ‘death_color’ to +‘mold_color’ with a step of ‘mold’. ‘mold’ can have a +value from 0 to 255. +

+
+
life_color
+

Set the color of living (or new born) cells. +

+
+
death_color
+

Set the color of dead cells. If ‘mold’ is set, this is the first color +used to represent a dead cell. +

+
+
mold_color
+

Set mold color, for definitely dead and moldy cells. +

+

For the syntax of these 3 color options, check the "Color" section in the +ffmpeg-utils manual. +

+
+ + +

38.6.1 Examples

+ +
    +
  • +Read a grid from ‘pattern’, and center it on a grid of size +300x300 pixels: +
     
    life=f=pattern:s=300x300
    +
    + +
  • +Generate a random grid of size 200x200, with a fill ratio of 2/3: +
     
    life=ratio=2/3:s=200x200
    +
    + +
  • +Specify a custom rule for evolving a randomly generated grid: +
     
    life=rule=S14/B34
    +
    + +
  • +Full example with slow death effect (mold) using ffplay: +
     
    ffplay -f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16
    +
    +
+ +

+ + + + + + +

+

38.7 color, haldclutsrc, nullsrc, rgbtestsrc, smptebars, smptehdbars, testsrc

+ +

The color source provides an uniformly colored input. +

+

The haldclutsrc source provides an identity Hald CLUT. See also +haldclut filter. +

+

The nullsrc source returns unprocessed video frames. It is +mainly useful to be employed in analysis / debugging tools, or as the +source for filters which ignore the input data. +

+

The rgbtestsrc source generates an RGB test pattern useful for +detecting RGB vs BGR issues. You should see a red, green and blue +stripe from top to bottom. +

+

The smptebars source generates a color bars pattern, based on +the SMPTE Engineering Guideline EG 1-1990. +

+

The smptehdbars source generates a color bars pattern, based on +the SMPTE RP 219-2002. +

+

The testsrc source generates a test video pattern, showing a +color pattern, a scrolling gradient and a timestamp. This is mainly +intended for testing purposes. +

+

The sources accept the following parameters: +

+
+
color, c
+

Specify the color of the source, only available in the color +source. For the syntax of this option, check the "Color" section in the +ffmpeg-utils manual. +

+
+
level
+

Specify the level of the Hald CLUT, only available in the haldclutsrc +source. A level of N generates a picture of N*N*N by N*N*N +pixels to be used as identity matrix for 3D lookup tables. Each component is +coded on a 1/(N*N) scale. +

+
+
size, s
+

Specify the size of the sourced video. For the syntax of this option, check the +"Video size" section in the ffmpeg-utils manual. The default value is +"320x240". +

+

This option is not available with the haldclutsrc filter. +

+
+
rate, r
+

Specify the frame rate of the sourced video, as the number of frames +generated per second. It has to be a string in the format +frame_rate_num/frame_rate_den, an integer number, a floating point +number or a valid video frame rate abbreviation. The default value is +"25". +

+
+
sar
+

Set the sample aspect ratio of the sourced video. +

+
+
duration, d
+

Set the video duration of the sourced video. The accepted syntax is: +

 
[-]HH[:MM[:SS[.m...]]]
+[-]S+[.m...]
+
+

Also see the the av_parse_time() function. +

+

If not specified, or the expressed duration is negative, the video is +supposed to be generated forever. +

+
+
decimals, n
+

Set the number of decimals to show in the timestamp, only available in the +testsrc source. +

+

The displayed timestamp value will correspond to the original +timestamp value multiplied by the power of 10 of the specified +value. Default value is 0. +

+
+ +

For example the following: +

 
testsrc=duration=5.3:size=qcif:rate=10
+
+ +

will generate a video with a duration of 5.3 seconds, with size +176x144 and a frame rate of 10 frames per second. +

+

The following graph description will generate a red source +with an opacity of 0.2, with size "qcif" and a frame rate of 10 +frames per second. +

 
color=c=red@0.2:s=qcif:r=10
+
+ +

If the input content is to be ignored, nullsrc can be used. The +following command generates noise in the luminance plane by employing +the geq filter: +

 
nullsrc=s=256x256, geq=random(1)*255:128:128
+
+ + +

38.7.1 Commands

+ +

The color source supports the following commands: +

+
+
c, color
+

Set the color of the created image. Accepts the same syntax of the +corresponding ‘color’ option. +

+
+ + + +

39. Video Sinks

+ +

Below is a description of the currently available video sinks. +

+ +

39.1 buffersink

+ +

Buffer video frames, and make them available to the end of the filter +graph. +

+

This sink is mainly intended for programmatic use, in particular +through the interface defined in ‘libavfilter/buffersink.h’ +or the options system. +

+

It accepts a pointer to an AVBufferSinkContext structure, which +defines the incoming buffers’ formats, to be passed as the opaque +parameter to avfilter_init_filter for initialization. +

+ +

39.2 nullsink

+ +

Null video sink: do absolutely nothing with the input video. It is +mainly useful as a template and for use in analysis / debugging +tools. +

+ + +

40. Multimedia Filters

+ +

Below is a description of the currently available multimedia filters. +

+ +

40.1 avectorscope

+ +

Convert input audio to a video output, representing the audio vector +scope. +

+

The filter is used to measure the difference between channels of stereo +audio stream. A monoaural signal, consisting of identical left and right +signal, results in straight vertical line. Any stereo separation is visible +as a deviation from this line, creating a Lissajous figure. +If the straight (or deviation from it) but horizontal line appears this +indicates that the left and right channels are out of phase. +

+

The filter accepts the following options: +

+
+
mode, m
+

Set the vectorscope mode. +

+

Available values are: +

+
lissajous
+

Lissajous rotated by 45 degrees. +

+
+
lissajous_xy
+

Same as above but not rotated. +

+
+ +

Default value is ‘lissajous’. +

+
+
size, s
+

Set the video size for the output. For the syntax of this option, check the "Video size" +section in the ffmpeg-utils manual. Default value is 400x400. +

+
+
rate, r
+

Set the output frame rate. Default value is 25. +

+
+
rc
+
gc
+
bc
+

Specify the red, green and blue contrast. Default values are 40, 160 and 80. +Allowed range is [0, 255]. +

+
+
rf
+
gf
+
bf
+

Specify the red, green and blue fade. Default values are 15, 10 and 5. +Allowed range is [0, 255]. +

+
+
zoom
+

Set the zoom factor. Default value is 1. Allowed range is [1, 10]. +

+
+ + +

40.1.1 Examples

+ +
    +
  • +Complete example using ffplay: +
     
    ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
    +             [a] avectorscope=zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7 [out0]'
    +
    +
+ + +

40.2 concat

+ +

Concatenate audio and video streams, joining them together one after the +other. +

+

The filter works on segments of synchronized video and audio streams. All +segments must have the same number of streams of each type, and that will +also be the number of streams at output. +

+

The filter accepts the following options: +

+
+
n
+

Set the number of segments. Default is 2. +

+
+
v
+

Set the number of output video streams, that is also the number of video +streams in each segment. Default is 1. +

+
+
a
+

Set the number of output audio streams, that is also the number of video +streams in each segment. Default is 0. +

+
+
unsafe
+

Activate unsafe mode: do not fail if segments have a different format. +

+
+
+ +

The filter has v+a outputs: first v video outputs, then +a audio outputs. +

+

There are nx(v+a) inputs: first the inputs for the first +segment, in the same order as the outputs, then the inputs for the second +segment, etc. +

+

Related streams do not always have exactly the same duration, for various +reasons including codec frame size or sloppy authoring. For that reason, +related synchronized streams (e.g. a video and its audio track) should be +concatenated at once. The concat filter will use the duration of the longest +stream in each segment (except the last one), and if necessary pad shorter +audio streams with silence. +

+

For this filter to work correctly, all segments must start at timestamp 0. +

+

All corresponding streams must have the same parameters in all segments; the +filtering system will automatically select a common pixel format for video +streams, and a common sample format, sample rate and channel layout for +audio streams, but other settings, such as resolution, must be converted +explicitly by the user. +

+

Different frame rates are acceptable but will result in variable frame rate +at output; be sure to configure the output file to handle it. +

+ +

40.2.1 Examples

+ +
    +
  • +Concatenate an opening, an episode and an ending, all in bilingual version +(video in stream 0, audio in streams 1 and 2): +
     
    ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv -filter_complex \
    +  '[0:0] [0:1] [0:2] [1:0] [1:1] [1:2] [2:0] [2:1] [2:2]
    +   concat=n=3:v=1:a=2 [v] [a1] [a2]' \
    +  -map '[v]' -map '[a1]' -map '[a2]' output.mkv
    +
    + +
  • +Concatenate two parts, handling audio and video separately, using the +(a)movie sources, and adjusting the resolution: +
     
    movie=part1.mp4, scale=512:288 [v1] ; amovie=part1.mp4 [a1] ;
    +movie=part2.mp4, scale=512:288 [v2] ; amovie=part2.mp4 [a2] ;
    +[v1] [v2] concat [outv] ; [a1] [a2] concat=v=0:a=1 [outa]
    +
    +

    Note that a desync will happen at the stitch if the audio and video streams +do not have exactly the same duration in the first file. +

    +
+ + +

40.3 ebur128

+ +

EBU R128 scanner filter. This filter takes an audio stream as input and outputs +it unchanged. By default, it logs a message at a frequency of 10Hz with the +Momentary loudness (identified by M), Short-term loudness (S), +Integrated loudness (I) and Loudness Range (LRA). +

+

The filter also has a video output (see the video option) with a real +time graph to observe the loudness evolution. The graphic contains the logged +message mentioned above, so it is not printed anymore when this option is set, +unless the verbose logging is set. The main graphing area contains the +short-term loudness (3 seconds of analysis), and the gauge on the right is for +the momentary loudness (400 milliseconds). +

+

More information about the Loudness Recommendation EBU R128 on +http://tech.ebu.ch/loudness. +

+

The filter accepts the following options: +

+
+
video
+

Activate the video output. The audio stream is passed unchanged whether this +option is set or no. The video stream will be the first output stream if +activated. Default is 0. +

+
+
size
+

Set the video size. This option is for video only. For the syntax of this +option, check the "Video size" section in the ffmpeg-utils manual. Default +and minimum resolution is 640x480. +

+
+
meter
+

Set the EBU scale meter. Default is 9. Common values are 9 and +18, respectively for EBU scale meter +9 and EBU scale meter +18. Any +other integer value between this range is allowed. +

+
+
metadata
+

Set metadata injection. If set to 1, the audio input will be segmented +into 100ms output frames, each of them containing various loudness information +in metadata. All the metadata keys are prefixed with lavfi.r128.. +

+

Default is 0. +

+
+
framelog
+

Force the frame logging level. +

+

Available values are: +

+
info
+

information logging level +

+
verbose
+

verbose logging level +

+
+ +

By default, the logging level is set to info. If the ‘video’ or +the ‘metadata’ options are set, it switches to verbose. +

+
+
peak
+

Set peak mode(s). +

+

Available modes can be cumulated (the option is a flag type). Possible +values are: +

+
none
+

Disable any peak mode (default). +

+
sample
+

Enable sample-peak mode. +

+

Simple peak mode looking for the higher sample value. It logs a message +for sample-peak (identified by SPK). +

+
true
+

Enable true-peak mode. +

+

If enabled, the peak lookup is done on an over-sampled version of the input +stream for better peak accuracy. It logs a message for true-peak. +(identified by TPK) and true-peak per frame (identified by FTPK). +This mode requires a build with libswresample. +

+
+ +
+
+ + +

40.3.1 Examples

+ +
    +
  • +Real-time graph using ffplay, with a EBU scale meter +18: +
     
    ffplay -f lavfi -i "amovie=input.mp3,ebur128=video=1:meter=18 [out0][out1]"
    +
    + +
  • +Run an analysis with ffmpeg: +
     
    ffmpeg -nostats -i input.mp3 -filter_complex ebur128 -f null -
    +
    +
+ + +

40.4 interleave, ainterleave

+ +

Temporally interleave frames from several inputs. +

+

interleave works with video inputs, ainterleave with audio. +

+

These filters read frames from several inputs and send the oldest +queued frame to the output. +

+

Input streams must have a well defined, monotonically increasing frame +timestamp values. +

+

In order to submit one frame to output, these filters need to enqueue +at least one frame for each input, so they cannot work in case one +input is not yet terminated and will not receive incoming frames. +

+

For example consider the case when one input is a select filter +which always drop input frames. The interleave filter will keep +reading from that input, but it will never be able to send new frames +to output until the input will send an end-of-stream signal. +

+

Also, depending on inputs synchronization, the filters will drop +frames in case one input receives more frames than the other ones, and +the queue is already filled. +

+

These filters accept the following options: +

+
+
nb_inputs, n
+

Set the number of different inputs, it is 2 by default. +

+
+ + +

40.4.1 Examples

+ +
    +
  • +Interleave frames belonging to different streams using ffmpeg: +
     
    ffmpeg -i bambi.avi -i pr0n.mkv -filter_complex "[0:v][1:v] interleave" out.avi
    +
    + +
  • +Add flickering blur effect: +
     
    select='if(gt(random(0), 0.2), 1, 2)':n=2 [tmp], boxblur=2:2, [tmp] interleave
    +
    +
+ + +

40.5 perms, aperms

+ +

Set read/write permissions for the output frames. +

+

These filters are mainly aimed at developers to test direct path in the +following filter in the filtergraph. +

+

The filters accept the following options: +

+
+
mode
+

Select the permissions mode. +

+

It accepts the following values: +

+
none
+

Do nothing. This is the default. +

+
ro
+

Set all the output frames read-only. +

+
rw
+

Set all the output frames directly writable. +

+
toggle
+

Make the frame read-only if writable, and writable if read-only. +

+
random
+

Set each output frame read-only or writable randomly. +

+
+ +
+
seed
+

Set the seed for the random mode, must be an integer included between +0 and UINT32_MAX. If not specified, or if explicitly set to +-1, the filter will try to use a good random seed on a best effort +basis. +

+
+ +

Note: in case of auto-inserted filter between the permission filter and the +following one, the permission might not be received as expected in that +following filter. Inserting a format or aformat filter before the +perms/aperms filter can avoid this problem. +

+ +

40.6 select, aselect

+ +

Select frames to pass in output. +

+

This filter accepts the following options: +

+
+
expr, e
+

Set expression, which is evaluated for each input frame. +

+

If the expression is evaluated to zero, the frame is discarded. +

+

If the evaluation result is negative or NaN, the frame is sent to the +first output; otherwise it is sent to the output with index +ceil(val)-1, assuming that the input index starts from 0. +

+

For example a value of 1.2 corresponds to the output with index +ceil(1.2)-1 = 2-1 = 1, that is the second output. +

+
+
outputs, n
+

Set the number of outputs. The output to which to send the selected +frame is based on the result of the evaluation. Default value is 1. +

+
+ +

The expression can contain the following constants: +

+
+
n
+

The (sequential) number of the filtered frame, starting from 0. +

+
+
selected_n
+

The (sequential) number of the selected frame, starting from 0. +

+
+
prev_selected_n
+

The sequential number of the last selected frame. It’s NAN if undefined. +

+
+
TB
+

The timebase of the input timestamps. +

+
+
pts
+

The PTS (Presentation TimeStamp) of the filtered video frame, +expressed in TB units. It’s NAN if undefined. +

+
+
t
+

The PTS of the filtered video frame, +expressed in seconds. It’s NAN if undefined. +

+
+
prev_pts
+

The PTS of the previously filtered video frame. It’s NAN if undefined. +

+
+
prev_selected_pts
+

The PTS of the last previously filtered video frame. It’s NAN if undefined. +

+
+
prev_selected_t
+

The PTS of the last previously selected video frame. It’s NAN if undefined. +

+
+
start_pts
+

The PTS of the first video frame in the video. It’s NAN if undefined. +

+
+
start_t
+

The time of the first video frame in the video. It’s NAN if undefined. +

+
+
pict_type (video only)
+

The type of the filtered frame. It can assume one of the following +values: +

+
I
+
P
+
B
+
S
+
SI
+
SP
+
BI
+
+ +
+
interlace_type (video only)
+

The frame interlace type. It can assume one of the following values: +

+
PROGRESSIVE
+

The frame is progressive (not interlaced). +

+
TOPFIRST
+

The frame is top-field-first. +

+
BOTTOMFIRST
+

The frame is bottom-field-first. +

+
+ +
+
consumed_sample_n (audio only)
+

the number of selected samples before the current frame +

+
+
samples_n (audio only)
+

the number of samples in the current frame +

+
+
sample_rate (audio only)
+

the input sample rate +

+
+
key
+

This is 1 if the filtered frame is a key-frame, 0 otherwise. +

+
+
pos
+

the position in the file of the filtered frame, -1 if the information +is not available (e.g. for synthetic video) +

+
+
scene (video only)
+

value between 0 and 1 to indicate a new scene; a low value reflects a low +probability for the current frame to introduce a new scene, while a higher +value means the current frame is more likely to be one (see the example below) +

+
+
+ +

The default value of the select expression is "1". +

+ +

40.6.1 Examples

+ +
    +
  • +Select all frames in input: +
     
    select
    +
    + +

    The example above is the same as: +

     
    select=1
    +
    + +
  • +Skip all frames: +
     
    select=0
    +
    + +
  • +Select only I-frames: +
     
    select='eq(pict_type\,I)'
    +
    + +
  • +Select one frame every 100: +
     
    select='not(mod(n\,100))'
    +
    + +
  • +Select only frames contained in the 10-20 time interval: +
     
    select=between(t\,10\,20)
    +
    + +
  • +Select only I frames contained in the 10-20 time interval: +
     
    select=between(t\,10\,20)*eq(pict_type\,I)
    +
    + +
  • +Select frames with a minimum distance of 10 seconds: +
     
    select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)'
    +
    + +
  • +Use aselect to select only audio frames with samples number > 100: +
     
    aselect='gt(samples_n\,100)'
    +
    + +
  • +Create a mosaic of the first scenes: +
     
    ffmpeg -i video.avi -vf select='gt(scene\,0.4)',scale=160:120,tile -frames:v 1 preview.png
    +
    + +

    Comparing scene against a value between 0.3 and 0.5 is generally a sane +choice. +

    +
  • +Send even and odd frames to separate outputs, and compose them: +
     
    select=n=2:e='mod(n, 2)+1' [odd][even]; [odd] pad=h=2*ih [tmp]; [tmp][even] overlay=y=h
    +
    +
+ + +

40.7 sendcmd, asendcmd

+ +

Send commands to filters in the filtergraph. +

+

These filters read commands to be sent to other filters in the +filtergraph. +

+

sendcmd must be inserted between two video filters, +asendcmd must be inserted between two audio filters, but apart +from that they act the same way. +

+

The specification of commands can be provided in the filter arguments +with the commands option, or in a file specified by the +filename option. +

+

These filters accept the following options: +

+
commands, c
+

Set the commands to be read and sent to the other filters. +

+
filename, f
+

Set the filename of the commands to be read and sent to the other +filters. +

+
+ + +

40.7.1 Commands syntax

+ +

A commands description consists of a sequence of interval +specifications, comprising a list of commands to be executed when a +particular event related to that interval occurs. The occurring event +is typically the current frame time entering or leaving a given time +interval. +

+

An interval is specified by the following syntax: +

 
START[-END] COMMANDS;
+
+ +

The time interval is specified by the START and END times. +END is optional and defaults to the maximum time. +

+

The current frame time is considered within the specified interval if +it is included in the interval [START, END), that is when +the time is greater or equal to START and is lesser than +END. +

+

COMMANDS consists of a sequence of one or more command +specifications, separated by ",", relating to that interval. The +syntax of a command specification is given by: +

 
[FLAGS] TARGET COMMAND ARG
+
+ +

FLAGS is optional and specifies the type of events relating to +the time interval which enable sending the specified command, and must +be a non-null sequence of identifier flags separated by "+" or "|" and +enclosed between "[" and "]". +

+

The following flags are recognized: +

+
enter
+

The command is sent when the current frame timestamp enters the +specified interval. In other words, the command is sent when the +previous frame timestamp was not in the given interval, and the +current is. +

+
+
leave
+

The command is sent when the current frame timestamp leaves the +specified interval. In other words, the command is sent when the +previous frame timestamp was in the given interval, and the +current is not. +

+
+ +

If FLAGS is not specified, a default value of [enter] is +assumed. +

+

TARGET specifies the target of the command, usually the name of +the filter class or a specific filter instance name. +

+

COMMAND specifies the name of the command for the target filter. +

+

ARG is optional and specifies the optional list of argument for +the given COMMAND. +

+

Between one interval specification and another, whitespaces, or +sequences of characters starting with # until the end of line, +are ignored and can be used to annotate comments. +

+

A simplified BNF description of the commands specification syntax +follows: +

 
COMMAND_FLAG  ::= "enter" | "leave"
+COMMAND_FLAGS ::= COMMAND_FLAG [(+|"|")COMMAND_FLAG]
+COMMAND       ::= ["[" COMMAND_FLAGS "]"] TARGET COMMAND [ARG]
+COMMANDS      ::= COMMAND [,COMMANDS]
+INTERVAL      ::= START[-END] COMMANDS
+INTERVALS     ::= INTERVAL[;INTERVALS]
+
+ + +

40.7.2 Examples

+ +
    +
  • +Specify audio tempo change at second 4: +
     
    asendcmd=c='4.0 atempo tempo 1.5',atempo
    +
    + +
  • +Specify a list of drawtext and hue commands in a file. +
     
    # show text in the interval 5-10
    +5.0-10.0 [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=hello world',
    +         [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=';
    +
    +# desaturate the image in the interval 15-20
    +15.0-20.0 [enter] hue s 0,
    +          [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=nocolor',
    +          [leave] hue s 1,
    +          [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=color';
    +
    +# apply an exponential saturation fade-out effect, starting from time 25
    +25 [enter] hue s exp(25-t)
    +
    + +

    A filtergraph allowing to read and process the above command list +stored in a file ‘test.cmd’, can be specified with: +

     
    sendcmd=f=test.cmd,drawtext=fontfile=FreeSerif.ttf:text='',hue
    +
    +
+ +

+

+

40.8 setpts, asetpts

+ +

Change the PTS (presentation timestamp) of the input frames. +

+

setpts works on video frames, asetpts on audio frames. +

+

This filter accepts the following options: +

+
+
expr
+

The expression which is evaluated for each frame to construct its timestamp. +

+
+
+ +

The expression is evaluated through the eval API and can contain the following +constants: +

+
+
FRAME_RATE
+

frame rate, only defined for constant frame-rate video +

+
+
PTS
+

The presentation timestamp in input +

+
+
N
+

The count of the input frame for video or the number of consumed samples, +not including the current frame for audio, starting from 0. +

+
+
NB_CONSUMED_SAMPLES
+

The number of consumed samples, not including the current frame (only +audio) +

+
+
NB_SAMPLES, S
+

The number of samples in the current frame (only audio) +

+
+
SAMPLE_RATE, SR
+

The audio sample rate. +

+
+
STARTPTS
+

The PTS of the first frame. +

+
+
STARTT
+

the time in seconds of the first frame +

+
+
INTERLACED
+

State whether the current frame is interlaced. +

+
+
T
+

the time in seconds of the current frame +

+
+
POS
+

original position in the file of the frame, or undefined if undefined +for the current frame +

+
+
PREV_INPTS
+

The previous input PTS. +

+
+
PREV_INT
+

previous input time in seconds +

+
+
PREV_OUTPTS
+

The previous output PTS. +

+
+
PREV_OUTT
+

previous output time in seconds +

+
+
RTCTIME
+

The wallclock (RTC) time in microseconds.. This is deprecated, use time(0) +instead. +

+
+
RTCSTART
+

The wallclock (RTC) time at the start of the movie in microseconds. +

+
+
TB
+

The timebase of the input timestamps. +

+
+
+ + +

40.8.1 Examples

+ +
    +
  • +Start counting PTS from zero +
     
    setpts=PTS-STARTPTS
    +
    + +
  • +Apply fast motion effect: +
     
    setpts=0.5*PTS
    +
    + +
  • +Apply slow motion effect: +
     
    setpts=2.0*PTS
    +
    + +
  • +Set fixed rate of 25 frames per second: +
     
    setpts=N/(25*TB)
    +
    + +
  • +Set fixed rate 25 fps with some jitter: +
     
    setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'
    +
    + +
  • +Apply an offset of 10 seconds to the input PTS: +
     
    setpts=PTS+10/TB
    +
    + +
  • +Generate timestamps from a "live source" and rebase onto the current timebase: +
     
    setpts='(RTCTIME - RTCSTART) / (TB * 1000000)'
    +
    + +
  • +Generate timestamps by counting samples: +
     
    asetpts=N/SR/TB
    +
    + +
+ + +

40.9 settb, asettb

+ +

Set the timebase to use for the output frames timestamps. +It is mainly useful for testing timebase configuration. +

+

It accepts the following parameters: +

+
+
expr, tb
+

The expression which is evaluated into the output timebase. +

+
+
+ +

The value for ‘tb’ is an arithmetic expression representing a +rational. The expression can contain the constants "AVTB" (the default +timebase), "intb" (the input timebase) and "sr" (the sample rate, +audio only). Default value is "intb". +

+ +

40.9.1 Examples

+ +
    +
  • +Set the timebase to 1/25: +
     
    settb=expr=1/25
    +
    + +
  • +Set the timebase to 1/10: +
     
    settb=expr=0.1
    +
    + +
  • +Set the timebase to 1001/1000: +
     
    settb=1+0.001
    +
    + +
  • +Set the timebase to 2*intb: +
     
    settb=2*intb
    +
    + +
  • +Set the default timebase value: +
     
    settb=AVTB
    +
    +
+ + +

40.10 showspectrum

+ +

Convert input audio to a video output, representing the audio frequency +spectrum. +

+

The filter accepts the following options: +

+
+
size, s
+

Specify the video size for the output. For the syntax of this option, check +the "Video size" section in the ffmpeg-utils manual. Default value is +640x512. +

+
+
slide
+

Specify if the spectrum should slide along the window. Default value is +0. +

+
+
mode
+

Specify display mode. +

+

It accepts the following values: +

+
combined
+

all channels are displayed in the same row +

+
separate
+

all channels are displayed in separate rows +

+
+ +

Default value is ‘combined’. +

+
+
color
+

Specify display color mode. +

+

It accepts the following values: +

+
channel
+

each channel is displayed in a separate color +

+
intensity
+

each channel is is displayed using the same color scheme +

+
+ +

Default value is ‘channel’. +

+
+
scale
+

Specify scale used for calculating intensity color values. +

+

It accepts the following values: +

+
lin
+

linear +

+
sqrt
+

square root, default +

+
cbrt
+

cubic root +

+
log
+

logarithmic +

+
+ +

Default value is ‘sqrt’. +

+
+
saturation
+

Set saturation modifier for displayed colors. Negative values provide +alternative color scheme. 0 is no saturation at all. +Saturation must be in [-10.0, 10.0] range. +Default value is 1. +

+
+
win_func
+

Set window function. +

+

It accepts the following values: +

+
none
+

No samples pre-processing (do not expect this to be faster) +

+
hann
+

Hann window +

+
hamming
+

Hamming window +

+
blackman
+

Blackman window +

+
+ +

Default value is hann. +

+
+ +

The usage is very similar to the showwaves filter; see the examples in that +section. +

+ +

40.10.1 Examples

+ +
    +
  • +Large window with logarithmic color scaling: +
     
    showspectrum=s=1280x480:scale=log
    +
    + +
  • +Complete example for a colored and sliding spectrum per channel using ffplay: +
     
    ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
    +             [a] showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt [out0]'
    +
    +
+ + +

40.11 showwaves

+ +

Convert input audio to a video output, representing the samples waves. +

+

The filter accepts the following options: +

+
+
size, s
+

Specify the video size for the output. For the syntax of this option, check +the "Video size" section in the ffmpeg-utils manual. Default value +is "600x240". +

+
+
mode
+

Set display mode. +

+

Available values are: +

+
point
+

Draw a point for each sample. +

+
+
line
+

Draw a vertical line for each sample. +

+
+ +

Default value is point. +

+
+
n
+

Set the number of samples which are printed on the same column. A +larger value will decrease the frame rate. Must be a positive +integer. This option can be set only if the value for rate +is not explicitly specified. +

+
+
rate, r
+

Set the (approximate) output frame rate. This is done by setting the +option n. Default value is "25". +

+
+
+ + +

40.11.1 Examples

+ +
    +
  • +Output the input file audio and the corresponding video representation +at the same time: +
     
    amovie=a.mp3,asplit[out0],showwaves[out1]
    +
    + +
  • +Create a synthetic signal and show it with showwaves, forcing a +frame rate of 30 frames per second: +
     
    aevalsrc=sin(1*2*PI*t)*sin(880*2*PI*t):cos(2*PI*200*t),asplit[out0],showwaves=r=30[out1]
    +
    +
+ + +

40.12 split, asplit

+ +

Split input into several identical outputs. +

+

asplit works with audio input, split with video. +

+

The filter accepts a single parameter which specifies the number of outputs. If +unspecified, it defaults to 2. +

+ +

40.12.1 Examples

+ +
    +
  • +Create two separate outputs from the same input: +
     
    [in] split [out0][out1]
    +
    + +
  • +To create 3 or more outputs, you need to specify the number of +outputs, like in: +
     
    [in] asplit=3 [out0][out1][out2]
    +
    + +
  • +Create two separate outputs from the same input, one cropped and +one padded: +
     
    [in] split [splitout1][splitout2];
    +[splitout1] crop=100:100:0:0    [cropout];
    +[splitout2] pad=200:200:100:100 [padout];
    +
    + +
  • +Create 5 copies of the input audio with ffmpeg: +
     
    ffmpeg -i INPUT -filter_complex asplit=5 OUTPUT
    +
    +
+ + +

40.13 zmq, azmq

+ +

Receive commands sent through a libzmq client, and forward them to +filters in the filtergraph. +

+

zmq and azmq work as a pass-through filters. zmq +must be inserted between two video filters, azmq between two +audio filters. +

+

To enable these filters you need to install the libzmq library and +headers and configure FFmpeg with --enable-libzmq. +

+

For more information about libzmq see: +http://www.zeromq.org/ +

+

The zmq and azmq filters work as a libzmq server, which +receives messages sent through a network interface defined by the +‘bind_address’ option. +

+

The received message must be in the form: +

 
TARGET COMMAND [ARG]
+
+ +

TARGET specifies the target of the command, usually the name of +the filter class or a specific filter instance name. +

+

COMMAND specifies the name of the command for the target filter. +

+

ARG is optional and specifies the optional argument list for the +given COMMAND. +

+

Upon reception, the message is processed and the corresponding command +is injected into the filtergraph. Depending on the result, the filter +will send a reply to the client, adopting the format: +

 
ERROR_CODE ERROR_REASON
+MESSAGE
+
+ +

MESSAGE is optional. +

+ +

40.13.1 Examples

+ +

Look at ‘tools/zmqsend’ for an example of a zmq client which can +be used to send commands processed by these filters. +

+

Consider the following filtergraph generated by ffplay +

 
ffplay -dumpgraph 1 -f lavfi "
+color=s=100x100:c=red  [l];
+color=s=100x100:c=blue [r];
+nullsrc=s=200x100, zmq [bg];
+[bg][l]   overlay      [bg+l];
+[bg+l][r] overlay=x=100 "
+
+ +

To change the color of the left side of the video, the following +command can be used: +

 
echo Parsed_color_0 c yellow | tools/zmqsend
+
+ +

To change the right side: +

 
echo Parsed_color_1 c pink | tools/zmqsend
+
+ + + +

41. Multimedia Sources

+ +

Below is a description of the currently available multimedia sources. +

+ +

41.1 amovie

+ +

This is the same as movie source, except it selects an audio +stream by default. +

+

+

+

41.2 movie

+ +

Read audio and/or video stream(s) from a movie container. +

+

It accepts the following parameters: +

+
+
filename
+

The name of the resource to read (not necessarily a file; it can also be a +device or a stream accessed through some protocol). +

+
+
format_name, f
+

Specifies the format assumed for the movie to read, and can be either +the name of a container or an input device. If not specified, the +format is guessed from movie_name or by probing. +

+
+
seek_point, sp
+

Specifies the seek point in seconds. The frames will be output +starting from this seek point. The parameter is evaluated with +av_strtod, so the numerical value may be suffixed by an IS +postfix. The default value is "0". +

+
+
streams, s
+

Specifies the streams to read. Several streams can be specified, +separated by "+". The source will then have as many outputs, in the +same order. The syntax is explained in the “Stream specifiers” +section in the ffmpeg manual. Two special names, "dv" and "da" specify +respectively the default (best suited) video and audio stream. Default +is "dv", or "da" if the filter is called as "amovie". +

+
+
stream_index, si
+

Specifies the index of the video stream to read. If the value is -1, +the most suitable video stream will be automatically selected. The default +value is "-1". Deprecated. If the filter is called "amovie", it will select +audio instead of video. +

+
+
loop
+

Specifies how many times to read the stream in sequence. +If the value is less than 1, the stream will be read again and again. +Default value is "1". +

+

Note that when the movie is looped the source timestamps are not +changed, so it will generate non monotonically increasing timestamps. +

+
+ +

It allows overlaying a second video on top of the main input of +a filtergraph, as shown in this graph: +

 
input -----------> deltapts0 --> overlay --> output
+                                    ^
+                                    |
+movie --> scale--> deltapts1 -------+
+
+ +

41.2.1 Examples

+ +
    +
  • +Skip 3.2 seconds from the start of the AVI file in.avi, and overlay it +on top of the input labelled "in": +
     
    movie=in.avi:seek_point=3.2, scale=180:-1, setpts=PTS-STARTPTS [over];
    +[in] setpts=PTS-STARTPTS [main];
    +[main][over] overlay=16:16 [out]
    +
    + +
  • +Read from a video4linux2 device, and overlay it on top of the input +labelled "in": +
     
    movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [over];
    +[in] setpts=PTS-STARTPTS [main];
    +[main][over] overlay=16:16 [out]
    +
    + +
  • +Read the first video stream and the audio stream with id 0x81 from +dvd.vob; the video is connected to the pad named "video" and the audio is +connected to the pad named "audio": +
     
    movie=dvd.vob:s=v:0+#0x81 [video] [audio]
    +
    +
+ + + +

42. See Also

+ +

ffmpeg +ffplay, ffprobe, ffserver, +ffmpeg-utils, +ffmpeg-scaler, +ffmpeg-resampler, +ffmpeg-codecs, +ffmpeg-bitstream-filters, +ffmpeg-formats, +ffmpeg-devices, +ffmpeg-protocols, +ffmpeg-filters +

+ + +

43. Authors

+ +

The FFmpeg developers. +

+

For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +git log in the FFmpeg source directory, or browsing the +online repository at http://source.ffmpeg.org. +

+

Maintainers for the specific components are listed in the file +‘MAINTAINERS’ in the source code tree. +

+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/ffmpeg-bitstream-filters.html b/3-Postprocessing/ffmpeg/doc/ffmpeg-bitstream-filters.html new file mode 100644 index 0000000..26f48d6 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/ffmpeg-bitstream-filters.html @@ -0,0 +1,225 @@ + + + + + +FFmpeg documentation : FFmpeg Bitstream Filters + + + + + + + + + + +
+
+ + +

FFmpeg Bitstream Filters Documentation

+ + +

Table of Contents

+ + + +

1. Description

+ +

This document describes the bitstream filters provided by the +libavcodec library. +

+

A bitstream filter operates on the encoded stream data, and performs +bitstream level modifications without performing decoding. +

+ + +

2. Bitstream Filters

+ +

When you configure your FFmpeg build, all the supported bitstream +filters are enabled by default. You can list all available ones using +the configure option --list-bsfs. +

+

You can disable all the bitstream filters using the configure option +--disable-bsfs, and selectively enable any bitstream filter using +the option --enable-bsf=BSF, or you can disable a particular +bitstream filter using the option --disable-bsf=BSF. +

+

The option -bsfs of the ff* tools will display the list of +all the supported bitstream filters included in your build. +

+

Below is a description of the currently available bitstream filters. +

+ +

2.1 aac_adtstoasc

+ +

Convert MPEG-2/4 AAC ADTS to MPEG-4 Audio Specific Configuration +bitstream filter. +

+

This filter creates an MPEG-4 AudioSpecificConfig from an MPEG-2/4 +ADTS header and removes the ADTS header. +

+

This is required for example when copying an AAC stream from a raw +ADTS AAC container to a FLV or a MOV/MP4 file. +

+ +

2.2 chomp

+ +

Remove zero padding at the end of a packet. +

+ +

2.3 dump_extra

+ +

Add extradata to the beginning of the filtered packets. +

+

The additional argument specifies which packets should be filtered. +It accepts the values: +

+
a
+

add extradata to all key packets, but only if local_header is +set in the ‘flags2’ codec context field +

+
+
k
+

add extradata to all key packets +

+
+
e
+

add extradata to all packets +

+
+ +

If not specified it is assumed ‘k’. +

+

For example the following ffmpeg command forces a global +header (thus disabling individual packet headers) in the H.264 packets +generated by the libx264 encoder, but corrects them by adding +the header stored in extradata to the key packets: +

 
ffmpeg -i INPUT -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra out.ts
+
+ + +

2.4 h264_mp4toannexb

+ +

Convert an H.264 bitstream from length prefixed mode to start code +prefixed mode (as defined in the Annex B of the ITU-T H.264 +specification). +

+

This is required by some streaming formats, typically the MPEG-2 +transport stream format ("mpegts"). +

+

For example to remux an MP4 file containing an H.264 stream to mpegts +format with ffmpeg, you can use the command: +

+
 
ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264_mp4toannexb OUTPUT.ts
+
+ + +

2.5 imx_dump_header

+ + +

2.6 mjpeg2jpeg

+ +

Convert MJPEG/AVI1 packets to full JPEG/JFIF packets. +

+

MJPEG is a video codec wherein each video frame is essentially a +JPEG image. The individual frames can be extracted without loss, +e.g. by +

+
 
ffmpeg -i ../some_mjpeg.avi -c:v copy frames_%d.jpg
+
+ +

Unfortunately, these chunks are incomplete JPEG images, because +they lack the DHT segment required for decoding. Quoting from +http://www.digitalpreservation.gov/formats/fdd/fdd000063.shtml: +

+

Avery Lee, writing in the rec.video.desktop newsgroup in 2001, +commented that "MJPEG, or at least the MJPEG in AVIs having the +MJPG fourcc, is restricted JPEG with a fixed – and *omitted* – +Huffman table. The JPEG must be YCbCr colorspace, it must be 4:2:2, +and it must use basic Huffman encoding, not arithmetic or +progressive. . . . You can indeed extract the MJPEG frames and +decode them with a regular JPEG decoder, but you have to prepend +the DHT segment to them, or else the decoder won’t have any idea +how to decompress the data. The exact table necessary is given in +the OpenDML spec." +

+

This bitstream filter patches the header of frames extracted from an MJPEG +stream (carrying the AVI1 header ID and lacking a DHT segment) to +produce fully qualified JPEG images. +

+
 
ffmpeg -i mjpeg-movie.avi -c:v copy -bsf:v mjpeg2jpeg frame_%d.jpg
+exiftran -i -9 frame*.jpg
+ffmpeg -i frame_%d.jpg -c:v copy rotated.avi
+
+ + +

2.7 mjpega_dump_header

+ + +

2.8 movsub

+ + +

2.9 mp3_header_decompress

+ + +

2.10 noise

+ + +

2.11 remove_extra

+ + + +

3. See Also

+ +

ffmpeg, ffplay, ffprobe, ffserver, +libavcodec +

+ + +

4. Authors

+ +

The FFmpeg developers. +

+

For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +git log in the FFmpeg source directory, or browsing the +online repository at http://source.ffmpeg.org. +

+

Maintainers for the specific components are listed in the file +‘MAINTAINERS’ in the source code tree. +

+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/ffmpeg-codecs.html b/3-Postprocessing/ffmpeg/doc/ffmpeg-codecs.html new file mode 100644 index 0000000..8ee0663 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/ffmpeg-codecs.html @@ -0,0 +1,4300 @@ + + + + + +FFmpeg documentation : FFmpeg Codecs + + + + + + + + + + +
+
+ + +

FFmpeg Codecs Documentation

+ + +

Table of Contents

+
+ + +
+ + +

1. Description

+ +

This document describes the codecs (decoders and encoders) provided by +the libavcodec library. +

+ +

+

+

2. Codec Options

+ +

libavcodec provides some generic global options, which can be set on +all the encoders and decoders. In addition each codec may support +so-called private options, which are specific for a given codec. +

+

Sometimes, a global option may only affect a specific kind of codec, +and may be unsensical or ignored by another, so you need to be aware +of the meaning of the specified options. Also some options are +meant only for decoding or encoding. +

+

Options may be set by specifying -option value in the +FFmpeg tools, or by setting the value explicitly in the +AVCodecContext options or using the ‘libavutil/opt.h’ API +for programmatic use. +

+

The list of supported options follow: +

+
+
b integer (encoding,audio,video)
+

Set bitrate in bits/s. Default value is 200K. +

+
+
ab integer (encoding,audio)
+

Set audio bitrate (in bits/s). Default value is 128K. +

+
+
bt integer (encoding,video)
+

Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate +tolerance specifies how far ratecontrol is willing to deviate from the +target average bitrate value. This is not related to min/max +bitrate. Lowering tolerance too much has an adverse effect on quality. +

+
+
flags flags (decoding/encoding,audio,video,subtitles)
+

Set generic flags. +

+

Possible values: +

+
mv4
+

Use four motion vector by macroblock (mpeg4). +

+
qpel
+

Use 1/4 pel motion compensation. +

+
loop
+

Use loop filter. +

+
qscale
+

Use fixed qscale. +

+
gmc
+

Use gmc. +

+
mv0
+

Always try a mb with mv=<0,0>. +

+
input_preserved
+
pass1
+

Use internal 2pass ratecontrol in first pass mode. +

+
pass2
+

Use internal 2pass ratecontrol in second pass mode. +

+
gray
+

Only decode/encode grayscale. +

+
emu_edge
+

Do not draw edges. +

+
psnr
+

Set error[?] variables during encoding. +

+
truncated
+
naq
+

Normalize adaptive quantization. +

+
ildct
+

Use interlaced DCT. +

+
low_delay
+

Force low delay. +

+
global_header
+

Place global headers in extradata instead of every keyframe. +

+
bitexact
+

Use only bitexact stuff (except (I)DCT). +

+
aic
+

Apply H263 advanced intra coding / mpeg4 ac prediction. +

+
cbp
+

Deprecated, use mpegvideo private options instead. +

+
qprd
+

Deprecated, use mpegvideo private options instead. +

+
ilme
+

Apply interlaced motion estimation. +

+
cgop
+

Use closed gop. +

+
+ +
+
me_method integer (encoding,video)
+

Set motion estimation method. +

+

Possible values: +

+
zero
+

zero motion estimation (fastest) +

+
full
+

full motion estimation (slowest) +

+
epzs
+

EPZS motion estimation (default) +

+
esa
+

esa motion estimation (alias for full) +

+
tesa
+

tesa motion estimation +

+
dia
+

dia motion estimation (alias for epzs) +

+
log
+

log motion estimation +

+
phods
+

phods motion estimation +

+
x1
+

X1 motion estimation +

+
hex
+

hex motion estimation +

+
umh
+

umh motion estimation +

+
iter
+

iter motion estimation +

+
+ +
+
extradata_size integer
+

Set extradata size. +

+
+
time_base rational number
+

Set codec time base. +

+

It is the fundamental unit of time (in seconds) in terms of which +frame timestamps are represented. For fixed-fps content, timebase +should be 1 / frame_rate and timestamp increments should be +identically 1. +

+
+
g integer (encoding,video)
+

Set the group of picture size. Default value is 12. +

+
+
ar integer (decoding/encoding,audio)
+

Set audio sampling rate (in Hz). +

+
+
ac integer (decoding/encoding,audio)
+

Set number of audio channels. +

+
+
cutoff integer (encoding,audio)
+

Set cutoff bandwidth. +

+
+
frame_size integer (encoding,audio)
+

Set audio frame size. +

+

Each submitted frame except the last must contain exactly frame_size +samples per channel. May be 0 when the codec has +CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is not +restricted. It is set by some decoders to indicate constant frame +size. +

+
+
frame_number integer
+

Set the frame number. +

+
+
delay integer
+
qcomp float (encoding,video)
+

Set video quantizer scale compression (VBR). It is used as a constant +in the ratecontrol equation. Recommended range for default rc_eq: +0.0-1.0. +

+
+
qblur float (encoding,video)
+

Set video quantizer scale blur (VBR). +

+
+
qmin integer (encoding,video)
+

Set min video quantizer scale (VBR). Must be included between -1 and +69, default value is 2. +

+
+
qmax integer (encoding,video)
+

Set max video quantizer scale (VBR). Must be included between -1 and +1024, default value is 31. +

+
+
qdiff integer (encoding,video)
+

Set max difference between the quantizer scale (VBR). +

+
+
bf integer (encoding,video)
+

Set max number of B frames between non-B-frames. +

+

Must be an integer between -1 and 16. 0 means that B-frames are +disabled. If a value of -1 is used, it will choose an automatic value +depending on the encoder. +

+

Default value is 0. +

+
+
b_qfactor float (encoding,video)
+

Set qp factor between P and B frames. +

+
+
rc_strategy integer (encoding,video)
+

Set ratecontrol method. +

+
+
b_strategy integer (encoding,video)
+

Set strategy to choose between I/P/B-frames. +

+
+
ps integer (encoding,video)
+

Set RTP payload size in bytes. +

+
+
mv_bits integer
+
header_bits integer
+
i_tex_bits integer
+
p_tex_bits integer
+
i_count integer
+
p_count integer
+
skip_count integer
+
misc_bits integer
+
frame_bits integer
+
codec_tag integer
+
bug flags (decoding,video)
+

Workaround not auto detected encoder bugs. +

+

Possible values: +

+
autodetect
+
old_msmpeg4
+

some old lavc generated msmpeg4v3 files (no autodetection) +

+
xvid_ilace
+

Xvid interlacing bug (autodetected if fourcc==XVIX) +

+
ump4
+

(autodetected if fourcc==UMP4) +

+
no_padding
+

padding bug (autodetected) +

+
amv
+
ac_vlc
+

illegal vlc bug (autodetected per fourcc) +

+
qpel_chroma
+
std_qpel
+

old standard qpel (autodetected per fourcc/version) +

+
qpel_chroma2
+
direct_blocksize
+

direct-qpel-blocksize bug (autodetected per fourcc/version) +

+
edge
+

edge padding bug (autodetected per fourcc/version) +

+
hpel_chroma
+
dc_clip
+
ms
+

Workaround various bugs in microsoft broken decoders. +

+
trunc
+

trancated frames +

+
+ +
+
lelim integer (encoding,video)
+

Set single coefficient elimination threshold for luminance (negative +values also consider DC coefficient). +

+
+
celim integer (encoding,video)
+

Set single coefficient elimination threshold for chrominance (negative +values also consider dc coefficient) +

+
+
strict integer (decoding/encoding,audio,video)
+

Specify how strictly to follow the standards. +

+

Possible values: +

+
very
+

strictly conform to a older more strict version of the spec or reference software +

+
strict
+

strictly conform to all the things in the spec no matter what consequences +

+
normal
+
unofficial
+

allow unofficial extensions +

+
experimental
+

allow non standardized experimental things, experimental +(unfinished/work in progress/not well tested) decoders and encoders. +Note: experimental decoders can pose a security risk, do not use this for +decoding untrusted input. +

+
+ +
+
b_qoffset float (encoding,video)
+

Set QP offset between P and B frames. +

+
+
err_detect flags (decoding,audio,video)
+

Set error detection flags. +

+

Possible values: +

+
crccheck
+

verify embedded CRCs +

+
bitstream
+

detect bitstream specification deviations +

+
buffer
+

detect improper bitstream length +

+
explode
+

abort decoding on minor error detection +

+
careful
+

consider things that violate the spec and have not been seen in the wild as errors +

+
compliant
+

consider all spec non compliancies as errors +

+
aggressive
+

consider things that a sane encoder should not do as an error +

+
+ +
+
has_b_frames integer
+
block_align integer
+
mpeg_quant integer (encoding,video)
+

Use MPEG quantizers instead of H.263. +

+
+
qsquish float (encoding,video)
+

How to keep quantizer between qmin and qmax (0 = clip, 1 = use +differentiable function). +

+
+
rc_qmod_amp float (encoding,video)
+

Set experimental quantizer modulation. +

+
+
rc_qmod_freq integer (encoding,video)
+

Set experimental quantizer modulation. +

+
+
rc_override_count integer
+
rc_eq string (encoding,video)
+

Set rate control equation. When computing the expression, besides the +standard functions defined in the section ’Expression Evaluation’, the +following functions are available: bits2qp(bits), qp2bits(qp). Also +the following constants are available: iTex pTex tex mv fCode iCount +mcVar var isI isP isB avgQP qComp avgIITex avgPITex avgPPTex avgBPTex +avgTex. +

+
+
maxrate integer (encoding,audio,video)
+

Set max bitrate tolerance (in bits/s). Requires bufsize to be set. +

+
+
minrate integer (encoding,audio,video)
+

Set min bitrate tolerance (in bits/s). Most useful in setting up a CBR +encode. It is of little use elsewise. +

+
+
bufsize integer (encoding,audio,video)
+

Set ratecontrol buffer size (in bits). +

+
+
rc_buf_aggressivity float (encoding,video)
+

Currently useless. +

+
+
i_qfactor float (encoding,video)
+

Set QP factor between P and I frames. +

+
+
i_qoffset float (encoding,video)
+

Set QP offset between P and I frames. +

+
+
rc_init_cplx float (encoding,video)
+

Set initial complexity for 1-pass encoding. +

+
+
dct integer (encoding,video)
+

Set DCT algorithm. +

+

Possible values: +

+
auto
+

autoselect a good one (default) +

+
fastint
+

fast integer +

+
int
+

accurate integer +

+
mmx
+
altivec
+
faan
+

floating point AAN DCT +

+
+ +
+
lumi_mask float (encoding,video)
+

Compress bright areas stronger than medium ones. +

+
+
tcplx_mask float (encoding,video)
+

Set temporal complexity masking. +

+
+
scplx_mask float (encoding,video)
+

Set spatial complexity masking. +

+
+
p_mask float (encoding,video)
+

Set inter masking. +

+
+
dark_mask float (encoding,video)
+

Compress dark areas stronger than medium ones. +

+
+
idct integer (decoding/encoding,video)
+

Select IDCT implementation. +

+

Possible values: +

+
auto
+
int
+
simple
+
simplemmx
+
arm
+
altivec
+
sh4
+
simplearm
+
simplearmv5te
+
simplearmv6
+
simpleneon
+
simplealpha
+
ipp
+
xvidmmx
+
faani
+

floating point AAN IDCT +

+
+ +
+
slice_count integer
+
ec flags (decoding,video)
+

Set error concealment strategy. +

+

Possible values: +

+
guess_mvs
+

iterative motion vector (MV) search (slow) +

+
deblock
+

use strong deblock filter for damaged MBs +

+
+ +
+
bits_per_coded_sample integer
+
pred integer (encoding,video)
+

Set prediction method. +

+

Possible values: +

+
left
+
plane
+
median
+
+ +
+
aspect rational number (encoding,video)
+

Set sample aspect ratio. +

+
+
debug flags (decoding/encoding,audio,video,subtitles)
+

Print specific debug info. +

+

Possible values: +

+
pict
+

picture info +

+
rc
+

rate control +

+
bitstream
+
mb_type
+

macroblock (MB) type +

+
qp
+

per-block quantization parameter (QP) +

+
mv
+

motion vector +

+
dct_coeff
+
skip
+
startcode
+
pts
+
er
+

error recognition +

+
mmco
+

memory management control operations (H.264) +

+
bugs
+
vis_qp
+

visualize quantization parameter (QP), lower QP are tinted greener +

+
vis_mb_type
+

visualize block types +

+
buffers
+

picture buffer allocations +

+
thread_ops
+

threading operations +

+
+ +
+
vismv integer (decoding,video)
+

Visualize motion vectors (MVs). +

+

Possible values: +

+
pf
+

forward predicted MVs of P-frames +

+
bf
+

forward predicted MVs of B-frames +

+
bb
+

backward predicted MVs of B-frames +

+
+ +
+
cmp integer (encoding,video)
+

Set full pel me compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
subcmp integer (encoding,video)
+

Set sub pel me compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
mbcmp integer (encoding,video)
+

Set macroblock compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
ildctcmp integer (encoding,video)
+

Set interlaced dct compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
dia_size integer (encoding,video)
+

Set diamond type & size for motion estimation. +

+
+
last_pred integer (encoding,video)
+

Set amount of motion predictors from the previous frame. +

+
+
preme integer (encoding,video)
+

Set pre motion estimation. +

+
+
precmp integer (encoding,video)
+

Set pre motion estimation compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
pre_dia_size integer (encoding,video)
+

Set diamond type & size for motion estimation pre-pass. +

+
+
subq integer (encoding,video)
+

Set sub pel motion estimation quality. +

+
+
dtg_active_format integer
+
me_range integer (encoding,video)
+

Set limit motion vectors range (1023 for DivX player). +

+
+
ibias integer (encoding,video)
+

Set intra quant bias. +

+
+
pbias integer (encoding,video)
+

Set inter quant bias. +

+
+
color_table_id integer
+
global_quality integer (encoding,audio,video)
+
coder integer (encoding,video)
+
+

Possible values: +

+
vlc
+

variable length coder / huffman coder +

+
ac
+

arithmetic coder +

+
raw
+

raw (no encoding) +

+
rle
+

run-length coder +

+
deflate
+

deflate-based coder +

+
+ +
+
context integer (encoding,video)
+

Set context model. +

+
+
slice_flags integer
+
xvmc_acceleration integer
+
mbd integer (encoding,video)
+

Set macroblock decision algorithm (high quality mode). +

+

Possible values: +

+
simple
+

use mbcmp (default) +

+
bits
+

use fewest bits +

+
rd
+

use best rate distortion +

+
+ +
+
stream_codec_tag integer
+
sc_threshold integer (encoding,video)
+

Set scene change threshold. +

+
+
lmin integer (encoding,video)
+

Set min lagrange factor (VBR). +

+
+
lmax integer (encoding,video)
+

Set max lagrange factor (VBR). +

+
+
nr integer (encoding,video)
+

Set noise reduction. +

+
+
rc_init_occupancy integer (encoding,video)
+

Set number of bits which should be loaded into the rc buffer before +decoding starts. +

+
+
flags2 flags (decoding/encoding,audio,video)
+
+

Possible values: +

+
fast
+

Allow non spec compliant speedup tricks. +

+
sgop
+

Deprecated, use mpegvideo private options instead. +

+
noout
+

Skip bitstream encoding. +

+
ignorecrop
+

Ignore cropping information from sps. +

+
local_header
+

Place global headers at every keyframe instead of in extradata. +

+
chunks
+

Frame data might be split into multiple chunks. +

+
showall
+

Show all frames before the first keyframe. +

+
skiprd
+

Deprecated, use mpegvideo private options instead. +

+
+ +
+
error integer (encoding,video)
+
qns integer (encoding,video)
+

Deprecated, use mpegvideo private options instead. +

+
+
threads integer (decoding/encoding,video)
+
+

Possible values: +

+
auto
+

detect a good number of threads +

+
+ +
+
me_threshold integer (encoding,video)
+

Set motion estimation threshold. +

+
+
mb_threshold integer (encoding,video)
+

Set macroblock threshold. +

+
+
dc integer (encoding,video)
+

Set intra_dc_precision. +

+
+
nssew integer (encoding,video)
+

Set nsse weight. +

+
+
skip_top integer (decoding,video)
+

Set number of macroblock rows at the top which are skipped. +

+
+
skip_bottom integer (decoding,video)
+

Set number of macroblock rows at the bottom which are skipped. +

+
+
profile integer (encoding,audio,video)
+
+

Possible values: +

+
unknown
+
aac_main
+
aac_low
+
aac_ssr
+
aac_ltp
+
aac_he
+
aac_he_v2
+
aac_ld
+
aac_eld
+
mpeg2_aac_low
+
mpeg2_aac_he
+
dts
+
dts_es
+
dts_96_24
+
dts_hd_hra
+
dts_hd_ma
+
+ +
+
level integer (encoding,audio,video)
+
+

Possible values: +

+
unknown
+
+ +
+
lowres integer (decoding,audio,video)
+

Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions. +

+
+
skip_threshold integer (encoding,video)
+

Set frame skip threshold. +

+
+
skip_factor integer (encoding,video)
+

Set frame skip factor. +

+
+
skip_exp integer (encoding,video)
+

Set frame skip exponent. +Negative values behave identical to the corresponding positive ones, except +that the score is normalized. +Positive values exist primarly for compatibility reasons and are not so useful. +

+
+
skipcmp integer (encoding,video)
+

Set frame skip compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
border_mask float (encoding,video)
+

Increase the quantizer for macroblocks close to borders. +

+
+
mblmin integer (encoding,video)
+

Set min macroblock lagrange factor (VBR). +

+
+
mblmax integer (encoding,video)
+

Set max macroblock lagrange factor (VBR). +

+
+
mepc integer (encoding,video)
+

Set motion estimation bitrate penalty compensation (1.0 = 256). +

+
+
skip_loop_filter integer (decoding,video)
+
skip_idct integer (decoding,video)
+
skip_frame integer (decoding,video)
+
+

Make decoder discard processing depending on the frame type selected +by the option value. +

+

skip_loop_filter’ skips frame loop filtering, ‘skip_idct’ +skips frame IDCT/dequantization, ‘skip_frame’ skips decoding. +

+

Possible values: +

+
none
+

Discard no frame. +

+
+
default
+

Discard useless frames like 0-sized frames. +

+
+
noref
+

Discard all non-reference frames. +

+
+
bidir
+

Discard all bidirectional frames. +

+
+
nokey
+

Discard all frames excepts keyframes. +

+
+
all
+

Discard all frames. +

+
+ +

Default value is ‘default’. +

+
+
bidir_refine integer (encoding,video)
+

Refine the two motion vectors used in bidirectional macroblocks. +

+
+
brd_scale integer (encoding,video)
+

Downscale frames for dynamic B-frame decision. +

+
+
keyint_min integer (encoding,video)
+

Set minimum interval between IDR-frames. +

+
+
refs integer (encoding,video)
+

Set reference frames to consider for motion compensation. +

+
+
chromaoffset integer (encoding,video)
+

Set chroma qp offset from luma. +

+
+
trellis integer (encoding,audio,video)
+

Set rate-distortion optimal quantization. +

+
+
sc_factor integer (encoding,video)
+

Set value multiplied by qscale for each frame and added to +scene_change_score. +

+
+
mv0_threshold integer (encoding,video)
+
b_sensitivity integer (encoding,video)
+

Adjust sensitivity of b_frame_strategy 1. +

+
+
compression_level integer (encoding,audio,video)
+
min_prediction_order integer (encoding,audio)
+
max_prediction_order integer (encoding,audio)
+
timecode_frame_start integer (encoding,video)
+

Set GOP timecode frame start number, in non drop frame format. +

+
+
request_channels integer (decoding,audio)
+

Set desired number of audio channels. +

+
+
bits_per_raw_sample integer
+
channel_layout integer (decoding/encoding,audio)
+
+

Possible values: +

+
request_channel_layout integer (decoding,audio)
+
+

Possible values: +

+
rc_max_vbv_use float (encoding,video)
+
rc_min_vbv_use float (encoding,video)
+
ticks_per_frame integer (decoding/encoding,audio,video)
+
color_primaries integer (decoding/encoding,video)
+
color_trc integer (decoding/encoding,video)
+
colorspace integer (decoding/encoding,video)
+
color_range integer (decoding/encoding,video)
+
chroma_sample_location integer (decoding/encoding,video)
+
log_level_offset integer
+

Set the log level offset. +

+
+
slices integer (encoding,video)
+

Number of slices, used in parallelized encoding. +

+
+
thread_type flags (decoding/encoding,video)
+

Select multithreading type. +

+

Possible values: +

+
slice
+
frame
+
+
+
audio_service_type integer (encoding,audio)
+

Set audio service type. +

+

Possible values: +

+
ma
+

Main Audio Service +

+
ef
+

Effects +

+
vi
+

Visually Impaired +

+
hi
+

Hearing Impaired +

+
di
+

Dialogue +

+
co
+

Commentary +

+
em
+

Emergency +

+
vo
+

Voice Over +

+
ka
+

Karaoke +

+
+ +
+
request_sample_fmt sample_fmt (decoding,audio)
+

Set sample format audio decoders should prefer. Default value is +none. +

+
+
pkt_timebase rational number
+
sub_charenc encoding (decoding,subtitles)
+

Set the input subtitles character encoding. +

+
+
field_order field_order (video)
+

Set/override the field order of the video. +Possible values: +

+
progressive
+

Progressive video +

+
tt
+

Interlaced video, top field coded and displayed first +

+
bb
+

Interlaced video, bottom field coded and displayed first +

+
tb
+

Interlaced video, top coded first, bottom displayed first +

+
bt
+

Interlaced video, bottom coded first, top displayed first +

+
+ +
+
skip_alpha integer (decoding,video)
+

Set to 1 to disable processing alpha (transparency). This works like the +‘gray’ flag in the ‘flags’ option which skips chroma information +instead of alpha. Default is 0. +

+
+ + + +

3. Decoders

+ +

Decoders are configured elements in FFmpeg which allow the decoding of +multimedia streams. +

+

When you configure your FFmpeg build, all the supported native decoders +are enabled by default. Decoders requiring an external library must be enabled +manually via the corresponding --enable-lib option. You can list all +available decoders using the configure option --list-decoders. +

+

You can disable all the decoders with the configure option +--disable-decoders and selectively enable / disable single decoders +with the options --enable-decoder=DECODER / +--disable-decoder=DECODER. +

+

The option -decoders of the ff* tools will display the list of +enabled decoders. +

+ + +

4. Video Decoders

+ +

A description of some of the currently available video decoders +follows. +

+ +

4.1 rawvideo

+ +

Raw video decoder. +

+

This decoder decodes rawvideo streams. +

+ +

4.1.1 Options

+ +
+
top top_field_first
+

Specify the assumed field type of the input video. +

+
-1
+

the video is assumed to be progressive (default) +

+
0
+

bottom-field-first is assumed +

+
1
+

top-field-first is assumed +

+
+ +
+
+ + + +

5. Audio Decoders

+ +

A description of some of the currently available audio decoders +follows. +

+ +

5.1 ac3

+ +

AC-3 audio decoder. +

+

This decoder implements part of ATSC A/52:2010 and ETSI TS 102 366, as well as +the undocumented RealAudio 3 (a.k.a. dnet). +

+ +

5.1.1 AC-3 Decoder Options

+ +
+
-drc_scale value
+

Dynamic Range Scale Factor. The factor to apply to dynamic range values +from the AC-3 stream. This factor is applied exponentially. +There are 3 notable scale factor ranges: +

+
drc_scale == 0
+

DRC disabled. Produces full range audio. +

+
0 < drc_scale <= 1
+

DRC enabled. Applies a fraction of the stream DRC value. +Audio reproduction is between full range and full compression. +

+
drc_scale > 1
+

DRC enabled. Applies drc_scale asymmetrically. +Loud sounds are fully compressed. Soft sounds are enhanced. +

+
+ +
+
+ + +

5.2 ffwavesynth

+ +

Internal wave synthetizer. +

+

This decoder generates wave patterns according to predefined sequences. Its +use is purely internal and the format of the data it accepts is not publicly +documented. +

+ +

5.3 libcelt

+ +

libcelt decoder wrapper. +

+

libcelt allows libavcodec to decode the Xiph CELT ultra-low delay audio codec. +Requires the presence of the libcelt headers and library during configuration. +You need to explicitly configure the build with --enable-libcelt. +

+ +

5.4 libgsm

+ +

libgsm decoder wrapper. +

+

libgsm allows libavcodec to decode the GSM full rate audio codec. Requires +the presence of the libgsm headers and library during configuration. You need +to explicitly configure the build with --enable-libgsm. +

+

This decoder supports both the ordinary GSM and the Microsoft variant. +

+ +

5.5 libilbc

+ +

libilbc decoder wrapper. +

+

libilbc allows libavcodec to decode the Internet Low Bitrate Codec (iLBC) +audio codec. Requires the presence of the libilbc headers and library during +configuration. You need to explicitly configure the build with +--enable-libilbc. +

+ +

5.5.1 Options

+ +

The following option is supported by the libilbc wrapper. +

+
+
enhance
+
+

Enable the enhancement of the decoded audio when set to 1. The default +value is 0 (disabled). +

+
+
+ + +

5.6 libopencore-amrnb

+ +

libopencore-amrnb decoder wrapper. +

+

libopencore-amrnb allows libavcodec to decode the Adaptive Multi-Rate +Narrowband audio codec. Using it requires the presence of the +libopencore-amrnb headers and library during configuration. You need to +explicitly configure the build with --enable-libopencore-amrnb. +

+

An FFmpeg native decoder for AMR-NB exists, so users can decode AMR-NB +without this library. +

+ +

5.7 libopencore-amrwb

+ +

libopencore-amrwb decoder wrapper. +

+

libopencore-amrwb allows libavcodec to decode the Adaptive Multi-Rate +Wideband audio codec. Using it requires the presence of the +libopencore-amrwb headers and library during configuration. You need to +explicitly configure the build with --enable-libopencore-amrwb. +

+

An FFmpeg native decoder for AMR-WB exists, so users can decode AMR-WB +without this library. +

+ +

5.8 libopus

+ +

libopus decoder wrapper. +

+

libopus allows libavcodec to decode the Opus Interactive Audio Codec. +Requires the presence of the libopus headers and library during +configuration. You need to explicitly configure the build with +--enable-libopus. +

+ + +

6. Subtitles Decoders

+ + +

6.1 dvdsub

+ +

This codec decodes the bitmap subtitles used in DVDs; the same subtitles can +also be found in VobSub file pairs and in some Matroska files. +

+ +

6.1.1 Options

+ +
+
palette
+

Specify the global palette used by the bitmaps. When stored in VobSub, the +palette is normally specified in the index file; in Matroska, the palette is +stored in the codec extra-data in the same format as in VobSub. In DVDs, the +palette is stored in the IFO file, and therefore not available when reading +from dumped VOB files. +

+

The format for this option is a string containing 16 24-bits hexadecimal +numbers (without 0x prefix) separated by comas, for example 0d00ee, +ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b, 0d617a, 7b7b7b, d1d1d1, +7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c, 7c127b. +

+
+ + +

6.2 libzvbi-teletext

+ +

Libzvbi allows libavcodec to decode DVB teletext pages and DVB teletext +subtitles. Requires the presence of the libzvbi headers and library during +configuration. You need to explicitly configure the build with +--enable-libzvbi. +

+ +

6.2.1 Options

+ +
+
txt_page
+

List of teletext page numbers to decode. You may use the special * string to +match all pages. Pages that do not match the specified list are dropped. +Default value is *. +

+
txt_chop_top
+

Discards the top teletext line. Default value is 1. +

+
txt_format
+

Specifies the format of the decoded subtitles. The teletext decoder is capable +of decoding the teletext pages to bitmaps or to simple text, you should use +"bitmap" for teletext pages, because certain graphics and colors cannot be +expressed in simple text. You might use "text" for teletext based subtitles if +your application can handle simple text based subtitles. Default value is +bitmap. +

+
txt_left
+

X offset of generated bitmaps, default is 0. +

+
txt_top
+

Y offset of generated bitmaps, default is 0. +

+
txt_chop_spaces
+

Chops leading and trailing spaces and removes empty lines from the generated +text. This option is useful for teletext based subtitles where empty spaces may +be present at the start or at the end of the lines or empty lines may be +present between the subtitle lines because of double-sized teletext charactes. +Default value is 1. +

+
txt_duration
+

Sets the display duration of the decoded teletext pages or subtitles in +miliseconds. Default value is 30000 which is 30 seconds. +

+
txt_transparent
+

Force transparent background of the generated teletext bitmaps. Default value +is 0 which means an opaque (black) background. +

+
+ + +

7. Encoders

+ +

Encoders are configured elements in FFmpeg which allow the encoding of +multimedia streams. +

+

When you configure your FFmpeg build, all the supported native encoders +are enabled by default. Encoders requiring an external library must be enabled +manually via the corresponding --enable-lib option. You can list all +available encoders using the configure option --list-encoders. +

+

You can disable all the encoders with the configure option +--disable-encoders and selectively enable / disable single encoders +with the options --enable-encoder=ENCODER / +--disable-encoder=ENCODER. +

+

The option -encoders of the ff* tools will display the list of +enabled encoders. +

+ + +

8. Audio Encoders

+ +

A description of some of the currently available audio encoders +follows. +

+

+

+

8.1 aac

+ +

Advanced Audio Coding (AAC) encoder. +

+

This encoder is an experimental FFmpeg-native AAC encoder. Currently only the +low complexity (AAC-LC) profile is supported. To use this encoder, you must set +‘strict’ option to ‘experimental’ or lower. +

+

As this encoder is experimental, unexpected behavior may exist from time to +time. For a more stable AAC encoder, see libvo-aacenc. However, be warned +that it has a worse quality reported by some users. +

+

See also libfdk_aac and libfaac. +

+ +

8.1.1 Options

+ +
+
b
+

Set bit rate in bits/s. Setting this automatically activates constant bit rate +(CBR) mode. +

+
+
q
+

Set quality for variable bit rate (VBR) mode. This option is valid only using +the ffmpeg command-line tool. For library interface users, use +‘global_quality’. +

+
+
stereo_mode
+

Set stereo encoding mode. Possible values: +

+
+
auto
+

Automatically selected by the encoder. +

+
+
ms_off
+

Disable middle/side encoding. This is the default. +

+
+
ms_force
+

Force middle/side encoding. +

+
+ +
+
aac_coder
+

Set AAC encoder coding method. Possible values: +

+
+
faac
+

FAAC-inspired method. +

+

This method is a simplified reimplementation of the method used in FAAC, which +sets thresholds proportional to the band energies, and then decreases all the +thresholds with quantizer steps to find the appropriate quantization with +distortion below threshold band by band. +

+

The quality of this method is comparable to the two loop searching method +descibed below, but somewhat a little better and slower. +

+
+
anmr
+

Average noise to mask ratio (ANMR) trellis-based solution. +

+

This has a theoretic best quality out of all the coding methods, but at the +cost of the slowest speed. +

+
+
twoloop
+

Two loop searching (TLS) method. +

+

This method first sets quantizers depending on band thresholds and then tries +to find an optimal combination by adding or subtracting a specific value from +all quantizers and adjusting some individual quantizer a little. +

+

This method produces similar quality with the FAAC method and is the default. +

+
+
fast
+

Constant quantizer method. +

+

This method sets a constant quantizer for all bands. This is the fastest of all +the methods, yet produces the worst quality. +

+
+
+ +
+
+ + +

8.2 ac3 and ac3_fixed

+ +

AC-3 audio encoders. +

+

These encoders implement part of ATSC A/52:2010 and ETSI TS 102 366, as well as +the undocumented RealAudio 3 (a.k.a. dnet). +

+

The ac3 encoder uses floating-point math, while the ac3_fixed +encoder only uses fixed-point integer math. This does not mean that one is +always faster, just that one or the other may be better suited to a +particular system. The floating-point encoder will generally produce better +quality audio for a given bitrate. The ac3_fixed encoder is not the +default codec for any of the output formats, so it must be specified explicitly +using the option -acodec ac3_fixed in order to use it. +

+ +

8.2.1 AC-3 Metadata

+ +

The AC-3 metadata options are used to set parameters that describe the audio, +but in most cases do not affect the audio encoding itself. Some of the options +do directly affect or influence the decoding and playback of the resulting +bitstream, while others are just for informational purposes. A few of the +options will add bits to the output stream that could otherwise be used for +audio data, and will thus affect the quality of the output. Those will be +indicated accordingly with a note in the option list below. +

+

These parameters are described in detail in several publicly-available +documents. +

+ + +

8.2.1.1 Metadata Control Options

+ +
+
-per_frame_metadata boolean
+

Allow Per-Frame Metadata. Specifies if the encoder should check for changing +metadata for each frame. +

+
0
+

The metadata values set at initialization will be used for every frame in the +stream. (default) +

+
1
+

Metadata values can be changed before encoding each frame. +

+
+ +
+
+ + +

8.2.1.2 Downmix Levels

+ +
+
-center_mixlev level
+

Center Mix Level. The amount of gain the decoder should apply to the center +channel when downmixing to stereo. This field will only be written to the +bitstream if a center channel is present. The value is specified as a scale +factor. There are 3 valid values: +

+
0.707
+

Apply -3dB gain +

+
0.595
+

Apply -4.5dB gain (default) +

+
0.500
+

Apply -6dB gain +

+
+ +
+
-surround_mixlev level
+

Surround Mix Level. The amount of gain the decoder should apply to the surround +channel(s) when downmixing to stereo. This field will only be written to the +bitstream if one or more surround channels are present. The value is specified +as a scale factor. There are 3 valid values: +

+
0.707
+

Apply -3dB gain +

+
0.500
+

Apply -6dB gain (default) +

+
0.000
+

Silence Surround Channel(s) +

+
+ +
+
+ + +

8.2.1.3 Audio Production Information

+

Audio Production Information is optional information describing the mixing +environment. Either none or both of the fields are written to the bitstream. +

+
+
-mixing_level number
+

Mixing Level. Specifies peak sound pressure level (SPL) in the production +environment when the mix was mastered. Valid values are 80 to 111, or -1 for +unknown or not indicated. The default value is -1, but that value cannot be +used if the Audio Production Information is written to the bitstream. Therefore, +if the room_type option is not the default value, the mixing_level +option must not be -1. +

+
+
-room_type type
+

Room Type. Describes the equalization used during the final mixing session at +the studio or on the dubbing stage. A large room is a dubbing stage with the +industry standard X-curve equalization; a small room has flat equalization. +This field will not be written to the bitstream if both the mixing_level +option and the room_type option have the default values. +

+
0
+
notindicated
+

Not Indicated (default) +

+
1
+
large
+

Large Room +

+
2
+
small
+

Small Room +

+
+ +
+
+ + +

8.2.1.4 Other Metadata Options

+ +
+
-copyright boolean
+

Copyright Indicator. Specifies whether a copyright exists for this audio. +

+
0
+
off
+

No Copyright Exists (default) +

+
1
+
on
+

Copyright Exists +

+
+ +
+
-dialnorm value
+

Dialogue Normalization. Indicates how far the average dialogue level of the +program is below digital 100% full scale (0 dBFS). This parameter determines a +level shift during audio reproduction that sets the average volume of the +dialogue to a preset level. The goal is to match volume level between program +sources. A value of -31dB will result in no volume level change, relative to +the source volume, during audio reproduction. Valid values are whole numbers in +the range -31 to -1, with -31 being the default. +

+
+
-dsur_mode mode
+

Dolby Surround Mode. Specifies whether the stereo signal uses Dolby Surround +(Pro Logic). This field will only be written to the bitstream if the audio +stream is stereo. Using this option does NOT mean the encoder will actually +apply Dolby Surround processing. +

+
0
+
notindicated
+

Not Indicated (default) +

+
1
+
off
+

Not Dolby Surround Encoded +

+
2
+
on
+

Dolby Surround Encoded +

+
+ +
+
-original boolean
+

Original Bit Stream Indicator. Specifies whether this audio is from the +original source and not a copy. +

+
0
+
off
+

Not Original Source +

+
1
+
on
+

Original Source (default) +

+
+ +
+
+ + +

8.2.2 Extended Bitstream Information

+

The extended bitstream options are part of the Alternate Bit Stream Syntax as +specified in Annex D of the A/52:2010 standard. It is grouped into 2 parts. +If any one parameter in a group is specified, all values in that group will be +written to the bitstream. Default values are used for those that are written +but have not been specified. If the mixing levels are written, the decoder +will use these values instead of the ones specified in the center_mixlev +and surround_mixlev options if it supports the Alternate Bit Stream +Syntax. +

+ +

8.2.2.1 Extended Bitstream Information - Part 1

+ +
+
-dmix_mode mode
+

Preferred Stereo Downmix Mode. Allows the user to select either Lt/Rt +(Dolby Surround) or Lo/Ro (normal stereo) as the preferred stereo downmix mode. +

+
0
+
notindicated
+

Not Indicated (default) +

+
1
+
ltrt
+

Lt/Rt Downmix Preferred +

+
2
+
loro
+

Lo/Ro Downmix Preferred +

+
+ +
+
-ltrt_cmixlev level
+

Lt/Rt Center Mix Level. The amount of gain the decoder should apply to the +center channel when downmixing to stereo in Lt/Rt mode. +

+
1.414
+

Apply +3dB gain +

+
1.189
+

Apply +1.5dB gain +

+
1.000
+

Apply 0dB gain +

+
0.841
+

Apply -1.5dB gain +

+
0.707
+

Apply -3.0dB gain +

+
0.595
+

Apply -4.5dB gain (default) +

+
0.500
+

Apply -6.0dB gain +

+
0.000
+

Silence Center Channel +

+
+ +
+
-ltrt_surmixlev level
+

Lt/Rt Surround Mix Level. The amount of gain the decoder should apply to the +surround channel(s) when downmixing to stereo in Lt/Rt mode. +

+
0.841
+

Apply -1.5dB gain +

+
0.707
+

Apply -3.0dB gain +

+
0.595
+

Apply -4.5dB gain +

+
0.500
+

Apply -6.0dB gain (default) +

+
0.000
+

Silence Surround Channel(s) +

+
+ +
+
-loro_cmixlev level
+

Lo/Ro Center Mix Level. The amount of gain the decoder should apply to the +center channel when downmixing to stereo in Lo/Ro mode. +

+
1.414
+

Apply +3dB gain +

+
1.189
+

Apply +1.5dB gain +

+
1.000
+

Apply 0dB gain +

+
0.841
+

Apply -1.5dB gain +

+
0.707
+

Apply -3.0dB gain +

+
0.595
+

Apply -4.5dB gain (default) +

+
0.500
+

Apply -6.0dB gain +

+
0.000
+

Silence Center Channel +

+
+ +
+
-loro_surmixlev level
+

Lo/Ro Surround Mix Level. The amount of gain the decoder should apply to the +surround channel(s) when downmixing to stereo in Lo/Ro mode. +

+
0.841
+

Apply -1.5dB gain +

+
0.707
+

Apply -3.0dB gain +

+
0.595
+

Apply -4.5dB gain +

+
0.500
+

Apply -6.0dB gain (default) +

+
0.000
+

Silence Surround Channel(s) +

+
+ +
+
+ + +

8.2.2.2 Extended Bitstream Information - Part 2

+ +
+
-dsurex_mode mode
+

Dolby Surround EX Mode. Indicates whether the stream uses Dolby Surround EX +(7.1 matrixed to 5.1). Using this option does NOT mean the encoder will actually +apply Dolby Surround EX processing. +

+
0
+
notindicated
+

Not Indicated (default) +

+
1
+
on
+

Dolby Surround EX Off +

+
2
+
off
+

Dolby Surround EX On +

+
+ +
+
-dheadphone_mode mode
+

Dolby Headphone Mode. Indicates whether the stream uses Dolby Headphone +encoding (multi-channel matrixed to 2.0 for use with headphones). Using this +option does NOT mean the encoder will actually apply Dolby Headphone +processing. +

+
0
+
notindicated
+

Not Indicated (default) +

+
1
+
on
+

Dolby Headphone Off +

+
2
+
off
+

Dolby Headphone On +

+
+ +
+
-ad_conv_type type
+

A/D Converter Type. Indicates whether the audio has passed through HDCD A/D +conversion. +

+
0
+
standard
+

Standard A/D Converter (default) +

+
1
+
hdcd
+

HDCD A/D Converter +

+
+ +
+
+ + +

8.2.3 Other AC-3 Encoding Options

+ +
+
-stereo_rematrixing boolean
+

Stereo Rematrixing. Enables/Disables use of rematrixing for stereo input. This +is an optional AC-3 feature that increases quality by selectively encoding +the left/right channels as mid/side. This option is enabled by default, and it +is highly recommended that it be left as enabled except for testing purposes. +

+
+
+ + +

8.2.4 Floating-Point-Only AC-3 Encoding Options

+ +

These options are only valid for the floating-point encoder and do not exist +for the fixed-point encoder due to the corresponding features not being +implemented in fixed-point. +

+
+
-channel_coupling boolean
+

Enables/Disables use of channel coupling, which is an optional AC-3 feature +that increases quality by combining high frequency information from multiple +channels into a single channel. The per-channel high frequency information is +sent with less accuracy in both the frequency and time domains. This allows +more bits to be used for lower frequencies while preserving enough information +to reconstruct the high frequencies. This option is enabled by default for the +floating-point encoder and should generally be left as enabled except for +testing purposes or to increase encoding speed. +

+
-1
+
auto
+

Selected by Encoder (default) +

+
0
+
off
+

Disable Channel Coupling +

+
1
+
on
+

Enable Channel Coupling +

+
+ +
+
-cpl_start_band number
+

Coupling Start Band. Sets the channel coupling start band, from 1 to 15. If a +value higher than the bandwidth is used, it will be reduced to 1 less than the +coupling end band. If auto is used, the start band will be determined by +the encoder based on the bit rate, sample rate, and channel layout. This option +has no effect if channel coupling is disabled. +

+
-1
+
auto
+

Selected by Encoder (default) +

+
+ +
+
+ +

+

+

8.3 libfaac

+ +

libfaac AAC (Advanced Audio Coding) encoder wrapper. +

+

Requires the presence of the libfaac headers and library during +configuration. You need to explicitly configure the build with +--enable-libfaac --enable-nonfree. +

+

This encoder is considered to be of higher quality with respect to the +the native experimental FFmpeg AAC encoder. +

+

For more information see the libfaac project at +http://www.audiocoding.com/faac.html/. +

+ +

8.3.1 Options

+ +

The following shared FFmpeg codec options are recognized. +

+

The following options are supported by the libfaac wrapper. The +faac-equivalent of the options are listed in parentheses. +

+
+
b (-b)
+

Set bit rate in bits/s for ABR (Average Bit Rate) mode. If the bit rate +is not explicitly specified, it is automatically set to a suitable +value depending on the selected profile. faac bitrate is +expressed in kilobits/s. +

+

Note that libfaac does not support CBR (Constant Bit Rate) but only +ABR (Average Bit Rate). +

+

If VBR mode is enabled this option is ignored. +

+
+
ar (-R)
+

Set audio sampling rate (in Hz). +

+
+
ac (-c)
+

Set the number of audio channels. +

+
+
cutoff (-C)
+

Set cutoff frequency. If not specified (or explicitly set to 0) it +will use a value automatically computed by the library. Default value +is 0. +

+
+
profile
+

Set audio profile. +

+

The following profiles are recognized: +

+
aac_main
+

Main AAC (Main) +

+
+
aac_low
+

Low Complexity AAC (LC) +

+
+
aac_ssr
+

Scalable Sample Rate (SSR) +

+
+
aac_ltp
+

Long Term Prediction (LTP) +

+
+ +

If not specified it is set to ‘aac_low’. +

+
+
flags +qscale
+

Set constant quality VBR (Variable Bit Rate) mode. +

+
+
global_quality
+

Set quality in VBR mode as an integer number of lambda units. +

+

Only relevant when VBR mode is enabled with flags +qscale. The +value is converted to QP units by dividing it by FF_QP2LAMBDA, +and used to set the quality value used by libfaac. A reasonable range +for the option value in QP units is [10-500], the higher the value the +higher the quality. +

+
+
q (-q)
+

Enable VBR mode when set to a non-negative value, and set constant +quality value as a double floating point value in QP units. +

+

The value sets the quality value used by libfaac. A reasonable range +for the option value is [10-500], the higher the value the higher the +quality. +

+

This option is valid only using the ffmpeg command-line +tool. For library interface users, use ‘global_quality’. +

+
+ + +

8.3.2 Examples

+ +
    +
  • +Use ffmpeg to convert an audio file to ABR 128 kbps AAC in an M4A (MP4) +container: +
     
    ffmpeg -i input.wav -codec:a libfaac -b:a 128k -output.m4a
    +
    + +
  • +Use ffmpeg to convert an audio file to VBR AAC, using the +LTP AAC profile: +
     
    ffmpeg -i input.wav -c:a libfaac -profile:a aac_ltp -q:a 100 output.m4a
    +
    +
+ +

+

+

8.4 libfdk_aac

+ +

libfdk-aac AAC (Advanced Audio Coding) encoder wrapper. +

+

The libfdk-aac library is based on the Fraunhofer FDK AAC code from +the Android project. +

+

Requires the presence of the libfdk-aac headers and library during +configuration. You need to explicitly configure the build with +--enable-libfdk-aac. The library is also incompatible with GPL, +so if you allow the use of GPL, you should configure with +--enable-gpl --enable-nonfree --enable-libfdk-aac. +

+

This encoder is considered to be of higher quality with respect to +both the native experimental FFmpeg AAC encoder and +libfaac. +

+

VBR encoding, enabled through the ‘vbr’ or ‘flags ++qscale’ options, is experimental and only works with some +combinations of parameters. +

+

Support for encoding 7.1 audio is only available with libfdk-aac 0.1.3 or +higher. +

+

For more information see the fdk-aac project at +http://sourceforge.net/p/opencore-amr/fdk-aac/. +

+ +

8.4.1 Options

+ +

The following options are mapped on the shared FFmpeg codec options. +

+
+
b
+

Set bit rate in bits/s. If the bitrate is not explicitly specified, it +is automatically set to a suitable value depending on the selected +profile. +

+

In case VBR mode is enabled the option is ignored. +

+
+
ar
+

Set audio sampling rate (in Hz). +

+
+
channels
+

Set the number of audio channels. +

+
+
flags +qscale
+

Enable fixed quality, VBR (Variable Bit Rate) mode. +Note that VBR is implicitly enabled when the ‘vbr’ value is +positive. +

+
+
cutoff
+

Set cutoff frequency. If not specified (or explicitly set to 0) it +will use a value automatically computed by the library. Default value +is 0. +

+
+
profile
+

Set audio profile. +

+

The following profiles are recognized: +

+
aac_low
+

Low Complexity AAC (LC) +

+
+
aac_he
+

High Efficiency AAC (HE-AAC) +

+
+
aac_he_v2
+

High Efficiency AAC version 2 (HE-AACv2) +

+
+
aac_ld
+

Low Delay AAC (LD) +

+
+
aac_eld
+

Enhanced Low Delay AAC (ELD) +

+
+ +

If not specified it is set to ‘aac_low’. +

+
+ +

The following are private options of the libfdk_aac encoder. +

+
+
afterburner
+

Enable afterburner feature if set to 1, disabled if set to 0. This +improves the quality but also the required processing power. +

+

Default value is 1. +

+
+
eld_sbr
+

Enable SBR (Spectral Band Replication) for ELD if set to 1, disabled +if set to 0. +

+

Default value is 0. +

+
+
signaling
+

Set SBR/PS signaling style. +

+

It can assume one of the following values: +

+
default
+

choose signaling implicitly (explicit hierarchical by default, +implicit if global header is disabled) +

+
+
implicit
+

implicit backwards compatible signaling +

+
+
explicit_sbr
+

explicit SBR, implicit PS signaling +

+
+
explicit_hierarchical
+

explicit hierarchical signaling +

+
+ +

Default value is ‘default’. +

+
+
latm
+

Output LATM/LOAS encapsulated data if set to 1, disabled if set to 0. +

+

Default value is 0. +

+
+
header_period
+

Set StreamMuxConfig and PCE repetition period (in frames) for sending +in-band configuration buffers within LATM/LOAS transport layer. +

+

Must be a 16-bits non-negative integer. +

+

Default value is 0. +

+
+
vbr
+

Set VBR mode, from 1 to 5. 1 is lowest quality (though still pretty +good) and 5 is highest quality. A value of 0 will disable VBR, and CBR +(Constant Bit Rate) is enabled. +

+

Currently only the ‘aac_low’ profile supports VBR encoding. +

+

VBR modes 1-5 correspond to roughly the following average bit rates: +

+
+
1
+

32 kbps/channel +

+
2
+

40 kbps/channel +

+
3
+

48-56 kbps/channel +

+
4
+

64 kbps/channel +

+
5
+

about 80-96 kbps/channel +

+
+ +

Default value is 0. +

+
+ + +

8.4.2 Examples

+ +
    +
  • +Use ffmpeg to convert an audio file to VBR AAC in an M4A (MP4) +container: +
     
    ffmpeg -i input.wav -codec:a libfdk_aac -vbr 3 output.m4a
    +
    + +
  • +Use ffmpeg to convert an audio file to CBR 64k kbps AAC, using the +High-Efficiency AAC profile: +
     
    ffmpeg -i input.wav -c:a libfdk_aac -profile:a aac_he -b:a 64k output.m4a
    +
    +
+ +

+

+

8.5 libmp3lame

+ +

LAME (Lame Ain’t an MP3 Encoder) MP3 encoder wrapper. +

+

Requires the presence of the libmp3lame headers and library during +configuration. You need to explicitly configure the build with +--enable-libmp3lame. +

+

See libshine for a fixed-point MP3 encoder, although with a +lower quality. +

+ +

8.5.1 Options

+ +

The following options are supported by the libmp3lame wrapper. The +lame-equivalent of the options are listed in parentheses. +

+
+
b (-b)
+

Set bitrate expressed in bits/s for CBR or ABR. LAME bitrate is +expressed in kilobits/s. +

+
+
q (-V)
+

Set constant quality setting for VBR. This option is valid only +using the ffmpeg command-line tool. For library interface +users, use ‘global_quality’. +

+
+
compression_level (-q)
+

Set algorithm quality. Valid arguments are integers in the 0-9 range, +with 0 meaning highest quality but slowest, and 9 meaning fastest +while producing the worst quality. +

+
+
reservoir
+

Enable use of bit reservoir when set to 1. Default value is 1. LAME +has this enabled by default, but can be overridden by use +‘--nores’ option. +

+
+
joint_stereo (-m j)
+

Enable the encoder to use (on a frame by frame basis) either L/R +stereo or mid/side stereo. Default value is 1. +

+
+
abr (--abr)
+

Enable the encoder to use ABR when set to 1. The lame +‘--abr’ sets the target bitrate, while this options only +tells FFmpeg to use ABR still relies on ‘b’ to set bitrate. +

+
+
+ + +

8.6 libopencore-amrnb

+ +

OpenCORE Adaptive Multi-Rate Narrowband encoder. +

+

Requires the presence of the libopencore-amrnb headers and library during +configuration. You need to explicitly configure the build with +--enable-libopencore-amrnb --enable-version3. +

+

This is a mono-only encoder. Officially it only supports 8000Hz sample rate, +but you can override it by setting ‘strict’ to ‘unofficial’ or +lower. +

+ +

8.6.1 Options

+ +
+
b
+

Set bitrate in bits per second. Only the following bitrates are supported, +otherwise libavcodec will round to the nearest valid bitrate. +

+
+
4750
+
5150
+
5900
+
6700
+
7400
+
7950
+
10200
+
12200
+
+ +
+
dtx
+

Allow discontinuous transmission (generate comfort noise) when set to 1. The +default value is 0 (disabled). +

+
+
+ +

+

+

8.7 libshine

+ +

Shine Fixed-Point MP3 encoder wrapper. +

+

Shine is a fixed-point MP3 encoder. It has a far better performance on +platforms without an FPU, e.g. armel CPUs, and some phones and tablets. +However, as it is more targeted on performance than quality, it is not on par +with LAME and other production-grade encoders quality-wise. Also, according to +the project’s homepage, this encoder may not be free of bugs as the code was +written a long time ago and the project was dead for at least 5 years. +

+

This encoder only supports stereo and mono input. This is also CBR-only. +

+

The original project (last updated in early 2007) is at +http://sourceforge.net/projects/libshine-fxp/. We only support the +updated fork by the Savonet/Liquidsoap project at https://github.com/savonet/shine. +

+

Requires the presence of the libshine headers and library during +configuration. You need to explicitly configure the build with +--enable-libshine. +

+

See also libmp3lame. +

+ +

8.7.1 Options

+ +

The following options are supported by the libshine wrapper. The +shineenc-equivalent of the options are listed in parentheses. +

+
+
b (-b)
+

Set bitrate expressed in bits/s for CBR. shineenc-b’ option +is expressed in kilobits/s. +

+
+
+ + +

8.8 libtwolame

+ +

TwoLAME MP2 encoder wrapper. +

+

Requires the presence of the libtwolame headers and library during +configuration. You need to explicitly configure the build with +--enable-libtwolame. +

+ +

8.8.1 Options

+ +

The following options are supported by the libtwolame wrapper. The +twolame-equivalent options follow the FFmpeg ones and are in +parentheses. +

+
+
b (-b)
+

Set bitrate expressed in bits/s for CBR. twolameb’ +option is expressed in kilobits/s. Default value is 128k. +

+
+
q (-V)
+

Set quality for experimental VBR support. Maximum value range is +from -50 to 50, useful range is from -10 to 10. The higher the +value, the better the quality. This option is valid only using the +ffmpeg command-line tool. For library interface users, +use ‘global_quality’. +

+
+
mode (--mode)
+

Set the mode of the resulting audio. Possible values: +

+
+
auto
+

Choose mode automatically based on the input. This is the default. +

+
stereo
+

Stereo +

+
joint_stereo
+

Joint stereo +

+
dual_channel
+

Dual channel +

+
mono
+

Mono +

+
+ +
+
psymodel (--psyc-mode)
+

Set psychoacoustic model to use in encoding. The argument must be +an integer between -1 and 4, inclusive. The higher the value, the +better the quality. The default value is 3. +

+
+
energy_levels (--energy)
+

Enable energy levels extensions when set to 1. The default value is +0 (disabled). +

+
+
error_protection (--protect)
+

Enable CRC error protection when set to 1. The default value is 0 +(disabled). +

+
+
copyright (--copyright)
+

Set MPEG audio copyright flag when set to 1. The default value is 0 +(disabled). +

+
+
original (--original)
+

Set MPEG audio original flag when set to 1. The default value is 0 +(disabled). +

+
+
+ +

+

+

8.9 libvo-aacenc

+ +

VisualOn AAC encoder. +

+

Requires the presence of the libvo-aacenc headers and library during +configuration. You need to explicitly configure the build with +--enable-libvo-aacenc --enable-version3. +

+

This encoder is considered to be worse than the +native experimental FFmpeg AAC encoder, according to +multiple sources. +

+ +

8.9.1 Options

+ +

The VisualOn AAC encoder only support encoding AAC-LC and up to 2 +channels. It is also CBR-only. +

+
+
b
+

Set bit rate in bits/s. +

+
+
+ + +

8.10 libvo-amrwbenc

+ +

VisualOn Adaptive Multi-Rate Wideband encoder. +

+

Requires the presence of the libvo-amrwbenc headers and library during +configuration. You need to explicitly configure the build with +--enable-libvo-amrwbenc --enable-version3. +

+

This is a mono-only encoder. Officially it only supports 16000Hz sample +rate, but you can override it by setting ‘strict’ to +‘unofficial’ or lower. +

+ +

8.10.1 Options

+ +
+
b
+

Set bitrate in bits/s. Only the following bitrates are supported, otherwise +libavcodec will round to the nearest valid bitrate. +

+
+
6600
+
8850
+
12650
+
14250
+
15850
+
18250
+
19850
+
23050
+
23850
+
+ +
+
dtx
+

Allow discontinuous transmission (generate comfort noise) when set to 1. The +default value is 0 (disabled). +

+
+
+ + +

8.11 libopus

+ +

libopus Opus Interactive Audio Codec encoder wrapper. +

+

Requires the presence of the libopus headers and library during +configuration. You need to explicitly configure the build with +--enable-libopus. +

+ +

8.11.1 Option Mapping

+ +

Most libopus options are modeled after the opusenc utility from +opus-tools. The following is an option mapping chart describing options +supported by the libopus wrapper, and their opusenc-equivalent +in parentheses. +

+
+
b (bitrate)
+

Set the bit rate in bits/s. FFmpeg’s ‘b’ option is +expressed in bits/s, while opusenc’s ‘bitrate’ in +kilobits/s. +

+
+
vbr (vbr, hard-cbr, and cvbr)
+

Set VBR mode. The FFmpeg ‘vbr’ option has the following +valid arguments, with the their opusenc equivalent options +in parentheses: +

+
+
off (hard-cbr)
+

Use constant bit rate encoding. +

+
+
on (vbr)
+

Use variable bit rate encoding (the default). +

+
+
constrained (cvbr)
+

Use constrained variable bit rate encoding. +

+
+ +
+
compression_level (comp)
+

Set encoding algorithm complexity. Valid options are integers in +the 0-10 range. 0 gives the fastest encodes but lower quality, while 10 +gives the highest quality but slowest encoding. The default is 10. +

+
+
frame_duration (framesize)
+

Set maximum frame size, or duration of a frame in milliseconds. The +argument must be exactly the following: 2.5, 5, 10, 20, 40, 60. Smaller +frame sizes achieve lower latency but less quality at a given bitrate. +Sizes greater than 20ms are only interesting at fairly low bitrates. +The default is 20ms. +

+
+
packet_loss (expect-loss)
+

Set expected packet loss percentage. The default is 0. +

+
+
application (N.A.)
+

Set intended application type. Valid options are listed below: +

+
+
voip
+

Favor improved speech intelligibility. +

+
audio
+

Favor faithfulness to the input (the default). +

+
lowdelay
+

Restrict to only the lowest delay modes. +

+
+ +
+
cutoff (N.A.)
+

Set cutoff bandwidth in Hz. The argument must be exactly one of the +following: 4000, 6000, 8000, 12000, or 20000, corresponding to +narrowband, mediumband, wideband, super wideband, and fullband +respectively. The default is 0 (cutoff disabled). +

+
+
+ + +

8.12 libvorbis

+ +

libvorbis encoder wrapper. +

+

Requires the presence of the libvorbisenc headers and library during +configuration. You need to explicitly configure the build with +--enable-libvorbis. +

+ +

8.12.1 Options

+ +

The following options are supported by the libvorbis wrapper. The +oggenc-equivalent of the options are listed in parentheses. +

+

To get a more accurate and extensive documentation of the libvorbis +options, consult the libvorbisenc’s and oggenc’s documentations. +See http://xiph.org/vorbis/, +http://wiki.xiph.org/Vorbis-tools, and oggenc(1). +

+
+
b (-b)
+

Set bitrate expressed in bits/s for ABR. oggenc-b’ is +expressed in kilobits/s. +

+
+
q (-q)
+

Set constant quality setting for VBR. The value should be a float +number in the range of -1.0 to 10.0. The higher the value, the better +the quality. The default value is ‘3.0’. +

+

This option is valid only using the ffmpeg command-line tool. +For library interface users, use ‘global_quality’. +

+
+
cutoff (--advanced-encode-option lowpass_frequency=N)
+

Set cutoff bandwidth in Hz, a value of 0 disables cutoff. oggenc’s +related option is expressed in kHz. The default value is ‘0’ (cutoff +disabled). +

+
+
minrate (-m)
+

Set minimum bitrate expressed in bits/s. oggenc-m’ is +expressed in kilobits/s. +

+
+
maxrate (-M)
+

Set maximum bitrate expressed in bits/s. oggenc-M’ is +expressed in kilobits/s. This only has effect on ABR mode. +

+
+
iblock (--advanced-encode-option impulse_noisetune=N)
+

Set noise floor bias for impulse blocks. The value is a float number from +-15.0 to 0.0. A negative bias instructs the encoder to pay special attention +to the crispness of transients in the encoded audio. The tradeoff for better +transient response is a higher bitrate. +

+
+
+ +

+

+

8.13 libwavpack

+ +

A wrapper providing WavPack encoding through libwavpack. +

+

Only lossless mode using 32-bit integer samples is supported currently. +

+

Requires the presence of the libwavpack headers and library during +configuration. You need to explicitly configure the build with +--enable-libwavpack. +

+

Note that a libavcodec-native encoder for the WavPack codec exists so users can +encode audios with this codec without using this encoder. See wavpackenc. +

+ +

8.13.1 Options

+ +

wavpack command line utility’s corresponding options are listed in +parentheses, if any. +

+
+
frame_size (--blocksize)
+

Default is 32768. +

+
+
compression_level
+

Set speed vs. compression tradeoff. Acceptable arguments are listed below: +

+
+
0 (-f)
+

Fast mode. +

+
+
1
+

Normal (default) settings. +

+
+
2 (-h)
+

High quality. +

+
+
3 (-hh)
+

Very high quality. +

+
+
4-8 (-hh -xEXTRAPROC)
+

Same as ‘3’, but with extra processing enabled. +

+

4’ is the same as ‘-x2’ and ‘8’ is the same as ‘-x6’. +

+
+
+
+
+ +

+

+

8.14 wavpack

+ +

WavPack lossless audio encoder. +

+

This is a libavcodec-native WavPack encoder. There is also an encoder based on +libwavpack, but there is virtually no reason to use that encoder. +

+

See also libwavpack. +

+ +

8.14.1 Options

+ +

The equivalent options for wavpack command line utility are listed in +parentheses. +

+ +

8.14.1.1 Shared options

+ +

The following shared options are effective for this encoder. Only special notes +about this particular encoder will be documented here. For the general meaning +of the options, see the Codec Options chapter. +

+
+
frame_size (--blocksize)
+

For this encoder, the range for this option is between 128 and 131072. Default +is automatically decided based on sample rate and number of channel. +

+

For the complete formula of calculating default, see +‘libavcodec/wavpackenc.c’. +

+
+
compression_level (-f, -h, -hh, and -x)
+

This option’s syntax is consistent with libwavpack’s. +

+
+ + +

8.14.1.2 Private options

+ +
+
joint_stereo (-j)
+

Set whether to enable joint stereo. Valid values are: +

+
+
on (1)
+

Force mid/side audio encoding. +

+
off (0)
+

Force left/right audio encoding. +

+
auto
+

Let the encoder decide automatically. +

+
+ +
+
optimize_mono
+

Set whether to enable optimization for mono. This option is only effective for +non-mono streams. Available values: +

+
+
on
+

enabled +

+
off
+

disabled +

+
+ +
+
+ + + +

9. Video Encoders

+ +

A description of some of the currently available video encoders +follows. +

+ +

9.1 libtheora

+ +

libtheora Theora encoder wrapper. +

+

Requires the presence of the libtheora headers and library during +configuration. You need to explicitly configure the build with +--enable-libtheora. +

+

For more information about the libtheora project see +http://www.theora.org/. +

+ +

9.1.1 Options

+ +

The following global options are mapped to internal libtheora options +which affect the quality and the bitrate of the encoded stream. +

+
+
b
+

Set the video bitrate in bit/s for CBR (Constant Bit Rate) mode. In +case VBR (Variable Bit Rate) mode is enabled this option is ignored. +

+
+
flags
+

Used to enable constant quality mode (VBR) encoding through the +‘qscale’ flag, and to enable the pass1 and pass2 +modes. +

+
+
g
+

Set the GOP size. +

+
+
global_quality
+

Set the global quality as an integer in lambda units. +

+

Only relevant when VBR mode is enabled with flags +qscale. The +value is converted to QP units by dividing it by FF_QP2LAMBDA, +clipped in the [0 - 10] range, and then multiplied by 6.3 to get a +value in the native libtheora range [0-63]. A higher value corresponds +to a higher quality. +

+
+
q
+

Enable VBR mode when set to a non-negative value, and set constant +quality value as a double floating point value in QP units. +

+

The value is clipped in the [0-10] range, and then multiplied by 6.3 +to get a value in the native libtheora range [0-63]. +

+

This option is valid only using the ffmpeg command-line +tool. For library interface users, use ‘global_quality’. +

+
+ + +

9.1.2 Examples

+ +
    +
  • +Set maximum constant quality (VBR) encoding with ffmpeg: +
     
    ffmpeg -i INPUT -codec:v libtheora -q:v 10 OUTPUT.ogg
    +
    + +
  • +Use ffmpeg to convert a CBR 1000 kbps Theora video stream: +
     
    ffmpeg -i INPUT -codec:v libtheora -b:v 1000k OUTPUT.ogg
    +
    +
+ + +

9.2 libvpx

+ +

VP8 format supported through libvpx. +

+

Requires the presence of the libvpx headers and library during configuration. +You need to explicitly configure the build with --enable-libvpx. +

+ +

9.2.1 Options

+ +

Mapping from FFmpeg to libvpx options with conversion notes in parentheses. +

+
+
threads
+

g_threads +

+
+
profile
+

g_profile +

+
+
vb
+

rc_target_bitrate +

+
+
g
+

kf_max_dist +

+
+
keyint_min
+

kf_min_dist +

+
+
qmin
+

rc_min_quantizer +

+
+
qmax
+

rc_max_quantizer +

+
+
bufsize, vb
+

rc_buf_sz +(bufsize * 1000 / vb) +

+

rc_buf_optimal_sz +(bufsize * 1000 / vb * 5 / 6) +

+
+
rc_init_occupancy, vb
+

rc_buf_initial_sz +(rc_init_occupancy * 1000 / vb) +

+
+
rc_buffer_aggressivity
+

rc_undershoot_pct +

+
+
skip_threshold
+

rc_dropframe_thresh +

+
+
qcomp
+

rc_2pass_vbr_bias_pct +

+
+
maxrate, vb
+

rc_2pass_vbr_maxsection_pct +(maxrate * 100 / vb) +

+
+
minrate, vb
+

rc_2pass_vbr_minsection_pct +(minrate * 100 / vb) +

+
+
minrate, maxrate, vb
+

VPX_CBR +(minrate == maxrate == vb) +

+
+
crf
+

VPX_CQ, VP8E_SET_CQ_LEVEL +

+
+
quality
+
+
best
+

VPX_DL_BEST_QUALITY +

+
good
+

VPX_DL_GOOD_QUALITY +

+
realtime
+

VPX_DL_REALTIME +

+
+ +
+
speed
+

VP8E_SET_CPUUSED +

+
+
nr
+

VP8E_SET_NOISE_SENSITIVITY +

+
+
mb_threshold
+

VP8E_SET_STATIC_THRESHOLD +

+
+
slices
+

VP8E_SET_TOKEN_PARTITIONS +

+
+
max-intra-rate
+

VP8E_SET_MAX_INTRA_BITRATE_PCT +

+
+
force_key_frames
+

VPX_EFLAG_FORCE_KF +

+
+
Alternate reference frame related
+
+
vp8flags altref
+

VP8E_SET_ENABLEAUTOALTREF +

+
arnr_max_frames
+

VP8E_SET_ARNR_MAXFRAMES +

+
arnr_type
+

VP8E_SET_ARNR_TYPE +

+
arnr_strength
+

VP8E_SET_ARNR_STRENGTH +

+
rc_lookahead
+

g_lag_in_frames +

+
+ +
+
vp8flags error_resilient
+

g_error_resilient +

+
+
+ +

For more information about libvpx see: +http://www.webmproject.org/ +

+ + +

9.3 libwebp

+ +

libwebp WebP Image encoder wrapper +

+

libwebp is Google’s official encoder for WebP images. It can encode in either +lossy or lossless mode. Lossy images are essentially a wrapper around a VP8 +frame. Lossless images are a separate codec developed by Google. +

+ +

9.3.1 Pixel Format

+ +

Currently, libwebp only supports YUV420 for lossy and RGB for lossless due +to limitations of the format and libwebp. Alpha is supported for either mode. +Because of API limitations, if RGB is passed in when encoding lossy or YUV is +passed in for encoding lossless, the pixel format will automatically be +converted using functions from libwebp. This is not ideal and is done only for +convenience. +

+ +

9.3.2 Options

+ +
+
-lossless boolean
+

Enables/Disables use of lossless mode. Default is 0. +

+
+
-compression_level integer
+

For lossy, this is a quality/speed tradeoff. Higher values give better quality +for a given size at the cost of increased encoding time. For lossless, this is +a size/speed tradeoff. Higher values give smaller size at the cost of increased +encoding time. More specifically, it controls the number of extra algorithms +and compression tools used, and varies the combination of these tools. This +maps to the method option in libwebp. The valid range is 0 to 6. +Default is 4. +

+
+
-qscale float
+

For lossy encoding, this controls image quality, 0 to 100. For lossless +encoding, this controls the effort and time spent at compressing more. The +default value is 75. Note that for usage via libavcodec, this option is called +global_quality and must be multiplied by FF_QP2LAMBDA. +

+
+
-preset type
+

Configuration preset. This does some automatic settings based on the general +type of the image. +

+
none
+

Do not use a preset. +

+
default
+

Use the encoder default. +

+
picture
+

Digital picture, like portrait, inner shot +

+
photo
+

Outdoor photograph, with natural lighting +

+
drawing
+

Hand or line drawing, with high-contrast details +

+
icon
+

Small-sized colorful images +

+
text
+

Text-like +

+
+ +
+
+ + +

9.4 libx264, libx264rgb

+ +

x264 H.264/MPEG-4 AVC encoder wrapper. +

+

This encoder requires the presence of the libx264 headers and library +during configuration. You need to explicitly configure the build with +--enable-libx264. +

+

libx264 supports an impressive number of features, including 8x8 and +4x4 adaptive spatial transform, adaptive B-frame placement, CAVLC/CABAC +entropy coding, interlacing (MBAFF), lossless mode, psy optimizations +for detail retention (adaptive quantization, psy-RD, psy-trellis). +

+

Many libx264 encoder options are mapped to FFmpeg global codec +options, while unique encoder options are provided through private +options. Additionally the ‘x264opts’ and ‘x264-params’ +private options allows one to pass a list of key=value tuples as accepted +by the libx264 x264_param_parse function. +

+

The x264 project website is at +http://www.videolan.org/developers/x264.html. +

+

The libx264rgb encoder is the same as libx264, except it accepts packed RGB +pixel formats as input instead of YUV. +

+ +

9.4.1 Supported Pixel Formats

+ +

x264 supports 8- to 10-bit color spaces. The exact bit depth is controlled at +x264’s configure time. FFmpeg only supports one bit depth in one particular +build. In other words, it is not possible to build one FFmpeg with multiple +versions of x264 with different bit depths. +

+ +

9.4.2 Options

+ +

The following options are supported by the libx264 wrapper. The +x264-equivalent options or values are listed in parentheses +for easy migration. +

+

To reduce the duplication of documentation, only the private options +and some others requiring special attention are documented here. For +the documentation of the undocumented generic options, see +the Codec Options chapter. +

+

To get a more accurate and extensive documentation of the libx264 +options, invoke the command x264 --full-help or consult +the libx264 documentation. +

+
+
b (bitrate)
+

Set bitrate in bits/s. Note that FFmpeg’s ‘b’ option is +expressed in bits/s, while x264’s ‘bitrate’ is in +kilobits/s. +

+
+
bf (bframes)
+
g (keyint)
+
qmin (qpmin)
+

Minimum quantizer scale. +

+
+
qmax (qpmax)
+

Maximum quantizer scale. +

+
+
qdiff (qpstep)
+

Maximum difference between quantizer scales. +

+
+
qblur (qblur)
+

Quantizer curve blur +

+
+
qcomp (qcomp)
+

Quantizer curve compression factor +

+
+
refs (ref)
+

Number of reference frames each P-frame can use. The range is from 0-16. +

+
+
sc_threshold (scenecut)
+

Sets the threshold for the scene change detection. +

+
+
trellis (trellis)
+

Performs Trellis quantization to increase efficiency. Enabled by default. +

+
+
nr (nr)
+
me_range (merange)
+

Maximum range of the motion search in pixels. +

+
+
me_method (me)
+

Set motion estimation method. Possible values in the decreasing order +of speed: +

+
+
dia (dia)
+
epzs (dia)
+

Diamond search with radius 1 (fastest). ‘epzs’ is an alias for +‘dia’. +

+
hex (hex)
+

Hexagonal search with radius 2. +

+
umh (umh)
+

Uneven multi-hexagon search. +

+
esa (esa)
+

Exhaustive search. +

+
tesa (tesa)
+

Hadamard exhaustive search (slowest). +

+
+ +
+
subq (subme)
+

Sub-pixel motion estimation method. +

+
+
b_strategy (b-adapt)
+

Adaptive B-frame placement decision algorithm. Use only on first-pass. +

+
+
keyint_min (min-keyint)
+

Minimum GOP size. +

+
+
coder
+

Set entropy encoder. Possible values: +

+
+
ac
+

Enable CABAC. +

+
+
vlc
+

Enable CAVLC and disable CABAC. It generates the same effect as +x264’s ‘--no-cabac’ option. +

+
+ +
+
cmp
+

Set full pixel motion estimation comparation algorithm. Possible values: +

+
+
chroma
+

Enable chroma in motion estimation. +

+
+
sad
+

Ignore chroma in motion estimation. It generates the same effect as +x264’s ‘--no-chroma-me’ option. +

+
+ +
+
threads (threads)
+

Number of encoding threads. +

+
+
thread_type
+

Set multithreading technique. Possible values: +

+
+
slice
+

Slice-based multithreading. It generates the same effect as +x264’s ‘--sliced-threads’ option. +

+
frame
+

Frame-based multithreading. +

+
+ +
+
flags
+

Set encoding flags. It can be used to disable closed GOP and enable +open GOP by setting it to -cgop. The result is similar to +the behavior of x264’s ‘--open-gop’ option. +

+
+
rc_init_occupancy (vbv-init)
+
preset (preset)
+

Set the encoding preset. +

+
+
tune (tune)
+

Set tuning of the encoding params. +

+
+
profile (profile)
+

Set profile restrictions. +

+
+
fastfirstpass
+

Enable fast settings when encoding first pass, when set to 1. When set +to 0, it has the same effect of x264’s +‘--slow-firstpass’ option. +

+
+
crf (crf)
+

Set the quality for constant quality mode. +

+
+
crf_max (crf-max)
+

In CRF mode, prevents VBV from lowering quality beyond this point. +

+
+
qp (qp)
+

Set constant quantization rate control method parameter. +

+
+
aq-mode (aq-mode)
+

Set AQ method. Possible values: +

+
+
none (0)
+

Disabled. +

+
+
variance (1)
+

Variance AQ (complexity mask). +

+
+
autovariance (2)
+

Auto-variance AQ (experimental). +

+
+ +
+
aq-strength (aq-strength)
+

Set AQ strength, reduce blocking and blurring in flat and textured areas. +

+
+
psy
+

Use psychovisual optimizations when set to 1. When set to 0, it has the +same effect as x264’s ‘--no-psy’ option. +

+
+
psy-rd (psy-rd)
+

Set strength of psychovisual optimization, in +psy-rd:psy-trellis format. +

+
+
rc-lookahead (rc-lookahead)
+

Set number of frames to look ahead for frametype and ratecontrol. +

+
+
weightb
+

Enable weighted prediction for B-frames when set to 1. When set to 0, +it has the same effect as x264’s ‘--no-weightb’ option. +

+
+
weightp (weightp)
+

Set weighted prediction method for P-frames. Possible values: +

+
+
none (0)
+

Disabled +

+
simple (1)
+

Enable only weighted refs +

+
smart (2)
+

Enable both weighted refs and duplicates +

+
+ +
+
ssim (ssim)
+

Enable calculation and printing SSIM stats after the encoding. +

+
+
intra-refresh (intra-refresh)
+

Enable the use of Periodic Intra Refresh instead of IDR frames when set +to 1. +

+
+
bluray-compat (bluray-compat)
+

Configure the encoder to be compatible with the bluray standard. +It is a shorthand for setting "bluray-compat=1 force-cfr=1". +

+
+
b-bias (b-bias)
+

Set the influence on how often B-frames are used. +

+
+
b-pyramid (b-pyramid)
+

Set method for keeping of some B-frames as references. Possible values: +

+
+
none (none)
+

Disabled. +

+
strict (strict)
+

Strictly hierarchical pyramid. +

+
normal (normal)
+

Non-strict (not Blu-ray compatible). +

+
+ +
+
mixed-refs
+

Enable the use of one reference per partition, as opposed to one +reference per macroblock when set to 1. When set to 0, it has the +same effect as x264’s ‘--no-mixed-refs’ option. +

+
+
8x8dct
+

Enable adaptive spatial transform (high profile 8x8 transform) +when set to 1. When set to 0, it has the same effect as +x264’s ‘--no-8x8dct’ option. +

+
+
fast-pskip
+

Enable early SKIP detection on P-frames when set to 1. When set +to 0, it has the same effect as x264’s +‘--no-fast-pskip’ option. +

+
+
aud (aud)
+

Enable use of access unit delimiters when set to 1. +

+
+
mbtree
+

Enable use macroblock tree ratecontrol when set to 1. When set +to 0, it has the same effect as x264’s +‘--no-mbtree’ option. +

+
+
deblock (deblock)
+

Set loop filter parameters, in alpha:beta form. +

+
+
cplxblur (cplxblur)
+

Set fluctuations reduction in QP (before curve compression). +

+
+
partitions (partitions)
+

Set partitions to consider as a comma-separated list of. Possible +values in the list: +

+
+
p8x8
+

8x8 P-frame partition. +

+
p4x4
+

4x4 P-frame partition. +

+
b8x8
+

4x4 B-frame partition. +

+
i8x8
+

8x8 I-frame partition. +

+
i4x4
+

4x4 I-frame partition. +(Enabling ‘p4x4’ requires ‘p8x8’ to be enabled. Enabling +‘i8x8’ requires adaptive spatial transform (‘8x8dct’ +option) to be enabled.) +

+
none (none)
+

Do not consider any partitions. +

+
all (all)
+

Consider every partition. +

+
+ +
+
direct-pred (direct)
+

Set direct MV prediction mode. Possible values: +

+
+
none (none)
+

Disable MV prediction. +

+
spatial (spatial)
+

Enable spatial predicting. +

+
temporal (temporal)
+

Enable temporal predicting. +

+
auto (auto)
+

Automatically decided. +

+
+ +
+
slice-max-size (slice-max-size)
+

Set the limit of the size of each slice in bytes. If not specified +but RTP payload size (‘ps’) is specified, that is used. +

+
+
stats (stats)
+

Set the file name for multi-pass stats. +

+
+
nal-hrd (nal-hrd)
+

Set signal HRD information (requires ‘vbv-bufsize’ to be set). +Possible values: +

+
+
none (none)
+

Disable HRD information signaling. +

+
vbr (vbr)
+

Variable bit rate. +

+
cbr (cbr)
+

Constant bit rate (not allowed in MP4 container). +

+
+ +
+
x264opts (N.A.)
+

Set any x264 option, see x264 --fullhelp for a list. +

+

Argument is a list of key=value couples separated by +":". In filter and psy-rd options that use ":" as a separator +themselves, use "," instead. They accept it as well since long ago but this +is kept undocumented for some reason. +

+

For example to specify libx264 encoding options with ffmpeg: +

 
ffmpeg -i foo.mpg -vcodec libx264 -x264opts keyint=123:min-keyint=20 -an out.mkv
+
+ +
+
x264-params (N.A.)
+

Override the x264 configuration using a :-separated list of key=value +parameters. +

+

This option is functionally the same as the ‘x264opts’, but is +duplicated for compatibility with the Libav fork. +

+

For example to specify libx264 encoding options with ffmpeg: +

 
ffmpeg -i INPUT -c:v libx264 -x264-params level=30:bframes=0:weightp=0:\
+cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:\
+no-fast-pskip=1:subq=6:8x8dct=0:trellis=0 OUTPUT
+
+
+
+ +

Encoding ffpresets for common usages are provided so they can be used with the +general presets system (e.g. passing the ‘pre’ option). +

+ +

9.5 libxvid

+ +

Xvid MPEG-4 Part 2 encoder wrapper. +

+

This encoder requires the presence of the libxvidcore headers and library +during configuration. You need to explicitly configure the build with +--enable-libxvid --enable-gpl. +

+

The native mpeg4 encoder supports the MPEG-4 Part 2 format, so +users can encode to this format without this library. +

+ +

9.5.1 Options

+ +

The following options are supported by the libxvid wrapper. Some of +the following options are listed but are not documented, and +correspond to shared codec options. See the Codec Options chapter for their documentation. The other shared options +which are not listed have no effect for the libxvid encoder. +

+
+
b
+
g
+
qmin
+
qmax
+
mpeg_quant
+
threads
+
bf
+
b_qfactor
+
b_qoffset
+
flags
+

Set specific encoding flags. Possible values: +

+
+
mv4
+

Use four motion vector by macroblock. +

+
+
aic
+

Enable high quality AC prediction. +

+
+
gray
+

Only encode grayscale. +

+
+
gmc
+

Enable the use of global motion compensation (GMC). +

+
+
qpel
+

Enable quarter-pixel motion compensation. +

+
+
cgop
+

Enable closed GOP. +

+
+
global_header
+

Place global headers in extradata instead of every keyframe. +

+
+
+ +
+
trellis
+
me_method
+

Set motion estimation method. Possible values in decreasing order of +speed and increasing order of quality: +

+
+
zero
+

Use no motion estimation (default). +

+
+
phods
+
x1
+
log
+

Enable advanced diamond zonal search for 16x16 blocks and half-pixel +refinement for 16x16 blocks. ‘x1’ and ‘log’ are aliases for +‘phods’. +

+
+
epzs
+

Enable all of the things described above, plus advanced diamond zonal +search for 8x8 blocks, half-pixel refinement for 8x8 blocks, and motion +estimation on chroma planes. +

+
+
full
+

Enable all of the things described above, plus extended 16x16 and 8x8 +blocks search. +

+
+ +
+
mbd
+

Set macroblock decision algorithm. Possible values in the increasing +order of quality: +

+
+
simple
+

Use macroblock comparing function algorithm (default). +

+
+
bits
+

Enable rate distortion-based half pixel and quarter pixel refinement for +16x16 blocks. +

+
+
rd
+

Enable all of the things described above, plus rate distortion-based +half pixel and quarter pixel refinement for 8x8 blocks, and rate +distortion-based search using square pattern. +

+
+ +
+
lumi_aq
+

Enable lumi masking adaptive quantization when set to 1. Default is 0 +(disabled). +

+
+
variance_aq
+

Enable variance adaptive quantization when set to 1. Default is 0 +(disabled). +

+

When combined with ‘lumi_aq’, the resulting quality will not +be better than any of the two specified individually. In other +words, the resulting quality will be the worse one of the two +effects. +

+
+
ssim
+

Set structural similarity (SSIM) displaying method. Possible values: +

+
+
off
+

Disable displaying of SSIM information. +

+
+
avg
+

Output average SSIM at the end of encoding to stdout. The format of +showing the average SSIM is: +

+
 
Average SSIM: %f
+
+ +

For users who are not familiar with C, %f means a float number, or +a decimal (e.g. 0.939232). +

+
+
frame
+

Output both per-frame SSIM data during encoding and average SSIM at +the end of encoding to stdout. The format of per-frame information +is: +

+
 
       SSIM: avg: %1.3f min: %1.3f max: %1.3f
+
+ +

For users who are not familiar with C, %1.3f means a float number +rounded to 3 digits after the dot (e.g. 0.932). +

+
+
+ +
+
ssim_acc
+

Set SSIM accuracy. Valid options are integers within the range of +0-4, while 0 gives the most accurate result and 4 computes the +fastest. +

+
+
+ + +

9.6 png

+ +

PNG image encoder. +

+ +

9.6.1 Private options

+ +
+
dpi integer
+

Set physical density of pixels, in dots per inch, unset by default +

+
dpm integer
+

Set physical density of pixels, in dots per meter, unset by default +

+
+ + +

9.7 ProRes

+ +

Apple ProRes encoder. +

+

FFmpeg contains 2 ProRes encoders, the prores-aw and prores-ks encoder. +The used encoder can be chosen with the -vcodec option. +

+ +

9.7.1 Private Options for prores-ks

+ +
+
profile integer
+

Select the ProRes profile to encode +

+
proxy
+
lt
+
standard
+
hq
+
4444
+
+ +
+
quant_mat integer
+

Select quantization matrix. +

+
auto
+
default
+
proxy
+
lt
+
standard
+
hq
+
+

If set to auto, the matrix matching the profile will be picked. +If not set, the matrix providing the highest quality, default, will be +picked. +

+
+
bits_per_mb integer
+

How many bits to allot for coding one macroblock. Different profiles use +between 200 and 2400 bits per macroblock, the maximum is 8000. +

+
+
mbs_per_slice integer
+

Number of macroblocks in each slice (1-8); the default value (8) +should be good in almost all situations. +

+
+
vendor string
+

Override the 4-byte vendor ID. +A custom vendor ID like apl0 would claim the stream was produced by +the Apple encoder. +

+
+
alpha_bits integer
+

Specify number of bits for alpha component. +Possible values are 0, 8 and 16. +Use 0 to disable alpha plane coding. +

+
+
+ + +

9.7.2 Speed considerations

+ +

In the default mode of operation the encoder has to honor frame constraints +(i.e. not produc frames with size bigger than requested) while still making +output picture as good as possible. +A frame containing a lot of small details is harder to compress and the encoder +would spend more time searching for appropriate quantizers for each slice. +

+

Setting a higher ‘bits_per_mb’ limit will improve the speed. +

+

For the fastest encoding speed set the ‘qscale’ parameter (4 is the +recommended value) and do not set a size constraint. +

+ + +

10. See Also

+ +

ffmpeg, ffplay, ffprobe, ffserver, +libavcodec +

+ + +

11. Authors

+ +

The FFmpeg developers. +

+

For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +git log in the FFmpeg source directory, or browsing the +online repository at http://source.ffmpeg.org. +

+

Maintainers for the specific components are listed in the file +‘MAINTAINERS’ in the source code tree. +

+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/ffmpeg-devices.html b/3-Postprocessing/ffmpeg/doc/ffmpeg-devices.html new file mode 100644 index 0000000..9e44032 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/ffmpeg-devices.html @@ -0,0 +1,1585 @@ + + + + + +FFmpeg documentation : FFmpeg Devices + + + + + + + + + + +
+
+ + +

FFmpeg Devices Documentation

+ + +

Table of Contents

+ + + +

1. Description

+ +

This document describes the input and output devices provided by the +libavdevice library. +

+ + +

2. Device Options

+ +

The libavdevice library provides the same interface as +libavformat. Namely, an input device is considered like a demuxer, and +an output device like a muxer, and the interface and generic device +options are the same provided by libavformat (see the ffmpeg-formats +manual). +

+

In addition each input or output device may support so-called private +options, which are specific for that component. +

+

Options may be set by specifying -option value in the +FFmpeg tools, or by setting the value explicitly in the device +AVFormatContext options or using the ‘libavutil/opt.h’ API +for programmatic use. +

+ + +

3. Input Devices

+ +

Input devices are configured elements in FFmpeg which allow to access +the data coming from a multimedia device attached to your system. +

+

When you configure your FFmpeg build, all the supported input devices +are enabled by default. You can list all available ones using the +configure option "–list-indevs". +

+

You can disable all the input devices using the configure option +"–disable-indevs", and selectively enable an input device using the +option "–enable-indev=INDEV", or you can disable a particular +input device using the option "–disable-indev=INDEV". +

+

The option "-formats" of the ff* tools will display the list of +supported input devices (amongst the demuxers). +

+

A description of the currently available input devices follows. +

+ +

3.1 alsa

+ +

ALSA (Advanced Linux Sound Architecture) input device. +

+

To enable this input device during configuration you need libasound +installed on your system. +

+

This device allows capturing from an ALSA device. The name of the +device to capture has to be an ALSA card identifier. +

+

An ALSA identifier has the syntax: +

 
hw:CARD[,DEV[,SUBDEV]]
+
+ +

where the DEV and SUBDEV components are optional. +

+

The three arguments (in order: CARD,DEV,SUBDEV) +specify card number or identifier, device number and subdevice number +(-1 means any). +

+

To see the list of cards currently recognized by your system check the +files ‘/proc/asound/cards’ and ‘/proc/asound/devices’. +

+

For example to capture with ffmpeg from an ALSA device with +card id 0, you may run the command: +

 
ffmpeg -f alsa -i hw:0 alsaout.wav
+
+ +

For more information see: +http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html +

+ +

3.2 avfoundation

+ +

AVFoundation input device. +

+

AVFoundation is the currently recommended framework by Apple for streamgrabbing on OSX >= 10.7 as well as on iOS. +The older QTKit framework has been marked deprecated since OSX version 10.7. +

+

The filename passed as input is parsed to contain either a device name or index. +The device index can also be given by using -video_device_index. +A given device index will override any given device name. +If the desired device consists of numbers only, use -video_device_index to identify it. +The default device will be chosen if an empty string or the device name "default" is given. +The available devices can be enumerated by using -list_devices. +

+
 
ffmpeg -f avfoundation -i "0" out.mpg
+
+ +
 
ffmpeg -f avfoundation -video_device_index 0 -i "" out.mpg
+
+ +
 
ffmpeg -f avfoundation -i "default" out.mpg
+
+ +
 
ffmpeg -f avfoundation -list_devices true -i ""
+
+ + +

3.3 bktr

+ +

BSD video input device. +

+ +

3.4 dshow

+ +

Windows DirectShow input device. +

+

DirectShow support is enabled when FFmpeg is built with the mingw-w64 project. +Currently only audio and video devices are supported. +

+

Multiple devices may be opened as separate inputs, but they may also be +opened on the same input, which should improve synchronism between them. +

+

The input name should be in the format: +

+
 
TYPE=NAME[:TYPE=NAME]
+
+ +

where TYPE can be either audio or video, +and NAME is the device’s name. +

+ +

3.4.1 Options

+ +

If no options are specified, the device’s defaults are used. +If the device does not support the requested options, it will +fail to open. +

+
+
video_size
+

Set the video size in the captured video. +

+
+
framerate
+

Set the frame rate in the captured video. +

+
+
sample_rate
+

Set the sample rate (in Hz) of the captured audio. +

+
+
sample_size
+

Set the sample size (in bits) of the captured audio. +

+
+
channels
+

Set the number of channels in the captured audio. +

+
+
list_devices
+

If set to ‘true’, print a list of devices and exit. +

+
+
list_options
+

If set to ‘true’, print a list of selected device’s options +and exit. +

+
+
video_device_number
+

Set video device number for devices with same name (starts at 0, +defaults to 0). +

+
+
audio_device_number
+

Set audio device number for devices with same name (starts at 0, +defaults to 0). +

+
+
pixel_format
+

Select pixel format to be used by DirectShow. This may only be set when +the video codec is not set or set to rawvideo. +

+
+
audio_buffer_size
+

Set audio device buffer size in milliseconds (which can directly +impact latency, depending on the device). +Defaults to using the audio device’s +default buffer size (typically some multiple of 500ms). +Setting this value too low can degrade performance. +See also +http://msdn.microsoft.com/en-us/library/windows/desktop/dd377582(v=vs.85).aspx +

+
+
+ + +

3.4.2 Examples

+ +
    +
  • +Print the list of DirectShow supported devices and exit: +
     
    $ ffmpeg -list_devices true -f dshow -i dummy
    +
    + +
  • +Open video device Camera: +
     
    $ ffmpeg -f dshow -i video="Camera"
    +
    + +
  • +Open second video device with name Camera: +
     
    $ ffmpeg -f dshow -video_device_number 1 -i video="Camera"
    +
    + +
  • +Open video device Camera and audio device Microphone: +
     
    $ ffmpeg -f dshow -i video="Camera":audio="Microphone"
    +
    + +
  • +Print the list of supported options in selected device and exit: +
     
    $ ffmpeg -list_options true -f dshow -i video="Camera"
    +
    + +
+ + +

3.5 dv1394

+ +

Linux DV 1394 input device. +

+ +

3.6 fbdev

+ +

Linux framebuffer input device. +

+

The Linux framebuffer is a graphic hardware-independent abstraction +layer to show graphics on a computer monitor, typically on the +console. It is accessed through a file device node, usually +‘/dev/fb0’. +

+

For more detailed information read the file +Documentation/fb/framebuffer.txt included in the Linux source tree. +

+

To record from the framebuffer device ‘/dev/fb0’ with +ffmpeg: +

 
ffmpeg -f fbdev -r 10 -i /dev/fb0 out.avi
+
+ +

You can take a single screenshot image with the command: +

 
ffmpeg -f fbdev -frames:v 1 -r 1 -i /dev/fb0 screenshot.jpeg
+
+ +

See also http://linux-fbdev.sourceforge.net/, and fbset(1). +

+ +

3.7 gdigrab

+ +

Win32 GDI-based screen capture device. +

+

This device allows you to capture a region of the display on Windows. +

+

There are two options for the input filename: +

 
desktop
+
+

or +

 
title=window_title
+
+ +

The first option will capture the entire desktop, or a fixed region of the +desktop. The second option will instead capture the contents of a single +window, regardless of its position on the screen. +

+

For example, to grab the entire desktop using ffmpeg: +

 
ffmpeg -f gdigrab -framerate 6 -i desktop out.mpg
+
+ +

Grab a 640x480 region at position 10,20: +

 
ffmpeg -f gdigrab -framerate 6 -offset_x 10 -offset_y 20 -video_size vga -i desktop out.mpg
+
+ +

Grab the contents of the window named "Calculator" +

 
ffmpeg -f gdigrab -framerate 6 -i title=Calculator out.mpg
+
+ + +

3.7.1 Options

+ +
+
draw_mouse
+

Specify whether to draw the mouse pointer. Use the value 0 to +not draw the pointer. Default value is 1. +

+
+
framerate
+

Set the grabbing frame rate. Default value is ntsc, +corresponding to a frame rate of 30000/1001. +

+
+
show_region
+

Show grabbed region on screen. +

+

If show_region is specified with 1, then the grabbing +region will be indicated on screen. With this option, it is easy to +know what is being grabbed if only a portion of the screen is grabbed. +

+

Note that show_region is incompatible with grabbing the contents +of a single window. +

+

For example: +

 
ffmpeg -f gdigrab -show_region 1 -framerate 6 -video_size cif -offset_x 10 -offset_y 20 -i desktop out.mpg
+
+ +
+
video_size
+

Set the video frame size. The default is to capture the full screen if ‘desktop’ is selected, or the full window size if ‘title=window_title’ is selected. +

+
+
offset_x
+

When capturing a region with video_size, set the distance from the left edge of the screen or desktop. +

+

Note that the offset calculation is from the top left corner of the primary monitor on Windows. If you have a monitor positioned to the left of your primary monitor, you will need to use a negative offset_x value to move the region to that monitor. +

+
+
offset_y
+

When capturing a region with video_size, set the distance from the top edge of the screen or desktop. +

+

Note that the offset calculation is from the top left corner of the primary monitor on Windows. If you have a monitor positioned above your primary monitor, you will need to use a negative offset_y value to move the region to that monitor. +

+
+
+ + +

3.8 iec61883

+ +

FireWire DV/HDV input device using libiec61883. +

+

To enable this input device, you need libiec61883, libraw1394 and +libavc1394 installed on your system. Use the configure option +--enable-libiec61883 to compile with the device enabled. +

+

The iec61883 capture device supports capturing from a video device +connected via IEEE1394 (FireWire), using libiec61883 and the new Linux +FireWire stack (juju). This is the default DV/HDV input method in Linux +Kernel 2.6.37 and later, since the old FireWire stack was removed. +

+

Specify the FireWire port to be used as input file, or "auto" +to choose the first port connected. +

+ +

3.8.1 Options

+ +
+
dvtype
+

Override autodetection of DV/HDV. This should only be used if auto +detection does not work, or if usage of a different device type +should be prohibited. Treating a DV device as HDV (or vice versa) will +not work and result in undefined behavior. +The values ‘auto’, ‘dv’ and ‘hdv’ are supported. +

+
+
dvbuffer
+

Set maxiumum size of buffer for incoming data, in frames. For DV, this +is an exact value. For HDV, it is not frame exact, since HDV does +not have a fixed frame size. +

+
+
dvguid
+

Select the capture device by specifying it’s GUID. Capturing will only +be performed from the specified device and fails if no device with the +given GUID is found. This is useful to select the input if multiple +devices are connected at the same time. +Look at /sys/bus/firewire/devices to find out the GUIDs. +

+
+
+ + +

3.8.2 Examples

+ +
    +
  • +Grab and show the input of a FireWire DV/HDV device. +
     
    ffplay -f iec61883 -i auto
    +
    + +
  • +Grab and record the input of a FireWire DV/HDV device, +using a packet buffer of 100000 packets if the source is HDV. +
     
    ffmpeg -f iec61883 -i auto -hdvbuffer 100000 out.mpg
    +
    + +
+ + +

3.9 jack

+ +

JACK input device. +

+

To enable this input device during configuration you need libjack +installed on your system. +

+

A JACK input device creates one or more JACK writable clients, one for +each audio channel, with name client_name:input_N, where +client_name is the name provided by the application, and N +is a number which identifies the channel. +Each writable client will send the acquired data to the FFmpeg input +device. +

+

Once you have created one or more JACK readable clients, you need to +connect them to one or more JACK writable clients. +

+

To connect or disconnect JACK clients you can use the jack_connect +and jack_disconnect programs, or do it through a graphical interface, +for example with qjackctl. +

+

To list the JACK clients and their properties you can invoke the command +jack_lsp. +

+

Follows an example which shows how to capture a JACK readable client +with ffmpeg. +

 
# Create a JACK writable client with name "ffmpeg".
+$ ffmpeg -f jack -i ffmpeg -y out.wav
+
+# Start the sample jack_metro readable client.
+$ jack_metro -b 120 -d 0.2 -f 4000
+
+# List the current JACK clients.
+$ jack_lsp -c
+system:capture_1
+system:capture_2
+system:playback_1
+system:playback_2
+ffmpeg:input_1
+metro:120_bpm
+
+# Connect metro to the ffmpeg writable client.
+$ jack_connect metro:120_bpm ffmpeg:input_1
+
+ +

For more information read: +http://jackaudio.org/ +

+ +

3.10 lavfi

+ +

Libavfilter input virtual device. +

+

This input device reads data from the open output pads of a libavfilter +filtergraph. +

+

For each filtergraph open output, the input device will create a +corresponding stream which is mapped to the generated output. Currently +only video data is supported. The filtergraph is specified through the +option ‘graph’. +

+ +

3.10.1 Options

+ +
+
graph
+

Specify the filtergraph to use as input. Each video open output must be +labelled by a unique string of the form "outN", where N is a +number starting from 0 corresponding to the mapped input stream +generated by the device. +The first unlabelled output is automatically assigned to the "out0" +label, but all the others need to be specified explicitly. +

+

If not specified defaults to the filename specified for the input +device. +

+
+
graph_file
+

Set the filename of the filtergraph to be read and sent to the other +filters. Syntax of the filtergraph is the same as the one specified by +the option graph. +

+
+
+ + +

3.10.2 Examples

+ +
    +
  • +Create a color video stream and play it back with ffplay: +
     
    ffplay -f lavfi -graph "color=c=pink [out0]" dummy
    +
    + +
  • +As the previous example, but use filename for specifying the graph +description, and omit the "out0" label: +
     
    ffplay -f lavfi color=c=pink
    +
    + +
  • +Create three different video test filtered sources and play them: +
     
    ffplay -f lavfi -graph "testsrc [out0]; testsrc,hflip [out1]; testsrc,negate [out2]" test3
    +
    + +
  • +Read an audio stream from a file using the amovie source and play it +back with ffplay: +
     
    ffplay -f lavfi "amovie=test.wav"
    +
    + +
  • +Read an audio stream and a video stream and play it back with +ffplay: +
     
    ffplay -f lavfi "movie=test.avi[out0];amovie=test.wav[out1]"
    +
    + +
+ + +

3.11 libdc1394

+ +

IIDC1394 input device, based on libdc1394 and libraw1394. +

+ +

3.12 openal

+ +

The OpenAL input device provides audio capture on all systems with a +working OpenAL 1.1 implementation. +

+

To enable this input device during configuration, you need OpenAL +headers and libraries installed on your system, and need to configure +FFmpeg with --enable-openal. +

+

OpenAL headers and libraries should be provided as part of your OpenAL +implementation, or as an additional download (an SDK). Depending on your +installation you may need to specify additional flags via the +--extra-cflags and --extra-ldflags for allowing the build +system to locate the OpenAL headers and libraries. +

+

An incomplete list of OpenAL implementations follows: +

+
+
Creative
+

The official Windows implementation, providing hardware acceleration +with supported devices and software fallback. +See http://openal.org/. +

+
OpenAL Soft
+

Portable, open source (LGPL) software implementation. Includes +backends for the most common sound APIs on the Windows, Linux, +Solaris, and BSD operating systems. +See http://kcat.strangesoft.net/openal.html. +

+
Apple
+

OpenAL is part of Core Audio, the official Mac OS X Audio interface. +See http://developer.apple.com/technologies/mac/audio-and-video.html +

+
+ +

This device allows one to capture from an audio input device handled +through OpenAL. +

+

You need to specify the name of the device to capture in the provided +filename. If the empty string is provided, the device will +automatically select the default device. You can get the list of the +supported devices by using the option list_devices. +

+ +

3.12.1 Options

+ +
+
channels
+

Set the number of channels in the captured audio. Only the values +‘1’ (monaural) and ‘2’ (stereo) are currently supported. +Defaults to ‘2’. +

+
+
sample_size
+

Set the sample size (in bits) of the captured audio. Only the values +‘8’ and ‘16’ are currently supported. Defaults to +‘16’. +

+
+
sample_rate
+

Set the sample rate (in Hz) of the captured audio. +Defaults to ‘44.1k’. +

+
+
list_devices
+

If set to ‘true’, print a list of devices and exit. +Defaults to ‘false’. +

+
+
+ + +

3.12.2 Examples

+ +

Print the list of OpenAL supported devices and exit: +

 
$ ffmpeg -list_devices true -f openal -i dummy out.ogg
+
+ +

Capture from the OpenAL device ‘DR-BT101 via PulseAudio’: +

 
$ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out.ogg
+
+ +

Capture from the default device (note the empty string ” as filename): +

 
$ ffmpeg -f openal -i '' out.ogg
+
+ +

Capture from two devices simultaneously, writing to two different files, +within the same ffmpeg command: +

 
$ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out1.ogg -f openal -i 'ALSA Default' out2.ogg
+
+

Note: not all OpenAL implementations support multiple simultaneous capture - +try the latest OpenAL Soft if the above does not work. +

+ +

3.13 oss

+ +

Open Sound System input device. +

+

The filename to provide to the input device is the device node +representing the OSS input device, and is usually set to +‘/dev/dsp’. +

+

For example to grab from ‘/dev/dsp’ using ffmpeg use the +command: +

 
ffmpeg -f oss -i /dev/dsp /tmp/oss.wav
+
+ +

For more information about OSS see: +http://manuals.opensound.com/usersguide/dsp.html +

+ +

3.14 pulse

+ +

PulseAudio input device. +

+

To enable this output device you need to configure FFmpeg with --enable-libpulse. +

+

The filename to provide to the input device is a source device or the +string "default" +

+

To list the PulseAudio source devices and their properties you can invoke +the command pactl list sources. +

+

More information about PulseAudio can be found on http://www.pulseaudio.org. +

+ +

3.14.1 Options

+
+
server
+

Connect to a specific PulseAudio server, specified by an IP address. +Default server is used when not provided. +

+
+
name
+

Specify the application name PulseAudio will use when showing active clients, +by default it is the LIBAVFORMAT_IDENT string. +

+
+
stream_name
+

Specify the stream name PulseAudio will use when showing active streams, +by default it is "record". +

+
+
sample_rate
+

Specify the samplerate in Hz, by default 48kHz is used. +

+
+
channels
+

Specify the channels in use, by default 2 (stereo) is set. +

+
+
frame_size
+

Specify the number of bytes per frame, by default it is set to 1024. +

+
+
fragment_size
+

Specify the minimal buffering fragment in PulseAudio, it will affect the +audio latency. By default it is unset. +

+
+ + +

3.14.2 Examples

+

Record a stream from default device: +

 
ffmpeg -f pulse -i default /tmp/pulse.wav
+
+ + +

3.15 qtkit

+ +

QTKit input device. +

+

The filename passed as input is parsed to contain either a device name or index. +The device index can also be given by using -video_device_index. +A given device index will override any given device name. +If the desired device consists of numbers only, use -video_device_index to identify it. +The default device will be chosen if an empty string or the device name "default" is given. +The available devices can be enumerated by using -list_devices. +

+
 
ffmpeg -f qtkit -i "0" out.mpg
+
+ +
 
ffmpeg -f qtkit -video_device_index 0 -i "" out.mpg
+
+ +
 
ffmpeg -f qtkit -i "default" out.mpg
+
+ +
 
ffmpeg -f qtkit -list_devices true -i ""
+
+ + +

3.16 sndio

+ +

sndio input device. +

+

To enable this input device during configuration you need libsndio +installed on your system. +

+

The filename to provide to the input device is the device node +representing the sndio input device, and is usually set to +‘/dev/audio0’. +

+

For example to grab from ‘/dev/audio0’ using ffmpeg use the +command: +

 
ffmpeg -f sndio -i /dev/audio0 /tmp/oss.wav
+
+ + +

3.17 video4linux2, v4l2

+ +

Video4Linux2 input video device. +

+

"v4l2" can be used as alias for "video4linux2". +

+

If FFmpeg is built with v4l-utils support (by using the +--enable-libv4l2 configure option), it is possible to use it with the +-use_libv4l2 input device option. +

+

The name of the device to grab is a file device node, usually Linux +systems tend to automatically create such nodes when the device +(e.g. an USB webcam) is plugged into the system, and has a name of the +kind ‘/dev/videoN’, where N is a number associated to +the device. +

+

Video4Linux2 devices usually support a limited set of +widthxheight sizes and frame rates. You can check which are +supported using -list_formats all for Video4Linux2 devices. +Some devices, like TV cards, support one or more standards. It is possible +to list all the supported standards using -list_standards all. +

+

The time base for the timestamps is 1 microsecond. Depending on the kernel +version and configuration, the timestamps may be derived from the real time +clock (origin at the Unix Epoch) or the monotonic clock (origin usually at +boot time, unaffected by NTP or manual changes to the clock). The +‘-timestamps abs’ or ‘-ts abs’ option can be used to force +conversion into the real time clock. +

+

Some usage examples of the video4linux2 device with ffmpeg +and ffplay: +

    +
  • +Grab and show the input of a video4linux2 device: +
     
    ffplay -f video4linux2 -framerate 30 -video_size hd720 /dev/video0
    +
    + +
  • +Grab and record the input of a video4linux2 device, leave the +frame rate and size as previously set: +
     
    ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 out.mpeg
    +
    +
+ +

For more information about Video4Linux, check http://linuxtv.org/. +

+ +

3.17.1 Options

+ +
+
standard
+

Set the standard. Must be the name of a supported standard. To get a +list of the supported standards, use the ‘list_standards’ +option. +

+
+
channel
+

Set the input channel number. Default to -1, which means using the +previously selected channel. +

+
+
video_size
+

Set the video frame size. The argument must be a string in the form +WIDTHxHEIGHT or a valid size abbreviation. +

+
+
pixel_format
+

Select the pixel format (only valid for raw video input). +

+
+
input_format
+

Set the preferred pixel format (for raw video) or a codec name. +This option allows one to select the input format, when several are +available. +

+
+
framerate
+

Set the preferred video frame rate. +

+
+
list_formats
+

List available formats (supported pixel formats, codecs, and frame +sizes) and exit. +

+

Available values are: +

+
all
+

Show all available (compressed and non-compressed) formats. +

+
+
raw
+

Show only raw video (non-compressed) formats. +

+
+
compressed
+

Show only compressed formats. +

+
+ +
+
list_standards
+

List supported standards and exit. +

+

Available values are: +

+
all
+

Show all supported standards. +

+
+ +
+
timestamps, ts
+

Set type of timestamps for grabbed frames. +

+

Available values are: +

+
default
+

Use timestamps from the kernel. +

+
+
abs
+

Use absolute timestamps (wall clock). +

+
+
mono2abs
+

Force conversion from monotonic to absolute timestamps. +

+
+ +

Default value is default. +

+
+ + +

3.18 vfwcap

+ +

VfW (Video for Windows) capture input device. +

+

The filename passed as input is the capture driver number, ranging from +0 to 9. You may use "list" as filename to print a list of drivers. Any +other filename will be interpreted as device number 0. +

+ +

3.19 x11grab

+ +

X11 video input device. +

+

This device allows one to capture a region of an X11 display. +

+

The filename passed as input has the syntax: +

 
[hostname]:display_number.screen_number[+x_offset,y_offset]
+
+ +

hostname:display_number.screen_number specifies the +X11 display name of the screen to grab from. hostname can be +omitted, and defaults to "localhost". The environment variable +DISPLAY contains the default display name. +

+

x_offset and y_offset specify the offsets of the grabbed +area with respect to the top-left border of the X11 screen. They +default to 0. +

+

Check the X11 documentation (e.g. man X) for more detailed information. +

+

Use the dpyinfo program for getting basic information about the +properties of your X11 display (e.g. grep for "name" or "dimensions"). +

+

For example to grab from ‘:0.0’ using ffmpeg: +

 
ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0 out.mpg
+
+ +

Grab at position 10,20: +

 
ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
+
+ + +

3.19.1 Options

+ +
+
draw_mouse
+

Specify whether to draw the mouse pointer. A value of 0 specify +not to draw the pointer. Default value is 1. +

+
+
follow_mouse
+

Make the grabbed area follow the mouse. The argument can be +centered or a number of pixels PIXELS. +

+

When it is specified with "centered", the grabbing region follows the mouse +pointer and keeps the pointer at the center of region; otherwise, the region +follows only when the mouse pointer reaches within PIXELS (greater than +zero) to the edge of region. +

+

For example: +

 
ffmpeg -f x11grab -follow_mouse centered -framerate 25 -video_size cif -i :0.0 out.mpg
+
+ +

To follow only when the mouse pointer reaches within 100 pixels to edge: +

 
ffmpeg -f x11grab -follow_mouse 100 -framerate 25 -video_size cif -i :0.0 out.mpg
+
+ +
+
framerate
+

Set the grabbing frame rate. Default value is ntsc, +corresponding to a frame rate of 30000/1001. +

+
+
show_region
+

Show grabbed region on screen. +

+

If show_region is specified with 1, then the grabbing +region will be indicated on screen. With this option, it is easy to +know what is being grabbed if only a portion of the screen is grabbed. +

+

For example: +

 
ffmpeg -f x11grab -show_region 1 -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
+
+ +

With follow_mouse: +

 
ffmpeg -f x11grab -follow_mouse centered -show_region 1 -framerate 25 -video_size cif -i :0.0 out.mpg
+
+ +
+
video_size
+

Set the video frame size. Default value is vga. +

+
+ + +

4. Output Devices

+ +

Output devices are configured elements in FFmpeg that can write +multimedia data to an output device attached to your system. +

+

When you configure your FFmpeg build, all the supported output devices +are enabled by default. You can list all available ones using the +configure option "–list-outdevs". +

+

You can disable all the output devices using the configure option +"–disable-outdevs", and selectively enable an output device using the +option "–enable-outdev=OUTDEV", or you can disable a particular +input device using the option "–disable-outdev=OUTDEV". +

+

The option "-formats" of the ff* tools will display the list of +enabled output devices (amongst the muxers). +

+

A description of the currently available output devices follows. +

+ +

4.1 alsa

+ +

ALSA (Advanced Linux Sound Architecture) output device. +

+ +

4.1.1 Examples

+ +
    +
  • +Play a file on default ALSA device: +
     
    ffmpeg -i INPUT -f alsa default
    +
    + +
  • +Play a file on soundcard 1, audio device 7: +
     
    ffmpeg -i INPUT -f alsa hw:1,7
    +
    +
+ + +

4.2 caca

+ +

CACA output device. +

+

This output device allows one to show a video stream in CACA window. +Only one CACA window is allowed per application, so you can +have only one instance of this output device in an application. +

+

To enable this output device you need to configure FFmpeg with +--enable-libcaca. +libcaca is a graphics library that outputs text instead of pixels. +

+

For more information about libcaca, check: +http://caca.zoy.org/wiki/libcaca +

+ +

4.2.1 Options

+ +
+
window_title
+

Set the CACA window title, if not specified default to the filename +specified for the output device. +

+
+
window_size
+

Set the CACA window size, can be a string of the form +widthxheight or a video size abbreviation. +If not specified it defaults to the size of the input video. +

+
+
driver
+

Set display driver. +

+
+
algorithm
+

Set dithering algorithm. Dithering is necessary +because the picture being rendered has usually far more colours than +the available palette. +The accepted values are listed with -list_dither algorithms. +

+
+
antialias
+

Set antialias method. Antialiasing smoothens the rendered +image and avoids the commonly seen staircase effect. +The accepted values are listed with -list_dither antialiases. +

+
+
charset
+

Set which characters are going to be used when rendering text. +The accepted values are listed with -list_dither charsets. +

+
+
color
+

Set color to be used when rendering text. +The accepted values are listed with -list_dither colors. +

+
+
list_drivers
+

If set to ‘true’, print a list of available drivers and exit. +

+
+
list_dither
+

List available dither options related to the argument. +The argument must be one of algorithms, antialiases, +charsets, colors. +

+
+ + +

4.2.2 Examples

+ +
    +
  • +The following command shows the ffmpeg output is an +CACA window, forcing its size to 80x25: +
     
    ffmpeg -i INPUT -vcodec rawvideo -pix_fmt rgb24 -window_size 80x25 -f caca -
    +
    + +
  • +Show the list of available drivers and exit: +
     
    ffmpeg -i INPUT -pix_fmt rgb24 -f caca -list_drivers true -
    +
    + +
  • +Show the list of available dither colors and exit: +
     
    ffmpeg -i INPUT -pix_fmt rgb24 -f caca -list_dither colors -
    +
    +
+ + +

4.3 decklink

+ +

The decklink output device provides playback capabilities for Blackmagic +DeckLink devices. +

+

To enable this output device, you need the Blackmagic DeckLink SDK and you +need to configure with the appropriate --extra-cflags +and --extra-ldflags. +On Windows, you need to run the IDL files through widl. +

+

DeckLink is very picky about the formats it supports. Pixel format is always +uyvy422, framerate and video size must be determined for your device with +-list_formats 1. Audio sample rate is always 48 kHz. +

+ +

4.3.1 Options

+ +
+
list_devices
+

If set to ‘true’, print a list of devices and exit. +Defaults to ‘false’. +

+
+
list_formats
+

If set to ‘true’, print a list of supported formats and exit. +Defaults to ‘false’. +

+
+
preroll
+

Amount of time to preroll video in seconds. +Defaults to ‘0.5’. +

+
+
+ + +

4.3.2 Examples

+ +
    +
  • +List output devices: +
     
    ffmpeg -i test.avi -f decklink -list_devices 1 dummy
    +
    + +
  • +List supported formats: +
     
    ffmpeg -i test.avi -f decklink -list_formats 1 'DeckLink Mini Monitor'
    +
    + +
  • +Play video clip: +
     
    ffmpeg -i test.avi -f decklink -pix_fmt uyvy422 'DeckLink Mini Monitor'
    +
    + +
  • +Play video clip with non-standard framerate or video size: +
     
    ffmpeg -i test.avi -f decklink -pix_fmt uyvy422 -s 720x486 -r 24000/1001 'DeckLink Mini Monitor'
    +
    + +
+ + +

4.4 fbdev

+ +

Linux framebuffer output device. +

+

The Linux framebuffer is a graphic hardware-independent abstraction +layer to show graphics on a computer monitor, typically on the +console. It is accessed through a file device node, usually +‘/dev/fb0’. +

+

For more detailed information read the file +‘Documentation/fb/framebuffer.txt’ included in the Linux source tree. +

+ +

4.4.1 Options

+
+
xoffset
+
yoffset
+

Set x/y coordinate of top left corner. Default is 0. +

+
+ + +

4.4.2 Examples

+

Play a file on framebuffer device ‘/dev/fb0’. +Required pixel format depends on current framebuffer settings. +

 
ffmpeg -re -i INPUT -vcodec rawvideo -pix_fmt bgra -f fbdev /dev/fb0
+
+ +

See also http://linux-fbdev.sourceforge.net/, and fbset(1). +

+ +

4.5 opengl

+

OpenGL output device. +

+

To enable this output device you need to configure FFmpeg with --enable-opengl. +

+

This output device allows one to render to OpenGL context. +Context may be provided by application or default SDL window is created. +

+

When device renders to external context, application must implement handlers for following messages: +AV_CTL_MESSAGE_CREATE_WINDOW_BUFFER - create OpenGL context on current thread. +AV_CTL_MESSAGE_PREPARE_WINDOW_BUFFER - make OpenGL context current. +AV_CTL_MESSAGE_DISPLAY_WINDOW_BUFFER - swap buffers. +AV_CTL_MESSAGE_DESTROY_WINDOW_BUFFER - destroy OpenGL context. +Application is also required to inform a device about current resolution by sending AV_DEVICE_WINDOW_RESIZED message. +

+ +

4.5.1 Options

+
+
background
+

Set background color. Black is a default. +

+
no_window
+

Disables default SDL window when set to non-zero value. +Application must provide OpenGL context and both window_size_cb and window_swap_buffers_cb callbacks when set. +

+
window_title
+

Set the SDL window title, if not specified default to the filename specified for the output device. +Ignored when ‘no_window’ is set. +

+
+
+ + +

4.5.2 Examples

+

Play a file on SDL window using OpenGL rendering: +

 
ffmpeg  -i INPUT -f opengl "window title"
+
+ + +

4.6 oss

+ +

OSS (Open Sound System) output device. +

+ +

4.7 pulse

+ +

PulseAudio output device. +

+

To enable this output device you need to configure FFmpeg with --enable-libpulse. +

+

More information about PulseAudio can be found on http://www.pulseaudio.org +

+ +

4.7.1 Options

+
+
server
+

Connect to a specific PulseAudio server, specified by an IP address. +Default server is used when not provided. +

+
+
name
+

Specify the application name PulseAudio will use when showing active clients, +by default it is the LIBAVFORMAT_IDENT string. +

+
+
stream_name
+

Specify the stream name PulseAudio will use when showing active streams, +by default it is set to the specified output name. +

+
+
device
+

Specify the device to use. Default device is used when not provided. +List of output devices can be obtained with command pactl list sinks. +

+
+
buffer_size
+
buffer_duration
+

Control the size and duration of the PulseAudio buffer. A small buffer +gives more control, but requires more frequent updates. +

+

buffer_size’ specifies size in bytes while +‘buffer_duration’ specifies duration in milliseconds. +

+

When both options are provided then the highest value is used +(duration is recalculated to bytes using stream parameters). If they +are set to 0 (which is default), the device will use the default +PulseAudio duration value. By default PulseAudio set buffer duration +to around 2 seconds. +

+
+ + +

4.7.2 Examples

+

Play a file on default device on default server: +

 
ffmpeg  -i INPUT -f pulse "stream name"
+
+ + +

4.8 sdl

+ +

SDL (Simple DirectMedia Layer) output device. +

+

This output device allows one to show a video stream in an SDL +window. Only one SDL window is allowed per application, so you can +have only one instance of this output device in an application. +

+

To enable this output device you need libsdl installed on your system +when configuring your build. +

+

For more information about SDL, check: +http://www.libsdl.org/ +

+ +

4.8.1 Options

+ +
+
window_title
+

Set the SDL window title, if not specified default to the filename +specified for the output device. +

+
+
icon_title
+

Set the name of the iconified SDL window, if not specified it is set +to the same value of window_title. +

+
+
window_size
+

Set the SDL window size, can be a string of the form +widthxheight or a video size abbreviation. +If not specified it defaults to the size of the input video, +downscaled according to the aspect ratio. +

+
+
window_fullscreen
+

Set fullscreen mode when non-zero value is provided. +Default value is zero. +

+
+ + +

4.8.2 Interactive commands

+ +

The window created by the device can be controlled through the +following interactive commands. +

+
+
<q, ESC>
+

Quit the device immediately. +

+
+ + +

4.8.3 Examples

+ +

The following command shows the ffmpeg output is an +SDL window, forcing its size to the qcif format: +

 
ffmpeg -i INPUT -vcodec rawvideo -pix_fmt yuv420p -window_size qcif -f sdl "SDL output"
+
+ + +

4.9 sndio

+ +

sndio audio output device. +

+ +

4.10 xv

+ +

XV (XVideo) output device. +

+

This output device allows one to show a video stream in a X Window System +window. +

+ +

4.10.1 Options

+ +
+
display_name
+

Specify the hardware display name, which determines the display and +communications domain to be used. +

+

The display name or DISPLAY environment variable can be a string in +the format hostname[:number[.screen_number]]. +

+

hostname specifies the name of the host machine on which the +display is physically attached. number specifies the number of +the display server on that host machine. screen_number specifies +the screen to be used on that server. +

+

If unspecified, it defaults to the value of the DISPLAY environment +variable. +

+

For example, dual-headed:0.1 would specify screen 1 of display +0 on the machine named “dual-headed”. +

+

Check the X11 specification for more detailed information about the +display name format. +

+
+
window_id
+

When set to non-zero value then device doesn’t create new window, +but uses existing one with provided window_id. By default +this options is set to zero and device creates its own window. +

+
+
window_size
+

Set the created window size, can be a string of the form +widthxheight or a video size abbreviation. If not +specified it defaults to the size of the input video. +Ignored when window_id is set. +

+
+
window_x
+
window_y
+

Set the X and Y window offsets for the created window. They are both +set to 0 by default. The values may be ignored by the window manager. +Ignored when window_id is set. +

+
+
window_title
+

Set the window title, if not specified default to the filename +specified for the output device. Ignored when window_id is set. +

+
+ +

For more information about XVideo see http://www.x.org/. +

+ +

4.10.2 Examples

+ +
    +
  • +Decode, display and encode video input with ffmpeg at the +same time: +
     
    ffmpeg -i INPUT OUTPUT -f xv display
    +
    + +
  • +Decode and display the input video to multiple X11 windows: +
     
    ffmpeg -i INPUT -f xv normal -vf negate -f xv negated
    +
    +
+ + + +

5. See Also

+ +

ffmpeg, ffplay, ffprobe, ffserver, +libavdevice +

+ + +

6. Authors

+ +

The FFmpeg developers. +

+

For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +git log in the FFmpeg source directory, or browsing the +online repository at http://source.ffmpeg.org. +

+

Maintainers for the specific components are listed in the file +‘MAINTAINERS’ in the source code tree. +

+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/ffmpeg-filters.html b/3-Postprocessing/ffmpeg/doc/ffmpeg-filters.html new file mode 100644 index 0000000..5689fb8 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/ffmpeg-filters.html @@ -0,0 +1,11875 @@ + + + + + +FFmpeg documentation : FFmpeg Filters + + + + + + + + + + +
+
+ + +

FFmpeg Filters Documentation

+ + +

Table of Contents

+
+ + +
+ + +

1. Description

+ +

This document describes filters, sources, and sinks provided by the +libavfilter library. +

+ + +

2. Filtering Introduction

+ +

Filtering in FFmpeg is enabled through the libavfilter library. +

+

In libavfilter, a filter can have multiple inputs and multiple +outputs. +To illustrate the sorts of things that are possible, we consider the +following filtergraph. +

+
 
                [main]
+input --> split ---------------------> overlay --> output
+            |                             ^
+            |[tmp]                  [flip]|
+            +-----> crop --> vflip -------+
+
+ +

This filtergraph splits the input stream in two streams, then sends one +stream through the crop filter and the vflip filter, before merging it +back with the other stream by overlaying it on top. You can use the +following command to achieve this: +

+
 
ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT
+
+ +

The result will be that the top half of the video is mirrored +onto the bottom half of the output video. +

+

Filters in the same linear chain are separated by commas, and distinct +linear chains of filters are separated by semicolons. In our example, +crop,vflip are in one linear chain, split and +overlay are separately in another. The points where the linear +chains join are labelled by names enclosed in square brackets. In the +example, the split filter generates two outputs that are associated to +the labels [main] and [tmp]. +

+

The stream sent to the second output of split, labelled as +[tmp], is processed through the crop filter, which crops +away the lower half part of the video, and then vertically flipped. The +overlay filter takes in input the first unchanged output of the +split filter (which was labelled as [main]), and overlay on its +lower half the output generated by the crop,vflip filterchain. +

+

Some filters take in input a list of parameters: they are specified +after the filter name and an equal sign, and are separated from each other +by a colon. +

+

There exist so-called source filters that do not have an +audio/video input, and sink filters that will not have audio/video +output. +

+ + +

3. graph2dot

+ +

The ‘graph2dot’ program included in the FFmpeg ‘tools’ +directory can be used to parse a filtergraph description and issue a +corresponding textual representation in the dot language. +

+

Invoke the command: +

 
graph2dot -h
+
+ +

to see how to use ‘graph2dot’. +

+

You can then pass the dot description to the ‘dot’ program (from +the graphviz suite of programs) and obtain a graphical representation +of the filtergraph. +

+

For example the sequence of commands: +

 
echo GRAPH_DESCRIPTION | \
+tools/graph2dot -o graph.tmp && \
+dot -Tpng graph.tmp -o graph.png && \
+display graph.png
+
+ +

can be used to create and display an image representing the graph +described by the GRAPH_DESCRIPTION string. Note that this string must be +a complete self-contained graph, with its inputs and outputs explicitly defined. +For example if your command line is of the form: +

 
ffmpeg -i infile -vf scale=640:360 outfile
+
+

your GRAPH_DESCRIPTION string will need to be of the form: +

 
nullsrc,scale=640:360,nullsink
+
+

you may also need to set the nullsrc parameters and add a format +filter in order to simulate a specific input file. +

+ + +

4. Filtergraph description

+ +

A filtergraph is a directed graph of connected filters. It can contain +cycles, and there can be multiple links between a pair of +filters. Each link has one input pad on one side connecting it to one +filter from which it takes its input, and one output pad on the other +side connecting it to one filter accepting its output. +

+

Each filter in a filtergraph is an instance of a filter class +registered in the application, which defines the features and the +number of input and output pads of the filter. +

+

A filter with no input pads is called a "source", and a filter with no +output pads is called a "sink". +

+

+

+

4.1 Filtergraph syntax

+ +

A filtergraph has a textual representation, which is +recognized by the ‘-filter’/‘-vf’ and ‘-filter_complex’ +options in ffmpeg and ‘-vf’ in ffplay, and by the +avfilter_graph_parse()/avfilter_graph_parse2() functions defined in +‘libavfilter/avfilter.h’. +

+

A filterchain consists of a sequence of connected filters, each one +connected to the previous one in the sequence. A filterchain is +represented by a list of ","-separated filter descriptions. +

+

A filtergraph consists of a sequence of filterchains. A sequence of +filterchains is represented by a list of ";"-separated filterchain +descriptions. +

+

A filter is represented by a string of the form: +[in_link_1]...[in_link_N]filter_name=arguments[out_link_1]...[out_link_M] +

+

filter_name is the name of the filter class of which the +described filter is an instance of, and has to be the name of one of +the filter classes registered in the program. +The name of the filter class is optionally followed by a string +"=arguments". +

+

arguments is a string which contains the parameters used to +initialize the filter instance. It may have one of two forms: +

    +
  • +A ’:’-separated list of key=value pairs. + +
  • +A ’:’-separated list of value. In this case, the keys are assumed to be +the option names in the order they are declared. E.g. the fade filter +declares three options in this order – ‘type’, ‘start_frame’ and +‘nb_frames’. Then the parameter list in:0:30 means that the value +in is assigned to the option ‘type’, 0 to +‘start_frame’ and 30 to ‘nb_frames’. + +
  • +A ’:’-separated list of mixed direct value and long key=value +pairs. The direct value must precede the key=value pairs, and +follow the same constraints order of the previous point. The following +key=value pairs can be set in any preferred order. + +
+ +

If the option value itself is a list of items (e.g. the format filter +takes a list of pixel formats), the items in the list are usually separated by +’|’. +

+

The list of arguments can be quoted using the character "’" as initial +and ending mark, and the character ’\’ for escaping the characters +within the quoted text; otherwise the argument string is considered +terminated when the next special character (belonging to the set +"[]=;,") is encountered. +

+

The name and arguments of the filter are optionally preceded and +followed by a list of link labels. +A link label allows one to name a link and associate it to a filter output +or input pad. The preceding labels in_link_1 +... in_link_N, are associated to the filter input pads, +the following labels out_link_1 ... out_link_M, are +associated to the output pads. +

+

When two link labels with the same name are found in the +filtergraph, a link between the corresponding input and output pad is +created. +

+

If an output pad is not labelled, it is linked by default to the first +unlabelled input pad of the next filter in the filterchain. +For example in the filterchain +

 
nullsrc, split[L1], [L2]overlay, nullsink
+
+

the split filter instance has two output pads, and the overlay filter +instance two input pads. The first output pad of split is labelled +"L1", the first input pad of overlay is labelled "L2", and the second +output pad of split is linked to the second input pad of overlay, +which are both unlabelled. +

+

In a complete filterchain all the unlabelled filter input and output +pads must be connected. A filtergraph is considered valid if all the +filter input and output pads of all the filterchains are connected. +

+

Libavfilter will automatically insert scale filters where format +conversion is required. It is possible to specify swscale flags +for those automatically inserted scalers by prepending +sws_flags=flags; +to the filtergraph description. +

+

Here is a BNF description of the filtergraph syntax: +

 
NAME             ::= sequence of alphanumeric characters and '_'
+LINKLABEL        ::= "[" NAME "]"
+LINKLABELS       ::= LINKLABEL [LINKLABELS]
+FILTER_ARGUMENTS ::= sequence of chars (possibly quoted)
+FILTER           ::= [LINKLABELS] NAME ["=" FILTER_ARGUMENTS] [LINKLABELS]
+FILTERCHAIN      ::= FILTER [,FILTERCHAIN]
+FILTERGRAPH      ::= [sws_flags=flags;] FILTERCHAIN [;FILTERGRAPH]
+
+ + +

4.2 Notes on filtergraph escaping

+ +

Filtergraph description composition entails several levels of +escaping. See (ffmpeg-utils)quoting_and_escaping for more +information about the employed escaping procedure. +

+

A first level escaping affects the content of each filter option +value, which may contain the special character : used to +separate values, or one of the escaping characters \'. +

+

A second level escaping affects the whole filter description, which +may contain the escaping characters \' or the special +characters [],; used by the filtergraph description. +

+

Finally, when you specify a filtergraph on a shell commandline, you +need to perform a third level escaping for the shell special +characters contained within it. +

+

For example, consider the following string to be embedded in +the drawtext filter description ‘text’ value: +

 
this is a 'string': may contain one, or more, special characters
+
+ +

This string contains the ' special escaping character, and the +: special character, so it needs to be escaped in this way: +

 
text=this is a \'string\'\: may contain one, or more, special characters
+
+ +

A second level of escaping is required when embedding the filter +description in a filtergraph description, in order to escape all the +filtergraph special characters. Thus the example above becomes: +

 
drawtext=text=this is a \\\'string\\\'\\: may contain one\, or more\, special characters
+
+

(note that in addition to the \' escaping special characters, +also , needs to be escaped). +

+

Finally an additional level of escaping is needed when writing the +filtergraph description in a shell command, which depends on the +escaping rules of the adopted shell. For example, assuming that +\ is special and needs to be escaped with another \, the +previous string will finally result in: +

 
-vf "drawtext=text=this is a \\\\\\'string\\\\\\'\\\\: may contain one\\, or more\\, special characters"
+
+ + +

5. Timeline editing

+ +

Some filters support a generic ‘enable’ option. For the filters +supporting timeline editing, this option can be set to an expression which is +evaluated before sending a frame to the filter. If the evaluation is non-zero, +the filter will be enabled, otherwise the frame will be sent unchanged to the +next filter in the filtergraph. +

+

The expression accepts the following values: +

+
t
+

timestamp expressed in seconds, NAN if the input timestamp is unknown +

+
+
n
+

sequential number of the input frame, starting from 0 +

+
+
pos
+

the position in the file of the input frame, NAN if unknown +

+
+ +

Additionally, these filters support an ‘enable’ command that can be used +to re-define the expression. +

+

Like any other filtering option, the ‘enable’ option follows the same +rules. +

+

For example, to enable a blur filter (smartblur) from 10 seconds to 3 +minutes, and a curves filter starting at 3 seconds: +

 
smartblur = enable='between(t,10,3*60)',
+curves    = enable='gte(t,3)' : preset=cross_process
+
+ + + +

6. Audio Filters

+ +

When you configure your FFmpeg build, you can disable any of the +existing filters using --disable-filters. +The configure output will show the audio filters included in your +build. +

+

Below is a description of the currently available audio filters. +

+ +

6.1 aconvert

+ +

Convert the input audio format to the specified formats. +

+

This filter is deprecated. Use aformat instead. +

+

The filter accepts a string of the form: +"sample_format:channel_layout". +

+

sample_format specifies the sample format, and can be a string or the +corresponding numeric value defined in ‘libavutil/samplefmt.h’. Use ’p’ +suffix for a planar sample format. +

+

channel_layout specifies the channel layout, and can be a string +or the corresponding number value defined in ‘libavutil/channel_layout.h’. +

+

The special parameter "auto", signifies that the filter will +automatically select the output format depending on the output filter. +

+ +

6.1.1 Examples

+ +
    +
  • +Convert input to float, planar, stereo: +
     
    aconvert=fltp:stereo
    +
    + +
  • +Convert input to unsigned 8-bit, automatically select out channel layout: +
     
    aconvert=u8:auto
    +
    +
+ + +

6.2 adelay

+ +

Delay one or more audio channels. +

+

Samples in delayed channel are filled with silence. +

+

The filter accepts the following option: +

+
+
delays
+

Set list of delays in milliseconds for each channel separated by ’|’. +At least one delay greater than 0 should be provided. +Unused delays will be silently ignored. If number of given delays is +smaller than number of channels all remaining channels will not be delayed. +

+
+ + +

6.2.1 Examples

+ +
    +
  • +Delay first channel by 1.5 seconds, the third channel by 0.5 seconds and leave +the second channel (and any other channels that may be present) unchanged. +
     
    adelay=1500|0|500
    +
    +
+ + +

6.3 aecho

+ +

Apply echoing to the input audio. +

+

Echoes are reflected sound and can occur naturally amongst mountains +(and sometimes large buildings) when talking or shouting; digital echo +effects emulate this behaviour and are often used to help fill out the +sound of a single instrument or vocal. The time difference between the +original signal and the reflection is the delay, and the +loudness of the reflected signal is the decay. +Multiple echoes can have different delays and decays. +

+

A description of the accepted parameters follows. +

+
+
in_gain
+

Set input gain of reflected signal. Default is 0.6. +

+
+
out_gain
+

Set output gain of reflected signal. Default is 0.3. +

+
+
delays
+

Set list of time intervals in milliseconds between original signal and reflections +separated by ’|’. Allowed range for each delay is (0 - 90000.0]. +Default is 1000. +

+
+
decays
+

Set list of loudnesses of reflected signals separated by ’|’. +Allowed range for each decay is (0 - 1.0]. +Default is 0.5. +

+
+ + +

6.3.1 Examples

+ +
    +
  • +Make it sound as if there are twice as many instruments as are actually playing: +
     
    aecho=0.8:0.88:60:0.4
    +
    + +
  • +If delay is very short, then it sound like a (metallic) robot playing music: +
     
    aecho=0.8:0.88:6:0.4
    +
    + +
  • +A longer delay will sound like an open air concert in the mountains: +
     
    aecho=0.8:0.9:1000:0.3
    +
    + +
  • +Same as above but with one more mountain: +
     
    aecho=0.8:0.9:1000|1800:0.3|0.25
    +
    +
+ + +

6.4 aeval

+ +

Modify an audio signal according to the specified expressions. +

+

This filter accepts one or more expressions (one for each channel), +which are evaluated and used to modify a corresponding audio signal. +

+

It accepts the following parameters: +

+
+
exprs
+

Set the ’|’-separated expressions list for each separate channel. If +the number of input channels is greater than the number of +expressions, the last specified expression is used for the remaining +output channels. +

+
+
channel_layout, c
+

Set output channel layout. If not specified, the channel layout is +specified by the number of expressions. If set to ‘same’, it will +use by default the same input channel layout. +

+
+ +

Each expression in exprs can contain the following constants and functions: +

+
+
ch
+

channel number of the current expression +

+
+
n
+

number of the evaluated sample, starting from 0 +

+
+
s
+

sample rate +

+
+
t
+

time of the evaluated sample expressed in seconds +

+
+
nb_in_channels
+
nb_out_channels
+

input and output number of channels +

+
+
val(CH)
+

the value of input channel with number CH +

+
+ +

Note: this filter is slow. For faster processing you should use a +dedicated filter. +

+ +

6.4.1 Examples

+ +
    +
  • +Half volume: +
     
    aeval=val(ch)/2:c=same
    +
    + +
  • +Invert phase of the second channel: +
     
    eval=val(0)|-val(1)
    +
    +
+ + +

6.5 afade

+ +

Apply fade-in/out effect to input audio. +

+

A description of the accepted parameters follows. +

+
+
type, t
+

Specify the effect type, can be either in for fade-in, or +out for a fade-out effect. Default is in. +

+
+
start_sample, ss
+

Specify the number of the start sample for starting to apply the fade +effect. Default is 0. +

+
+
nb_samples, ns
+

Specify the number of samples for which the fade effect has to last. At +the end of the fade-in effect the output audio will have the same +volume as the input audio, at the end of the fade-out transition +the output audio will be silence. Default is 44100. +

+
+
start_time, st
+

Specify time for starting to apply the fade effect. Default is 0. +The accepted syntax is: +

 
[-]HH[:MM[:SS[.m...]]]
+[-]S+[.m...]
+
+

See also the function av_parse_time(). +If set this option is used instead of start_sample one. +

+
+
duration, d
+

Specify the duration for which the fade effect has to last. Default is 0. +The accepted syntax is: +

 
[-]HH[:MM[:SS[.m...]]]
+[-]S+[.m...]
+
+

See also the function av_parse_time(). +At the end of the fade-in effect the output audio will have the same +volume as the input audio, at the end of the fade-out transition +the output audio will be silence. +If set this option is used instead of nb_samples one. +

+
+
curve
+

Set curve for fade transition. +

+

It accepts the following values: +

+
tri
+

select triangular, linear slope (default) +

+
qsin
+

select quarter of sine wave +

+
hsin
+

select half of sine wave +

+
esin
+

select exponential sine wave +

+
log
+

select logarithmic +

+
par
+

select inverted parabola +

+
qua
+

select quadratic +

+
cub
+

select cubic +

+
squ
+

select square root +

+
cbr
+

select cubic root +

+
+
+
+ + +

6.5.1 Examples

+ +
    +
  • +Fade in first 15 seconds of audio: +
     
    afade=t=in:ss=0:d=15
    +
    + +
  • +Fade out last 25 seconds of a 900 seconds audio: +
     
    afade=t=out:st=875:d=25
    +
    +
+ +

+

+

6.6 aformat

+ +

Set output format constraints for the input audio. The framework will +negotiate the most appropriate format to minimize conversions. +

+

It accepts the following parameters: +

+
sample_fmts
+

A ’|’-separated list of requested sample formats. +

+
+
sample_rates
+

A ’|’-separated list of requested sample rates. +

+
+
channel_layouts
+

A ’|’-separated list of requested channel layouts. +

+

See (ffmpeg-utils)channel layout syntax +for the required syntax. +

+
+ +

If a parameter is omitted, all values are allowed. +

+

Force the output to either unsigned 8-bit or signed 16-bit stereo +

 
aformat=sample_fmts=u8|s16:channel_layouts=stereo
+
+ + +

6.7 allpass

+ +

Apply a two-pole all-pass filter with central frequency (in Hz) +frequency, and filter-width width. +An all-pass filter changes the audio’s frequency to phase relationship +without changing its frequency to amplitude relationship. +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set frequency in Hz. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +

+
+ + +

6.8 amerge

+ +

Merge two or more audio streams into a single multi-channel stream. +

+

The filter accepts the following options: +

+
+
inputs
+

Set the number of inputs. Default is 2. +

+
+
+ +

If the channel layouts of the inputs are disjoint, and therefore compatible, +the channel layout of the output will be set accordingly and the channels +will be reordered as necessary. If the channel layouts of the inputs are not +disjoint, the output will have all the channels of the first input then all +the channels of the second input, in that order, and the channel layout of +the output will be the default value corresponding to the total number of +channels. +

+

For example, if the first input is in 2.1 (FL+FR+LF) and the second input +is FC+BL+BR, then the output will be in 5.1, with the channels in the +following order: a1, a2, b1, a3, b2, b3 (a1 is the first channel of the +first input, b1 is the first channel of the second input). +

+

On the other hand, if both input are in stereo, the output channels will be +in the default order: a1, a2, b1, b2, and the channel layout will be +arbitrarily set to 4.0, which may or may not be the expected value. +

+

All inputs must have the same sample rate, and format. +

+

If inputs do not have the same duration, the output will stop with the +shortest. +

+ +

6.8.1 Examples

+ +
    +
  • +Merge two mono files into a stereo stream: +
     
    amovie=left.wav [l] ; amovie=right.mp3 [r] ; [l] [r] amerge
    +
    + +
  • +Multiple merges assuming 1 video stream and 6 audio streams in ‘input.mkv’: +
     
    ffmpeg -i input.mkv -filter_complex "[0:1][0:2][0:3][0:4][0:5][0:6] amerge=inputs=6" -c:a pcm_s16le output.mkv
    +
    +
+ + +

6.9 amix

+ +

Mixes multiple audio inputs into a single output. +

+

For example +

 
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT
+
+

will mix 3 input audio streams to a single output with the same duration as the +first input and a dropout transition time of 3 seconds. +

+

It accepts the following parameters: +

+
inputs
+

The number of inputs. If unspecified, it defaults to 2. +

+
+
duration
+

How to determine the end-of-stream. +

+
longest
+

The duration of the longest input. (default) +

+
+
shortest
+

The duration of the shortest input. +

+
+
first
+

The duration of the first input. +

+
+
+ +
+
dropout_transition
+

The transition time, in seconds, for volume renormalization when an input +stream ends. The default value is 2 seconds. +

+
+
+ + +

6.10 anull

+ +

Pass the audio source unchanged to the output. +

+ +

6.11 apad

+ +

Pad the end of a audio stream with silence, this can be used together with +-shortest to extend audio streams to the same length as the video stream. +

+ +

6.12 aphaser

+

Add a phasing effect to the input audio. +

+

A phaser filter creates series of peaks and troughs in the frequency spectrum. +The position of the peaks and troughs are modulated so that they vary over time, creating a sweeping effect. +

+

A description of the accepted parameters follows. +

+
+
in_gain
+

Set input gain. Default is 0.4. +

+
+
out_gain
+

Set output gain. Default is 0.74 +

+
+
delay
+

Set delay in milliseconds. Default is 3.0. +

+
+
decay
+

Set decay. Default is 0.4. +

+
+
speed
+

Set modulation speed in Hz. Default is 0.5. +

+
+
type
+

Set modulation type. Default is triangular. +

+

It accepts the following values: +

+
triangular, t
+
sinusoidal, s
+
+
+
+ +

+

+

6.13 aresample

+ +

Resample the input audio to the specified parameters, using the +libswresample library. If none are specified then the filter will +automatically convert between its input and output. +

+

This filter is also able to stretch/squeeze the audio data to make it match +the timestamps or to inject silence / cut out audio to make it match the +timestamps, do a combination of both or do neither. +

+

The filter accepts the syntax +[sample_rate:]resampler_options, where sample_rate +expresses a sample rate and resampler_options is a list of +key=value pairs, separated by ":". See the +ffmpeg-resampler manual for the complete list of supported options. +

+ +

6.13.1 Examples

+ +
    +
  • +Resample the input audio to 44100Hz: +
     
    aresample=44100
    +
    + +
  • +Stretch/squeeze samples to the given timestamps, with a maximum of 1000 +samples per second compensation: +
     
    aresample=async=1000
    +
    +
+ + +

6.14 asetnsamples

+ +

Set the number of samples per each output audio frame. +

+

The last output packet may contain a different number of samples, as +the filter will flush all the remaining samples when the input audio +signal its end. +

+

The filter accepts the following options: +

+
+
nb_out_samples, n
+

Set the number of frames per each output audio frame. The number is +intended as the number of samples per each channel. +Default value is 1024. +

+
+
pad, p
+

If set to 1, the filter will pad the last audio frame with zeroes, so +that the last frame will contain the same number of samples as the +previous ones. Default value is 1. +

+
+ +

For example, to set the number of per-frame samples to 1234 and +disable padding for the last frame, use: +

 
asetnsamples=n=1234:p=0
+
+ + +

6.15 asetrate

+ +

Set the sample rate without altering the PCM data. +This will result in a change of speed and pitch. +

+

The filter accepts the following options: +

+
+
sample_rate, r
+

Set the output sample rate. Default is 44100 Hz. +

+
+ + +

6.16 ashowinfo

+ +

Show a line containing various information for each input audio frame. +The input audio is not modified. +

+

The shown line contains a sequence of key/value pairs of the form +key:value. +

+

It accepts the following parameters: +

+
+
n
+

The (sequential) number of the input frame, starting from 0. +

+
+
pts
+

The presentation timestamp of the input frame, in time base units; the time base +depends on the filter input pad, and is usually 1/sample_rate. +

+
+
pts_time
+

The presentation timestamp of the input frame in seconds. +

+
+
pos
+

position of the frame in the input stream, -1 if this information in +unavailable and/or meaningless (for example in case of synthetic audio) +

+
+
fmt
+

The sample format. +

+
+
chlayout
+

The channel layout. +

+
+
rate
+

The sample rate for the audio frame. +

+
+
nb_samples
+

The number of samples (per channel) in the frame. +

+
+
checksum
+

The Adler-32 checksum (printed in hexadecimal) of the audio data. For planar +audio, the data is treated as if all the planes were concatenated. +

+
+
plane_checksums
+

A list of Adler-32 checksums for each data plane. +

+
+ + +

6.17 astats

+ +

Display time domain statistical information about the audio channels. +Statistics are calculated and displayed for each audio channel and, +where applicable, an overall figure is also given. +

+

It accepts the following option: +

+
length
+

Short window length in seconds, used for peak and trough RMS measurement. +Default is 0.05 (50 miliseconds). Allowed range is [0.1 - 10]. +

+
+ +

A description of each shown parameter follows: +

+
+
DC offset
+

Mean amplitude displacement from zero. +

+
+
Min level
+

Minimal sample level. +

+
+
Max level
+

Maximal sample level. +

+
+
Peak level dB
+
RMS level dB
+

Standard peak and RMS level measured in dBFS. +

+
+
RMS peak dB
+
RMS trough dB
+

Peak and trough values for RMS level measured over a short window. +

+
+
Crest factor
+

Standard ratio of peak to RMS level (note: not in dB). +

+
+
Flat factor
+

Flatness (i.e. consecutive samples with the same value) of the signal at its peak levels +(i.e. either Min level or Max level). +

+
+
Peak count
+

Number of occasions (not the number of samples) that the signal attained either +Min level or Max level. +

+
+ + +

6.18 astreamsync

+ +

Forward two audio streams and control the order the buffers are forwarded. +

+

The filter accepts the following options: +

+
+
expr, e
+

Set the expression deciding which stream should be +forwarded next: if the result is negative, the first stream is forwarded; if +the result is positive or zero, the second stream is forwarded. It can use +the following variables: +

+
+
b1 b2
+

number of buffers forwarded so far on each stream +

+
s1 s2
+

number of samples forwarded so far on each stream +

+
t1 t2
+

current timestamp of each stream +

+
+ +

The default value is t1-t2, which means to always forward the stream +that has a smaller timestamp. +

+
+ + +

6.18.1 Examples

+ +

Stress-test amerge by randomly sending buffers on the wrong +input, while avoiding too much of a desynchronization: +

 
amovie=file.ogg [a] ; amovie=file.mp3 [b] ;
+[a] [b] astreamsync=(2*random(1))-1+tanh(5*(t1-t2)) [a2] [b2] ;
+[a2] [b2] amerge
+
+ + +

6.19 asyncts

+ +

Synchronize audio data with timestamps by squeezing/stretching it and/or +dropping samples/adding silence when needed. +

+

This filter is not built by default, please use aresample to do squeezing/stretching. +

+

It accepts the following parameters: +

+
compensate
+

Enable stretching/squeezing the data to make it match the timestamps. Disabled +by default. When disabled, time gaps are covered with silence. +

+
+
min_delta
+

The minimum difference between timestamps and audio data (in seconds) to trigger +adding/dropping samples. The default value is 0.1. If you get an imperfect +sync with this filter, try setting this parameter to 0. +

+
+
max_comp
+

The maximum compensation in samples per second. Only relevant with compensate=1. +The default value is 500. +

+
+
first_pts
+

Assume that the first PTS should be this value. The time base is 1 / sample +rate. This allows for padding/trimming at the start of the stream. By default, +no assumption is made about the first frame’s expected PTS, so no padding or +trimming is done. For example, this could be set to 0 to pad the beginning with +silence if an audio stream starts after the video stream or to trim any samples +with a negative PTS due to encoder delay. +

+
+
+ + +

6.20 atempo

+ +

Adjust audio tempo. +

+

The filter accepts exactly one parameter, the audio tempo. If not +specified then the filter will assume nominal 1.0 tempo. Tempo must +be in the [0.5, 2.0] range. +

+ +

6.20.1 Examples

+ +
    +
  • +Slow down audio to 80% tempo: +
     
    atempo=0.8
    +
    + +
  • +To speed up audio to 125% tempo: +
     
    atempo=1.25
    +
    +
+ + +

6.21 atrim

+ +

Trim the input so that the output contains one continuous subpart of the input. +

+

It accepts the following parameters: +

+
start
+

Timestamp (in seconds) of the start of the section to keep. I.e. the audio +sample with the timestamp start will be the first sample in the output. +

+
+
end
+

Specify time of the first audio sample that will be dropped, i.e. the +audio sample immediately preceding the one with the timestamp end will be +the last sample in the output. +

+
+
start_pts
+

Same as start, except this option sets the start timestamp in samples +instead of seconds. +

+
+
end_pts
+

Same as end, except this option sets the end timestamp in samples instead +of seconds. +

+
+
duration
+

The maximum duration of the output in seconds. +

+
+
start_sample
+

The number of the first sample that should be output. +

+
+
end_sample
+

The number of the first sample that should be dropped. +

+
+ +

start’, ‘end’, ‘duration’ are expressed as time +duration specifications, check the "Time duration" section in the +ffmpeg-utils manual. +

+

Note that the first two sets of the start/end options and the ‘duration’ +option look at the frame timestamp, while the _sample options simply count the +samples that pass through the filter. So start/end_pts and start/end_sample will +give different results when the timestamps are wrong, inexact or do not start at +zero. Also note that this filter does not modify the timestamps. If you wish +to have the output timestamps start at zero, insert the asetpts filter after the +atrim filter. +

+

If multiple start or end options are set, this filter tries to be greedy and +keep all samples that match at least one of the specified constraints. To keep +only the part that matches all the constraints at once, chain multiple atrim +filters. +

+

The defaults are such that all the input is kept. So it is possible to set e.g. +just the end values to keep everything before the specified time. +

+

Examples: +

    +
  • +Drop everything except the second minute of input: +
     
    ffmpeg -i INPUT -af atrim=60:120
    +
    + +
  • +Keep only the first 1000 samples: +
     
    ffmpeg -i INPUT -af atrim=end_sample=1000
    +
    + +
+ + +

6.22 bandpass

+ +

Apply a two-pole Butterworth band-pass filter with central +frequency frequency, and (3dB-point) band-width width. +The csg option selects a constant skirt gain (peak gain = Q) +instead of the default: constant 0dB peak gain. +The filter roll off at 6dB per octave (20dB per decade). +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set the filter’s central frequency. Default is 3000. +

+
+
csg
+

Constant skirt gain if set to 1. Defaults to 0. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +

+
+ + +

6.23 bandreject

+ +

Apply a two-pole Butterworth band-reject filter with central +frequency frequency, and (3dB-point) band-width width. +The filter roll off at 6dB per octave (20dB per decade). +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set the filter’s central frequency. Default is 3000. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +

+
+ + +

6.24 bass

+ +

Boost or cut the bass (lower) frequencies of the audio using a two-pole +shelving filter with a response similar to that of a standard +hi-fi’s tone-controls. This is also known as shelving equalisation (EQ). +

+

The filter accepts the following options: +

+
+
gain, g
+

Give the gain at 0 Hz. Its useful range is about -20 +(for a large cut) to +20 (for a large boost). +Beware of clipping when using a positive gain. +

+
+
frequency, f
+

Set the filter’s central frequency and so can be used +to extend or reduce the frequency range to be boosted or cut. +The default value is 100 Hz. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Determine how steep is the filter’s shelf transition. +

+
+ + +

6.25 biquad

+ +

Apply a biquad IIR filter with the given coefficients. +Where b0, b1, b2 and a0, a1, a2 +are the numerator and denominator coefficients respectively. +

+ +

6.26 channelmap

+ +

Remap input channels to new locations. +

+

It accepts the following parameters: +

+
channel_layout
+

The channel layout of the output stream. +

+
+
map
+

Map channels from input to output. The argument is a ’|’-separated list of +mappings, each in the in_channel-out_channel or +in_channel form. in_channel can be either the name of the input +channel (e.g. FL for front left) or its index in the input channel layout. +out_channel is the name of the output channel or its index in the output +channel layout. If out_channel is not given then it is implicitly an +index, starting with zero and increasing by one for each mapping. +

+
+ +

If no mapping is present, the filter will implicitly map input channels to +output channels, preserving indices. +

+

For example, assuming a 5.1+downmix input MOV file, +

 
ffmpeg -i in.mov -filter 'channelmap=map=DL-FL|DR-FR' out.wav
+
+

will create an output WAV file tagged as stereo from the downmix channels of +the input. +

+

To fix a 5.1 WAV improperly encoded in AAC’s native channel order +

 
ffmpeg -i in.wav -filter 'channelmap=1|2|0|5|3|4:channel_layout=5.1' out.wav
+
+ + +

6.27 channelsplit

+ +

Split each channel from an input audio stream into a separate output stream. +

+

It accepts the following parameters: +

+
channel_layout
+

The channel layout of the input stream. The default is "stereo". +

+
+ +

For example, assuming a stereo input MP3 file, +

 
ffmpeg -i in.mp3 -filter_complex channelsplit out.mkv
+
+

will create an output Matroska file with two audio streams, one containing only +the left channel and the other the right channel. +

+

Split a 5.1 WAV file into per-channel files: +

 
ffmpeg -i in.wav -filter_complex
+'channelsplit=channel_layout=5.1[FL][FR][FC][LFE][SL][SR]'
+-map '[FL]' front_left.wav -map '[FR]' front_right.wav -map '[FC]'
+front_center.wav -map '[LFE]' lfe.wav -map '[SL]' side_left.wav -map '[SR]'
+side_right.wav
+
+ + +

6.28 compand

+

Compress or expand the audio’s dynamic range. +

+

It accepts the following parameters: +

+
+
attacks
+
decays
+

A list of times in seconds for each channel over which the instantaneous level +of the input signal is averaged to determine its volume. attacks refers to +increase of volume and decays refers to decrease of volume. For most +situations, the attack time (response to the audio getting louder) should be +shorter than the decay time, because the human ear is more sensitive to sudden +loud audio than sudden soft audio. A typical value for attack is 0.3 seconds and +a typical value for decay is 0.8 seconds. +

+
+
points
+

A list of points for the transfer function, specified in dB relative to the +maximum possible signal amplitude. Each key points list must be defined using +the following syntax: x0/y0|x1/y1|x2/y2|.... or +x0/y0 x1/y1 x2/y2 .... +

+

The input values must be in strictly increasing order but the transfer function +does not have to be monotonically rising. The point 0/0 is assumed but +may be overridden (by 0/out-dBn). Typical values for the transfer +function are -70/-70|-60/-20. +

+
+
soft-knee
+

Set the curve radius in dB for all joints. It defaults to 0.01. +

+
+
gain
+

Set the additional gain in dB to be applied at all points on the transfer +function. This allows for easy adjustment of the overall gain. +It defaults to 0. +

+
+
volume
+

Set an initial volume, in dB, to be assumed for each channel when filtering +starts. This permits the user to supply a nominal level initially, so that, for +example, a very large gain is not applied to initial signal levels before the +companding has begun to operate. A typical value for audio which is initially +quiet is -90 dB. It defaults to 0. +

+
+
delay
+

Set a delay, in seconds. The input audio is analyzed immediately, but audio is +delayed before being fed to the volume adjuster. Specifying a delay +approximately equal to the attack/decay times allows the filter to effectively +operate in predictive rather than reactive mode. It defaults to 0. +

+
+
+ + +

6.28.1 Examples

+ +
    +
  • +Make music with both quiet and loud passages suitable for listening to in a +noisy environment: +
     
    compand=.3|.3:1|1:-90/-60|-60/-40|-40/-30|-20/-20:6:0:-90:0.2
    +
    + +
  • +A noise gate for when the noise is at a lower level than the signal: +
     
    compand=.1|.1:.2|.2:-900/-900|-50.1/-900|-50/-50:.01:0:-90:.1
    +
    + +
  • +Here is another noise gate, this time for when the noise is at a higher level +than the signal (making it, in some ways, similar to squelch): +
     
    compand=.1|.1:.1|.1:-45.1/-45.1|-45/-900|0/-900:.01:45:-90:.1
    +
    +
+ + +

6.29 earwax

+ +

Make audio easier to listen to on headphones. +

+

This filter adds ‘cues’ to 44.1kHz stereo (i.e. audio CD format) audio +so that when listened to on headphones the stereo image is moved from +inside your head (standard for headphones) to outside and in front of +the listener (standard for speakers). +

+

Ported from SoX. +

+ +

6.30 equalizer

+ +

Apply a two-pole peaking equalisation (EQ) filter. With this +filter, the signal-level at and around a selected frequency can +be increased or decreased, whilst (unlike bandpass and bandreject +filters) that at all other frequencies is unchanged. +

+

In order to produce complex equalisation curves, this filter can +be given several times, each with a different central frequency. +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set the filter’s central frequency in Hz. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +

+
+
gain, g
+

Set the required gain or attenuation in dB. +Beware of clipping when using a positive gain. +

+
+ + +

6.30.1 Examples

+
    +
  • +Attenuate 10 dB at 1000 Hz, with a bandwidth of 200 Hz: +
     
    equalizer=f=1000:width_type=h:width=200:g=-10
    +
    + +
  • +Apply 2 dB gain at 1000 Hz with Q 1 and attenuate 5 dB at 100 Hz with Q 2: +
     
    equalizer=f=1000:width_type=q:width=1:g=2,equalizer=f=100:width_type=q:width=2:g=-5
    +
    +
+ + +

6.31 highpass

+ +

Apply a high-pass filter with 3dB point frequency. +The filter can be either single-pole, or double-pole (the default). +The filter roll off at 6dB per pole per octave (20dB per pole per decade). +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set frequency in Hz. Default is 3000. +

+
+
poles, p
+

Set number of poles. Default is 2. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +Applies only to double-pole filter. +The default is 0.707q and gives a Butterworth response. +

+
+ + +

6.32 join

+ +

Join multiple input streams into one multi-channel stream. +

+

It accepts the following parameters: +

+
inputs
+

The number of input streams. It defaults to 2. +

+
+
channel_layout
+

The desired output channel layout. It defaults to stereo. +

+
+
map
+

Map channels from inputs to output. The argument is a ’|’-separated list of +mappings, each in the input_idx.in_channel-out_channel +form. input_idx is the 0-based index of the input stream. in_channel +can be either the name of the input channel (e.g. FL for front left) or its +index in the specified input stream. out_channel is the name of the output +channel. +

+
+ +

The filter will attempt to guess the mappings when they are not specified +explicitly. It does so by first trying to find an unused matching input channel +and if that fails it picks the first unused input channel. +

+

Join 3 inputs (with properly set channel layouts): +

 
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex join=inputs=3 OUTPUT
+
+ +

Build a 5.1 output from 6 single-channel streams: +

 
ffmpeg -i fl -i fr -i fc -i sl -i sr -i lfe -filter_complex
+'join=inputs=6:channel_layout=5.1:map=0.0-FL|1.0-FR|2.0-FC|3.0-SL|4.0-SR|5.0-LFE'
+out
+
+ + +

6.33 ladspa

+ +

Load a LADSPA (Linux Audio Developer’s Simple Plugin API) plugin. +

+

To enable compilation of this filter you need to configure FFmpeg with +--enable-ladspa. +

+
+
file, f
+

Specifies the name of LADSPA plugin library to load. If the environment +variable LADSPA_PATH is defined, the LADSPA plugin is searched in +each one of the directories specified by the colon separated list in +LADSPA_PATH, otherwise in the standard LADSPA paths, which are in +this order: ‘HOME/.ladspa/lib/’, ‘/usr/local/lib/ladspa/’, +‘/usr/lib/ladspa/’. +

+
+
plugin, p
+

Specifies the plugin within the library. Some libraries contain only +one plugin, but others contain many of them. If this is not set filter +will list all available plugins within the specified library. +

+
+
controls, c
+

Set the ’|’ separated list of controls which are zero or more floating point +values that determine the behavior of the loaded plugin (for example delay, +threshold or gain). +Controls need to be defined using the following syntax: +c0=value0|c1=value1|c2=value2|..., where +valuei is the value set on the i-th control. +If ‘controls’ is set to help, all available controls and +their valid ranges are printed. +

+
+
sample_rate, s
+

Specify the sample rate, default to 44100. Only used if plugin have +zero inputs. +

+
+
nb_samples, n
+

Set the number of samples per channel per each output frame, default +is 1024. Only used if plugin have zero inputs. +

+
+
duration, d
+

Set the minimum duration of the sourced audio. See the function +av_parse_time() for the accepted format, also check the "Time duration" +section in the ffmpeg-utils manual. +Note that the resulting duration may be greater than the specified duration, +as the generated audio is always cut at the end of a complete frame. +If not specified, or the expressed duration is negative, the audio is +supposed to be generated forever. +Only used if plugin have zero inputs. +

+
+
+ + +

6.33.1 Examples

+ +
    +
  • +List all available plugins within amp (LADSPA example plugin) library: +
     
    ladspa=file=amp
    +
    + +
  • +List all available controls and their valid ranges for vcf_notch +plugin from VCF library: +
     
    ladspa=f=vcf:p=vcf_notch:c=help
    +
    + +
  • +Simulate low quality audio equipment using Computer Music Toolkit (CMT) +plugin library: +
     
    ladspa=file=cmt:plugin=lofi:controls=c0=22|c1=12|c2=12
    +
    + +
  • +Add reverberation to the audio using TAP-plugins +(Tom’s Audio Processing plugins): +
     
    ladspa=file=tap_reverb:tap_reverb
    +
    + +
  • +Generate white noise, with 0.2 amplitude: +
     
    ladspa=file=cmt:noise_source_white:c=c0=.2
    +
    + +
  • +Generate 20 bpm clicks using plugin C* Click - Metronome from the +C* Audio Plugin Suite (CAPS) library: +
     
    ladspa=file=caps:Click:c=c1=20'
    +
    + +
  • +Apply C* Eq10X2 - Stereo 10-band equaliser effect: +
     
    ladspa=caps:Eq10X2:c=c0=-48|c9=-24|c3=12|c4=2
    +
    +
+ + +

6.33.2 Commands

+ +

This filter supports the following commands: +

+
cN
+

Modify the N-th control value. +

+

If the specified value is not valid, it is ignored and prior one is kept. +

+
+ + +

6.34 lowpass

+ +

Apply a low-pass filter with 3dB point frequency. +The filter can be either single-pole or double-pole (the default). +The filter roll off at 6dB per pole per octave (20dB per pole per decade). +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set frequency in Hz. Default is 500. +

+
+
poles, p
+

Set number of poles. Default is 2. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +Applies only to double-pole filter. +The default is 0.707q and gives a Butterworth response. +

+
+ + +

6.35 pan

+ +

Mix channels with specific gain levels. The filter accepts the output +channel layout followed by a set of channels definitions. +

+

This filter is also designed to remap efficiently the channels of an audio +stream. +

+

The filter accepts parameters of the form: +"l:outdef:outdef:..." +

+
+
l
+

output channel layout or number of channels +

+
+
outdef
+

output channel specification, of the form: +"out_name=[gain*]in_name[+[gain*]in_name...]" +

+
+
out_name
+

output channel to define, either a channel name (FL, FR, etc.) or a channel +number (c0, c1, etc.) +

+
+
gain
+

multiplicative coefficient for the channel, 1 leaving the volume unchanged +

+
+
in_name
+

input channel to use, see out_name for details; it is not possible to mix +named and numbered input channels +

+
+ +

If the ‘=’ in a channel specification is replaced by ‘<’, then the gains for +that specification will be renormalized so that the total is 1, thus +avoiding clipping noise. +

+ +

6.35.1 Mixing examples

+ +

For example, if you want to down-mix from stereo to mono, but with a bigger +factor for the left channel: +

 
pan=1:c0=0.9*c0+0.1*c1
+
+ +

A customized down-mix to stereo that works automatically for 3-, 4-, 5- and +7-channels surround: +

 
pan=stereo: FL < FL + 0.5*FC + 0.6*BL + 0.6*SL : FR < FR + 0.5*FC + 0.6*BR + 0.6*SR
+
+ +

Note that ffmpeg integrates a default down-mix (and up-mix) system +that should be preferred (see "-ac" option) unless you have very specific +needs. +

+ +

6.35.2 Remapping examples

+ +

The channel remapping will be effective if, and only if: +

+
    +
  • gain coefficients are zeroes or ones, +
  • only one input per channel output, +
+ +

If all these conditions are satisfied, the filter will notify the user ("Pure +channel mapping detected"), and use an optimized and lossless method to do the +remapping. +

+

For example, if you have a 5.1 source and want a stereo audio stream by +dropping the extra channels: +

 
pan="stereo: c0=FL : c1=FR"
+
+ +

Given the same source, you can also switch front left and front right channels +and keep the input channel layout: +

 
pan="5.1: c0=c1 : c1=c0 : c2=c2 : c3=c3 : c4=c4 : c5=c5"
+
+ +

If the input is a stereo audio stream, you can mute the front left channel (and +still keep the stereo channel layout) with: +

 
pan="stereo:c1=c1"
+
+ +

Still with a stereo audio stream input, you can copy the right channel in both +front left and right: +

 
pan="stereo: c0=FR : c1=FR"
+
+ + +

6.36 replaygain

+ +

ReplayGain scanner filter. This filter takes an audio stream as an input and +outputs it unchanged. +At end of filtering it displays track_gain and track_peak. +

+ +

6.37 resample

+ +

Convert the audio sample format, sample rate and channel layout. It is +not meant to be used directly. +

+ +

6.38 silencedetect

+ +

Detect silence in an audio stream. +

+

This filter logs a message when it detects that the input audio volume is less +or equal to a noise tolerance value for a duration greater or equal to the +minimum detected noise duration. +

+

The printed times and duration are expressed in seconds. +

+

The filter accepts the following options: +

+
+
duration, d
+

Set silence duration until notification (default is 2 seconds). +

+
+
noise, n
+

Set noise tolerance. Can be specified in dB (in case "dB" is appended to the +specified value) or amplitude ratio. Default is -60dB, or 0.001. +

+
+ + +

6.38.1 Examples

+ +
    +
  • +Detect 5 seconds of silence with -50dB noise tolerance: +
     
    silencedetect=n=-50dB:d=5
    +
    + +
  • +Complete example with ffmpeg to detect silence with 0.0001 noise +tolerance in ‘silence.mp3’: +
     
    ffmpeg -i silence.mp3 -af silencedetect=noise=0.0001 -f null -
    +
    +
+ + +

6.39 treble

+ +

Boost or cut treble (upper) frequencies of the audio using a two-pole +shelving filter with a response similar to that of a standard +hi-fi’s tone-controls. This is also known as shelving equalisation (EQ). +

+

The filter accepts the following options: +

+
+
gain, g
+

Give the gain at whichever is the lower of ~22 kHz and the +Nyquist frequency. Its useful range is about -20 (for a large cut) +to +20 (for a large boost). Beware of clipping when using a positive gain. +

+
+
frequency, f
+

Set the filter’s central frequency and so can be used +to extend or reduce the frequency range to be boosted or cut. +The default value is 3000 Hz. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Determine how steep is the filter’s shelf transition. +

+
+ + +

6.40 volume

+ +

Adjust the input audio volume. +

+

It accepts the following parameters: +

+
volume
+

Set audio volume expression. +

+

Output values are clipped to the maximum value. +

+

The output audio volume is given by the relation: +

 
output_volume = volume * input_volume
+
+ +

The default value for volume is "1.0". +

+
+
precision
+

This parameter represents the mathematical precision. +

+

It determines which input sample formats will be allowed, which affects the +precision of the volume scaling. +

+
+
fixed
+

8-bit fixed-point; this limits input sample format to U8, S16, and S32. +

+
float
+

32-bit floating-point; this limits input sample format to FLT. (default) +

+
double
+

64-bit floating-point; this limits input sample format to DBL. +

+
+ +
+
replaygain
+

Choose the behaviour on encountering ReplayGain side data in input frames. +

+
+
drop
+

Remove ReplayGain side data, ignoring its contents (the default). +

+
+
ignore
+

Ignore ReplayGain side data, but leave it in the frame. +

+
+
track
+

Prefer the track gain, if present. +

+
+
album
+

Prefer the album gain, if present. +

+
+ +
+
replaygain_preamp
+

Pre-amplification gain in dB to apply to the selected replaygain gain. +

+

Default value for replaygain_preamp is 0.0. +

+
+
eval
+

Set when the volume expression is evaluated. +

+

It accepts the following values: +

+
once
+

only evaluate expression once during the filter initialization, or +when the ‘volume’ command is sent +

+
+
frame
+

evaluate expression for each incoming frame +

+
+ +

Default value is ‘once’. +

+
+ +

The volume expression can contain the following parameters. +

+
+
n
+

frame number (starting at zero) +

+
nb_channels
+

number of channels +

+
nb_consumed_samples
+

number of samples consumed by the filter +

+
nb_samples
+

number of samples in the current frame +

+
pos
+

original frame position in the file +

+
pts
+

frame PTS +

+
sample_rate
+

sample rate +

+
startpts
+

PTS at start of stream +

+
startt
+

time at start of stream +

+
t
+

frame time +

+
tb
+

timestamp timebase +

+
volume
+

last set volume value +

+
+ +

Note that when ‘eval’ is set to ‘once’ only the +sample_rate and tb variables are available, all other +variables will evaluate to NAN. +

+ +

6.40.1 Commands

+ +

This filter supports the following commands: +

+
volume
+

Modify the volume expression. +The command accepts the same syntax of the corresponding option. +

+

If the specified expression is not valid, it is kept at its current +value. +

+
replaygain_noclip
+

Prevent clipping by limiting the gain applied. +

+

Default value for replaygain_noclip is 1. +

+
+
+ + +

6.40.2 Examples

+ +
    +
  • +Halve the input audio volume: +
     
    volume=volume=0.5
    +volume=volume=1/2
    +volume=volume=-6.0206dB
    +
    + +

    In all the above example the named key for ‘volume’ can be +omitted, for example like in: +

     
    volume=0.5
    +
    + +
  • +Increase input audio power by 6 decibels using fixed-point precision: +
     
    volume=volume=6dB:precision=fixed
    +
    + +
  • +Fade volume after time 10 with an annihilation period of 5 seconds: +
     
    volume='if(lt(t,10),1,max(1-(t-10)/5,0))':eval=frame
    +
    +
+ + +

6.41 volumedetect

+ +

Detect the volume of the input video. +

+

The filter has no parameters. The input is not modified. Statistics about +the volume will be printed in the log when the input stream end is reached. +

+

In particular it will show the mean volume (root mean square), maximum +volume (on a per-sample basis), and the beginning of a histogram of the +registered volume values (from the maximum value to a cumulated 1/1000 of +the samples). +

+

All volumes are in decibels relative to the maximum PCM value. +

+ +

6.41.1 Examples

+ +

Here is an excerpt of the output: +

 
[Parsed_volumedetect_0  0xa23120] mean_volume: -27 dB
+[Parsed_volumedetect_0  0xa23120] max_volume: -4 dB
+[Parsed_volumedetect_0  0xa23120] histogram_4db: 6
+[Parsed_volumedetect_0  0xa23120] histogram_5db: 62
+[Parsed_volumedetect_0  0xa23120] histogram_6db: 286
+[Parsed_volumedetect_0  0xa23120] histogram_7db: 1042
+[Parsed_volumedetect_0  0xa23120] histogram_8db: 2551
+[Parsed_volumedetect_0  0xa23120] histogram_9db: 4609
+[Parsed_volumedetect_0  0xa23120] histogram_10db: 8409
+
+ +

It means that: +

    +
  • +The mean square energy is approximately -27 dB, or 10^-2.7. +
  • +The largest sample is at -4 dB, or more precisely between -4 dB and -5 dB. +
  • +There are 6 samples at -4 dB, 62 at -5 dB, 286 at -6 dB, etc. +
+ +

In other words, raising the volume by +4 dB does not cause any clipping, +raising it by +5 dB causes clipping for 6 samples, etc. +

+ + +

7. Audio Sources

+ +

Below is a description of the currently available audio sources. +

+ +

7.1 abuffer

+ +

Buffer audio frames, and make them available to the filter chain. +

+

This source is mainly intended for a programmatic use, in particular +through the interface defined in ‘libavfilter/asrc_abuffer.h’. +

+

It accepts the following parameters: +

+
time_base
+

The timebase which will be used for timestamps of submitted frames. It must be +either a floating-point number or in numerator/denominator form. +

+
+
sample_rate
+

The sample rate of the incoming audio buffers. +

+
+
sample_fmt
+

The sample format of the incoming audio buffers. +Either a sample format name or its corresponging integer representation from +the enum AVSampleFormat in ‘libavutil/samplefmt.h’ +

+
+
channel_layout
+

The channel layout of the incoming audio buffers. +Either a channel layout name from channel_layout_map in +‘libavutil/channel_layout.c’ or its corresponding integer representation +from the AV_CH_LAYOUT_* macros in ‘libavutil/channel_layout.h’ +

+
+
channels
+

The number of channels of the incoming audio buffers. +If both channels and channel_layout are specified, then they +must be consistent. +

+
+
+ + +

7.1.1 Examples

+ +
 
abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo
+
+ +

will instruct the source to accept planar 16bit signed stereo at 44100Hz. +Since the sample format with name "s16p" corresponds to the number +6 and the "stereo" channel layout corresponds to the value 0x3, this is +equivalent to: +

 
abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3
+
+ + +

7.2 aevalsrc

+ +

Generate an audio signal specified by an expression. +

+

This source accepts in input one or more expressions (one for each +channel), which are evaluated and used to generate a corresponding +audio signal. +

+

This source accepts the following options: +

+
+
exprs
+

Set the ’|’-separated expressions list for each separate channel. In case the +‘channel_layout’ option is not specified, the selected channel layout +depends on the number of provided expressions. Otherwise the last +specified expression is applied to the remaining output channels. +

+
+
channel_layout, c
+

Set the channel layout. The number of channels in the specified layout +must be equal to the number of specified expressions. +

+
+
duration, d
+

Set the minimum duration of the sourced audio. See the function +av_parse_time() for the accepted format. +Note that the resulting duration may be greater than the specified +duration, as the generated audio is always cut at the end of a +complete frame. +

+

If not specified, or the expressed duration is negative, the audio is +supposed to be generated forever. +

+
+
nb_samples, n
+

Set the number of samples per channel per each output frame, +default to 1024. +

+
+
sample_rate, s
+

Specify the sample rate, default to 44100. +

+
+ +

Each expression in exprs can contain the following constants: +

+
+
n
+

number of the evaluated sample, starting from 0 +

+
+
t
+

time of the evaluated sample expressed in seconds, starting from 0 +

+
+
s
+

sample rate +

+
+
+ + +

7.2.1 Examples

+ +
    +
  • +Generate silence: +
     
    aevalsrc=0
    +
    + +
  • +Generate a sin signal with frequency of 440 Hz, set sample rate to +8000 Hz: +
     
    aevalsrc="sin(440*2*PI*t):s=8000"
    +
    + +
  • +Generate a two channels signal, specify the channel layout (Front +Center + Back Center) explicitly: +
     
    aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC"
    +
    + +
  • +Generate white noise: +
     
    aevalsrc="-2+random(0)"
    +
    + +
  • +Generate an amplitude modulated signal: +
     
    aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)"
    +
    + +
  • +Generate 2.5 Hz binaural beats on a 360 Hz carrier: +
     
    aevalsrc="0.1*sin(2*PI*(360-2.5/2)*t) | 0.1*sin(2*PI*(360+2.5/2)*t)"
    +
    + +
+ + +

7.3 anullsrc

+ +

The null audio source, return unprocessed audio frames. It is mainly useful +as a template and to be employed in analysis / debugging tools, or as +the source for filters which ignore the input data (for example the sox +synth filter). +

+

This source accepts the following options: +

+
+
channel_layout, cl
+
+

Specifies the channel layout, and can be either an integer or a string +representing a channel layout. The default value of channel_layout +is "stereo". +

+

Check the channel_layout_map definition in +‘libavutil/channel_layout.c’ for the mapping between strings and +channel layout values. +

+
+
sample_rate, r
+

Specifies the sample rate, and defaults to 44100. +

+
+
nb_samples, n
+

Set the number of samples per requested frames. +

+
+
+ + +

7.3.1 Examples

+ +
    +
  • +Set the sample rate to 48000 Hz and the channel layout to AV_CH_LAYOUT_MONO. +
     
    anullsrc=r=48000:cl=4
    +
    + +
  • +Do the same operation with a more obvious syntax: +
     
    anullsrc=r=48000:cl=mono
    +
    +
+ +

All the parameters need to be explicitly defined. +

+ +

7.4 flite

+ +

Synthesize a voice utterance using the libflite library. +

+

To enable compilation of this filter you need to configure FFmpeg with +--enable-libflite. +

+

Note that the flite library is not thread-safe. +

+

The filter accepts the following options: +

+
+
list_voices
+

If set to 1, list the names of the available voices and exit +immediately. Default value is 0. +

+
+
nb_samples, n
+

Set the maximum number of samples per frame. Default value is 512. +

+
+
textfile
+

Set the filename containing the text to speak. +

+
+
text
+

Set the text to speak. +

+
+
voice, v
+

Set the voice to use for the speech synthesis. Default value is +kal. See also the list_voices option. +

+
+ + +

7.4.1 Examples

+ +
    +
  • +Read from file ‘speech.txt’, and synthetize the text using the +standard flite voice: +
     
    flite=textfile=speech.txt
    +
    + +
  • +Read the specified text selecting the slt voice: +
     
    flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
    +
    + +
  • +Input text to ffmpeg: +
     
    ffmpeg -f lavfi -i flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
    +
    + +
  • +Make ‘ffplay’ speak the specified text, using flite and +the lavfi device: +
     
    ffplay -f lavfi flite=text='No more be grieved for which that thou hast done.'
    +
    +
+ +

For more information about libflite, check: +http://www.speech.cs.cmu.edu/flite/ +

+ +

7.5 sine

+ +

Generate an audio signal made of a sine wave with amplitude 1/8. +

+

The audio signal is bit-exact. +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set the carrier frequency. Default is 440 Hz. +

+
+
beep_factor, b
+

Enable a periodic beep every second with frequency beep_factor times +the carrier frequency. Default is 0, meaning the beep is disabled. +

+
+
sample_rate, r
+

Specify the sample rate, default is 44100. +

+
+
duration, d
+

Specify the duration of the generated audio stream. +

+
+
samples_per_frame
+

Set the number of samples per output frame, default is 1024. +

+
+ + +

7.5.1 Examples

+ +
    +
  • +Generate a simple 440 Hz sine wave: +
     
    sine
    +
    + +
  • +Generate a 220 Hz sine wave with a 880 Hz beep each second, for 5 seconds: +
     
    sine=220:4:d=5
    +sine=f=220:b=4:d=5
    +sine=frequency=220:beep_factor=4:duration=5
    +
    + +
+ + + +

8. Audio Sinks

+ +

Below is a description of the currently available audio sinks. +

+ +

8.1 abuffersink

+ +

Buffer audio frames, and make them available to the end of filter chain. +

+

This sink is mainly intended for programmatic use, in particular +through the interface defined in ‘libavfilter/buffersink.h’ +or the options system. +

+

It accepts a pointer to an AVABufferSinkContext structure, which +defines the incoming buffers’ formats, to be passed as the opaque +parameter to avfilter_init_filter for initialization. +

+

8.2 anullsink

+ +

Null audio sink; do absolutely nothing with the input audio. It is +mainly useful as a template and for use in analysis / debugging +tools. +

+ + +

9. Video Filters

+ +

When you configure your FFmpeg build, you can disable any of the +existing filters using --disable-filters. +The configure output will show the video filters included in your +build. +

+

Below is a description of the currently available video filters. +

+ +

9.1 alphaextract

+ +

Extract the alpha component from the input as a grayscale video. This +is especially useful with the alphamerge filter. +

+ +

9.2 alphamerge

+ +

Add or replace the alpha component of the primary input with the +grayscale value of a second input. This is intended for use with +alphaextract to allow the transmission or storage of frame +sequences that have alpha in a format that doesn’t support an alpha +channel. +

+

For example, to reconstruct full frames from a normal YUV-encoded video +and a separate video created with alphaextract, you might use: +

 
movie=in_alpha.mkv [alpha]; [in][alpha] alphamerge [out]
+
+ +

Since this filter is designed for reconstruction, it operates on frame +sequences without considering timestamps, and terminates when either +input reaches end of stream. This will cause problems if your encoding +pipeline drops frames. If you’re trying to apply an image as an +overlay to a video stream, consider the overlay filter instead. +

+ +

9.3 ass

+ +

Same as the subtitles filter, except that it doesn’t require libavcodec +and libavformat to work. On the other hand, it is limited to ASS (Advanced +Substation Alpha) subtitles files. +

+ +

9.4 bbox

+ +

Compute the bounding box for the non-black pixels in the input frame +luminance plane. +

+

This filter computes the bounding box containing all the pixels with a +luminance value greater than the minimum allowed value. +The parameters describing the bounding box are printed on the filter +log. +

+

The filter accepts the following option: +

+
+
min_val
+

Set the minimal luminance value. Default is 16. +

+
+ + +

9.5 blackdetect

+ +

Detect video intervals that are (almost) completely black. Can be +useful to detect chapter transitions, commercials, or invalid +recordings. Output lines contains the time for the start, end and +duration of the detected black interval expressed in seconds. +

+

In order to display the output lines, you need to set the loglevel at +least to the AV_LOG_INFO value. +

+

The filter accepts the following options: +

+
+
black_min_duration, d
+

Set the minimum detected black duration expressed in seconds. It must +be a non-negative floating point number. +

+

Default value is 2.0. +

+
+
picture_black_ratio_th, pic_th
+

Set the threshold for considering a picture "black". +Express the minimum value for the ratio: +

 
nb_black_pixels / nb_pixels
+
+ +

for which a picture is considered black. +Default value is 0.98. +

+
+
pixel_black_th, pix_th
+

Set the threshold for considering a pixel "black". +

+

The threshold expresses the maximum pixel luminance value for which a +pixel is considered "black". The provided value is scaled according to +the following equation: +

 
absolute_threshold = luminance_minimum_value + pixel_black_th * luminance_range_size
+
+ +

luminance_range_size and luminance_minimum_value depend on +the input video format, the range is [0-255] for YUV full-range +formats and [16-235] for YUV non full-range formats. +

+

Default value is 0.10. +

+
+ +

The following example sets the maximum pixel threshold to the minimum +value, and detects only black intervals of 2 or more seconds: +

 
blackdetect=d=2:pix_th=0.00
+
+ + +

9.6 blackframe

+ +

Detect frames that are (almost) completely black. Can be useful to +detect chapter transitions or commercials. Output lines consist of +the frame number of the detected frame, the percentage of blackness, +the position in the file if known or -1 and the timestamp in seconds. +

+

In order to display the output lines, you need to set the loglevel at +least to the AV_LOG_INFO value. +

+

It accepts the following parameters: +

+
+
amount
+

The percentage of the pixels that have to be below the threshold; it defaults to +98. +

+
+
threshold, thresh
+

The threshold below which a pixel value is considered black; it defaults to +32. +

+
+
+ + +

9.7 blend

+ +

Blend two video frames into each other. +

+

It takes two input streams and outputs one stream, the first input is the +"top" layer and second input is "bottom" layer. +Output terminates when shortest input terminates. +

+

A description of the accepted options follows. +

+
+
c0_mode
+
c1_mode
+
c2_mode
+
c3_mode
+
all_mode
+

Set blend mode for specific pixel component or all pixel components in case +of all_mode. Default value is normal. +

+

Available values for component modes are: +

+
addition
+
and
+
average
+
burn
+
darken
+
difference
+
divide
+
dodge
+
exclusion
+
hardlight
+
lighten
+
multiply
+
negation
+
normal
+
or
+
overlay
+
phoenix
+
pinlight
+
reflect
+
screen
+
softlight
+
subtract
+
vividlight
+
xor
+
+ +
+
c0_opacity
+
c1_opacity
+
c2_opacity
+
c3_opacity
+
all_opacity
+

Set blend opacity for specific pixel component or all pixel components in case +of all_opacity. Only used in combination with pixel component blend modes. +

+
+
c0_expr
+
c1_expr
+
c2_expr
+
c3_expr
+
all_expr
+

Set blend expression for specific pixel component or all pixel components in case +of all_expr. Note that related mode options will be ignored if those are set. +

+

The expressions can use the following variables: +

+
+
N
+

The sequential number of the filtered frame, starting from 0. +

+
+
X
+
Y
+

the coordinates of the current sample +

+
+
W
+
H
+

the width and height of currently filtered plane +

+
+
SW
+
SH
+

Width and height scale depending on the currently filtered plane. It is the +ratio between the corresponding luma plane number of pixels and the current +plane ones. E.g. for YUV4:2:0 the values are 1,1 for the luma plane, and +0.5,0.5 for chroma planes. +

+
+
T
+

Time of the current frame, expressed in seconds. +

+
+
TOP, A
+

Value of pixel component at current location for first video frame (top layer). +

+
+
BOTTOM, B
+

Value of pixel component at current location for second video frame (bottom layer). +

+
+ +
+
shortest
+

Force termination when the shortest input terminates. Default is 0. +

+
repeatlast
+

Continue applying the last bottom frame after the end of the stream. A value of +0 disable the filter after the last frame of the bottom layer is reached. +Default is 1. +

+
+ + +

9.7.1 Examples

+ +
    +
  • +Apply transition from bottom layer to top layer in first 10 seconds: +
     
    blend=all_expr='A*(if(gte(T,10),1,T/10))+B*(1-(if(gte(T,10),1,T/10)))'
    +
    + +
  • +Apply 1x1 checkerboard effect: +
     
    blend=all_expr='if(eq(mod(X,2),mod(Y,2)),A,B)'
    +
    + +
  • +Apply uncover left effect: +
     
    blend=all_expr='if(gte(N*SW+X,W),A,B)'
    +
    + +
  • +Apply uncover down effect: +
     
    blend=all_expr='if(gte(Y-N*SH,0),A,B)'
    +
    + +
  • +Apply uncover up-left effect: +
     
    blend=all_expr='if(gte(T*SH*40+Y,H)*gte((T*40*SW+X)*W/H,W),A,B)'
    +
    +
+ + +

9.8 boxblur

+ +

Apply a boxblur algorithm to the input video. +

+

It accepts the following parameters: +

+
+
luma_radius, lr
+
luma_power, lp
+
chroma_radius, cr
+
chroma_power, cp
+
alpha_radius, ar
+
alpha_power, ap
+
+ +

A description of the accepted options follows. +

+
+
luma_radius, lr
+
chroma_radius, cr
+
alpha_radius, ar
+

Set an expression for the box radius in pixels used for blurring the +corresponding input plane. +

+

The radius value must be a non-negative number, and must not be +greater than the value of the expression min(w,h)/2 for the +luma and alpha planes, and of min(cw,ch)/2 for the chroma +planes. +

+

Default value for ‘luma_radius’ is "2". If not specified, +‘chroma_radius’ and ‘alpha_radius’ default to the +corresponding value set for ‘luma_radius’. +

+

The expressions can contain the following constants: +

+
w
+
h
+

The input width and height in pixels. +

+
+
cw
+
ch
+

The input chroma image width and height in pixels. +

+
+
hsub
+
vsub
+

The horizontal and vertical chroma subsample values. For example, for the +pixel format "yuv422p", hsub is 2 and vsub is 1. +

+
+ +
+
luma_power, lp
+
chroma_power, cp
+
alpha_power, ap
+

Specify how many times the boxblur filter is applied to the +corresponding plane. +

+

Default value for ‘luma_power’ is 2. If not specified, +‘chroma_power’ and ‘alpha_power’ default to the +corresponding value set for ‘luma_power’. +

+

A value of 0 will disable the effect. +

+
+ + +

9.8.1 Examples

+ +
    +
  • +Apply a boxblur filter with the luma, chroma, and alpha radii +set to 2: +
     
    boxblur=luma_radius=2:luma_power=1
    +boxblur=2:1
    +
    + +
  • +Set the luma radius to 2, and alpha and chroma radius to 0: +
     
    boxblur=2:1:cr=0:ar=0
    +
    + +
  • +Set the luma and chroma radii to a fraction of the video dimension: +
     
    boxblur=luma_radius=min(h\,w)/10:luma_power=1:chroma_radius=min(cw\,ch)/10:chroma_power=1
    +
    +
+ + +

9.9 colorbalance

+

Modify intensity of primary colors (red, green and blue) of input frames. +

+

The filter allows an input frame to be adjusted in the shadows, midtones or highlights +regions for the red-cyan, green-magenta or blue-yellow balance. +

+

A positive adjustment value shifts the balance towards the primary color, a negative +value towards the complementary color. +

+

The filter accepts the following options: +

+
+
rs
+
gs
+
bs
+

Adjust red, green and blue shadows (darkest pixels). +

+
+
rm
+
gm
+
bm
+

Adjust red, green and blue midtones (medium pixels). +

+
+
rh
+
gh
+
bh
+

Adjust red, green and blue highlights (brightest pixels). +

+

Allowed ranges for options are [-1.0, 1.0]. Defaults are 0. +

+
+ + +

9.9.1 Examples

+ +
    +
  • +Add red color cast to shadows: +
     
    colorbalance=rs=.3
    +
    +
+ + +

9.10 colorchannelmixer

+ +

Adjust video input frames by re-mixing color channels. +

+

This filter modifies a color channel by adding the values associated to +the other channels of the same pixels. For example if the value to +modify is red, the output value will be: +

 
red=red*rr + blue*rb + green*rg + alpha*ra
+
+ +

The filter accepts the following options: +

+
+
rr
+
rg
+
rb
+
ra
+

Adjust contribution of input red, green, blue and alpha channels for output red channel. +Default is 1 for rr, and 0 for rg, rb and ra. +

+
+
gr
+
gg
+
gb
+
ga
+

Adjust contribution of input red, green, blue and alpha channels for output green channel. +Default is 1 for gg, and 0 for gr, gb and ga. +

+
+
br
+
bg
+
bb
+
ba
+

Adjust contribution of input red, green, blue and alpha channels for output blue channel. +Default is 1 for bb, and 0 for br, bg and ba. +

+
+
ar
+
ag
+
ab
+
aa
+

Adjust contribution of input red, green, blue and alpha channels for output alpha channel. +Default is 1 for aa, and 0 for ar, ag and ab. +

+

Allowed ranges for options are [-2.0, 2.0]. +

+
+ + +

9.10.1 Examples

+ +
    +
  • +Convert source to grayscale: +
     
    colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3
    +
    +
  • +Simulate sepia tones: +
     
    colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131
    +
    +
+ + +

9.11 colormatrix

+ +

Convert color matrix. +

+

The filter accepts the following options: +

+
+
src
+
dst
+

Specify the source and destination color matrix. Both values must be +specified. +

+

The accepted values are: +

+
bt709
+

BT.709 +

+
+
bt601
+

BT.601 +

+
+
smpte240m
+

SMPTE-240M +

+
+
fcc
+

FCC +

+
+
+
+ +

For example to convert from BT.601 to SMPTE-240M, use the command: +

 
colormatrix=bt601:smpte240m
+
+ + +

9.12 copy

+ +

Copy the input source unchanged to the output. This is mainly useful for +testing purposes. +

+ +

9.13 crop

+ +

Crop the input video to given dimensions. +

+

It accepts the following parameters: +

+
+
w, out_w
+

The width of the output video. It defaults to iw. +This expression is evaluated only once during the filter +configuration. +

+
+
h, out_h
+

The height of the output video. It defaults to ih. +This expression is evaluated only once during the filter +configuration. +

+
+
x
+

The horizontal position, in the input video, of the left edge of the output +video. It defaults to (in_w-out_w)/2. +This expression is evaluated per-frame. +

+
+
y
+

The vertical position, in the input video, of the top edge of the output video. +It defaults to (in_h-out_h)/2. +This expression is evaluated per-frame. +

+
+
keep_aspect
+

If set to 1 will force the output display aspect ratio +to be the same of the input, by changing the output sample aspect +ratio. It defaults to 0. +

+
+ +

The out_w, out_h, x, y parameters are +expressions containing the following constants: +

+
+
x
+
y
+

The computed values for x and y. They are evaluated for +each new frame. +

+
+
in_w
+
in_h
+

The input width and height. +

+
+
iw
+
ih
+

These are the same as in_w and in_h. +

+
+
out_w
+
out_h
+

The output (cropped) width and height. +

+
+
ow
+
oh
+

These are the same as out_w and out_h. +

+
+
a
+

same as iw / ih +

+
+
sar
+

input sample aspect ratio +

+
+
dar
+

input display aspect ratio, it is the same as (iw / ih) * sar +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
n
+

The number of the input frame, starting from 0. +

+
+
pos
+

the position in the file of the input frame, NAN if unknown +

+
+
t
+

The timestamp expressed in seconds. It’s NAN if the input timestamp is unknown. +

+
+
+ +

The expression for out_w may depend on the value of out_h, +and the expression for out_h may depend on out_w, but they +cannot depend on x and y, as x and y are +evaluated after out_w and out_h. +

+

The x and y parameters specify the expressions for the +position of the top-left corner of the output (non-cropped) area. They +are evaluated for each frame. If the evaluated value is not valid, it +is approximated to the nearest valid value. +

+

The expression for x may depend on y, and the expression +for y may depend on x. +

+ +

9.13.1 Examples

+ +
    +
  • +Crop area with size 100x100 at position (12,34). +
     
    crop=100:100:12:34
    +
    + +

    Using named options, the example above becomes: +

     
    crop=w=100:h=100:x=12:y=34
    +
    + +
  • +Crop the central input area with size 100x100: +
     
    crop=100:100
    +
    + +
  • +Crop the central input area with size 2/3 of the input video: +
     
    crop=2/3*in_w:2/3*in_h
    +
    + +
  • +Crop the input video central square: +
     
    crop=out_w=in_h
    +crop=in_h
    +
    + +
  • +Delimit the rectangle with the top-left corner placed at position +100:100 and the right-bottom corner corresponding to the right-bottom +corner of the input image. +
     
    crop=in_w-100:in_h-100:100:100
    +
    + +
  • +Crop 10 pixels from the left and right borders, and 20 pixels from +the top and bottom borders +
     
    crop=in_w-2*10:in_h-2*20
    +
    + +
  • +Keep only the bottom right quarter of the input image: +
     
    crop=in_w/2:in_h/2:in_w/2:in_h/2
    +
    + +
  • +Crop height for getting Greek harmony: +
     
    crop=in_w:1/PHI*in_w
    +
    + +
  • +Appply trembling effect: +
     
    crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(n/10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(n/7)
    +
    + +
  • +Apply erratic camera effect depending on timestamp: +
     
    crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(t*10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(t*13)"
    +
    + +
  • +Set x depending on the value of y: +
     
    crop=in_w/2:in_h/2:y:10+10*sin(n/10)
    +
    +
+ + +

9.14 cropdetect

+ +

Auto-detect the crop size. +

+

It calculates the necessary cropping parameters and prints the +recommended parameters via the logging system. The detected dimensions +correspond to the non-black area of the input video. +

+

It accepts the following parameters: +

+
+
limit
+

Set higher black value threshold, which can be optionally specified +from nothing (0) to everything (255). An intensity value greater +to the set value is considered non-black. It defaults to 24. +

+
+
round
+

The value which the width/height should be divisible by. It defaults to +16. The offset is automatically adjusted to center the video. Use 2 to +get only even dimensions (needed for 4:2:2 video). 16 is best when +encoding to most video codecs. +

+
+
reset_count, reset
+

Set the counter that determines after how many frames cropdetect will +reset the previously detected largest video area and start over to +detect the current optimal crop area. Default value is 0. +

+

This can be useful when channel logos distort the video area. 0 +indicates ’never reset’, and returns the largest area encountered during +playback. +

+
+ +

+

+

9.15 curves

+ +

Apply color adjustments using curves. +

+

This filter is similar to the Adobe Photoshop and GIMP curves tools. Each +component (red, green and blue) has its values defined by N key points +tied from each other using a smooth curve. The x-axis represents the pixel +values from the input frame, and the y-axis the new pixel values to be set for +the output frame. +

+

By default, a component curve is defined by the two points (0;0) and +(1;1). This creates a straight line where each original pixel value is +"adjusted" to its own value, which means no change to the image. +

+

The filter allows you to redefine these two points and add some more. A new +curve (using a natural cubic spline interpolation) will be define to pass +smoothly through all these new coordinates. The new defined points needs to be +strictly increasing over the x-axis, and their x and y values must +be in the [0;1] interval. If the computed curves happened to go outside +the vector spaces, the values will be clipped accordingly. +

+

If there is no key point defined in x=0, the filter will automatically +insert a (0;0) point. In the same way, if there is no key point defined +in x=1, the filter will automatically insert a (1;1) point. +

+

The filter accepts the following options: +

+
+
preset
+

Select one of the available color presets. This option can be used in addition +to the ‘r’, ‘g’, ‘b’ parameters; in this case, the later +options takes priority on the preset values. +Available presets are: +

+
none
+
color_negative
+
cross_process
+
darker
+
increase_contrast
+
lighter
+
linear_contrast
+
medium_contrast
+
negative
+
strong_contrast
+
vintage
+
+

Default is none. +

+
master, m
+

Set the master key points. These points will define a second pass mapping. It +is sometimes called a "luminance" or "value" mapping. It can be used with +‘r’, ‘g’, ‘b’ or ‘all’ since it acts like a +post-processing LUT. +

+
red, r
+

Set the key points for the red component. +

+
green, g
+

Set the key points for the green component. +

+
blue, b
+

Set the key points for the blue component. +

+
all
+

Set the key points for all components (not including master). +Can be used in addition to the other key points component +options. In this case, the unset component(s) will fallback on this +‘all’ setting. +

+
psfile
+

Specify a Photoshop curves file (.asv) to import the settings from. +

+
+ +

To avoid some filtergraph syntax conflicts, each key points list need to be +defined using the following syntax: x0/y0 x1/y1 x2/y2 .... +

+ +

9.15.1 Examples

+ +
    +
  • +Increase slightly the middle level of blue: +
     
    curves=blue='0.5/0.58'
    +
    + +
  • +Vintage effect: +
     
    curves=r='0/0.11 .42/.51 1/0.95':g='0.50/0.48':b='0/0.22 .49/.44 1/0.8'
    +
    +

    Here we obtain the following coordinates for each components: +

    +
    red
    +

    (0;0.11) (0.42;0.51) (1;0.95) +

    +
    green
    +

    (0;0) (0.50;0.48) (1;1) +

    +
    blue
    +

    (0;0.22) (0.49;0.44) (1;0.80) +

    +
    + +
  • +The previous example can also be achieved with the associated built-in preset: +
     
    curves=preset=vintage
    +
    + +
  • +Or simply: +
     
    curves=vintage
    +
    + +
  • +Use a Photoshop preset and redefine the points of the green component: +
     
    curves=psfile='MyCurvesPresets/purple.asv':green='0.45/0.53'
    +
    +
+ + +

9.16 dctdnoiz

+ +

Denoise frames using 2D DCT (frequency domain filtering). +

+

This filter is not designed for real time and can be extremely slow. +

+

The filter accepts the following options: +

+
+
sigma, s
+

Set the noise sigma constant. +

+

This sigma defines a hard threshold of 3 * sigma; every DCT +coefficient (absolute value) below this threshold with be dropped. +

+

If you need a more advanced filtering, see ‘expr’. +

+

Default is 0. +

+
+
overlap
+

Set number overlapping pixels for each block. Each block is of size +16x16. Since the filter can be slow, you may want to reduce this value, +at the cost of a less effective filter and the risk of various artefacts. +

+

If the overlapping value doesn’t allow to process the whole input width or +height, a warning will be displayed and according borders won’t be denoised. +

+

Default value is 15. +

+
+
expr, e
+

Set the coefficient factor expression. +

+

For each coefficient of a DCT block, this expression will be evaluated as a +multiplier value for the coefficient. +

+

If this is option is set, the ‘sigma’ option will be ignored. +

+

The absolute value of the coefficient can be accessed through the c +variable. +

+
+ + +

9.16.1 Examples

+ +

Apply a denoise with a ‘sigma’ of 4.5: +

 
dctdnoiz=4.5
+
+ +

The same operation can be achieved using the expression system: +

 
dctdnoiz=e='gte(c, 4.5*3)'
+
+ +

+

+

9.17 decimate

+ +

Drop duplicated frames at regular intervals. +

+

The filter accepts the following options: +

+
+
cycle
+

Set the number of frames from which one will be dropped. Setting this to +N means one frame in every batch of N frames will be dropped. +Default is 5. +

+
+
dupthresh
+

Set the threshold for duplicate detection. If the difference metric for a frame +is less than or equal to this value, then it is declared as duplicate. Default +is 1.1 +

+
+
scthresh
+

Set scene change threshold. Default is 15. +

+
+
blockx
+
blocky
+

Set the size of the x and y-axis blocks used during metric calculations. +Larger blocks give better noise suppression, but also give worse detection of +small movements. Must be a power of two. Default is 32. +

+
+
ppsrc
+

Mark main input as a pre-processed input and activate clean source input +stream. This allows the input to be pre-processed with various filters to help +the metrics calculation while keeping the frame selection lossless. When set to +1, the first stream is for the pre-processed input, and the second +stream is the clean source from where the kept frames are chosen. Default is +0. +

+
+
chroma
+

Set whether or not chroma is considered in the metric calculations. Default is +1. +

+
+ + +

9.18 dejudder

+ +

Remove judder produced by partially interlaced telecined content. +

+

Judder can be introduced, for instance, by pullup filter. If the original +source was partially telecined content then the output of pullup,dejudder +will have a variable frame rate. May change the recorded frame rate of the +container. Aside from that change, this filter will not affect constant frame +rate video. +

+

The option available in this filter is: +

+
cycle
+

Specify the length of the window over which the judder repeats. +

+

Accepts any interger greater than 1. Useful values are: +

+
4
+

If the original was telecined from 24 to 30 fps (Film to NTSC). +

+
+
5
+

If the original was telecined from 25 to 30 fps (PAL to NTSC). +

+
+
20
+

If a mixture of the two. +

+
+ +

The default is ‘4’. +

+
+ + +

9.19 delogo

+ +

Suppress a TV station logo by a simple interpolation of the surrounding +pixels. Just set a rectangle covering the logo and watch it disappear +(and sometimes something even uglier appear - your mileage may vary). +

+

It accepts the following parameters: +

+
x
+
y
+

Specify the top left corner coordinates of the logo. They must be +specified. +

+
+
w
+
h
+

Specify the width and height of the logo to clear. They must be +specified. +

+
+
band, t
+

Specify the thickness of the fuzzy edge of the rectangle (added to +w and h). The default value is 4. +

+
+
show
+

When set to 1, a green rectangle is drawn on the screen to simplify +finding the right x, y, w, and h parameters. +The default value is 0. +

+

The rectangle is drawn on the outermost pixels which will be (partly) +replaced with interpolated values. The values of the next pixels +immediately outside this rectangle in each direction will be used to +compute the interpolated pixel values inside the rectangle. +

+
+
+ + +

9.19.1 Examples

+ +
    +
  • +Set a rectangle covering the area with top left corner coordinates 0,0 +and size 100x77, and a band of size 10: +
     
    delogo=x=0:y=0:w=100:h=77:band=10
    +
    + +
+ + +

9.20 deshake

+ +

Attempt to fix small changes in horizontal and/or vertical shift. This +filter helps remove camera shake from hand-holding a camera, bumping a +tripod, moving on a vehicle, etc. +

+

The filter accepts the following options: +

+
+
x
+
y
+
w
+
h
+

Specify a rectangular area where to limit the search for motion +vectors. +If desired the search for motion vectors can be limited to a +rectangular area of the frame defined by its top left corner, width +and height. These parameters have the same meaning as the drawbox +filter which can be used to visualise the position of the bounding +box. +

+

This is useful when simultaneous movement of subjects within the frame +might be confused for camera motion by the motion vector search. +

+

If any or all of x, y, w and h are set to -1 +then the full frame is used. This allows later options to be set +without specifying the bounding box for the motion vector search. +

+

Default - search the whole frame. +

+
+
rx
+
ry
+

Specify the maximum extent of movement in x and y directions in the +range 0-64 pixels. Default 16. +

+
+
edge
+

Specify how to generate pixels to fill blanks at the edge of the +frame. Available values are: +

+
blank, 0
+

Fill zeroes at blank locations +

+
original, 1
+

Original image at blank locations +

+
clamp, 2
+

Extruded edge value at blank locations +

+
mirror, 3
+

Mirrored edge at blank locations +

+
+

Default value is ‘mirror’. +

+
+
blocksize
+

Specify the blocksize to use for motion search. Range 4-128 pixels, +default 8. +

+
+
contrast
+

Specify the contrast threshold for blocks. Only blocks with more than +the specified contrast (difference between darkest and lightest +pixels) will be considered. Range 1-255, default 125. +

+
+
search
+

Specify the search strategy. Available values are: +

+
exhaustive, 0
+

Set exhaustive search +

+
less, 1
+

Set less exhaustive search. +

+
+

Default value is ‘exhaustive’. +

+
+
filename
+

If set then a detailed log of the motion search is written to the +specified file. +

+
+
opencl
+

If set to 1, specify using OpenCL capabilities, only available if +FFmpeg was configured with --enable-opencl. Default value is 0. +

+
+
+ + +

9.21 drawbox

+ +

Draw a colored box on the input image. +

+

It accepts the following parameters: +

+
+
x
+
y
+

The expressions which specify the top left corner coordinates of the box. It defaults to 0. +

+
+
width, w
+
height, h
+

The expressions which specify the width and height of the box; if 0 they are interpreted as +the input width and height. It defaults to 0. +

+
+
color, c
+

Specify the color of the box to write. For the general syntax of this option, +check the "Color" section in the ffmpeg-utils manual. If the special +value invert is used, the box edge color is the same as the +video with inverted luma. +

+
+
thickness, t
+

The expression which sets the thickness of the box edge. Default value is 3. +

+

See below for the list of accepted constants. +

+
+ +

The parameters for x, y, w and h and t are expressions containing the +following constants: +

+
+
dar
+

The input display aspect ratio, it is the same as (w / h) * sar. +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
in_h, ih
+
in_w, iw
+

The input width and height. +

+
+
sar
+

The input sample aspect ratio. +

+
+
x
+
y
+

The x and y offset coordinates where the box is drawn. +

+
+
w
+
h
+

The width and height of the drawn box. +

+
+
t
+

The thickness of the drawn box. +

+

These constants allow the x, y, w, h and t expressions to refer to +each other, so you may for example specify y=x/dar or h=w/dar. +

+
+
+ + +

9.21.1 Examples

+ +
    +
  • +Draw a black box around the edge of the input image: +
     
    drawbox
    +
    + +
  • +Draw a box with color red and an opacity of 50%: +
     
    drawbox=10:20:200:60:red@0.5
    +
    + +

    The previous example can be specified as: +

     
    drawbox=x=10:y=20:w=200:h=60:color=red@0.5
    +
    + +
  • +Fill the box with pink color: +
     
    drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=max
    +
    + +
  • +Draw a 2-pixel red 2.40:1 mask: +
     
    drawbox=x=-t:y=0.5*(ih-iw/2.4)-t:w=iw+t*2:h=iw/2.4+t*2:t=2:c=red
    +
    +
+ + +

9.22 drawgrid

+ +

Draw a grid on the input image. +

+

It accepts the following parameters: +

+
+
x
+
y
+

The expressions which specify the coordinates of some point of grid intersection (meant to configure offset). Both default to 0. +

+
+
width, w
+
height, h
+

The expressions which specify the width and height of the grid cell, if 0 they are interpreted as the +input width and height, respectively, minus thickness, so image gets +framed. Default to 0. +

+
+
color, c
+

Specify the color of the grid. For the general syntax of this option, +check the "Color" section in the ffmpeg-utils manual. If the special +value invert is used, the grid color is the same as the +video with inverted luma. +

+
+
thickness, t
+

The expression which sets the thickness of the grid line. Default value is 1. +

+

See below for the list of accepted constants. +

+
+ +

The parameters for x, y, w and h and t are expressions containing the +following constants: +

+
+
dar
+

The input display aspect ratio, it is the same as (w / h) * sar. +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
in_h, ih
+
in_w, iw
+

The input grid cell width and height. +

+
+
sar
+

The input sample aspect ratio. +

+
+
x
+
y
+

The x and y coordinates of some point of grid intersection (meant to configure offset). +

+
+
w
+
h
+

The width and height of the drawn cell. +

+
+
t
+

The thickness of the drawn cell. +

+

These constants allow the x, y, w, h and t expressions to refer to +each other, so you may for example specify y=x/dar or h=w/dar. +

+
+
+ + +

9.22.1 Examples

+ +
    +
  • +Draw a grid with cell 100x100 pixels, thickness 2 pixels, with color red and an opacity of 50%: +
     
    drawgrid=width=100:height=100:thickness=2:color=red@0.5
    +
    + +
  • +Draw a white 3x3 grid with an opacity of 50%: +
     
    drawgrid=w=iw/3:h=ih/3:t=2:c=white@0.5
    +
    +
+ +

+

+

9.23 drawtext

+ +

Draw a text string or text from a specified file on top of a video, using the +libfreetype library. +

+

To enable compilation of this filter, you need to configure FFmpeg with +--enable-libfreetype. +To enable default font fallback and the font option you need to +configure FFmpeg with --enable-libfontconfig. +

+ +

9.23.1 Syntax

+ +

It accepts the following parameters: +

+
+
box
+

Used to draw a box around text using the background color. +The value must be either 1 (enable) or 0 (disable). +The default value of box is 0. +

+
+
boxcolor
+

The color to be used for drawing box around text. For the syntax of this +option, check the "Color" section in the ffmpeg-utils manual. +

+

The default value of boxcolor is "white". +

+
+
borderw
+

Set the width of the border to be drawn around the text using bordercolor. +The default value of borderw is 0. +

+
+
bordercolor
+

Set the color to be used for drawing border around text. For the syntax of this +option, check the "Color" section in the ffmpeg-utils manual. +

+

The default value of bordercolor is "black". +

+
+
expansion
+

Select how the text is expanded. Can be either none, +strftime (deprecated) or +normal (default). See the Text expansion section +below for details. +

+
+
fix_bounds
+

If true, check and fix text coords to avoid clipping. +

+
+
fontcolor
+

The color to be used for drawing fonts. For the syntax of this option, check +the "Color" section in the ffmpeg-utils manual. +

+

The default value of fontcolor is "black". +

+
+
font
+

The font family to be used for drawing text. By default Sans. +

+
+
fontfile
+

The font file to be used for drawing text. The path must be included. +This parameter is mandatory if the fontconfig support is disabled. +

+
+
fontsize
+

The font size to be used for drawing text. +The default value of fontsize is 16. +

+
+
ft_load_flags
+

The flags to be used for loading the fonts. +

+

The flags map the corresponding flags supported by libfreetype, and are +a combination of the following values: +

+
default
+
no_scale
+
no_hinting
+
render
+
no_bitmap
+
vertical_layout
+
force_autohint
+
crop_bitmap
+
pedantic
+
ignore_global_advance_width
+
no_recurse
+
ignore_transform
+
monochrome
+
linear_design
+
no_autohint
+
+ +

Default value is "default". +

+

For more information consult the documentation for the FT_LOAD_* +libfreetype flags. +

+
+
shadowcolor
+

The color to be used for drawing a shadow behind the drawn text. For the +syntax of this option, check the "Color" section in the ffmpeg-utils manual. +

+

The default value of shadowcolor is "black". +

+
+
shadowx
+
shadowy
+

The x and y offsets for the text shadow position with respect to the +position of the text. They can be either positive or negative +values. The default value for both is "0". +

+
+
start_number
+

The starting frame number for the n/frame_num variable. The default value +is "0". +

+
+
tabsize
+

The size in number of spaces to use for rendering the tab. +Default value is 4. +

+
+
timecode
+

Set the initial timecode representation in "hh:mm:ss[:;.]ff" +format. It can be used with or without text parameter. timecode_rate +option must be specified. +

+
+
timecode_rate, rate, r
+

Set the timecode frame rate (timecode only). +

+
+
text
+

The text string to be drawn. The text must be a sequence of UTF-8 +encoded characters. +This parameter is mandatory if no file is specified with the parameter +textfile. +

+
+
textfile
+

A text file containing text to be drawn. The text must be a sequence +of UTF-8 encoded characters. +

+

This parameter is mandatory if no text string is specified with the +parameter text. +

+

If both text and textfile are specified, an error is thrown. +

+
+
reload
+

If set to 1, the textfile will be reloaded before each frame. +Be sure to update it atomically, or it may be read partially, or even fail. +

+
+
x
+
y
+

The expressions which specify the offsets where text will be drawn +within the video frame. They are relative to the top/left border of the +output image. +

+

The default value of x and y is "0". +

+

See below for the list of accepted constants and functions. +

+
+ +

The parameters for x and y are expressions containing the +following constants and functions: +

+
+
dar
+

input display aspect ratio, it is the same as (w / h) * sar +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
line_h, lh
+

the height of each text line +

+
+
main_h, h, H
+

the input height +

+
+
main_w, w, W
+

the input width +

+
+
max_glyph_a, ascent
+

the maximum distance from the baseline to the highest/upper grid +coordinate used to place a glyph outline point, for all the rendered +glyphs. +It is a positive value, due to the grid’s orientation with the Y axis +upwards. +

+
+
max_glyph_d, descent
+

the maximum distance from the baseline to the lowest grid coordinate +used to place a glyph outline point, for all the rendered glyphs. +This is a negative value, due to the grid’s orientation, with the Y axis +upwards. +

+
+
max_glyph_h
+

maximum glyph height, that is the maximum height for all the glyphs +contained in the rendered text, it is equivalent to ascent - +descent. +

+
+
max_glyph_w
+

maximum glyph width, that is the maximum width for all the glyphs +contained in the rendered text +

+
+
n
+

the number of input frame, starting from 0 +

+
+
rand(min, max)
+

return a random number included between min and max +

+
+
sar
+

The input sample aspect ratio. +

+
+
t
+

timestamp expressed in seconds, NAN if the input timestamp is unknown +

+
+
text_h, th
+

the height of the rendered text +

+
+
text_w, tw
+

the width of the rendered text +

+
+
x
+
y
+

the x and y offset coordinates where the text is drawn. +

+

These parameters allow the x and y expressions to refer +each other, so you can for example specify y=x/dar. +

+
+ +

+

+

9.23.2 Text expansion

+ +

If ‘expansion’ is set to strftime, +the filter recognizes strftime() sequences in the provided text and +expands them accordingly. Check the documentation of strftime(). This +feature is deprecated. +

+

If ‘expansion’ is set to none, the text is printed verbatim. +

+

If ‘expansion’ is set to normal (which is the default), +the following expansion mechanism is used. +

+

The backslash character ’\’, followed by any character, always expands to +the second character. +

+

Sequence of the form %{...} are expanded. The text between the +braces is a function name, possibly followed by arguments separated by ’:’. +If the arguments contain special characters or delimiters (’:’ or ’}’), +they should be escaped. +

+

Note that they probably must also be escaped as the value for the +‘text’ option in the filter argument string and as the filter +argument in the filtergraph description, and possibly also for the shell, +that makes up to four levels of escaping; using a text file avoids these +problems. +

+

The following functions are available: +

+
+
expr, e
+

The expression evaluation result. +

+

It must take one argument specifying the expression to be evaluated, +which accepts the same constants and functions as the x and +y values. Note that not all constants should be used, for +example the text size is not known when evaluating the expression, so +the constants text_w and text_h will have an undefined +value. +

+
+
gmtime
+

The time at which the filter is running, expressed in UTC. +It can accept an argument: a strftime() format string. +

+
+
localtime
+

The time at which the filter is running, expressed in the local time zone. +It can accept an argument: a strftime() format string. +

+
+
metadata
+

Frame metadata. It must take one argument specifying metadata key. +

+
+
n, frame_num
+

The frame number, starting from 0. +

+
+
pict_type
+

A 1 character description of the current picture type. +

+
+
pts
+

The timestamp of the current frame, in seconds, with microsecond accuracy. +

+
+
+ + +

9.23.3 Examples

+ +
    +
  • +Draw "Test Text" with font FreeSerif, using the default values for the +optional parameters. + +
     
    drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text'"
    +
    + +
  • +Draw ’Test Text’ with font FreeSerif of size 24 at position x=100 +and y=50 (counting from the top-left corner of the screen), text is +yellow with a red box around it. Both the text and the box have an +opacity of 20%. + +
     
    drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text':\
    +          x=100: y=50: fontsize=24: fontcolor=yellow@0.2: box=1: boxcolor=red@0.2"
    +
    + +

    Note that the double quotes are not necessary if spaces are not used +within the parameter list. +

    +
  • +Show the text at the center of the video frame: +
     
    drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h-line_h)/2"
    +
    + +
  • +Show a text line sliding from right to left in the last row of the video +frame. The file ‘LONG_LINE’ is assumed to contain a single line +with no newlines. +
     
    drawtext="fontsize=15:fontfile=FreeSerif.ttf:text=LONG_LINE:y=h-line_h:x=-50*t"
    +
    + +
  • +Show the content of file ‘CREDITS’ off the bottom of the frame and scroll up. +
     
    drawtext="fontsize=20:fontfile=FreeSerif.ttf:textfile=CREDITS:y=h-20*t"
    +
    + +
  • +Draw a single green letter "g", at the center of the input video. +The glyph baseline is placed at half screen height. +
     
    drawtext="fontsize=60:fontfile=FreeSerif.ttf:fontcolor=green:text=g:x=(w-max_glyph_w)/2:y=h/2-ascent"
    +
    + +
  • +Show text for 1 second every 3 seconds: +
     
    drawtext="fontfile=FreeSerif.ttf:fontcolor=white:x=100:y=x/dar:enable=lt(mod(t\,3)\,1):text='blink'"
    +
    + +
  • +Use fontconfig to set the font. Note that the colons need to be escaped. +
     
    drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'
    +
    + +
  • +Print the date of a real-time encoding (see strftime(3)): +
     
    drawtext='fontfile=FreeSans.ttf:text=%{localtime:%a %b %d %Y}'
    +
    + +
+ +

For more information about libfreetype, check: +http://www.freetype.org/. +

+

For more information about fontconfig, check: +http://freedesktop.org/software/fontconfig/fontconfig-user.html. +

+ +

9.24 edgedetect

+ +

Detect and draw edges. The filter uses the Canny Edge Detection algorithm. +

+

The filter accepts the following options: +

+
+
low
+
high
+

Set low and high threshold values used by the Canny thresholding +algorithm. +

+

The high threshold selects the "strong" edge pixels, which are then +connected through 8-connectivity with the "weak" edge pixels selected +by the low threshold. +

+

low and high threshold values must be chosen in the range +[0,1], and low should be lesser or equal to high. +

+

Default value for low is 20/255, and default value for high +is 50/255. +

+
+ +

Example: +

 
edgedetect=low=0.1:high=0.4
+
+ + +

9.25 extractplanes

+ +

Extract color channel components from input video stream into +separate grayscale video streams. +

+

The filter accepts the following option: +

+
+
planes
+

Set plane(s) to extract. +

+

Available values for planes are: +

+
y
+
u
+
v
+
a
+
r
+
g
+
b
+
+ +

Choosing planes not available in the input will result in an error. +That means you cannot select r, g, b planes +with y, u, v planes at same time. +

+
+ + +

9.25.1 Examples

+ +
    +
  • +Extract luma, u and v color channel component from input video frame +into 3 grayscale outputs: +
     
    ffmpeg -i video.avi -filter_complex 'extractplanes=y+u+v[y][u][v]' -map '[y]' y.avi -map '[u]' u.avi -map '[v]' v.avi
    +
    +
+ + +

9.26 elbg

+ +

Apply a posterize effect using the ELBG (Enhanced LBG) algorithm. +

+

For each input image, the filter will compute the optimal mapping from +the input to the output given the codebook length, that is the number +of distinct output colors. +

+

This filter accepts the following options. +

+
+
codebook_length, l
+

Set codebook length. The value must be a positive integer, and +represents the number of distinct output colors. Default value is 256. +

+
+
nb_steps, n
+

Set the maximum number of iterations to apply for computing the optimal +mapping. The higher the value the better the result and the higher the +computation time. Default value is 1. +

+
+
seed, s
+

Set a random seed, must be an integer included between 0 and +UINT32_MAX. If not specified, or if explicitly set to -1, the filter +will try to use a good random seed on a best effort basis. +

+
+ + +

9.27 fade

+ +

Apply a fade-in/out effect to the input video. +

+

It accepts the following parameters: +

+
+
type, t
+

The effect type can be either "in" for a fade-in, or "out" for a fade-out +effect. +Default is in. +

+
+
start_frame, s
+

Specify the number of the frame to start applying the fade +effect at. Default is 0. +

+
+
nb_frames, n
+

The number of frames that the fade effect lasts. At the end of the +fade-in effect, the output video will have the same intensity as the input video. +At the end of the fade-out transition, the output video will be filled with the +selected ‘color’. +Default is 25. +

+
+
alpha
+

If set to 1, fade only alpha channel, if one exists on the input. +Default value is 0. +

+
+
start_time, st
+

Specify the timestamp (in seconds) of the frame to start to apply the fade +effect. If both start_frame and start_time are specified, the fade will start at +whichever comes last. Default is 0. +

+
+
duration, d
+

The number of seconds for which the fade effect has to last. At the end of the +fade-in effect the output video will have the same intensity as the input video, +at the end of the fade-out transition the output video will be filled with the +selected ‘color’. +If both duration and nb_frames are specified, duration is used. Default is 0. +

+
+
color, c
+

Specify the color of the fade. Default is "black". +

+
+ + +

9.27.1 Examples

+ +
    +
  • +Fade in the first 30 frames of video: +
     
    fade=in:0:30
    +
    + +

    The command above is equivalent to: +

     
    fade=t=in:s=0:n=30
    +
    + +
  • +Fade out the last 45 frames of a 200-frame video: +
     
    fade=out:155:45
    +fade=type=out:start_frame=155:nb_frames=45
    +
    + +
  • +Fade in the first 25 frames and fade out the last 25 frames of a 1000-frame video: +
     
    fade=in:0:25, fade=out:975:25
    +
    + +
  • +Make the first 5 frames yellow, then fade in from frame 5-24: +
     
    fade=in:5:20:color=yellow
    +
    + +
  • +Fade in alpha over first 25 frames of video: +
     
    fade=in:0:25:alpha=1
    +
    + +
  • +Make the first 5.5 seconds black, then fade in for 0.5 seconds: +
     
    fade=t=in:st=5.5:d=0.5
    +
    + +
+ + +

9.28 field

+ +

Extract a single field from an interlaced image using stride +arithmetic to avoid wasting CPU time. The output frames are marked as +non-interlaced. +

+

The filter accepts the following options: +

+
+
type
+

Specify whether to extract the top (if the value is 0 or +top) or the bottom field (if the value is 1 or +bottom). +

+
+ + +

9.29 fieldmatch

+ +

Field matching filter for inverse telecine. It is meant to reconstruct the +progressive frames from a telecined stream. The filter does not drop duplicated +frames, so to achieve a complete inverse telecine fieldmatch needs to be +followed by a decimation filter such as decimate in the filtergraph. +

+

The separation of the field matching and the decimation is notably motivated by +the possibility of inserting a de-interlacing filter fallback between the two. +If the source has mixed telecined and real interlaced content, +fieldmatch will not be able to match fields for the interlaced parts. +But these remaining combed frames will be marked as interlaced, and thus can be +de-interlaced by a later filter such as yadif before decimation. +

+

In addition to the various configuration options, fieldmatch can take an +optional second stream, activated through the ‘ppsrc’ option. If +enabled, the frames reconstruction will be based on the fields and frames from +this second stream. This allows the first input to be pre-processed in order to +help the various algorithms of the filter, while keeping the output lossless +(assuming the fields are matched properly). Typically, a field-aware denoiser, +or brightness/contrast adjustments can help. +

+

Note that this filter uses the same algorithms as TIVTC/TFM (AviSynth project) +and VIVTC/VFM (VapourSynth project). The later is a light clone of TFM from +which fieldmatch is based on. While the semantic and usage are very +close, some behaviour and options names can differ. +

+

The filter accepts the following options: +

+
+
order
+

Specify the assumed field order of the input stream. Available values are: +

+
+
auto
+

Auto detect parity (use FFmpeg’s internal parity value). +

+
bff
+

Assume bottom field first. +

+
tff
+

Assume top field first. +

+
+ +

Note that it is sometimes recommended not to trust the parity announced by the +stream. +

+

Default value is auto. +

+
+
mode
+

Set the matching mode or strategy to use. ‘pc’ mode is the safest in the +sense that it won’t risk creating jerkiness due to duplicate frames when +possible, but if there are bad edits or blended fields it will end up +outputting combed frames when a good match might actually exist. On the other +hand, ‘pcn_ub’ mode is the most risky in terms of creating jerkiness, +but will almost always find a good frame if there is one. The other values are +all somewhere in between ‘pc’ and ‘pcn_ub’ in terms of risking +jerkiness and creating duplicate frames versus finding good matches in sections +with bad edits, orphaned fields, blended fields, etc. +

+

More details about p/c/n/u/b are available in p/c/n/u/b meaning section. +

+

Available values are: +

+
+
pc
+

2-way matching (p/c) +

+
pc_n
+

2-way matching, and trying 3rd match if still combed (p/c + n) +

+
pc_u
+

2-way matching, and trying 3rd match (same order) if still combed (p/c + u) +

+
pc_n_ub
+

2-way matching, trying 3rd match if still combed, and trying 4th/5th matches if +still combed (p/c + n + u/b) +

+
pcn
+

3-way matching (p/c/n) +

+
pcn_ub
+

3-way matching, and trying 4th/5th matches if all 3 of the original matches are +detected as combed (p/c/n + u/b) +

+
+ +

The parenthesis at the end indicate the matches that would be used for that +mode assuming ‘order’=tff (and ‘field’ on auto or +top). +

+

In terms of speed ‘pc’ mode is by far the fastest and ‘pcn_ub’ is +the slowest. +

+

Default value is pc_n. +

+
+
ppsrc
+

Mark the main input stream as a pre-processed input, and enable the secondary +input stream as the clean source to pick the fields from. See the filter +introduction for more details. It is similar to the ‘clip2’ feature from +VFM/TFM. +

+

Default value is 0 (disabled). +

+
+
field
+

Set the field to match from. It is recommended to set this to the same value as +‘order’ unless you experience matching failures with that setting. In +certain circumstances changing the field that is used to match from can have a +large impact on matching performance. Available values are: +

+
+
auto
+

Automatic (same value as ‘order’). +

+
bottom
+

Match from the bottom field. +

+
top
+

Match from the top field. +

+
+ +

Default value is auto. +

+
+
mchroma
+

Set whether or not chroma is included during the match comparisons. In most +cases it is recommended to leave this enabled. You should set this to 0 +only if your clip has bad chroma problems such as heavy rainbowing or other +artifacts. Setting this to 0 could also be used to speed things up at +the cost of some accuracy. +

+

Default value is 1. +

+
+
y0
+
y1
+

These define an exclusion band which excludes the lines between ‘y0’ and +‘y1’ from being included in the field matching decision. An exclusion +band can be used to ignore subtitles, a logo, or other things that may +interfere with the matching. ‘y0’ sets the starting scan line and +‘y1’ sets the ending line; all lines in between ‘y0’ and +‘y1’ (including ‘y0’ and ‘y1’) will be ignored. Setting +‘y0’ and ‘y1’ to the same value will disable the feature. +‘y0’ and ‘y1’ defaults to 0. +

+
+
scthresh
+

Set the scene change detection threshold as a percentage of maximum change on +the luma plane. Good values are in the [8.0, 14.0] range. Scene change +detection is only relevant in case ‘combmatch’=sc. The range for +‘scthresh’ is [0.0, 100.0]. +

+

Default value is 12.0. +

+
+
combmatch
+

When ‘combatch’ is not none, fieldmatch will take into +account the combed scores of matches when deciding what match to use as the +final match. Available values are: +

+
+
none
+

No final matching based on combed scores. +

+
sc
+

Combed scores are only used when a scene change is detected. +

+
full
+

Use combed scores all the time. +

+
+ +

Default is sc. +

+
+
combdbg
+

Force fieldmatch to calculate the combed metrics for certain matches and +print them. This setting is known as ‘micout’ in TFM/VFM vocabulary. +Available values are: +

+
+
none
+

No forced calculation. +

+
pcn
+

Force p/c/n calculations. +

+
pcnub
+

Force p/c/n/u/b calculations. +

+
+ +

Default value is none. +

+
+
cthresh
+

This is the area combing threshold used for combed frame detection. This +essentially controls how "strong" or "visible" combing must be to be detected. +Larger values mean combing must be more visible and smaller values mean combing +can be less visible or strong and still be detected. Valid settings are from +-1 (every pixel will be detected as combed) to 255 (no pixel will +be detected as combed). This is basically a pixel difference value. A good +range is [8, 12]. +

+

Default value is 9. +

+
+
chroma
+

Sets whether or not chroma is considered in the combed frame decision. Only +disable this if your source has chroma problems (rainbowing, etc.) that are +causing problems for the combed frame detection with chroma enabled. Actually, +using ‘chroma’=0 is usually more reliable, except for the case +where there is chroma only combing in the source. +

+

Default value is 0. +

+
+
blockx
+
blocky
+

Respectively set the x-axis and y-axis size of the window used during combed +frame detection. This has to do with the size of the area in which +‘combpel’ pixels are required to be detected as combed for a frame to be +declared combed. See the ‘combpel’ parameter description for more info. +Possible values are any number that is a power of 2 starting at 4 and going up +to 512. +

+

Default value is 16. +

+
+
combpel
+

The number of combed pixels inside any of the ‘blocky’ by +‘blockx’ size blocks on the frame for the frame to be detected as +combed. While ‘cthresh’ controls how "visible" the combing must be, this +setting controls "how much" combing there must be in any localized area (a +window defined by the ‘blockx’ and ‘blocky’ settings) on the +frame. Minimum value is 0 and maximum is blocky x blockx (at +which point no frames will ever be detected as combed). This setting is known +as ‘MI’ in TFM/VFM vocabulary. +

+

Default value is 80. +

+
+ +

+

+

9.29.1 p/c/n/u/b meaning

+ + +

9.29.1.1 p/c/n

+ +

We assume the following telecined stream: +

+
 
Top fields:     1 2 2 3 4
+Bottom fields:  1 2 3 4 4
+
+ +

The numbers correspond to the progressive frame the fields relate to. Here, the +first two frames are progressive, the 3rd and 4th are combed, and so on. +

+

When fieldmatch is configured to run a matching from bottom +(‘field’=bottom) this is how this input stream get transformed: +

+
 
Input stream:
+                T     1 2 2 3 4
+                B     1 2 3 4 4   <-- matching reference
+
+Matches:              c c n n c
+
+Output stream:
+                T     1 2 3 4 4
+                B     1 2 3 4 4
+
+ +

As a result of the field matching, we can see that some frames get duplicated. +To perform a complete inverse telecine, you need to rely on a decimation filter +after this operation. See for instance the decimate filter. +

+

The same operation now matching from top fields (‘field’=top) +looks like this: +

+
 
Input stream:
+                T     1 2 2 3 4   <-- matching reference
+                B     1 2 3 4 4
+
+Matches:              c c p p c
+
+Output stream:
+                T     1 2 2 3 4
+                B     1 2 2 3 4
+
+ +

In these examples, we can see what p, c and n mean; +basically, they refer to the frame and field of the opposite parity: +

+
    +
  • p matches the field of the opposite parity in the previous frame +
  • c matches the field of the opposite parity in the current frame +
  • n matches the field of the opposite parity in the next frame +
+ + +

9.29.1.2 u/b

+ +

The u and b matching are a bit special in the sense that they match +from the opposite parity flag. In the following examples, we assume that we are +currently matching the 2nd frame (Top:2, bottom:2). According to the match, a +’x’ is placed above and below each matched fields. +

+

With bottom matching (‘field’=bottom): +

 
Match:           c         p           n          b          u
+
+                 x       x               x        x          x
+  Top          1 2 2     1 2 2       1 2 2      1 2 2      1 2 2
+  Bottom       1 2 3     1 2 3       1 2 3      1 2 3      1 2 3
+                 x         x           x        x              x
+
+Output frames:
+                 2          1          2          2          2
+                 2          2          2          1          3
+
+ +

With top matching (‘field’=top): +

 
Match:           c         p           n          b          u
+
+                 x         x           x        x              x
+  Top          1 2 2     1 2 2       1 2 2      1 2 2      1 2 2
+  Bottom       1 2 3     1 2 3       1 2 3      1 2 3      1 2 3
+                 x       x               x        x          x
+
+Output frames:
+                 2          2          2          1          2
+                 2          1          3          2          2
+
+ + +

9.29.2 Examples

+ +

Simple IVTC of a top field first telecined stream: +

 
fieldmatch=order=tff:combmatch=none, decimate
+
+ +

Advanced IVTC, with fallback on yadif for still combed frames: +

 
fieldmatch=order=tff:combmatch=full, yadif=deint=interlaced, decimate
+
+ + +

9.30 fieldorder

+ +

Transform the field order of the input video. +

+

It accepts the following parameters: +

+
+
order
+

The output field order. Valid values are tff for top field first or bff +for bottom field first. +

+
+ +

The default value is ‘tff’. +

+

The transformation is done by shifting the picture content up or down +by one line, and filling the remaining line with appropriate picture content. +This method is consistent with most broadcast field order converters. +

+

If the input video is not flagged as being interlaced, or it is already +flagged as being of the required output field order, then this filter does +not alter the incoming video. +

+

It is very useful when converting to or from PAL DV material, +which is bottom field first. +

+

For example: +

 
ffmpeg -i in.vob -vf "fieldorder=bff" out.dv
+
+ + +

9.31 fifo

+ +

Buffer input images and send them when they are requested. +

+

It is mainly useful when auto-inserted by the libavfilter +framework. +

+

It does not take parameters. +

+

+

+

9.32 format

+ +

Convert the input video to one of the specified pixel formats. +Libavfilter will try to pick one that is suitable as input to +the next filter. +

+

It accepts the following parameters: +

+
pix_fmts
+

A ’|’-separated list of pixel format names, such as +"pix_fmts=yuv420p|monow|rgb24". +

+
+
+ + +

9.32.1 Examples

+ +
    +
  • +Convert the input video to the yuv420p format +
     
    format=pix_fmts=yuv420p
    +
    + +

    Convert the input video to any of the formats in the list +

     
    format=pix_fmts=yuv420p|yuv444p|yuv410p
    +
    +
+ +

+

+

9.33 fps

+ +

Convert the video to specified constant frame rate by duplicating or dropping +frames as necessary. +

+

It accepts the following parameters: +

+
fps
+

The desired output frame rate. The default is 25. +

+
+
round
+

Rounding method. +

+

Possible values are: +

+
zero
+

zero round towards 0 +

+
inf
+

round away from 0 +

+
down
+

round towards -infinity +

+
up
+

round towards +infinity +

+
near
+

round to nearest +

+
+

The default is near. +

+
+
start_time
+

Assume the first PTS should be the given value, in seconds. This allows for +padding/trimming at the start of stream. By default, no assumption is made +about the first frame’s expected PTS, so no padding or trimming is done. +For example, this could be set to 0 to pad the beginning with duplicates of +the first frame if a video stream starts after the audio stream or to trim any +frames with a negative PTS. +

+
+
+ +

Alternatively, the options can be specified as a flat string: +fps[:round]. +

+

See also the setpts filter. +

+ +

9.33.1 Examples

+ +
    +
  • +A typical usage in order to set the fps to 25: +
     
    fps=fps=25
    +
    + +
  • +Sets the fps to 24, using abbreviation and rounding method to round to nearest: +
     
    fps=fps=film:round=near
    +
    +
+ + +

9.34 framepack

+ +

Pack two different video streams into a stereoscopic video, setting proper +metadata on supported codecs. The two views should have the same size and +framerate and processing will stop when the shorter video ends. Please note +that you may conveniently adjust view properties with the scale and +fps filters. +

+

It accepts the following parameters: +

+
format
+

The desired packing format. Supported values are: +

+
+
sbs
+

The views are next to each other (default). +

+
+
tab
+

The views are on top of each other. +

+
+
lines
+

The views are packed by line. +

+
+
columns
+

The views are packed by column. +

+
+
frameseq
+

The views are temporally interleaved. +

+
+
+ +
+
+ +

Some examples: +

+
 
# Convert left and right views into a frame-sequential video
+ffmpeg -i LEFT -i RIGHT -filter_complex framepack=frameseq OUTPUT
+
+# Convert views into a side-by-side video with the same output resolution as the input
+ffmpeg -i LEFT -i RIGHT -filter_complex [0:v]scale=w=iw/2[left],[1:v]scale=w=iw/2[right],[left][right]framepack=sbs OUTPUT
+
+ + +

9.35 framestep

+ +

Select one frame every N-th frame. +

+

This filter accepts the following option: +

+
step
+

Select frame after every step frames. +Allowed values are positive integers higher than 0. Default value is 1. +

+
+ +

+

+

9.36 frei0r

+ +

Apply a frei0r effect to the input video. +

+

To enable the compilation of this filter, you need to install the frei0r +header and configure FFmpeg with --enable-frei0r. +

+

It accepts the following parameters: +

+
+
filter_name
+

The name of the frei0r effect to load. If the environment variable +FREI0R_PATH is defined, the frei0r effect is searched for in each of the +directories specified by the colon-separated list in FREIOR_PATH. +Otherwise, the standard frei0r paths are searched, in this order: +‘HOME/.frei0r-1/lib/’, ‘/usr/local/lib/frei0r-1/’, +‘/usr/lib/frei0r-1/’. +

+
+
filter_params
+

A ’|’-separated list of parameters to pass to the frei0r effect. +

+
+
+ +

A frei0r effect parameter can be a boolean (its value is either +"y" or "n"), a double, a color (specified as +R/G/B, where R, G, and B are floating point +numbers between 0.0 and 1.0, inclusive) or by a color description specified in the "Color" +section in the ffmpeg-utils manual), a position (specified as X/Y, where +X and Y are floating point numbers) and/or a string. +

+

The number and types of parameters depend on the loaded effect. If an +effect parameter is not specified, the default value is set. +

+ +

9.36.1 Examples

+ +
    +
  • +Apply the distort0r effect, setting the first two double parameters: +
     
    frei0r=filter_name=distort0r:filter_params=0.5|0.01
    +
    + +
  • +Apply the colordistance effect, taking a color as the first parameter: +
     
    frei0r=colordistance:0.2/0.3/0.4
    +frei0r=colordistance:violet
    +frei0r=colordistance:0x112233
    +
    + +
  • +Apply the perspective effect, specifying the top left and top right image +positions: +
     
    frei0r=perspective:0.2/0.2|0.8/0.2
    +
    +
+ +

For more information, see +http://frei0r.dyne.org +

+ +

9.37 geq

+ +

The filter accepts the following options: +

+
+
lum_expr, lum
+

Set the luminance expression. +

+
cb_expr, cb
+

Set the chrominance blue expression. +

+
cr_expr, cr
+

Set the chrominance red expression. +

+
alpha_expr, a
+

Set the alpha expression. +

+
red_expr, r
+

Set the red expression. +

+
green_expr, g
+

Set the green expression. +

+
blue_expr, b
+

Set the blue expression. +

+
+ +

The colorspace is selected according to the specified options. If one +of the ‘lum_expr’, ‘cb_expr’, or ‘cr_expr’ +options is specified, the filter will automatically select a YCbCr +colorspace. If one of the ‘red_expr’, ‘green_expr’, or +‘blue_expr’ options is specified, it will select an RGB +colorspace. +

+

If one of the chrominance expression is not defined, it falls back on the other +one. If no alpha expression is specified it will evaluate to opaque value. +If none of chrominance expressions are specified, they will evaluate +to the luminance expression. +

+

The expressions can use the following variables and functions: +

+
+
N
+

The sequential number of the filtered frame, starting from 0. +

+
+
X
+
Y
+

The coordinates of the current sample. +

+
+
W
+
H
+

The width and height of the image. +

+
+
SW
+
SH
+

Width and height scale depending on the currently filtered plane. It is the +ratio between the corresponding luma plane number of pixels and the current +plane ones. E.g. for YUV4:2:0 the values are 1,1 for the luma plane, and +0.5,0.5 for chroma planes. +

+
+
T
+

Time of the current frame, expressed in seconds. +

+
+
p(x, y)
+

Return the value of the pixel at location (x,y) of the current +plane. +

+
+
lum(x, y)
+

Return the value of the pixel at location (x,y) of the luminance +plane. +

+
+
cb(x, y)
+

Return the value of the pixel at location (x,y) of the +blue-difference chroma plane. Return 0 if there is no such plane. +

+
+
cr(x, y)
+

Return the value of the pixel at location (x,y) of the +red-difference chroma plane. Return 0 if there is no such plane. +

+
+
r(x, y)
+
g(x, y)
+
b(x, y)
+

Return the value of the pixel at location (x,y) of the +red/green/blue component. Return 0 if there is no such component. +

+
+
alpha(x, y)
+

Return the value of the pixel at location (x,y) of the alpha +plane. Return 0 if there is no such plane. +

+
+ +

For functions, if x and y are outside the area, the value will be +automatically clipped to the closer edge. +

+ +

9.37.1 Examples

+ +
    +
  • +Flip the image horizontally: +
     
    geq=p(W-X\,Y)
    +
    + +
  • +Generate a bidimensional sine wave, with angle PI/3 and a +wavelength of 100 pixels: +
     
    geq=128 + 100*sin(2*(PI/100)*(cos(PI/3)*(X-50*T) + sin(PI/3)*Y)):128:128
    +
    + +
  • +Generate a fancy enigmatic moving light: +
     
    nullsrc=s=256x256,geq=random(1)/hypot(X-cos(N*0.07)*W/2-W/2\,Y-sin(N*0.09)*H/2-H/2)^2*1000000*sin(N*0.02):128:128
    +
    + +
  • +Generate a quick emboss effect: +
     
    format=gray,geq=lum_expr='(p(X,Y)+(256-p(X-4,Y-4)))/2'
    +
    + +
  • +Modify RGB components depending on pixel position: +
     
    geq=r='X/W*r(X,Y)':g='(1-X/W)*g(X,Y)':b='(H-Y)/H*b(X,Y)'
    +
    +
+ + +

9.38 gradfun

+ +

Fix the banding artifacts that are sometimes introduced into nearly flat +regions by truncation to 8bit color depth. +Interpolate the gradients that should go where the bands are, and +dither them. +

+

It is designed for playback only. Do not use it prior to +lossy compression, because compression tends to lose the dither and +bring back the bands. +

+

It accepts the following parameters: +

+
+
strength
+

The maximum amount by which the filter will change any one pixel. This is also +the threshold for detecting nearly flat regions. Acceptable values range from +.51 to 64; the default value is 1.2. Out-of-range values will be clipped to the +valid range. +

+
+
radius
+

The neighborhood to fit the gradient to. A larger radius makes for smoother +gradients, but also prevents the filter from modifying the pixels near detailed +regions. Acceptable values are 8-32; the default value is 16. Out-of-range +values will be clipped to the valid range. +

+
+
+ +

Alternatively, the options can be specified as a flat string: +strength[:radius] +

+ +

9.38.1 Examples

+ +
    +
  • +Apply the filter with a 3.5 strength and radius of 8: +
     
    gradfun=3.5:8
    +
    + +
  • +Specify radius, omitting the strength (which will fall-back to the default +value): +
     
    gradfun=radius=8
    +
    + +
+ +

+

+

9.39 haldclut

+ +

Apply a Hald CLUT to a video stream. +

+

First input is the video stream to process, and second one is the Hald CLUT. +The Hald CLUT input can be a simple picture or a complete video stream. +

+

The filter accepts the following options: +

+
+
shortest
+

Force termination when the shortest input terminates. Default is 0. +

+
repeatlast
+

Continue applying the last CLUT after the end of the stream. A value of +0 disable the filter after the last frame of the CLUT is reached. +Default is 1. +

+
+ +

haldclut also has the same interpolation options as lut3d (both +filters share the same internals). +

+

More information about the Hald CLUT can be found on Eskil Steenberg’s website +(Hald CLUT author) at http://www.quelsolaar.com/technology/clut.html. +

+ +

9.39.1 Workflow examples

+ + +

9.39.1.1 Hald CLUT video stream

+ +

Generate an identity Hald CLUT stream altered with various effects: +

 
ffmpeg -f lavfi -i haldclutsrc=8 -vf "hue=H=2*PI*t:s=sin(2*PI*t)+1, curves=cross_process" -t 10 -c:v ffv1 clut.nut
+
+ +

Note: make sure you use a lossless codec. +

+

Then use it with haldclut to apply it on some random stream: +

 
ffmpeg -f lavfi -i mandelbrot -i clut.nut -filter_complex '[0][1] haldclut' -t 20 mandelclut.mkv
+
+ +

The Hald CLUT will be applied to the 10 first seconds (duration of +‘clut.nut’), then the latest picture of that CLUT stream will be applied +to the remaining frames of the mandelbrot stream. +

+ +

9.39.1.2 Hald CLUT with preview

+ +

A Hald CLUT is supposed to be a squared image of Level*Level*Level by +Level*Level*Level pixels. For a given Hald CLUT, FFmpeg will select the +biggest possible square starting at the top left of the picture. The remaining +padding pixels (bottom or right) will be ignored. This area can be used to add +a preview of the Hald CLUT. +

+

Typically, the following generated Hald CLUT will be supported by the +haldclut filter: +

+
 
ffmpeg -f lavfi -i haldclutsrc=8 -vf "
+   pad=iw+320 [padded_clut];
+   smptebars=s=320x256, split [a][b];
+   [padded_clut][a] overlay=W-320:h, curves=color_negative [main];
+   [main][b] overlay=W-320" -frames:v 1 clut.png
+
+ +

It contains the original and a preview of the effect of the CLUT: SMPTE color +bars are displayed on the right-top, and below the same color bars processed by +the color changes. +

+

Then, the effect of this Hald CLUT can be visualized with: +

 
ffplay input.mkv -vf "movie=clut.png, [in] haldclut"
+
+ + +

9.40 hflip

+ +

Flip the input video horizontally. +

+

For example, to horizontally flip the input video with ffmpeg: +

 
ffmpeg -i in.avi -vf "hflip" out.avi
+
+ + +

9.41 histeq

+

This filter applies a global color histogram equalization on a +per-frame basis. +

+

It can be used to correct video that has a compressed range of pixel +intensities. The filter redistributes the pixel intensities to +equalize their distribution across the intensity range. It may be +viewed as an "automatically adjusting contrast filter". This filter is +useful only for correcting degraded or poorly captured source +video. +

+

The filter accepts the following options: +

+
+
strength
+

Determine the amount of equalization to be applied. As the strength +is reduced, the distribution of pixel intensities more-and-more +approaches that of the input frame. The value must be a float number +in the range [0,1] and defaults to 0.200. +

+
+
intensity
+

Set the maximum intensity that can generated and scale the output +values appropriately. The strength should be set as desired and then +the intensity can be limited if needed to avoid washing-out. The value +must be a float number in the range [0,1] and defaults to 0.210. +

+
+
antibanding
+

Set the antibanding level. If enabled the filter will randomly vary +the luminance of output pixels by a small amount to avoid banding of +the histogram. Possible values are none, weak or +strong. It defaults to none. +

+
+ + +

9.42 histogram

+ +

Compute and draw a color distribution histogram for the input video. +

+

The computed histogram is a representation of the color component +distribution in an image. +

+

The filter accepts the following options: +

+
+
mode
+

Set histogram mode. +

+

It accepts the following values: +

+
levels
+

Standard histogram that displays the color components distribution in an +image. Displays color graph for each color component. Shows distribution of +the Y, U, V, A or R, G, B components, depending on input format, in the +current frame. Below each graph a color component scale meter is shown. +

+
+
color
+

Displays chroma values (U/V color placement) in a two dimensional +graph (which is called a vectorscope). The brighter a pixel in the +vectorscope, the more pixels of the input frame correspond to that pixel +(i.e., more pixels have this chroma value). The V component is displayed on +the horizontal (X) axis, with the leftmost side being V = 0 and the rightmost +side being V = 255. The U component is displayed on the vertical (Y) axis, +with the top representing U = 0 and the bottom representing U = 255. +

+

The position of a white pixel in the graph corresponds to the chroma value of +a pixel of the input clip. The graph can therefore be used to read the hue +(color flavor) and the saturation (the dominance of the hue in the color). As +the hue of a color changes, it moves around the square. At the center of the +square the saturation is zero, which means that the corresponding pixel has no +color. If the amount of a specific color is increased (while leaving the other +colors unchanged) the saturation increases, and the indicator moves towards +the edge of the square. +

+
+
color2
+

Chroma values in vectorscope, similar as color but actual chroma values +are displayed. +

+
+
waveform
+

Per row/column color component graph. In row mode, the graph on the left side +represents color component value 0 and the right side represents value = 255. +In column mode, the top side represents color component value = 0 and bottom +side represents value = 255. +

+
+

Default value is levels. +

+
+
level_height
+

Set height of level in levels. Default value is 200. +Allowed range is [50, 2048]. +

+
+
scale_height
+

Set height of color scale in levels. Default value is 12. +Allowed range is [0, 40]. +

+
+
step
+

Set step for waveform mode. Smaller values are useful to find out how +many values of the same luminance are distributed across input rows/columns. +Default value is 10. Allowed range is [1, 255]. +

+
+
waveform_mode
+

Set mode for waveform. Can be either row, or column. +Default is row. +

+
+
waveform_mirror
+

Set mirroring mode for waveform. 0 means unmirrored, 1 +means mirrored. In mirrored mode, higher values will be represented on the left +side for row mode and at the top for column mode. Default is +0 (unmirrored). +

+
+
display_mode
+

Set display mode for waveform and levels. +It accepts the following values: +

+
parade
+

Display separate graph for the color components side by side in +row waveform mode or one below the other in column waveform mode +for waveform histogram mode. For levels histogram mode, +per color component graphs are placed below each other. +

+

Using this display mode in waveform histogram mode makes it easy to +spot color casts in the highlights and shadows of an image, by comparing the +contours of the top and the bottom graphs of each waveform. Since whites, +grays, and blacks are characterized by exactly equal amounts of red, green, +and blue, neutral areas of the picture should display three waveforms of +roughly equal width/height. If not, the correction is easy to perform by +making level adjustments the three waveforms. +

+
+
overlay
+

Presents information identical to that in the parade, except +that the graphs representing color components are superimposed directly +over one another. +

+

This display mode in waveform histogram mode makes it easier to spot +relative differences or similarities in overlapping areas of the color +components that are supposed to be identical, such as neutral whites, grays, +or blacks. +

+
+

Default is parade. +

+
+
levels_mode
+

Set mode for levels. Can be either linear, or logarithmic. +Default is linear. +

+
+ + +

9.42.1 Examples

+ +
    +
  • +Calculate and draw histogram: +
     
    ffplay -i input -vf histogram
    +
    + +
+ +

+

+

9.43 hqdn3d

+ +

This is a high precision/quality 3d denoise filter. It aims to reduce +image noise, producing smooth images and making still images really +still. It should enhance compressibility. +

+

It accepts the following optional parameters: +

+
+
luma_spatial
+

A non-negative floating point number which specifies spatial luma strength. +It defaults to 4.0. +

+
+
chroma_spatial
+

A non-negative floating point number which specifies spatial chroma strength. +It defaults to 3.0*luma_spatial/4.0. +

+
+
luma_tmp
+

A floating point number which specifies luma temporal strength. It defaults to +6.0*luma_spatial/4.0. +

+
+
chroma_tmp
+

A floating point number which specifies chroma temporal strength. It defaults to +luma_tmp*chroma_spatial/luma_spatial. +

+
+ + +

9.44 hue

+ +

Modify the hue and/or the saturation of the input. +

+

It accepts the following parameters: +

+
+
h
+

Specify the hue angle as a number of degrees. It accepts an expression, +and defaults to "0". +

+
+
s
+

Specify the saturation in the [-10,10] range. It accepts an expression and +defaults to "1". +

+
+
H
+

Specify the hue angle as a number of radians. It accepts an +expression, and defaults to "0". +

+
+
b
+

Specify the brightness in the [-10,10] range. It accepts an expression and +defaults to "0". +

+
+ +

h’ and ‘H’ are mutually exclusive, and can’t be +specified at the same time. +

+

The ‘b’, ‘h’, ‘H’ and ‘s’ option values are +expressions containing the following constants: +

+
+
n
+

frame count of the input frame starting from 0 +

+
+
pts
+

presentation timestamp of the input frame expressed in time base units +

+
+
r
+

frame rate of the input video, NAN if the input frame rate is unknown +

+
+
t
+

timestamp expressed in seconds, NAN if the input timestamp is unknown +

+
+
tb
+

time base of the input video +

+
+ + +

9.44.1 Examples

+ +
    +
  • +Set the hue to 90 degrees and the saturation to 1.0: +
     
    hue=h=90:s=1
    +
    + +
  • +Same command but expressing the hue in radians: +
     
    hue=H=PI/2:s=1
    +
    + +
  • +Rotate hue and make the saturation swing between 0 +and 2 over a period of 1 second: +
     
    hue="H=2*PI*t: s=sin(2*PI*t)+1"
    +
    + +
  • +Apply a 3 seconds saturation fade-in effect starting at 0: +
     
    hue="s=min(t/3\,1)"
    +
    + +

    The general fade-in expression can be written as: +

     
    hue="s=min(0\, max((t-START)/DURATION\, 1))"
    +
    + +
  • +Apply a 3 seconds saturation fade-out effect starting at 5 seconds: +
     
    hue="s=max(0\, min(1\, (8-t)/3))"
    +
    + +

    The general fade-out expression can be written as: +

     
    hue="s=max(0\, min(1\, (START+DURATION-t)/DURATION))"
    +
    + +
+ + +

9.44.2 Commands

+ +

This filter supports the following commands: +

+
b
+
s
+
h
+
H
+

Modify the hue and/or the saturation and/or brightness of the input video. +The command accepts the same syntax of the corresponding option. +

+

If the specified expression is not valid, it is kept at its current +value. +

+
+ + +

9.45 idet

+ +

Detect video interlacing type. +

+

This filter tries to detect if the input is interlaced or progressive, +top or bottom field first. +

+

The filter accepts the following options: +

+
+
intl_thres
+

Set interlacing threshold. +

+
prog_thres
+

Set progressive threshold. +

+
+ + +

9.46 il

+ +

Deinterleave or interleave fields. +

+

This filter allows one to process interlaced images fields without +deinterlacing them. Deinterleaving splits the input frame into 2 +fields (so called half pictures). Odd lines are moved to the top +half of the output image, even lines to the bottom half. +You can process (filter) them independently and then re-interleave them. +

+

The filter accepts the following options: +

+
+
luma_mode, l
+
chroma_mode, c
+
alpha_mode, a
+

Available values for luma_mode, chroma_mode and +alpha_mode are: +

+
+
none
+

Do nothing. +

+
+
deinterleave, d
+

Deinterleave fields, placing one above the other. +

+
+
interleave, i
+

Interleave fields. Reverse the effect of deinterleaving. +

+
+

Default value is none. +

+
+
luma_swap, ls
+
chroma_swap, cs
+
alpha_swap, as
+

Swap luma/chroma/alpha fields. Exchange even & odd lines. Default value is 0. +

+
+ + +

9.47 interlace

+ +

Simple interlacing filter from progressive contents. This interleaves upper (or +lower) lines from odd frames with lower (or upper) lines from even frames, +halving the frame rate and preserving image height. A vertical lowpass filter +is always applied in order to avoid twitter effects and reduce moiré patterns. +

+
 
   Original        Original             New Frame
+   Frame 'j'      Frame 'j+1'             (tff)
+  ==========      ===========       ==================
+    Line 0  -------------------->    Frame 'j' Line 0
+    Line 1          Line 1  ---->   Frame 'j+1' Line 1
+    Line 2 --------------------->    Frame 'j' Line 2
+    Line 3          Line 3  ---->   Frame 'j+1' Line 3
+     ...             ...                   ...
+New Frame + 1 will be generated by Frame 'j+2' and Frame 'j+3' and so on
+
+ +

It accepts the following optional parameters: +

+
+
scan
+

This determines whether the interlaced frame is taken from the even +(tff - default) or odd (bff) lines of the progressive frame. +

+
+ + +

9.48 kerndeint

+ +

Deinterlace input video by applying Donald Graft’s adaptive kernel +deinterling. Work on interlaced parts of a video to produce +progressive frames. +

+

The description of the accepted parameters follows. +

+
+
thresh
+

Set the threshold which affects the filter’s tolerance when +determining if a pixel line must be processed. It must be an integer +in the range [0,255] and defaults to 10. A value of 0 will result in +applying the process on every pixels. +

+
+
map
+

Paint pixels exceeding the threshold value to white if set to 1. +Default is 0. +

+
+
order
+

Set the fields order. Swap fields if set to 1, leave fields alone if +0. Default is 0. +

+
+
sharp
+

Enable additional sharpening if set to 1. Default is 0. +

+
+
twoway
+

Enable twoway sharpening if set to 1. Default is 0. +

+
+ + +

9.48.1 Examples

+ +
    +
  • +Apply default values: +
     
    kerndeint=thresh=10:map=0:order=0:sharp=0:twoway=0
    +
    + +
  • +Enable additional sharpening: +
     
    kerndeint=sharp=1
    +
    + +
  • +Paint processed pixels in white: +
     
    kerndeint=map=1
    +
    +
+ +

+

+

9.49 lut3d

+ +

Apply a 3D LUT to an input video. +

+

The filter accepts the following options: +

+
+
file
+

Set the 3D LUT file name. +

+

Currently supported formats: +

+
3dl
+

AfterEffects +

+
cube
+

Iridas +

+
dat
+

DaVinci +

+
m3d
+

Pandora +

+
+
+
interp
+

Select interpolation mode. +

+

Available values are: +

+
+
nearest
+

Use values from the nearest defined point. +

+
trilinear
+

Interpolate values using the 8 points defining a cube. +

+
tetrahedral
+

Interpolate values using a tetrahedron. +

+
+
+
+ + +

9.50 lut, lutrgb, lutyuv

+ +

Compute a look-up table for binding each pixel component input value +to an output value, and apply it to the input video. +

+

lutyuv applies a lookup table to a YUV input video, lutrgb +to an RGB input video. +

+

These filters accept the following parameters: +

+
c0
+

set first pixel component expression +

+
c1
+

set second pixel component expression +

+
c2
+

set third pixel component expression +

+
c3
+

set fourth pixel component expression, corresponds to the alpha component +

+
+
r
+

set red component expression +

+
g
+

set green component expression +

+
b
+

set blue component expression +

+
a
+

alpha component expression +

+
+
y
+

set Y/luminance component expression +

+
u
+

set U/Cb component expression +

+
v
+

set V/Cr component expression +

+
+ +

Each of them specifies the expression to use for computing the lookup table for +the corresponding pixel component values. +

+

The exact component associated to each of the c* options depends on the +format in input. +

+

The lut filter requires either YUV or RGB pixel formats in input, +lutrgb requires RGB pixel formats in input, and lutyuv requires YUV. +

+

The expressions can contain the following constants and functions: +

+
+
w
+
h
+

The input width and height. +

+
+
val
+

The input value for the pixel component. +

+
+
clipval
+

The input value, clipped to the minval-maxval range. +

+
+
maxval
+

The maximum value for the pixel component. +

+
+
minval
+

The minimum value for the pixel component. +

+
+
negval
+

The negated value for the pixel component value, clipped to the +minval-maxval range; it corresponds to the expression +"maxval-clipval+minval". +

+
+
clip(val)
+

The computed value in val, clipped to the +minval-maxval range. +

+
+
gammaval(gamma)
+

The computed gamma correction value of the pixel component value, +clipped to the minval-maxval range. It corresponds to the +expression +"pow((clipval-minval)/(maxval-minval)\,gamma)*(maxval-minval)+minval" +

+
+
+ +

All expressions default to "val". +

+ +

9.50.1 Examples

+ +
    +
  • +Negate input video: +
     
    lutrgb="r=maxval+minval-val:g=maxval+minval-val:b=maxval+minval-val"
    +lutyuv="y=maxval+minval-val:u=maxval+minval-val:v=maxval+minval-val"
    +
    + +

    The above is the same as: +

     
    lutrgb="r=negval:g=negval:b=negval"
    +lutyuv="y=negval:u=negval:v=negval"
    +
    + +
  • +Negate luminance: +
     
    lutyuv=y=negval
    +
    + +
  • +Remove chroma components, turning the video into a graytone image: +
     
    lutyuv="u=128:v=128"
    +
    + +
  • +Apply a luma burning effect: +
     
    lutyuv="y=2*val"
    +
    + +
  • +Remove green and blue components: +
     
    lutrgb="g=0:b=0"
    +
    + +
  • +Set a constant alpha channel value on input: +
     
    format=rgba,lutrgb=a="maxval-minval/2"
    +
    + +
  • +Correct luminance gamma by a factor of 0.5: +
     
    lutyuv=y=gammaval(0.5)
    +
    + +
  • +Discard least significant bits of luma: +
     
    lutyuv=y='bitand(val, 128+64+32)'
    +
    +
+ + +

9.51 mergeplanes

+ +

Merge color channel components from several video streams. +

+

The filter accepts up to 4 input streams, and merge selected input +planes to the output video. +

+

This filter accepts the following options: +

+
mapping
+

Set input to output plane mapping. Default is 0. +

+

The mappings is specified as a bitmap. It should be specified as a +hexadecimal number in the form 0xAa[Bb[Cc[Dd]]]. ’Aa’ describes the +mapping for the first plane of the output stream. ’A’ sets the number of +the input stream to use (from 0 to 3), and ’a’ the plane number of the +corresponding input to use (from 0 to 3). The rest of the mappings is +similar, ’Bb’ describes the mapping for the output stream second +plane, ’Cc’ describes the mapping for the output stream third plane and +’Dd’ describes the mapping for the output stream fourth plane. +

+
+
format
+

Set output pixel format. Default is yuva444p. +

+
+ + +

9.51.1 Examples

+ +
    +
  • +Merge three gray video streams of same width and height into single video stream: +
     
    [a0][a1][a2]mergeplanes=0x001020:yuv444p
    +
    + +
  • +Merge 1st yuv444p stream and 2nd gray video stream into yuva444p video stream: +
     
    [a0][a1]mergeplanes=0x00010210:yuva444p
    +
    + +
  • +Swap Y and A plane in yuva444p stream: +
     
    format=yuva444p,mergeplanes=0x03010200:yuva444p
    +
    + +
  • +Swap U and V plane in yuv420p stream: +
     
    format=yuv420p,mergeplanes=0x000201:yuv420p
    +
    + +
  • +Cast a rgb24 clip to yuv444p: +
     
    format=rgb24,mergeplanes=0x000102:yuv444p
    +
    +
+ + +

9.52 mcdeint

+ +

Apply motion-compensation deinterlacing. +

+

It needs one field per frame as input and must thus be used together +with yadif=1/3 or equivalent. +

+

This filter accepts the following options: +

+
mode
+

Set the deinterlacing mode. +

+

It accepts one of the following values: +

+
fast
+
medium
+
slow
+

use iterative motion estimation +

+
extra_slow
+

like ‘slow’, but use multiple reference frames. +

+
+

Default value is ‘fast’. +

+
+
parity
+

Set the picture field parity assumed for the input video. It must be +one of the following values: +

+
+
0, tff
+

assume top field first +

+
1, bff
+

assume bottom field first +

+
+ +

Default value is ‘bff’. +

+
+
qp
+

Set per-block quantization parameter (QP) used by the internal +encoder. +

+

Higher values should result in a smoother motion vector field but less +optimal individual vectors. Default value is 1. +

+
+ + +

9.53 mp

+ +

Apply an MPlayer filter to the input video. +

+

This filter provides a wrapper around some of the filters of +MPlayer/MEncoder. +

+

This wrapper is considered experimental. Some of the wrapped filters +may not work properly and we may drop support for them, as they will +be implemented natively into FFmpeg. Thus you should avoid +depending on them when writing portable scripts. +

+

The filter accepts the parameters: +filter_name[:=]filter_params +

+

filter_name is the name of a supported MPlayer filter, +filter_params is a string containing the parameters accepted by +the named filter. +

+

The list of the currently supported filters follows: +

+
eq2
+
eq
+
fspp
+
ilpack
+
pp7
+
softpulldown
+
uspp
+
+ +

The parameter syntax and behavior for the listed filters are the same +of the corresponding MPlayer filters. For detailed instructions check +the "VIDEO FILTERS" section in the MPlayer manual. +

+ +

9.53.1 Examples

+ +
    +
  • +Adjust gamma, brightness, contrast: +
     
    mp=eq2=1.0:2:0.5
    +
    +
+ +

See also mplayer(1), http://www.mplayerhq.hu/. +

+ +

9.54 mpdecimate

+ +

Drop frames that do not differ greatly from the previous frame in +order to reduce frame rate. +

+

The main use of this filter is for very-low-bitrate encoding +(e.g. streaming over dialup modem), but it could in theory be used for +fixing movies that were inverse-telecined incorrectly. +

+

A description of the accepted options follows. +

+
+
max
+

Set the maximum number of consecutive frames which can be dropped (if +positive), or the minimum interval between dropped frames (if +negative). If the value is 0, the frame is dropped unregarding the +number of previous sequentially dropped frames. +

+

Default value is 0. +

+
+
hi
+
lo
+
frac
+

Set the dropping threshold values. +

+

Values for ‘hi’ and ‘lo’ are for 8x8 pixel blocks and +represent actual pixel value differences, so a threshold of 64 +corresponds to 1 unit of difference for each pixel, or the same spread +out differently over the block. +

+

A frame is a candidate for dropping if no 8x8 blocks differ by more +than a threshold of ‘hi’, and if no more than ‘frac’ blocks (1 +meaning the whole image) differ by more than a threshold of ‘lo’. +

+

Default value for ‘hi’ is 64*12, default value for ‘lo’ is +64*5, and default value for ‘frac’ is 0.33. +

+
+ + + +

9.55 negate

+ +

Negate input video. +

+

It accepts an integer in input; if non-zero it negates the +alpha component (if available). The default value in input is 0. +

+ +

9.56 noformat

+ +

Force libavfilter not to use any of the specified pixel formats for the +input to the next filter. +

+

It accepts the following parameters: +

+
pix_fmts
+

A ’|’-separated list of pixel format names, such as +apix_fmts=yuv420p|monow|rgb24". +

+
+
+ + +

9.56.1 Examples

+ +
    +
  • +Force libavfilter to use a format different from yuv420p for the +input to the vflip filter: +
     
    noformat=pix_fmts=yuv420p,vflip
    +
    + +
  • +Convert the input video to any of the formats not contained in the list: +
     
    noformat=yuv420p|yuv444p|yuv410p
    +
    +
+ + +

9.57 noise

+ +

Add noise on video input frame. +

+

The filter accepts the following options: +

+
+
all_seed
+
c0_seed
+
c1_seed
+
c2_seed
+
c3_seed
+

Set noise seed for specific pixel component or all pixel components in case +of all_seed. Default value is 123457. +

+
+
all_strength, alls
+
c0_strength, c0s
+
c1_strength, c1s
+
c2_strength, c2s
+
c3_strength, c3s
+

Set noise strength for specific pixel component or all pixel components in case +all_strength. Default value is 0. Allowed range is [0, 100]. +

+
+
all_flags, allf
+
c0_flags, c0f
+
c1_flags, c1f
+
c2_flags, c2f
+
c3_flags, c3f
+

Set pixel component flags or set flags for all components if all_flags. +Available values for component flags are: +

+
a
+

averaged temporal noise (smoother) +

+
p
+

mix random noise with a (semi)regular pattern +

+
t
+

temporal noise (noise pattern changes between frames) +

+
u
+

uniform noise (gaussian otherwise) +

+
+
+
+ + +

9.57.1 Examples

+ +

Add temporal and uniform noise to input video: +

 
noise=alls=20:allf=t+u
+
+ + +

9.58 null

+ +

Pass the video source unchanged to the output. +

+ +

9.59 ocv

+ +

Apply a video transform using libopencv. +

+

To enable this filter, install the libopencv library and headers and +configure FFmpeg with --enable-libopencv. +

+

It accepts the following parameters: +

+
+
filter_name
+

The name of the libopencv filter to apply. +

+
+
filter_params
+

The parameters to pass to the libopencv filter. If not specified, the default +values are assumed. +

+
+
+ +

Refer to the official libopencv documentation for more precise +information: +http://opencv.willowgarage.com/documentation/c/image_filtering.html +

+

Several libopencv filters are supported; see the following subsections. +

+

+

+

9.59.1 dilate

+ +

Dilate an image by using a specific structuring element. +It corresponds to the libopencv function cvDilate. +

+

It accepts the parameters: struct_el|nb_iterations. +

+

struct_el represents a structuring element, and has the syntax: +colsxrows+anchor_xxanchor_y/shape +

+

cols and rows represent the number of columns and rows of +the structuring element, anchor_x and anchor_y the anchor +point, and shape the shape for the structuring element. shape +must be "rect", "cross", "ellipse", or "custom". +

+

If the value for shape is "custom", it must be followed by a +string of the form "=filename". The file with name +filename is assumed to represent a binary image, with each +printable character corresponding to a bright pixel. When a custom +shape is used, cols and rows are ignored, the number +or columns and rows of the read file are assumed instead. +

+

The default value for struct_el is "3x3+0x0/rect". +

+

nb_iterations specifies the number of times the transform is +applied to the image, and defaults to 1. +

+

Some examples: +

 
# Use the default values
+ocv=dilate
+
+# Dilate using a structuring element with a 5x5 cross, iterating two times
+ocv=filter_name=dilate:filter_params=5x5+2x2/cross|2
+
+# Read the shape from the file diamond.shape, iterating two times.
+# The file diamond.shape may contain a pattern of characters like this
+#   *
+#  ***
+# *****
+#  ***
+#   *
+# The specified columns and rows are ignored
+# but the anchor point coordinates are not
+ocv=dilate:0x0+2x2/custom=diamond.shape|2
+
+ + +

9.59.2 erode

+ +

Erode an image by using a specific structuring element. +It corresponds to the libopencv function cvErode. +

+

It accepts the parameters: struct_el:nb_iterations, +with the same syntax and semantics as the dilate filter. +

+ +

9.59.3 smooth

+ +

Smooth the input video. +

+

The filter takes the following parameters: +type|param1|param2|param3|param4. +

+

type is the type of smooth filter to apply, and must be one of +the following values: "blur", "blur_no_scale", "median", "gaussian", +or "bilateral". The default value is "gaussian". +

+

The meaning of param1, param2, param3, and param4 +depend on the smooth type. param1 and +param2 accept integer positive values or 0. param3 and +param4 accept floating point values. +

+

The default value for param1 is 3. The default value for the +other parameters is 0. +

+

These parameters correspond to the parameters assigned to the +libopencv function cvSmooth. +

+

+

+

9.60 overlay

+ +

Overlay one video on top of another. +

+

It takes two inputs and has one output. The first input is the "main" +video on which the second input is overlayed. +

+

It accepts the following parameters: +

+

A description of the accepted options follows. +

+
+
x
+
y
+

Set the expression for the x and y coordinates of the overlayed video +on the main video. Default value is "0" for both expressions. In case +the expression is invalid, it is set to a huge value (meaning that the +overlay will not be displayed within the output visible area). +

+
+
eof_action
+

The action to take when EOF is encountered on the secondary input; it accepts +one of the following values: +

+
+
repeat
+

Repeat the last frame (the default). +

+
endall
+

End both streams. +

+
pass
+

Pass the main input through. +

+
+ +
+
eval
+

Set when the expressions for ‘x’, and ‘y’ are evaluated. +

+

It accepts the following values: +

+
init
+

only evaluate expressions once during the filter initialization or +when a command is processed +

+
+
frame
+

evaluate expressions for each incoming frame +

+
+ +

Default value is ‘frame’. +

+
+
shortest
+

If set to 1, force the output to terminate when the shortest input +terminates. Default value is 0. +

+
+
format
+

Set the format for the output video. +

+

It accepts the following values: +

+
yuv420
+

force YUV420 output +

+
+
yuv422
+

force YUV422 output +

+
+
yuv444
+

force YUV444 output +

+
+
rgb
+

force RGB output +

+
+ +

Default value is ‘yuv420’. +

+
+
rgb (deprecated)
+

If set to 1, force the filter to accept inputs in the RGB +color space. Default value is 0. This option is deprecated, use +‘format’ instead. +

+
+
repeatlast
+

If set to 1, force the filter to draw the last overlay frame over the +main input until the end of the stream. A value of 0 disables this +behavior. Default value is 1. +

+
+ +

The ‘x’, and ‘y’ expressions can contain the following +parameters. +

+
+
main_w, W
+
main_h, H
+

The main input width and height. +

+
+
overlay_w, w
+
overlay_h, h
+

The overlay input width and height. +

+
+
x
+
y
+

The computed values for x and y. They are evaluated for +each new frame. +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values of the output +format. For example for the pixel format "yuv422p" hsub is 2 and +vsub is 1. +

+
+
n
+

the number of input frame, starting from 0 +

+
+
pos
+

the position in the file of the input frame, NAN if unknown +

+
+
t
+

The timestamp, expressed in seconds. It’s NAN if the input timestamp is unknown. +

+
+
+ +

Note that the n, pos, t variables are available only +when evaluation is done per frame, and will evaluate to NAN +when ‘eval’ is set to ‘init’. +

+

Be aware that frames are taken from each input video in timestamp +order, hence, if their initial timestamps differ, it is a good idea +to pass the two inputs through a setpts=PTS-STARTPTS filter to +have them begin in the same zero timestamp, as the example for +the movie filter does. +

+

You can chain together more overlays but you should test the +efficiency of such approach. +

+ +

9.60.1 Commands

+ +

This filter supports the following commands: +

+
x
+
y
+

Modify the x and y of the overlay input. +The command accepts the same syntax of the corresponding option. +

+

If the specified expression is not valid, it is kept at its current +value. +

+
+ + +

9.60.2 Examples

+ +
    +
  • +Draw the overlay at 10 pixels from the bottom right corner of the main +video: +
     
    overlay=main_w-overlay_w-10:main_h-overlay_h-10
    +
    + +

    Using named options the example above becomes: +

     
    overlay=x=main_w-overlay_w-10:y=main_h-overlay_h-10
    +
    + +
  • +Insert a transparent PNG logo in the bottom left corner of the input, +using the ffmpeg tool with the -filter_complex option: +
     
    ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output
    +
    + +
  • +Insert 2 different transparent PNG logos (second logo on bottom +right corner) using the ffmpeg tool: +
     
    ffmpeg -i input -i logo1 -i logo2 -filter_complex 'overlay=x=10:y=H-h-10,overlay=x=W-w-10:y=H-h-10' output
    +
    + +
  • +Add a transparent color layer on top of the main video; WxH +must specify the size of the main input to the overlay filter: +
     
    color=color=red@.3:size=WxH [over]; [in][over] overlay [out]
    +
    + +
  • +Play an original video and a filtered version (here with the deshake +filter) side by side using the ffplay tool: +
     
    ffplay input.avi -vf 'split[a][b]; [a]pad=iw*2:ih[src]; [b]deshake[filt]; [src][filt]overlay=w'
    +
    + +

    The above command is the same as: +

     
    ffplay input.avi -vf 'split[b], pad=iw*2[src], [b]deshake, [src]overlay=w'
    +
    + +
  • +Make a sliding overlay appearing from the left to the right top part of the +screen starting since time 2: +
     
    overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0
    +
    + +
  • +Compose output by putting two input videos side to side: +
     
    ffmpeg -i left.avi -i right.avi -filter_complex "
    +nullsrc=size=200x100 [background];
    +[0:v] setpts=PTS-STARTPTS, scale=100x100 [left];
    +[1:v] setpts=PTS-STARTPTS, scale=100x100 [right];
    +[background][left]       overlay=shortest=1       [background+left];
    +[background+left][right] overlay=shortest=1:x=100 [left+right]
    +"
    +
    + +
  • +Mask 10-20 seconds of a video by applying the delogo filter to a section +
     
    ffmpeg -i test.avi -codec:v:0 wmv2 -ar 11025 -b:v 9000k
    +-vf '[in]split[split_main][split_delogo];[split_delogo]trim=start=360:end=371,delogo=0:0:640:480[delogoed];[split_main][delogoed]overlay=eof_action=pass[out]'
    +masked.avi
    +
    + +
  • +Chain several overlays in cascade: +
     
    nullsrc=s=200x200 [bg];
    +testsrc=s=100x100, split=4 [in0][in1][in2][in3];
    +[in0] lutrgb=r=0, [bg]   overlay=0:0     [mid0];
    +[in1] lutrgb=g=0, [mid0] overlay=100:0   [mid1];
    +[in2] lutrgb=b=0, [mid1] overlay=0:100   [mid2];
    +[in3] null,       [mid2] overlay=100:100 [out0]
    +
    + +
+ + +

9.61 owdenoise

+ +

Apply Overcomplete Wavelet denoiser. +

+

The filter accepts the following options: +

+
+
depth
+

Set depth. +

+

Larger depth values will denoise lower frequency components more, but +slow down filtering. +

+

Must be an int in the range 8-16, default is 8. +

+
+
luma_strength, ls
+

Set luma strength. +

+

Must be a double value in the range 0-1000, default is 1.0. +

+
+
chroma_strength, cs
+

Set chroma strength. +

+

Must be a double value in the range 0-1000, default is 1.0. +

+
+ + +

9.62 pad

+ +

Add paddings to the input image, and place the original input at the +provided x, y coordinates. +

+

It accepts the following parameters: +

+
+
width, w
+
height, h
+

Specify an expression for the size of the output image with the +paddings added. If the value for width or height is 0, the +corresponding input size is used for the output. +

+

The width expression can reference the value set by the +height expression, and vice versa. +

+

The default value of width and height is 0. +

+
+
x
+
y
+

Specify the offsets to place the input image at within the padded area, +with respect to the top/left border of the output image. +

+

The x expression can reference the value set by the y +expression, and vice versa. +

+

The default value of x and y is 0. +

+
+
color
+

Specify the color of the padded area. For the syntax of this option, +check the "Color" section in the ffmpeg-utils manual. +

+

The default value of color is "black". +

+
+ +

The value for the width, height, x, and y +options are expressions containing the following constants: +

+
+
in_w
+
in_h
+

The input video width and height. +

+
+
iw
+
ih
+

These are the same as in_w and in_h. +

+
+
out_w
+
out_h
+

The output width and height (the size of the padded area), as +specified by the width and height expressions. +

+
+
ow
+
oh
+

These are the same as out_w and out_h. +

+
+
x
+
y
+

The x and y offsets as specified by the x and y +expressions, or NAN if not yet specified. +

+
+
a
+

same as iw / ih +

+
+
sar
+

input sample aspect ratio +

+
+
dar
+

input display aspect ratio, it is the same as (iw / ih) * sar +

+
+
hsub
+
vsub
+

The horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+ + +

9.62.1 Examples

+ +
    +
  • +Add paddings with the color "violet" to the input video. The output video +size is 640x480, and the top-left corner of the input video is placed at +column 0, row 40 +
     
    pad=640:480:0:40:violet
    +
    + +

    The example above is equivalent to the following command: +

     
    pad=width=640:height=480:x=0:y=40:color=violet
    +
    + +
  • +Pad the input to get an output with dimensions increased by 3/2, +and put the input video at the center of the padded area: +
     
    pad="3/2*iw:3/2*ih:(ow-iw)/2:(oh-ih)/2"
    +
    + +
  • +Pad the input to get a squared output with size equal to the maximum +value between the input width and height, and put the input video at +the center of the padded area: +
     
    pad="max(iw\,ih):ow:(ow-iw)/2:(oh-ih)/2"
    +
    + +
  • +Pad the input to get a final w/h ratio of 16:9: +
     
    pad="ih*16/9:ih:(ow-iw)/2:(oh-ih)/2"
    +
    + +
  • +In case of anamorphic video, in order to set the output display aspect +correctly, it is necessary to use sar in the expression, +according to the relation: +
     
    (ih * X / ih) * sar = output_dar
    +X = output_dar / sar
    +
    + +

    Thus the previous example needs to be modified to: +

     
    pad="ih*16/9/sar:ih:(ow-iw)/2:(oh-ih)/2"
    +
    + +
  • +Double the output size and put the input video in the bottom-right +corner of the output padded area: +
     
    pad="2*iw:2*ih:ow-iw:oh-ih"
    +
    +
+ + +

9.63 perspective

+ +

Correct perspective of video not recorded perpendicular to the screen. +

+

A description of the accepted parameters follows. +

+
+
x0
+
y0
+
x1
+
y1
+
x2
+
y2
+
x3
+
y3
+

Set coordinates expression for top left, top right, bottom left and bottom right corners. +Default values are 0:0:W:0:0:H:W:H with which perspective will remain unchanged. +

+

The expressions can use the following variables: +

+
+
W
+
H
+

the width and height of video frame. +

+
+ +
+
interpolation
+

Set interpolation for perspective correction. +

+

It accepts the following values: +

+
linear
+
cubic
+
+ +

Default value is ‘linear’. +

+
+ + +

9.64 phase

+ +

Delay interlaced video by one field time so that the field order changes. +

+

The intended use is to fix PAL movies that have been captured with the +opposite field order to the film-to-video transfer. +

+

A description of the accepted parameters follows. +

+
+
mode
+

Set phase mode. +

+

It accepts the following values: +

+
t
+

Capture field order top-first, transfer bottom-first. +Filter will delay the bottom field. +

+
+
b
+

Capture field order bottom-first, transfer top-first. +Filter will delay the top field. +

+
+
p
+

Capture and transfer with the same field order. This mode only exists +for the documentation of the other options to refer to, but if you +actually select it, the filter will faithfully do nothing. +

+
+
a
+

Capture field order determined automatically by field flags, transfer +opposite. +Filter selects among ‘t’ and ‘b’ modes on a frame by frame +basis using field flags. If no field information is available, +then this works just like ‘u’. +

+
+
u
+

Capture unknown or varying, transfer opposite. +Filter selects among ‘t’ and ‘b’ on a frame by frame basis by +analyzing the images and selecting the alternative that produces best +match between the fields. +

+
+
T
+

Capture top-first, transfer unknown or varying. +Filter selects among ‘t’ and ‘p’ using image analysis. +

+
+
B
+

Capture bottom-first, transfer unknown or varying. +Filter selects among ‘b’ and ‘p’ using image analysis. +

+
+
A
+

Capture determined by field flags, transfer unknown or varying. +Filter selects among ‘t’, ‘b’ and ‘p’ using field flags and +image analysis. If no field information is available, then this works just +like ‘U’. This is the default mode. +

+
+
U
+

Both capture and transfer unknown or varying. +Filter selects among ‘t’, ‘b’ and ‘p’ using image analysis only. +

+
+
+
+ + +

9.65 pixdesctest

+ +

Pixel format descriptor test filter, mainly useful for internal +testing. The output video should be equal to the input video. +

+

For example: +

 
format=monow, pixdesctest
+
+ +

can be used to test the monowhite pixel format descriptor definition. +

+ +

9.66 pp

+ +

Enable the specified chain of postprocessing subfilters using libpostproc. This +library should be automatically selected with a GPL build (--enable-gpl). +Subfilters must be separated by ’/’ and can be disabled by prepending a ’-’. +Each subfilter and some options have a short and a long name that can be used +interchangeably, i.e. dr/dering are the same. +

+

The filters accept the following options: +

+
+
subfilters
+

Set postprocessing subfilters string. +

+
+ +

All subfilters share common options to determine their scope: +

+
+
a/autoq
+

Honor the quality commands for this subfilter. +

+
+
c/chrom
+

Do chrominance filtering, too (default). +

+
+
y/nochrom
+

Do luminance filtering only (no chrominance). +

+
+
n/noluma
+

Do chrominance filtering only (no luminance). +

+
+ +

These options can be appended after the subfilter name, separated by a ’|’. +

+

Available subfilters are: +

+
+
hb/hdeblock[|difference[|flatness]]
+

Horizontal deblocking filter +

+
difference
+

Difference factor where higher values mean more deblocking (default: 32). +

+
flatness
+

Flatness threshold where lower values mean more deblocking (default: 39). +

+
+ +
+
vb/vdeblock[|difference[|flatness]]
+

Vertical deblocking filter +

+
difference
+

Difference factor where higher values mean more deblocking (default: 32). +

+
flatness
+

Flatness threshold where lower values mean more deblocking (default: 39). +

+
+ +
+
ha/hadeblock[|difference[|flatness]]
+

Accurate horizontal deblocking filter +

+
difference
+

Difference factor where higher values mean more deblocking (default: 32). +

+
flatness
+

Flatness threshold where lower values mean more deblocking (default: 39). +

+
+ +
+
va/vadeblock[|difference[|flatness]]
+

Accurate vertical deblocking filter +

+
difference
+

Difference factor where higher values mean more deblocking (default: 32). +

+
flatness
+

Flatness threshold where lower values mean more deblocking (default: 39). +

+
+
+
+ +

The horizontal and vertical deblocking filters share the difference and +flatness values so you cannot set different horizontal and vertical +thresholds. +

+
+
h1/x1hdeblock
+

Experimental horizontal deblocking filter +

+
+
v1/x1vdeblock
+

Experimental vertical deblocking filter +

+
+
dr/dering
+

Deringing filter +

+
+
tn/tmpnoise[|threshold1[|threshold2[|threshold3]]], temporal noise reducer
+
+
threshold1
+

larger -> stronger filtering +

+
threshold2
+

larger -> stronger filtering +

+
threshold3
+

larger -> stronger filtering +

+
+ +
+
al/autolevels[:f/fullyrange], automatic brightness / contrast correction
+
+
f/fullyrange
+

Stretch luminance to 0-255. +

+
+ +
+
lb/linblenddeint
+

Linear blend deinterlacing filter that deinterlaces the given block by +filtering all lines with a (1 2 1) filter. +

+
+
li/linipoldeint
+

Linear interpolating deinterlacing filter that deinterlaces the given block by +linearly interpolating every second line. +

+
+
ci/cubicipoldeint
+

Cubic interpolating deinterlacing filter deinterlaces the given block by +cubically interpolating every second line. +

+
+
md/mediandeint
+

Median deinterlacing filter that deinterlaces the given block by applying a +median filter to every second line. +

+
+
fd/ffmpegdeint
+

FFmpeg deinterlacing filter that deinterlaces the given block by filtering every +second line with a (-1 4 2 4 -1) filter. +

+
+
l5/lowpass5
+

Vertically applied FIR lowpass deinterlacing filter that deinterlaces the given +block by filtering all lines with a (-1 2 6 2 -1) filter. +

+
+
fq/forceQuant[|quantizer]
+

Overrides the quantizer table from the input with the constant quantizer you +specify. +

+
quantizer
+

Quantizer to use +

+
+ +
+
de/default
+

Default pp filter combination (hb|a,vb|a,dr|a) +

+
+
fa/fast
+

Fast pp filter combination (h1|a,v1|a,dr|a) +

+
+
ac
+

High quality pp filter combination (ha|a|128|7,va|a,dr|a) +

+
+ + +

9.66.1 Examples

+ +
    +
  • +Apply horizontal and vertical deblocking, deringing and automatic +brightness/contrast: +
     
    pp=hb/vb/dr/al
    +
    + +
  • +Apply default filters without brightness/contrast correction: +
     
    pp=de/-al
    +
    + +
  • +Apply default filters and temporal denoiser: +
     
    pp=default/tmpnoise|1|2|3
    +
    + +
  • +Apply deblocking on luminance only, and switch vertical deblocking on or off +automatically depending on available CPU time: +
     
    pp=hb|y/vb|a
    +
    +
+ + +

9.67 psnr

+ +

Obtain the average, maximum and minimum PSNR (Peak Signal to Noise +Ratio) between two input videos. +

+

This filter takes in input two input videos, the first input is +considered the "main" source and is passed unchanged to the +output. The second input is used as a "reference" video for computing +the PSNR. +

+

Both video inputs must have the same resolution and pixel format for +this filter to work correctly. Also it assumes that both inputs +have the same number of frames, which are compared one by one. +

+

The obtained average PSNR is printed through the logging system. +

+

The filter stores the accumulated MSE (mean squared error) of each +frame, and at the end of the processing it is averaged across all frames +equally, and the following formula is applied to obtain the PSNR: +

+
 
PSNR = 10*log10(MAX^2/MSE)
+
+ +

Where MAX is the average of the maximum values of each component of the +image. +

+

The description of the accepted parameters follows. +

+
+
stats_file, f
+

If specified the filter will use the named file to save the PSNR of +each individual frame. +

+
+ +

The file printed if stats_file is selected, contains a sequence of +key/value pairs of the form key:value for each compared +couple of frames. +

+

A description of each shown parameter follows: +

+
+
n
+

sequential number of the input frame, starting from 1 +

+
+
mse_avg
+

Mean Square Error pixel-by-pixel average difference of the compared +frames, averaged over all the image components. +

+
+
mse_y, mse_u, mse_v, mse_r, mse_g, mse_g, mse_a
+

Mean Square Error pixel-by-pixel average difference of the compared +frames for the component specified by the suffix. +

+
+
psnr_y, psnr_u, psnr_v, psnr_r, psnr_g, psnr_b, psnr_a
+

Peak Signal to Noise ratio of the compared frames for the component +specified by the suffix. +

+
+ +

For example: +

 
movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
+[main][ref] psnr="stats_file=stats.log" [out]
+
+ +

On this example the input file being processed is compared with the +reference file ‘ref_movie.mpg’. The PSNR of each individual frame +is stored in ‘stats.log’. +

+

+

+

9.68 pullup

+ +

Pulldown reversal (inverse telecine) filter, capable of handling mixed +hard-telecine, 24000/1001 fps progressive, and 30000/1001 fps progressive +content. +

+

The pullup filter is designed to take advantage of future context in making +its decisions. This filter is stateless in the sense that it does not lock +onto a pattern to follow, but it instead looks forward to the following +fields in order to identify matches and rebuild progressive frames. +

+

To produce content with an even framerate, insert the fps filter after +pullup, use fps=24000/1001 if the input frame rate is 29.97fps, +fps=24 for 30fps and the (rare) telecined 25fps input. +

+

The filter accepts the following options: +

+
+
jl
+
jr
+
jt
+
jb
+

These options set the amount of "junk" to ignore at the left, right, top, and +bottom of the image, respectively. Left and right are in units of 8 pixels, +while top and bottom are in units of 2 lines. +The default is 8 pixels on each side. +

+
+
sb
+

Set the strict breaks. Setting this option to 1 will reduce the chances of +filter generating an occasional mismatched frame, but it may also cause an +excessive number of frames to be dropped during high motion sequences. +Conversely, setting it to -1 will make filter match fields more easily. +This may help processing of video where there is slight blurring between +the fields, but may also cause there to be interlaced frames in the output. +Default value is 0. +

+
+
mp
+

Set the metric plane to use. It accepts the following values: +

+
l
+

Use luma plane. +

+
+
u
+

Use chroma blue plane. +

+
+
v
+

Use chroma red plane. +

+
+ +

This option may be set to use chroma plane instead of the default luma plane +for doing filter’s computations. This may improve accuracy on very clean +source material, but more likely will decrease accuracy, especially if there +is chroma noise (rainbow effect) or any grayscale video. +The main purpose of setting ‘mp’ to a chroma plane is to reduce CPU +load and make pullup usable in realtime on slow machines. +

+
+ +

For best results (without duplicated frames in the output file) it is +necessary to change the output frame rate. For example, to inverse +telecine NTSC input: +

 
ffmpeg -i input -vf pullup -r 24000/1001 ...
+
+ + +

9.69 removelogo

+ +

Suppress a TV station logo, using an image file to determine which +pixels comprise the logo. It works by filling in the pixels that +comprise the logo with neighboring pixels. +

+

The filter accepts the following options: +

+
+
filename, f
+

Set the filter bitmap file, which can be any image format supported by +libavformat. The width and height of the image file must match those of the +video stream being processed. +

+
+ +

Pixels in the provided bitmap image with a value of zero are not +considered part of the logo, non-zero pixels are considered part of +the logo. If you use white (255) for the logo and black (0) for the +rest, you will be safe. For making the filter bitmap, it is +recommended to take a screen capture of a black frame with the logo +visible, and then using a threshold filter followed by the erode +filter once or twice. +

+

If needed, little splotches can be fixed manually. Remember that if +logo pixels are not covered, the filter quality will be much +reduced. Marking too many pixels as part of the logo does not hurt as +much, but it will increase the amount of blurring needed to cover over +the image and will destroy more information than necessary, and extra +pixels will slow things down on a large logo. +

+ +

9.70 rotate

+ +

Rotate video by an arbitrary angle expressed in radians. +

+

The filter accepts the following options: +

+

A description of the optional parameters follows. +

+
angle, a
+

Set an expression for the angle by which to rotate the input video +clockwise, expressed as a number of radians. A negative value will +result in a counter-clockwise rotation. By default it is set to "0". +

+

This expression is evaluated for each frame. +

+
+
out_w, ow
+

Set the output width expression, default value is "iw". +This expression is evaluated just once during configuration. +

+
+
out_h, oh
+

Set the output height expression, default value is "ih". +This expression is evaluated just once during configuration. +

+
+
bilinear
+

Enable bilinear interpolation if set to 1, a value of 0 disables +it. Default value is 1. +

+
+
fillcolor, c
+

Set the color used to fill the output area not covered by the rotated +image. For the generalsyntax of this option, check the "Color" section in the +ffmpeg-utils manual. If the special value "none" is selected then no +background is printed (useful for example if the background is never shown). +

+

Default value is "black". +

+
+ +

The expressions for the angle and the output size can contain the +following constants and functions: +

+
+
n
+

sequential number of the input frame, starting from 0. It is always NAN +before the first frame is filtered. +

+
+
t
+

time in seconds of the input frame, it is set to 0 when the filter is +configured. It is always NAN before the first frame is filtered. +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
in_w, iw
+
in_h, ih
+

the input video width and height +

+
+
out_w, ow
+
out_h, oh
+

the output width and height, that is the size of the padded area as +specified by the width and height expressions +

+
+
rotw(a)
+
roth(a)
+

the minimal width/height required for completely containing the input +video rotated by a radians. +

+

These are only available when computing the ‘out_w’ and +‘out_h’ expressions. +

+
+ + +

9.70.1 Examples

+ +
    +
  • +Rotate the input by PI/6 radians clockwise: +
     
    rotate=PI/6
    +
    + +
  • +Rotate the input by PI/6 radians counter-clockwise: +
     
    rotate=-PI/6
    +
    + +
  • +Rotate the input by 45 degrees clockwise: +
     
    rotate=45*PI/180
    +
    + +
  • +Apply a constant rotation with period T, starting from an angle of PI/3: +
     
    rotate=PI/3+2*PI*t/T
    +
    + +
  • +Make the input video rotation oscillating with a period of T +seconds and an amplitude of A radians: +
     
    rotate=A*sin(2*PI/T*t)
    +
    + +
  • +Rotate the video, output size is chosen so that the whole rotating +input video is always completely contained in the output: +
     
    rotate='2*PI*t:ow=hypot(iw,ih):oh=ow'
    +
    + +
  • +Rotate the video, reduce the output size so that no background is ever +shown: +
     
    rotate=2*PI*t:ow='min(iw,ih)/sqrt(2)':oh=ow:c=none
    +
    +
+ + +

9.70.2 Commands

+ +

The filter supports the following commands: +

+
+
a, angle
+

Set the angle expression. +The command accepts the same syntax of the corresponding option. +

+

If the specified expression is not valid, it is kept at its current +value. +

+
+ + +

9.71 sab

+ +

Apply Shape Adaptive Blur. +

+

The filter accepts the following options: +

+
+
luma_radius, lr
+

Set luma blur filter strength, must be a value in range 0.1-4.0, default +value is 1.0. A greater value will result in a more blurred image, and +in slower processing. +

+
+
luma_pre_filter_radius, lpfr
+

Set luma pre-filter radius, must be a value in the 0.1-2.0 range, default +value is 1.0. +

+
+
luma_strength, ls
+

Set luma maximum difference between pixels to still be considered, must +be a value in the 0.1-100.0 range, default value is 1.0. +

+
+
chroma_radius, cr
+

Set chroma blur filter strength, must be a value in range 0.1-4.0. A +greater value will result in a more blurred image, and in slower +processing. +

+
+
chroma_pre_filter_radius, cpfr
+

Set chroma pre-filter radius, must be a value in the 0.1-2.0 range. +

+
+
chroma_strength, cs
+

Set chroma maximum difference between pixels to still be considered, +must be a value in the 0.1-100.0 range. +

+
+ +

Each chroma option value, if not explicitly specified, is set to the +corresponding luma option value. +

+

+

+

9.72 scale

+ +

Scale (resize) the input video, using the libswscale library. +

+

The scale filter forces the output display aspect ratio to be the same +of the input, by changing the output sample aspect ratio. +

+

If the input image format is different from the format requested by +the next filter, the scale filter will convert the input to the +requested format. +

+ +

9.72.1 Options

+

The filter accepts the following options, or any of the options +supported by the libswscale scaler. +

+

See (ffmpeg-scaler)scaler_options for +the complete list of scaler options. +

+
+
width, w
+
height, h
+

Set the output video dimension expression. Default value is the input +dimension. +

+

If the value is 0, the input width is used for the output. +

+

If one of the values is -1, the scale filter will use a value that +maintains the aspect ratio of the input image, calculated from the +other specified dimension. If both of them are -1, the input size is +used +

+

If one of the values is -n with n > 1, the scale filter will also use a value +that maintains the aspect ratio of the input image, calculated from the other +specified dimension. After that it will, however, make sure that the calculated +dimension is divisible by n and adjust the value if necessary. +

+

See below for the list of accepted constants for use in the dimension +expression. +

+
+
interl
+

Set the interlacing mode. It accepts the following values: +

+
+
1
+

Force interlaced aware scaling. +

+
+
0
+

Do not apply interlaced scaling. +

+
+
-1
+

Select interlaced aware scaling depending on whether the source frames +are flagged as interlaced or not. +

+
+ +

Default value is ‘0’. +

+
+
flags
+

Set libswscale scaling flags. See +(ffmpeg-scaler)sws_flags for the +complete list of values. If not explicitly specified the filter applies +the default flags. +

+
+
size, s
+

Set the video size. For the syntax of this option, check the "Video size" +section in the ffmpeg-utils manual. +

+
+
in_color_matrix
+
out_color_matrix
+

Set in/output YCbCr color space type. +

+

This allows the autodetected value to be overridden as well as allows forcing +a specific value used for the output and encoder. +

+

If not specified, the color space type depends on the pixel format. +

+

Possible values: +

+
+
auto
+

Choose automatically. +

+
+
bt709
+

Format conforming to International Telecommunication Union (ITU) +Recommendation BT.709. +

+
+
fcc
+

Set color space conforming to the United States Federal Communications +Commission (FCC) Code of Federal Regulations (CFR) Title 47 (2003) 73.682 (a). +

+
+
bt601
+

Set color space conforming to: +

+
    +
  • +ITU Radiocommunication Sector (ITU-R) Recommendation BT.601 + +
  • +ITU-R Rec. BT.470-6 (1998) Systems B, B1, and G + +
  • +Society of Motion Picture and Television Engineers (SMPTE) ST 170:2004 + +
+ +
+
smpte240m
+

Set color space conforming to SMPTE ST 240:1999. +

+
+ +
+
in_range
+
out_range
+

Set in/output YCbCr sample range. +

+

This allows the autodetected value to be overridden as well as allows forcing +a specific value used for the output and encoder. If not specified, the +range depends on the pixel format. Possible values: +

+
+
auto
+

Choose automatically. +

+
+
jpeg/full/pc
+

Set full range (0-255 in case of 8-bit luma). +

+
+
mpeg/tv
+

Set "MPEG" range (16-235 in case of 8-bit luma). +

+
+ +
+
force_original_aspect_ratio
+

Enable decreasing or increasing output video width or height if necessary to +keep the original aspect ratio. Possible values: +

+
+
disable
+

Scale the video as specified and disable this feature. +

+
+
decrease
+

The output video dimensions will automatically be decreased if needed. +

+
+
increase
+

The output video dimensions will automatically be increased if needed. +

+
+
+ +

One useful instance of this option is that when you know a specific device’s +maximum allowed resolution, you can use this to limit the output video to +that, while retaining the aspect ratio. For example, device A allows +1280x720 playback, and your video is 1920x800. Using this option (set it to +decrease) and specifying 1280x720 to the command line makes the output +1280x533. +

+

Please note that this is a different thing than specifying -1 for ‘w’ +or ‘h’, you still need to specify the output resolution for this option +to work. +

+
+
+ +

The values of the ‘w’ and ‘h’ options are expressions +containing the following constants: +

+
+
in_w
+
in_h
+

The input width and height +

+
+
iw
+
ih
+

These are the same as in_w and in_h. +

+
+
out_w
+
out_h
+

The output (scaled) width and height +

+
+
ow
+
oh
+

These are the same as out_w and out_h +

+
+
a
+

The same as iw / ih +

+
+
sar
+

input sample aspect ratio +

+
+
dar
+

The input display aspect ratio. Calculated from (iw / ih) * sar. +

+
+
hsub
+
vsub
+

horizontal and vertical input chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
ohsub
+
ovsub
+

horizontal and vertical output chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+ + +

9.72.2 Examples

+ +
    +
  • +Scale the input video to a size of 200x100 +
     
    scale=w=200:h=100
    +
    + +

    This is equivalent to: +

     
    scale=200:100
    +
    + +

    or: +

     
    scale=200x100
    +
    + +
  • +Specify a size abbreviation for the output size: +
     
    scale=qcif
    +
    + +

    which can also be written as: +

     
    scale=size=qcif
    +
    + +
  • +Scale the input to 2x: +
     
    scale=w=2*iw:h=2*ih
    +
    + +
  • +The above is the same as: +
     
    scale=2*in_w:2*in_h
    +
    + +
  • +Scale the input to 2x with forced interlaced scaling: +
     
    scale=2*iw:2*ih:interl=1
    +
    + +
  • +Scale the input to half size: +
     
    scale=w=iw/2:h=ih/2
    +
    + +
  • +Increase the width, and set the height to the same size: +
     
    scale=3/2*iw:ow
    +
    + +
  • +Seek Greek harmony: +
     
    scale=iw:1/PHI*iw
    +scale=ih*PHI:ih
    +
    + +
  • +Increase the height, and set the width to 3/2 of the height: +
     
    scale=w=3/2*oh:h=3/5*ih
    +
    + +
  • +Increase the size, making the size a multiple of the chroma +subsample values: +
     
    scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub"
    +
    + +
  • +Increase the width to a maximum of 500 pixels, +keeping the same aspect ratio as the input: +
     
    scale=w='min(500\, iw*3/2):h=-1'
    +
    +
+ + +

9.73 separatefields

+ +

The separatefields takes a frame-based video input and splits +each frame into its components fields, producing a new half height clip +with twice the frame rate and twice the frame count. +

+

This filter use field-dominance information in frame to decide which +of each pair of fields to place first in the output. +If it gets it wrong use setfield filter before separatefields filter. +

+ +

9.74 setdar, setsar

+ +

The setdar filter sets the Display Aspect Ratio for the filter +output video. +

+

This is done by changing the specified Sample (aka Pixel) Aspect +Ratio, according to the following equation: +

 
DAR = HORIZONTAL_RESOLUTION / VERTICAL_RESOLUTION * SAR
+
+ +

Keep in mind that the setdar filter does not modify the pixel +dimensions of the video frame. Also, the display aspect ratio set by +this filter may be changed by later filters in the filterchain, +e.g. in case of scaling or if another "setdar" or a "setsar" filter is +applied. +

+

The setsar filter sets the Sample (aka Pixel) Aspect Ratio for +the filter output video. +

+

Note that as a consequence of the application of this filter, the +output display aspect ratio will change according to the equation +above. +

+

Keep in mind that the sample aspect ratio set by the setsar +filter may be changed by later filters in the filterchain, e.g. if +another "setsar" or a "setdar" filter is applied. +

+

It accepts the following parameters: +

+
+
r, ratio, dar (setdar only), sar (setsar only)
+

Set the aspect ratio used by the filter. +

+

The parameter can be a floating point number string, an expression, or +a string of the form num:den, where num and +den are the numerator and denominator of the aspect ratio. If +the parameter is not specified, it is assumed the value "0". +In case the form "num:den" is used, the : character +should be escaped. +

+
+
max
+

Set the maximum integer value to use for expressing numerator and +denominator when reducing the expressed aspect ratio to a rational. +Default value is 100. +

+
+
+ +

The parameter sar is an expression containing +the following constants: +

+
+
E, PI, PHI
+

These are approximated values for the mathematical constants e +(Euler’s number), pi (Greek pi), and phi (the golden ratio). +

+
+
w, h
+

The input width and height. +

+
+
a
+

These are the same as w / h. +

+
+
sar
+

The input sample aspect ratio. +

+
+
dar
+

The input display aspect ratio. It is the same as +(w / h) * sar. +

+
+
hsub, vsub
+

Horizontal and vertical chroma subsample values. For example, for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+ + +

9.74.1 Examples

+ +
    +
  • +To change the display aspect ratio to 16:9, specify one of the following: +
     
    setdar=dar=1.77777
    +setdar=dar=16/9
    +setdar=dar=1.77777
    +
    + +
  • +To change the sample aspect ratio to 10:11, specify: +
     
    setsar=sar=10/11
    +
    + +
  • +To set a display aspect ratio of 16:9, and specify a maximum integer value of +1000 in the aspect ratio reduction, use the command: +
     
    setdar=ratio=16/9:max=1000
    +
    + +
+ +

+

+

9.75 setfield

+ +

Force field for the output video frame. +

+

The setfield filter marks the interlace type field for the +output frames. It does not change the input frame, but only sets the +corresponding property, which affects how the frame is treated by +following filters (e.g. fieldorder or yadif). +

+

The filter accepts the following options: +

+
+
mode
+

Available values are: +

+
+
auto
+

Keep the same field property. +

+
+
bff
+

Mark the frame as bottom-field-first. +

+
+
tff
+

Mark the frame as top-field-first. +

+
+
prog
+

Mark the frame as progressive. +

+
+
+
+ + +

9.76 showinfo

+ +

Show a line containing various information for each input video frame. +The input video is not modified. +

+

The shown line contains a sequence of key/value pairs of the form +key:value. +

+

It accepts the following parameters: +

+
+
n
+

The (sequential) number of the input frame, starting from 0. +

+
+
pts
+

The Presentation TimeStamp of the input frame, expressed as a number of +time base units. The time base unit depends on the filter input pad. +

+
+
pts_time
+

The Presentation TimeStamp of the input frame, expressed as a number of +seconds. +

+
+
pos
+

The position of the frame in the input stream, or -1 if this information is +unavailable and/or meaningless (for example in case of synthetic video). +

+
+
fmt
+

The pixel format name. +

+
+
sar
+

The sample aspect ratio of the input frame, expressed in the form +num/den. +

+
+
s
+

The size of the input frame. For the syntax of this option, check the "Video size" +section in the ffmpeg-utils manual. +

+
+
i
+

The type of interlaced mode ("P" for "progressive", "T" for top field first, "B" +for bottom field first). +

+
+
iskey
+

This is 1 if the frame is a key frame, 0 otherwise. +

+
+
type
+

The picture type of the input frame ("I" for an I-frame, "P" for a +P-frame, "B" for a B-frame, or "?" for an unknown type). +Also refer to the documentation of the AVPictureType enum and of +the av_get_picture_type_char function defined in +‘libavutil/avutil.h’. +

+
+
checksum
+

The Adler-32 checksum (printed in hexadecimal) of all the planes of the input frame. +

+
+
plane_checksum
+

The Adler-32 checksum (printed in hexadecimal) of each plane of the input frame, +expressed in the form "[c0 c1 c2 c3]". +

+
+ + +

9.77 shuffleplanes

+ +

Reorder and/or duplicate video planes. +

+

It accepts the following parameters: +

+
+
map0
+

The index of the input plane to be used as the first output plane. +

+
+
map1
+

The index of the input plane to be used as the second output plane. +

+
+
map2
+

The index of the input plane to be used as the third output plane. +

+
+
map3
+

The index of the input plane to be used as the fourth output plane. +

+
+
+ +

The first plane has the index 0. The default is to keep the input unchanged. +

+

Swap the second and third planes of the input: +

 
ffmpeg -i INPUT -vf shuffleplanes=0:2:1:3 OUTPUT
+
+ +

+

+

9.78 smartblur

+ +

Blur the input video without impacting the outlines. +

+

It accepts the following options: +

+
+
luma_radius, lr
+

Set the luma radius. The option value must be a float number in +the range [0.1,5.0] that specifies the variance of the gaussian filter +used to blur the image (slower if larger). Default value is 1.0. +

+
+
luma_strength, ls
+

Set the luma strength. The option value must be a float number +in the range [-1.0,1.0] that configures the blurring. A value included +in [0.0,1.0] will blur the image whereas a value included in +[-1.0,0.0] will sharpen the image. Default value is 1.0. +

+
+
luma_threshold, lt
+

Set the luma threshold used as a coefficient to determine +whether a pixel should be blurred or not. The option value must be an +integer in the range [-30,30]. A value of 0 will filter all the image, +a value included in [0,30] will filter flat areas and a value included +in [-30,0] will filter edges. Default value is 0. +

+
+
chroma_radius, cr
+

Set the chroma radius. The option value must be a float number in +the range [0.1,5.0] that specifies the variance of the gaussian filter +used to blur the image (slower if larger). Default value is 1.0. +

+
+
chroma_strength, cs
+

Set the chroma strength. The option value must be a float number +in the range [-1.0,1.0] that configures the blurring. A value included +in [0.0,1.0] will blur the image whereas a value included in +[-1.0,0.0] will sharpen the image. Default value is 1.0. +

+
+
chroma_threshold, ct
+

Set the chroma threshold used as a coefficient to determine +whether a pixel should be blurred or not. The option value must be an +integer in the range [-30,30]. A value of 0 will filter all the image, +a value included in [0,30] will filter flat areas and a value included +in [-30,0] will filter edges. Default value is 0. +

+
+ +

If a chroma option is not explicitly set, the corresponding luma value +is set. +

+ +

9.79 stereo3d

+ +

Convert between different stereoscopic image formats. +

+

The filters accept the following options: +

+
+
in
+

Set stereoscopic image format of input. +

+

Available values for input image formats are: +

+
sbsl
+

side by side parallel (left eye left, right eye right) +

+
+
sbsr
+

side by side crosseye (right eye left, left eye right) +

+
+
sbs2l
+

side by side parallel with half width resolution +(left eye left, right eye right) +

+
+
sbs2r
+

side by side crosseye with half width resolution +(right eye left, left eye right) +

+
+
abl
+

above-below (left eye above, right eye below) +

+
+
abr
+

above-below (right eye above, left eye below) +

+
+
ab2l
+

above-below with half height resolution +(left eye above, right eye below) +

+
+
ab2r
+

above-below with half height resolution +(right eye above, left eye below) +

+
+
al
+

alternating frames (left eye first, right eye second) +

+
+
ar
+

alternating frames (right eye first, left eye second) +

+

Default value is ‘sbsl’. +

+
+ +
+
out
+

Set stereoscopic image format of output. +

+

Available values for output image formats are all the input formats as well as: +

+
arbg
+

anaglyph red/blue gray +(red filter on left eye, blue filter on right eye) +

+
+
argg
+

anaglyph red/green gray +(red filter on left eye, green filter on right eye) +

+
+
arcg
+

anaglyph red/cyan gray +(red filter on left eye, cyan filter on right eye) +

+
+
arch
+

anaglyph red/cyan half colored +(red filter on left eye, cyan filter on right eye) +

+
+
arcc
+

anaglyph red/cyan color +(red filter on left eye, cyan filter on right eye) +

+
+
arcd
+

anaglyph red/cyan color optimized with the least squares projection of dubois +(red filter on left eye, cyan filter on right eye) +

+
+
agmg
+

anaglyph green/magenta gray +(green filter on left eye, magenta filter on right eye) +

+
+
agmh
+

anaglyph green/magenta half colored +(green filter on left eye, magenta filter on right eye) +

+
+
agmc
+

anaglyph green/magenta colored +(green filter on left eye, magenta filter on right eye) +

+
+
agmd
+

anaglyph green/magenta color optimized with the least squares projection of dubois +(green filter on left eye, magenta filter on right eye) +

+
+
aybg
+

anaglyph yellow/blue gray +(yellow filter on left eye, blue filter on right eye) +

+
+
aybh
+

anaglyph yellow/blue half colored +(yellow filter on left eye, blue filter on right eye) +

+
+
aybc
+

anaglyph yellow/blue colored +(yellow filter on left eye, blue filter on right eye) +

+
+
aybd
+

anaglyph yellow/blue color optimized with the least squares projection of dubois +(yellow filter on left eye, blue filter on right eye) +

+
+
irl
+

interleaved rows (left eye has top row, right eye starts on next row) +

+
+
irr
+

interleaved rows (right eye has top row, left eye starts on next row) +

+
+
ml
+

mono output (left eye only) +

+
+
mr
+

mono output (right eye only) +

+
+ +

Default value is ‘arcd’. +

+
+ + +

9.79.1 Examples

+ +
    +
  • +Convert input video from side by side parallel to anaglyph yellow/blue dubois: +
     
    stereo3d=sbsl:aybd
    +
    + +
  • +Convert input video from above bellow (left eye above, right eye below) to side by side crosseye. +
     
    stereo3d=abl:sbsr
    +
    +
+ + +

9.80 spp

+ +

Apply a simple postprocessing filter that compresses and decompresses the image +at several (or - in the case of ‘quality’ level 6 - all) shifts +and average the results. +

+

The filter accepts the following options: +

+
+
quality
+

Set quality. This option defines the number of levels for averaging. It accepts +an integer in the range 0-6. If set to 0, the filter will have no +effect. A value of 6 means the higher quality. For each increment of +that value the speed drops by a factor of approximately 2. Default value is +3. +

+
+
qp
+

Force a constant quantization parameter. If not set, the filter will use the QP +from the video stream (if available). +

+
+
mode
+

Set thresholding mode. Available modes are: +

+
+
hard
+

Set hard thresholding (default). +

+
soft
+

Set soft thresholding (better de-ringing effect, but likely blurrier). +

+
+ +
+
use_bframe_qp
+

Enable the use of the QP from the B-Frames if set to 1. Using this +option may cause flicker since the B-Frames have often larger QP. Default is +0 (not enabled). +

+
+ +

+

+

9.81 subtitles

+ +

Draw subtitles on top of input video using the libass library. +

+

To enable compilation of this filter you need to configure FFmpeg with +--enable-libass. This filter also requires a build with libavcodec and +libavformat to convert the passed subtitles file to ASS (Advanced Substation +Alpha) subtitles format. +

+

The filter accepts the following options: +

+
+
filename, f
+

Set the filename of the subtitle file to read. It must be specified. +

+
+
original_size
+

Specify the size of the original video, the video for which the ASS file +was composed. For the syntax of this option, check the "Video size" section in +the ffmpeg-utils manual. Due to a misdesign in ASS aspect ratio arithmetic, +this is necessary to correctly scale the fonts if the aspect ratio has been +changed. +

+
+
charenc
+

Set subtitles input character encoding. subtitles filter only. Only +useful if not UTF-8. +

+
+ +

If the first key is not specified, it is assumed that the first value +specifies the ‘filename’. +

+

For example, to render the file ‘sub.srt’ on top of the input +video, use the command: +

 
subtitles=sub.srt
+
+ +

which is equivalent to: +

 
subtitles=filename=sub.srt
+
+ + +

9.82 super2xsai

+ +

Scale the input by 2x and smooth using the Super2xSaI (Scale and +Interpolate) pixel art scaling algorithm. +

+

Useful for enlarging pixel art images without reducing sharpness. +

+ +

9.83 swapuv

+

Swap U & V plane. +

+ +

9.84 telecine

+ +

Apply telecine process to the video. +

+

This filter accepts the following options: +

+
+
first_field
+
+
top, t
+

top field first +

+
bottom, b
+

bottom field first +The default value is top. +

+
+ +
+
pattern
+

A string of numbers representing the pulldown pattern you wish to apply. +The default value is 23. +

+
+ +
 
Some typical patterns:
+
+NTSC output (30i):
+27.5p: 32222
+24p: 23 (classic)
+24p: 2332 (preferred)
+20p: 33
+18p: 334
+16p: 3444
+
+PAL output (25i):
+27.5p: 12222
+24p: 222222222223 ("Euro pulldown")
+16.67p: 33
+16p: 33333334
+
+ + +

9.85 thumbnail

+

Select the most representative frame in a given sequence of consecutive frames. +

+

The filter accepts the following options: +

+
+
n
+

Set the frames batch size to analyze; in a set of n frames, the filter +will pick one of them, and then handle the next batch of n frames until +the end. Default is 100. +

+
+ +

Since the filter keeps track of the whole frames sequence, a bigger n +value will result in a higher memory usage, so a high value is not recommended. +

+ +

9.85.1 Examples

+ +
    +
  • +Extract one picture each 50 frames: +
     
    thumbnail=50
    +
    + +
  • +Complete example of a thumbnail creation with ffmpeg: +
     
    ffmpeg -i in.avi -vf thumbnail,scale=300:200 -frames:v 1 out.png
    +
    +
+ + +

9.86 tile

+ +

Tile several successive frames together. +

+

The filter accepts the following options: +

+
+
layout
+

Set the grid size (i.e. the number of lines and columns). For the syntax of +this option, check the "Video size" section in the ffmpeg-utils manual. +

+
+
nb_frames
+

Set the maximum number of frames to render in the given area. It must be less +than or equal to wxh. The default value is 0, meaning all +the area will be used. +

+
+
margin
+

Set the outer border margin in pixels. +

+
+
padding
+

Set the inner border thickness (i.e. the number of pixels between frames). For +more advanced padding options (such as having different values for the edges), +refer to the pad video filter. +

+
+
color
+

Specify the color of the unused areaFor the syntax of this option, check the +"Color" section in the ffmpeg-utils manual. The default value of color +is "black". +

+
+ + +

9.86.1 Examples

+ +
    +
  • +Produce 8x8 PNG tiles of all keyframes (‘-skip_frame nokey’) in a movie: +
     
    ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png
    +
    +

    The ‘-vsync 0’ is necessary to prevent ffmpeg from +duplicating each output frame to accommodate the originally detected frame +rate. +

    +
  • +Display 5 pictures in an area of 3x2 frames, +with 7 pixels between them, and 2 pixels of initial margin, using +mixed flat and named options: +
     
    tile=3x2:nb_frames=5:padding=7:margin=2
    +
    +
+ + +

9.87 tinterlace

+ +

Perform various types of temporal field interlacing. +

+

Frames are counted starting from 1, so the first input frame is +considered odd. +

+

The filter accepts the following options: +

+
+
mode
+

Specify the mode of the interlacing. This option can also be specified +as a value alone. See below for a list of values for this option. +

+

Available values are: +

+
+
merge, 0
+

Move odd frames into the upper field, even into the lower field, +generating a double height frame at half frame rate. +

+
+
drop_odd, 1
+

Only output even frames, odd frames are dropped, generating a frame with +unchanged height at half frame rate. +

+
+
drop_even, 2
+

Only output odd frames, even frames are dropped, generating a frame with +unchanged height at half frame rate. +

+
+
pad, 3
+

Expand each frame to full height, but pad alternate lines with black, +generating a frame with double height at the same input frame rate. +

+
+
interleave_top, 4
+

Interleave the upper field from odd frames with the lower field from +even frames, generating a frame with unchanged height at half frame rate. +

+
+
interleave_bottom, 5
+

Interleave the lower field from odd frames with the upper field from +even frames, generating a frame with unchanged height at half frame rate. +

+
+
interlacex2, 6
+

Double frame rate with unchanged height. Frames are inserted each +containing the second temporal field from the previous input frame and +the first temporal field from the next input frame. This mode relies on +the top_field_first flag. Useful for interlaced video displays with no +field synchronisation. +

+
+ +

Numeric values are deprecated but are accepted for backward +compatibility reasons. +

+

Default mode is merge. +

+
+
flags
+

Specify flags influencing the filter process. +

+

Available value for flags is: +

+
+
low_pass_filter, vlfp
+

Enable vertical low-pass filtering in the filter. +Vertical low-pass filtering is required when creating an interlaced +destination from a progressive source which contains high-frequency +vertical detail. Filtering will reduce interlace ’twitter’ and Moire +patterning. +

+

Vertical low-pass filtering can only be enabled for ‘mode’ +interleave_top and interleave_bottom. +

+
+
+
+
+ + +

9.88 transpose

+ +

Transpose rows with columns in the input video and optionally flip it. +

+

It accepts the following parameters: +

+
+
dir
+

Specify the transposition direction. +

+

Can assume the following values: +

+
0, 4, cclock_flip
+

Rotate by 90 degrees counterclockwise and vertically flip (default), that is: +

 
L.R     L.l
+. . ->  . .
+l.r     R.r
+
+ +
+
1, 5, clock
+

Rotate by 90 degrees clockwise, that is: +

 
L.R     l.L
+. . ->  . .
+l.r     r.R
+
+ +
+
2, 6, cclock
+

Rotate by 90 degrees counterclockwise, that is: +

 
L.R     R.r
+. . ->  . .
+l.r     L.l
+
+ +
+
3, 7, clock_flip
+

Rotate by 90 degrees clockwise and vertically flip, that is: +

 
L.R     r.R
+. . ->  . .
+l.r     l.L
+
+
+
+ +

For values between 4-7, the transposition is only done if the input +video geometry is portrait and not landscape. These values are +deprecated, the passthrough option should be used instead. +

+

Numerical values are deprecated, and should be dropped in favor of +symbolic constants. +

+
+
passthrough
+

Do not apply the transposition if the input geometry matches the one +specified by the specified value. It accepts the following values: +

+
none
+

Always apply transposition. +

+
portrait
+

Preserve portrait geometry (when height >= width). +

+
landscape
+

Preserve landscape geometry (when width >= height). +

+
+ +

Default value is none. +

+
+ +

For example to rotate by 90 degrees clockwise and preserve portrait +layout: +

 
transpose=dir=1:passthrough=portrait
+
+ +

The command above can also be specified as: +

 
transpose=1:portrait
+
+ + +

9.89 trim

+

Trim the input so that the output contains one continuous subpart of the input. +

+

It accepts the following parameters: +

+
start
+

Specify the time of the start of the kept section, i.e. the frame with the +timestamp start will be the first frame in the output. +

+
+
end
+

Specify the time of the first frame that will be dropped, i.e. the frame +immediately preceding the one with the timestamp end will be the last +frame in the output. +

+
+
start_pts
+

This is the same as start, except this option sets the start timestamp +in timebase units instead of seconds. +

+
+
end_pts
+

This is the same as end, except this option sets the end timestamp +in timebase units instead of seconds. +

+
+
duration
+

The maximum duration of the output in seconds. +

+
+
start_frame
+

The number of the first frame that should be passed to the output. +

+
+
end_frame
+

The number of the first frame that should be dropped. +

+
+ +

start’, ‘end’, ‘duration’ are expressed as time +duration specifications, check the "Time duration" section in the +ffmpeg-utils manual. +

+

Note that the first two sets of the start/end options and the ‘duration’ +option look at the frame timestamp, while the _frame variants simply count the +frames that pass through the filter. Also note that this filter does not modify +the timestamps. If you wish for the output timestamps to start at zero, insert a +setpts filter after the trim filter. +

+

If multiple start or end options are set, this filter tries to be greedy and +keep all the frames that match at least one of the specified constraints. To keep +only the part that matches all the constraints at once, chain multiple trim +filters. +

+

The defaults are such that all the input is kept. So it is possible to set e.g. +just the end values to keep everything before the specified time. +

+

Examples: +

    +
  • +Drop everything except the second minute of input: +
     
    ffmpeg -i INPUT -vf trim=60:120
    +
    + +
  • +Keep only the first second: +
     
    ffmpeg -i INPUT -vf trim=duration=1
    +
    + +
+ + + +

9.90 unsharp

+ +

Sharpen or blur the input video. +

+

It accepts the following parameters: +

+
+
luma_msize_x, lx
+

Set the luma matrix horizontal size. It must be an odd integer between +3 and 63. The default value is 5. +

+
+
luma_msize_y, ly
+

Set the luma matrix vertical size. It must be an odd integer between 3 +and 63. The default value is 5. +

+
+
luma_amount, la
+

Set the luma effect strength. It must be a floating point number, reasonable +values lay between -1.5 and 1.5. +

+

Negative values will blur the input video, while positive values will +sharpen it, a value of zero will disable the effect. +

+

Default value is 1.0. +

+
+
chroma_msize_x, cx
+

Set the chroma matrix horizontal size. It must be an odd integer +between 3 and 63. The default value is 5. +

+
+
chroma_msize_y, cy
+

Set the chroma matrix vertical size. It must be an odd integer +between 3 and 63. The default value is 5. +

+
+
chroma_amount, ca
+

Set the chroma effect strength. It must be a floating point number, reasonable +values lay between -1.5 and 1.5. +

+

Negative values will blur the input video, while positive values will +sharpen it, a value of zero will disable the effect. +

+

Default value is 0.0. +

+
+
opencl
+

If set to 1, specify using OpenCL capabilities, only available if +FFmpeg was configured with --enable-opencl. Default value is 0. +

+
+
+ +

All parameters are optional and default to the equivalent of the +string ’5:5:1.0:5:5:0.0’. +

+ +

9.90.1 Examples

+ +
    +
  • +Apply strong luma sharpen effect: +
     
    unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5
    +
    + +
  • +Apply a strong blur of both luma and chroma parameters: +
     
    unsharp=7:7:-2:7:7:-2
    +
    +
+ +

+

+

9.91 vidstabdetect

+ +

Analyze video stabilization/deshaking. Perform pass 1 of 2, see +vidstabtransform for pass 2. +

+

This filter generates a file with relative translation and rotation +transform information about subsequent frames, which is then used by +the vidstabtransform filter. +

+

To enable compilation of this filter you need to configure FFmpeg with +--enable-libvidstab. +

+

This filter accepts the following options: +

+
+
result
+

Set the path to the file used to write the transforms information. +Default value is ‘transforms.trf’. +

+
+
shakiness
+

Set how shaky the video is and how quick the camera is. It accepts an +integer in the range 1-10, a value of 1 means little shakiness, a +value of 10 means strong shakiness. Default value is 5. +

+
+
accuracy
+

Set the accuracy of the detection process. It must be a value in the +range 1-15. A value of 1 means low accuracy, a value of 15 means high +accuracy. Default value is 15. +

+
+
stepsize
+

Set stepsize of the search process. The region around minimum is +scanned with 1 pixel resolution. Default value is 6. +

+
+
mincontrast
+

Set minimum contrast. Below this value a local measurement field is +discarded. Must be a floating point value in the range 0-1. Default +value is 0.3. +

+
+
tripod
+

Set reference frame number for tripod mode. +

+

If enabled, the motion of the frames is compared to a reference frame +in the filtered stream, identified by the specified number. The idea +is to compensate all movements in a more-or-less static scene and keep +the camera view absolutely still. +

+

If set to 0, it is disabled. The frames are counted starting from 1. +

+
+
show
+

Show fields and transforms in the resulting frames. It accepts an +integer in the range 0-2. Default value is 0, which disables any +visualization. +

+
+ + +

9.91.1 Examples

+ +
    +
  • +Use default values: +
     
    vidstabdetect
    +
    + +
  • +Analyze strongly shaky movie and put the results in file +‘mytransforms.trf’: +
     
    vidstabdetect=shakiness=10:accuracy=15:result="mytransforms.trf"
    +
    + +
  • +Visualize the result of internal transformations in the resulting +video: +
     
    vidstabdetect=show=1
    +
    + +
  • +Analyze a video with medium shakiness using ffmpeg: +
     
    ffmpeg -i input -vf vidstabdetect=shakiness=5:show=1 dummy.avi
    +
    +
+ +

+

+

9.92 vidstabtransform

+ +

Video stabilization/deshaking: pass 2 of 2, +see vidstabdetect for pass 1. +

+

Read a file with transform information for each frame and +apply/compensate them. Together with the vidstabdetect +filter this can be used to deshake videos. See also +http://public.hronopik.de/vid.stab. It is important to also use +the unsharp filter, see below. +

+

To enable compilation of this filter you need to configure FFmpeg with +--enable-libvidstab. +

+ +

9.92.1 Options

+ +
+
input
+

Set path to the file used to read the transforms. Default value is +‘transforms.trf’). +

+
+
smoothing
+

Set the number of frames (value*2 + 1) used for lowpass filtering the +camera movements. Default value is 10. +

+

For example a number of 10 means that 21 frames are used (10 in the +past and 10 in the future) to smoothen the motion in the video. A +larger values leads to a smoother video, but limits the acceleration +of the camera (pan/tilt movements). 0 is a special case where a +static camera is simulated. +

+
+
optalgo
+

Set the camera path optimization algorithm. +

+

Accepted values are: +

+
gauss
+

gaussian kernel low-pass filter on camera motion (default) +

+
avg
+

averaging on transformations +

+
+ +
+
maxshift
+

Set maximal number of pixels to translate frames. Default value is -1, +meaning no limit. +

+
+
maxangle
+

Set maximal angle in radians (degree*PI/180) to rotate frames. Default +value is -1, meaning no limit. +

+
+
crop
+

Specify how to deal with borders that may be visible due to movement +compensation. +

+

Available values are: +

+
keep
+

keep image information from previous frame (default) +

+
black
+

fill the border black +

+
+ +
+
invert
+

Invert transforms if set to 1. Default value is 0. +

+
+
relative
+

Consider transforms as relative to previsou frame if set to 1, +absolute if set to 0. Default value is 0. +

+
+
zoom
+

Set percentage to zoom. A positive value will result in a zoom-in +effect, a negative value in a zoom-out effect. Default value is 0 (no +zoom). +

+
+
optzoom
+

Set optimal zooming to avoid borders. +

+

Accepted values are: +

+
0
+

disabled +

+
1
+

optimal static zoom value is determined (only very strong movements +will lead to visible borders) (default) +

+
2
+

optimal adaptive zoom value is determined (no borders will be +visible), see ‘zoomspeed’ +

+
+ +

Note that the value given at zoom is added to the one calculated here. +

+
+
zoomspeed
+

Set percent to zoom maximally each frame (enabled when +‘optzoom’ is set to 2). Range is from 0 to 5, default value is +0.25. +

+
+
interpol
+

Specify type of interpolation. +

+

Available values are: +

+
no
+

no interpolation +

+
linear
+

linear only horizontal +

+
bilinear
+

linear in both directions (default) +

+
bicubic
+

cubic in both directions (slow) +

+
+ +
+
tripod
+

Enable virtual tripod mode if set to 1, which is equivalent to +relative=0:smoothing=0. Default value is 0. +

+

Use also tripod option of vidstabdetect. +

+
+
debug
+

Increase log verbosity if set to 1. Also the detected global motions +are written to the temporary file ‘global_motions.trf’. Default +value is 0. +

+
+ + +

9.92.2 Examples

+ +
    +
  • +Use ffmpeg for a typical stabilization with default values: +
     
    ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 inp_stabilized.mpeg
    +
    + +

    Note the use of the unsharp filter which is always recommended. +

    +
  • +Zoom in a bit more and load transform data from a given file: +
     
    vidstabtransform=zoom=5:input="mytransforms.trf"
    +
    + +
  • +Smoothen the video even more: +
     
    vidstabtransform=smoothing=30
    +
    +
+ + +

9.93 vflip

+ +

Flip the input video vertically. +

+

For example, to vertically flip a video with ffmpeg: +

 
ffmpeg -i in.avi -vf "vflip" out.avi
+
+ + +

9.94 vignette

+ +

Make or reverse a natural vignetting effect. +

+

The filter accepts the following options: +

+
+
angle, a
+

Set lens angle expression as a number of radians. +

+

The value is clipped in the [0,PI/2] range. +

+

Default value: "PI/5" +

+
+
x0
+
y0
+

Set center coordinates expressions. Respectively "w/2" and "h/2" +by default. +

+
+
mode
+

Set forward/backward mode. +

+

Available modes are: +

+
forward
+

The larger the distance from the central point, the darker the image becomes. +

+
+
backward
+

The larger the distance from the central point, the brighter the image becomes. +This can be used to reverse a vignette effect, though there is no automatic +detection to extract the lens ‘angle’ and other settings (yet). It can +also be used to create a burning effect. +

+
+ +

Default value is ‘forward’. +

+
+
eval
+

Set evaluation mode for the expressions (‘angle’, ‘x0’, ‘y0’). +

+

It accepts the following values: +

+
init
+

Evaluate expressions only once during the filter initialization. +

+
+
frame
+

Evaluate expressions for each incoming frame. This is way slower than the +‘init’ mode since it requires all the scalers to be re-computed, but it +allows advanced dynamic expressions. +

+
+ +

Default value is ‘init’. +

+
+
dither
+

Set dithering to reduce the circular banding effects. Default is 1 +(enabled). +

+
+
aspect
+

Set vignette aspect. This setting allows one to adjust the shape of the vignette. +Setting this value to the SAR of the input will make a rectangular vignetting +following the dimensions of the video. +

+

Default is 1/1. +

+
+ + +

9.94.1 Expressions

+ +

The ‘alpha’, ‘x0’ and ‘y0’ expressions can contain the +following parameters. +

+
+
w
+
h
+

input width and height +

+
+
n
+

the number of input frame, starting from 0 +

+
+
pts
+

the PTS (Presentation TimeStamp) time of the filtered video frame, expressed in +TB units, NAN if undefined +

+
+
r
+

frame rate of the input video, NAN if the input frame rate is unknown +

+
+
t
+

the PTS (Presentation TimeStamp) of the filtered video frame, +expressed in seconds, NAN if undefined +

+
+
tb
+

time base of the input video +

+
+ + + +

9.94.2 Examples

+ +
    +
  • +Apply simple strong vignetting effect: +
     
    vignette=PI/4
    +
    + +
  • +Make a flickering vignetting: +
     
    vignette='PI/4+random(1)*PI/50':eval=frame
    +
    + +
+ + +

9.95 w3fdif

+ +

Deinterlace the input video ("w3fdif" stands for "Weston 3 Field +Deinterlacing Filter"). +

+

Based on the process described by Martin Weston for BBC R&D, and +implemented based on the de-interlace algorithm written by Jim +Easterbrook for BBC R&D, the Weston 3 field deinterlacing filter +uses filter coefficients calculated by BBC R&D. +

+

There are two sets of filter coefficients, so called "simple": +and "complex". Which set of filter coefficients is used can +be set by passing an optional parameter: +

+
+
filter
+

Set the interlacing filter coefficients. Accepts one of the following values: +

+
+
simple
+

Simple filter coefficient set. +

+
complex
+

More-complex filter coefficient set. +

+
+

Default value is ‘complex’. +

+
+
deint
+

Specify which frames to deinterlace. Accept one of the following values: +

+
+
all
+

Deinterlace all frames, +

+
interlaced
+

Only deinterlace frames marked as interlaced. +

+
+ +

Default value is ‘all’. +

+
+ +

+

+

9.96 yadif

+ +

Deinterlace the input video ("yadif" means "yet another deinterlacing +filter"). +

+

It accepts the following parameters: +

+ +
+
mode
+

The interlacing mode to adopt. It accepts one of the following values: +

+
+
0, send_frame
+

Output one frame for each frame. +

+
1, send_field
+

Output one frame for each field. +

+
2, send_frame_nospatial
+

Like send_frame, but it skips the spatial interlacing check. +

+
3, send_field_nospatial
+

Like send_field, but it skips the spatial interlacing check. +

+
+ +

The default value is send_frame. +

+
+
parity
+

The picture field parity assumed for the input interlaced video. It accepts one +of the following values: +

+
+
0, tff
+

Assume the top field is first. +

+
1, bff
+

Assume the bottom field is first. +

+
-1, auto
+

Enable automatic detection of field parity. +

+
+ +

The default value is auto. +If the interlacing is unknown or the decoder does not export this information, +top field first will be assumed. +

+
+
deint
+

Specify which frames to deinterlace. Accept one of the following +values: +

+
+
0, all
+

Deinterlace all frames. +

+
1, interlaced
+

Only deinterlace frames marked as interlaced. +

+
+ +

The default value is all. +

+
+ + + +

10. Video Sources

+ +

Below is a description of the currently available video sources. +

+ +

10.1 buffer

+ +

Buffer video frames, and make them available to the filter chain. +

+

This source is mainly intended for a programmatic use, in particular +through the interface defined in ‘libavfilter/vsrc_buffer.h’. +

+

It accepts the following parameters: +

+
+
video_size
+

Specify the size (width and height) of the buffered video frames. For the +syntax of this option, check the "Video size" section in the ffmpeg-utils +manual. +

+
+
width
+

The input video width. +

+
+
height
+

The input video height. +

+
+
pix_fmt
+

A string representing the pixel format of the buffered video frames. +It may be a number corresponding to a pixel format, or a pixel format +name. +

+
+
time_base
+

Specify the timebase assumed by the timestamps of the buffered frames. +

+
+
frame_rate
+

Specify the frame rate expected for the video stream. +

+
+
pixel_aspect, sar
+

The sample (pixel) aspect ratio of the input video. +

+
+
sws_param
+

Specify the optional parameters to be used for the scale filter which +is automatically inserted when an input change is detected in the +input size or format. +

+
+ +

For example: +

 
buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1
+
+ +

will instruct the source to accept video frames with size 320x240 and +with format "yuv410p", assuming 1/24 as the timestamps timebase and +square pixels (1:1 sample aspect ratio). +Since the pixel format with name "yuv410p" corresponds to the number 6 +(check the enum AVPixelFormat definition in ‘libavutil/pixfmt.h’), +this example corresponds to: +

 
buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1
+
+ +

Alternatively, the options can be specified as a flat string, but this +syntax is deprecated: +

+

width:height:pix_fmt:time_base.num:time_base.den:pixel_aspect.num:pixel_aspect.den[:sws_param] +

+ +

10.2 cellauto

+ +

Create a pattern generated by an elementary cellular automaton. +

+

The initial state of the cellular automaton can be defined through the +‘filename’, and ‘pattern’ options. If such options are +not specified an initial state is created randomly. +

+

At each new frame a new row in the video is filled with the result of +the cellular automaton next generation. The behavior when the whole +frame is filled is defined by the ‘scroll’ option. +

+

This source accepts the following options: +

+
+
filename, f
+

Read the initial cellular automaton state, i.e. the starting row, from +the specified file. +In the file, each non-whitespace character is considered an alive +cell, a newline will terminate the row, and further characters in the +file will be ignored. +

+
+
pattern, p
+

Read the initial cellular automaton state, i.e. the starting row, from +the specified string. +

+

Each non-whitespace character in the string is considered an alive +cell, a newline will terminate the row, and further characters in the +string will be ignored. +

+
+
rate, r
+

Set the video rate, that is the number of frames generated per second. +Default is 25. +

+
+
random_fill_ratio, ratio
+

Set the random fill ratio for the initial cellular automaton row. It +is a floating point number value ranging from 0 to 1, defaults to +1/PHI. +

+

This option is ignored when a file or a pattern is specified. +

+
+
random_seed, seed
+

Set the seed for filling randomly the initial row, must be an integer +included between 0 and UINT32_MAX. If not specified, or if explicitly +set to -1, the filter will try to use a good random seed on a best +effort basis. +

+
+
rule
+

Set the cellular automaton rule, it is a number ranging from 0 to 255. +Default value is 110. +

+
+
size, s
+

Set the size of the output video. For the syntax of this option, check +the "Video size" section in the ffmpeg-utils manual. +

+

If ‘filename’ or ‘pattern’ is specified, the size is set +by default to the width of the specified initial state row, and the +height is set to width * PHI. +

+

If ‘size’ is set, it must contain the width of the specified +pattern string, and the specified pattern will be centered in the +larger row. +

+

If a filename or a pattern string is not specified, the size value +defaults to "320x518" (used for a randomly generated initial state). +

+
+
scroll
+

If set to 1, scroll the output upward when all the rows in the output +have been already filled. If set to 0, the new generated row will be +written over the top row just after the bottom row is filled. +Defaults to 1. +

+
+
start_full, full
+

If set to 1, completely fill the output with generated rows before +outputting the first frame. +This is the default behavior, for disabling set the value to 0. +

+
+
stitch
+

If set to 1, stitch the left and right row edges together. +This is the default behavior, for disabling set the value to 0. +

+
+ + +

10.2.1 Examples

+ +
    +
  • +Read the initial state from ‘pattern’, and specify an output of +size 200x400. +
     
    cellauto=f=pattern:s=200x400
    +
    + +
  • +Generate a random initial row with a width of 200 cells, with a fill +ratio of 2/3: +
     
    cellauto=ratio=2/3:s=200x200
    +
    + +
  • +Create a pattern generated by rule 18 starting by a single alive cell +centered on an initial row with width 100: +
     
    cellauto=p=@:s=100x400:full=0:rule=18
    +
    + +
  • +Specify a more elaborated initial pattern: +
     
    cellauto=p='@@ @ @@':s=100x400:full=0:rule=18
    +
    + +
+ + +

10.3 mandelbrot

+ +

Generate a Mandelbrot set fractal, and progressively zoom towards the +point specified with start_x and start_y. +

+

This source accepts the following options: +

+
+
end_pts
+

Set the terminal pts value. Default value is 400. +

+
+
end_scale
+

Set the terminal scale value. +Must be a floating point value. Default value is 0.3. +

+
+
inner
+

Set the inner coloring mode, that is the algorithm used to draw the +Mandelbrot fractal internal region. +

+

It shall assume one of the following values: +

+
black
+

Set black mode. +

+
convergence
+

Show time until convergence. +

+
mincol
+

Set color based on point closest to the origin of the iterations. +

+
period
+

Set period mode. +

+
+ +

Default value is mincol. +

+
+
bailout
+

Set the bailout value. Default value is 10.0. +

+
+
maxiter
+

Set the maximum of iterations performed by the rendering +algorithm. Default value is 7189. +

+
+
outer
+

Set outer coloring mode. +It shall assume one of following values: +

+
iteration_count
+

Set iteration cound mode. +

+
normalized_iteration_count
+

set normalized iteration count mode. +

+
+

Default value is normalized_iteration_count. +

+
+
rate, r
+

Set frame rate, expressed as number of frames per second. Default +value is "25". +

+
+
size, s
+

Set frame size. For the syntax of this option, check the "Video +size" section in the ffmpeg-utils manual. Default value is "640x480". +

+
+
start_scale
+

Set the initial scale value. Default value is 3.0. +

+
+
start_x
+

Set the initial x position. Must be a floating point value between +-100 and 100. Default value is -0.743643887037158704752191506114774. +

+
+
start_y
+

Set the initial y position. Must be a floating point value between +-100 and 100. Default value is -0.131825904205311970493132056385139. +

+
+ + +

10.4 mptestsrc

+ +

Generate various test patterns, as generated by the MPlayer test filter. +

+

The size of the generated video is fixed, and is 256x256. +This source is useful in particular for testing encoding features. +

+

This source accepts the following options: +

+
+
rate, r
+

Specify the frame rate of the sourced video, as the number of frames +generated per second. It has to be a string in the format +frame_rate_num/frame_rate_den, an integer number, a floating point +number or a valid video frame rate abbreviation. The default value is +"25". +

+
+
duration, d
+

Set the video duration of the sourced video. The accepted syntax is: +

 
[-]HH:MM:SS[.m...]
+[-]S+[.m...]
+
+

See also the function av_parse_time(). +

+

If not specified, or the expressed duration is negative, the video is +supposed to be generated forever. +

+
+
test, t
+
+

Set the number or the name of the test to perform. Supported tests are: +

+
dc_luma
+
dc_chroma
+
freq_luma
+
freq_chroma
+
amp_luma
+
amp_chroma
+
cbp
+
mv
+
ring1
+
ring2
+
all
+
+ +

Default value is "all", which will cycle through the list of all tests. +

+
+ +

Some examples: +

 
testsrc=t=dc_luma
+
+ +

will generate a "dc_luma" test pattern. +

+ +

10.5 frei0r_src

+ +

Provide a frei0r source. +

+

To enable compilation of this filter you need to install the frei0r +header and configure FFmpeg with --enable-frei0r. +

+

This source accepts the following parameters: +

+
+
size
+

The size of the video to generate. For the syntax of this option, check the +"Video size" section in the ffmpeg-utils manual. +

+
+
framerate
+

The framerate of the generated video. It may be a string of the form +num/den or a frame rate abbreviation. +

+
+
filter_name
+

The name to the frei0r source to load. For more information regarding frei0r and +how to set the parameters, read the frei0r section in the video filters +documentation. +

+
+
filter_params
+

A ’|’-separated list of parameters to pass to the frei0r source. +

+
+
+ +

For example, to generate a frei0r partik0l source with size 200x200 +and frame rate 10 which is overlayed on the overlay filter main input: +

 
frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay
+
+ + +

10.6 life

+ +

Generate a life pattern. +

+

This source is based on a generalization of John Conway’s life game. +

+

The sourced input represents a life grid, each pixel represents a cell +which can be in one of two possible states, alive or dead. Every cell +interacts with its eight neighbours, which are the cells that are +horizontally, vertically, or diagonally adjacent. +

+

At each interaction the grid evolves according to the adopted rule, +which specifies the number of neighbor alive cells which will make a +cell stay alive or born. The ‘rule’ option allows one to specify +the rule to adopt. +

+

This source accepts the following options: +

+
+
filename, f
+

Set the file from which to read the initial grid state. In the file, +each non-whitespace character is considered an alive cell, and newline +is used to delimit the end of each row. +

+

If this option is not specified, the initial grid is generated +randomly. +

+
+
rate, r
+

Set the video rate, that is the number of frames generated per second. +Default is 25. +

+
+
random_fill_ratio, ratio
+

Set the random fill ratio for the initial random grid. It is a +floating point number value ranging from 0 to 1, defaults to 1/PHI. +It is ignored when a file is specified. +

+
+
random_seed, seed
+

Set the seed for filling the initial random grid, must be an integer +included between 0 and UINT32_MAX. If not specified, or if explicitly +set to -1, the filter will try to use a good random seed on a best +effort basis. +

+
+
rule
+

Set the life rule. +

+

A rule can be specified with a code of the kind "SNS/BNB", +where NS and NB are sequences of numbers in the range 0-8, +NS specifies the number of alive neighbor cells which make a +live cell stay alive, and NB the number of alive neighbor cells +which make a dead cell to become alive (i.e. to "born"). +"s" and "b" can be used in place of "S" and "B", respectively. +

+

Alternatively a rule can be specified by an 18-bits integer. The 9 +high order bits are used to encode the next cell state if it is alive +for each number of neighbor alive cells, the low order bits specify +the rule for "borning" new cells. Higher order bits encode for an +higher number of neighbor cells. +For example the number 6153 = (12<<9)+9 specifies a stay alive +rule of 12 and a born rule of 9, which corresponds to "S23/B03". +

+

Default value is "S23/B3", which is the original Conway’s game of life +rule, and will keep a cell alive if it has 2 or 3 neighbor alive +cells, and will born a new cell if there are three alive cells around +a dead cell. +

+
+
size, s
+

Set the size of the output video. For the syntax of this option, check the +"Video size" section in the ffmpeg-utils manual. +

+

If ‘filename’ is specified, the size is set by default to the +same size of the input file. If ‘size’ is set, it must contain +the size specified in the input file, and the initial grid defined in +that file is centered in the larger resulting area. +

+

If a filename is not specified, the size value defaults to "320x240" +(used for a randomly generated initial grid). +

+
+
stitch
+

If set to 1, stitch the left and right grid edges together, and the +top and bottom edges also. Defaults to 1. +

+
+
mold
+

Set cell mold speed. If set, a dead cell will go from ‘death_color’ to +‘mold_color’ with a step of ‘mold’. ‘mold’ can have a +value from 0 to 255. +

+
+
life_color
+

Set the color of living (or new born) cells. +

+
+
death_color
+

Set the color of dead cells. If ‘mold’ is set, this is the first color +used to represent a dead cell. +

+
+
mold_color
+

Set mold color, for definitely dead and moldy cells. +

+

For the syntax of these 3 color options, check the "Color" section in the +ffmpeg-utils manual. +

+
+ + +

10.6.1 Examples

+ +
    +
  • +Read a grid from ‘pattern’, and center it on a grid of size +300x300 pixels: +
     
    life=f=pattern:s=300x300
    +
    + +
  • +Generate a random grid of size 200x200, with a fill ratio of 2/3: +
     
    life=ratio=2/3:s=200x200
    +
    + +
  • +Specify a custom rule for evolving a randomly generated grid: +
     
    life=rule=S14/B34
    +
    + +
  • +Full example with slow death effect (mold) using ffplay: +
     
    ffplay -f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16
    +
    +
+ +

+ + + + + + +

+

10.7 color, haldclutsrc, nullsrc, rgbtestsrc, smptebars, smptehdbars, testsrc

+ +

The color source provides an uniformly colored input. +

+

The haldclutsrc source provides an identity Hald CLUT. See also +haldclut filter. +

+

The nullsrc source returns unprocessed video frames. It is +mainly useful to be employed in analysis / debugging tools, or as the +source for filters which ignore the input data. +

+

The rgbtestsrc source generates an RGB test pattern useful for +detecting RGB vs BGR issues. You should see a red, green and blue +stripe from top to bottom. +

+

The smptebars source generates a color bars pattern, based on +the SMPTE Engineering Guideline EG 1-1990. +

+

The smptehdbars source generates a color bars pattern, based on +the SMPTE RP 219-2002. +

+

The testsrc source generates a test video pattern, showing a +color pattern, a scrolling gradient and a timestamp. This is mainly +intended for testing purposes. +

+

The sources accept the following parameters: +

+
+
color, c
+

Specify the color of the source, only available in the color +source. For the syntax of this option, check the "Color" section in the +ffmpeg-utils manual. +

+
+
level
+

Specify the level of the Hald CLUT, only available in the haldclutsrc +source. A level of N generates a picture of N*N*N by N*N*N +pixels to be used as identity matrix for 3D lookup tables. Each component is +coded on a 1/(N*N) scale. +

+
+
size, s
+

Specify the size of the sourced video. For the syntax of this option, check the +"Video size" section in the ffmpeg-utils manual. The default value is +"320x240". +

+

This option is not available with the haldclutsrc filter. +

+
+
rate, r
+

Specify the frame rate of the sourced video, as the number of frames +generated per second. It has to be a string in the format +frame_rate_num/frame_rate_den, an integer number, a floating point +number or a valid video frame rate abbreviation. The default value is +"25". +

+
+
sar
+

Set the sample aspect ratio of the sourced video. +

+
+
duration, d
+

Set the video duration of the sourced video. The accepted syntax is: +

 
[-]HH[:MM[:SS[.m...]]]
+[-]S+[.m...]
+
+

Also see the the av_parse_time() function. +

+

If not specified, or the expressed duration is negative, the video is +supposed to be generated forever. +

+
+
decimals, n
+

Set the number of decimals to show in the timestamp, only available in the +testsrc source. +

+

The displayed timestamp value will correspond to the original +timestamp value multiplied by the power of 10 of the specified +value. Default value is 0. +

+
+ +

For example the following: +

 
testsrc=duration=5.3:size=qcif:rate=10
+
+ +

will generate a video with a duration of 5.3 seconds, with size +176x144 and a frame rate of 10 frames per second. +

+

The following graph description will generate a red source +with an opacity of 0.2, with size "qcif" and a frame rate of 10 +frames per second. +

 
color=c=red@0.2:s=qcif:r=10
+
+ +

If the input content is to be ignored, nullsrc can be used. The +following command generates noise in the luminance plane by employing +the geq filter: +

 
nullsrc=s=256x256, geq=random(1)*255:128:128
+
+ + +

10.7.1 Commands

+ +

The color source supports the following commands: +

+
+
c, color
+

Set the color of the created image. Accepts the same syntax of the +corresponding ‘color’ option. +

+
+ + + +

11. Video Sinks

+ +

Below is a description of the currently available video sinks. +

+ +

11.1 buffersink

+ +

Buffer video frames, and make them available to the end of the filter +graph. +

+

This sink is mainly intended for programmatic use, in particular +through the interface defined in ‘libavfilter/buffersink.h’ +or the options system. +

+

It accepts a pointer to an AVBufferSinkContext structure, which +defines the incoming buffers’ formats, to be passed as the opaque +parameter to avfilter_init_filter for initialization. +

+ +

11.2 nullsink

+ +

Null video sink: do absolutely nothing with the input video. It is +mainly useful as a template and for use in analysis / debugging +tools. +

+ + +

12. Multimedia Filters

+ +

Below is a description of the currently available multimedia filters. +

+ +

12.1 avectorscope

+ +

Convert input audio to a video output, representing the audio vector +scope. +

+

The filter is used to measure the difference between channels of stereo +audio stream. A monoaural signal, consisting of identical left and right +signal, results in straight vertical line. Any stereo separation is visible +as a deviation from this line, creating a Lissajous figure. +If the straight (or deviation from it) but horizontal line appears this +indicates that the left and right channels are out of phase. +

+

The filter accepts the following options: +

+
+
mode, m
+

Set the vectorscope mode. +

+

Available values are: +

+
lissajous
+

Lissajous rotated by 45 degrees. +

+
+
lissajous_xy
+

Same as above but not rotated. +

+
+ +

Default value is ‘lissajous’. +

+
+
size, s
+

Set the video size for the output. For the syntax of this option, check the "Video size" +section in the ffmpeg-utils manual. Default value is 400x400. +

+
+
rate, r
+

Set the output frame rate. Default value is 25. +

+
+
rc
+
gc
+
bc
+

Specify the red, green and blue contrast. Default values are 40, 160 and 80. +Allowed range is [0, 255]. +

+
+
rf
+
gf
+
bf
+

Specify the red, green and blue fade. Default values are 15, 10 and 5. +Allowed range is [0, 255]. +

+
+
zoom
+

Set the zoom factor. Default value is 1. Allowed range is [1, 10]. +

+
+ + +

12.1.1 Examples

+ +
    +
  • +Complete example using ffplay: +
     
    ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
    +             [a] avectorscope=zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7 [out0]'
    +
    +
+ + +

12.2 concat

+ +

Concatenate audio and video streams, joining them together one after the +other. +

+

The filter works on segments of synchronized video and audio streams. All +segments must have the same number of streams of each type, and that will +also be the number of streams at output. +

+

The filter accepts the following options: +

+
+
n
+

Set the number of segments. Default is 2. +

+
+
v
+

Set the number of output video streams, that is also the number of video +streams in each segment. Default is 1. +

+
+
a
+

Set the number of output audio streams, that is also the number of video +streams in each segment. Default is 0. +

+
+
unsafe
+

Activate unsafe mode: do not fail if segments have a different format. +

+
+
+ +

The filter has v+a outputs: first v video outputs, then +a audio outputs. +

+

There are nx(v+a) inputs: first the inputs for the first +segment, in the same order as the outputs, then the inputs for the second +segment, etc. +

+

Related streams do not always have exactly the same duration, for various +reasons including codec frame size or sloppy authoring. For that reason, +related synchronized streams (e.g. a video and its audio track) should be +concatenated at once. The concat filter will use the duration of the longest +stream in each segment (except the last one), and if necessary pad shorter +audio streams with silence. +

+

For this filter to work correctly, all segments must start at timestamp 0. +

+

All corresponding streams must have the same parameters in all segments; the +filtering system will automatically select a common pixel format for video +streams, and a common sample format, sample rate and channel layout for +audio streams, but other settings, such as resolution, must be converted +explicitly by the user. +

+

Different frame rates are acceptable but will result in variable frame rate +at output; be sure to configure the output file to handle it. +

+ +

12.2.1 Examples

+ +
    +
  • +Concatenate an opening, an episode and an ending, all in bilingual version +(video in stream 0, audio in streams 1 and 2): +
     
    ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv -filter_complex \
    +  '[0:0] [0:1] [0:2] [1:0] [1:1] [1:2] [2:0] [2:1] [2:2]
    +   concat=n=3:v=1:a=2 [v] [a1] [a2]' \
    +  -map '[v]' -map '[a1]' -map '[a2]' output.mkv
    +
    + +
  • +Concatenate two parts, handling audio and video separately, using the +(a)movie sources, and adjusting the resolution: +
     
    movie=part1.mp4, scale=512:288 [v1] ; amovie=part1.mp4 [a1] ;
    +movie=part2.mp4, scale=512:288 [v2] ; amovie=part2.mp4 [a2] ;
    +[v1] [v2] concat [outv] ; [a1] [a2] concat=v=0:a=1 [outa]
    +
    +

    Note that a desync will happen at the stitch if the audio and video streams +do not have exactly the same duration in the first file. +

    +
+ + +

12.3 ebur128

+ +

EBU R128 scanner filter. This filter takes an audio stream as input and outputs +it unchanged. By default, it logs a message at a frequency of 10Hz with the +Momentary loudness (identified by M), Short-term loudness (S), +Integrated loudness (I) and Loudness Range (LRA). +

+

The filter also has a video output (see the video option) with a real +time graph to observe the loudness evolution. The graphic contains the logged +message mentioned above, so it is not printed anymore when this option is set, +unless the verbose logging is set. The main graphing area contains the +short-term loudness (3 seconds of analysis), and the gauge on the right is for +the momentary loudness (400 milliseconds). +

+

More information about the Loudness Recommendation EBU R128 on +http://tech.ebu.ch/loudness. +

+

The filter accepts the following options: +

+
+
video
+

Activate the video output. The audio stream is passed unchanged whether this +option is set or no. The video stream will be the first output stream if +activated. Default is 0. +

+
+
size
+

Set the video size. This option is for video only. For the syntax of this +option, check the "Video size" section in the ffmpeg-utils manual. Default +and minimum resolution is 640x480. +

+
+
meter
+

Set the EBU scale meter. Default is 9. Common values are 9 and +18, respectively for EBU scale meter +9 and EBU scale meter +18. Any +other integer value between this range is allowed. +

+
+
metadata
+

Set metadata injection. If set to 1, the audio input will be segmented +into 100ms output frames, each of them containing various loudness information +in metadata. All the metadata keys are prefixed with lavfi.r128.. +

+

Default is 0. +

+
+
framelog
+

Force the frame logging level. +

+

Available values are: +

+
info
+

information logging level +

+
verbose
+

verbose logging level +

+
+ +

By default, the logging level is set to info. If the ‘video’ or +the ‘metadata’ options are set, it switches to verbose. +

+
+
peak
+

Set peak mode(s). +

+

Available modes can be cumulated (the option is a flag type). Possible +values are: +

+
none
+

Disable any peak mode (default). +

+
sample
+

Enable sample-peak mode. +

+

Simple peak mode looking for the higher sample value. It logs a message +for sample-peak (identified by SPK). +

+
true
+

Enable true-peak mode. +

+

If enabled, the peak lookup is done on an over-sampled version of the input +stream for better peak accuracy. It logs a message for true-peak. +(identified by TPK) and true-peak per frame (identified by FTPK). +This mode requires a build with libswresample. +

+
+ +
+
+ + +

12.3.1 Examples

+ +
    +
  • +Real-time graph using ffplay, with a EBU scale meter +18: +
     
    ffplay -f lavfi -i "amovie=input.mp3,ebur128=video=1:meter=18 [out0][out1]"
    +
    + +
  • +Run an analysis with ffmpeg: +
     
    ffmpeg -nostats -i input.mp3 -filter_complex ebur128 -f null -
    +
    +
+ + +

12.4 interleave, ainterleave

+ +

Temporally interleave frames from several inputs. +

+

interleave works with video inputs, ainterleave with audio. +

+

These filters read frames from several inputs and send the oldest +queued frame to the output. +

+

Input streams must have a well defined, monotonically increasing frame +timestamp values. +

+

In order to submit one frame to output, these filters need to enqueue +at least one frame for each input, so they cannot work in case one +input is not yet terminated and will not receive incoming frames. +

+

For example consider the case when one input is a select filter +which always drop input frames. The interleave filter will keep +reading from that input, but it will never be able to send new frames +to output until the input will send an end-of-stream signal. +

+

Also, depending on inputs synchronization, the filters will drop +frames in case one input receives more frames than the other ones, and +the queue is already filled. +

+

These filters accept the following options: +

+
+
nb_inputs, n
+

Set the number of different inputs, it is 2 by default. +

+
+ + +

12.4.1 Examples

+ +
    +
  • +Interleave frames belonging to different streams using ffmpeg: +
     
    ffmpeg -i bambi.avi -i pr0n.mkv -filter_complex "[0:v][1:v] interleave" out.avi
    +
    + +
  • +Add flickering blur effect: +
     
    select='if(gt(random(0), 0.2), 1, 2)':n=2 [tmp], boxblur=2:2, [tmp] interleave
    +
    +
+ + +

12.5 perms, aperms

+ +

Set read/write permissions for the output frames. +

+

These filters are mainly aimed at developers to test direct path in the +following filter in the filtergraph. +

+

The filters accept the following options: +

+
+
mode
+

Select the permissions mode. +

+

It accepts the following values: +

+
none
+

Do nothing. This is the default. +

+
ro
+

Set all the output frames read-only. +

+
rw
+

Set all the output frames directly writable. +

+
toggle
+

Make the frame read-only if writable, and writable if read-only. +

+
random
+

Set each output frame read-only or writable randomly. +

+
+ +
+
seed
+

Set the seed for the random mode, must be an integer included between +0 and UINT32_MAX. If not specified, or if explicitly set to +-1, the filter will try to use a good random seed on a best effort +basis. +

+
+ +

Note: in case of auto-inserted filter between the permission filter and the +following one, the permission might not be received as expected in that +following filter. Inserting a format or aformat filter before the +perms/aperms filter can avoid this problem. +

+ +

12.6 select, aselect

+ +

Select frames to pass in output. +

+

This filter accepts the following options: +

+
+
expr, e
+

Set expression, which is evaluated for each input frame. +

+

If the expression is evaluated to zero, the frame is discarded. +

+

If the evaluation result is negative or NaN, the frame is sent to the +first output; otherwise it is sent to the output with index +ceil(val)-1, assuming that the input index starts from 0. +

+

For example a value of 1.2 corresponds to the output with index +ceil(1.2)-1 = 2-1 = 1, that is the second output. +

+
+
outputs, n
+

Set the number of outputs. The output to which to send the selected +frame is based on the result of the evaluation. Default value is 1. +

+
+ +

The expression can contain the following constants: +

+
+
n
+

The (sequential) number of the filtered frame, starting from 0. +

+
+
selected_n
+

The (sequential) number of the selected frame, starting from 0. +

+
+
prev_selected_n
+

The sequential number of the last selected frame. It’s NAN if undefined. +

+
+
TB
+

The timebase of the input timestamps. +

+
+
pts
+

The PTS (Presentation TimeStamp) of the filtered video frame, +expressed in TB units. It’s NAN if undefined. +

+
+
t
+

The PTS of the filtered video frame, +expressed in seconds. It’s NAN if undefined. +

+
+
prev_pts
+

The PTS of the previously filtered video frame. It’s NAN if undefined. +

+
+
prev_selected_pts
+

The PTS of the last previously filtered video frame. It’s NAN if undefined. +

+
+
prev_selected_t
+

The PTS of the last previously selected video frame. It’s NAN if undefined. +

+
+
start_pts
+

The PTS of the first video frame in the video. It’s NAN if undefined. +

+
+
start_t
+

The time of the first video frame in the video. It’s NAN if undefined. +

+
+
pict_type (video only)
+

The type of the filtered frame. It can assume one of the following +values: +

+
I
+
P
+
B
+
S
+
SI
+
SP
+
BI
+
+ +
+
interlace_type (video only)
+

The frame interlace type. It can assume one of the following values: +

+
PROGRESSIVE
+

The frame is progressive (not interlaced). +

+
TOPFIRST
+

The frame is top-field-first. +

+
BOTTOMFIRST
+

The frame is bottom-field-first. +

+
+ +
+
consumed_sample_n (audio only)
+

the number of selected samples before the current frame +

+
+
samples_n (audio only)
+

the number of samples in the current frame +

+
+
sample_rate (audio only)
+

the input sample rate +

+
+
key
+

This is 1 if the filtered frame is a key-frame, 0 otherwise. +

+
+
pos
+

the position in the file of the filtered frame, -1 if the information +is not available (e.g. for synthetic video) +

+
+
scene (video only)
+

value between 0 and 1 to indicate a new scene; a low value reflects a low +probability for the current frame to introduce a new scene, while a higher +value means the current frame is more likely to be one (see the example below) +

+
+
+ +

The default value of the select expression is "1". +

+ +

12.6.1 Examples

+ +
    +
  • +Select all frames in input: +
     
    select
    +
    + +

    The example above is the same as: +

     
    select=1
    +
    + +
  • +Skip all frames: +
     
    select=0
    +
    + +
  • +Select only I-frames: +
     
    select='eq(pict_type\,I)'
    +
    + +
  • +Select one frame every 100: +
     
    select='not(mod(n\,100))'
    +
    + +
  • +Select only frames contained in the 10-20 time interval: +
     
    select=between(t\,10\,20)
    +
    + +
  • +Select only I frames contained in the 10-20 time interval: +
     
    select=between(t\,10\,20)*eq(pict_type\,I)
    +
    + +
  • +Select frames with a minimum distance of 10 seconds: +
     
    select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)'
    +
    + +
  • +Use aselect to select only audio frames with samples number > 100: +
     
    aselect='gt(samples_n\,100)'
    +
    + +
  • +Create a mosaic of the first scenes: +
     
    ffmpeg -i video.avi -vf select='gt(scene\,0.4)',scale=160:120,tile -frames:v 1 preview.png
    +
    + +

    Comparing scene against a value between 0.3 and 0.5 is generally a sane +choice. +

    +
  • +Send even and odd frames to separate outputs, and compose them: +
     
    select=n=2:e='mod(n, 2)+1' [odd][even]; [odd] pad=h=2*ih [tmp]; [tmp][even] overlay=y=h
    +
    +
+ + +

12.7 sendcmd, asendcmd

+ +

Send commands to filters in the filtergraph. +

+

These filters read commands to be sent to other filters in the +filtergraph. +

+

sendcmd must be inserted between two video filters, +asendcmd must be inserted between two audio filters, but apart +from that they act the same way. +

+

The specification of commands can be provided in the filter arguments +with the commands option, or in a file specified by the +filename option. +

+

These filters accept the following options: +

+
commands, c
+

Set the commands to be read and sent to the other filters. +

+
filename, f
+

Set the filename of the commands to be read and sent to the other +filters. +

+
+ + +

12.7.1 Commands syntax

+ +

A commands description consists of a sequence of interval +specifications, comprising a list of commands to be executed when a +particular event related to that interval occurs. The occurring event +is typically the current frame time entering or leaving a given time +interval. +

+

An interval is specified by the following syntax: +

 
START[-END] COMMANDS;
+
+ +

The time interval is specified by the START and END times. +END is optional and defaults to the maximum time. +

+

The current frame time is considered within the specified interval if +it is included in the interval [START, END), that is when +the time is greater or equal to START and is lesser than +END. +

+

COMMANDS consists of a sequence of one or more command +specifications, separated by ",", relating to that interval. The +syntax of a command specification is given by: +

 
[FLAGS] TARGET COMMAND ARG
+
+ +

FLAGS is optional and specifies the type of events relating to +the time interval which enable sending the specified command, and must +be a non-null sequence of identifier flags separated by "+" or "|" and +enclosed between "[" and "]". +

+

The following flags are recognized: +

+
enter
+

The command is sent when the current frame timestamp enters the +specified interval. In other words, the command is sent when the +previous frame timestamp was not in the given interval, and the +current is. +

+
+
leave
+

The command is sent when the current frame timestamp leaves the +specified interval. In other words, the command is sent when the +previous frame timestamp was in the given interval, and the +current is not. +

+
+ +

If FLAGS is not specified, a default value of [enter] is +assumed. +

+

TARGET specifies the target of the command, usually the name of +the filter class or a specific filter instance name. +

+

COMMAND specifies the name of the command for the target filter. +

+

ARG is optional and specifies the optional list of argument for +the given COMMAND. +

+

Between one interval specification and another, whitespaces, or +sequences of characters starting with # until the end of line, +are ignored and can be used to annotate comments. +

+

A simplified BNF description of the commands specification syntax +follows: +

 
COMMAND_FLAG  ::= "enter" | "leave"
+COMMAND_FLAGS ::= COMMAND_FLAG [(+|"|")COMMAND_FLAG]
+COMMAND       ::= ["[" COMMAND_FLAGS "]"] TARGET COMMAND [ARG]
+COMMANDS      ::= COMMAND [,COMMANDS]
+INTERVAL      ::= START[-END] COMMANDS
+INTERVALS     ::= INTERVAL[;INTERVALS]
+
+ + +

12.7.2 Examples

+ +
    +
  • +Specify audio tempo change at second 4: +
     
    asendcmd=c='4.0 atempo tempo 1.5',atempo
    +
    + +
  • +Specify a list of drawtext and hue commands in a file. +
     
    # show text in the interval 5-10
    +5.0-10.0 [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=hello world',
    +         [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=';
    +
    +# desaturate the image in the interval 15-20
    +15.0-20.0 [enter] hue s 0,
    +          [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=nocolor',
    +          [leave] hue s 1,
    +          [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=color';
    +
    +# apply an exponential saturation fade-out effect, starting from time 25
    +25 [enter] hue s exp(25-t)
    +
    + +

    A filtergraph allowing to read and process the above command list +stored in a file ‘test.cmd’, can be specified with: +

     
    sendcmd=f=test.cmd,drawtext=fontfile=FreeSerif.ttf:text='',hue
    +
    +
+ +

+

+

12.8 setpts, asetpts

+ +

Change the PTS (presentation timestamp) of the input frames. +

+

setpts works on video frames, asetpts on audio frames. +

+

This filter accepts the following options: +

+
+
expr
+

The expression which is evaluated for each frame to construct its timestamp. +

+
+
+ +

The expression is evaluated through the eval API and can contain the following +constants: +

+
+
FRAME_RATE
+

frame rate, only defined for constant frame-rate video +

+
+
PTS
+

The presentation timestamp in input +

+
+
N
+

The count of the input frame for video or the number of consumed samples, +not including the current frame for audio, starting from 0. +

+
+
NB_CONSUMED_SAMPLES
+

The number of consumed samples, not including the current frame (only +audio) +

+
+
NB_SAMPLES, S
+

The number of samples in the current frame (only audio) +

+
+
SAMPLE_RATE, SR
+

The audio sample rate. +

+
+
STARTPTS
+

The PTS of the first frame. +

+
+
STARTT
+

the time in seconds of the first frame +

+
+
INTERLACED
+

State whether the current frame is interlaced. +

+
+
T
+

the time in seconds of the current frame +

+
+
POS
+

original position in the file of the frame, or undefined if undefined +for the current frame +

+
+
PREV_INPTS
+

The previous input PTS. +

+
+
PREV_INT
+

previous input time in seconds +

+
+
PREV_OUTPTS
+

The previous output PTS. +

+
+
PREV_OUTT
+

previous output time in seconds +

+
+
RTCTIME
+

The wallclock (RTC) time in microseconds.. This is deprecated, use time(0) +instead. +

+
+
RTCSTART
+

The wallclock (RTC) time at the start of the movie in microseconds. +

+
+
TB
+

The timebase of the input timestamps. +

+
+
+ + +

12.8.1 Examples

+ +
    +
  • +Start counting PTS from zero +
     
    setpts=PTS-STARTPTS
    +
    + +
  • +Apply fast motion effect: +
     
    setpts=0.5*PTS
    +
    + +
  • +Apply slow motion effect: +
     
    setpts=2.0*PTS
    +
    + +
  • +Set fixed rate of 25 frames per second: +
     
    setpts=N/(25*TB)
    +
    + +
  • +Set fixed rate 25 fps with some jitter: +
     
    setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'
    +
    + +
  • +Apply an offset of 10 seconds to the input PTS: +
     
    setpts=PTS+10/TB
    +
    + +
  • +Generate timestamps from a "live source" and rebase onto the current timebase: +
     
    setpts='(RTCTIME - RTCSTART) / (TB * 1000000)'
    +
    + +
  • +Generate timestamps by counting samples: +
     
    asetpts=N/SR/TB
    +
    + +
+ + +

12.9 settb, asettb

+ +

Set the timebase to use for the output frames timestamps. +It is mainly useful for testing timebase configuration. +

+

It accepts the following parameters: +

+
+
expr, tb
+

The expression which is evaluated into the output timebase. +

+
+
+ +

The value for ‘tb’ is an arithmetic expression representing a +rational. The expression can contain the constants "AVTB" (the default +timebase), "intb" (the input timebase) and "sr" (the sample rate, +audio only). Default value is "intb". +

+ +

12.9.1 Examples

+ +
    +
  • +Set the timebase to 1/25: +
     
    settb=expr=1/25
    +
    + +
  • +Set the timebase to 1/10: +
     
    settb=expr=0.1
    +
    + +
  • +Set the timebase to 1001/1000: +
     
    settb=1+0.001
    +
    + +
  • +Set the timebase to 2*intb: +
     
    settb=2*intb
    +
    + +
  • +Set the default timebase value: +
     
    settb=AVTB
    +
    +
+ + +

12.10 showspectrum

+ +

Convert input audio to a video output, representing the audio frequency +spectrum. +

+

The filter accepts the following options: +

+
+
size, s
+

Specify the video size for the output. For the syntax of this option, check +the "Video size" section in the ffmpeg-utils manual. Default value is +640x512. +

+
+
slide
+

Specify if the spectrum should slide along the window. Default value is +0. +

+
+
mode
+

Specify display mode. +

+

It accepts the following values: +

+
combined
+

all channels are displayed in the same row +

+
separate
+

all channels are displayed in separate rows +

+
+ +

Default value is ‘combined’. +

+
+
color
+

Specify display color mode. +

+

It accepts the following values: +

+
channel
+

each channel is displayed in a separate color +

+
intensity
+

each channel is is displayed using the same color scheme +

+
+ +

Default value is ‘channel’. +

+
+
scale
+

Specify scale used for calculating intensity color values. +

+

It accepts the following values: +

+
lin
+

linear +

+
sqrt
+

square root, default +

+
cbrt
+

cubic root +

+
log
+

logarithmic +

+
+ +

Default value is ‘sqrt’. +

+
+
saturation
+

Set saturation modifier for displayed colors. Negative values provide +alternative color scheme. 0 is no saturation at all. +Saturation must be in [-10.0, 10.0] range. +Default value is 1. +

+
+
win_func
+

Set window function. +

+

It accepts the following values: +

+
none
+

No samples pre-processing (do not expect this to be faster) +

+
hann
+

Hann window +

+
hamming
+

Hamming window +

+
blackman
+

Blackman window +

+
+ +

Default value is hann. +

+
+ +

The usage is very similar to the showwaves filter; see the examples in that +section. +

+ +

12.10.1 Examples

+ +
    +
  • +Large window with logarithmic color scaling: +
     
    showspectrum=s=1280x480:scale=log
    +
    + +
  • +Complete example for a colored and sliding spectrum per channel using ffplay: +
     
    ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
    +             [a] showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt [out0]'
    +
    +
+ + +

12.11 showwaves

+ +

Convert input audio to a video output, representing the samples waves. +

+

The filter accepts the following options: +

+
+
size, s
+

Specify the video size for the output. For the syntax of this option, check +the "Video size" section in the ffmpeg-utils manual. Default value +is "600x240". +

+
+
mode
+

Set display mode. +

+

Available values are: +

+
point
+

Draw a point for each sample. +

+
+
line
+

Draw a vertical line for each sample. +

+
+ +

Default value is point. +

+
+
n
+

Set the number of samples which are printed on the same column. A +larger value will decrease the frame rate. Must be a positive +integer. This option can be set only if the value for rate +is not explicitly specified. +

+
+
rate, r
+

Set the (approximate) output frame rate. This is done by setting the +option n. Default value is "25". +

+
+
+ + +

12.11.1 Examples

+ +
    +
  • +Output the input file audio and the corresponding video representation +at the same time: +
     
    amovie=a.mp3,asplit[out0],showwaves[out1]
    +
    + +
  • +Create a synthetic signal and show it with showwaves, forcing a +frame rate of 30 frames per second: +
     
    aevalsrc=sin(1*2*PI*t)*sin(880*2*PI*t):cos(2*PI*200*t),asplit[out0],showwaves=r=30[out1]
    +
    +
+ + +

12.12 split, asplit

+ +

Split input into several identical outputs. +

+

asplit works with audio input, split with video. +

+

The filter accepts a single parameter which specifies the number of outputs. If +unspecified, it defaults to 2. +

+ +

12.12.1 Examples

+ +
    +
  • +Create two separate outputs from the same input: +
     
    [in] split [out0][out1]
    +
    + +
  • +To create 3 or more outputs, you need to specify the number of +outputs, like in: +
     
    [in] asplit=3 [out0][out1][out2]
    +
    + +
  • +Create two separate outputs from the same input, one cropped and +one padded: +
     
    [in] split [splitout1][splitout2];
    +[splitout1] crop=100:100:0:0    [cropout];
    +[splitout2] pad=200:200:100:100 [padout];
    +
    + +
  • +Create 5 copies of the input audio with ffmpeg: +
     
    ffmpeg -i INPUT -filter_complex asplit=5 OUTPUT
    +
    +
+ + +

12.13 zmq, azmq

+ +

Receive commands sent through a libzmq client, and forward them to +filters in the filtergraph. +

+

zmq and azmq work as a pass-through filters. zmq +must be inserted between two video filters, azmq between two +audio filters. +

+

To enable these filters you need to install the libzmq library and +headers and configure FFmpeg with --enable-libzmq. +

+

For more information about libzmq see: +http://www.zeromq.org/ +

+

The zmq and azmq filters work as a libzmq server, which +receives messages sent through a network interface defined by the +‘bind_address’ option. +

+

The received message must be in the form: +

 
TARGET COMMAND [ARG]
+
+ +

TARGET specifies the target of the command, usually the name of +the filter class or a specific filter instance name. +

+

COMMAND specifies the name of the command for the target filter. +

+

ARG is optional and specifies the optional argument list for the +given COMMAND. +

+

Upon reception, the message is processed and the corresponding command +is injected into the filtergraph. Depending on the result, the filter +will send a reply to the client, adopting the format: +

 
ERROR_CODE ERROR_REASON
+MESSAGE
+
+ +

MESSAGE is optional. +

+ +

12.13.1 Examples

+ +

Look at ‘tools/zmqsend’ for an example of a zmq client which can +be used to send commands processed by these filters. +

+

Consider the following filtergraph generated by ffplay +

 
ffplay -dumpgraph 1 -f lavfi "
+color=s=100x100:c=red  [l];
+color=s=100x100:c=blue [r];
+nullsrc=s=200x100, zmq [bg];
+[bg][l]   overlay      [bg+l];
+[bg+l][r] overlay=x=100 "
+
+ +

To change the color of the left side of the video, the following +command can be used: +

 
echo Parsed_color_0 c yellow | tools/zmqsend
+
+ +

To change the right side: +

 
echo Parsed_color_1 c pink | tools/zmqsend
+
+ + + +

13. Multimedia Sources

+ +

Below is a description of the currently available multimedia sources. +

+ +

13.1 amovie

+ +

This is the same as movie source, except it selects an audio +stream by default. +

+

+

+

13.2 movie

+ +

Read audio and/or video stream(s) from a movie container. +

+

It accepts the following parameters: +

+
+
filename
+

The name of the resource to read (not necessarily a file; it can also be a +device or a stream accessed through some protocol). +

+
+
format_name, f
+

Specifies the format assumed for the movie to read, and can be either +the name of a container or an input device. If not specified, the +format is guessed from movie_name or by probing. +

+
+
seek_point, sp
+

Specifies the seek point in seconds. The frames will be output +starting from this seek point. The parameter is evaluated with +av_strtod, so the numerical value may be suffixed by an IS +postfix. The default value is "0". +

+
+
streams, s
+

Specifies the streams to read. Several streams can be specified, +separated by "+". The source will then have as many outputs, in the +same order. The syntax is explained in the “Stream specifiers” +section in the ffmpeg manual. Two special names, "dv" and "da" specify +respectively the default (best suited) video and audio stream. Default +is "dv", or "da" if the filter is called as "amovie". +

+
+
stream_index, si
+

Specifies the index of the video stream to read. If the value is -1, +the most suitable video stream will be automatically selected. The default +value is "-1". Deprecated. If the filter is called "amovie", it will select +audio instead of video. +

+
+
loop
+

Specifies how many times to read the stream in sequence. +If the value is less than 1, the stream will be read again and again. +Default value is "1". +

+

Note that when the movie is looped the source timestamps are not +changed, so it will generate non monotonically increasing timestamps. +

+
+ +

It allows overlaying a second video on top of the main input of +a filtergraph, as shown in this graph: +

 
input -----------> deltapts0 --> overlay --> output
+                                    ^
+                                    |
+movie --> scale--> deltapts1 -------+
+
+ +

13.2.1 Examples

+ +
    +
  • +Skip 3.2 seconds from the start of the AVI file in.avi, and overlay it +on top of the input labelled "in": +
     
    movie=in.avi:seek_point=3.2, scale=180:-1, setpts=PTS-STARTPTS [over];
    +[in] setpts=PTS-STARTPTS [main];
    +[main][over] overlay=16:16 [out]
    +
    + +
  • +Read from a video4linux2 device, and overlay it on top of the input +labelled "in": +
     
    movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [over];
    +[in] setpts=PTS-STARTPTS [main];
    +[main][over] overlay=16:16 [out]
    +
    + +
  • +Read the first video stream and the audio stream with id 0x81 from +dvd.vob; the video is connected to the pad named "video" and the audio is +connected to the pad named "audio": +
     
    movie=dvd.vob:s=v:0+#0x81 [video] [audio]
    +
    +
+ + + +

14. See Also

+ +

ffmpeg, ffplay, ffprobe, ffserver, +libavfilter +

+ + +

15. Authors

+ +

The FFmpeg developers. +

+

For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +git log in the FFmpeg source directory, or browsing the +online repository at http://source.ffmpeg.org. +

+

Maintainers for the specific components are listed in the file +‘MAINTAINERS’ in the source code tree. +

+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/ffmpeg-formats.html b/3-Postprocessing/ffmpeg/doc/ffmpeg-formats.html new file mode 100644 index 0000000..3606d1a --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/ffmpeg-formats.html @@ -0,0 +1,2013 @@ + + + + + +FFmpeg documentation : FFmpeg Formats + + + + + + + + + + +
+
+ + +

FFmpeg Formats Documentation

+ + +

Table of Contents

+ + + +

1. Description

+ +

This document describes the supported formats (muxers and demuxers) +provided by the libavformat library. +

+ + +

2. Format Options

+ +

The libavformat library provides some generic global options, which +can be set on all the muxers and demuxers. In addition each muxer or +demuxer may support so-called private options, which are specific for +that component. +

+

Options may be set by specifying -option value in the +FFmpeg tools, or by setting the value explicitly in the +AVFormatContext options or using the ‘libavutil/opt.h’ API +for programmatic use. +

+

The list of supported options follows: +

+
+
avioflags flags (input/output)
+

Possible values: +

+
direct
+

Reduce buffering. +

+
+ +
+
probesize integer (input)
+

Set probing size in bytes, i.e. the size of the data to analyze to get +stream information. A higher value will allow to detect more +information in case it is dispersed into the stream, but will increase +latency. Must be an integer not lesser than 32. It is 5000000 by default. +

+
+
packetsize integer (output)
+

Set packet size. +

+
+
fflags flags (input/output)
+

Set format flags. +

+

Possible values: +

+
ignidx
+

Ignore index. +

+
genpts
+

Generate PTS. +

+
nofillin
+

Do not fill in missing values that can be exactly calculated. +

+
noparse
+

Disable AVParsers, this needs +nofillin too. +

+
igndts
+

Ignore DTS. +

+
discardcorrupt
+

Discard corrupted frames. +

+
sortdts
+

Try to interleave output packets by DTS. +

+
keepside
+

Do not merge side data. +

+
latm
+

Enable RTP MP4A-LATM payload. +

+
nobuffer
+

Reduce the latency introduced by optional buffering +

+
+ +
+
seek2any integer (input)
+

Allow seeking to non-keyframes on demuxer level when supported if set to 1. +Default is 0. +

+
+
analyzeduration integer (input)
+

Specify how many microseconds are analyzed to probe the input. A +higher value will allow to detect more accurate information, but will +increase latency. It defaults to 5,000,000 microseconds = 5 seconds. +

+
+
cryptokey hexadecimal string (input)
+

Set decryption key. +

+
+
indexmem integer (input)
+

Set max memory used for timestamp index (per stream). +

+
+
rtbufsize integer (input)
+

Set max memory used for buffering real-time frames. +

+
+
fdebug flags (input/output)
+

Print specific debug info. +

+

Possible values: +

+
ts
+
+ +
+
max_delay integer (input/output)
+

Set maximum muxing or demuxing delay in microseconds. +

+
+
fpsprobesize integer (input)
+

Set number of frames used to probe fps. +

+
+
audio_preload integer (output)
+

Set microseconds by which audio packets should be interleaved earlier. +

+
+
chunk_duration integer (output)
+

Set microseconds for each chunk. +

+
+
chunk_size integer (output)
+

Set size in bytes for each chunk. +

+
+
err_detect, f_err_detect flags (input)
+

Set error detection flags. f_err_detect is deprecated and +should be used only via the ffmpeg tool. +

+

Possible values: +

+
crccheck
+

Verify embedded CRCs. +

+
bitstream
+

Detect bitstream specification deviations. +

+
buffer
+

Detect improper bitstream length. +

+
explode
+

Abort decoding on minor error detection. +

+
careful
+

Consider things that violate the spec and have not been seen in the +wild as errors. +

+
compliant
+

Consider all spec non compliancies as errors. +

+
aggressive
+

Consider things that a sane encoder should not do as an error. +

+
+ +
+
use_wallclock_as_timestamps integer (input)
+

Use wallclock as timestamps. +

+
+
avoid_negative_ts integer (output)
+
+

Possible values: +

+
make_non_negative
+

Shift timestamps to make them non-negative. +Also note that this affects only leading negative timestamps, and not +non-monotonic negative timestamps. +

+
make_zero
+

Shift timestamps so that the first timestamp is 0. +

+
auto (default)
+

Enables shifting when required by the target format. +

+
disabled
+

Disables shifting of timestamp. +

+
+ +

When shifting is enabled, all output timestamps are shifted by the +same amount. Audio, video, and subtitles desynching and relative +timestamp differences are preserved compared to how they would have +been without shifting. +

+
+
skip_initial_bytes integer (input)
+

Set number of bytes to skip before reading header and frames if set to 1. +Default is 0. +

+
+
correct_ts_overflow integer (input)
+

Correct single timestamp overflows if set to 1. Default is 1. +

+
+
flush_packets integer (output)
+

Flush the underlying I/O stream after each packet. Default 1 enables it, and +has the effect of reducing the latency; 0 disables it and may slightly +increase performance in some cases. +

+
+
output_ts_offset offset (output)
+

Set the output time offset. +

+

offset must be a time duration specification, +see (ffmpeg-utils)time duration syntax. +

+

The offset is added by the muxer to the output timestamps. +

+

Specifying a positive offset means that the corresponding streams are +delayed bt the time duration specified in offset. Default value +is 0 (meaning that no offset is applied). +

+
+ + +

+

+

2.1 Format stream specifiers

+ +

Format stream specifiers allow selection of one or more streams that +match specific properties. +

+

Possible forms of stream specifiers are: +

+
stream_index
+

Matches the stream with this index. +

+
+
stream_type[:stream_index]
+

stream_type is one of following: ’v’ for video, ’a’ for audio, +’s’ for subtitle, ’d’ for data, and ’t’ for attachments. If +stream_index is given, then it matches the stream number +stream_index of this type. Otherwise, it matches all streams of +this type. +

+
+
p:program_id[:stream_index]
+

If stream_index is given, then it matches the stream with number +stream_index in the program with the id +program_id. Otherwise, it matches all streams in the program. +

+
+
#stream_id
+

Matches the stream by a format-specific ID. +

+
+ +

The exact semantics of stream specifiers is defined by the +avformat_match_stream_specifier() function declared in the +‘libavformat/avformat.h’ header. +

+ +

3. Demuxers

+ +

Demuxers are configured elements in FFmpeg that can read the +multimedia streams from a particular type of file. +

+

When you configure your FFmpeg build, all the supported demuxers +are enabled by default. You can list all available ones using the +configure option --list-demuxers. +

+

You can disable all the demuxers using the configure option +--disable-demuxers, and selectively enable a single demuxer with +the option --enable-demuxer=DEMUXER, or disable it +with the option --disable-demuxer=DEMUXER. +

+

The option -formats of the ff* tools will display the list of +enabled demuxers. +

+

The description of some of the currently available demuxers follows. +

+ +

3.1 applehttp

+ +

Apple HTTP Live Streaming demuxer. +

+

This demuxer presents all AVStreams from all variant streams. +The id field is set to the bitrate variant index number. By setting +the discard flags on AVStreams (by pressing ’a’ or ’v’ in ffplay), +the caller can decide which variant streams to actually receive. +The total bitrate of the variant that the stream belongs to is +available in a metadata key named "variant_bitrate". +

+ +

3.2 asf

+ +

Advanced Systems Format demuxer. +

+

This demuxer is used to demux ASF files and MMS network streams. +

+
+
-no_resync_search bool
+

Do not try to resynchronize by looking for a certain optional start code. +

+
+ +

+

+

3.3 concat

+ +

Virtual concatenation script demuxer. +

+

This demuxer reads a list of files and other directives from a text file and +demuxes them one after the other, as if all their packet had been muxed +together. +

+

The timestamps in the files are adjusted so that the first file starts at 0 +and each next file starts where the previous one finishes. Note that it is +done globally and may cause gaps if all streams do not have exactly the same +length. +

+

All files must have the same streams (same codecs, same time base, etc.). +

+

The duration of each file is used to adjust the timestamps of the next file: +if the duration is incorrect (because it was computed using the bit-rate or +because the file is truncated, for example), it can cause artifacts. The +duration directive can be used to override the duration stored in +each file. +

+ +

3.3.1 Syntax

+ +

The script is a text file in extended-ASCII, with one directive per line. +Empty lines, leading spaces and lines starting with ’#’ are ignored. The +following directive is recognized: +

+
+
file path
+

Path to a file to read; special characters and spaces must be escaped with +backslash or single quotes. +

+

All subsequent file-related directives apply to that file. +

+
+
ffconcat version 1.0
+

Identify the script type and version. It also sets the ‘safe’ option +to 1 if it was to its default -1. +

+

To make FFmpeg recognize the format automatically, this directive must +appears exactly as is (no extra space or byte-order-mark) on the very first +line of the script. +

+
+
duration dur
+

Duration of the file. This information can be specified from the file; +specifying it here may be more efficient or help if the information from the +file is not available or accurate. +

+

If the duration is set for all files, then it is possible to seek in the +whole concatenated video. +

+
+
stream
+

Introduce a stream in the virtual file. +All subsequent stream-related directives apply to the last introduced +stream. +Some streams properties must be set in order to allow identifying the +matching streams in the subfiles. +If no streams are defined in the script, the streams from the first file are +copied. +

+
+
exact_stream_id id
+

Set the id of the stream. +If this directive is given, the string with the corresponding id in the +subfiles will be used. +This is especially useful for MPEG-PS (VOB) files, where the order of the +streams is not reliable. +

+
+
+ + +

3.3.2 Options

+ +

This demuxer accepts the following option: +

+
+
safe
+

If set to 1, reject unsafe file paths. A file path is considered safe if it +does not contain a protocol specification and is relative and all components +only contain characters from the portable character set (letters, digits, +period, underscore and hyphen) and have no period at the beginning of a +component. +

+

If set to 0, any file name is accepted. +

+

The default is -1, it is equivalent to 1 if the format was automatically +probed and 0 otherwise. +

+
+
+ + +

3.4 flv

+ +

Adobe Flash Video Format demuxer. +

+

This demuxer is used to demux FLV files and RTMP network streams. +

+
+
-flv_metadata bool
+

Allocate the streams according to the onMetaData array content. +

+
+ + +

3.5 libgme

+ +

The Game Music Emu library is a collection of video game music file emulators. +

+

See http://code.google.com/p/game-music-emu/ for more information. +

+

Some files have multiple tracks. The demuxer will pick the first track by +default. The ‘track_index’ option can be used to select a different +track. Track indexes start at 0. The demuxer exports the number of tracks as +tracks meta data entry. +

+

For very large files, the ‘max_size’ option may have to be adjusted. +

+ +

3.6 libquvi

+ +

Play media from Internet services using the quvi project. +

+

The demuxer accepts a ‘format’ option to request a specific quality. It +is by default set to best. +

+

See http://quvi.sourceforge.net/ for more information. +

+

FFmpeg needs to be built with --enable-libquvi for this demuxer to be +enabled. +

+ +

3.7 image2

+ +

Image file demuxer. +

+

This demuxer reads from a list of image files specified by a pattern. +The syntax and meaning of the pattern is specified by the +option pattern_type. +

+

The pattern may contain a suffix which is used to automatically +determine the format of the images contained in the files. +

+

The size, the pixel format, and the format of each image must be the +same for all the files in the sequence. +

+

This demuxer accepts the following options: +

+
framerate
+

Set the frame rate for the video stream. It defaults to 25. +

+
loop
+

If set to 1, loop over the input. Default value is 0. +

+
pattern_type
+

Select the pattern type used to interpret the provided filename. +

+

pattern_type accepts one of the following values. +

+
sequence
+

Select a sequence pattern type, used to specify a sequence of files +indexed by sequential numbers. +

+

A sequence pattern may contain the string "%d" or "%0Nd", which +specifies the position of the characters representing a sequential +number in each filename matched by the pattern. If the form +"%d0Nd" is used, the string representing the number in each +filename is 0-padded and N is the total number of 0-padded +digits representing the number. The literal character ’%’ can be +specified in the pattern with the string "%%". +

+

If the sequence pattern contains "%d" or "%0Nd", the first filename of +the file list specified by the pattern must contain a number +inclusively contained between start_number and +start_number+start_number_range-1, and all the following +numbers must be sequential. +

+

For example the pattern "img-%03d.bmp" will match a sequence of +filenames of the form ‘img-001.bmp’, ‘img-002.bmp’, ..., +‘img-010.bmp’, etc.; the pattern "i%%m%%g-%d.jpg" will match a +sequence of filenames of the form ‘i%m%g-1.jpg’, +‘i%m%g-2.jpg’, ..., ‘i%m%g-10.jpg’, etc. +

+

Note that the pattern must not necessarily contain "%d" or +"%0Nd", for example to convert a single image file +‘img.jpeg’ you can employ the command: +

 
ffmpeg -i img.jpeg img.png
+
+ +
+
glob
+

Select a glob wildcard pattern type. +

+

The pattern is interpreted like a glob() pattern. This is only +selectable if libavformat was compiled with globbing support. +

+
+
glob_sequence (deprecated, will be removed)
+

Select a mixed glob wildcard/sequence pattern. +

+

If your version of libavformat was compiled with globbing support, and +the provided pattern contains at least one glob meta character among +%*?[]{} that is preceded by an unescaped "%", the pattern is +interpreted like a glob() pattern, otherwise it is interpreted +like a sequence pattern. +

+

All glob special characters %*?[]{} must be prefixed +with "%". To escape a literal "%" you shall use "%%". +

+

For example the pattern foo-%*.jpeg will match all the +filenames prefixed by "foo-" and terminating with ".jpeg", and +foo-%?%?%?.jpeg will match all the filenames prefixed with +"foo-", followed by a sequence of three characters, and terminating +with ".jpeg". +

+

This pattern type is deprecated in favor of glob and +sequence. +

+
+ +

Default value is glob_sequence. +

+
pixel_format
+

Set the pixel format of the images to read. If not specified the pixel +format is guessed from the first image file in the sequence. +

+
start_number
+

Set the index of the file matched by the image file pattern to start +to read from. Default value is 0. +

+
start_number_range
+

Set the index interval range to check when looking for the first image +file in the sequence, starting from start_number. Default value +is 5. +

+
ts_from_file
+

If set to 1, will set frame timestamp to modification time of image file. Note +that monotonity of timestamps is not provided: images go in the same order as +without this option. Default value is 0. +If set to 2, will set frame timestamp to the modification time of the image file in +nanosecond precision. +

+
video_size
+

Set the video size of the images to read. If not specified the video +size is guessed from the first image file in the sequence. +

+
+ + +

3.7.1 Examples

+ +
    +
  • +Use ffmpeg for creating a video from the images in the file +sequence ‘img-001.jpeg’, ‘img-002.jpeg’, ..., assuming an +input frame rate of 10 frames per second: +
     
    ffmpeg -framerate 10 -i 'img-%03d.jpeg' out.mkv
    +
    + +
  • +As above, but start by reading from a file with index 100 in the sequence: +
     
    ffmpeg -framerate 10 -start_number 100 -i 'img-%03d.jpeg' out.mkv
    +
    + +
  • +Read images matching the "*.png" glob pattern , that is all the files +terminating with the ".png" suffix: +
     
    ffmpeg -framerate 10 -pattern_type glob -i "*.png" out.mkv
    +
    +
+ + +

3.8 mpegts

+ +

MPEG-2 transport stream demuxer. +

+
+
fix_teletext_pts
+

Overrides teletext packet PTS and DTS values with the timestamps calculated +from the PCR of the first program which the teletext stream is part of and is +not discarded. Default value is 1, set this option to 0 if you want your +teletext packet PTS and DTS values untouched. +

+
+ + +

3.9 rawvideo

+ +

Raw video demuxer. +

+

This demuxer allows one to read raw video data. Since there is no header +specifying the assumed video parameters, the user must specify them +in order to be able to decode the data correctly. +

+

This demuxer accepts the following options: +

+
framerate
+

Set input video frame rate. Default value is 25. +

+
+
pixel_format
+

Set the input video pixel format. Default value is yuv420p. +

+
+
video_size
+

Set the input video size. This value must be specified explicitly. +

+
+ +

For example to read a rawvideo file ‘input.raw’ with +ffplay, assuming a pixel format of rgb24, a video +size of 320x240, and a frame rate of 10 images per second, use +the command: +

 
ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -framerate 10 input.raw
+
+ + +

3.10 sbg

+ +

SBaGen script demuxer. +

+

This demuxer reads the script language used by SBaGen +http://uazu.net/sbagen/ to generate binaural beats sessions. A SBG +script looks like that: +

 
-SE
+a: 300-2.5/3 440+4.5/0
+b: 300-2.5/0 440+4.5/3
+off: -
+NOW      == a
++0:07:00 == b
++0:14:00 == a
++0:21:00 == b
++0:30:00    off
+
+ +

A SBG script can mix absolute and relative timestamps. If the script uses +either only absolute timestamps (including the script start time) or only +relative ones, then its layout is fixed, and the conversion is +straightforward. On the other hand, if the script mixes both kind of +timestamps, then the NOW reference for relative timestamps will be +taken from the current time of day at the time the script is read, and the +script layout will be frozen according to that reference. That means that if +the script is directly played, the actual times will match the absolute +timestamps up to the sound controller’s clock accuracy, but if the user +somehow pauses the playback or seeks, all times will be shifted accordingly. +

+ +

3.11 tedcaptions

+ +

JSON captions used for TED Talks. +

+

TED does not provide links to the captions, but they can be guessed from the +page. The file ‘tools/bookmarklets.html’ from the FFmpeg source tree +contains a bookmarklet to expose them. +

+

This demuxer accepts the following option: +

+
start_time
+

Set the start time of the TED talk, in milliseconds. The default is 15000 +(15s). It is used to sync the captions with the downloadable videos, because +they include a 15s intro. +

+
+ +

Example: convert the captions to a format most players understand: +

 
ffmpeg -i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-en.srt
+
+ + +

4. Muxers

+ +

Muxers are configured elements in FFmpeg which allow writing +multimedia streams to a particular type of file. +

+

When you configure your FFmpeg build, all the supported muxers +are enabled by default. You can list all available muxers using the +configure option --list-muxers. +

+

You can disable all the muxers with the configure option +--disable-muxers and selectively enable / disable single muxers +with the options --enable-muxer=MUXER / +--disable-muxer=MUXER. +

+

The option -formats of the ff* tools will display the list of +enabled muxers. +

+

A description of some of the currently available muxers follows. +

+

+

+

4.1 aiff

+ +

Audio Interchange File Format muxer. +

+ +

4.1.1 Options

+ +

It accepts the following options: +

+
+
write_id3v2
+

Enable ID3v2 tags writing when set to 1. Default is 0 (disabled). +

+
+
id3v2_version
+

Select ID3v2 version to write. Currently only version 3 and 4 (aka. +ID3v2.3 and ID3v2.4) are supported. The default is version 4. +

+
+
+ +

+

+

4.2 crc

+ +

CRC (Cyclic Redundancy Check) testing format. +

+

This muxer computes and prints the Adler-32 CRC of all the input audio +and video frames. By default audio frames are converted to signed +16-bit raw audio and video frames to raw video before computing the +CRC. +

+

The output of the muxer consists of a single line of the form: +CRC=0xCRC, where CRC is a hexadecimal number 0-padded to +8 digits containing the CRC for all the decoded input frames. +

+

See also the framecrc muxer. +

+ +

4.2.1 Examples

+ +

For example to compute the CRC of the input, and store it in the file +‘out.crc’: +

 
ffmpeg -i INPUT -f crc out.crc
+
+ +

You can print the CRC to stdout with the command: +

 
ffmpeg -i INPUT -f crc -
+
+ +

You can select the output format of each frame with ffmpeg by +specifying the audio and video codec and format. For example to +compute the CRC of the input audio converted to PCM unsigned 8-bit +and the input video converted to MPEG-2 video, use the command: +

 
ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f crc -
+
+ +

+

+

4.3 framecrc

+ +

Per-packet CRC (Cyclic Redundancy Check) testing format. +

+

This muxer computes and prints the Adler-32 CRC for each audio +and video packet. By default audio frames are converted to signed +16-bit raw audio and video frames to raw video before computing the +CRC. +

+

The output of the muxer consists of a line for each audio and video +packet of the form: +

 
stream_index, packet_dts, packet_pts, packet_duration, packet_size, 0xCRC
+
+ +

CRC is a hexadecimal number 0-padded to 8 digits containing the +CRC of the packet. +

+ +

4.3.1 Examples

+ +

For example to compute the CRC of the audio and video frames in +‘INPUT’, converted to raw audio and video packets, and store it +in the file ‘out.crc’: +

 
ffmpeg -i INPUT -f framecrc out.crc
+
+ +

To print the information to stdout, use the command: +

 
ffmpeg -i INPUT -f framecrc -
+
+ +

With ffmpeg, you can select the output format to which the +audio and video frames are encoded before computing the CRC for each +packet by specifying the audio and video codec. For example, to +compute the CRC of each decoded input audio frame converted to PCM +unsigned 8-bit and of each decoded input video frame converted to +MPEG-2 video, use the command: +

 
ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f framecrc -
+
+ +

See also the crc muxer. +

+

+

+

4.4 framemd5

+ +

Per-packet MD5 testing format. +

+

This muxer computes and prints the MD5 hash for each audio +and video packet. By default audio frames are converted to signed +16-bit raw audio and video frames to raw video before computing the +hash. +

+

The output of the muxer consists of a line for each audio and video +packet of the form: +

 
stream_index, packet_dts, packet_pts, packet_duration, packet_size, MD5
+
+ +

MD5 is a hexadecimal number representing the computed MD5 hash +for the packet. +

+ +

4.4.1 Examples

+ +

For example to compute the MD5 of the audio and video frames in +‘INPUT’, converted to raw audio and video packets, and store it +in the file ‘out.md5’: +

 
ffmpeg -i INPUT -f framemd5 out.md5
+
+ +

To print the information to stdout, use the command: +

 
ffmpeg -i INPUT -f framemd5 -
+
+ +

See also the md5 muxer. +

+

+

+

4.5 gif

+ +

Animated GIF muxer. +

+

It accepts the following options: +

+
+
loop
+

Set the number of times to loop the output. Use -1 for no loop, 0 +for looping indefinitely (default). +

+
+
final_delay
+

Force the delay (expressed in centiseconds) after the last frame. Each frame +ends with a delay until the next frame. The default is -1, which is a +special value to tell the muxer to re-use the previous delay. In case of a +loop, you might want to customize this value to mark a pause for instance. +

+
+ +

For example, to encode a gif looping 10 times, with a 5 seconds delay between +the loops: +

 
ffmpeg -i INPUT -loop 10 -final_delay 500 out.gif
+
+ +

Note 1: if you wish to extract the frames in separate GIF files, you need to +force the image2 muxer: +

 
ffmpeg -i INPUT -c:v gif -f image2 "out%d.gif"
+
+ +

Note 2: the GIF format has a very small time base: the delay between two frames +can not be smaller than one centi second. +

+

+

+

4.6 hls

+ +

Apple HTTP Live Streaming muxer that segments MPEG-TS according to +the HTTP Live Streaming (HLS) specification. +

+

It creates a playlist file and numbered segment files. The output +filename specifies the playlist filename; the segment filenames +receive the same basename as the playlist, a sequential number and +a .ts extension. +

+

For example, to convert an input file with ffmpeg: +

 
ffmpeg -i in.nut out.m3u8
+
+ +

See also the segment muxer, which provides a more generic and +flexible implementation of a segmenter, and can be used to perform HLS +segmentation. +

+ +

4.6.1 Options

+ +

This muxer supports the following options: +

+
+
hls_time seconds
+

Set the segment length in seconds. Default value is 2. +

+
+
hls_list_size size
+

Set the maximum number of playlist entries. If set to 0 the list file +will contain all the segments. Default value is 5. +

+
+
hls_wrap wrap
+

Set the number after which the segment filename number (the number +specified in each segment file) wraps. If set to 0 the number will be +never wrapped. Default value is 0. +

+

This option is useful to avoid to fill the disk with many segment +files, and limits the maximum number of segment files written to disk +to wrap. +

+
+
start_number number
+

Start the playlist sequence number from number. Default value is +0. +

+

Note that the playlist sequence number must be unique for each segment +and it is not to be confused with the segment filename sequence number +which can be cyclic, for example if the ‘wrap’ option is +specified. +

+
+ +

+

+

4.7 ico

+ +

ICO file muxer. +

+

Microsoft’s icon file format (ICO) has some strict limitations that should be noted: +

+
    +
  • +Size cannot exceed 256 pixels in any dimension + +
  • +Only BMP and PNG images can be stored + +
  • +If a BMP image is used, it must be one of the following pixel formats: +
     
    BMP Bit Depth      FFmpeg Pixel Format
    +1bit               pal8
    +4bit               pal8
    +8bit               pal8
    +16bit              rgb555le
    +24bit              bgr24
    +32bit              bgra
    +
    + +
  • +If a BMP image is used, it must use the BITMAPINFOHEADER DIB header + +
  • +If a PNG image is used, it must use the rgba pixel format +
+ +

+

+

4.8 image2

+ +

Image file muxer. +

+

The image file muxer writes video frames to image files. +

+

The output filenames are specified by a pattern, which can be used to +produce sequentially numbered series of files. +The pattern may contain the string "%d" or "%0Nd", this string +specifies the position of the characters representing a numbering in +the filenames. If the form "%0Nd" is used, the string +representing the number in each filename is 0-padded to N +digits. The literal character ’%’ can be specified in the pattern with +the string "%%". +

+

If the pattern contains "%d" or "%0Nd", the first filename of +the file list specified will contain the number 1, all the following +numbers will be sequential. +

+

The pattern may contain a suffix which is used to automatically +determine the format of the image files to write. +

+

For example the pattern "img-%03d.bmp" will specify a sequence of +filenames of the form ‘img-001.bmp’, ‘img-002.bmp’, ..., +‘img-010.bmp’, etc. +The pattern "img%%-%d.jpg" will specify a sequence of filenames of the +form ‘img%-1.jpg’, ‘img%-2.jpg’, ..., ‘img%-10.jpg’, +etc. +

+ +

4.8.1 Examples

+ +

The following example shows how to use ffmpeg for creating a +sequence of files ‘img-001.jpeg’, ‘img-002.jpeg’, ..., +taking one image every second from the input video: +

 
ffmpeg -i in.avi -vsync 1 -r 1 -f image2 'img-%03d.jpeg'
+
+ +

Note that with ffmpeg, if the format is not specified with the +-f option and the output filename specifies an image file +format, the image2 muxer is automatically selected, so the previous +command can be written as: +

 
ffmpeg -i in.avi -vsync 1 -r 1 'img-%03d.jpeg'
+
+ +

Note also that the pattern must not necessarily contain "%d" or +"%0Nd", for example to create a single image file +‘img.jpeg’ from the input video you can employ the command: +

 
ffmpeg -i in.avi -f image2 -frames:v 1 img.jpeg
+
+ +

The ‘strftime’ option allows you to expand the filename with +date and time information. Check the documentation of +the strftime() function for the syntax. +

+

For example to generate image files from the strftime() +"%Y-%m-%d_%H-%M-%S" pattern, the following ffmpeg command +can be used: +

 
ffmpeg -f v4l2 -r 1 -i /dev/video0 -f image2 -strftime 1 "%Y-%m-%d_%H-%M-%S.jpg"
+
+ + +

4.8.2 Options

+ +
+
start_number
+

Start the sequence from the specified number. Default value is 1. Must +be a non-negative number. +

+
+
update
+

If set to 1, the filename will always be interpreted as just a +filename, not a pattern, and the corresponding file will be continuously +overwritten with new images. Default value is 0. +

+
+
strftime
+

If set to 1, expand the filename with date and time information from +strftime(). Default value is 0. +

+
+ +

The image muxer supports the .Y.U.V image file format. This format is +special in that that each image frame consists of three files, for +each of the YUV420P components. To read or write this image file format, +specify the name of the ’.Y’ file. The muxer will automatically open the +’.U’ and ’.V’ files as required. +

+ +

4.9 matroska

+ +

Matroska container muxer. +

+

This muxer implements the matroska and webm container specs. +

+ +

4.9.1 Metadata

+ +

The recognized metadata settings in this muxer are: +

+
+
title
+

Set title name provided to a single track. +

+
+
language
+

Specify the language of the track in the Matroska languages form. +

+

The language can be either the 3 letters bibliographic ISO-639-2 (ISO +639-2/B) form (like "fre" for French), or a language code mixed with a +country code for specialities in languages (like "fre-ca" for Canadian +French). +

+
+
stereo_mode
+

Set stereo 3D video layout of two views in a single video track. +

+

The following values are recognized: +

+
mono
+

video is not stereo +

+
left_right
+

Both views are arranged side by side, Left-eye view is on the left +

+
bottom_top
+

Both views are arranged in top-bottom orientation, Left-eye view is at bottom +

+
top_bottom
+

Both views are arranged in top-bottom orientation, Left-eye view is on top +

+
checkerboard_rl
+

Each view is arranged in a checkerboard interleaved pattern, Left-eye view being first +

+
checkerboard_lr
+

Each view is arranged in a checkerboard interleaved pattern, Right-eye view being first +

+
row_interleaved_rl
+

Each view is constituted by a row based interleaving, Right-eye view is first row +

+
row_interleaved_lr
+

Each view is constituted by a row based interleaving, Left-eye view is first row +

+
col_interleaved_rl
+

Both views are arranged in a column based interleaving manner, Right-eye view is first column +

+
col_interleaved_lr
+

Both views are arranged in a column based interleaving manner, Left-eye view is first column +

+
anaglyph_cyan_red
+

All frames are in anaglyph format viewable through red-cyan filters +

+
right_left
+

Both views are arranged side by side, Right-eye view is on the left +

+
anaglyph_green_magenta
+

All frames are in anaglyph format viewable through green-magenta filters +

+
block_lr
+

Both eyes laced in one Block, Left-eye view is first +

+
block_rl
+

Both eyes laced in one Block, Right-eye view is first +

+
+
+
+ +

For example a 3D WebM clip can be created using the following command line: +

 
ffmpeg -i sample_left_right_clip.mpg -an -c:v libvpx -metadata stereo_mode=left_right -y stereo_clip.webm
+
+ + +

4.9.2 Options

+ +

This muxer supports the following options: +

+
+
reserve_index_space
+

By default, this muxer writes the index for seeking (called cues in Matroska +terms) at the end of the file, because it cannot know in advance how much space +to leave for the index at the beginning of the file. However for some use cases +– e.g. streaming where seeking is possible but slow – it is useful to put the +index at the beginning of the file. +

+

If this option is set to a non-zero value, the muxer will reserve a given amount +of space in the file header and then try to write the cues there when the muxing +finishes. If the available space does not suffice, muxing will fail. A safe size +for most use cases should be about 50kB per hour of video. +

+

Note that cues are only written if the output is seekable and this option will +have no effect if it is not. +

+
+ +

+

+

4.10 md5

+ +

MD5 testing format. +

+

This muxer computes and prints the MD5 hash of all the input audio +and video frames. By default audio frames are converted to signed +16-bit raw audio and video frames to raw video before computing the +hash. +

+

The output of the muxer consists of a single line of the form: +MD5=MD5, where MD5 is a hexadecimal number representing +the computed MD5 hash. +

+

For example to compute the MD5 hash of the input converted to raw +audio and video, and store it in the file ‘out.md5’: +

 
ffmpeg -i INPUT -f md5 out.md5
+
+ +

You can print the MD5 to stdout with the command: +

 
ffmpeg -i INPUT -f md5 -
+
+ +

See also the framemd5 muxer. +

+ +

4.11 mov, mp4, ismv

+ +

MOV/MP4/ISMV (Smooth Streaming) muxer. +

+

The mov/mp4/ismv muxer supports fragmentation. Normally, a MOV/MP4 +file has all the metadata about all packets stored in one location +(written at the end of the file, it can be moved to the start for +better playback by adding faststart to the movflags, or +using the qt-faststart tool). A fragmented +file consists of a number of fragments, where packets and metadata +about these packets are stored together. Writing a fragmented +file has the advantage that the file is decodable even if the +writing is interrupted (while a normal MOV/MP4 is undecodable if +it is not properly finished), and it requires less memory when writing +very long files (since writing normal MOV/MP4 files stores info about +every single packet in memory until the file is closed). The downside +is that it is less compatible with other applications. +

+ +

4.11.1 Options

+ +

Fragmentation is enabled by setting one of the AVOptions that define +how to cut the file into fragments: +

+
+
-moov_size bytes
+

Reserves space for the moov atom at the beginning of the file instead of placing the +moov atom at the end. If the space reserved is insufficient, muxing will fail. +

+
-movflags frag_keyframe
+

Start a new fragment at each video keyframe. +

+
-frag_duration duration
+

Create fragments that are duration microseconds long. +

+
-frag_size size
+

Create fragments that contain up to size bytes of payload data. +

+
-movflags frag_custom
+

Allow the caller to manually choose when to cut fragments, by +calling av_write_frame(ctx, NULL) to write a fragment with +the packets written so far. (This is only useful with other +applications integrating libavformat, not from ffmpeg.) +

+
-min_frag_duration duration
+

Don’t create fragments that are shorter than duration microseconds long. +

+
+ +

If more than one condition is specified, fragments are cut when +one of the specified conditions is fulfilled. The exception to this is +-min_frag_duration, which has to be fulfilled for any of the other +conditions to apply. +

+

Additionally, the way the output file is written can be adjusted +through a few other options: +

+
+
-movflags empty_moov
+

Write an initial moov atom directly at the start of the file, without +describing any samples in it. Generally, an mdat/moov pair is written +at the start of the file, as a normal MOV/MP4 file, containing only +a short portion of the file. With this option set, there is no initial +mdat atom, and the moov atom only describes the tracks but has +a zero duration. +

+

Files written with this option set do not work in QuickTime. +This option is implicitly set when writing ismv (Smooth Streaming) files. +

+
-movflags separate_moof
+

Write a separate moof (movie fragment) atom for each track. Normally, +packets for all tracks are written in a moof atom (which is slightly +more efficient), but with this option set, the muxer writes one moof/mdat +pair for each track, making it easier to separate tracks. +

+

This option is implicitly set when writing ismv (Smooth Streaming) files. +

+
-movflags faststart
+

Run a second pass moving the index (moov atom) to the beginning of the file. +This operation can take a while, and will not work in various situations such +as fragmented output, thus it is not enabled by default. +

+
-movflags rtphint
+

Add RTP hinting tracks to the output file. +

+
+ + +

4.11.2 Example

+ +

Smooth Streaming content can be pushed in real time to a publishing +point on IIS with this muxer. Example: +

 
ffmpeg -re <normal input/transcoding options> -movflags isml+frag_keyframe -f ismv http://server/publishingpoint.isml/Streams(Encoder1)
+
+ + +

4.12 mp3

+ +

The MP3 muxer writes a raw MP3 stream with an ID3v2 header at the beginning and +optionally an ID3v1 tag at the end. ID3v2.3 and ID3v2.4 are supported, the +id3v2_version option controls which one is used. Setting +id3v2_version to 0 will disable the ID3v2 header completely. The legacy +ID3v1 tag is not written by default, but may be enabled with the +write_id3v1 option. +

+

The muxer may also write a Xing frame at the beginning, which contains the +number of frames in the file. It is useful for computing duration of VBR files. +The Xing frame is written if the output stream is seekable and if the +write_xing option is set to 1 (the default). +

+

The muxer supports writing ID3v2 attached pictures (APIC frames). The pictures +are supplied to the muxer in form of a video stream with a single packet. There +can be any number of those streams, each will correspond to a single APIC frame. +The stream metadata tags title and comment map to APIC +description and picture type respectively. See +http://id3.org/id3v2.4.0-frames for allowed picture types. +

+

Note that the APIC frames must be written at the beginning, so the muxer will +buffer the audio frames until it gets all the pictures. It is therefore advised +to provide the pictures as soon as possible to avoid excessive buffering. +

+

Examples: +

+

Write an mp3 with an ID3v2.3 header and an ID3v1 footer: +

 
ffmpeg -i INPUT -id3v2_version 3 -write_id3v1 1 out.mp3
+
+ +

To attach a picture to an mp3 file select both the audio and the picture stream +with map: +

 
ffmpeg -i input.mp3 -i cover.png -c copy -map 0 -map 1
+-metadata:s:v title="Album cover" -metadata:s:v comment="Cover (Front)" out.mp3
+
+ +

Write a "clean" MP3 without any extra features: +

 
ffmpeg -i input.wav -write_xing 0 -id3v2_version 0 out.mp3
+
+ + +

4.13 mpegts

+ +

MPEG transport stream muxer. +

+

This muxer implements ISO 13818-1 and part of ETSI EN 300 468. +

+

The recognized metadata settings in mpegts muxer are service_provider +and service_name. If they are not set the default for +service_provider is "FFmpeg" and the default for +service_name is "Service01". +

+ +

4.13.1 Options

+ +

The muxer options are: +

+
+
-mpegts_original_network_id number
+

Set the original_network_id (default 0x0001). This is unique identifier +of a network in DVB. Its main use is in the unique identification of a +service through the path Original_Network_ID, Transport_Stream_ID. +

+
-mpegts_transport_stream_id number
+

Set the transport_stream_id (default 0x0001). This identifies a +transponder in DVB. +

+
-mpegts_service_id number
+

Set the service_id (default 0x0001) also known as program in DVB. +

+
-mpegts_pmt_start_pid number
+

Set the first PID for PMT (default 0x1000, max 0x1f00). +

+
-mpegts_start_pid number
+

Set the first PID for data packets (default 0x0100, max 0x0f00). +

+
-mpegts_m2ts_mode number
+

Enable m2ts mode if set to 1. Default value is -1 which disables m2ts mode. +

+
-muxrate number
+

Set muxrate. +

+
-pes_payload_size number
+

Set minimum PES packet payload in bytes. +

+
-mpegts_flags flags
+

Set flags (see below). +

+
-mpegts_copyts number
+

Preserve original timestamps, if value is set to 1. Default value is -1, which +results in shifting timestamps so that they start from 0. +

+
-tables_version number
+

Set PAT, PMT and SDT version (default 0, valid values are from 0 to 31, inclusively). +This option allows updating stream structure so that standard consumer may +detect the change. To do so, reopen output AVFormatContext (in case of API +usage) or restart ffmpeg instance, cyclically changing tables_version value: +

 
ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 udp://1.1.1.1:1111
+ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 udp://1.1.1.1:1111
+...
+ffmpeg -i source3.ts -codec copy -f mpegts -tables_version 31 udp://1.1.1.1:1111
+ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 udp://1.1.1.1:1111
+ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 udp://1.1.1.1:1111
+...
+
+
+
+ +

Option mpegts_flags may take a set of such flags: +

+
+
resend_headers
+

Reemit PAT/PMT before writing the next packet. +

+
latm
+

Use LATM packetization for AAC. +

+
+ + +

4.13.2 Example

+ +
 
ffmpeg -i file.mpg -c copy \
+     -mpegts_original_network_id 0x1122 \
+     -mpegts_transport_stream_id 0x3344 \
+     -mpegts_service_id 0x5566 \
+     -mpegts_pmt_start_pid 0x1500 \
+     -mpegts_start_pid 0x150 \
+     -metadata service_provider="Some provider" \
+     -metadata service_name="Some Channel" \
+     -y out.ts
+
+ + +

4.14 null

+ +

Null muxer. +

+

This muxer does not generate any output file, it is mainly useful for +testing or benchmarking purposes. +

+

For example to benchmark decoding with ffmpeg you can use the +command: +

 
ffmpeg -benchmark -i INPUT -f null out.null
+
+ +

Note that the above command does not read or write the ‘out.null’ +file, but specifying the output file is required by the ffmpeg +syntax. +

+

Alternatively you can write the command as: +

 
ffmpeg -benchmark -i INPUT -f null -
+
+ + +

4.15 ogg

+ +

Ogg container muxer. +

+
+
-page_duration duration
+

Preferred page duration, in microseconds. The muxer will attempt to create +pages that are approximately duration microseconds long. This allows the +user to compromise between seek granularity and container overhead. The default +is 1 second. A value of 0 will fill all segments, making pages as large as +possible. A value of 1 will effectively use 1 packet-per-page in most +situations, giving a small seek granularity at the cost of additional container +overhead. +

+
+ +

+

+

4.16 segment, stream_segment, ssegment

+ +

Basic stream segmenter. +

+

This muxer outputs streams to a number of separate files of nearly +fixed duration. Output filename pattern can be set in a fashion similar to +image2. +

+

stream_segment is a variant of the muxer used to write to +streaming output formats, i.e. which do not require global headers, +and is recommended for outputting e.g. to MPEG transport stream segments. +ssegment is a shorter alias for stream_segment. +

+

Every segment starts with a keyframe of the selected reference stream, +which is set through the ‘reference_stream’ option. +

+

Note that if you want accurate splitting for a video file, you need to +make the input key frames correspond to the exact splitting times +expected by the segmenter, or the segment muxer will start the new +segment with the key frame found next after the specified start +time. +

+

The segment muxer works best with a single constant frame rate video. +

+

Optionally it can generate a list of the created segments, by setting +the option segment_list. The list type is specified by the +segment_list_type option. The entry filenames in the segment +list are set by default to the basename of the corresponding segment +files. +

+

See also the hls muxer, which provides a more specific +implementation for HLS segmentation. +

+ +

4.16.1 Options

+ +

The segment muxer supports the following options: +

+
+
reference_stream specifier
+

Set the reference stream, as specified by the string specifier. +If specifier is set to auto, the reference is chosen +automatically. Otherwise it must be a stream specifier (see the “Stream +specifiers” chapter in the ffmpeg manual) which specifies the +reference stream. The default value is auto. +

+
+
segment_format format
+

Override the inner container format, by default it is guessed by the filename +extension. +

+
+
segment_list name
+

Generate also a listfile named name. If not specified no +listfile is generated. +

+
+
segment_list_flags flags
+

Set flags affecting the segment list generation. +

+

It currently supports the following flags: +

+
cache
+

Allow caching (only affects M3U8 list files). +

+
+
live
+

Allow live-friendly file generation. +

+
+ +
+
segment_list_size size
+

Update the list file so that it contains at most the last size +segments. If 0 the list file will contain all the segments. Default +value is 0. +

+
+
segment_list_entry_prefix prefix
+

Set prefix to prepend to the name of each entry filename. By +default no prefix is applied. +

+
+
segment_list_type type
+

Specify the format for the segment list file. +

+

The following values are recognized: +

+
flat
+

Generate a flat list for the created segments, one segment per line. +

+
+
csv, ext
+

Generate a list for the created segments, one segment per line, +each line matching the format (comma-separated values): +

 
segment_filename,segment_start_time,segment_end_time
+
+ +

segment_filename is the name of the output file generated by the +muxer according to the provided pattern. CSV escaping (according to +RFC4180) is applied if required. +

+

segment_start_time and segment_end_time specify +the segment start and end time expressed in seconds. +

+

A list file with the suffix ".csv" or ".ext" will +auto-select this format. +

+

ext’ is deprecated in favor or ‘csv’. +

+
+
ffconcat
+

Generate an ffconcat file for the created segments. The resulting file +can be read using the FFmpeg concat demuxer. +

+

A list file with the suffix ".ffcat" or ".ffconcat" will +auto-select this format. +

+
+
m3u8
+

Generate an extended M3U8 file, version 3, compliant with +http://tools.ietf.org/id/draft-pantos-http-live-streaming. +

+

A list file with the suffix ".m3u8" will auto-select this format. +

+
+ +

If not specified the type is guessed from the list file name suffix. +

+
+
segment_time time
+

Set segment duration to time, the value must be a duration +specification. Default value is "2". See also the +‘segment_times’ option. +

+

Note that splitting may not be accurate, unless you force the +reference stream key-frames at the given time. See the introductory +notice and the examples below. +

+
+
segment_time_delta delta
+

Specify the accuracy time when selecting the start time for a +segment, expressed as a duration specification. Default value is "0". +

+

When delta is specified a key-frame will start a new segment if its +PTS satisfies the relation: +

 
PTS >= start_time - time_delta
+
+ +

This option is useful when splitting video content, which is always +split at GOP boundaries, in case a key frame is found just before the +specified split time. +

+

In particular may be used in combination with the ‘ffmpeg’ option +force_key_frames. The key frame times specified by +force_key_frames may not be set accurately because of rounding +issues, with the consequence that a key frame time may result set just +before the specified time. For constant frame rate videos a value of +1/(2*frame_rate) should address the worst case mismatch between +the specified time and the time set by force_key_frames. +

+
+
segment_times times
+

Specify a list of split points. times contains a list of comma +separated duration specifications, in increasing order. See also +the ‘segment_time’ option. +

+
+
segment_frames frames
+

Specify a list of split video frame numbers. frames contains a +list of comma separated integer numbers, in increasing order. +

+

This option specifies to start a new segment whenever a reference +stream key frame is found and the sequential number (starting from 0) +of the frame is greater or equal to the next value in the list. +

+
+
segment_wrap limit
+

Wrap around segment index once it reaches limit. +

+
+
segment_start_number number
+

Set the sequence number of the first segment. Defaults to 0. +

+
+
reset_timestamps 1|0
+

Reset timestamps at the begin of each segment, so that each segment +will start with near-zero timestamps. It is meant to ease the playback +of the generated segments. May not work with some combinations of +muxers/codecs. It is set to 0 by default. +

+
+
initial_offset offset
+

Specify timestamp offset to apply to the output packet timestamps. The +argument must be a time duration specification, and defaults to 0. +

+
+ + +

4.16.2 Examples

+ +
    +
  • +To remux the content of file ‘in.mkv’ to a list of segments +‘out-000.nut’, ‘out-001.nut’, etc., and write the list of +generated segments to ‘out.list’: +
     
    ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.list out%03d.nut
    +
    + +
  • +As the example above, but segment the input file according to the split +points specified by the segment_times option: +
     
    ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_times 1,2,3,5,8,13,21 out%03d.nut
    +
    + +
  • +As the example above, but use the ffmpegforce_key_frames’ +option to force key frames in the input at the specified location, together +with the segment option ‘segment_time_delta’ to account for +possible roundings operated when setting key frame times. +
     
    ffmpeg -i in.mkv -force_key_frames 1,2,3,5,8,13,21 -codec:v mpeg4 -codec:a pcm_s16le -map 0 \
    +-f segment -segment_list out.csv -segment_times 1,2,3,5,8,13,21 -segment_time_delta 0.05 out%03d.nut
    +
    +

    In order to force key frames on the input file, transcoding is +required. +

    +
  • +Segment the input file by splitting the input file according to the +frame numbers sequence specified with the ‘segment_frames’ option: +
     
    ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_frames 100,200,300,500,800 out%03d.nut
    +
    + +
  • +To convert the ‘in.mkv’ to TS segments using the libx264 +and libfaac encoders: +
     
    ffmpeg -i in.mkv -map 0 -codec:v libx264 -codec:a libfaac -f ssegment -segment_list out.list out%03d.ts
    +
    + +
  • +Segment the input file, and create an M3U8 live playlist (can be used +as live HLS source): +
     
    ffmpeg -re -i in.mkv -codec copy -map 0 -f segment -segment_list playlist.m3u8 \
    +-segment_list_flags +live -segment_time 10 out%03d.mkv
    +
    +
+ + +

4.17 tee

+ +

The tee muxer can be used to write the same data to several files or any +other kind of muxer. It can be used, for example, to both stream a video to +the network and save it to disk at the same time. +

+

It is different from specifying several outputs to the ffmpeg +command-line tool because the audio and video data will be encoded only once +with the tee muxer; encoding can be a very expensive process. It is not +useful when using the libavformat API directly because it is then possible +to feed the same packets to several muxers directly. +

+

The slave outputs are specified in the file name given to the muxer, +separated by ’|’. If any of the slave name contains the ’|’ separator, +leading or trailing spaces or any special character, it must be +escaped (see (ffmpeg-utils)quoting_and_escaping). +

+

Muxer options can be specified for each slave by prepending them as a list of +key=value pairs separated by ’:’, between square brackets. If +the options values contain a special character or the ’:’ separator, they +must be escaped; note that this is a second level escaping. +

+

The following special options are also recognized: +

+
f
+

Specify the format name. Useful if it cannot be guessed from the +output name suffix. +

+
+
bsfs[/spec]
+

Specify a list of bitstream filters to apply to the specified +output. +

+

It is possible to specify to which streams a given bitstream filter +applies, by appending a stream specifier to the option separated by +/. spec must be a stream specifier (see Format stream specifiers). If the stream specifier is not specified, the +bistream filters will be applied to all streams in the output. +

+

Several bitstream filters can be specified, separated by ",". +

+
+
select
+

Select the streams that should be mapped to the slave output, +specified by a stream specifier. If not specified, this defaults to +all the input streams. +

+
+ + +

4.17.1 Examples

+ +
    +
  • +Encode something and both archive it in a WebM file and stream it +as MPEG-TS over UDP (the streams need to be explicitly mapped): +
     
    ffmpeg -i ... -c:v libx264 -c:a mp2 -f tee -map 0:v -map 0:a
    +  "archive-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/"
    +
    + +
  • +Use ffmpeg to encode the input, and send the output +to three different destinations. The dump_extra bitstream +filter is used to add extradata information to all the output video +keyframes packets, as requested by the MPEG-TS format. The select +option is applied to ‘out.aac’ in order to make it contain only +audio packets. +
     
    ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac -strict experimental
    +       -f tee "[bsfs/v=dump_extra]out.ts|[movflags=+faststart]out.mp4|[select=a]out.aac"
    +
    + +
  • +As below, but select only stream a:1 for the audio output. Note +that a second level escaping must be performed, as ":" is a special +character used to separate options. +
     
    ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac -strict experimental
    +       -f tee "[bsfs/v=dump_extra]out.ts|[movflags=+faststart]out.mp4|[select=\'a:1\']out.aac"
    +
    +
+ +

Note: some codecs may need different options depending on the output format; +the auto-detection of this can not work with the tee muxer. The main example +is the ‘global_header’ flag. +

+ +

5. Metadata

+ +

FFmpeg is able to dump metadata from media files into a simple UTF-8-encoded +INI-like text file and then load it back using the metadata muxer/demuxer. +

+

The file format is as follows: +

    +
  1. +A file consists of a header and a number of metadata tags divided into sections, +each on its own line. + +
  2. +The header is a ’;FFMETADATA’ string, followed by a version number (now 1). + +
  3. +Metadata tags are of the form ’key=value’ + +
  4. +Immediately after header follows global metadata + +
  5. +After global metadata there may be sections with per-stream/per-chapter +metadata. + +
  6. +A section starts with the section name in uppercase (i.e. STREAM or CHAPTER) in +brackets (’[’, ’]’) and ends with next section or end of file. + +
  7. +At the beginning of a chapter section there may be an optional timebase to be +used for start/end values. It must be in form ’TIMEBASE=num/den’, where num and +den are integers. If the timebase is missing then start/end times are assumed to +be in milliseconds. +Next a chapter section must contain chapter start and end times in form +’START=num’, ’END=num’, where num is a positive integer. + +
  8. +Empty lines and lines starting with ’;’ or ’#’ are ignored. + +
  9. +Metadata keys or values containing special characters (’=’, ’;’, ’#’, ’\’ and a +newline) must be escaped with a backslash ’\’. + +
  10. +Note that whitespace in metadata (e.g. foo = bar) is considered to be a part of +the tag (in the example above key is ’foo ’, value is ’ bar’). +
+ +

A ffmetadata file might look like this: +

 
;FFMETADATA1
+title=bike\\shed
+;this is a comment
+artist=FFmpeg troll team
+
+[CHAPTER]
+TIMEBASE=1/1000
+START=0
+#chapter ends at 0:01:00
+END=60000
+title=chapter \#1
+[STREAM]
+title=multi\
+line
+
+ +

By using the ffmetadata muxer and demuxer it is possible to extract +metadata from an input file to an ffmetadata file, and then transcode +the file into an output file with the edited ffmetadata file. +

+

Extracting an ffmetadata file with ‘ffmpeg’ goes as follows: +

 
ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE
+
+ +

Reinserting edited metadata information from the FFMETADATAFILE file can +be done as: +

 
ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec copy OUTPUT
+
+ + + +

6. See Also

+ +

ffmpeg, ffplay, ffprobe, ffserver, +libavformat +

+ + +

7. Authors

+ +

The FFmpeg developers. +

+

For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +git log in the FFmpeg source directory, or browsing the +online repository at http://source.ffmpeg.org. +

+

Maintainers for the specific components are listed in the file +‘MAINTAINERS’ in the source code tree. +

+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/ffmpeg-protocols.html b/3-Postprocessing/ffmpeg/doc/ffmpeg-protocols.html new file mode 100644 index 0000000..0da15cd --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/ffmpeg-protocols.html @@ -0,0 +1,1412 @@ + + + + + +FFmpeg documentation : FFmpeg Protocols + + + + + + + + + + +
+
+ + +

FFmpeg Protocols Documentation

+ + +

Table of Contents

+ + + +

1. Description

+ +

This document describes the input and output protocols provided by the +libavformat library. +

+ + +

2. Protocols

+ +

Protocols are configured elements in FFmpeg that enable access to +resources that require specific protocols. +

+

When you configure your FFmpeg build, all the supported protocols are +enabled by default. You can list all available ones using the +configure option "–list-protocols". +

+

You can disable all the protocols using the configure option +"–disable-protocols", and selectively enable a protocol using the +option "–enable-protocol=PROTOCOL", or you can disable a +particular protocol using the option +"–disable-protocol=PROTOCOL". +

+

The option "-protocols" of the ff* tools will display the list of +supported protocols. +

+

A description of the currently available protocols follows. +

+ +

2.1 bluray

+ +

Read BluRay playlist. +

+

The accepted options are: +

+
angle
+

BluRay angle +

+
+
chapter
+

Start chapter (1...N) +

+
+
playlist
+

Playlist to read (BDMV/PLAYLIST/?????.mpls) +

+
+
+ +

Examples: +

+

Read longest playlist from BluRay mounted to /mnt/bluray: +

 
bluray:/mnt/bluray
+
+ +

Read angle 2 of playlist 4 from BluRay mounted to /mnt/bluray, start from chapter 2: +

 
-playlist 4 -angle 2 -chapter 2 bluray:/mnt/bluray
+
+ + +

2.2 cache

+ +

Caching wrapper for input stream. +

+

Cache the input stream to temporary file. It brings seeking capability to live streams. +

+
 
cache:URL
+
+ + +

2.3 concat

+ +

Physical concatenation protocol. +

+

Allow to read and seek from many resource in sequence as if they were +a unique resource. +

+

A URL accepted by this protocol has the syntax: +

 
concat:URL1|URL2|...|URLN
+
+ +

where URL1, URL2, ..., URLN are the urls of the +resource to be concatenated, each one possibly specifying a distinct +protocol. +

+

For example to read a sequence of files ‘split1.mpeg’, +‘split2.mpeg’, ‘split3.mpeg’ with ffplay use the +command: +

 
ffplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg
+
+ +

Note that you may need to escape the character "|" which is special for +many shells. +

+ +

2.4 crypto

+ +

AES-encrypted stream reading protocol. +

+

The accepted options are: +

+
key
+

Set the AES decryption key binary block from given hexadecimal representation. +

+
+
iv
+

Set the AES decryption initialization vector binary block from given hexadecimal representation. +

+
+ +

Accepted URL formats: +

 
crypto:URL
+crypto+URL
+
+ + +

2.5 data

+ +

Data in-line in the URI. See http://en.wikipedia.org/wiki/Data_URI_scheme. +

+

For example, to convert a GIF file given inline with ffmpeg: +

 
ffmpeg -i "data:image/gif;base64,R0lGODdhCAAIAMIEAAAAAAAA//8AAP//AP///////////////ywAAAAACAAIAAADF0gEDLojDgdGiJdJqUX02iB4E8Q9jUMkADs=" smiley.png
+
+ + +

2.6 file

+ +

File access protocol. +

+

Allow to read from or write to a file. +

+

A file URL can have the form: +

 
file:filename
+
+ +

where filename is the path of the file to read. +

+

An URL that does not have a protocol prefix will be assumed to be a +file URL. Depending on the build, an URL that looks like a Windows +path with the drive letter at the beginning will also be assumed to be +a file URL (usually not the case in builds for unix-like systems). +

+

For example to read from a file ‘input.mpeg’ with ffmpeg +use the command: +

 
ffmpeg -i file:input.mpeg output.mpeg
+
+ +

This protocol accepts the following options: +

+
+
truncate
+

Truncate existing files on write, if set to 1. A value of 0 prevents +truncating. Default value is 1. +

+
+
blocksize
+

Set I/O operation maximum block size, in bytes. Default value is +INT_MAX, which results in not limiting the requested block size. +Setting this value reasonably low improves user termination request reaction +time, which is valuable for files on slow medium. +

+
+ + +

2.7 ftp

+ +

FTP (File Transfer Protocol). +

+

Allow to read from or write to remote resources using FTP protocol. +

+

Following syntax is required. +

 
ftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
+
+ +

This protocol accepts the following options. +

+
+
timeout
+

Set timeout of socket I/O operations used by the underlying low level +operation. By default it is set to -1, which means that the timeout is +not specified. +

+
+
ftp-anonymous-password
+

Password used when login as anonymous user. Typically an e-mail address +should be used. +

+
+
ftp-write-seekable
+

Control seekability of connection during encoding. If set to 1 the +resource is supposed to be seekable, if set to 0 it is assumed not +to be seekable. Default value is 0. +

+
+ +

NOTE: Protocol can be used as output, but it is recommended to not do +it, unless special care is taken (tests, customized server configuration +etc.). Different FTP servers behave in different way during seek +operation. ff* tools may produce incomplete content due to server limitations. +

+ +

2.8 gopher

+ +

Gopher protocol. +

+ +

2.9 hls

+ +

Read Apple HTTP Live Streaming compliant segmented stream as +a uniform one. The M3U8 playlists describing the segments can be +remote HTTP resources or local files, accessed using the standard +file protocol. +The nested protocol is declared by specifying +"+proto" after the hls URI scheme name, where proto +is either "file" or "http". +

+
 
hls+http://host/path/to/remote/resource.m3u8
+hls+file://path/to/local/resource.m3u8
+
+ +

Using this protocol is discouraged - the hls demuxer should work +just as well (if not, please report the issues) and is more complete. +To use the hls demuxer instead, simply use the direct URLs to the +m3u8 files. +

+ +

2.10 http

+ +

HTTP (Hyper Text Transfer Protocol). +

+

This protocol accepts the following options: +

+
+
seekable
+

Control seekability of connection. If set to 1 the resource is +supposed to be seekable, if set to 0 it is assumed not to be seekable, +if set to -1 it will try to autodetect if it is seekable. Default +value is -1. +

+
+
chunked_post
+

If set to 1 use chunked Transfer-Encoding for posts, default is 1. +

+
+
content_type
+

Set a specific content type for the POST messages. +

+
+
headers
+

Set custom HTTP headers, can override built in default headers. The +value must be a string encoding the headers. +

+
+
multiple_requests
+

Use persistent connections if set to 1, default is 0. +

+
+
post_data
+

Set custom HTTP post data. +

+
+
user-agent
+
user_agent
+

Override the User-Agent header. If not specified the protocol will use a +string describing the libavformat build. ("Lavf/<version>") +

+
+
timeout
+

Set timeout of socket I/O operations used by the underlying low level +operation. By default it is set to -1, which means that the timeout is +not specified. +

+
+
mime_type
+

Export the MIME type. +

+
+
icy
+

If set to 1 request ICY (SHOUTcast) metadata from the server. If the server +supports this, the metadata has to be retrieved by the application by reading +the ‘icy_metadata_headers’ and ‘icy_metadata_packet’ options. +The default is 0. +

+
+
icy_metadata_headers
+

If the server supports ICY metadata, this contains the ICY-specific HTTP reply +headers, separated by newline characters. +

+
+
icy_metadata_packet
+

If the server supports ICY metadata, and ‘icy’ was set to 1, this +contains the last non-empty metadata packet sent by the server. It should be +polled in regular intervals by applications interested in mid-stream metadata +updates. +

+
+
cookies
+

Set the cookies to be sent in future requests. The format of each cookie is the +same as the value of a Set-Cookie HTTP response field. Multiple cookies can be +delimited by a newline character. +

+
+
offset
+

Set initial byte offset. +

+
+
end_offset
+

Try to limit the request to bytes preceding this offset. +

+
+ + +

2.10.1 HTTP Cookies

+ +

Some HTTP requests will be denied unless cookie values are passed in with the +request. The ‘cookies’ option allows these cookies to be specified. At +the very least, each cookie must specify a value along with a path and domain. +HTTP requests that match both the domain and path will automatically include the +cookie value in the HTTP Cookie header field. Multiple cookies can be delimited +by a newline. +

+

The required syntax to play a stream specifying a cookie is: +

 
ffplay -cookies "nlqptid=nltid=tsn; path=/; domain=somedomain.com;" http://somedomain.com/somestream.m3u8
+
+ + +

2.11 mmst

+ +

MMS (Microsoft Media Server) protocol over TCP. +

+ +

2.12 mmsh

+ +

MMS (Microsoft Media Server) protocol over HTTP. +

+

The required syntax is: +

 
mmsh://server[:port][/app][/playpath]
+
+ + +

2.13 md5

+ +

MD5 output protocol. +

+

Computes the MD5 hash of the data to be written, and on close writes +this to the designated output or stdout if none is specified. It can +be used to test muxers without writing an actual file. +

+

Some examples follow. +

 
# Write the MD5 hash of the encoded AVI file to the file output.avi.md5.
+ffmpeg -i input.flv -f avi -y md5:output.avi.md5
+
+# Write the MD5 hash of the encoded AVI file to stdout.
+ffmpeg -i input.flv -f avi -y md5:
+
+ +

Note that some formats (typically MOV) require the output protocol to +be seekable, so they will fail with the MD5 output protocol. +

+ +

2.14 pipe

+ +

UNIX pipe access protocol. +

+

Allow to read and write from UNIX pipes. +

+

The accepted syntax is: +

 
pipe:[number]
+
+ +

number is the number corresponding to the file descriptor of the +pipe (e.g. 0 for stdin, 1 for stdout, 2 for stderr). If number +is not specified, by default the stdout file descriptor will be used +for writing, stdin for reading. +

+

For example to read from stdin with ffmpeg: +

 
cat test.wav | ffmpeg -i pipe:0
+# ...this is the same as...
+cat test.wav | ffmpeg -i pipe:
+
+ +

For writing to stdout with ffmpeg: +

 
ffmpeg -i test.wav -f avi pipe:1 | cat > test.avi
+# ...this is the same as...
+ffmpeg -i test.wav -f avi pipe: | cat > test.avi
+
+ +

This protocol accepts the following options: +

+
+
blocksize
+

Set I/O operation maximum block size, in bytes. Default value is +INT_MAX, which results in not limiting the requested block size. +Setting this value reasonably low improves user termination request reaction +time, which is valuable if data transmission is slow. +

+
+ +

Note that some formats (typically MOV), require the output protocol to +be seekable, so they will fail with the pipe output protocol. +

+ +

2.15 rtmp

+ +

Real-Time Messaging Protocol. +

+

The Real-Time Messaging Protocol (RTMP) is used for streaming multimedia +content across a TCP/IP network. +

+

The required syntax is: +

 
rtmp://[username:password@]server[:port][/app][/instance][/playpath]
+
+ +

The accepted parameters are: +

+
username
+

An optional username (mostly for publishing). +

+
+
password
+

An optional password (mostly for publishing). +

+
+
server
+

The address of the RTMP server. +

+
+
port
+

The number of the TCP port to use (by default is 1935). +

+
+
app
+

It is the name of the application to access. It usually corresponds to +the path where the application is installed on the RTMP server +(e.g. ‘/ondemand/’, ‘/flash/live/’, etc.). You can override +the value parsed from the URI through the rtmp_app option, too. +

+
+
playpath
+

It is the path or name of the resource to play with reference to the +application specified in app, may be prefixed by "mp4:". You +can override the value parsed from the URI through the rtmp_playpath +option, too. +

+
+
listen
+

Act as a server, listening for an incoming connection. +

+
+
timeout
+

Maximum time to wait for the incoming connection. Implies listen. +

+
+ +

Additionally, the following parameters can be set via command line options +(or in code via AVOptions): +

+
rtmp_app
+

Name of application to connect on the RTMP server. This option +overrides the parameter specified in the URI. +

+
+
rtmp_buffer
+

Set the client buffer time in milliseconds. The default is 3000. +

+
+
rtmp_conn
+

Extra arbitrary AMF connection parameters, parsed from a string, +e.g. like B:1 S:authMe O:1 NN:code:1.23 NS:flag:ok O:0. +Each value is prefixed by a single character denoting the type, +B for Boolean, N for number, S for string, O for object, or Z for null, +followed by a colon. For Booleans the data must be either 0 or 1 for +FALSE or TRUE, respectively. Likewise for Objects the data must be 0 or +1 to end or begin an object, respectively. Data items in subobjects may +be named, by prefixing the type with ’N’ and specifying the name before +the value (i.e. NB:myFlag:1). This option may be used multiple +times to construct arbitrary AMF sequences. +

+
+
rtmp_flashver
+

Version of the Flash plugin used to run the SWF player. The default +is LNX 9,0,124,2. (When publishing, the default is FMLE/3.0 (compatible; +<libavformat version>).) +

+
+
rtmp_flush_interval
+

Number of packets flushed in the same request (RTMPT only). The default +is 10. +

+
+
rtmp_live
+

Specify that the media is a live stream. No resuming or seeking in +live streams is possible. The default value is any, which means the +subscriber first tries to play the live stream specified in the +playpath. If a live stream of that name is not found, it plays the +recorded stream. The other possible values are live and +recorded. +

+
+
rtmp_pageurl
+

URL of the web page in which the media was embedded. By default no +value will be sent. +

+
+
rtmp_playpath
+

Stream identifier to play or to publish. This option overrides the +parameter specified in the URI. +

+
+
rtmp_subscribe
+

Name of live stream to subscribe to. By default no value will be sent. +It is only sent if the option is specified or if rtmp_live +is set to live. +

+
+
rtmp_swfhash
+

SHA256 hash of the decompressed SWF file (32 bytes). +

+
+
rtmp_swfsize
+

Size of the decompressed SWF file, required for SWFVerification. +

+
+
rtmp_swfurl
+

URL of the SWF player for the media. By default no value will be sent. +

+
+
rtmp_swfverify
+

URL to player swf file, compute hash/size automatically. +

+
+
rtmp_tcurl
+

URL of the target stream. Defaults to proto://host[:port]/app. +

+
+
+ +

For example to read with ffplay a multimedia resource named +"sample" from the application "vod" from an RTMP server "myserver": +

 
ffplay rtmp://myserver/vod/sample
+
+ +

To publish to a password protected server, passing the playpath and +app names separately: +

 
ffmpeg -re -i <input> -f flv -rtmp_playpath some/long/path -rtmp_app long/app/name rtmp://username:password@myserver/
+
+ + +

2.16 rtmpe

+ +

Encrypted Real-Time Messaging Protocol. +

+

The Encrypted Real-Time Messaging Protocol (RTMPE) is used for +streaming multimedia content within standard cryptographic primitives, +consisting of Diffie-Hellman key exchange and HMACSHA256, generating +a pair of RC4 keys. +

+ +

2.17 rtmps

+ +

Real-Time Messaging Protocol over a secure SSL connection. +

+

The Real-Time Messaging Protocol (RTMPS) is used for streaming +multimedia content across an encrypted connection. +

+ +

2.18 rtmpt

+ +

Real-Time Messaging Protocol tunneled through HTTP. +

+

The Real-Time Messaging Protocol tunneled through HTTP (RTMPT) is used +for streaming multimedia content within HTTP requests to traverse +firewalls. +

+ +

2.19 rtmpte

+ +

Encrypted Real-Time Messaging Protocol tunneled through HTTP. +

+

The Encrypted Real-Time Messaging Protocol tunneled through HTTP (RTMPTE) +is used for streaming multimedia content within HTTP requests to traverse +firewalls. +

+ +

2.20 rtmpts

+ +

Real-Time Messaging Protocol tunneled through HTTPS. +

+

The Real-Time Messaging Protocol tunneled through HTTPS (RTMPTS) is used +for streaming multimedia content within HTTPS requests to traverse +firewalls. +

+ +

2.21 libssh

+ +

Secure File Transfer Protocol via libssh +

+

Allow to read from or write to remote resources using SFTP protocol. +

+

Following syntax is required. +

+
 
sftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
+
+ +

This protocol accepts the following options. +

+
+
timeout
+

Set timeout of socket I/O operations used by the underlying low level +operation. By default it is set to -1, which means that the timeout +is not specified. +

+
+
truncate
+

Truncate existing files on write, if set to 1. A value of 0 prevents +truncating. Default value is 1. +

+
+
private_key
+

Specify the path of the file containing private key to use during authorization. +By default libssh searches for keys in the ‘~/.ssh/’ directory. +

+
+
+ +

Example: Play a file stored on remote server. +

+
 
ffplay sftp://user:password@server_address:22/home/user/resource.mpeg
+
+ + +

2.22 librtmp rtmp, rtmpe, rtmps, rtmpt, rtmpte

+ +

Real-Time Messaging Protocol and its variants supported through +librtmp. +

+

Requires the presence of the librtmp headers and library during +configuration. You need to explicitly configure the build with +"–enable-librtmp". If enabled this will replace the native RTMP +protocol. +

+

This protocol provides most client functions and a few server +functions needed to support RTMP, RTMP tunneled in HTTP (RTMPT), +encrypted RTMP (RTMPE), RTMP over SSL/TLS (RTMPS) and tunneled +variants of these encrypted types (RTMPTE, RTMPTS). +

+

The required syntax is: +

 
rtmp_proto://server[:port][/app][/playpath] options
+
+ +

where rtmp_proto is one of the strings "rtmp", "rtmpt", "rtmpe", +"rtmps", "rtmpte", "rtmpts" corresponding to each RTMP variant, and +server, port, app and playpath have the same +meaning as specified for the RTMP native protocol. +options contains a list of space-separated options of the form +key=val. +

+

See the librtmp manual page (man 3 librtmp) for more information. +

+

For example, to stream a file in real-time to an RTMP server using +ffmpeg: +

 
ffmpeg -re -i myfile -f flv rtmp://myserver/live/mystream
+
+ +

To play the same stream using ffplay: +

 
ffplay "rtmp://myserver/live/mystream live=1"
+
+ + +

2.23 rtp

+ +

Real-time Transport Protocol. +

+

The required syntax for an RTP URL is: +rtp://hostname[:port][?option=val...] +

+

port specifies the RTP port to use. +

+

The following URL options are supported: +

+
+
ttl=n
+

Set the TTL (Time-To-Live) value (for multicast only). +

+
+
rtcpport=n
+

Set the remote RTCP port to n. +

+
+
localrtpport=n
+

Set the local RTP port to n. +

+
+
localrtcpport=n'
+

Set the local RTCP port to n. +

+
+
pkt_size=n
+

Set max packet size (in bytes) to n. +

+
+
connect=0|1
+

Do a connect() on the UDP socket (if set to 1) or not (if set +to 0). +

+
+
sources=ip[,ip]
+

List allowed source IP addresses. +

+
+
block=ip[,ip]
+

List disallowed (blocked) source IP addresses. +

+
+
write_to_source=0|1
+

Send packets to the source address of the latest received packet (if +set to 1) or to a default remote address (if set to 0). +

+
+
localport=n
+

Set the local RTP port to n. +

+

This is a deprecated option. Instead, ‘localrtpport’ should be +used. +

+
+
+ +

Important notes: +

+
    +
  1. +If ‘rtcpport’ is not set the RTCP port will be set to the RTP +port value plus 1. + +
  2. +If ‘localrtpport’ (the local RTP port) is not set any available +port will be used for the local RTP and RTCP ports. + +
  3. +If ‘localrtcpport’ (the local RTCP port) is not set it will be +set to the the local RTP port value plus 1. +
+ + +

2.24 rtsp

+ +

Real-Time Streaming Protocol. +

+

RTSP is not technically a protocol handler in libavformat, it is a demuxer +and muxer. The demuxer supports both normal RTSP (with data transferred +over RTP; this is used by e.g. Apple and Microsoft) and Real-RTSP (with +data transferred over RDT). +

+

The muxer can be used to send a stream using RTSP ANNOUNCE to a server +supporting it (currently Darwin Streaming Server and Mischa Spiegelmock’s +RTSP server). +

+

The required syntax for a RTSP url is: +

 
rtsp://hostname[:port]/path
+
+ +

Options can be set on the ffmpeg/ffplay command +line, or set in code via AVOptions or in +avformat_open_input. +

+

The following options are supported. +

+
+
initial_pause
+

Do not start playing the stream immediately if set to 1. Default value +is 0. +

+
+
rtsp_transport
+

Set RTSP trasport protocols. +

+

It accepts the following values: +

+
udp
+

Use UDP as lower transport protocol. +

+
+
tcp
+

Use TCP (interleaving within the RTSP control channel) as lower +transport protocol. +

+
+
udp_multicast
+

Use UDP multicast as lower transport protocol. +

+
+
http
+

Use HTTP tunneling as lower transport protocol, which is useful for +passing proxies. +

+
+ +

Multiple lower transport protocols may be specified, in that case they are +tried one at a time (if the setup of one fails, the next one is tried). +For the muxer, only the ‘tcp’ and ‘udp’ options are supported. +

+
+
rtsp_flags
+

Set RTSP flags. +

+

The following values are accepted: +

+
filter_src
+

Accept packets only from negotiated peer address and port. +

+
listen
+

Act as a server, listening for an incoming connection. +

+
prefer_tcp
+

Try TCP for RTP transport first, if TCP is available as RTSP RTP transport. +

+
+ +

Default value is ‘none’. +

+
+
allowed_media_types
+

Set media types to accept from the server. +

+

The following flags are accepted: +

+
video
+
audio
+
data
+
+ +

By default it accepts all media types. +

+
+
min_port
+

Set minimum local UDP port. Default value is 5000. +

+
+
max_port
+

Set maximum local UDP port. Default value is 65000. +

+
+
timeout
+

Set maximum timeout (in seconds) to wait for incoming connections. +

+

A value of -1 mean infinite (default). This option implies the +‘rtsp_flags’ set to ‘listen’. +

+
+
reorder_queue_size
+

Set number of packets to buffer for handling of reordered packets. +

+
+
stimeout
+

Set socket TCP I/O timeout in micro seconds. +

+
+
user-agent
+

Override User-Agent header. If not specified, it default to the +libavformat identifier string. +

+
+ +

When receiving data over UDP, the demuxer tries to reorder received packets +(since they may arrive out of order, or packets may get lost totally). This +can be disabled by setting the maximum demuxing delay to zero (via +the max_delay field of AVFormatContext). +

+

When watching multi-bitrate Real-RTSP streams with ffplay, the +streams to display can be chosen with -vst n and +-ast n for video and audio respectively, and can be switched +on the fly by pressing v and a. +

+ +

2.24.1 Examples

+ +

The following examples all make use of the ffplay and +ffmpeg tools. +

+
    +
  • +Watch a stream over UDP, with a max reordering delay of 0.5 seconds: +
     
    ffplay -max_delay 500000 -rtsp_transport udp rtsp://server/video.mp4
    +
    + +
  • +Watch a stream tunneled over HTTP: +
     
    ffplay -rtsp_transport http rtsp://server/video.mp4
    +
    + +
  • +Send a stream in realtime to a RTSP server, for others to watch: +
     
    ffmpeg -re -i input -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
    +
    + +
  • +Receive a stream in realtime: +
     
    ffmpeg -rtsp_flags listen -i rtsp://ownaddress/live.sdp output
    +
    +
+ + +

2.25 sap

+ +

Session Announcement Protocol (RFC 2974). This is not technically a +protocol handler in libavformat, it is a muxer and demuxer. +It is used for signalling of RTP streams, by announcing the SDP for the +streams regularly on a separate port. +

+ +

2.25.1 Muxer

+ +

The syntax for a SAP url given to the muxer is: +

 
sap://destination[:port][?options]
+
+ +

The RTP packets are sent to destination on port port, +or to port 5004 if no port is specified. +options is a &-separated list. The following options +are supported: +

+
+
announce_addr=address
+

Specify the destination IP address for sending the announcements to. +If omitted, the announcements are sent to the commonly used SAP +announcement multicast address 224.2.127.254 (sap.mcast.net), or +ff0e::2:7ffe if destination is an IPv6 address. +

+
+
announce_port=port
+

Specify the port to send the announcements on, defaults to +9875 if not specified. +

+
+
ttl=ttl
+

Specify the time to live value for the announcements and RTP packets, +defaults to 255. +

+
+
same_port=0|1
+

If set to 1, send all RTP streams on the same port pair. If zero (the +default), all streams are sent on unique ports, with each stream on a +port 2 numbers higher than the previous. +VLC/Live555 requires this to be set to 1, to be able to receive the stream. +The RTP stack in libavformat for receiving requires all streams to be sent +on unique ports. +

+
+ +

Example command lines follow. +

+

To broadcast a stream on the local subnet, for watching in VLC: +

+
 
ffmpeg -re -i input -f sap sap://224.0.0.255?same_port=1
+
+ +

Similarly, for watching in ffplay: +

+
 
ffmpeg -re -i input -f sap sap://224.0.0.255
+
+ +

And for watching in ffplay, over IPv6: +

+
 
ffmpeg -re -i input -f sap sap://[ff0e::1:2:3:4]
+
+ + +

2.25.2 Demuxer

+ +

The syntax for a SAP url given to the demuxer is: +

 
sap://[address][:port]
+
+ +

address is the multicast address to listen for announcements on, +if omitted, the default 224.2.127.254 (sap.mcast.net) is used. port +is the port that is listened on, 9875 if omitted. +

+

The demuxers listens for announcements on the given address and port. +Once an announcement is received, it tries to receive that particular stream. +

+

Example command lines follow. +

+

To play back the first stream announced on the normal SAP multicast address: +

+
 
ffplay sap://
+
+ +

To play back the first stream announced on one the default IPv6 SAP multicast address: +

+
 
ffplay sap://[ff0e::2:7ffe]
+
+ + +

2.26 sctp

+ +

Stream Control Transmission Protocol. +

+

The accepted URL syntax is: +

 
sctp://host:port[?options]
+
+ +

The protocol accepts the following options: +

+
listen
+

If set to any value, listen for an incoming connection. Outgoing connection is done by default. +

+
+
max_streams
+

Set the maximum number of streams. By default no limit is set. +

+
+ + +

2.27 srtp

+ +

Secure Real-time Transport Protocol. +

+

The accepted options are: +

+
srtp_in_suite
+
srtp_out_suite
+

Select input and output encoding suites. +

+

Supported values: +

+
AES_CM_128_HMAC_SHA1_80
+
SRTP_AES128_CM_HMAC_SHA1_80
+
AES_CM_128_HMAC_SHA1_32
+
SRTP_AES128_CM_HMAC_SHA1_32
+
+ +
+
srtp_in_params
+
srtp_out_params
+

Set input and output encoding parameters, which are expressed by a +base64-encoded representation of a binary block. The first 16 bytes of +this binary block are used as master key, the following 14 bytes are +used as master salt. +

+
+ + +

2.28 subfile

+ +

Virtually extract a segment of a file or another stream. +The underlying stream must be seekable. +

+

Accepted options: +

+
start
+

Start offset of the extracted segment, in bytes. +

+
end
+

End offset of the extracted segment, in bytes. +

+
+ +

Examples: +

+

Extract a chapter from a DVD VOB file (start and end sectors obtained +externally and multiplied by 2048): +

 
subfile,,start,153391104,end,268142592,,:/media/dvd/VIDEO_TS/VTS_08_1.VOB
+
+ +

Play an AVI file directly from a TAR archive: +subfile,,start,183241728,end,366490624,,:archive.tar +

+ +

2.29 tcp

+ +

Transmission Control Protocol. +

+

The required syntax for a TCP url is: +

 
tcp://hostname:port[?options]
+
+ +

options contains a list of &-separated options of the form +key=val. +

+

The list of supported options follows. +

+
+
listen=1|0
+

Listen for an incoming connection. Default value is 0. +

+
+
timeout=microseconds
+

Set raise error timeout, expressed in microseconds. +

+

This option is only relevant in read mode: if no data arrived in more +than this time interval, raise error. +

+
+
listen_timeout=microseconds
+

Set listen timeout, expressed in microseconds. +

+
+ +

The following example shows how to setup a listening TCP connection +with ffmpeg, which is then accessed with ffplay: +

 
ffmpeg -i input -f format tcp://hostname:port?listen
+ffplay tcp://hostname:port
+
+ + +

2.30 tls

+ +

Transport Layer Security (TLS) / Secure Sockets Layer (SSL) +

+

The required syntax for a TLS/SSL url is: +

 
tls://hostname:port[?options]
+
+ +

The following parameters can be set via command line options +(or in code via AVOptions): +

+
+
ca_file, cafile=filename
+

A file containing certificate authority (CA) root certificates to treat +as trusted. If the linked TLS library contains a default this might not +need to be specified for verification to work, but not all libraries and +setups have defaults built in. +The file must be in OpenSSL PEM format. +

+
+
tls_verify=1|0
+

If enabled, try to verify the peer that we are communicating with. +Note, if using OpenSSL, this currently only makes sure that the +peer certificate is signed by one of the root certificates in the CA +database, but it does not validate that the certificate actually +matches the host name we are trying to connect to. (With GnuTLS, +the host name is validated as well.) +

+

This is disabled by default since it requires a CA database to be +provided by the caller in many cases. +

+
+
cert_file, cert=filename
+

A file containing a certificate to use in the handshake with the peer. +(When operating as server, in listen mode, this is more often required +by the peer, while client certificates only are mandated in certain +setups.) +

+
+
key_file, key=filename
+

A file containing the private key for the certificate. +

+
+
listen=1|0
+

If enabled, listen for connections on the provided port, and assume +the server role in the handshake instead of the client role. +

+
+
+ +

Example command lines: +

+

To create a TLS/SSL server that serves an input stream. +

+
 
ffmpeg -i input -f format tls://hostname:port?listen&cert=server.crt&key=server.key
+
+ +

To play back a stream from the TLS/SSL server using ffplay: +

+
 
ffplay tls://hostname:port
+
+ + +

2.31 udp

+ +

User Datagram Protocol. +

+

The required syntax for an UDP URL is: +

 
udp://hostname:port[?options]
+
+ +

options contains a list of &-separated options of the form key=val. +

+

In case threading is enabled on the system, a circular buffer is used +to store the incoming data, which allows one to reduce loss of data due to +UDP socket buffer overruns. The fifo_size and +overrun_nonfatal options are related to this buffer. +

+

The list of supported options follows. +

+
+
buffer_size=size
+

Set the UDP maximum socket buffer size in bytes. This is used to set either +the receive or send buffer size, depending on what the socket is used for. +Default is 64KB. See also fifo_size. +

+
+
localport=port
+

Override the local UDP port to bind with. +

+
+
localaddr=addr
+

Choose the local IP address. This is useful e.g. if sending multicast +and the host has multiple interfaces, where the user can choose +which interface to send on by specifying the IP address of that interface. +

+
+
pkt_size=size
+

Set the size in bytes of UDP packets. +

+
+
reuse=1|0
+

Explicitly allow or disallow reusing UDP sockets. +

+
+
ttl=ttl
+

Set the time to live value (for multicast only). +

+
+
connect=1|0
+

Initialize the UDP socket with connect(). In this case, the +destination address can’t be changed with ff_udp_set_remote_url later. +If the destination address isn’t known at the start, this option can +be specified in ff_udp_set_remote_url, too. +This allows finding out the source address for the packets with getsockname, +and makes writes return with AVERROR(ECONNREFUSED) if "destination +unreachable" is received. +For receiving, this gives the benefit of only receiving packets from +the specified peer address/port. +

+
+
sources=address[,address]
+

Only receive packets sent to the multicast group from one of the +specified sender IP addresses. +

+
+
block=address[,address]
+

Ignore packets sent to the multicast group from the specified +sender IP addresses. +

+
+
fifo_size=units
+

Set the UDP receiving circular buffer size, expressed as a number of +packets with size of 188 bytes. If not specified defaults to 7*4096. +

+
+
overrun_nonfatal=1|0
+

Survive in case of UDP receiving circular buffer overrun. Default +value is 0. +

+
+
timeout=microseconds
+

Set raise error timeout, expressed in microseconds. +

+

This option is only relevant in read mode: if no data arrived in more +than this time interval, raise error. +

+
+ + +

2.31.1 Examples

+ +
    +
  • +Use ffmpeg to stream over UDP to a remote endpoint: +
     
    ffmpeg -i input -f format udp://hostname:port
    +
    + +
  • +Use ffmpeg to stream in mpegts format over UDP using 188 +sized UDP packets, using a large input buffer: +
     
    ffmpeg -i input -f mpegts udp://hostname:port?pkt_size=188&buffer_size=65535
    +
    + +
  • +Use ffmpeg to receive over UDP from a remote endpoint: +
     
    ffmpeg -i udp://[multicast-address]:port ...
    +
    +
+ + +

2.32 unix

+ +

Unix local socket +

+

The required syntax for a Unix socket URL is: +

+
 
unix://filepath
+
+ +

The following parameters can be set via command line options +(or in code via AVOptions): +

+
+
timeout
+

Timeout in ms. +

+
listen
+

Create the Unix socket in listening mode. +

+
+ + + +

3. See Also

+ +

ffmpeg, ffplay, ffprobe, ffserver, +libavformat +

+ + +

4. Authors

+ +

The FFmpeg developers. +

+

For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +git log in the FFmpeg source directory, or browsing the +online repository at http://source.ffmpeg.org. +

+

Maintainers for the specific components are listed in the file +‘MAINTAINERS’ in the source code tree. +

+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/ffmpeg-resampler.html b/3-Postprocessing/ffmpeg/doc/ffmpeg-resampler.html new file mode 100644 index 0000000..01afdce --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/ffmpeg-resampler.html @@ -0,0 +1,359 @@ + + + + + +FFmpeg documentation : FFmpeg Resampler + + + + + + + + + + +
+
+ + +

FFmpeg Resampler Documentation

+ + +

Table of Contents

+ + + +

1. Description

+ +

The FFmpeg resampler provides a high-level interface to the +libswresample library audio resampling utilities. In particular it +allows one to perform audio resampling, audio channel layout rematrixing, +and convert audio format and packing layout. +

+ + +

2. Resampler Options

+ +

The audio resampler supports the following named options. +

+

Options may be set by specifying -option value in the +FFmpeg tools, option=value for the aresample filter, +by setting the value explicitly in the +SwrContext options or using the ‘libavutil/opt.h’ API for +programmatic use. +

+
+
ich, in_channel_count
+

Set the number of input channels. Default value is 0. Setting this +value is not mandatory if the corresponding channel layout +‘in_channel_layout’ is set. +

+
+
och, out_channel_count
+

Set the number of output channels. Default value is 0. Setting this +value is not mandatory if the corresponding channel layout +‘out_channel_layout’ is set. +

+
+
uch, used_channel_count
+

Set the number of used input channels. Default value is 0. This option is +only used for special remapping. +

+
+
isr, in_sample_rate
+

Set the input sample rate. Default value is 0. +

+
+
osr, out_sample_rate
+

Set the output sample rate. Default value is 0. +

+
+
isf, in_sample_fmt
+

Specify the input sample format. It is set by default to none. +

+
+
osf, out_sample_fmt
+

Specify the output sample format. It is set by default to none. +

+
+
tsf, internal_sample_fmt
+

Set the internal sample format. Default value is none. +This will automatically be chosen when it is not explicitly set. +

+
+
icl, in_channel_layout
+
ocl, out_channel_layout
+

Set the input/output channel layout. +

+

See (ffmpeg-utils)channel layout syntax +for the required syntax. +

+
+
clev, center_mix_level
+

Set the center mix level. It is a value expressed in deciBel, and must be +in the interval [-32,32]. +

+
+
slev, surround_mix_level
+

Set the surround mix level. It is a value expressed in deciBel, and must +be in the interval [-32,32]. +

+
+
lfe_mix_level
+

Set LFE mix into non LFE level. It is used when there is a LFE input but no +LFE output. It is a value expressed in deciBel, and must +be in the interval [-32,32]. +

+
+
rmvol, rematrix_volume
+

Set rematrix volume. Default value is 1.0. +

+
+
rematrix_maxval
+

Set maximum output value for rematrixing. +This can be used to prevent clipping vs. preventing volumn reduction +A value of 1.0 prevents cliping. +

+
+
flags, swr_flags
+

Set flags used by the converter. Default value is 0. +

+

It supports the following individual flags: +

+
res
+

force resampling, this flag forces resampling to be used even when the +input and output sample rates match. +

+
+ +
+
dither_scale
+

Set the dither scale. Default value is 1. +

+
+
dither_method
+

Set dither method. Default value is 0. +

+

Supported values: +

+
rectangular
+

select rectangular dither +

+
triangular
+

select triangular dither +

+
triangular_hp
+

select triangular dither with high pass +

+
lipshitz
+

select lipshitz noise shaping dither +

+
shibata
+

select shibata noise shaping dither +

+
low_shibata
+

select low shibata noise shaping dither +

+
high_shibata
+

select high shibata noise shaping dither +

+
f_weighted
+

select f-weighted noise shaping dither +

+
modified_e_weighted
+

select modified-e-weighted noise shaping dither +

+
improved_e_weighted
+

select improved-e-weighted noise shaping dither +

+
+
+ +
+
resampler
+

Set resampling engine. Default value is swr. +

+

Supported values: +

+
swr
+

select the native SW Resampler; filter options precision and cheby are not +applicable in this case. +

+
soxr
+

select the SoX Resampler (where available); compensation, and filter options +filter_size, phase_shift, filter_type & kaiser_beta, are not applicable in this +case. +

+
+ +
+
filter_size
+

For swr only, set resampling filter size, default value is 32. +

+
+
phase_shift
+

For swr only, set resampling phase shift, default value is 10, and must be in +the interval [0,30]. +

+
+
linear_interp
+

Use Linear Interpolation if set to 1, default value is 0. +

+
+
cutoff
+

Set cutoff frequency (swr: 6dB point; soxr: 0dB point) ratio; must be a float +value between 0 and 1. Default value is 0.97 with swr, and 0.91 with soxr +(which, with a sample-rate of 44100, preserves the entire audio band to 20kHz). +

+
+
precision
+

For soxr only, the precision in bits to which the resampled signal will be +calculated. The default value of 20 (which, with suitable dithering, is +appropriate for a destination bit-depth of 16) gives SoX’s ’High Quality’; a +value of 28 gives SoX’s ’Very High Quality’. +

+
+
cheby
+

For soxr only, selects passband rolloff none (Chebyshev) & higher-precision +approximation for ’irrational’ ratios. Default value is 0. +

+
+
async
+

For swr only, simple 1 parameter audio sync to timestamps using stretching, +squeezing, filling and trimming. Setting this to 1 will enable filling and +trimming, larger values represent the maximum amount in samples that the data +may be stretched or squeezed for each second. +Default value is 0, thus no compensation is applied to make the samples match +the audio timestamps. +

+
+
first_pts
+

For swr only, assume the first pts should be this value. The time unit is 1 / sample rate. +This allows for padding/trimming at the start of stream. By default, no +assumption is made about the first frame’s expected pts, so no padding or +trimming is done. For example, this could be set to 0 to pad the beginning with +silence if an audio stream starts after the video stream or to trim any samples +with a negative pts due to encoder delay. +

+
+
min_comp
+

For swr only, set the minimum difference between timestamps and audio data (in +seconds) to trigger stretching/squeezing/filling or trimming of the +data to make it match the timestamps. The default is that +stretching/squeezing/filling and trimming is disabled +(‘min_comp’ = FLT_MAX). +

+
+
min_hard_comp
+

For swr only, set the minimum difference between timestamps and audio data (in +seconds) to trigger adding/dropping samples to make it match the +timestamps. This option effectively is a threshold to select between +hard (trim/fill) and soft (squeeze/stretch) compensation. Note that +all compensation is by default disabled through ‘min_comp’. +The default is 0.1. +

+
+
comp_duration
+

For swr only, set duration (in seconds) over which data is stretched/squeezed +to make it match the timestamps. Must be a non-negative double float value, +default value is 1.0. +

+
+
max_soft_comp
+

For swr only, set maximum factor by which data is stretched/squeezed to make it +match the timestamps. Must be a non-negative double float value, default value +is 0. +

+
+
matrix_encoding
+

Select matrixed stereo encoding. +

+

It accepts the following values: +

+
none
+

select none +

+
dolby
+

select Dolby +

+
dplii
+

select Dolby Pro Logic II +

+
+ +

Default value is none. +

+
+
filter_type
+

For swr only, select resampling filter type. This only affects resampling +operations. +

+

It accepts the following values: +

+
cubic
+

select cubic +

+
blackman_nuttall
+

select Blackman Nuttall Windowed Sinc +

+
kaiser
+

select Kaiser Windowed Sinc +

+
+ +
+
kaiser_beta
+

For swr only, set Kaiser Window Beta value. Must be an integer in the +interval [2,16], default value is 9. +

+
+
output_sample_bits
+

For swr only, set number of used output sample bits for dithering. Must be an integer in the +interval [0,64], default value is 0, which means it’s not used. +

+
+
+ + + +

3. See Also

+ +

ffmpeg, ffplay, ffprobe, ffserver, +libswresample +

+ + +

4. Authors

+ +

The FFmpeg developers. +

+

For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +git log in the FFmpeg source directory, or browsing the +online repository at http://source.ffmpeg.org. +

+

Maintainers for the specific components are listed in the file +‘MAINTAINERS’ in the source code tree. +

+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/ffmpeg-scaler.html b/3-Postprocessing/ffmpeg/doc/ffmpeg-scaler.html new file mode 100644 index 0000000..17004a8 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/ffmpeg-scaler.html @@ -0,0 +1,235 @@ + + + + + +FFmpeg documentation : FFmpeg Scaler + + + + + + + + + + +
+
+ + +

FFmpeg Scaler Documentation

+ + +

Table of Contents

+ + + +

1. Description

+ +

The FFmpeg rescaler provides a high-level interface to the libswscale +library image conversion utilities. In particular it allows one to perform +image rescaling and pixel format conversion. +

+ +

+

+

2. Scaler Options

+ +

The video scaler supports the following named options. +

+

Options may be set by specifying -option value in the +FFmpeg tools. For programmatic use, they can be set explicitly in the +SwsContext options or through the ‘libavutil/opt.h’ API. +

+
+
+

+

+
sws_flags
+

Set the scaler flags. This is also used to set the scaling +algorithm. Only a single algorithm should be selected. +

+

It accepts the following values: +

+
fast_bilinear
+

Select fast bilinear scaling algorithm. +

+
+
bilinear
+

Select bilinear scaling algorithm. +

+
+
bicubic
+

Select bicubic scaling algorithm. +

+
+
experimental
+

Select experimental scaling algorithm. +

+
+
neighbor
+

Select nearest neighbor rescaling algorithm. +

+
+
area
+

Select averaging area rescaling algorithm. +

+
+
bicublin
+

Select bicubic scaling algorithm for the luma component, bilinear for +chroma components. +

+
+
gauss
+

Select Gaussian rescaling algorithm. +

+
+
sinc
+

Select sinc rescaling algorithm. +

+
+
lanczos
+

Select lanczos rescaling algorithm. +

+
+
spline
+

Select natural bicubic spline rescaling algorithm. +

+
+
print_info
+

Enable printing/debug logging. +

+
+
accurate_rnd
+

Enable accurate rounding. +

+
+
full_chroma_int
+

Enable full chroma interpolation. +

+
+
full_chroma_inp
+

Select full chroma input. +

+
+
bitexact
+

Enable bitexact output. +

+
+ +
+
srcw
+

Set source width. +

+
+
srch
+

Set source height. +

+
+
dstw
+

Set destination width. +

+
+
dsth
+

Set destination height. +

+
+
src_format
+

Set source pixel format (must be expressed as an integer). +

+
+
dst_format
+

Set destination pixel format (must be expressed as an integer). +

+
+
src_range
+

Select source range. +

+
+
dst_range
+

Select destination range. +

+
+
param0, param1
+

Set scaling algorithm parameters. The specified values are specific of +some scaling algorithms and ignored by others. The specified values +are floating point number values. +

+
+
sws_dither
+

Set the dithering algorithm. Accepts one of the following +values. Default value is ‘auto’. +

+
+
auto
+

automatic choice +

+
+
none
+

no dithering +

+
+
bayer
+

bayer dither +

+
+
ed
+

error diffusion dither +

+
+
a_dither
+

arithmetic dither, based using addition +

+
+
x_dither
+

arithmetic dither, based using xor (more random/less apparent patterning that +a_dither). +

+
+
+ +
+
+ + + +

3. See Also

+ +

ffmpeg, ffplay, ffprobe, ffserver, +libswscale +

+ + +

4. Authors

+ +

The FFmpeg developers. +

+

For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +git log in the FFmpeg source directory, or browsing the +online repository at http://source.ffmpeg.org. +

+

Maintainers for the specific components are listed in the file +‘MAINTAINERS’ in the source code tree. +

+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/ffmpeg-utils.html b/3-Postprocessing/ffmpeg/doc/ffmpeg-utils.html new file mode 100644 index 0000000..5dfaa5e --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/ffmpeg-utils.html @@ -0,0 +1,1477 @@ + + + + + +FFmpeg documentation : FFmpeg Utilities + + + + + + + + + + +
+
+ + +

FFmpeg Utilities Documentation

+ + +

Table of Contents

+ + + +

1. Description

+ +

This document describes some generic features and utilities provided +by the libavutil library. +

+ + +

2. Syntax

+ +

This section documents the syntax and formats employed by the FFmpeg +libraries and tools. +

+

+

+

2.1 Quoting and escaping

+ +

FFmpeg adopts the following quoting and escaping mechanism, unless +explicitly specified. The following rules are applied: +

+
    +
  • +' and \ are special characters (respectively used for +quoting and escaping). In addition to them, there might be other +special characters depending on the specific syntax where the escaping +and quoting are employed. + +
  • +A special character is escaped by prefixing it with a ’\’. + +
  • +All characters enclosed between ” are included literally in the +parsed string. The quote character ' itself cannot be quoted, +so you may need to close the quote and escape it. + +
  • +Leading and trailing whitespaces, unless escaped or quoted, are +removed from the parsed string. +
+ +

Note that you may need to add a second level of escaping when using +the command line or a script, which depends on the syntax of the +adopted shell language. +

+

The function av_get_token defined in +‘libavutil/avstring.h’ can be used to parse a token quoted or +escaped according to the rules defined above. +

+

The tool ‘tools/ffescape’ in the FFmpeg source tree can be used +to automatically quote or escape a string in a script. +

+ +

2.1.1 Examples

+ +
    +
  • +Escape the string Crime d'Amour containing the ' special +character: +
     
    Crime d\'Amour
    +
    + +
  • +The string above contains a quote, so the ' needs to be escaped +when quoting it: +
     
    'Crime d'\''Amour'
    +
    + +
  • +Include leading or trailing whitespaces using quoting: +
     
    '  this string starts and ends with whitespaces  '
    +
    + +
  • +Escaping and quoting can be mixed together: +
     
    ' The string '\'string\'' is a string '
    +
    + +
  • +To include a literal \ you can use either escaping or quoting: +
     
    'c:\foo' can be written as c:\\foo
    +
    +
+ +

+

+

2.2 Date

+ +

The accepted syntax is: +

 
[(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z]
+now
+
+ +

If the value is "now" it takes the current time. +

+

Time is local time unless Z is appended, in which case it is +interpreted as UTC. +If the year-month-day part is not specified it takes the current +year-month-day. +

+

+

+

2.3 Time duration

+ +

There are two accepted syntaxes for expressing time duration. +

+
 
[-][HH:]MM:SS[.m...]
+
+ +

HH expresses the number of hours, MM the number of minutes +for a maximum of 2 digits, and SS the number of seconds for a +maximum of 2 digits. The m at the end expresses decimal value for +SS. +

+

or +

+
 
[-]S+[.m...]
+
+ +

S expresses the number of seconds, with the optional decimal part +m. +

+

In both expressions, the optional ‘-’ indicates negative duration. +

+ +

2.3.1 Examples

+ +

The following examples are all valid time duration: +

+
+
55
+

55 seconds +

+
+
12:03:45
+

12 hours, 03 minutes and 45 seconds +

+
+
23.189
+

23.189 seconds +

+
+ +

+

+

2.4 Video size

+

Specify the size of the sourced video, it may be a string of the form +widthxheight, or the name of a size abbreviation. +

+

The following abbreviations are recognized: +

+
ntsc
+

720x480 +

+
pal
+

720x576 +

+
qntsc
+

352x240 +

+
qpal
+

352x288 +

+
sntsc
+

640x480 +

+
spal
+

768x576 +

+
film
+

352x240 +

+
ntsc-film
+

352x240 +

+
sqcif
+

128x96 +

+
qcif
+

176x144 +

+
cif
+

352x288 +

+
4cif
+

704x576 +

+
16cif
+

1408x1152 +

+
qqvga
+

160x120 +

+
qvga
+

320x240 +

+
vga
+

640x480 +

+
svga
+

800x600 +

+
xga
+

1024x768 +

+
uxga
+

1600x1200 +

+
qxga
+

2048x1536 +

+
sxga
+

1280x1024 +

+
qsxga
+

2560x2048 +

+
hsxga
+

5120x4096 +

+
wvga
+

852x480 +

+
wxga
+

1366x768 +

+
wsxga
+

1600x1024 +

+
wuxga
+

1920x1200 +

+
woxga
+

2560x1600 +

+
wqsxga
+

3200x2048 +

+
wquxga
+

3840x2400 +

+
whsxga
+

6400x4096 +

+
whuxga
+

7680x4800 +

+
cga
+

320x200 +

+
ega
+

640x350 +

+
hd480
+

852x480 +

+
hd720
+

1280x720 +

+
hd1080
+

1920x1080 +

+
2k
+

2048x1080 +

+
2kflat
+

1998x1080 +

+
2kscope
+

2048x858 +

+
4k
+

4096x2160 +

+
4kflat
+

3996x2160 +

+
4kscope
+

4096x1716 +

+
nhd
+

640x360 +

+
hqvga
+

240x160 +

+
wqvga
+

400x240 +

+
fwqvga
+

432x240 +

+
hvga
+

480x320 +

+
qhd
+

960x540 +

+
+ +

+

+

2.5 Video rate

+ +

Specify the frame rate of a video, expressed as the number of frames +generated per second. It has to be a string in the format +frame_rate_num/frame_rate_den, an integer number, a float +number or a valid video frame rate abbreviation. +

+

The following abbreviations are recognized: +

+
ntsc
+

30000/1001 +

+
pal
+

25/1 +

+
qntsc
+

30000/1001 +

+
qpal
+

25/1 +

+
sntsc
+

30000/1001 +

+
spal
+

25/1 +

+
film
+

24/1 +

+
ntsc-film
+

24000/1001 +

+
+ +

+

+

2.6 Ratio

+ +

A ratio can be expressed as an expression, or in the form +numerator:denominator. +

+

Note that a ratio with infinite (1/0) or negative value is +considered valid, so you should check on the returned value if you +want to exclude those values. +

+

The undefined value can be expressed using the "0:0" string. +

+

+

+

2.7 Color

+ +

It can be the name of a color as defined below (case insensitive match) or a +[0x|#]RRGGBB[AA] sequence, possibly followed by @ and a string +representing the alpha component. +

+

The alpha component may be a string composed by "0x" followed by an +hexadecimal number or a decimal number between 0.0 and 1.0, which +represents the opacity value (‘0x00’ or ‘0.0’ means completely +transparent, ‘0xff’ or ‘1.0’ completely opaque). If the alpha +component is not specified then ‘0xff’ is assumed. +

+

The string ‘random’ will result in a random color. +

+

The following names of colors are recognized: +

+
AliceBlue
+

0xF0F8FF +

+
AntiqueWhite
+

0xFAEBD7 +

+
Aqua
+

0x00FFFF +

+
Aquamarine
+

0x7FFFD4 +

+
Azure
+

0xF0FFFF +

+
Beige
+

0xF5F5DC +

+
Bisque
+

0xFFE4C4 +

+
Black
+

0x000000 +

+
BlanchedAlmond
+

0xFFEBCD +

+
Blue
+

0x0000FF +

+
BlueViolet
+

0x8A2BE2 +

+
Brown
+

0xA52A2A +

+
BurlyWood
+

0xDEB887 +

+
CadetBlue
+

0x5F9EA0 +

+
Chartreuse
+

0x7FFF00 +

+
Chocolate
+

0xD2691E +

+
Coral
+

0xFF7F50 +

+
CornflowerBlue
+

0x6495ED +

+
Cornsilk
+

0xFFF8DC +

+
Crimson
+

0xDC143C +

+
Cyan
+

0x00FFFF +

+
DarkBlue
+

0x00008B +

+
DarkCyan
+

0x008B8B +

+
DarkGoldenRod
+

0xB8860B +

+
DarkGray
+

0xA9A9A9 +

+
DarkGreen
+

0x006400 +

+
DarkKhaki
+

0xBDB76B +

+
DarkMagenta
+

0x8B008B +

+
DarkOliveGreen
+

0x556B2F +

+
Darkorange
+

0xFF8C00 +

+
DarkOrchid
+

0x9932CC +

+
DarkRed
+

0x8B0000 +

+
DarkSalmon
+

0xE9967A +

+
DarkSeaGreen
+

0x8FBC8F +

+
DarkSlateBlue
+

0x483D8B +

+
DarkSlateGray
+

0x2F4F4F +

+
DarkTurquoise
+

0x00CED1 +

+
DarkViolet
+

0x9400D3 +

+
DeepPink
+

0xFF1493 +

+
DeepSkyBlue
+

0x00BFFF +

+
DimGray
+

0x696969 +

+
DodgerBlue
+

0x1E90FF +

+
FireBrick
+

0xB22222 +

+
FloralWhite
+

0xFFFAF0 +

+
ForestGreen
+

0x228B22 +

+
Fuchsia
+

0xFF00FF +

+
Gainsboro
+

0xDCDCDC +

+
GhostWhite
+

0xF8F8FF +

+
Gold
+

0xFFD700 +

+
GoldenRod
+

0xDAA520 +

+
Gray
+

0x808080 +

+
Green
+

0x008000 +

+
GreenYellow
+

0xADFF2F +

+
HoneyDew
+

0xF0FFF0 +

+
HotPink
+

0xFF69B4 +

+
IndianRed
+

0xCD5C5C +

+
Indigo
+

0x4B0082 +

+
Ivory
+

0xFFFFF0 +

+
Khaki
+

0xF0E68C +

+
Lavender
+

0xE6E6FA +

+
LavenderBlush
+

0xFFF0F5 +

+
LawnGreen
+

0x7CFC00 +

+
LemonChiffon
+

0xFFFACD +

+
LightBlue
+

0xADD8E6 +

+
LightCoral
+

0xF08080 +

+
LightCyan
+

0xE0FFFF +

+
LightGoldenRodYellow
+

0xFAFAD2 +

+
LightGreen
+

0x90EE90 +

+
LightGrey
+

0xD3D3D3 +

+
LightPink
+

0xFFB6C1 +

+
LightSalmon
+

0xFFA07A +

+
LightSeaGreen
+

0x20B2AA +

+
LightSkyBlue
+

0x87CEFA +

+
LightSlateGray
+

0x778899 +

+
LightSteelBlue
+

0xB0C4DE +

+
LightYellow
+

0xFFFFE0 +

+
Lime
+

0x00FF00 +

+
LimeGreen
+

0x32CD32 +

+
Linen
+

0xFAF0E6 +

+
Magenta
+

0xFF00FF +

+
Maroon
+

0x800000 +

+
MediumAquaMarine
+

0x66CDAA +

+
MediumBlue
+

0x0000CD +

+
MediumOrchid
+

0xBA55D3 +

+
MediumPurple
+

0x9370D8 +

+
MediumSeaGreen
+

0x3CB371 +

+
MediumSlateBlue
+

0x7B68EE +

+
MediumSpringGreen
+

0x00FA9A +

+
MediumTurquoise
+

0x48D1CC +

+
MediumVioletRed
+

0xC71585 +

+
MidnightBlue
+

0x191970 +

+
MintCream
+

0xF5FFFA +

+
MistyRose
+

0xFFE4E1 +

+
Moccasin
+

0xFFE4B5 +

+
NavajoWhite
+

0xFFDEAD +

+
Navy
+

0x000080 +

+
OldLace
+

0xFDF5E6 +

+
Olive
+

0x808000 +

+
OliveDrab
+

0x6B8E23 +

+
Orange
+

0xFFA500 +

+
OrangeRed
+

0xFF4500 +

+
Orchid
+

0xDA70D6 +

+
PaleGoldenRod
+

0xEEE8AA +

+
PaleGreen
+

0x98FB98 +

+
PaleTurquoise
+

0xAFEEEE +

+
PaleVioletRed
+

0xD87093 +

+
PapayaWhip
+

0xFFEFD5 +

+
PeachPuff
+

0xFFDAB9 +

+
Peru
+

0xCD853F +

+
Pink
+

0xFFC0CB +

+
Plum
+

0xDDA0DD +

+
PowderBlue
+

0xB0E0E6 +

+
Purple
+

0x800080 +

+
Red
+

0xFF0000 +

+
RosyBrown
+

0xBC8F8F +

+
RoyalBlue
+

0x4169E1 +

+
SaddleBrown
+

0x8B4513 +

+
Salmon
+

0xFA8072 +

+
SandyBrown
+

0xF4A460 +

+
SeaGreen
+

0x2E8B57 +

+
SeaShell
+

0xFFF5EE +

+
Sienna
+

0xA0522D +

+
Silver
+

0xC0C0C0 +

+
SkyBlue
+

0x87CEEB +

+
SlateBlue
+

0x6A5ACD +

+
SlateGray
+

0x708090 +

+
Snow
+

0xFFFAFA +

+
SpringGreen
+

0x00FF7F +

+
SteelBlue
+

0x4682B4 +

+
Tan
+

0xD2B48C +

+
Teal
+

0x008080 +

+
Thistle
+

0xD8BFD8 +

+
Tomato
+

0xFF6347 +

+
Turquoise
+

0x40E0D0 +

+
Violet
+

0xEE82EE +

+
Wheat
+

0xF5DEB3 +

+
White
+

0xFFFFFF +

+
WhiteSmoke
+

0xF5F5F5 +

+
Yellow
+

0xFFFF00 +

+
YellowGreen
+

0x9ACD32 +

+
+ +

+

+

2.8 Channel Layout

+ +

A channel layout specifies the spatial disposition of the channels in +a multi-channel audio stream. To specify a channel layout, FFmpeg +makes use of a special syntax. +

+

Individual channels are identified by an id, as given by the table +below: +

+
FL
+

front left +

+
FR
+

front right +

+
FC
+

front center +

+
LFE
+

low frequency +

+
BL
+

back left +

+
BR
+

back right +

+
FLC
+

front left-of-center +

+
FRC
+

front right-of-center +

+
BC
+

back center +

+
SL
+

side left +

+
SR
+

side right +

+
TC
+

top center +

+
TFL
+

top front left +

+
TFC
+

top front center +

+
TFR
+

top front right +

+
TBL
+

top back left +

+
TBC
+

top back center +

+
TBR
+

top back right +

+
DL
+

downmix left +

+
DR
+

downmix right +

+
WL
+

wide left +

+
WR
+

wide right +

+
SDL
+

surround direct left +

+
SDR
+

surround direct right +

+
LFE2
+

low frequency 2 +

+
+ +

Standard channel layout compositions can be specified by using the +following identifiers: +

+
mono
+

FC +

+
stereo
+

FL+FR +

+
2.1
+

FL+FR+LFE +

+
3.0
+

FL+FR+FC +

+
3.0(back)
+

FL+FR+BC +

+
4.0
+

FL+FR+FC+BC +

+
quad
+

FL+FR+BL+BR +

+
quad(side)
+

FL+FR+SL+SR +

+
3.1
+

FL+FR+FC+LFE +

+
5.0
+

FL+FR+FC+BL+BR +

+
5.0(side)
+

FL+FR+FC+SL+SR +

+
4.1
+

FL+FR+FC+LFE+BC +

+
5.1
+

FL+FR+FC+LFE+BL+BR +

+
5.1(side)
+

FL+FR+FC+LFE+SL+SR +

+
6.0
+

FL+FR+FC+BC+SL+SR +

+
6.0(front)
+

FL+FR+FLC+FRC+SL+SR +

+
hexagonal
+

FL+FR+FC+BL+BR+BC +

+
6.1
+

FL+FR+FC+LFE+BC+SL+SR +

+
6.1
+

FL+FR+FC+LFE+BL+BR+BC +

+
6.1(front)
+

FL+FR+LFE+FLC+FRC+SL+SR +

+
7.0
+

FL+FR+FC+BL+BR+SL+SR +

+
7.0(front)
+

FL+FR+FC+FLC+FRC+SL+SR +

+
7.1
+

FL+FR+FC+LFE+BL+BR+SL+SR +

+
7.1(wide)
+

FL+FR+FC+LFE+BL+BR+FLC+FRC +

+
7.1(wide-side)
+

FL+FR+FC+LFE+FLC+FRC+SL+SR +

+
octagonal
+

FL+FR+FC+BL+BR+BC+SL+SR +

+
downmix
+

DL+DR +

+
+ +

A custom channel layout can be specified as a sequence of terms, separated by +’+’ or ’|’. Each term can be: +

    +
  • +the name of a standard channel layout (e.g. ‘mono’, +‘stereo’, ‘4.0’, ‘quad’, ‘5.0’, etc.) + +
  • +the name of a single channel (e.g. ‘FL’, ‘FR’, ‘FC’, ‘LFE’, etc.) + +
  • +a number of channels, in decimal, optionally followed by ’c’, yielding +the default channel layout for that number of channels (see the +function av_get_default_channel_layout) + +
  • +a channel layout mask, in hexadecimal starting with "0x" (see the +AV_CH_* macros in ‘libavutil/channel_layout.h’. +
+ +

Starting from libavutil version 53 the trailing character "c" to +specify a number of channels will be required, while a channel layout +mask could also be specified as a decimal number (if and only if not +followed by "c"). +

+

See also the function av_get_channel_layout defined in +‘libavutil/channel_layout.h’. +

+ +

3. Expression Evaluation

+ +

When evaluating an arithmetic expression, FFmpeg uses an internal +formula evaluator, implemented through the ‘libavutil/eval.h’ +interface. +

+

An expression may contain unary, binary operators, constants, and +functions. +

+

Two expressions expr1 and expr2 can be combined to form +another expression "expr1;expr2". +expr1 and expr2 are evaluated in turn, and the new +expression evaluates to the value of expr2. +

+

The following binary operators are available: +, -, +*, /, ^. +

+

The following unary operators are available: +, -. +

+

The following functions are available: +

+
abs(x)
+

Compute absolute value of x. +

+
+
acos(x)
+

Compute arccosine of x. +

+
+
asin(x)
+

Compute arcsine of x. +

+
+
atan(x)
+

Compute arctangent of x. +

+
+
between(x, min, max)
+

Return 1 if x is greater than or equal to min and lesser than or +equal to max, 0 otherwise. +

+
+
bitand(x, y)
+
bitor(x, y)
+

Compute bitwise and/or operation on x and y. +

+

The results of the evaluation of x and y are converted to +integers before executing the bitwise operation. +

+

Note that both the conversion to integer and the conversion back to +floating point can lose precision. Beware of unexpected results for +large numbers (usually 2^53 and larger). +

+
+
ceil(expr)
+

Round the value of expression expr upwards to the nearest +integer. For example, "ceil(1.5)" is "2.0". +

+
+
cos(x)
+

Compute cosine of x. +

+
+
cosh(x)
+

Compute hyperbolic cosine of x. +

+
+
eq(x, y)
+

Return 1 if x and y are equivalent, 0 otherwise. +

+
+
exp(x)
+

Compute exponential of x (with base e, the Euler’s number). +

+
+
floor(expr)
+

Round the value of expression expr downwards to the nearest +integer. For example, "floor(-1.5)" is "-2.0". +

+
+
gauss(x)
+

Compute Gauss function of x, corresponding to +exp(-x*x/2) / sqrt(2*PI). +

+
+
gcd(x, y)
+

Return the greatest common divisor of x and y. If both x and +y are 0 or either or both are less than zero then behavior is undefined. +

+
+
gt(x, y)
+

Return 1 if x is greater than y, 0 otherwise. +

+
+
gte(x, y)
+

Return 1 if x is greater than or equal to y, 0 otherwise. +

+
+
hypot(x, y)
+

This function is similar to the C function with the same name; it returns +"sqrt(x*x + y*y)", the length of the hypotenuse of a +right triangle with sides of length x and y, or the distance of the +point (x, y) from the origin. +

+
+
if(x, y)
+

Evaluate x, and if the result is non-zero return the result of +the evaluation of y, return 0 otherwise. +

+
+
if(x, y, z)
+

Evaluate x, and if the result is non-zero return the evaluation +result of y, otherwise the evaluation result of z. +

+
+
ifnot(x, y)
+

Evaluate x, and if the result is zero return the result of the +evaluation of y, return 0 otherwise. +

+
+
ifnot(x, y, z)
+

Evaluate x, and if the result is zero return the evaluation +result of y, otherwise the evaluation result of z. +

+
+
isinf(x)
+

Return 1.0 if x is +/-INFINITY, 0.0 otherwise. +

+
+
isnan(x)
+

Return 1.0 if x is NAN, 0.0 otherwise. +

+
+
ld(var)
+

Allow to load the value of the internal variable with number +var, which was previously stored with st(var, expr). +The function returns the loaded value. +

+
+
log(x)
+

Compute natural logarithm of x. +

+
+
lt(x, y)
+

Return 1 if x is lesser than y, 0 otherwise. +

+
+
lte(x, y)
+

Return 1 if x is lesser than or equal to y, 0 otherwise. +

+
+
max(x, y)
+

Return the maximum between x and y. +

+
+
min(x, y)
+

Return the maximum between x and y. +

+
+
mod(x, y)
+

Compute the remainder of division of x by y. +

+
+
not(expr)
+

Return 1.0 if expr is zero, 0.0 otherwise. +

+
+
pow(x, y)
+

Compute the power of x elevated y, it is equivalent to +"(x)^(y)". +

+
+
print(t)
+
print(t, l)
+

Print the value of expression t with loglevel l. If +l is not specified then a default log level is used. +Returns the value of the expression printed. +

+

Prints t with loglevel l +

+
+
random(x)
+

Return a pseudo random value between 0.0 and 1.0. x is the index of the +internal variable which will be used to save the seed/state. +

+
+
root(expr, max)
+

Find an input value for which the function represented by expr +with argument ld(0) is 0 in the interval 0..max. +

+

The expression in expr must denote a continuous function or the +result is undefined. +

+

ld(0) is used to represent the function input value, which means +that the given expression will be evaluated multiple times with +various input values that the expression can access through +ld(0). When the expression evaluates to 0 then the +corresponding input value will be returned. +

+
+
sin(x)
+

Compute sine of x. +

+
+
sinh(x)
+

Compute hyperbolic sine of x. +

+
+
sqrt(expr)
+

Compute the square root of expr. This is equivalent to +"(expr)^.5". +

+
+
squish(x)
+

Compute expression 1/(1 + exp(4*x)). +

+
+
st(var, expr)
+

Allow to store the value of the expression expr in an internal +variable. var specifies the number of the variable where to +store the value, and it is a value ranging from 0 to 9. The function +returns the value stored in the internal variable. +Note, Variables are currently not shared between expressions. +

+
+
tan(x)
+

Compute tangent of x. +

+
+
tanh(x)
+

Compute hyperbolic tangent of x. +

+
+
taylor(expr, x)
+
taylor(expr, x, id)
+

Evaluate a Taylor series at x, given an expression representing +the ld(id)-th derivative of a function at 0. +

+

When the series does not converge the result is undefined. +

+

ld(id) is used to represent the derivative order in expr, +which means that the given expression will be evaluated multiple times +with various input values that the expression can access through +ld(id). If id is not specified then 0 is assumed. +

+

Note, when you have the derivatives at y instead of 0, +taylor(expr, x-y) can be used. +

+
+
time(0)
+

Return the current (wallclock) time in seconds. +

+
+
trunc(expr)
+

Round the value of expression expr towards zero to the nearest +integer. For example, "trunc(-1.5)" is "-1.0". +

+
+
while(cond, expr)
+

Evaluate expression expr while the expression cond is +non-zero, and returns the value of the last expr evaluation, or +NAN if cond was always false. +

+
+ +

The following constants are available: +

+
PI
+

area of the unit disc, approximately 3.14 +

+
E
+

exp(1) (Euler’s number), approximately 2.718 +

+
PHI
+

golden ratio (1+sqrt(5))/2, approximately 1.618 +

+
+ +

Assuming that an expression is considered "true" if it has a non-zero +value, note that: +

+

* works like AND +

+

+ works like OR +

+

For example the construct: +

 
if (A AND B) then C
+
+

is equivalent to: +

 
if(A*B, C)
+
+ +

In your C code, you can extend the list of unary and binary functions, +and define recognized constants, so that they are available for your +expressions. +

+

The evaluator also recognizes the International System unit prefixes. +If ’i’ is appended after the prefix, binary prefixes are used, which +are based on powers of 1024 instead of powers of 1000. +The ’B’ postfix multiplies the value by 8, and can be appended after a +unit prefix or used alone. This allows using for example ’KB’, ’MiB’, +’G’ and ’B’ as number postfix. +

+

The list of available International System prefixes follows, with +indication of the corresponding powers of 10 and of 2. +

+
y
+

10^-24 / 2^-80 +

+
z
+

10^-21 / 2^-70 +

+
a
+

10^-18 / 2^-60 +

+
f
+

10^-15 / 2^-50 +

+
p
+

10^-12 / 2^-40 +

+
n
+

10^-9 / 2^-30 +

+
u
+

10^-6 / 2^-20 +

+
m
+

10^-3 / 2^-10 +

+
c
+

10^-2 +

+
d
+

10^-1 +

+
h
+

10^2 +

+
k
+

10^3 / 2^10 +

+
K
+

10^3 / 2^10 +

+
M
+

10^6 / 2^20 +

+
G
+

10^9 / 2^30 +

+
T
+

10^12 / 2^40 +

+
P
+

10^15 / 2^40 +

+
E
+

10^18 / 2^50 +

+
Z
+

10^21 / 2^60 +

+
Y
+

10^24 / 2^70 +

+
+ + + +

4. OpenCL Options

+ +

When FFmpeg is configured with --enable-opencl, it is possible +to set the options for the global OpenCL context. +

+

The list of supported options follows: +

+
+
build_options
+

Set build options used to compile the registered kernels. +

+

See reference "OpenCL Specification Version: 1.2 chapter 5.6.4". +

+
+
platform_idx
+

Select the index of the platform to run OpenCL code. +

+

The specified index must be one of the indexes in the device list +which can be obtained with ffmpeg -opencl_bench or av_opencl_get_device_list(). +

+
+
device_idx
+

Select the index of the device used to run OpenCL code. +

+

The specified index must be one of the indexes in the device list which +can be obtained with ffmpeg -opencl_bench or av_opencl_get_device_list(). +

+
+
+ + + +

5. See Also

+ +

ffmpeg, ffplay, ffprobe, ffserver, +libavutil +

+ + +

6. Authors

+ +

The FFmpeg developers. +

+

For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +git log in the FFmpeg source directory, or browsing the +online repository at http://source.ffmpeg.org. +

+

Maintainers for the specific components are listed in the file +‘MAINTAINERS’ in the source code tree. +

+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/ffmpeg.html b/3-Postprocessing/ffmpeg/doc/ffmpeg.html new file mode 100644 index 0000000..f58596f --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/ffmpeg.html @@ -0,0 +1,1947 @@ + + + + + +FFmpeg documentation : ffmpeg + + + + + + + + + + +
+
+ + +

ffmpeg Documentation

+ + +

Table of Contents

+ + + +

1. Synopsis

+ +

ffmpeg [global_options] {[input_file_options] -i ‘input_file’} ... {[output_file_options] ‘output_file’} ... +

+ +

2. Description

+ +

ffmpeg is a very fast video and audio converter that can also grab from +a live audio/video source. It can also convert between arbitrary sample +rates and resize video on the fly with a high quality polyphase filter. +

+

ffmpeg reads from an arbitrary number of input "files" (which can be regular +files, pipes, network streams, grabbing devices, etc.), specified by the +-i option, and writes to an arbitrary number of output "files", which are +specified by a plain output filename. Anything found on the command line which +cannot be interpreted as an option is considered to be an output filename. +

+

Each input or output file can, in principle, contain any number of streams of +different types (video/audio/subtitle/attachment/data). The allowed number and/or +types of streams may be limited by the container format. Selecting which +streams from which inputs will go into which output is either done automatically +or with the -map option (see the Stream selection chapter). +

+

To refer to input files in options, you must use their indices (0-based). E.g. +the first input file is 0, the second is 1, etc. Similarly, streams +within a file are referred to by their indices. E.g. 2:3 refers to the +fourth stream in the third input file. Also see the Stream specifiers chapter. +

+

As a general rule, options are applied to the next specified +file. Therefore, order is important, and you can have the same +option on the command line multiple times. Each occurrence is +then applied to the next input or output file. +Exceptions from this rule are the global options (e.g. verbosity level), +which should be specified first. +

+

Do not mix input and output files – first specify all input files, then all +output files. Also do not mix options which belong to different files. All +options apply ONLY to the next input or output file and are reset between files. +

+
    +
  • +To set the video bitrate of the output file to 64 kbit/s: +
     
    ffmpeg -i input.avi -b:v 64k -bufsize 64k output.avi
    +
    + +
  • +To force the frame rate of the output file to 24 fps: +
     
    ffmpeg -i input.avi -r 24 output.avi
    +
    + +
  • +To force the frame rate of the input file (valid for raw formats only) +to 1 fps and the frame rate of the output file to 24 fps: +
     
    ffmpeg -r 1 -i input.m2v -r 24 output.avi
    +
    +
+ +

The format option may be needed for raw input files. +

+ + +

3. Detailed description

+ +

The transcoding process in ffmpeg for each output can be described by +the following diagram: +

+
 
 _______              ______________
+|       |            |              |
+| input |  demuxer   | encoded data |   decoder
+| file  | ---------> | packets      | -----+
+|_______|            |______________|      |
+                                           v
+                                       _________
+                                      |         |
+                                      | decoded |
+                                      | frames  |
+                                      |_________|
+ ________             ______________       |
+|        |           |              |      |
+| output | <-------- | encoded data | <----+
+| file   |   muxer   | packets      |   encoder
+|________|           |______________|
+
+
+
+ +

ffmpeg calls the libavformat library (containing demuxers) to read +input files and get packets containing encoded data from them. When there are +multiple input files, ffmpeg tries to keep them synchronized by +tracking lowest timestamp on any active input stream. +

+

Encoded packets are then passed to the decoder (unless streamcopy is selected +for the stream, see further for a description). The decoder produces +uncompressed frames (raw video/PCM audio/...) which can be processed further by +filtering (see next section). After filtering, the frames are passed to the +encoder, which encodes them and outputs encoded packets. Finally those are +passed to the muxer, which writes the encoded packets to the output file. +

+ +

3.1 Filtering

+

Before encoding, ffmpeg can process raw audio and video frames using +filters from the libavfilter library. Several chained filters form a filter +graph. ffmpeg distinguishes between two types of filtergraphs: +simple and complex. +

+ +

3.1.1 Simple filtergraphs

+

Simple filtergraphs are those that have exactly one input and output, both of +the same type. In the above diagram they can be represented by simply inserting +an additional step between decoding and encoding: +

+
 
 _________                        ______________
+|         |                      |              |
+| decoded |                      | encoded data |
+| frames  |\                   _ | packets      |
+|_________| \                  /||______________|
+             \   __________   /
+  simple     _\||          | /  encoder
+  filtergraph   | filtered |/
+                | frames   |
+                |__________|
+
+
+ +

Simple filtergraphs are configured with the per-stream ‘-filter’ option +(with ‘-vf’ and ‘-af’ aliases for video and audio respectively). +A simple filtergraph for video can look for example like this: +

+
 
 _______        _____________        _______        ________
+|       |      |             |      |       |      |        |
+| input | ---> | deinterlace | ---> | scale | ---> | output |
+|_______|      |_____________|      |_______|      |________|
+
+
+ +

Note that some filters change frame properties but not frame contents. E.g. the +fps filter in the example above changes number of frames, but does not +touch the frame contents. Another example is the setpts filter, which +only sets timestamps and otherwise passes the frames unchanged. +

+ +

3.1.2 Complex filtergraphs

+

Complex filtergraphs are those which cannot be described as simply a linear +processing chain applied to one stream. This is the case, for example, when the graph has +more than one input and/or output, or when output stream type is different from +input. They can be represented with the following diagram: +

+
 
 _________
+|         |
+| input 0 |\                    __________
+|_________| \                  |          |
+             \   _________    /| output 0 |
+              \ |         |  / |__________|
+ _________     \| complex | /
+|         |     |         |/
+| input 1 |---->| filter  |\
+|_________|     |         | \   __________
+               /| graph   |  \ |          |
+              / |         |   \| output 1 |
+ _________   /  |_________|    |__________|
+|         | /
+| input 2 |/
+|_________|
+
+
+ +

Complex filtergraphs are configured with the ‘-filter_complex’ option. +Note that this option is global, since a complex filtergraph, by its nature, +cannot be unambiguously associated with a single stream or file. +

+

The ‘-lavfi’ option is equivalent to ‘-filter_complex’. +

+

A trivial example of a complex filtergraph is the overlay filter, which +has two video inputs and one video output, containing one video overlaid on top +of the other. Its audio counterpart is the amix filter. +

+ +

3.2 Stream copy

+

Stream copy is a mode selected by supplying the copy parameter to the +‘-codec’ option. It makes ffmpeg omit the decoding and encoding +step for the specified stream, so it does only demuxing and muxing. It is useful +for changing the container format or modifying container-level metadata. The +diagram above will, in this case, simplify to this: +

+
 
 _______              ______________            ________
+|       |            |              |          |        |
+| input |  demuxer   | encoded data |  muxer   | output |
+| file  | ---------> | packets      | -------> | file   |
+|_______|            |______________|          |________|
+
+
+ +

Since there is no decoding or encoding, it is very fast and there is no quality +loss. However, it might not work in some cases because of many factors. Applying +filters is obviously also impossible, since filters work on uncompressed data. +

+ + +

4. Stream selection

+ +

By default, ffmpeg includes only one stream of each type (video, audio, subtitle) +present in the input files and adds them to each output file. It picks the +"best" of each based upon the following criteria: for video, it is the stream +with the highest resolution, for audio, it is the stream with the most channels, for +subtitles, it is the first subtitle stream. In the case where several streams of +the same type rate equally, the stream with the lowest index is chosen. +

+

You can disable some of those defaults by using the -vn/-an/-sn options. For +full manual control, use the -map option, which disables the defaults just +described. +

+ + +

5. Options

+ +

All the numerical options, if not specified otherwise, accept a string +representing a number as input, which may be followed by one of the SI +unit prefixes, for example: ’K’, ’M’, or ’G’. +

+

If ’i’ is appended to the SI unit prefix, the complete prefix will be +interpreted as a unit prefix for binary multiplies, which are based on +powers of 1024 instead of powers of 1000. Appending ’B’ to the SI unit +prefix multiplies the value by 8. This allows using, for example: +’KB’, ’MiB’, ’G’ and ’B’ as number suffixes. +

+

Options which do not take arguments are boolean options, and set the +corresponding value to true. They can be set to false by prefixing +the option name with "no". For example using "-nofoo" +will set the boolean option with name "foo" to false. +

+

+

+

5.1 Stream specifiers

+

Some options are applied per-stream, e.g. bitrate or codec. Stream specifiers +are used to precisely specify which stream(s) a given option belongs to. +

+

A stream specifier is a string generally appended to the option name and +separated from it by a colon. E.g. -codec:a:1 ac3 contains the +a:1 stream specifier, which matches the second audio stream. Therefore, it +would select the ac3 codec for the second audio stream. +

+

A stream specifier can match several streams, so that the option is applied to all +of them. E.g. the stream specifier in -b:a 128k matches all audio +streams. +

+

An empty stream specifier matches all streams. For example, -codec copy +or -codec: copy would copy all the streams without reencoding. +

+

Possible forms of stream specifiers are: +

+
stream_index
+

Matches the stream with this index. E.g. -threads:1 4 would set the +thread count for the second stream to 4. +

+
stream_type[:stream_index]
+

stream_type is one of following: ’v’ for video, ’a’ for audio, ’s’ for subtitle, +’d’ for data, and ’t’ for attachments. If stream_index is given, then it matches +stream number stream_index of this type. Otherwise, it matches all +streams of this type. +

+
p:program_id[:stream_index]
+

If stream_index is given, then it matches the stream with number stream_index +in the program with the id program_id. Otherwise, it matches all streams in the +program. +

+
#stream_id or i:stream_id
+

Match the stream by stream id (e.g. PID in MPEG-TS container). +

+
+ + +

5.2 Generic options

+ +

These options are shared amongst the ff* tools. +

+
+
-L
+

Show license. +

+
+
-h, -?, -help, --help [arg]
+

Show help. An optional parameter may be specified to print help about a specific +item. If no argument is specified, only basic (non advanced) tool +options are shown. +

+

Possible values of arg are: +

+
long
+

Print advanced tool options in addition to the basic tool options. +

+
+
full
+

Print complete list of options, including shared and private options +for encoders, decoders, demuxers, muxers, filters, etc. +

+
+
decoder=decoder_name
+

Print detailed information about the decoder named decoder_name. Use the +‘-decoders’ option to get a list of all decoders. +

+
+
encoder=encoder_name
+

Print detailed information about the encoder named encoder_name. Use the +‘-encoders’ option to get a list of all encoders. +

+
+
demuxer=demuxer_name
+

Print detailed information about the demuxer named demuxer_name. Use the +‘-formats’ option to get a list of all demuxers and muxers. +

+
+
muxer=muxer_name
+

Print detailed information about the muxer named muxer_name. Use the +‘-formats’ option to get a list of all muxers and demuxers. +

+
+
filter=filter_name
+

Print detailed information about the filter name filter_name. Use the +‘-filters’ option to get a list of all filters. +

+
+ +
+
-version
+

Show version. +

+
+
-formats
+

Show available formats. +

+
+
-codecs
+

Show all codecs known to libavcodec. +

+

Note that the term ’codec’ is used throughout this documentation as a shortcut +for what is more correctly called a media bitstream format. +

+
+
-decoders
+

Show available decoders. +

+
+
-encoders
+

Show all available encoders. +

+
+
-bsfs
+

Show available bitstream filters. +

+
+
-protocols
+

Show available protocols. +

+
+
-filters
+

Show available libavfilter filters. +

+
+
-pix_fmts
+

Show available pixel formats. +

+
+
-sample_fmts
+

Show available sample formats. +

+
+
-layouts
+

Show channel names and standard channel layouts. +

+
+
-colors
+

Show recognized color names. +

+
+
-loglevel [repeat+]loglevel | -v [repeat+]loglevel
+

Set the logging level used by the library. +Adding "repeat+" indicates that repeated log output should not be compressed +to the first line and the "Last message repeated n times" line will be +omitted. "repeat" can also be used alone. +If "repeat" is used alone, and with no prior loglevel set, the default +loglevel will be used. If multiple loglevel parameters are given, using +’repeat’ will not change the loglevel. +loglevel is a number or a string containing one of the following values: +

+
quiet
+

Show nothing at all; be silent. +

+
panic
+

Only show fatal errors which could lead the process to crash, such as +and assert failure. This is not currently used for anything. +

+
fatal
+

Only show fatal errors. These are errors after which the process absolutely +cannot continue after. +

+
error
+

Show all errors, including ones which can be recovered from. +

+
warning
+

Show all warnings and errors. Any message related to possibly +incorrect or unexpected events will be shown. +

+
info
+

Show informative messages during processing. This is in addition to +warnings and errors. This is the default value. +

+
verbose
+

Same as info, except more verbose. +

+
debug
+

Show everything, including debugging information. +

+
+ +

By default the program logs to stderr, if coloring is supported by the +terminal, colors are used to mark errors and warnings. Log coloring +can be disabled setting the environment variable +AV_LOG_FORCE_NOCOLOR or NO_COLOR, or can be forced setting +the environment variable AV_LOG_FORCE_COLOR. +The use of the environment variable NO_COLOR is deprecated and +will be dropped in a following FFmpeg version. +

+
+
-report
+

Dump full command line and console output to a file named +program-YYYYMMDD-HHMMSS.log in the current +directory. +This file can be useful for bug reports. +It also implies -loglevel verbose. +

+

Setting the environment variable FFREPORT to any value has the +same effect. If the value is a ’:’-separated key=value sequence, these +options will affect the report; options values must be escaped if they +contain special characters or the options delimiter ’:’ (see the +“Quoting and escaping” section in the ffmpeg-utils manual). The +following option is recognized: +

+
file
+

set the file name to use for the report; %p is expanded to the name +of the program, %t is expanded to a timestamp, %% is expanded +to a plain % +

+
+ +

Errors in parsing the environment variable are not fatal, and will not +appear in the report. +

+
+
-hide_banner
+

Suppress printing banner. +

+

All FFmpeg tools will normally show a copyright notice, build options +and library versions. This option can be used to suppress printing +this information. +

+
+
-cpuflags flags (global)
+

Allows setting and clearing cpu flags. This option is intended +for testing. Do not use it unless you know what you’re doing. +

 
ffmpeg -cpuflags -sse+mmx ...
+ffmpeg -cpuflags mmx ...
+ffmpeg -cpuflags 0 ...
+
+

Possible flags for this option are: +

+
x86
+
+
mmx
+
mmxext
+
sse
+
sse2
+
sse2slow
+
sse3
+
sse3slow
+
ssse3
+
atom
+
sse4.1
+
sse4.2
+
avx
+
xop
+
fma4
+
3dnow
+
3dnowext
+
cmov
+
+
+
ARM
+
+
armv5te
+
armv6
+
armv6t2
+
vfp
+
vfpv3
+
neon
+
+
+
PowerPC
+
+
altivec
+
+
+
Specific Processors
+
+
pentium2
+
pentium3
+
pentium4
+
k6
+
k62
+
athlon
+
athlonxp
+
k8
+
+
+
+ +
+
-opencl_bench
+

Benchmark all available OpenCL devices and show the results. This option +is only available when FFmpeg has been compiled with --enable-opencl. +

+
+
-opencl_options options (global)
+

Set OpenCL environment options. This option is only available when +FFmpeg has been compiled with --enable-opencl. +

+

options must be a list of key=value option pairs +separated by ’:’. See the “OpenCL Options” section in the +ffmpeg-utils manual for the list of supported options. +

+
+ + +

5.3 AVOptions

+ +

These options are provided directly by the libavformat, libavdevice and +libavcodec libraries. To see the list of available AVOptions, use the +‘-help’ option. They are separated into two categories: +

+
generic
+

These options can be set for any container, codec or device. Generic options +are listed under AVFormatContext options for containers/devices and under +AVCodecContext options for codecs. +

+
private
+

These options are specific to the given container, device or codec. Private +options are listed under their corresponding containers/devices/codecs. +

+
+ +

For example to write an ID3v2.3 header instead of a default ID3v2.4 to +an MP3 file, use the ‘id3v2_version’ private option of the MP3 +muxer: +

 
ffmpeg -i input.flac -id3v2_version 3 out.mp3
+
+ +

All codec AVOptions are per-stream, and thus a stream specifier +should be attached to them. +

+

Note: the ‘-nooption’ syntax cannot be used for boolean +AVOptions, use ‘-option 0’/‘-option 1’. +

+

Note: the old undocumented way of specifying per-stream AVOptions by +prepending v/a/s to the options name is now obsolete and will be +removed soon. +

+ +

5.4 Main options

+ +
+
-f fmt (input/output)
+

Force input or output file format. The format is normally auto detected for input +files and guessed from the file extension for output files, so this option is not +needed in most cases. +

+
+
-i filename (input)
+

input file name +

+
+
-y (global)
+

Overwrite output files without asking. +

+
+
-n (global)
+

Do not overwrite output files, and exit immediately if a specified +output file already exists. +

+
+
-c[:stream_specifier] codec (input/output,per-stream)
+
-codec[:stream_specifier] codec (input/output,per-stream)
+

Select an encoder (when used before an output file) or a decoder (when used +before an input file) for one or more streams. codec is the name of a +decoder/encoder or a special value copy (output only) to indicate that +the stream is not to be re-encoded. +

+

For example +

 
ffmpeg -i INPUT -map 0 -c:v libx264 -c:a copy OUTPUT
+
+

encodes all video streams with libx264 and copies all audio streams. +

+

For each stream, the last matching c option is applied, so +

 
ffmpeg -i INPUT -map 0 -c copy -c:v:1 libx264 -c:a:137 libvorbis OUTPUT
+
+

will copy all the streams except the second video, which will be encoded with +libx264, and the 138th audio, which will be encoded with libvorbis. +

+
+
-t duration (output)
+

Stop writing the output after its duration reaches duration. +duration may be a number in seconds, or in hh:mm:ss[.xxx] form. +

+

-to and -t are mutually exclusive and -t has priority. +

+
+
-to position (output)
+

Stop writing the output at position. +position may be a number in seconds, or in hh:mm:ss[.xxx] form. +

+

-to and -t are mutually exclusive and -t has priority. +

+
+
-fs limit_size (output)
+

Set the file size limit, expressed in bytes. +

+
+
-ss position (input/output)
+

When used as an input option (before -i), seeks in this input file to +position. Note the in most formats it is not possible to seek exactly, so +ffmpeg will seek to the closest seek point before position. +When transcoding and ‘-accurate_seek’ is enabled (the default), this +extra segment between the seek point and position will be decoded and +discarded. When doing stream copy or when ‘-noaccurate_seek’ is used, it +will be preserved. +

+

When used as an output option (before an output filename), decodes but discards +input until the timestamps reach position. +

+

position may be either in seconds or in hh:mm:ss[.xxx] form. +

+
+
-itsoffset offset (input)
+

Set the input time offset. +

+

offset must be a time duration specification, +see (ffmpeg-utils)time duration syntax. +

+

The offset is added to the timestamps of the input files. Specifying +a positive offset means that the corresponding streams are delayed by +the time duration specified in offset. +

+
+
-timestamp date (output)
+

Set the recording timestamp in the container. +

+

date must be a time duration specification, +see (ffmpeg-utils)date syntax. +

+
+
-metadata[:metadata_specifier] key=value (output,per-metadata)
+

Set a metadata key/value pair. +

+

An optional metadata_specifier may be given to set metadata +on streams or chapters. See -map_metadata documentation for +details. +

+

This option overrides metadata set with -map_metadata. It is +also possible to delete metadata by using an empty value. +

+

For example, for setting the title in the output file: +

 
ffmpeg -i in.avi -metadata title="my title" out.flv
+
+ +

To set the language of the first audio stream: +

 
ffmpeg -i INPUT -metadata:s:a:1 language=eng OUTPUT
+
+ +
+
-target type (output)
+

Specify target file type (vcd, svcd, dvd, dv, +dv50). type may be prefixed with pal-, ntsc- or +film- to use the corresponding standard. All the format options +(bitrate, codecs, buffer sizes) are then set automatically. You can just type: +

+
 
ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg
+
+ +

Nevertheless you can specify additional options as long as you know +they do not conflict with the standard, as in: +

+
 
ffmpeg -i myfile.avi -target vcd -bf 2 /tmp/vcd.mpg
+
+ +
+
-dframes number (output)
+

Set the number of data frames to record. This is an alias for -frames:d. +

+
+
-frames[:stream_specifier] framecount (output,per-stream)
+

Stop writing to the stream after framecount frames. +

+
+
-q[:stream_specifier] q (output,per-stream)
+
-qscale[:stream_specifier] q (output,per-stream)
+

Use fixed quality scale (VBR). The meaning of q/qscale is +codec-dependent. +If qscale is used without a stream_specifier then it applies only +to the video stream, this is to maintain compatibility with previous behavior +and as specifying the same codec specific value to 2 different codecs that is +audio and video generally is not what is intended when no stream_specifier is +used. +

+

+

+
-filter[:stream_specifier] filtergraph (output,per-stream)
+

Create the filtergraph specified by filtergraph and use it to +filter the stream. +

+

filtergraph is a description of the filtergraph to apply to +the stream, and must have a single input and a single output of the +same type of the stream. In the filtergraph, the input is associated +to the label in, and the output to the label out. See +the ffmpeg-filters manual for more information about the filtergraph +syntax. +

+

See the -filter_complex option if you +want to create filtergraphs with multiple inputs and/or outputs. +

+
+
-filter_script[:stream_specifier] filename (output,per-stream)
+

This option is similar to ‘-filter’, the only difference is that its +argument is the name of the file from which a filtergraph description is to be +read. +

+
+
-pre[:stream_specifier] preset_name (output,per-stream)
+

Specify the preset for matching stream(s). +

+
+
-stats (global)
+

Print encoding progress/statistics. It is on by default, to explicitly +disable it you need to specify -nostats. +

+
+
-progress url (global)
+

Send program-friendly progress information to url. +

+

Progress information is written approximately every second and at the end of +the encoding process. It is made of "key=value" lines. key +consists of only alphanumeric characters. The last key of a sequence of +progress information is always "progress". +

+
+
-stdin
+

Enable interaction on standard input. On by default unless standard input is +used as an input. To explicitly disable interaction you need to specify +-nostdin. +

+

Disabling interaction on standard input is useful, for example, if +ffmpeg is in the background process group. Roughly the same result can +be achieved with ffmpeg ... < /dev/null but it requires a +shell. +

+
+
-debug_ts (global)
+

Print timestamp information. It is off by default. This option is +mostly useful for testing and debugging purposes, and the output +format may change from one version to another, so it should not be +employed by portable scripts. +

+

See also the option -fdebug ts. +

+
+
-attach filename (output)
+

Add an attachment to the output file. This is supported by a few formats +like Matroska for e.g. fonts used in rendering subtitles. Attachments +are implemented as a specific type of stream, so this option will add +a new stream to the file. It is then possible to use per-stream options +on this stream in the usual way. Attachment streams created with this +option will be created after all the other streams (i.e. those created +with -map or automatic mappings). +

+

Note that for Matroska you also have to set the mimetype metadata tag: +

 
ffmpeg -i INPUT -attach DejaVuSans.ttf -metadata:s:2 mimetype=application/x-truetype-font out.mkv
+
+

(assuming that the attachment stream will be third in the output file). +

+
+
-dump_attachment[:stream_specifier] filename (input,per-stream)
+

Extract the matching attachment stream into a file named filename. If +filename is empty, then the value of the filename metadata tag +will be used. +

+

E.g. to extract the first attachment to a file named ’out.ttf’: +

 
ffmpeg -dump_attachment:t:0 out.ttf -i INPUT
+
+

To extract all attachments to files determined by the filename tag: +

 
ffmpeg -dump_attachment:t "" -i INPUT
+
+ +

Technical note – attachments are implemented as codec extradata, so this +option can actually be used to extract extradata from any stream, not just +attachments. +

+
+
+ + +

5.5 Video Options

+ +
+
-vframes number (output)
+

Set the number of video frames to record. This is an alias for -frames:v. +

+
-r[:stream_specifier] fps (input/output,per-stream)
+

Set frame rate (Hz value, fraction or abbreviation). +

+

As an input option, ignore any timestamps stored in the file and instead +generate timestamps assuming constant frame rate fps. +

+

As an output option, duplicate or drop input frames to achieve constant output +frame rate fps. +

+
+
-s[:stream_specifier] size (input/output,per-stream)
+

Set frame size. +

+

As an input option, this is a shortcut for the ‘video_size’ private +option, recognized by some demuxers for which the frame size is either not +stored in the file or is configurable – e.g. raw video or video grabbers. +

+

As an output option, this inserts the scale video filter to the +end of the corresponding filtergraph. Please use the scale filter +directly to insert it at the beginning or some other place. +

+

The format is ‘wxh’ (default - same as source). +

+
+
-aspect[:stream_specifier] aspect (output,per-stream)
+

Set the video display aspect ratio specified by aspect. +

+

aspect can be a floating point number string, or a string of the +form num:den, where num and den are the +numerator and denominator of the aspect ratio. For example "4:3", +"16:9", "1.3333", and "1.7777" are valid argument values. +

+

If used together with ‘-vcodec copy’, it will affect the aspect ratio +stored at container level, but not the aspect ratio stored in encoded +frames, if it exists. +

+
+
-vn (output)
+

Disable video recording. +

+
+
-vcodec codec (output)
+

Set the video codec. This is an alias for -codec:v. +

+
+
-pass[:stream_specifier] n (output,per-stream)
+

Select the pass number (1 or 2). It is used to do two-pass +video encoding. The statistics of the video are recorded in the first +pass into a log file (see also the option -passlogfile), +and in the second pass that log file is used to generate the video +at the exact requested bitrate. +On pass 1, you may just deactivate audio and set output to null, +examples for Windows and Unix: +

 
ffmpeg -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y NUL
+ffmpeg -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y /dev/null
+
+ +
+
-passlogfile[:stream_specifier] prefix (output,per-stream)
+

Set two-pass log file name prefix to prefix, the default file name +prefix is “ffmpeg2pass”. The complete file name will be +‘PREFIX-N.log’, where N is a number specific to the output +stream +

+
+
-vf filtergraph (output)
+

Create the filtergraph specified by filtergraph and use it to +filter the stream. +

+

This is an alias for -filter:v, see the -filter option. +

+
+ + +

5.6 Advanced Video Options

+ +
+
-pix_fmt[:stream_specifier] format (input/output,per-stream)
+

Set pixel format. Use -pix_fmts to show all the supported +pixel formats. +If the selected pixel format can not be selected, ffmpeg will print a +warning and select the best pixel format supported by the encoder. +If pix_fmt is prefixed by a +, ffmpeg will exit with an error +if the requested pixel format can not be selected, and automatic conversions +inside filtergraphs are disabled. +If pix_fmt is a single +, ffmpeg selects the same pixel format +as the input (or graph output) and automatic conversions are disabled. +

+
+
-sws_flags flags (input/output)
+

Set SwScaler flags. +

+
-vdt n
+

Discard threshold. +

+
+
-rc_override[:stream_specifier] override (output,per-stream)
+

Rate control override for specific intervals, formatted as "int,int,int" +list separated with slashes. Two first values are the beginning and +end frame numbers, last one is quantizer to use if positive, or quality +factor if negative. +

+
+
-ilme
+

Force interlacing support in encoder (MPEG-2 and MPEG-4 only). +Use this option if your input file is interlaced and you want +to keep the interlaced format for minimum losses. +The alternative is to deinterlace the input stream with +‘-deinterlace’, but deinterlacing introduces losses. +

+
-psnr
+

Calculate PSNR of compressed frames. +

+
-vstats
+

Dump video coding statistics to ‘vstats_HHMMSS.log’. +

+
-vstats_file file
+

Dump video coding statistics to file. +

+
-top[:stream_specifier] n (output,per-stream)
+

top=1/bottom=0/auto=-1 field first +

+
-dc precision
+

Intra_dc_precision. +

+
-vtag fourcc/tag (output)
+

Force video tag/fourcc. This is an alias for -tag:v. +

+
-qphist (global)
+

Show QP histogram +

+
-vbsf bitstream_filter
+

Deprecated see -bsf +

+
+
-force_key_frames[:stream_specifier] time[,time...] (output,per-stream)
+
-force_key_frames[:stream_specifier] expr:expr (output,per-stream)
+

Force key frames at the specified timestamps, more precisely at the first +frames after each specified time. +

+

If the argument is prefixed with expr:, the string expr +is interpreted like an expression and is evaluated for each frame. A +key frame is forced in case the evaluation is non-zero. +

+

If one of the times is "chapters[delta]", it is expanded into +the time of the beginning of all chapters in the file, shifted by +delta, expressed as a time in seconds. +This option can be useful to ensure that a seek point is present at a +chapter mark or any other designated place in the output file. +

+

For example, to insert a key frame at 5 minutes, plus key frames 0.1 second +before the beginning of every chapter: +

 
-force_key_frames 0:05:00,chapters-0.1
+
+ +

The expression in expr can contain the following constants: +

+
n
+

the number of current processed frame, starting from 0 +

+
n_forced
+

the number of forced frames +

+
prev_forced_n
+

the number of the previous forced frame, it is NAN when no +keyframe was forced yet +

+
prev_forced_t
+

the time of the previous forced frame, it is NAN when no +keyframe was forced yet +

+
t
+

the time of the current processed frame +

+
+ +

For example to force a key frame every 5 seconds, you can specify: +

 
-force_key_frames expr:gte(t,n_forced*5)
+
+ +

To force a key frame 5 seconds after the time of the last forced one, +starting from second 13: +

 
-force_key_frames expr:if(isnan(prev_forced_t),gte(t,13),gte(t,prev_forced_t+5))
+
+ +

Note that forcing too many keyframes is very harmful for the lookahead +algorithms of certain encoders: using fixed-GOP options or similar +would be more efficient. +

+
+
-copyinkf[:stream_specifier] (output,per-stream)
+

When doing stream copy, copy also non-key frames found at the +beginning. +

+
+
-hwaccel[:stream_specifier] hwaccel (input,per-stream)
+

Use hardware acceleration to decode the matching stream(s). The allowed values +of hwaccel are: +

+
none
+

Do not use any hardware acceleration (the default). +

+
+
auto
+

Automatically select the hardware acceleration method. +

+
+
vdpau
+

Use VDPAU (Video Decode and Presentation API for Unix) hardware acceleration. +

+
+ +

This option has no effect if the selected hwaccel is not available or not +supported by the chosen decoder. +

+

Note that most acceleration methods are intended for playback and will not be +faster than software decoding on modern CPUs. Additionally, ffmpeg +will usually need to copy the decoded frames from the GPU memory into the system +memory, resulting in further performance loss. This option is thus mainly +useful for testing. +

+
+
-hwaccel_device[:stream_specifier] hwaccel_device (input,per-stream)
+

Select a device to use for hardware acceleration. +

+

This option only makes sense when the ‘-hwaccel’ option is also +specified. Its exact meaning depends on the specific hardware acceleration +method chosen. +

+
+
vdpau
+

For VDPAU, this option specifies the X11 display/screen to use. If this option +is not specified, the value of the DISPLAY environment variable is used +

+
+
+
+ + +

5.7 Audio Options

+ +
+
-aframes number (output)
+

Set the number of audio frames to record. This is an alias for -frames:a. +

+
-ar[:stream_specifier] freq (input/output,per-stream)
+

Set the audio sampling frequency. For output streams it is set by +default to the frequency of the corresponding input stream. For input +streams this option only makes sense for audio grabbing devices and raw +demuxers and is mapped to the corresponding demuxer options. +

+
-aq q (output)
+

Set the audio quality (codec-specific, VBR). This is an alias for -q:a. +

+
-ac[:stream_specifier] channels (input/output,per-stream)
+

Set the number of audio channels. For output streams it is set by +default to the number of input audio channels. For input streams +this option only makes sense for audio grabbing devices and raw demuxers +and is mapped to the corresponding demuxer options. +

+
-an (output)
+

Disable audio recording. +

+
-acodec codec (input/output)
+

Set the audio codec. This is an alias for -codec:a. +

+
-sample_fmt[:stream_specifier] sample_fmt (output,per-stream)
+

Set the audio sample format. Use -sample_fmts to get a list +of supported sample formats. +

+
+
-af filtergraph (output)
+

Create the filtergraph specified by filtergraph and use it to +filter the stream. +

+

This is an alias for -filter:a, see the -filter option. +

+
+ + +

5.8 Advanced Audio options:

+ +
+
-atag fourcc/tag (output)
+

Force audio tag/fourcc. This is an alias for -tag:a. +

+
-absf bitstream_filter
+

Deprecated, see -bsf +

+
-guess_layout_max channels (input,per-stream)
+

If some input channel layout is not known, try to guess only if it +corresponds to at most the specified number of channels. For example, 2 +tells to ffmpeg to recognize 1 channel as mono and 2 channels as +stereo but not 6 channels as 5.1. The default is to always try to guess. Use +0 to disable all guessing. +

+
+ + +

5.9 Subtitle options:

+ +
+
-scodec codec (input/output)
+

Set the subtitle codec. This is an alias for -codec:s. +

+
-sn (output)
+

Disable subtitle recording. +

+
-sbsf bitstream_filter
+

Deprecated, see -bsf +

+
+ + +

5.10 Advanced Subtitle options:

+ +
+
-fix_sub_duration
+

Fix subtitles durations. For each subtitle, wait for the next packet in the +same stream and adjust the duration of the first to avoid overlap. This is +necessary with some subtitles codecs, especially DVB subtitles, because the +duration in the original packet is only a rough estimate and the end is +actually marked by an empty subtitle frame. Failing to use this option when +necessary can result in exaggerated durations or muxing failures due to +non-monotonic timestamps. +

+

Note that this option will delay the output of all data until the next +subtitle packet is decoded: it may increase memory consumption and latency a +lot. +

+
+
-canvas_size size
+

Set the size of the canvas used to render subtitles. +

+
+
+ + +

5.11 Advanced options

+ +
+
-map [-]input_file_id[:stream_specifier][,sync_file_id[:stream_specifier]] | [linklabel] (output)
+
+

Designate one or more input streams as a source for the output file. Each input +stream is identified by the input file index input_file_id and +the input stream index input_stream_id within the input +file. Both indices start at 0. If specified, +sync_file_id:stream_specifier sets which input stream +is used as a presentation sync reference. +

+

The first -map option on the command line specifies the +source for output stream 0, the second -map option specifies +the source for output stream 1, etc. +

+

A - character before the stream identifier creates a "negative" mapping. +It disables matching streams from already created mappings. +

+

An alternative [linklabel] form will map outputs from complex filter +graphs (see the ‘-filter_complex’ option) to the output file. +linklabel must correspond to a defined output link label in the graph. +

+

For example, to map ALL streams from the first input file to output +

 
ffmpeg -i INPUT -map 0 output
+
+ +

For example, if you have two audio streams in the first input file, +these streams are identified by "0:0" and "0:1". You can use +-map to select which streams to place in an output file. For +example: +

 
ffmpeg -i INPUT -map 0:1 out.wav
+
+

will map the input stream in ‘INPUT’ identified by "0:1" to +the (single) output stream in ‘out.wav’. +

+

For example, to select the stream with index 2 from input file +‘a.mov’ (specified by the identifier "0:2"), and stream with +index 6 from input ‘b.mov’ (specified by the identifier "1:6"), +and copy them to the output file ‘out.mov’: +

 
ffmpeg -i a.mov -i b.mov -c copy -map 0:2 -map 1:6 out.mov
+
+ +

To select all video and the third audio stream from an input file: +

 
ffmpeg -i INPUT -map 0:v -map 0:a:2 OUTPUT
+
+ +

To map all the streams except the second audio, use negative mappings +

 
ffmpeg -i INPUT -map 0 -map -0:a:1 OUTPUT
+
+ +

Note that using this option disables the default mappings for this output file. +

+
+
-map_channel [input_file_id.stream_specifier.channel_id|-1][:output_file_id.stream_specifier]
+

Map an audio channel from a given input to an output. If +output_file_id.stream_specifier is not set, the audio channel will +be mapped on all the audio streams. +

+

Using "-1" instead of +input_file_id.stream_specifier.channel_id will map a muted +channel. +

+

For example, assuming INPUT is a stereo audio file, you can switch the +two audio channels with the following command: +

 
ffmpeg -i INPUT -map_channel 0.0.1 -map_channel 0.0.0 OUTPUT
+
+ +

If you want to mute the first channel and keep the second: +

 
ffmpeg -i INPUT -map_channel -1 -map_channel 0.0.1 OUTPUT
+
+ +

The order of the "-map_channel" option specifies the order of the channels in +the output stream. The output channel layout is guessed from the number of +channels mapped (mono if one "-map_channel", stereo if two, etc.). Using "-ac" +in combination of "-map_channel" makes the channel gain levels to be updated if +input and output channel layouts don’t match (for instance two "-map_channel" +options and "-ac 6"). +

+

You can also extract each channel of an input to specific outputs; the following +command extracts two channels of the INPUT audio stream (file 0, stream 0) +to the respective OUTPUT_CH0 and OUTPUT_CH1 outputs: +

 
ffmpeg -i INPUT -map_channel 0.0.0 OUTPUT_CH0 -map_channel 0.0.1 OUTPUT_CH1
+
+ +

The following example splits the channels of a stereo input into two separate +streams, which are put into the same output file: +

 
ffmpeg -i stereo.wav -map 0:0 -map 0:0 -map_channel 0.0.0:0.0 -map_channel 0.0.1:0.1 -y out.ogg
+
+ +

Note that currently each output stream can only contain channels from a single +input stream; you can’t for example use "-map_channel" to pick multiple input +audio channels contained in different streams (from the same or different files) +and merge them into a single output stream. It is therefore not currently +possible, for example, to turn two separate mono streams into a single stereo +stream. However splitting a stereo stream into two single channel mono streams +is possible. +

+

If you need this feature, a possible workaround is to use the amerge +filter. For example, if you need to merge a media (here ‘input.mkv’) with 2 +mono audio streams into one single stereo channel audio stream (and keep the +video stream), you can use the following command: +

 
ffmpeg -i input.mkv -filter_complex "[0:1] [0:2] amerge" -c:a pcm_s16le -c:v copy output.mkv
+
+ +
+
-map_metadata[:metadata_spec_out] infile[:metadata_spec_in] (output,per-metadata)
+

Set metadata information of the next output file from infile. Note that +those are file indices (zero-based), not filenames. +Optional metadata_spec_in/out parameters specify, which metadata to copy. +A metadata specifier can have the following forms: +

+
g
+

global metadata, i.e. metadata that applies to the whole file +

+
+
s[:stream_spec]
+

per-stream metadata. stream_spec is a stream specifier as described +in the Stream specifiers chapter. In an input metadata specifier, the first +matching stream is copied from. In an output metadata specifier, all matching +streams are copied to. +

+
+
c:chapter_index
+

per-chapter metadata. chapter_index is the zero-based chapter index. +

+
+
p:program_index
+

per-program metadata. program_index is the zero-based program index. +

+
+

If metadata specifier is omitted, it defaults to global. +

+

By default, global metadata is copied from the first input file, +per-stream and per-chapter metadata is copied along with streams/chapters. These +default mappings are disabled by creating any mapping of the relevant type. A negative +file index can be used to create a dummy mapping that just disables automatic copying. +

+

For example to copy metadata from the first stream of the input file to global metadata +of the output file: +

 
ffmpeg -i in.ogg -map_metadata 0:s:0 out.mp3
+
+ +

To do the reverse, i.e. copy global metadata to all audio streams: +

 
ffmpeg -i in.mkv -map_metadata:s:a 0:g out.mkv
+
+

Note that simple 0 would work as well in this example, since global +metadata is assumed by default. +

+
+
-map_chapters input_file_index (output)
+

Copy chapters from input file with index input_file_index to the next +output file. If no chapter mapping is specified, then chapters are copied from +the first input file with at least one chapter. Use a negative file index to +disable any chapter copying. +

+
+
-benchmark (global)
+

Show benchmarking information at the end of an encode. +Shows CPU time used and maximum memory consumption. +Maximum memory consumption is not supported on all systems, +it will usually display as 0 if not supported. +

+
-benchmark_all (global)
+

Show benchmarking information during the encode. +Shows CPU time used in various steps (audio/video encode/decode). +

+
-timelimit duration (global)
+

Exit after ffmpeg has been running for duration seconds. +

+
-dump (global)
+

Dump each input packet to stderr. +

+
-hex (global)
+

When dumping packets, also dump the payload. +

+
-re (input)
+

Read input at native frame rate. Mainly used to simulate a grab device. +or live input stream (e.g. when reading from a file). Should not be used +with actual grab devices or live input streams (where it can cause packet +loss). +By default ffmpeg attempts to read the input(s) as fast as possible. +This option will slow down the reading of the input(s) to the native frame rate +of the input(s). It is useful for real-time output (e.g. live streaming). +

+
-loop_input
+

Loop over the input stream. Currently it works only for image +streams. This option is used for automatic FFserver testing. +This option is deprecated, use -loop 1. +

+
-loop_output number_of_times
+

Repeatedly loop output for formats that support looping such as animated GIF +(0 will loop the output infinitely). +This option is deprecated, use -loop. +

+
-vsync parameter
+

Video sync method. +For compatibility reasons old values can be specified as numbers. +Newly added values will have to be specified as strings always. +

+
+
0, passthrough
+

Each frame is passed with its timestamp from the demuxer to the muxer. +

+
1, cfr
+

Frames will be duplicated and dropped to achieve exactly the requested +constant frame rate. +

+
2, vfr
+

Frames are passed through with their timestamp or dropped so as to +prevent 2 frames from having the same timestamp. +

+
drop
+

As passthrough but destroys all timestamps, making the muxer generate +fresh timestamps based on frame-rate. +

+
-1, auto
+

Chooses between 1 and 2 depending on muxer capabilities. This is the +default method. +

+
+ +

Note that the timestamps may be further modified by the muxer, after this. +For example, in the case that the format option ‘avoid_negative_ts’ +is enabled. +

+

With -map you can select from which stream the timestamps should be +taken. You can leave either video or audio unchanged and sync the +remaining stream(s) to the unchanged one. +

+
+
-async samples_per_second
+

Audio sync method. "Stretches/squeezes" the audio stream to match the timestamps, +the parameter is the maximum samples per second by which the audio is changed. +-async 1 is a special case where only the start of the audio stream is corrected +without any later correction. +

+

Note that the timestamps may be further modified by the muxer, after this. +For example, in the case that the format option ‘avoid_negative_ts’ +is enabled. +

+

This option has been deprecated. Use the aresample audio filter instead. +

+
+
-copyts
+

Do not process input timestamps, but keep their values without trying +to sanitize them. In particular, do not remove the initial start time +offset value. +

+

Note that, depending on the ‘vsync’ option or on specific muxer +processing (e.g. in case the format option ‘avoid_negative_ts’ +is enabled) the output timestamps may mismatch with the input +timestamps even when this option is selected. +

+
+
-copytb mode
+

Specify how to set the encoder timebase when stream copying. mode is an +integer numeric value, and can assume one of the following values: +

+
+
1
+

Use the demuxer timebase. +

+

The time base is copied to the output encoder from the corresponding input +demuxer. This is sometimes required to avoid non monotonically increasing +timestamps when copying video streams with variable frame rate. +

+
+
0
+

Use the decoder timebase. +

+

The time base is copied to the output encoder from the corresponding input +decoder. +

+
+
-1
+

Try to make the choice automatically, in order to generate a sane output. +

+
+ +

Default value is -1. +

+
+
-shortest (output)
+

Finish encoding when the shortest input stream ends. +

+
-dts_delta_threshold
+

Timestamp discontinuity delta threshold. +

+
-muxdelay seconds (input)
+

Set the maximum demux-decode delay. +

+
-muxpreload seconds (input)
+

Set the initial demux-decode delay. +

+
-streamid output-stream-index:new-value (output)
+

Assign a new stream-id value to an output stream. This option should be +specified prior to the output filename to which it applies. +For the situation where multiple output files exist, a streamid +may be reassigned to a different value. +

+

For example, to set the stream 0 PID to 33 and the stream 1 PID to 36 for +an output mpegts file: +

 
ffmpeg -i infile -streamid 0:33 -streamid 1:36 out.ts
+
+ +
+
-bsf[:stream_specifier] bitstream_filters (output,per-stream)
+

Set bitstream filters for matching streams. bitstream_filters is +a comma-separated list of bitstream filters. Use the -bsfs option +to get the list of bitstream filters. +

 
ffmpeg -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264
+
+
 
ffmpeg -i file.mov -an -vn -bsf:s mov2textsub -c:s copy -f rawvideo sub.txt
+
+ +
+
-tag[:stream_specifier] codec_tag (input/output,per-stream)
+

Force a tag/fourcc for matching streams. +

+
+
-timecode hh:mm:ssSEPff
+

Specify Timecode for writing. SEP is ’:’ for non drop timecode and ’;’ +(or ’.’) for drop. +

 
ffmpeg -i input.mpg -timecode 01:02:03.04 -r 30000/1001 -s ntsc output.mpg
+
+ +

+

+
-filter_complex filtergraph (global)
+

Define a complex filtergraph, i.e. one with arbitrary number of inputs and/or +outputs. For simple graphs – those with one input and one output of the same +type – see the ‘-filter’ options. filtergraph is a description of +the filtergraph, as described in the “Filtergraph syntax” section of the +ffmpeg-filters manual. +

+

Input link labels must refer to input streams using the +[file_index:stream_specifier] syntax (i.e. the same as ‘-map’ +uses). If stream_specifier matches multiple streams, the first one will be +used. An unlabeled input will be connected to the first unused input stream of +the matching type. +

+

Output link labels are referred to with ‘-map’. Unlabeled outputs are +added to the first output file. +

+

Note that with this option it is possible to use only lavfi sources without +normal input files. +

+

For example, to overlay an image over video +

 
ffmpeg -i video.mkv -i image.png -filter_complex '[0:v][1:v]overlay[out]' -map
+'[out]' out.mkv
+
+

Here [0:v] refers to the first video stream in the first input file, +which is linked to the first (main) input of the overlay filter. Similarly the +first video stream in the second input is linked to the second (overlay) input +of overlay. +

+

Assuming there is only one video stream in each input file, we can omit input +labels, so the above is equivalent to +

 
ffmpeg -i video.mkv -i image.png -filter_complex 'overlay[out]' -map
+'[out]' out.mkv
+
+ +

Furthermore we can omit the output label and the single output from the filter +graph will be added to the output file automatically, so we can simply write +

 
ffmpeg -i video.mkv -i image.png -filter_complex 'overlay' out.mkv
+
+ +

To generate 5 seconds of pure red video using lavfi color source: +

 
ffmpeg -filter_complex 'color=c=red' -t 5 out.mkv
+
+ +
+
-lavfi filtergraph (global)
+

Define a complex filtergraph, i.e. one with arbitrary number of inputs and/or +outputs. Equivalent to ‘-filter_complex’. +

+
+
-filter_complex_script filename (global)
+

This option is similar to ‘-filter_complex’, the only difference is that +its argument is the name of the file from which a complex filtergraph +description is to be read. +

+
+
-accurate_seek (input)
+

This option enables or disables accurate seeking in input files with the +‘-ss’ option. It is enabled by default, so seeking is accurate when +transcoding. Use ‘-noaccurate_seek’ to disable it, which may be useful +e.g. when copying some streams and transcoding the others. +

+
+
-override_ffserver (global)
+

Overrides the input specifications from ffserver. Using this +option you can map any input stream to ffserver and control +many aspects of the encoding from ffmpeg. Without this +option ffmpeg will transmit to ffserver what is +requested by ffserver. +

+

The option is intended for cases where features are needed that cannot be +specified to ffserver but can be to ffmpeg. +

+
+
+ +

As a special exception, you can use a bitmap subtitle stream as input: it +will be converted into a video with the same size as the largest video in +the file, or 720x576 if no video is present. Note that this is an +experimental and temporary solution. It will be removed once libavfilter has +proper support for subtitles. +

+

For example, to hardcode subtitles on top of a DVB-T recording stored in +MPEG-TS format, delaying the subtitles by 1 second: +

 
ffmpeg -i input.ts -filter_complex \
+  '[#0x2ef] setpts=PTS+1/TB [sub] ; [#0x2d0] [sub] overlay' \
+  -sn -map '#0x2dc' output.mkv
+
+

(0x2d0, 0x2dc and 0x2ef are the MPEG-TS PIDs of respectively the video, +audio and subtitles streams; 0:0, 0:3 and 0:7 would have worked too) +

+ +

5.12 Preset files

+

A preset file contains a sequence of option=value pairs, +one for each line, specifying a sequence of options which would be +awkward to specify on the command line. Lines starting with the hash +(’#’) character are ignored and are used to provide comments. Check +the ‘presets’ directory in the FFmpeg source tree for examples. +

+

Preset files are specified with the vpre, apre, +spre, and fpre options. The fpre option takes the +filename of the preset instead of a preset name as input and can be +used for any kind of codec. For the vpre, apre, and +spre options, the options specified in a preset file are +applied to the currently selected codec of the same type as the preset +option. +

+

The argument passed to the vpre, apre, and spre +preset options identifies the preset file to use according to the +following rules: +

+

First ffmpeg searches for a file named arg.ffpreset in the +directories ‘$FFMPEG_DATADIR’ (if set), and ‘$HOME/.ffmpeg’, and in +the datadir defined at configuration time (usually ‘PREFIX/share/ffmpeg’) +or in a ‘ffpresets’ folder along the executable on win32, +in that order. For example, if the argument is libvpx-1080p, it will +search for the file ‘libvpx-1080p.ffpreset’. +

+

If no such file is found, then ffmpeg will search for a file named +codec_name-arg.ffpreset in the above-mentioned +directories, where codec_name is the name of the codec to which +the preset file options will be applied. For example, if you select +the video codec with -vcodec libvpx and use -vpre 1080p, +then it will search for the file ‘libvpx-1080p.ffpreset’. +

+ +

6. Tips

+ +
    +
  • +For streaming at very low bitrates, use a low frame rate +and a small GOP size. This is especially true for RealVideo where +the Linux player does not seem to be very fast, so it can miss +frames. An example is: + +
     
    ffmpeg -g 3 -r 3 -t 10 -b:v 50k -s qcif -f rv10 /tmp/b.rm
    +
    + +
  • +The parameter ’q’ which is displayed while encoding is the current +quantizer. The value 1 indicates that a very good quality could +be achieved. The value 31 indicates the worst quality. If q=31 appears +too often, it means that the encoder cannot compress enough to meet +your bitrate. You must either increase the bitrate, decrease the +frame rate or decrease the frame size. + +
  • +If your computer is not fast enough, you can speed up the +compression at the expense of the compression ratio. You can use +’-me zero’ to speed up motion estimation, and ’-g 0’ to disable +motion estimation completely (you have only I-frames, which means it +is about as good as JPEG compression). + +
  • +To have very low audio bitrates, reduce the sampling frequency +(down to 22050 Hz for MPEG audio, 22050 or 11025 for AC-3). + +
  • +To have a constant quality (but a variable bitrate), use the option +’-qscale n’ when ’n’ is between 1 (excellent quality) and 31 (worst +quality). + +
+ + +

7. Examples

+ + +

7.1 Preset files

+ +

A preset file contains a sequence of option=value pairs, one for +each line, specifying a sequence of options which can be specified also on +the command line. Lines starting with the hash (’#’) character are ignored and +are used to provide comments. Empty lines are also ignored. Check the +‘presets’ directory in the FFmpeg source tree for examples. +

+

Preset files are specified with the pre option, this option takes a +preset name as input. FFmpeg searches for a file named preset_name.avpreset in +the directories ‘$AVCONV_DATADIR’ (if set), and ‘$HOME/.ffmpeg’, and in +the data directory defined at configuration time (usually ‘$PREFIX/share/ffmpeg’) +in that order. For example, if the argument is libx264-max, it will +search for the file ‘libx264-max.avpreset’. +

+ +

7.2 Video and Audio grabbing

+ +

If you specify the input format and device then ffmpeg can grab video +and audio directly. +

+
 
ffmpeg -f oss -i /dev/dsp -f video4linux2 -i /dev/video0 /tmp/out.mpg
+
+ +

Or with an ALSA audio source (mono input, card id 1) instead of OSS: +

 
ffmpeg -f alsa -ac 1 -i hw:1 -f video4linux2 -i /dev/video0 /tmp/out.mpg
+
+ +

Note that you must activate the right video source and channel before +launching ffmpeg with any TV viewer such as +xawtv by Gerd Knorr. You also +have to set the audio recording levels correctly with a +standard mixer. +

+ +

7.3 X11 grabbing

+ +

Grab the X11 display with ffmpeg via +

+
 
ffmpeg -f x11grab -video_size cif -framerate 25 -i :0.0 /tmp/out.mpg
+
+ +

0.0 is display.screen number of your X11 server, same as +the DISPLAY environment variable. +

+
 
ffmpeg -f x11grab -video_size cif -framerate 25 -i :0.0+10,20 /tmp/out.mpg
+
+ +

0.0 is display.screen number of your X11 server, same as the DISPLAY environment +variable. 10 is the x-offset and 20 the y-offset for the grabbing. +

+ +

7.4 Video and Audio file format conversion

+ +

Any supported file format and protocol can serve as input to ffmpeg: +

+

Examples: +

    +
  • +You can use YUV files as input: + +
     
    ffmpeg -i /tmp/test%d.Y /tmp/out.mpg
    +
    + +

    It will use the files: +

     
    /tmp/test0.Y, /tmp/test0.U, /tmp/test0.V,
    +/tmp/test1.Y, /tmp/test1.U, /tmp/test1.V, etc...
    +
    + +

    The Y files use twice the resolution of the U and V files. They are +raw files, without header. They can be generated by all decent video +decoders. You must specify the size of the image with the ‘-s’ option +if ffmpeg cannot guess it. +

    +
  • +You can input from a raw YUV420P file: + +
     
    ffmpeg -i /tmp/test.yuv /tmp/out.avi
    +
    + +

    test.yuv is a file containing raw YUV planar data. Each frame is composed +of the Y plane followed by the U and V planes at half vertical and +horizontal resolution. +

    +
  • +You can output to a raw YUV420P file: + +
     
    ffmpeg -i mydivx.avi hugefile.yuv
    +
    + +
  • +You can set several input files and output files: + +
     
    ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg
    +
    + +

    Converts the audio file a.wav and the raw YUV video file a.yuv +to MPEG file a.mpg. +

    +
  • +You can also do audio and video conversions at the same time: + +
     
    ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2
    +
    + +

    Converts a.wav to MPEG audio at 22050 Hz sample rate. +

    +
  • +You can encode to several formats at the same time and define a +mapping from input stream to output streams: + +
     
    ffmpeg -i /tmp/a.wav -map 0:a -b:a 64k /tmp/a.mp2 -map 0:a -b:a 128k /tmp/b.mp2
    +
    + +

    Converts a.wav to a.mp2 at 64 kbits and to b.mp2 at 128 kbits. ’-map +file:index’ specifies which input stream is used for each output +stream, in the order of the definition of output streams. +

    +
  • +You can transcode decrypted VOBs: + +
     
    ffmpeg -i snatch_1.vob -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k snatch.avi
    +
    + +

    This is a typical DVD ripping example; the input is a VOB file, the +output an AVI file with MPEG-4 video and MP3 audio. Note that in this +command we use B-frames so the MPEG-4 stream is DivX5 compatible, and +GOP size is 300 which means one intra frame every 10 seconds for 29.97fps +input video. Furthermore, the audio stream is MP3-encoded so you need +to enable LAME support by passing --enable-libmp3lame to configure. +The mapping is particularly useful for DVD transcoding +to get the desired audio language. +

    +

    NOTE: To see the supported input formats, use ffmpeg -formats. +

    +
  • +You can extract images from a video, or create a video from many images: + +

    For extracting images from a video: +

     
    ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg
    +
    + +

    This will extract one video frame per second from the video and will +output them in files named ‘foo-001.jpeg’, ‘foo-002.jpeg’, +etc. Images will be rescaled to fit the new WxH values. +

    +

    If you want to extract just a limited number of frames, you can use the +above command in combination with the -vframes or -t option, or in +combination with -ss to start extracting from a certain point in time. +

    +

    For creating a video from many images: +

     
    ffmpeg -f image2 -i foo-%03d.jpeg -r 12 -s WxH foo.avi
    +
    + +

    The syntax foo-%03d.jpeg specifies to use a decimal number +composed of three digits padded with zeroes to express the sequence +number. It is the same syntax supported by the C printf function, but +only formats accepting a normal integer are suitable. +

    +

    When importing an image sequence, -i also supports expanding +shell-like wildcard patterns (globbing) internally, by selecting the +image2-specific -pattern_type glob option. +

    +

    For example, for creating a video from filenames matching the glob pattern +foo-*.jpeg: +

     
    ffmpeg -f image2 -pattern_type glob -i 'foo-*.jpeg' -r 12 -s WxH foo.avi
    +
    + +
  • +You can put many streams of the same type in the output: + +
     
    ffmpeg -i test1.avi -i test2.avi -map 0:3 -map 0:2 -map 0:1 -map 0:0 -c copy test12.nut
    +
    + +

    The resulting output file ‘test12.avi’ will contain first four streams from +the input file in reverse order. +

    +
  • +To force CBR video output: +
     
    ffmpeg -i myfile.avi -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2v
    +
    + +
  • +The four options lmin, lmax, mblmin and mblmax use ’lambda’ units, +but you may use the QP2LAMBDA constant to easily convert from ’q’ units: +
     
    ffmpeg -i src.ext -lmax 21*QP2LAMBDA dst.ext
    +
    + +
+ + + +

8. See Also

+ +

ffmpeg-all, +ffplay, ffprobe, ffserver, +ffmpeg-utils, +ffmpeg-scaler, +ffmpeg-resampler, +ffmpeg-codecs, +ffmpeg-bitstream-filters, +ffmpeg-formats, +ffmpeg-devices, +ffmpeg-protocols, +ffmpeg-filters +

+ + +

9. Authors

+ +

The FFmpeg developers. +

+

For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +git log in the FFmpeg source directory, or browsing the +online repository at http://source.ffmpeg.org. +

+

Maintainers for the specific components are listed in the file +‘MAINTAINERS’ in the source code tree. +

+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/ffplay-all.html b/3-Postprocessing/ffmpeg/doc/ffplay-all.html new file mode 100644 index 0000000..7279a73 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/ffplay-all.html @@ -0,0 +1,19219 @@ + + + + + +FFmpeg documentation : ffplay + + + + + + + + + + +
+
+ + +

ffplay Documentation

+ + +

Table of Contents

+
+ + +
+ + +

1. Synopsis

+ +

ffplay [options] [‘input_file’] +

+ +

2. Description

+ +

FFplay is a very simple and portable media player using the FFmpeg +libraries and the SDL library. It is mostly used as a testbed for the +various FFmpeg APIs. +

+ +

3. Options

+ +

All the numerical options, if not specified otherwise, accept a string +representing a number as input, which may be followed by one of the SI +unit prefixes, for example: ’K’, ’M’, or ’G’. +

+

If ’i’ is appended to the SI unit prefix, the complete prefix will be +interpreted as a unit prefix for binary multiplies, which are based on +powers of 1024 instead of powers of 1000. Appending ’B’ to the SI unit +prefix multiplies the value by 8. This allows using, for example: +’KB’, ’MiB’, ’G’ and ’B’ as number suffixes. +

+

Options which do not take arguments are boolean options, and set the +corresponding value to true. They can be set to false by prefixing +the option name with "no". For example using "-nofoo" +will set the boolean option with name "foo" to false. +

+

+

+

3.1 Stream specifiers

+

Some options are applied per-stream, e.g. bitrate or codec. Stream specifiers +are used to precisely specify which stream(s) a given option belongs to. +

+

A stream specifier is a string generally appended to the option name and +separated from it by a colon. E.g. -codec:a:1 ac3 contains the +a:1 stream specifier, which matches the second audio stream. Therefore, it +would select the ac3 codec for the second audio stream. +

+

A stream specifier can match several streams, so that the option is applied to all +of them. E.g. the stream specifier in -b:a 128k matches all audio +streams. +

+

An empty stream specifier matches all streams. For example, -codec copy +or -codec: copy would copy all the streams without reencoding. +

+

Possible forms of stream specifiers are: +

+
stream_index
+

Matches the stream with this index. E.g. -threads:1 4 would set the +thread count for the second stream to 4. +

+
stream_type[:stream_index]
+

stream_type is one of following: ’v’ for video, ’a’ for audio, ’s’ for subtitle, +’d’ for data, and ’t’ for attachments. If stream_index is given, then it matches +stream number stream_index of this type. Otherwise, it matches all +streams of this type. +

+
p:program_id[:stream_index]
+

If stream_index is given, then it matches the stream with number stream_index +in the program with the id program_id. Otherwise, it matches all streams in the +program. +

+
#stream_id or i:stream_id
+

Match the stream by stream id (e.g. PID in MPEG-TS container). +

+
+ + +

3.2 Generic options

+ +

These options are shared amongst the ff* tools. +

+
+
-L
+

Show license. +

+
+
-h, -?, -help, --help [arg]
+

Show help. An optional parameter may be specified to print help about a specific +item. If no argument is specified, only basic (non advanced) tool +options are shown. +

+

Possible values of arg are: +

+
long
+

Print advanced tool options in addition to the basic tool options. +

+
+
full
+

Print complete list of options, including shared and private options +for encoders, decoders, demuxers, muxers, filters, etc. +

+
+
decoder=decoder_name
+

Print detailed information about the decoder named decoder_name. Use the +‘-decoders’ option to get a list of all decoders. +

+
+
encoder=encoder_name
+

Print detailed information about the encoder named encoder_name. Use the +‘-encoders’ option to get a list of all encoders. +

+
+
demuxer=demuxer_name
+

Print detailed information about the demuxer named demuxer_name. Use the +‘-formats’ option to get a list of all demuxers and muxers. +

+
+
muxer=muxer_name
+

Print detailed information about the muxer named muxer_name. Use the +‘-formats’ option to get a list of all muxers and demuxers. +

+
+
filter=filter_name
+

Print detailed information about the filter name filter_name. Use the +‘-filters’ option to get a list of all filters. +

+
+ +
+
-version
+

Show version. +

+
+
-formats
+

Show available formats. +

+
+
-codecs
+

Show all codecs known to libavcodec. +

+

Note that the term ’codec’ is used throughout this documentation as a shortcut +for what is more correctly called a media bitstream format. +

+
+
-decoders
+

Show available decoders. +

+
+
-encoders
+

Show all available encoders. +

+
+
-bsfs
+

Show available bitstream filters. +

+
+
-protocols
+

Show available protocols. +

+
+
-filters
+

Show available libavfilter filters. +

+
+
-pix_fmts
+

Show available pixel formats. +

+
+
-sample_fmts
+

Show available sample formats. +

+
+
-layouts
+

Show channel names and standard channel layouts. +

+
+
-colors
+

Show recognized color names. +

+
+
-loglevel [repeat+]loglevel | -v [repeat+]loglevel
+

Set the logging level used by the library. +Adding "repeat+" indicates that repeated log output should not be compressed +to the first line and the "Last message repeated n times" line will be +omitted. "repeat" can also be used alone. +If "repeat" is used alone, and with no prior loglevel set, the default +loglevel will be used. If multiple loglevel parameters are given, using +’repeat’ will not change the loglevel. +loglevel is a number or a string containing one of the following values: +

+
quiet
+

Show nothing at all; be silent. +

+
panic
+

Only show fatal errors which could lead the process to crash, such as +and assert failure. This is not currently used for anything. +

+
fatal
+

Only show fatal errors. These are errors after which the process absolutely +cannot continue after. +

+
error
+

Show all errors, including ones which can be recovered from. +

+
warning
+

Show all warnings and errors. Any message related to possibly +incorrect or unexpected events will be shown. +

+
info
+

Show informative messages during processing. This is in addition to +warnings and errors. This is the default value. +

+
verbose
+

Same as info, except more verbose. +

+
debug
+

Show everything, including debugging information. +

+
+ +

By default the program logs to stderr, if coloring is supported by the +terminal, colors are used to mark errors and warnings. Log coloring +can be disabled setting the environment variable +AV_LOG_FORCE_NOCOLOR or NO_COLOR, or can be forced setting +the environment variable AV_LOG_FORCE_COLOR. +The use of the environment variable NO_COLOR is deprecated and +will be dropped in a following FFmpeg version. +

+
+
-report
+

Dump full command line and console output to a file named +program-YYYYMMDD-HHMMSS.log in the current +directory. +This file can be useful for bug reports. +It also implies -loglevel verbose. +

+

Setting the environment variable FFREPORT to any value has the +same effect. If the value is a ’:’-separated key=value sequence, these +options will affect the report; options values must be escaped if they +contain special characters or the options delimiter ’:’ (see the +“Quoting and escaping” section in the ffmpeg-utils manual). The +following option is recognized: +

+
file
+

set the file name to use for the report; %p is expanded to the name +of the program, %t is expanded to a timestamp, %% is expanded +to a plain % +

+
+ +

Errors in parsing the environment variable are not fatal, and will not +appear in the report. +

+
+
-hide_banner
+

Suppress printing banner. +

+

All FFmpeg tools will normally show a copyright notice, build options +and library versions. This option can be used to suppress printing +this information. +

+
+
-cpuflags flags (global)
+

Allows setting and clearing cpu flags. This option is intended +for testing. Do not use it unless you know what you’re doing. +

 
ffmpeg -cpuflags -sse+mmx ...
+ffmpeg -cpuflags mmx ...
+ffmpeg -cpuflags 0 ...
+
+

Possible flags for this option are: +

+
x86
+
+
mmx
+
mmxext
+
sse
+
sse2
+
sse2slow
+
sse3
+
sse3slow
+
ssse3
+
atom
+
sse4.1
+
sse4.2
+
avx
+
xop
+
fma4
+
3dnow
+
3dnowext
+
cmov
+
+
+
ARM
+
+
armv5te
+
armv6
+
armv6t2
+
vfp
+
vfpv3
+
neon
+
+
+
PowerPC
+
+
altivec
+
+
+
Specific Processors
+
+
pentium2
+
pentium3
+
pentium4
+
k6
+
k62
+
athlon
+
athlonxp
+
k8
+
+
+
+ +
+
-opencl_bench
+

Benchmark all available OpenCL devices and show the results. This option +is only available when FFmpeg has been compiled with --enable-opencl. +

+
+
-opencl_options options (global)
+

Set OpenCL environment options. This option is only available when +FFmpeg has been compiled with --enable-opencl. +

+

options must be a list of key=value option pairs +separated by ’:’. See the “OpenCL Options” section in the +ffmpeg-utils manual for the list of supported options. +

+
+ + +

3.3 AVOptions

+ +

These options are provided directly by the libavformat, libavdevice and +libavcodec libraries. To see the list of available AVOptions, use the +‘-help’ option. They are separated into two categories: +

+
generic
+

These options can be set for any container, codec or device. Generic options +are listed under AVFormatContext options for containers/devices and under +AVCodecContext options for codecs. +

+
private
+

These options are specific to the given container, device or codec. Private +options are listed under their corresponding containers/devices/codecs. +

+
+ +

For example to write an ID3v2.3 header instead of a default ID3v2.4 to +an MP3 file, use the ‘id3v2_version’ private option of the MP3 +muxer: +

 
ffmpeg -i input.flac -id3v2_version 3 out.mp3
+
+ +

All codec AVOptions are per-stream, and thus a stream specifier +should be attached to them. +

+

Note: the ‘-nooption’ syntax cannot be used for boolean +AVOptions, use ‘-option 0’/‘-option 1’. +

+

Note: the old undocumented way of specifying per-stream AVOptions by +prepending v/a/s to the options name is now obsolete and will be +removed soon. +

+ +

3.4 Main options

+ +
+
-x width
+

Force displayed width. +

+
-y height
+

Force displayed height. +

+
-s size
+

Set frame size (WxH or abbreviation), needed for videos which do +not contain a header with the frame size like raw YUV. This option +has been deprecated in favor of private options, try -video_size. +

+
-an
+

Disable audio. +

+
-vn
+

Disable video. +

+
-ss pos
+

Seek to a given position in seconds. +

+
-t duration
+

play <duration> seconds of audio/video +

+
-bytes
+

Seek by bytes. +

+
-nodisp
+

Disable graphical display. +

+
-f fmt
+

Force format. +

+
-window_title title
+

Set window title (default is the input filename). +

+
-loop number
+

Loops movie playback <number> times. 0 means forever. +

+
-showmode mode
+

Set the show mode to use. +Available values for mode are: +

+
0, video
+

show video +

+
1, waves
+

show audio waves +

+
2, rdft
+

show audio frequency band using RDFT ((Inverse) Real Discrete Fourier Transform) +

+
+ +

Default value is "video", if video is not present or cannot be played +"rdft" is automatically selected. +

+

You can interactively cycle through the available show modes by +pressing the key <w>. +

+
+
-vf filtergraph
+

Create the filtergraph specified by filtergraph and use it to +filter the video stream. +

+

filtergraph is a description of the filtergraph to apply to +the stream, and must have a single video input and a single video +output. In the filtergraph, the input is associated to the label +in, and the output to the label out. See the +ffmpeg-filters manual for more information about the filtergraph +syntax. +

+
+
-af filtergraph
+

filtergraph is a description of the filtergraph to apply to +the input audio. +Use the option "-filters" to show all the available filters (including +sources and sinks). +

+
+
-i input_file
+

Read input_file. +

+
+ + +

3.5 Advanced options

+
+
-pix_fmt format
+

Set pixel format. +This option has been deprecated in favor of private options, try -pixel_format. +

+
+
-stats
+

Print several playback statistics, in particular show the stream +duration, the codec parameters, the current position in the stream and +the audio/video synchronisation drift. It is on by default, to +explicitly disable it you need to specify -nostats. +

+
+
-bug
+

Work around bugs. +

+
-fast
+

Non-spec-compliant optimizations. +

+
-genpts
+

Generate pts. +

+
-rtp_tcp
+

Force RTP/TCP protocol usage instead of RTP/UDP. It is only meaningful +if you are streaming with the RTSP protocol. +

+
-sync type
+

Set the master clock to audio (type=audio), video +(type=video) or external (type=ext). Default is audio. The +master clock is used to control audio-video synchronization. Most media +players use audio as master clock, but in some cases (streaming or high +quality broadcast) it is necessary to change that. This option is mainly +used for debugging purposes. +

+
-threads count
+

Set the thread count. +

+
-ast audio_stream_number
+

Select the desired audio stream number, counting from 0. The number +refers to the list of all the input audio streams. If it is greater +than the number of audio streams minus one, then the last one is +selected, if it is negative the audio playback is disabled. +

+
-vst video_stream_number
+

Select the desired video stream number, counting from 0. The number +refers to the list of all the input video streams. If it is greater +than the number of video streams minus one, then the last one is +selected, if it is negative the video playback is disabled. +

+
-sst subtitle_stream_number
+

Select the desired subtitle stream number, counting from 0. The number +refers to the list of all the input subtitle streams. If it is greater +than the number of subtitle streams minus one, then the last one is +selected, if it is negative the subtitle rendering is disabled. +

+
-autoexit
+

Exit when video is done playing. +

+
-exitonkeydown
+

Exit if any key is pressed. +

+
-exitonmousedown
+

Exit if any mouse button is pressed. +

+
+
-codec:media_specifier codec_name
+

Force a specific decoder implementation for the stream identified by +media_specifier, which can assume the values a (audio), +v (video), and s subtitle. +

+
+
-acodec codec_name
+

Force a specific audio decoder. +

+
+
-vcodec codec_name
+

Force a specific video decoder. +

+
+
-scodec codec_name
+

Force a specific subtitle decoder. +

+
+ + +

3.6 While playing

+ +
+
<q, ESC>
+

Quit. +

+
+
<f>
+

Toggle full screen. +

+
+
<p, SPC>
+

Pause. +

+
+
<a>
+

Cycle audio channel in the curret program. +

+
+
<v>
+

Cycle video channel. +

+
+
<t>
+

Cycle subtitle channel in the current program. +

+
+
<c>
+

Cycle program. +

+
+
<w>
+

Show audio waves. +

+
+
<s>
+

Step to the next frame. +

+

Pause if the stream is not already paused, step to the next video +frame, and pause. +

+
+
<left/right>
+

Seek backward/forward 10 seconds. +

+
+
<down/up>
+

Seek backward/forward 1 minute. +

+
+
<page down/page up>
+

Seek to the previous/next chapter. +or if there are no chapters +Seek backward/forward 10 minutes. +

+
+
<mouse click>
+

Seek to percentage in file corresponding to fraction of width. +

+
+
+ + + +

4. Syntax

+ +

This section documents the syntax and formats employed by the FFmpeg +libraries and tools. +

+

+

+

4.1 Quoting and escaping

+ +

FFmpeg adopts the following quoting and escaping mechanism, unless +explicitly specified. The following rules are applied: +

+
    +
  • +' and \ are special characters (respectively used for +quoting and escaping). In addition to them, there might be other +special characters depending on the specific syntax where the escaping +and quoting are employed. + +
  • +A special character is escaped by prefixing it with a ’\’. + +
  • +All characters enclosed between ” are included literally in the +parsed string. The quote character ' itself cannot be quoted, +so you may need to close the quote and escape it. + +
  • +Leading and trailing whitespaces, unless escaped or quoted, are +removed from the parsed string. +
+ +

Note that you may need to add a second level of escaping when using +the command line or a script, which depends on the syntax of the +adopted shell language. +

+

The function av_get_token defined in +‘libavutil/avstring.h’ can be used to parse a token quoted or +escaped according to the rules defined above. +

+

The tool ‘tools/ffescape’ in the FFmpeg source tree can be used +to automatically quote or escape a string in a script. +

+ +

4.1.1 Examples

+ +
    +
  • +Escape the string Crime d'Amour containing the ' special +character: +
     
    Crime d\'Amour
    +
    + +
  • +The string above contains a quote, so the ' needs to be escaped +when quoting it: +
     
    'Crime d'\''Amour'
    +
    + +
  • +Include leading or trailing whitespaces using quoting: +
     
    '  this string starts and ends with whitespaces  '
    +
    + +
  • +Escaping and quoting can be mixed together: +
     
    ' The string '\'string\'' is a string '
    +
    + +
  • +To include a literal \ you can use either escaping or quoting: +
     
    'c:\foo' can be written as c:\\foo
    +
    +
+ +

+

+

4.2 Date

+ +

The accepted syntax is: +

 
[(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z]
+now
+
+ +

If the value is "now" it takes the current time. +

+

Time is local time unless Z is appended, in which case it is +interpreted as UTC. +If the year-month-day part is not specified it takes the current +year-month-day. +

+

+

+

4.3 Time duration

+ +

There are two accepted syntaxes for expressing time duration. +

+
 
[-][HH:]MM:SS[.m...]
+
+ +

HH expresses the number of hours, MM the number of minutes +for a maximum of 2 digits, and SS the number of seconds for a +maximum of 2 digits. The m at the end expresses decimal value for +SS. +

+

or +

+
 
[-]S+[.m...]
+
+ +

S expresses the number of seconds, with the optional decimal part +m. +

+

In both expressions, the optional ‘-’ indicates negative duration. +

+ +

4.3.1 Examples

+ +

The following examples are all valid time duration: +

+
+
55
+

55 seconds +

+
+
12:03:45
+

12 hours, 03 minutes and 45 seconds +

+
+
23.189
+

23.189 seconds +

+
+ +

+

+

4.4 Video size

+

Specify the size of the sourced video, it may be a string of the form +widthxheight, or the name of a size abbreviation. +

+

The following abbreviations are recognized: +

+
ntsc
+

720x480 +

+
pal
+

720x576 +

+
qntsc
+

352x240 +

+
qpal
+

352x288 +

+
sntsc
+

640x480 +

+
spal
+

768x576 +

+
film
+

352x240 +

+
ntsc-film
+

352x240 +

+
sqcif
+

128x96 +

+
qcif
+

176x144 +

+
cif
+

352x288 +

+
4cif
+

704x576 +

+
16cif
+

1408x1152 +

+
qqvga
+

160x120 +

+
qvga
+

320x240 +

+
vga
+

640x480 +

+
svga
+

800x600 +

+
xga
+

1024x768 +

+
uxga
+

1600x1200 +

+
qxga
+

2048x1536 +

+
sxga
+

1280x1024 +

+
qsxga
+

2560x2048 +

+
hsxga
+

5120x4096 +

+
wvga
+

852x480 +

+
wxga
+

1366x768 +

+
wsxga
+

1600x1024 +

+
wuxga
+

1920x1200 +

+
woxga
+

2560x1600 +

+
wqsxga
+

3200x2048 +

+
wquxga
+

3840x2400 +

+
whsxga
+

6400x4096 +

+
whuxga
+

7680x4800 +

+
cga
+

320x200 +

+
ega
+

640x350 +

+
hd480
+

852x480 +

+
hd720
+

1280x720 +

+
hd1080
+

1920x1080 +

+
2k
+

2048x1080 +

+
2kflat
+

1998x1080 +

+
2kscope
+

2048x858 +

+
4k
+

4096x2160 +

+
4kflat
+

3996x2160 +

+
4kscope
+

4096x1716 +

+
nhd
+

640x360 +

+
hqvga
+

240x160 +

+
wqvga
+

400x240 +

+
fwqvga
+

432x240 +

+
hvga
+

480x320 +

+
qhd
+

960x540 +

+
+ +

+

+

4.5 Video rate

+ +

Specify the frame rate of a video, expressed as the number of frames +generated per second. It has to be a string in the format +frame_rate_num/frame_rate_den, an integer number, a float +number or a valid video frame rate abbreviation. +

+

The following abbreviations are recognized: +

+
ntsc
+

30000/1001 +

+
pal
+

25/1 +

+
qntsc
+

30000/1001 +

+
qpal
+

25/1 +

+
sntsc
+

30000/1001 +

+
spal
+

25/1 +

+
film
+

24/1 +

+
ntsc-film
+

24000/1001 +

+
+ +

+

+

4.6 Ratio

+ +

A ratio can be expressed as an expression, or in the form +numerator:denominator. +

+

Note that a ratio with infinite (1/0) or negative value is +considered valid, so you should check on the returned value if you +want to exclude those values. +

+

The undefined value can be expressed using the "0:0" string. +

+

+

+

4.7 Color

+ +

It can be the name of a color as defined below (case insensitive match) or a +[0x|#]RRGGBB[AA] sequence, possibly followed by @ and a string +representing the alpha component. +

+

The alpha component may be a string composed by "0x" followed by an +hexadecimal number or a decimal number between 0.0 and 1.0, which +represents the opacity value (‘0x00’ or ‘0.0’ means completely +transparent, ‘0xff’ or ‘1.0’ completely opaque). If the alpha +component is not specified then ‘0xff’ is assumed. +

+

The string ‘random’ will result in a random color. +

+

The following names of colors are recognized: +

+
AliceBlue
+

0xF0F8FF +

+
AntiqueWhite
+

0xFAEBD7 +

+
Aqua
+

0x00FFFF +

+
Aquamarine
+

0x7FFFD4 +

+
Azure
+

0xF0FFFF +

+
Beige
+

0xF5F5DC +

+
Bisque
+

0xFFE4C4 +

+
Black
+

0x000000 +

+
BlanchedAlmond
+

0xFFEBCD +

+
Blue
+

0x0000FF +

+
BlueViolet
+

0x8A2BE2 +

+
Brown
+

0xA52A2A +

+
BurlyWood
+

0xDEB887 +

+
CadetBlue
+

0x5F9EA0 +

+
Chartreuse
+

0x7FFF00 +

+
Chocolate
+

0xD2691E +

+
Coral
+

0xFF7F50 +

+
CornflowerBlue
+

0x6495ED +

+
Cornsilk
+

0xFFF8DC +

+
Crimson
+

0xDC143C +

+
Cyan
+

0x00FFFF +

+
DarkBlue
+

0x00008B +

+
DarkCyan
+

0x008B8B +

+
DarkGoldenRod
+

0xB8860B +

+
DarkGray
+

0xA9A9A9 +

+
DarkGreen
+

0x006400 +

+
DarkKhaki
+

0xBDB76B +

+
DarkMagenta
+

0x8B008B +

+
DarkOliveGreen
+

0x556B2F +

+
Darkorange
+

0xFF8C00 +

+
DarkOrchid
+

0x9932CC +

+
DarkRed
+

0x8B0000 +

+
DarkSalmon
+

0xE9967A +

+
DarkSeaGreen
+

0x8FBC8F +

+
DarkSlateBlue
+

0x483D8B +

+
DarkSlateGray
+

0x2F4F4F +

+
DarkTurquoise
+

0x00CED1 +

+
DarkViolet
+

0x9400D3 +

+
DeepPink
+

0xFF1493 +

+
DeepSkyBlue
+

0x00BFFF +

+
DimGray
+

0x696969 +

+
DodgerBlue
+

0x1E90FF +

+
FireBrick
+

0xB22222 +

+
FloralWhite
+

0xFFFAF0 +

+
ForestGreen
+

0x228B22 +

+
Fuchsia
+

0xFF00FF +

+
Gainsboro
+

0xDCDCDC +

+
GhostWhite
+

0xF8F8FF +

+
Gold
+

0xFFD700 +

+
GoldenRod
+

0xDAA520 +

+
Gray
+

0x808080 +

+
Green
+

0x008000 +

+
GreenYellow
+

0xADFF2F +

+
HoneyDew
+

0xF0FFF0 +

+
HotPink
+

0xFF69B4 +

+
IndianRed
+

0xCD5C5C +

+
Indigo
+

0x4B0082 +

+
Ivory
+

0xFFFFF0 +

+
Khaki
+

0xF0E68C +

+
Lavender
+

0xE6E6FA +

+
LavenderBlush
+

0xFFF0F5 +

+
LawnGreen
+

0x7CFC00 +

+
LemonChiffon
+

0xFFFACD +

+
LightBlue
+

0xADD8E6 +

+
LightCoral
+

0xF08080 +

+
LightCyan
+

0xE0FFFF +

+
LightGoldenRodYellow
+

0xFAFAD2 +

+
LightGreen
+

0x90EE90 +

+
LightGrey
+

0xD3D3D3 +

+
LightPink
+

0xFFB6C1 +

+
LightSalmon
+

0xFFA07A +

+
LightSeaGreen
+

0x20B2AA +

+
LightSkyBlue
+

0x87CEFA +

+
LightSlateGray
+

0x778899 +

+
LightSteelBlue
+

0xB0C4DE +

+
LightYellow
+

0xFFFFE0 +

+
Lime
+

0x00FF00 +

+
LimeGreen
+

0x32CD32 +

+
Linen
+

0xFAF0E6 +

+
Magenta
+

0xFF00FF +

+
Maroon
+

0x800000 +

+
MediumAquaMarine
+

0x66CDAA +

+
MediumBlue
+

0x0000CD +

+
MediumOrchid
+

0xBA55D3 +

+
MediumPurple
+

0x9370D8 +

+
MediumSeaGreen
+

0x3CB371 +

+
MediumSlateBlue
+

0x7B68EE +

+
MediumSpringGreen
+

0x00FA9A +

+
MediumTurquoise
+

0x48D1CC +

+
MediumVioletRed
+

0xC71585 +

+
MidnightBlue
+

0x191970 +

+
MintCream
+

0xF5FFFA +

+
MistyRose
+

0xFFE4E1 +

+
Moccasin
+

0xFFE4B5 +

+
NavajoWhite
+

0xFFDEAD +

+
Navy
+

0x000080 +

+
OldLace
+

0xFDF5E6 +

+
Olive
+

0x808000 +

+
OliveDrab
+

0x6B8E23 +

+
Orange
+

0xFFA500 +

+
OrangeRed
+

0xFF4500 +

+
Orchid
+

0xDA70D6 +

+
PaleGoldenRod
+

0xEEE8AA +

+
PaleGreen
+

0x98FB98 +

+
PaleTurquoise
+

0xAFEEEE +

+
PaleVioletRed
+

0xD87093 +

+
PapayaWhip
+

0xFFEFD5 +

+
PeachPuff
+

0xFFDAB9 +

+
Peru
+

0xCD853F +

+
Pink
+

0xFFC0CB +

+
Plum
+

0xDDA0DD +

+
PowderBlue
+

0xB0E0E6 +

+
Purple
+

0x800080 +

+
Red
+

0xFF0000 +

+
RosyBrown
+

0xBC8F8F +

+
RoyalBlue
+

0x4169E1 +

+
SaddleBrown
+

0x8B4513 +

+
Salmon
+

0xFA8072 +

+
SandyBrown
+

0xF4A460 +

+
SeaGreen
+

0x2E8B57 +

+
SeaShell
+

0xFFF5EE +

+
Sienna
+

0xA0522D +

+
Silver
+

0xC0C0C0 +

+
SkyBlue
+

0x87CEEB +

+
SlateBlue
+

0x6A5ACD +

+
SlateGray
+

0x708090 +

+
Snow
+

0xFFFAFA +

+
SpringGreen
+

0x00FF7F +

+
SteelBlue
+

0x4682B4 +

+
Tan
+

0xD2B48C +

+
Teal
+

0x008080 +

+
Thistle
+

0xD8BFD8 +

+
Tomato
+

0xFF6347 +

+
Turquoise
+

0x40E0D0 +

+
Violet
+

0xEE82EE +

+
Wheat
+

0xF5DEB3 +

+
White
+

0xFFFFFF +

+
WhiteSmoke
+

0xF5F5F5 +

+
Yellow
+

0xFFFF00 +

+
YellowGreen
+

0x9ACD32 +

+
+ +

+

+

4.8 Channel Layout

+ +

A channel layout specifies the spatial disposition of the channels in +a multi-channel audio stream. To specify a channel layout, FFmpeg +makes use of a special syntax. +

+

Individual channels are identified by an id, as given by the table +below: +

+
FL
+

front left +

+
FR
+

front right +

+
FC
+

front center +

+
LFE
+

low frequency +

+
BL
+

back left +

+
BR
+

back right +

+
FLC
+

front left-of-center +

+
FRC
+

front right-of-center +

+
BC
+

back center +

+
SL
+

side left +

+
SR
+

side right +

+
TC
+

top center +

+
TFL
+

top front left +

+
TFC
+

top front center +

+
TFR
+

top front right +

+
TBL
+

top back left +

+
TBC
+

top back center +

+
TBR
+

top back right +

+
DL
+

downmix left +

+
DR
+

downmix right +

+
WL
+

wide left +

+
WR
+

wide right +

+
SDL
+

surround direct left +

+
SDR
+

surround direct right +

+
LFE2
+

low frequency 2 +

+
+ +

Standard channel layout compositions can be specified by using the +following identifiers: +

+
mono
+

FC +

+
stereo
+

FL+FR +

+
2.1
+

FL+FR+LFE +

+
3.0
+

FL+FR+FC +

+
3.0(back)
+

FL+FR+BC +

+
4.0
+

FL+FR+FC+BC +

+
quad
+

FL+FR+BL+BR +

+
quad(side)
+

FL+FR+SL+SR +

+
3.1
+

FL+FR+FC+LFE +

+
5.0
+

FL+FR+FC+BL+BR +

+
5.0(side)
+

FL+FR+FC+SL+SR +

+
4.1
+

FL+FR+FC+LFE+BC +

+
5.1
+

FL+FR+FC+LFE+BL+BR +

+
5.1(side)
+

FL+FR+FC+LFE+SL+SR +

+
6.0
+

FL+FR+FC+BC+SL+SR +

+
6.0(front)
+

FL+FR+FLC+FRC+SL+SR +

+
hexagonal
+

FL+FR+FC+BL+BR+BC +

+
6.1
+

FL+FR+FC+LFE+BC+SL+SR +

+
6.1
+

FL+FR+FC+LFE+BL+BR+BC +

+
6.1(front)
+

FL+FR+LFE+FLC+FRC+SL+SR +

+
7.0
+

FL+FR+FC+BL+BR+SL+SR +

+
7.0(front)
+

FL+FR+FC+FLC+FRC+SL+SR +

+
7.1
+

FL+FR+FC+LFE+BL+BR+SL+SR +

+
7.1(wide)
+

FL+FR+FC+LFE+BL+BR+FLC+FRC +

+
7.1(wide-side)
+

FL+FR+FC+LFE+FLC+FRC+SL+SR +

+
octagonal
+

FL+FR+FC+BL+BR+BC+SL+SR +

+
downmix
+

DL+DR +

+
+ +

A custom channel layout can be specified as a sequence of terms, separated by +’+’ or ’|’. Each term can be: +

    +
  • +the name of a standard channel layout (e.g. ‘mono’, +‘stereo’, ‘4.0’, ‘quad’, ‘5.0’, etc.) + +
  • +the name of a single channel (e.g. ‘FL’, ‘FR’, ‘FC’, ‘LFE’, etc.) + +
  • +a number of channels, in decimal, optionally followed by ’c’, yielding +the default channel layout for that number of channels (see the +function av_get_default_channel_layout) + +
  • +a channel layout mask, in hexadecimal starting with "0x" (see the +AV_CH_* macros in ‘libavutil/channel_layout.h’. +
+ +

Starting from libavutil version 53 the trailing character "c" to +specify a number of channels will be required, while a channel layout +mask could also be specified as a decimal number (if and only if not +followed by "c"). +

+

See also the function av_get_channel_layout defined in +‘libavutil/channel_layout.h’. +

+ +

5. Expression Evaluation

+ +

When evaluating an arithmetic expression, FFmpeg uses an internal +formula evaluator, implemented through the ‘libavutil/eval.h’ +interface. +

+

An expression may contain unary, binary operators, constants, and +functions. +

+

Two expressions expr1 and expr2 can be combined to form +another expression "expr1;expr2". +expr1 and expr2 are evaluated in turn, and the new +expression evaluates to the value of expr2. +

+

The following binary operators are available: +, -, +*, /, ^. +

+

The following unary operators are available: +, -. +

+

The following functions are available: +

+
abs(x)
+

Compute absolute value of x. +

+
+
acos(x)
+

Compute arccosine of x. +

+
+
asin(x)
+

Compute arcsine of x. +

+
+
atan(x)
+

Compute arctangent of x. +

+
+
between(x, min, max)
+

Return 1 if x is greater than or equal to min and lesser than or +equal to max, 0 otherwise. +

+
+
bitand(x, y)
+
bitor(x, y)
+

Compute bitwise and/or operation on x and y. +

+

The results of the evaluation of x and y are converted to +integers before executing the bitwise operation. +

+

Note that both the conversion to integer and the conversion back to +floating point can lose precision. Beware of unexpected results for +large numbers (usually 2^53 and larger). +

+
+
ceil(expr)
+

Round the value of expression expr upwards to the nearest +integer. For example, "ceil(1.5)" is "2.0". +

+
+
cos(x)
+

Compute cosine of x. +

+
+
cosh(x)
+

Compute hyperbolic cosine of x. +

+
+
eq(x, y)
+

Return 1 if x and y are equivalent, 0 otherwise. +

+
+
exp(x)
+

Compute exponential of x (with base e, the Euler’s number). +

+
+
floor(expr)
+

Round the value of expression expr downwards to the nearest +integer. For example, "floor(-1.5)" is "-2.0". +

+
+
gauss(x)
+

Compute Gauss function of x, corresponding to +exp(-x*x/2) / sqrt(2*PI). +

+
+
gcd(x, y)
+

Return the greatest common divisor of x and y. If both x and +y are 0 or either or both are less than zero then behavior is undefined. +

+
+
gt(x, y)
+

Return 1 if x is greater than y, 0 otherwise. +

+
+
gte(x, y)
+

Return 1 if x is greater than or equal to y, 0 otherwise. +

+
+
hypot(x, y)
+

This function is similar to the C function with the same name; it returns +"sqrt(x*x + y*y)", the length of the hypotenuse of a +right triangle with sides of length x and y, or the distance of the +point (x, y) from the origin. +

+
+
if(x, y)
+

Evaluate x, and if the result is non-zero return the result of +the evaluation of y, return 0 otherwise. +

+
+
if(x, y, z)
+

Evaluate x, and if the result is non-zero return the evaluation +result of y, otherwise the evaluation result of z. +

+
+
ifnot(x, y)
+

Evaluate x, and if the result is zero return the result of the +evaluation of y, return 0 otherwise. +

+
+
ifnot(x, y, z)
+

Evaluate x, and if the result is zero return the evaluation +result of y, otherwise the evaluation result of z. +

+
+
isinf(x)
+

Return 1.0 if x is +/-INFINITY, 0.0 otherwise. +

+
+
isnan(x)
+

Return 1.0 if x is NAN, 0.0 otherwise. +

+
+
ld(var)
+

Allow to load the value of the internal variable with number +var, which was previously stored with st(var, expr). +The function returns the loaded value. +

+
+
log(x)
+

Compute natural logarithm of x. +

+
+
lt(x, y)
+

Return 1 if x is lesser than y, 0 otherwise. +

+
+
lte(x, y)
+

Return 1 if x is lesser than or equal to y, 0 otherwise. +

+
+
max(x, y)
+

Return the maximum between x and y. +

+
+
min(x, y)
+

Return the maximum between x and y. +

+
+
mod(x, y)
+

Compute the remainder of division of x by y. +

+
+
not(expr)
+

Return 1.0 if expr is zero, 0.0 otherwise. +

+
+
pow(x, y)
+

Compute the power of x elevated y, it is equivalent to +"(x)^(y)". +

+
+
print(t)
+
print(t, l)
+

Print the value of expression t with loglevel l. If +l is not specified then a default log level is used. +Returns the value of the expression printed. +

+

Prints t with loglevel l +

+
+
random(x)
+

Return a pseudo random value between 0.0 and 1.0. x is the index of the +internal variable which will be used to save the seed/state. +

+
+
root(expr, max)
+

Find an input value for which the function represented by expr +with argument ld(0) is 0 in the interval 0..max. +

+

The expression in expr must denote a continuous function or the +result is undefined. +

+

ld(0) is used to represent the function input value, which means +that the given expression will be evaluated multiple times with +various input values that the expression can access through +ld(0). When the expression evaluates to 0 then the +corresponding input value will be returned. +

+
+
sin(x)
+

Compute sine of x. +

+
+
sinh(x)
+

Compute hyperbolic sine of x. +

+
+
sqrt(expr)
+

Compute the square root of expr. This is equivalent to +"(expr)^.5". +

+
+
squish(x)
+

Compute expression 1/(1 + exp(4*x)). +

+
+
st(var, expr)
+

Allow to store the value of the expression expr in an internal +variable. var specifies the number of the variable where to +store the value, and it is a value ranging from 0 to 9. The function +returns the value stored in the internal variable. +Note, Variables are currently not shared between expressions. +

+
+
tan(x)
+

Compute tangent of x. +

+
+
tanh(x)
+

Compute hyperbolic tangent of x. +

+
+
taylor(expr, x)
+
taylor(expr, x, id)
+

Evaluate a Taylor series at x, given an expression representing +the ld(id)-th derivative of a function at 0. +

+

When the series does not converge the result is undefined. +

+

ld(id) is used to represent the derivative order in expr, +which means that the given expression will be evaluated multiple times +with various input values that the expression can access through +ld(id). If id is not specified then 0 is assumed. +

+

Note, when you have the derivatives at y instead of 0, +taylor(expr, x-y) can be used. +

+
+
time(0)
+

Return the current (wallclock) time in seconds. +

+
+
trunc(expr)
+

Round the value of expression expr towards zero to the nearest +integer. For example, "trunc(-1.5)" is "-1.0". +

+
+
while(cond, expr)
+

Evaluate expression expr while the expression cond is +non-zero, and returns the value of the last expr evaluation, or +NAN if cond was always false. +

+
+ +

The following constants are available: +

+
PI
+

area of the unit disc, approximately 3.14 +

+
E
+

exp(1) (Euler’s number), approximately 2.718 +

+
PHI
+

golden ratio (1+sqrt(5))/2, approximately 1.618 +

+
+ +

Assuming that an expression is considered "true" if it has a non-zero +value, note that: +

+

* works like AND +

+

+ works like OR +

+

For example the construct: +

 
if (A AND B) then C
+
+

is equivalent to: +

 
if(A*B, C)
+
+ +

In your C code, you can extend the list of unary and binary functions, +and define recognized constants, so that they are available for your +expressions. +

+

The evaluator also recognizes the International System unit prefixes. +If ’i’ is appended after the prefix, binary prefixes are used, which +are based on powers of 1024 instead of powers of 1000. +The ’B’ postfix multiplies the value by 8, and can be appended after a +unit prefix or used alone. This allows using for example ’KB’, ’MiB’, +’G’ and ’B’ as number postfix. +

+

The list of available International System prefixes follows, with +indication of the corresponding powers of 10 and of 2. +

+
y
+

10^-24 / 2^-80 +

+
z
+

10^-21 / 2^-70 +

+
a
+

10^-18 / 2^-60 +

+
f
+

10^-15 / 2^-50 +

+
p
+

10^-12 / 2^-40 +

+
n
+

10^-9 / 2^-30 +

+
u
+

10^-6 / 2^-20 +

+
m
+

10^-3 / 2^-10 +

+
c
+

10^-2 +

+
d
+

10^-1 +

+
h
+

10^2 +

+
k
+

10^3 / 2^10 +

+
K
+

10^3 / 2^10 +

+
M
+

10^6 / 2^20 +

+
G
+

10^9 / 2^30 +

+
T
+

10^12 / 2^40 +

+
P
+

10^15 / 2^40 +

+
E
+

10^18 / 2^50 +

+
Z
+

10^21 / 2^60 +

+
Y
+

10^24 / 2^70 +

+
+ + + +

6. OpenCL Options

+ +

When FFmpeg is configured with --enable-opencl, it is possible +to set the options for the global OpenCL context. +

+

The list of supported options follows: +

+
+
build_options
+

Set build options used to compile the registered kernels. +

+

See reference "OpenCL Specification Version: 1.2 chapter 5.6.4". +

+
+
platform_idx
+

Select the index of the platform to run OpenCL code. +

+

The specified index must be one of the indexes in the device list +which can be obtained with ffmpeg -opencl_bench or av_opencl_get_device_list(). +

+
+
device_idx
+

Select the index of the device used to run OpenCL code. +

+

The specified index must be one of the indexes in the device list which +can be obtained with ffmpeg -opencl_bench or av_opencl_get_device_list(). +

+
+
+ +

+

+

7. Codec Options

+ +

libavcodec provides some generic global options, which can be set on +all the encoders and decoders. In addition each codec may support +so-called private options, which are specific for a given codec. +

+

Sometimes, a global option may only affect a specific kind of codec, +and may be unsensical or ignored by another, so you need to be aware +of the meaning of the specified options. Also some options are +meant only for decoding or encoding. +

+

Options may be set by specifying -option value in the +FFmpeg tools, or by setting the value explicitly in the +AVCodecContext options or using the ‘libavutil/opt.h’ API +for programmatic use. +

+

The list of supported options follow: +

+
+
b integer (encoding,audio,video)
+

Set bitrate in bits/s. Default value is 200K. +

+
+
ab integer (encoding,audio)
+

Set audio bitrate (in bits/s). Default value is 128K. +

+
+
bt integer (encoding,video)
+

Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate +tolerance specifies how far ratecontrol is willing to deviate from the +target average bitrate value. This is not related to min/max +bitrate. Lowering tolerance too much has an adverse effect on quality. +

+
+
flags flags (decoding/encoding,audio,video,subtitles)
+

Set generic flags. +

+

Possible values: +

+
mv4
+

Use four motion vector by macroblock (mpeg4). +

+
qpel
+

Use 1/4 pel motion compensation. +

+
loop
+

Use loop filter. +

+
qscale
+

Use fixed qscale. +

+
gmc
+

Use gmc. +

+
mv0
+

Always try a mb with mv=<0,0>. +

+
input_preserved
+
pass1
+

Use internal 2pass ratecontrol in first pass mode. +

+
pass2
+

Use internal 2pass ratecontrol in second pass mode. +

+
gray
+

Only decode/encode grayscale. +

+
emu_edge
+

Do not draw edges. +

+
psnr
+

Set error[?] variables during encoding. +

+
truncated
+
naq
+

Normalize adaptive quantization. +

+
ildct
+

Use interlaced DCT. +

+
low_delay
+

Force low delay. +

+
global_header
+

Place global headers in extradata instead of every keyframe. +

+
bitexact
+

Use only bitexact stuff (except (I)DCT). +

+
aic
+

Apply H263 advanced intra coding / mpeg4 ac prediction. +

+
cbp
+

Deprecated, use mpegvideo private options instead. +

+
qprd
+

Deprecated, use mpegvideo private options instead. +

+
ilme
+

Apply interlaced motion estimation. +

+
cgop
+

Use closed gop. +

+
+ +
+
me_method integer (encoding,video)
+

Set motion estimation method. +

+

Possible values: +

+
zero
+

zero motion estimation (fastest) +

+
full
+

full motion estimation (slowest) +

+
epzs
+

EPZS motion estimation (default) +

+
esa
+

esa motion estimation (alias for full) +

+
tesa
+

tesa motion estimation +

+
dia
+

dia motion estimation (alias for epzs) +

+
log
+

log motion estimation +

+
phods
+

phods motion estimation +

+
x1
+

X1 motion estimation +

+
hex
+

hex motion estimation +

+
umh
+

umh motion estimation +

+
iter
+

iter motion estimation +

+
+ +
+
extradata_size integer
+

Set extradata size. +

+
+
time_base rational number
+

Set codec time base. +

+

It is the fundamental unit of time (in seconds) in terms of which +frame timestamps are represented. For fixed-fps content, timebase +should be 1 / frame_rate and timestamp increments should be +identically 1. +

+
+
g integer (encoding,video)
+

Set the group of picture size. Default value is 12. +

+
+
ar integer (decoding/encoding,audio)
+

Set audio sampling rate (in Hz). +

+
+
ac integer (decoding/encoding,audio)
+

Set number of audio channels. +

+
+
cutoff integer (encoding,audio)
+

Set cutoff bandwidth. +

+
+
frame_size integer (encoding,audio)
+

Set audio frame size. +

+

Each submitted frame except the last must contain exactly frame_size +samples per channel. May be 0 when the codec has +CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is not +restricted. It is set by some decoders to indicate constant frame +size. +

+
+
frame_number integer
+

Set the frame number. +

+
+
delay integer
+
qcomp float (encoding,video)
+

Set video quantizer scale compression (VBR). It is used as a constant +in the ratecontrol equation. Recommended range for default rc_eq: +0.0-1.0. +

+
+
qblur float (encoding,video)
+

Set video quantizer scale blur (VBR). +

+
+
qmin integer (encoding,video)
+

Set min video quantizer scale (VBR). Must be included between -1 and +69, default value is 2. +

+
+
qmax integer (encoding,video)
+

Set max video quantizer scale (VBR). Must be included between -1 and +1024, default value is 31. +

+
+
qdiff integer (encoding,video)
+

Set max difference between the quantizer scale (VBR). +

+
+
bf integer (encoding,video)
+

Set max number of B frames between non-B-frames. +

+

Must be an integer between -1 and 16. 0 means that B-frames are +disabled. If a value of -1 is used, it will choose an automatic value +depending on the encoder. +

+

Default value is 0. +

+
+
b_qfactor float (encoding,video)
+

Set qp factor between P and B frames. +

+
+
rc_strategy integer (encoding,video)
+

Set ratecontrol method. +

+
+
b_strategy integer (encoding,video)
+

Set strategy to choose between I/P/B-frames. +

+
+
ps integer (encoding,video)
+

Set RTP payload size in bytes. +

+
+
mv_bits integer
+
header_bits integer
+
i_tex_bits integer
+
p_tex_bits integer
+
i_count integer
+
p_count integer
+
skip_count integer
+
misc_bits integer
+
frame_bits integer
+
codec_tag integer
+
bug flags (decoding,video)
+

Workaround not auto detected encoder bugs. +

+

Possible values: +

+
autodetect
+
old_msmpeg4
+

some old lavc generated msmpeg4v3 files (no autodetection) +

+
xvid_ilace
+

Xvid interlacing bug (autodetected if fourcc==XVIX) +

+
ump4
+

(autodetected if fourcc==UMP4) +

+
no_padding
+

padding bug (autodetected) +

+
amv
+
ac_vlc
+

illegal vlc bug (autodetected per fourcc) +

+
qpel_chroma
+
std_qpel
+

old standard qpel (autodetected per fourcc/version) +

+
qpel_chroma2
+
direct_blocksize
+

direct-qpel-blocksize bug (autodetected per fourcc/version) +

+
edge
+

edge padding bug (autodetected per fourcc/version) +

+
hpel_chroma
+
dc_clip
+
ms
+

Workaround various bugs in microsoft broken decoders. +

+
trunc
+

trancated frames +

+
+ +
+
lelim integer (encoding,video)
+

Set single coefficient elimination threshold for luminance (negative +values also consider DC coefficient). +

+
+
celim integer (encoding,video)
+

Set single coefficient elimination threshold for chrominance (negative +values also consider dc coefficient) +

+
+
strict integer (decoding/encoding,audio,video)
+

Specify how strictly to follow the standards. +

+

Possible values: +

+
very
+

strictly conform to a older more strict version of the spec or reference software +

+
strict
+

strictly conform to all the things in the spec no matter what consequences +

+
normal
+
unofficial
+

allow unofficial extensions +

+
experimental
+

allow non standardized experimental things, experimental +(unfinished/work in progress/not well tested) decoders and encoders. +Note: experimental decoders can pose a security risk, do not use this for +decoding untrusted input. +

+
+ +
+
b_qoffset float (encoding,video)
+

Set QP offset between P and B frames. +

+
+
err_detect flags (decoding,audio,video)
+

Set error detection flags. +

+

Possible values: +

+
crccheck
+

verify embedded CRCs +

+
bitstream
+

detect bitstream specification deviations +

+
buffer
+

detect improper bitstream length +

+
explode
+

abort decoding on minor error detection +

+
careful
+

consider things that violate the spec and have not been seen in the wild as errors +

+
compliant
+

consider all spec non compliancies as errors +

+
aggressive
+

consider things that a sane encoder should not do as an error +

+
+ +
+
has_b_frames integer
+
block_align integer
+
mpeg_quant integer (encoding,video)
+

Use MPEG quantizers instead of H.263. +

+
+
qsquish float (encoding,video)
+

How to keep quantizer between qmin and qmax (0 = clip, 1 = use +differentiable function). +

+
+
rc_qmod_amp float (encoding,video)
+

Set experimental quantizer modulation. +

+
+
rc_qmod_freq integer (encoding,video)
+

Set experimental quantizer modulation. +

+
+
rc_override_count integer
+
rc_eq string (encoding,video)
+

Set rate control equation. When computing the expression, besides the +standard functions defined in the section ’Expression Evaluation’, the +following functions are available: bits2qp(bits), qp2bits(qp). Also +the following constants are available: iTex pTex tex mv fCode iCount +mcVar var isI isP isB avgQP qComp avgIITex avgPITex avgPPTex avgBPTex +avgTex. +

+
+
maxrate integer (encoding,audio,video)
+

Set max bitrate tolerance (in bits/s). Requires bufsize to be set. +

+
+
minrate integer (encoding,audio,video)
+

Set min bitrate tolerance (in bits/s). Most useful in setting up a CBR +encode. It is of little use elsewise. +

+
+
bufsize integer (encoding,audio,video)
+

Set ratecontrol buffer size (in bits). +

+
+
rc_buf_aggressivity float (encoding,video)
+

Currently useless. +

+
+
i_qfactor float (encoding,video)
+

Set QP factor between P and I frames. +

+
+
i_qoffset float (encoding,video)
+

Set QP offset between P and I frames. +

+
+
rc_init_cplx float (encoding,video)
+

Set initial complexity for 1-pass encoding. +

+
+
dct integer (encoding,video)
+

Set DCT algorithm. +

+

Possible values: +

+
auto
+

autoselect a good one (default) +

+
fastint
+

fast integer +

+
int
+

accurate integer +

+
mmx
+
altivec
+
faan
+

floating point AAN DCT +

+
+ +
+
lumi_mask float (encoding,video)
+

Compress bright areas stronger than medium ones. +

+
+
tcplx_mask float (encoding,video)
+

Set temporal complexity masking. +

+
+
scplx_mask float (encoding,video)
+

Set spatial complexity masking. +

+
+
p_mask float (encoding,video)
+

Set inter masking. +

+
+
dark_mask float (encoding,video)
+

Compress dark areas stronger than medium ones. +

+
+
idct integer (decoding/encoding,video)
+

Select IDCT implementation. +

+

Possible values: +

+
auto
+
int
+
simple
+
simplemmx
+
arm
+
altivec
+
sh4
+
simplearm
+
simplearmv5te
+
simplearmv6
+
simpleneon
+
simplealpha
+
ipp
+
xvidmmx
+
faani
+

floating point AAN IDCT +

+
+ +
+
slice_count integer
+
ec flags (decoding,video)
+

Set error concealment strategy. +

+

Possible values: +

+
guess_mvs
+

iterative motion vector (MV) search (slow) +

+
deblock
+

use strong deblock filter for damaged MBs +

+
+ +
+
bits_per_coded_sample integer
+
pred integer (encoding,video)
+

Set prediction method. +

+

Possible values: +

+
left
+
plane
+
median
+
+ +
+
aspect rational number (encoding,video)
+

Set sample aspect ratio. +

+
+
debug flags (decoding/encoding,audio,video,subtitles)
+

Print specific debug info. +

+

Possible values: +

+
pict
+

picture info +

+
rc
+

rate control +

+
bitstream
+
mb_type
+

macroblock (MB) type +

+
qp
+

per-block quantization parameter (QP) +

+
mv
+

motion vector +

+
dct_coeff
+
skip
+
startcode
+
pts
+
er
+

error recognition +

+
mmco
+

memory management control operations (H.264) +

+
bugs
+
vis_qp
+

visualize quantization parameter (QP), lower QP are tinted greener +

+
vis_mb_type
+

visualize block types +

+
buffers
+

picture buffer allocations +

+
thread_ops
+

threading operations +

+
+ +
+
vismv integer (decoding,video)
+

Visualize motion vectors (MVs). +

+

Possible values: +

+
pf
+

forward predicted MVs of P-frames +

+
bf
+

forward predicted MVs of B-frames +

+
bb
+

backward predicted MVs of B-frames +

+
+ +
+
cmp integer (encoding,video)
+

Set full pel me compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
subcmp integer (encoding,video)
+

Set sub pel me compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
mbcmp integer (encoding,video)
+

Set macroblock compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
ildctcmp integer (encoding,video)
+

Set interlaced dct compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
dia_size integer (encoding,video)
+

Set diamond type & size for motion estimation. +

+
+
last_pred integer (encoding,video)
+

Set amount of motion predictors from the previous frame. +

+
+
preme integer (encoding,video)
+

Set pre motion estimation. +

+
+
precmp integer (encoding,video)
+

Set pre motion estimation compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
pre_dia_size integer (encoding,video)
+

Set diamond type & size for motion estimation pre-pass. +

+
+
subq integer (encoding,video)
+

Set sub pel motion estimation quality. +

+
+
dtg_active_format integer
+
me_range integer (encoding,video)
+

Set limit motion vectors range (1023 for DivX player). +

+
+
ibias integer (encoding,video)
+

Set intra quant bias. +

+
+
pbias integer (encoding,video)
+

Set inter quant bias. +

+
+
color_table_id integer
+
global_quality integer (encoding,audio,video)
+
coder integer (encoding,video)
+
+

Possible values: +

+
vlc
+

variable length coder / huffman coder +

+
ac
+

arithmetic coder +

+
raw
+

raw (no encoding) +

+
rle
+

run-length coder +

+
deflate
+

deflate-based coder +

+
+ +
+
context integer (encoding,video)
+

Set context model. +

+
+
slice_flags integer
+
xvmc_acceleration integer
+
mbd integer (encoding,video)
+

Set macroblock decision algorithm (high quality mode). +

+

Possible values: +

+
simple
+

use mbcmp (default) +

+
bits
+

use fewest bits +

+
rd
+

use best rate distortion +

+
+ +
+
stream_codec_tag integer
+
sc_threshold integer (encoding,video)
+

Set scene change threshold. +

+
+
lmin integer (encoding,video)
+

Set min lagrange factor (VBR). +

+
+
lmax integer (encoding,video)
+

Set max lagrange factor (VBR). +

+
+
nr integer (encoding,video)
+

Set noise reduction. +

+
+
rc_init_occupancy integer (encoding,video)
+

Set number of bits which should be loaded into the rc buffer before +decoding starts. +

+
+
flags2 flags (decoding/encoding,audio,video)
+
+

Possible values: +

+
fast
+

Allow non spec compliant speedup tricks. +

+
sgop
+

Deprecated, use mpegvideo private options instead. +

+
noout
+

Skip bitstream encoding. +

+
ignorecrop
+

Ignore cropping information from sps. +

+
local_header
+

Place global headers at every keyframe instead of in extradata. +

+
chunks
+

Frame data might be split into multiple chunks. +

+
showall
+

Show all frames before the first keyframe. +

+
skiprd
+

Deprecated, use mpegvideo private options instead. +

+
+ +
+
error integer (encoding,video)
+
qns integer (encoding,video)
+

Deprecated, use mpegvideo private options instead. +

+
+
threads integer (decoding/encoding,video)
+
+

Possible values: +

+
auto
+

detect a good number of threads +

+
+ +
+
me_threshold integer (encoding,video)
+

Set motion estimation threshold. +

+
+
mb_threshold integer (encoding,video)
+

Set macroblock threshold. +

+
+
dc integer (encoding,video)
+

Set intra_dc_precision. +

+
+
nssew integer (encoding,video)
+

Set nsse weight. +

+
+
skip_top integer (decoding,video)
+

Set number of macroblock rows at the top which are skipped. +

+
+
skip_bottom integer (decoding,video)
+

Set number of macroblock rows at the bottom which are skipped. +

+
+
profile integer (encoding,audio,video)
+
+

Possible values: +

+
unknown
+
aac_main
+
aac_low
+
aac_ssr
+
aac_ltp
+
aac_he
+
aac_he_v2
+
aac_ld
+
aac_eld
+
mpeg2_aac_low
+
mpeg2_aac_he
+
dts
+
dts_es
+
dts_96_24
+
dts_hd_hra
+
dts_hd_ma
+
+ +
+
level integer (encoding,audio,video)
+
+

Possible values: +

+
unknown
+
+ +
+
lowres integer (decoding,audio,video)
+

Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions. +

+
+
skip_threshold integer (encoding,video)
+

Set frame skip threshold. +

+
+
skip_factor integer (encoding,video)
+

Set frame skip factor. +

+
+
skip_exp integer (encoding,video)
+

Set frame skip exponent. +Negative values behave identical to the corresponding positive ones, except +that the score is normalized. +Positive values exist primarly for compatibility reasons and are not so useful. +

+
+
skipcmp integer (encoding,video)
+

Set frame skip compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
border_mask float (encoding,video)
+

Increase the quantizer for macroblocks close to borders. +

+
+
mblmin integer (encoding,video)
+

Set min macroblock lagrange factor (VBR). +

+
+
mblmax integer (encoding,video)
+

Set max macroblock lagrange factor (VBR). +

+
+
mepc integer (encoding,video)
+

Set motion estimation bitrate penalty compensation (1.0 = 256). +

+
+
skip_loop_filter integer (decoding,video)
+
skip_idct integer (decoding,video)
+
skip_frame integer (decoding,video)
+
+

Make decoder discard processing depending on the frame type selected +by the option value. +

+

skip_loop_filter’ skips frame loop filtering, ‘skip_idct’ +skips frame IDCT/dequantization, ‘skip_frame’ skips decoding. +

+

Possible values: +

+
none
+

Discard no frame. +

+
+
default
+

Discard useless frames like 0-sized frames. +

+
+
noref
+

Discard all non-reference frames. +

+
+
bidir
+

Discard all bidirectional frames. +

+
+
nokey
+

Discard all frames excepts keyframes. +

+
+
all
+

Discard all frames. +

+
+ +

Default value is ‘default’. +

+
+
bidir_refine integer (encoding,video)
+

Refine the two motion vectors used in bidirectional macroblocks. +

+
+
brd_scale integer (encoding,video)
+

Downscale frames for dynamic B-frame decision. +

+
+
keyint_min integer (encoding,video)
+

Set minimum interval between IDR-frames. +

+
+
refs integer (encoding,video)
+

Set reference frames to consider for motion compensation. +

+
+
chromaoffset integer (encoding,video)
+

Set chroma qp offset from luma. +

+
+
trellis integer (encoding,audio,video)
+

Set rate-distortion optimal quantization. +

+
+
sc_factor integer (encoding,video)
+

Set value multiplied by qscale for each frame and added to +scene_change_score. +

+
+
mv0_threshold integer (encoding,video)
+
b_sensitivity integer (encoding,video)
+

Adjust sensitivity of b_frame_strategy 1. +

+
+
compression_level integer (encoding,audio,video)
+
min_prediction_order integer (encoding,audio)
+
max_prediction_order integer (encoding,audio)
+
timecode_frame_start integer (encoding,video)
+

Set GOP timecode frame start number, in non drop frame format. +

+
+
request_channels integer (decoding,audio)
+

Set desired number of audio channels. +

+
+
bits_per_raw_sample integer
+
channel_layout integer (decoding/encoding,audio)
+
+

Possible values: +

+
request_channel_layout integer (decoding,audio)
+
+

Possible values: +

+
rc_max_vbv_use float (encoding,video)
+
rc_min_vbv_use float (encoding,video)
+
ticks_per_frame integer (decoding/encoding,audio,video)
+
color_primaries integer (decoding/encoding,video)
+
color_trc integer (decoding/encoding,video)
+
colorspace integer (decoding/encoding,video)
+
color_range integer (decoding/encoding,video)
+
chroma_sample_location integer (decoding/encoding,video)
+
log_level_offset integer
+

Set the log level offset. +

+
+
slices integer (encoding,video)
+

Number of slices, used in parallelized encoding. +

+
+
thread_type flags (decoding/encoding,video)
+

Select multithreading type. +

+

Possible values: +

+
slice
+
frame
+
+
+
audio_service_type integer (encoding,audio)
+

Set audio service type. +

+

Possible values: +

+
ma
+

Main Audio Service +

+
ef
+

Effects +

+
vi
+

Visually Impaired +

+
hi
+

Hearing Impaired +

+
di
+

Dialogue +

+
co
+

Commentary +

+
em
+

Emergency +

+
vo
+

Voice Over +

+
ka
+

Karaoke +

+
+ +
+
request_sample_fmt sample_fmt (decoding,audio)
+

Set sample format audio decoders should prefer. Default value is +none. +

+
+
pkt_timebase rational number
+
sub_charenc encoding (decoding,subtitles)
+

Set the input subtitles character encoding. +

+
+
field_order field_order (video)
+

Set/override the field order of the video. +Possible values: +

+
progressive
+

Progressive video +

+
tt
+

Interlaced video, top field coded and displayed first +

+
bb
+

Interlaced video, bottom field coded and displayed first +

+
tb
+

Interlaced video, top coded first, bottom displayed first +

+
bt
+

Interlaced video, bottom coded first, top displayed first +

+
+ +
+
skip_alpha integer (decoding,video)
+

Set to 1 to disable processing alpha (transparency). This works like the +‘gray’ flag in the ‘flags’ option which skips chroma information +instead of alpha. Default is 0. +

+
+ + + +

8. Decoders

+ +

Decoders are configured elements in FFmpeg which allow the decoding of +multimedia streams. +

+

When you configure your FFmpeg build, all the supported native decoders +are enabled by default. Decoders requiring an external library must be enabled +manually via the corresponding --enable-lib option. You can list all +available decoders using the configure option --list-decoders. +

+

You can disable all the decoders with the configure option +--disable-decoders and selectively enable / disable single decoders +with the options --enable-decoder=DECODER / +--disable-decoder=DECODER. +

+

The option -decoders of the ff* tools will display the list of +enabled decoders. +

+ + +

9. Video Decoders

+ +

A description of some of the currently available video decoders +follows. +

+ +

9.1 rawvideo

+ +

Raw video decoder. +

+

This decoder decodes rawvideo streams. +

+ +

9.1.1 Options

+ +
+
top top_field_first
+

Specify the assumed field type of the input video. +

+
-1
+

the video is assumed to be progressive (default) +

+
0
+

bottom-field-first is assumed +

+
1
+

top-field-first is assumed +

+
+ +
+
+ + + +

10. Audio Decoders

+ +

A description of some of the currently available audio decoders +follows. +

+ +

10.1 ac3

+ +

AC-3 audio decoder. +

+

This decoder implements part of ATSC A/52:2010 and ETSI TS 102 366, as well as +the undocumented RealAudio 3 (a.k.a. dnet). +

+ +

10.1.1 AC-3 Decoder Options

+ +
+
-drc_scale value
+

Dynamic Range Scale Factor. The factor to apply to dynamic range values +from the AC-3 stream. This factor is applied exponentially. +There are 3 notable scale factor ranges: +

+
drc_scale == 0
+

DRC disabled. Produces full range audio. +

+
0 < drc_scale <= 1
+

DRC enabled. Applies a fraction of the stream DRC value. +Audio reproduction is between full range and full compression. +

+
drc_scale > 1
+

DRC enabled. Applies drc_scale asymmetrically. +Loud sounds are fully compressed. Soft sounds are enhanced. +

+
+ +
+
+ + +

10.2 ffwavesynth

+ +

Internal wave synthetizer. +

+

This decoder generates wave patterns according to predefined sequences. Its +use is purely internal and the format of the data it accepts is not publicly +documented. +

+ +

10.3 libcelt

+ +

libcelt decoder wrapper. +

+

libcelt allows libavcodec to decode the Xiph CELT ultra-low delay audio codec. +Requires the presence of the libcelt headers and library during configuration. +You need to explicitly configure the build with --enable-libcelt. +

+ +

10.4 libgsm

+ +

libgsm decoder wrapper. +

+

libgsm allows libavcodec to decode the GSM full rate audio codec. Requires +the presence of the libgsm headers and library during configuration. You need +to explicitly configure the build with --enable-libgsm. +

+

This decoder supports both the ordinary GSM and the Microsoft variant. +

+ +

10.5 libilbc

+ +

libilbc decoder wrapper. +

+

libilbc allows libavcodec to decode the Internet Low Bitrate Codec (iLBC) +audio codec. Requires the presence of the libilbc headers and library during +configuration. You need to explicitly configure the build with +--enable-libilbc. +

+ +

10.5.1 Options

+ +

The following option is supported by the libilbc wrapper. +

+
+
enhance
+
+

Enable the enhancement of the decoded audio when set to 1. The default +value is 0 (disabled). +

+
+
+ + +

10.6 libopencore-amrnb

+ +

libopencore-amrnb decoder wrapper. +

+

libopencore-amrnb allows libavcodec to decode the Adaptive Multi-Rate +Narrowband audio codec. Using it requires the presence of the +libopencore-amrnb headers and library during configuration. You need to +explicitly configure the build with --enable-libopencore-amrnb. +

+

An FFmpeg native decoder for AMR-NB exists, so users can decode AMR-NB +without this library. +

+ +

10.7 libopencore-amrwb

+ +

libopencore-amrwb decoder wrapper. +

+

libopencore-amrwb allows libavcodec to decode the Adaptive Multi-Rate +Wideband audio codec. Using it requires the presence of the +libopencore-amrwb headers and library during configuration. You need to +explicitly configure the build with --enable-libopencore-amrwb. +

+

An FFmpeg native decoder for AMR-WB exists, so users can decode AMR-WB +without this library. +

+ +

10.8 libopus

+ +

libopus decoder wrapper. +

+

libopus allows libavcodec to decode the Opus Interactive Audio Codec. +Requires the presence of the libopus headers and library during +configuration. You need to explicitly configure the build with +--enable-libopus. +

+ + +

11. Subtitles Decoders

+ + +

11.1 dvdsub

+ +

This codec decodes the bitmap subtitles used in DVDs; the same subtitles can +also be found in VobSub file pairs and in some Matroska files. +

+ +

11.1.1 Options

+ +
+
palette
+

Specify the global palette used by the bitmaps. When stored in VobSub, the +palette is normally specified in the index file; in Matroska, the palette is +stored in the codec extra-data in the same format as in VobSub. In DVDs, the +palette is stored in the IFO file, and therefore not available when reading +from dumped VOB files. +

+

The format for this option is a string containing 16 24-bits hexadecimal +numbers (without 0x prefix) separated by comas, for example 0d00ee, +ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b, 0d617a, 7b7b7b, d1d1d1, +7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c, 7c127b. +

+
+ + +

11.2 libzvbi-teletext

+ +

Libzvbi allows libavcodec to decode DVB teletext pages and DVB teletext +subtitles. Requires the presence of the libzvbi headers and library during +configuration. You need to explicitly configure the build with +--enable-libzvbi. +

+ +

11.2.1 Options

+ +
+
txt_page
+

List of teletext page numbers to decode. You may use the special * string to +match all pages. Pages that do not match the specified list are dropped. +Default value is *. +

+
txt_chop_top
+

Discards the top teletext line. Default value is 1. +

+
txt_format
+

Specifies the format of the decoded subtitles. The teletext decoder is capable +of decoding the teletext pages to bitmaps or to simple text, you should use +"bitmap" for teletext pages, because certain graphics and colors cannot be +expressed in simple text. You might use "text" for teletext based subtitles if +your application can handle simple text based subtitles. Default value is +bitmap. +

+
txt_left
+

X offset of generated bitmaps, default is 0. +

+
txt_top
+

Y offset of generated bitmaps, default is 0. +

+
txt_chop_spaces
+

Chops leading and trailing spaces and removes empty lines from the generated +text. This option is useful for teletext based subtitles where empty spaces may +be present at the start or at the end of the lines or empty lines may be +present between the subtitle lines because of double-sized teletext charactes. +Default value is 1. +

+
txt_duration
+

Sets the display duration of the decoded teletext pages or subtitles in +miliseconds. Default value is 30000 which is 30 seconds. +

+
txt_transparent
+

Force transparent background of the generated teletext bitmaps. Default value +is 0 which means an opaque (black) background. +

+
+ + +

12. Bitstream Filters

+ +

When you configure your FFmpeg build, all the supported bitstream +filters are enabled by default. You can list all available ones using +the configure option --list-bsfs. +

+

You can disable all the bitstream filters using the configure option +--disable-bsfs, and selectively enable any bitstream filter using +the option --enable-bsf=BSF, or you can disable a particular +bitstream filter using the option --disable-bsf=BSF. +

+

The option -bsfs of the ff* tools will display the list of +all the supported bitstream filters included in your build. +

+

Below is a description of the currently available bitstream filters. +

+ +

12.1 aac_adtstoasc

+ +

Convert MPEG-2/4 AAC ADTS to MPEG-4 Audio Specific Configuration +bitstream filter. +

+

This filter creates an MPEG-4 AudioSpecificConfig from an MPEG-2/4 +ADTS header and removes the ADTS header. +

+

This is required for example when copying an AAC stream from a raw +ADTS AAC container to a FLV or a MOV/MP4 file. +

+ +

12.2 chomp

+ +

Remove zero padding at the end of a packet. +

+ +

12.3 dump_extra

+ +

Add extradata to the beginning of the filtered packets. +

+

The additional argument specifies which packets should be filtered. +It accepts the values: +

+
a
+

add extradata to all key packets, but only if local_header is +set in the ‘flags2’ codec context field +

+
+
k
+

add extradata to all key packets +

+
+
e
+

add extradata to all packets +

+
+ +

If not specified it is assumed ‘k’. +

+

For example the following ffmpeg command forces a global +header (thus disabling individual packet headers) in the H.264 packets +generated by the libx264 encoder, but corrects them by adding +the header stored in extradata to the key packets: +

 
ffmpeg -i INPUT -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra out.ts
+
+ + +

12.4 h264_mp4toannexb

+ +

Convert an H.264 bitstream from length prefixed mode to start code +prefixed mode (as defined in the Annex B of the ITU-T H.264 +specification). +

+

This is required by some streaming formats, typically the MPEG-2 +transport stream format ("mpegts"). +

+

For example to remux an MP4 file containing an H.264 stream to mpegts +format with ffmpeg, you can use the command: +

+
 
ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264_mp4toannexb OUTPUT.ts
+
+ + +

12.5 imx_dump_header

+ + +

12.6 mjpeg2jpeg

+ +

Convert MJPEG/AVI1 packets to full JPEG/JFIF packets. +

+

MJPEG is a video codec wherein each video frame is essentially a +JPEG image. The individual frames can be extracted without loss, +e.g. by +

+
 
ffmpeg -i ../some_mjpeg.avi -c:v copy frames_%d.jpg
+
+ +

Unfortunately, these chunks are incomplete JPEG images, because +they lack the DHT segment required for decoding. Quoting from +http://www.digitalpreservation.gov/formats/fdd/fdd000063.shtml: +

+

Avery Lee, writing in the rec.video.desktop newsgroup in 2001, +commented that "MJPEG, or at least the MJPEG in AVIs having the +MJPG fourcc, is restricted JPEG with a fixed – and *omitted* – +Huffman table. The JPEG must be YCbCr colorspace, it must be 4:2:2, +and it must use basic Huffman encoding, not arithmetic or +progressive. . . . You can indeed extract the MJPEG frames and +decode them with a regular JPEG decoder, but you have to prepend +the DHT segment to them, or else the decoder won’t have any idea +how to decompress the data. The exact table necessary is given in +the OpenDML spec." +

+

This bitstream filter patches the header of frames extracted from an MJPEG +stream (carrying the AVI1 header ID and lacking a DHT segment) to +produce fully qualified JPEG images. +

+
 
ffmpeg -i mjpeg-movie.avi -c:v copy -bsf:v mjpeg2jpeg frame_%d.jpg
+exiftran -i -9 frame*.jpg
+ffmpeg -i frame_%d.jpg -c:v copy rotated.avi
+
+ + +

12.7 mjpega_dump_header

+ + +

12.8 movsub

+ + +

12.9 mp3_header_decompress

+ + +

12.10 noise

+ + +

12.11 remove_extra

+ + +

13. Format Options

+ +

The libavformat library provides some generic global options, which +can be set on all the muxers and demuxers. In addition each muxer or +demuxer may support so-called private options, which are specific for +that component. +

+

Options may be set by specifying -option value in the +FFmpeg tools, or by setting the value explicitly in the +AVFormatContext options or using the ‘libavutil/opt.h’ API +for programmatic use. +

+

The list of supported options follows: +

+
+
avioflags flags (input/output)
+

Possible values: +

+
direct
+

Reduce buffering. +

+
+ +
+
probesize integer (input)
+

Set probing size in bytes, i.e. the size of the data to analyze to get +stream information. A higher value will allow to detect more +information in case it is dispersed into the stream, but will increase +latency. Must be an integer not lesser than 32. It is 5000000 by default. +

+
+
packetsize integer (output)
+

Set packet size. +

+
+
fflags flags (input/output)
+

Set format flags. +

+

Possible values: +

+
ignidx
+

Ignore index. +

+
genpts
+

Generate PTS. +

+
nofillin
+

Do not fill in missing values that can be exactly calculated. +

+
noparse
+

Disable AVParsers, this needs +nofillin too. +

+
igndts
+

Ignore DTS. +

+
discardcorrupt
+

Discard corrupted frames. +

+
sortdts
+

Try to interleave output packets by DTS. +

+
keepside
+

Do not merge side data. +

+
latm
+

Enable RTP MP4A-LATM payload. +

+
nobuffer
+

Reduce the latency introduced by optional buffering +

+
+ +
+
seek2any integer (input)
+

Allow seeking to non-keyframes on demuxer level when supported if set to 1. +Default is 0. +

+
+
analyzeduration integer (input)
+

Specify how many microseconds are analyzed to probe the input. A +higher value will allow to detect more accurate information, but will +increase latency. It defaults to 5,000,000 microseconds = 5 seconds. +

+
+
cryptokey hexadecimal string (input)
+

Set decryption key. +

+
+
indexmem integer (input)
+

Set max memory used for timestamp index (per stream). +

+
+
rtbufsize integer (input)
+

Set max memory used for buffering real-time frames. +

+
+
fdebug flags (input/output)
+

Print specific debug info. +

+

Possible values: +

+
ts
+
+ +
+
max_delay integer (input/output)
+

Set maximum muxing or demuxing delay in microseconds. +

+
+
fpsprobesize integer (input)
+

Set number of frames used to probe fps. +

+
+
audio_preload integer (output)
+

Set microseconds by which audio packets should be interleaved earlier. +

+
+
chunk_duration integer (output)
+

Set microseconds for each chunk. +

+
+
chunk_size integer (output)
+

Set size in bytes for each chunk. +

+
+
err_detect, f_err_detect flags (input)
+

Set error detection flags. f_err_detect is deprecated and +should be used only via the ffmpeg tool. +

+

Possible values: +

+
crccheck
+

Verify embedded CRCs. +

+
bitstream
+

Detect bitstream specification deviations. +

+
buffer
+

Detect improper bitstream length. +

+
explode
+

Abort decoding on minor error detection. +

+
careful
+

Consider things that violate the spec and have not been seen in the +wild as errors. +

+
compliant
+

Consider all spec non compliancies as errors. +

+
aggressive
+

Consider things that a sane encoder should not do as an error. +

+
+ +
+
use_wallclock_as_timestamps integer (input)
+

Use wallclock as timestamps. +

+
+
avoid_negative_ts integer (output)
+
+

Possible values: +

+
make_non_negative
+

Shift timestamps to make them non-negative. +Also note that this affects only leading negative timestamps, and not +non-monotonic negative timestamps. +

+
make_zero
+

Shift timestamps so that the first timestamp is 0. +

+
auto (default)
+

Enables shifting when required by the target format. +

+
disabled
+

Disables shifting of timestamp. +

+
+ +

When shifting is enabled, all output timestamps are shifted by the +same amount. Audio, video, and subtitles desynching and relative +timestamp differences are preserved compared to how they would have +been without shifting. +

+
+
skip_initial_bytes integer (input)
+

Set number of bytes to skip before reading header and frames if set to 1. +Default is 0. +

+
+
correct_ts_overflow integer (input)
+

Correct single timestamp overflows if set to 1. Default is 1. +

+
+
flush_packets integer (output)
+

Flush the underlying I/O stream after each packet. Default 1 enables it, and +has the effect of reducing the latency; 0 disables it and may slightly +increase performance in some cases. +

+
+
output_ts_offset offset (output)
+

Set the output time offset. +

+

offset must be a time duration specification, +see (ffmpeg-utils)time duration syntax. +

+

The offset is added by the muxer to the output timestamps. +

+

Specifying a positive offset means that the corresponding streams are +delayed bt the time duration specified in offset. Default value +is 0 (meaning that no offset is applied). +

+
+ + +

+

+

13.1 Format stream specifiers

+ +

Format stream specifiers allow selection of one or more streams that +match specific properties. +

+

Possible forms of stream specifiers are: +

+
stream_index
+

Matches the stream with this index. +

+
+
stream_type[:stream_index]
+

stream_type is one of following: ’v’ for video, ’a’ for audio, +’s’ for subtitle, ’d’ for data, and ’t’ for attachments. If +stream_index is given, then it matches the stream number +stream_index of this type. Otherwise, it matches all streams of +this type. +

+
+
p:program_id[:stream_index]
+

If stream_index is given, then it matches the stream with number +stream_index in the program with the id +program_id. Otherwise, it matches all streams in the program. +

+
+
#stream_id
+

Matches the stream by a format-specific ID. +

+
+ +

The exact semantics of stream specifiers is defined by the +avformat_match_stream_specifier() function declared in the +‘libavformat/avformat.h’ header. +

+ +

14. Demuxers

+ +

Demuxers are configured elements in FFmpeg that can read the +multimedia streams from a particular type of file. +

+

When you configure your FFmpeg build, all the supported demuxers +are enabled by default. You can list all available ones using the +configure option --list-demuxers. +

+

You can disable all the demuxers using the configure option +--disable-demuxers, and selectively enable a single demuxer with +the option --enable-demuxer=DEMUXER, or disable it +with the option --disable-demuxer=DEMUXER. +

+

The option -formats of the ff* tools will display the list of +enabled demuxers. +

+

The description of some of the currently available demuxers follows. +

+ +

14.1 applehttp

+ +

Apple HTTP Live Streaming demuxer. +

+

This demuxer presents all AVStreams from all variant streams. +The id field is set to the bitrate variant index number. By setting +the discard flags on AVStreams (by pressing ’a’ or ’v’ in ffplay), +the caller can decide which variant streams to actually receive. +The total bitrate of the variant that the stream belongs to is +available in a metadata key named "variant_bitrate". +

+ +

14.2 asf

+ +

Advanced Systems Format demuxer. +

+

This demuxer is used to demux ASF files and MMS network streams. +

+
+
-no_resync_search bool
+

Do not try to resynchronize by looking for a certain optional start code. +

+
+ +

+

+

14.3 concat

+ +

Virtual concatenation script demuxer. +

+

This demuxer reads a list of files and other directives from a text file and +demuxes them one after the other, as if all their packet had been muxed +together. +

+

The timestamps in the files are adjusted so that the first file starts at 0 +and each next file starts where the previous one finishes. Note that it is +done globally and may cause gaps if all streams do not have exactly the same +length. +

+

All files must have the same streams (same codecs, same time base, etc.). +

+

The duration of each file is used to adjust the timestamps of the next file: +if the duration is incorrect (because it was computed using the bit-rate or +because the file is truncated, for example), it can cause artifacts. The +duration directive can be used to override the duration stored in +each file. +

+ +

14.3.1 Syntax

+ +

The script is a text file in extended-ASCII, with one directive per line. +Empty lines, leading spaces and lines starting with ’#’ are ignored. The +following directive is recognized: +

+
+
file path
+

Path to a file to read; special characters and spaces must be escaped with +backslash or single quotes. +

+

All subsequent file-related directives apply to that file. +

+
+
ffconcat version 1.0
+

Identify the script type and version. It also sets the ‘safe’ option +to 1 if it was to its default -1. +

+

To make FFmpeg recognize the format automatically, this directive must +appears exactly as is (no extra space or byte-order-mark) on the very first +line of the script. +

+
+
duration dur
+

Duration of the file. This information can be specified from the file; +specifying it here may be more efficient or help if the information from the +file is not available or accurate. +

+

If the duration is set for all files, then it is possible to seek in the +whole concatenated video. +

+
+
stream
+

Introduce a stream in the virtual file. +All subsequent stream-related directives apply to the last introduced +stream. +Some streams properties must be set in order to allow identifying the +matching streams in the subfiles. +If no streams are defined in the script, the streams from the first file are +copied. +

+
+
exact_stream_id id
+

Set the id of the stream. +If this directive is given, the string with the corresponding id in the +subfiles will be used. +This is especially useful for MPEG-PS (VOB) files, where the order of the +streams is not reliable. +

+
+
+ + +

14.3.2 Options

+ +

This demuxer accepts the following option: +

+
+
safe
+

If set to 1, reject unsafe file paths. A file path is considered safe if it +does not contain a protocol specification and is relative and all components +only contain characters from the portable character set (letters, digits, +period, underscore and hyphen) and have no period at the beginning of a +component. +

+

If set to 0, any file name is accepted. +

+

The default is -1, it is equivalent to 1 if the format was automatically +probed and 0 otherwise. +

+
+
+ + +

14.4 flv

+ +

Adobe Flash Video Format demuxer. +

+

This demuxer is used to demux FLV files and RTMP network streams. +

+
+
-flv_metadata bool
+

Allocate the streams according to the onMetaData array content. +

+
+ + +

14.5 libgme

+ +

The Game Music Emu library is a collection of video game music file emulators. +

+

See http://code.google.com/p/game-music-emu/ for more information. +

+

Some files have multiple tracks. The demuxer will pick the first track by +default. The ‘track_index’ option can be used to select a different +track. Track indexes start at 0. The demuxer exports the number of tracks as +tracks meta data entry. +

+

For very large files, the ‘max_size’ option may have to be adjusted. +

+ +

14.6 libquvi

+ +

Play media from Internet services using the quvi project. +

+

The demuxer accepts a ‘format’ option to request a specific quality. It +is by default set to best. +

+

See http://quvi.sourceforge.net/ for more information. +

+

FFmpeg needs to be built with --enable-libquvi for this demuxer to be +enabled. +

+ +

14.7 image2

+ +

Image file demuxer. +

+

This demuxer reads from a list of image files specified by a pattern. +The syntax and meaning of the pattern is specified by the +option pattern_type. +

+

The pattern may contain a suffix which is used to automatically +determine the format of the images contained in the files. +

+

The size, the pixel format, and the format of each image must be the +same for all the files in the sequence. +

+

This demuxer accepts the following options: +

+
framerate
+

Set the frame rate for the video stream. It defaults to 25. +

+
loop
+

If set to 1, loop over the input. Default value is 0. +

+
pattern_type
+

Select the pattern type used to interpret the provided filename. +

+

pattern_type accepts one of the following values. +

+
sequence
+

Select a sequence pattern type, used to specify a sequence of files +indexed by sequential numbers. +

+

A sequence pattern may contain the string "%d" or "%0Nd", which +specifies the position of the characters representing a sequential +number in each filename matched by the pattern. If the form +"%d0Nd" is used, the string representing the number in each +filename is 0-padded and N is the total number of 0-padded +digits representing the number. The literal character ’%’ can be +specified in the pattern with the string "%%". +

+

If the sequence pattern contains "%d" or "%0Nd", the first filename of +the file list specified by the pattern must contain a number +inclusively contained between start_number and +start_number+start_number_range-1, and all the following +numbers must be sequential. +

+

For example the pattern "img-%03d.bmp" will match a sequence of +filenames of the form ‘img-001.bmp’, ‘img-002.bmp’, ..., +‘img-010.bmp’, etc.; the pattern "i%%m%%g-%d.jpg" will match a +sequence of filenames of the form ‘i%m%g-1.jpg’, +‘i%m%g-2.jpg’, ..., ‘i%m%g-10.jpg’, etc. +

+

Note that the pattern must not necessarily contain "%d" or +"%0Nd", for example to convert a single image file +‘img.jpeg’ you can employ the command: +

 
ffmpeg -i img.jpeg img.png
+
+ +
+
glob
+

Select a glob wildcard pattern type. +

+

The pattern is interpreted like a glob() pattern. This is only +selectable if libavformat was compiled with globbing support. +

+
+
glob_sequence (deprecated, will be removed)
+

Select a mixed glob wildcard/sequence pattern. +

+

If your version of libavformat was compiled with globbing support, and +the provided pattern contains at least one glob meta character among +%*?[]{} that is preceded by an unescaped "%", the pattern is +interpreted like a glob() pattern, otherwise it is interpreted +like a sequence pattern. +

+

All glob special characters %*?[]{} must be prefixed +with "%". To escape a literal "%" you shall use "%%". +

+

For example the pattern foo-%*.jpeg will match all the +filenames prefixed by "foo-" and terminating with ".jpeg", and +foo-%?%?%?.jpeg will match all the filenames prefixed with +"foo-", followed by a sequence of three characters, and terminating +with ".jpeg". +

+

This pattern type is deprecated in favor of glob and +sequence. +

+
+ +

Default value is glob_sequence. +

+
pixel_format
+

Set the pixel format of the images to read. If not specified the pixel +format is guessed from the first image file in the sequence. +

+
start_number
+

Set the index of the file matched by the image file pattern to start +to read from. Default value is 0. +

+
start_number_range
+

Set the index interval range to check when looking for the first image +file in the sequence, starting from start_number. Default value +is 5. +

+
ts_from_file
+

If set to 1, will set frame timestamp to modification time of image file. Note +that monotonity of timestamps is not provided: images go in the same order as +without this option. Default value is 0. +If set to 2, will set frame timestamp to the modification time of the image file in +nanosecond precision. +

+
video_size
+

Set the video size of the images to read. If not specified the video +size is guessed from the first image file in the sequence. +

+
+ + +

14.7.1 Examples

+ +
    +
  • +Use ffmpeg for creating a video from the images in the file +sequence ‘img-001.jpeg’, ‘img-002.jpeg’, ..., assuming an +input frame rate of 10 frames per second: +
     
    ffmpeg -framerate 10 -i 'img-%03d.jpeg' out.mkv
    +
    + +
  • +As above, but start by reading from a file with index 100 in the sequence: +
     
    ffmpeg -framerate 10 -start_number 100 -i 'img-%03d.jpeg' out.mkv
    +
    + +
  • +Read images matching the "*.png" glob pattern , that is all the files +terminating with the ".png" suffix: +
     
    ffmpeg -framerate 10 -pattern_type glob -i "*.png" out.mkv
    +
    +
+ + +

14.8 mpegts

+ +

MPEG-2 transport stream demuxer. +

+
+
fix_teletext_pts
+

Overrides teletext packet PTS and DTS values with the timestamps calculated +from the PCR of the first program which the teletext stream is part of and is +not discarded. Default value is 1, set this option to 0 if you want your +teletext packet PTS and DTS values untouched. +

+
+ + +

14.9 rawvideo

+ +

Raw video demuxer. +

+

This demuxer allows one to read raw video data. Since there is no header +specifying the assumed video parameters, the user must specify them +in order to be able to decode the data correctly. +

+

This demuxer accepts the following options: +

+
framerate
+

Set input video frame rate. Default value is 25. +

+
+
pixel_format
+

Set the input video pixel format. Default value is yuv420p. +

+
+
video_size
+

Set the input video size. This value must be specified explicitly. +

+
+ +

For example to read a rawvideo file ‘input.raw’ with +ffplay, assuming a pixel format of rgb24, a video +size of 320x240, and a frame rate of 10 images per second, use +the command: +

 
ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -framerate 10 input.raw
+
+ + +

14.10 sbg

+ +

SBaGen script demuxer. +

+

This demuxer reads the script language used by SBaGen +http://uazu.net/sbagen/ to generate binaural beats sessions. A SBG +script looks like that: +

 
-SE
+a: 300-2.5/3 440+4.5/0
+b: 300-2.5/0 440+4.5/3
+off: -
+NOW      == a
++0:07:00 == b
++0:14:00 == a
++0:21:00 == b
++0:30:00    off
+
+ +

A SBG script can mix absolute and relative timestamps. If the script uses +either only absolute timestamps (including the script start time) or only +relative ones, then its layout is fixed, and the conversion is +straightforward. On the other hand, if the script mixes both kind of +timestamps, then the NOW reference for relative timestamps will be +taken from the current time of day at the time the script is read, and the +script layout will be frozen according to that reference. That means that if +the script is directly played, the actual times will match the absolute +timestamps up to the sound controller’s clock accuracy, but if the user +somehow pauses the playback or seeks, all times will be shifted accordingly. +

+ +

14.11 tedcaptions

+ +

JSON captions used for TED Talks. +

+

TED does not provide links to the captions, but they can be guessed from the +page. The file ‘tools/bookmarklets.html’ from the FFmpeg source tree +contains a bookmarklet to expose them. +

+

This demuxer accepts the following option: +

+
start_time
+

Set the start time of the TED talk, in milliseconds. The default is 15000 +(15s). It is used to sync the captions with the downloadable videos, because +they include a 15s intro. +

+
+ +

Example: convert the captions to a format most players understand: +

 
ffmpeg -i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-en.srt
+
+ + +

15. Metadata

+ +

FFmpeg is able to dump metadata from media files into a simple UTF-8-encoded +INI-like text file and then load it back using the metadata muxer/demuxer. +

+

The file format is as follows: +

    +
  1. +A file consists of a header and a number of metadata tags divided into sections, +each on its own line. + +
  2. +The header is a ’;FFMETADATA’ string, followed by a version number (now 1). + +
  3. +Metadata tags are of the form ’key=value’ + +
  4. +Immediately after header follows global metadata + +
  5. +After global metadata there may be sections with per-stream/per-chapter +metadata. + +
  6. +A section starts with the section name in uppercase (i.e. STREAM or CHAPTER) in +brackets (’[’, ’]’) and ends with next section or end of file. + +
  7. +At the beginning of a chapter section there may be an optional timebase to be +used for start/end values. It must be in form ’TIMEBASE=num/den’, where num and +den are integers. If the timebase is missing then start/end times are assumed to +be in milliseconds. +Next a chapter section must contain chapter start and end times in form +’START=num’, ’END=num’, where num is a positive integer. + +
  8. +Empty lines and lines starting with ’;’ or ’#’ are ignored. + +
  9. +Metadata keys or values containing special characters (’=’, ’;’, ’#’, ’\’ and a +newline) must be escaped with a backslash ’\’. + +
  10. +Note that whitespace in metadata (e.g. foo = bar) is considered to be a part of +the tag (in the example above key is ’foo ’, value is ’ bar’). +
+ +

A ffmetadata file might look like this: +

 
;FFMETADATA1
+title=bike\\shed
+;this is a comment
+artist=FFmpeg troll team
+
+[CHAPTER]
+TIMEBASE=1/1000
+START=0
+#chapter ends at 0:01:00
+END=60000
+title=chapter \#1
+[STREAM]
+title=multi\
+line
+
+ +

By using the ffmetadata muxer and demuxer it is possible to extract +metadata from an input file to an ffmetadata file, and then transcode +the file into an output file with the edited ffmetadata file. +

+

Extracting an ffmetadata file with ‘ffmpeg’ goes as follows: +

 
ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE
+
+ +

Reinserting edited metadata information from the FFMETADATAFILE file can +be done as: +

 
ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec copy OUTPUT
+
+ + +

16. Protocols

+ +

Protocols are configured elements in FFmpeg that enable access to +resources that require specific protocols. +

+

When you configure your FFmpeg build, all the supported protocols are +enabled by default. You can list all available ones using the +configure option "–list-protocols". +

+

You can disable all the protocols using the configure option +"–disable-protocols", and selectively enable a protocol using the +option "–enable-protocol=PROTOCOL", or you can disable a +particular protocol using the option +"–disable-protocol=PROTOCOL". +

+

The option "-protocols" of the ff* tools will display the list of +supported protocols. +

+

A description of the currently available protocols follows. +

+ +

16.1 bluray

+ +

Read BluRay playlist. +

+

The accepted options are: +

+
angle
+

BluRay angle +

+
+
chapter
+

Start chapter (1...N) +

+
+
playlist
+

Playlist to read (BDMV/PLAYLIST/?????.mpls) +

+
+
+ +

Examples: +

+

Read longest playlist from BluRay mounted to /mnt/bluray: +

 
bluray:/mnt/bluray
+
+ +

Read angle 2 of playlist 4 from BluRay mounted to /mnt/bluray, start from chapter 2: +

 
-playlist 4 -angle 2 -chapter 2 bluray:/mnt/bluray
+
+ + +

16.2 cache

+ +

Caching wrapper for input stream. +

+

Cache the input stream to temporary file. It brings seeking capability to live streams. +

+
 
cache:URL
+
+ + +

16.3 concat

+ +

Physical concatenation protocol. +

+

Allow to read and seek from many resource in sequence as if they were +a unique resource. +

+

A URL accepted by this protocol has the syntax: +

 
concat:URL1|URL2|...|URLN
+
+ +

where URL1, URL2, ..., URLN are the urls of the +resource to be concatenated, each one possibly specifying a distinct +protocol. +

+

For example to read a sequence of files ‘split1.mpeg’, +‘split2.mpeg’, ‘split3.mpeg’ with ffplay use the +command: +

 
ffplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg
+
+ +

Note that you may need to escape the character "|" which is special for +many shells. +

+ +

16.4 crypto

+ +

AES-encrypted stream reading protocol. +

+

The accepted options are: +

+
key
+

Set the AES decryption key binary block from given hexadecimal representation. +

+
+
iv
+

Set the AES decryption initialization vector binary block from given hexadecimal representation. +

+
+ +

Accepted URL formats: +

 
crypto:URL
+crypto+URL
+
+ + +

16.5 data

+ +

Data in-line in the URI. See http://en.wikipedia.org/wiki/Data_URI_scheme. +

+

For example, to convert a GIF file given inline with ffmpeg: +

 
ffmpeg -i "data:image/gif;base64,R0lGODdhCAAIAMIEAAAAAAAA//8AAP//AP///////////////ywAAAAACAAIAAADF0gEDLojDgdGiJdJqUX02iB4E8Q9jUMkADs=" smiley.png
+
+ + +

16.6 file

+ +

File access protocol. +

+

Allow to read from or write to a file. +

+

A file URL can have the form: +

 
file:filename
+
+ +

where filename is the path of the file to read. +

+

An URL that does not have a protocol prefix will be assumed to be a +file URL. Depending on the build, an URL that looks like a Windows +path with the drive letter at the beginning will also be assumed to be +a file URL (usually not the case in builds for unix-like systems). +

+

For example to read from a file ‘input.mpeg’ with ffmpeg +use the command: +

 
ffmpeg -i file:input.mpeg output.mpeg
+
+ +

This protocol accepts the following options: +

+
+
truncate
+

Truncate existing files on write, if set to 1. A value of 0 prevents +truncating. Default value is 1. +

+
+
blocksize
+

Set I/O operation maximum block size, in bytes. Default value is +INT_MAX, which results in not limiting the requested block size. +Setting this value reasonably low improves user termination request reaction +time, which is valuable for files on slow medium. +

+
+ + +

16.7 ftp

+ +

FTP (File Transfer Protocol). +

+

Allow to read from or write to remote resources using FTP protocol. +

+

Following syntax is required. +

 
ftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
+
+ +

This protocol accepts the following options. +

+
+
timeout
+

Set timeout of socket I/O operations used by the underlying low level +operation. By default it is set to -1, which means that the timeout is +not specified. +

+
+
ftp-anonymous-password
+

Password used when login as anonymous user. Typically an e-mail address +should be used. +

+
+
ftp-write-seekable
+

Control seekability of connection during encoding. If set to 1 the +resource is supposed to be seekable, if set to 0 it is assumed not +to be seekable. Default value is 0. +

+
+ +

NOTE: Protocol can be used as output, but it is recommended to not do +it, unless special care is taken (tests, customized server configuration +etc.). Different FTP servers behave in different way during seek +operation. ff* tools may produce incomplete content due to server limitations. +

+ +

16.8 gopher

+ +

Gopher protocol. +

+ +

16.9 hls

+ +

Read Apple HTTP Live Streaming compliant segmented stream as +a uniform one. The M3U8 playlists describing the segments can be +remote HTTP resources or local files, accessed using the standard +file protocol. +The nested protocol is declared by specifying +"+proto" after the hls URI scheme name, where proto +is either "file" or "http". +

+
 
hls+http://host/path/to/remote/resource.m3u8
+hls+file://path/to/local/resource.m3u8
+
+ +

Using this protocol is discouraged - the hls demuxer should work +just as well (if not, please report the issues) and is more complete. +To use the hls demuxer instead, simply use the direct URLs to the +m3u8 files. +

+ +

16.10 http

+ +

HTTP (Hyper Text Transfer Protocol). +

+

This protocol accepts the following options: +

+
+
seekable
+

Control seekability of connection. If set to 1 the resource is +supposed to be seekable, if set to 0 it is assumed not to be seekable, +if set to -1 it will try to autodetect if it is seekable. Default +value is -1. +

+
+
chunked_post
+

If set to 1 use chunked Transfer-Encoding for posts, default is 1. +

+
+
content_type
+

Set a specific content type for the POST messages. +

+
+
headers
+

Set custom HTTP headers, can override built in default headers. The +value must be a string encoding the headers. +

+
+
multiple_requests
+

Use persistent connections if set to 1, default is 0. +

+
+
post_data
+

Set custom HTTP post data. +

+
+
user-agent
+
user_agent
+

Override the User-Agent header. If not specified the protocol will use a +string describing the libavformat build. ("Lavf/<version>") +

+
+
timeout
+

Set timeout of socket I/O operations used by the underlying low level +operation. By default it is set to -1, which means that the timeout is +not specified. +

+
+
mime_type
+

Export the MIME type. +

+
+
icy
+

If set to 1 request ICY (SHOUTcast) metadata from the server. If the server +supports this, the metadata has to be retrieved by the application by reading +the ‘icy_metadata_headers’ and ‘icy_metadata_packet’ options. +The default is 0. +

+
+
icy_metadata_headers
+

If the server supports ICY metadata, this contains the ICY-specific HTTP reply +headers, separated by newline characters. +

+
+
icy_metadata_packet
+

If the server supports ICY metadata, and ‘icy’ was set to 1, this +contains the last non-empty metadata packet sent by the server. It should be +polled in regular intervals by applications interested in mid-stream metadata +updates. +

+
+
cookies
+

Set the cookies to be sent in future requests. The format of each cookie is the +same as the value of a Set-Cookie HTTP response field. Multiple cookies can be +delimited by a newline character. +

+
+
offset
+

Set initial byte offset. +

+
+
end_offset
+

Try to limit the request to bytes preceding this offset. +

+
+ + +

16.10.1 HTTP Cookies

+ +

Some HTTP requests will be denied unless cookie values are passed in with the +request. The ‘cookies’ option allows these cookies to be specified. At +the very least, each cookie must specify a value along with a path and domain. +HTTP requests that match both the domain and path will automatically include the +cookie value in the HTTP Cookie header field. Multiple cookies can be delimited +by a newline. +

+

The required syntax to play a stream specifying a cookie is: +

 
ffplay -cookies "nlqptid=nltid=tsn; path=/; domain=somedomain.com;" http://somedomain.com/somestream.m3u8
+
+ + +

16.11 mmst

+ +

MMS (Microsoft Media Server) protocol over TCP. +

+ +

16.12 mmsh

+ +

MMS (Microsoft Media Server) protocol over HTTP. +

+

The required syntax is: +

 
mmsh://server[:port][/app][/playpath]
+
+ + +

16.13 md5

+ +

MD5 output protocol. +

+

Computes the MD5 hash of the data to be written, and on close writes +this to the designated output or stdout if none is specified. It can +be used to test muxers without writing an actual file. +

+

Some examples follow. +

 
# Write the MD5 hash of the encoded AVI file to the file output.avi.md5.
+ffmpeg -i input.flv -f avi -y md5:output.avi.md5
+
+# Write the MD5 hash of the encoded AVI file to stdout.
+ffmpeg -i input.flv -f avi -y md5:
+
+ +

Note that some formats (typically MOV) require the output protocol to +be seekable, so they will fail with the MD5 output protocol. +

+ +

16.14 pipe

+ +

UNIX pipe access protocol. +

+

Allow to read and write from UNIX pipes. +

+

The accepted syntax is: +

 
pipe:[number]
+
+ +

number is the number corresponding to the file descriptor of the +pipe (e.g. 0 for stdin, 1 for stdout, 2 for stderr). If number +is not specified, by default the stdout file descriptor will be used +for writing, stdin for reading. +

+

For example to read from stdin with ffmpeg: +

 
cat test.wav | ffmpeg -i pipe:0
+# ...this is the same as...
+cat test.wav | ffmpeg -i pipe:
+
+ +

For writing to stdout with ffmpeg: +

 
ffmpeg -i test.wav -f avi pipe:1 | cat > test.avi
+# ...this is the same as...
+ffmpeg -i test.wav -f avi pipe: | cat > test.avi
+
+ +

This protocol accepts the following options: +

+
+
blocksize
+

Set I/O operation maximum block size, in bytes. Default value is +INT_MAX, which results in not limiting the requested block size. +Setting this value reasonably low improves user termination request reaction +time, which is valuable if data transmission is slow. +

+
+ +

Note that some formats (typically MOV), require the output protocol to +be seekable, so they will fail with the pipe output protocol. +

+ +

16.15 rtmp

+ +

Real-Time Messaging Protocol. +

+

The Real-Time Messaging Protocol (RTMP) is used for streaming multimedia +content across a TCP/IP network. +

+

The required syntax is: +

 
rtmp://[username:password@]server[:port][/app][/instance][/playpath]
+
+ +

The accepted parameters are: +

+
username
+

An optional username (mostly for publishing). +

+
+
password
+

An optional password (mostly for publishing). +

+
+
server
+

The address of the RTMP server. +

+
+
port
+

The number of the TCP port to use (by default is 1935). +

+
+
app
+

It is the name of the application to access. It usually corresponds to +the path where the application is installed on the RTMP server +(e.g. ‘/ondemand/’, ‘/flash/live/’, etc.). You can override +the value parsed from the URI through the rtmp_app option, too. +

+
+
playpath
+

It is the path or name of the resource to play with reference to the +application specified in app, may be prefixed by "mp4:". You +can override the value parsed from the URI through the rtmp_playpath +option, too. +

+
+
listen
+

Act as a server, listening for an incoming connection. +

+
+
timeout
+

Maximum time to wait for the incoming connection. Implies listen. +

+
+ +

Additionally, the following parameters can be set via command line options +(or in code via AVOptions): +

+
rtmp_app
+

Name of application to connect on the RTMP server. This option +overrides the parameter specified in the URI. +

+
+
rtmp_buffer
+

Set the client buffer time in milliseconds. The default is 3000. +

+
+
rtmp_conn
+

Extra arbitrary AMF connection parameters, parsed from a string, +e.g. like B:1 S:authMe O:1 NN:code:1.23 NS:flag:ok O:0. +Each value is prefixed by a single character denoting the type, +B for Boolean, N for number, S for string, O for object, or Z for null, +followed by a colon. For Booleans the data must be either 0 or 1 for +FALSE or TRUE, respectively. Likewise for Objects the data must be 0 or +1 to end or begin an object, respectively. Data items in subobjects may +be named, by prefixing the type with ’N’ and specifying the name before +the value (i.e. NB:myFlag:1). This option may be used multiple +times to construct arbitrary AMF sequences. +

+
+
rtmp_flashver
+

Version of the Flash plugin used to run the SWF player. The default +is LNX 9,0,124,2. (When publishing, the default is FMLE/3.0 (compatible; +<libavformat version>).) +

+
+
rtmp_flush_interval
+

Number of packets flushed in the same request (RTMPT only). The default +is 10. +

+
+
rtmp_live
+

Specify that the media is a live stream. No resuming or seeking in +live streams is possible. The default value is any, which means the +subscriber first tries to play the live stream specified in the +playpath. If a live stream of that name is not found, it plays the +recorded stream. The other possible values are live and +recorded. +

+
+
rtmp_pageurl
+

URL of the web page in which the media was embedded. By default no +value will be sent. +

+
+
rtmp_playpath
+

Stream identifier to play or to publish. This option overrides the +parameter specified in the URI. +

+
+
rtmp_subscribe
+

Name of live stream to subscribe to. By default no value will be sent. +It is only sent if the option is specified or if rtmp_live +is set to live. +

+
+
rtmp_swfhash
+

SHA256 hash of the decompressed SWF file (32 bytes). +

+
+
rtmp_swfsize
+

Size of the decompressed SWF file, required for SWFVerification. +

+
+
rtmp_swfurl
+

URL of the SWF player for the media. By default no value will be sent. +

+
+
rtmp_swfverify
+

URL to player swf file, compute hash/size automatically. +

+
+
rtmp_tcurl
+

URL of the target stream. Defaults to proto://host[:port]/app. +

+
+
+ +

For example to read with ffplay a multimedia resource named +"sample" from the application "vod" from an RTMP server "myserver": +

 
ffplay rtmp://myserver/vod/sample
+
+ +

To publish to a password protected server, passing the playpath and +app names separately: +

 
ffmpeg -re -i <input> -f flv -rtmp_playpath some/long/path -rtmp_app long/app/name rtmp://username:password@myserver/
+
+ + +

16.16 rtmpe

+ +

Encrypted Real-Time Messaging Protocol. +

+

The Encrypted Real-Time Messaging Protocol (RTMPE) is used for +streaming multimedia content within standard cryptographic primitives, +consisting of Diffie-Hellman key exchange and HMACSHA256, generating +a pair of RC4 keys. +

+ +

16.17 rtmps

+ +

Real-Time Messaging Protocol over a secure SSL connection. +

+

The Real-Time Messaging Protocol (RTMPS) is used for streaming +multimedia content across an encrypted connection. +

+ +

16.18 rtmpt

+ +

Real-Time Messaging Protocol tunneled through HTTP. +

+

The Real-Time Messaging Protocol tunneled through HTTP (RTMPT) is used +for streaming multimedia content within HTTP requests to traverse +firewalls. +

+ +

16.19 rtmpte

+ +

Encrypted Real-Time Messaging Protocol tunneled through HTTP. +

+

The Encrypted Real-Time Messaging Protocol tunneled through HTTP (RTMPTE) +is used for streaming multimedia content within HTTP requests to traverse +firewalls. +

+ +

16.20 rtmpts

+ +

Real-Time Messaging Protocol tunneled through HTTPS. +

+

The Real-Time Messaging Protocol tunneled through HTTPS (RTMPTS) is used +for streaming multimedia content within HTTPS requests to traverse +firewalls. +

+ +

16.21 libssh

+ +

Secure File Transfer Protocol via libssh +

+

Allow to read from or write to remote resources using SFTP protocol. +

+

Following syntax is required. +

+
 
sftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
+
+ +

This protocol accepts the following options. +

+
+
timeout
+

Set timeout of socket I/O operations used by the underlying low level +operation. By default it is set to -1, which means that the timeout +is not specified. +

+
+
truncate
+

Truncate existing files on write, if set to 1. A value of 0 prevents +truncating. Default value is 1. +

+
+
private_key
+

Specify the path of the file containing private key to use during authorization. +By default libssh searches for keys in the ‘~/.ssh/’ directory. +

+
+
+ +

Example: Play a file stored on remote server. +

+
 
ffplay sftp://user:password@server_address:22/home/user/resource.mpeg
+
+ + +

16.22 librtmp rtmp, rtmpe, rtmps, rtmpt, rtmpte

+ +

Real-Time Messaging Protocol and its variants supported through +librtmp. +

+

Requires the presence of the librtmp headers and library during +configuration. You need to explicitly configure the build with +"–enable-librtmp". If enabled this will replace the native RTMP +protocol. +

+

This protocol provides most client functions and a few server +functions needed to support RTMP, RTMP tunneled in HTTP (RTMPT), +encrypted RTMP (RTMPE), RTMP over SSL/TLS (RTMPS) and tunneled +variants of these encrypted types (RTMPTE, RTMPTS). +

+

The required syntax is: +

 
rtmp_proto://server[:port][/app][/playpath] options
+
+ +

where rtmp_proto is one of the strings "rtmp", "rtmpt", "rtmpe", +"rtmps", "rtmpte", "rtmpts" corresponding to each RTMP variant, and +server, port, app and playpath have the same +meaning as specified for the RTMP native protocol. +options contains a list of space-separated options of the form +key=val. +

+

See the librtmp manual page (man 3 librtmp) for more information. +

+

For example, to stream a file in real-time to an RTMP server using +ffmpeg: +

 
ffmpeg -re -i myfile -f flv rtmp://myserver/live/mystream
+
+ +

To play the same stream using ffplay: +

 
ffplay "rtmp://myserver/live/mystream live=1"
+
+ + +

16.23 rtp

+ +

Real-time Transport Protocol. +

+

The required syntax for an RTP URL is: +rtp://hostname[:port][?option=val...] +

+

port specifies the RTP port to use. +

+

The following URL options are supported: +

+
+
ttl=n
+

Set the TTL (Time-To-Live) value (for multicast only). +

+
+
rtcpport=n
+

Set the remote RTCP port to n. +

+
+
localrtpport=n
+

Set the local RTP port to n. +

+
+
localrtcpport=n'
+

Set the local RTCP port to n. +

+
+
pkt_size=n
+

Set max packet size (in bytes) to n. +

+
+
connect=0|1
+

Do a connect() on the UDP socket (if set to 1) or not (if set +to 0). +

+
+
sources=ip[,ip]
+

List allowed source IP addresses. +

+
+
block=ip[,ip]
+

List disallowed (blocked) source IP addresses. +

+
+
write_to_source=0|1
+

Send packets to the source address of the latest received packet (if +set to 1) or to a default remote address (if set to 0). +

+
+
localport=n
+

Set the local RTP port to n. +

+

This is a deprecated option. Instead, ‘localrtpport’ should be +used. +

+
+
+ +

Important notes: +

+
    +
  1. +If ‘rtcpport’ is not set the RTCP port will be set to the RTP +port value plus 1. + +
  2. +If ‘localrtpport’ (the local RTP port) is not set any available +port will be used for the local RTP and RTCP ports. + +
  3. +If ‘localrtcpport’ (the local RTCP port) is not set it will be +set to the the local RTP port value plus 1. +
+ + +

16.24 rtsp

+ +

Real-Time Streaming Protocol. +

+

RTSP is not technically a protocol handler in libavformat, it is a demuxer +and muxer. The demuxer supports both normal RTSP (with data transferred +over RTP; this is used by e.g. Apple and Microsoft) and Real-RTSP (with +data transferred over RDT). +

+

The muxer can be used to send a stream using RTSP ANNOUNCE to a server +supporting it (currently Darwin Streaming Server and Mischa Spiegelmock’s +RTSP server). +

+

The required syntax for a RTSP url is: +

 
rtsp://hostname[:port]/path
+
+ +

Options can be set on the ffmpeg/ffplay command +line, or set in code via AVOptions or in +avformat_open_input. +

+

The following options are supported. +

+
+
initial_pause
+

Do not start playing the stream immediately if set to 1. Default value +is 0. +

+
+
rtsp_transport
+

Set RTSP trasport protocols. +

+

It accepts the following values: +

+
udp
+

Use UDP as lower transport protocol. +

+
+
tcp
+

Use TCP (interleaving within the RTSP control channel) as lower +transport protocol. +

+
+
udp_multicast
+

Use UDP multicast as lower transport protocol. +

+
+
http
+

Use HTTP tunneling as lower transport protocol, which is useful for +passing proxies. +

+
+ +

Multiple lower transport protocols may be specified, in that case they are +tried one at a time (if the setup of one fails, the next one is tried). +For the muxer, only the ‘tcp’ and ‘udp’ options are supported. +

+
+
rtsp_flags
+

Set RTSP flags. +

+

The following values are accepted: +

+
filter_src
+

Accept packets only from negotiated peer address and port. +

+
listen
+

Act as a server, listening for an incoming connection. +

+
prefer_tcp
+

Try TCP for RTP transport first, if TCP is available as RTSP RTP transport. +

+
+ +

Default value is ‘none’. +

+
+
allowed_media_types
+

Set media types to accept from the server. +

+

The following flags are accepted: +

+
video
+
audio
+
data
+
+ +

By default it accepts all media types. +

+
+
min_port
+

Set minimum local UDP port. Default value is 5000. +

+
+
max_port
+

Set maximum local UDP port. Default value is 65000. +

+
+
timeout
+

Set maximum timeout (in seconds) to wait for incoming connections. +

+

A value of -1 mean infinite (default). This option implies the +‘rtsp_flags’ set to ‘listen’. +

+
+
reorder_queue_size
+

Set number of packets to buffer for handling of reordered packets. +

+
+
stimeout
+

Set socket TCP I/O timeout in micro seconds. +

+
+
user-agent
+

Override User-Agent header. If not specified, it default to the +libavformat identifier string. +

+
+ +

When receiving data over UDP, the demuxer tries to reorder received packets +(since they may arrive out of order, or packets may get lost totally). This +can be disabled by setting the maximum demuxing delay to zero (via +the max_delay field of AVFormatContext). +

+

When watching multi-bitrate Real-RTSP streams with ffplay, the +streams to display can be chosen with -vst n and +-ast n for video and audio respectively, and can be switched +on the fly by pressing v and a. +

+ +

16.24.1 Examples

+ +

The following examples all make use of the ffplay and +ffmpeg tools. +

+
    +
  • +Watch a stream over UDP, with a max reordering delay of 0.5 seconds: +
     
    ffplay -max_delay 500000 -rtsp_transport udp rtsp://server/video.mp4
    +
    + +
  • +Watch a stream tunneled over HTTP: +
     
    ffplay -rtsp_transport http rtsp://server/video.mp4
    +
    + +
  • +Send a stream in realtime to a RTSP server, for others to watch: +
     
    ffmpeg -re -i input -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
    +
    + +
  • +Receive a stream in realtime: +
     
    ffmpeg -rtsp_flags listen -i rtsp://ownaddress/live.sdp output
    +
    +
+ + +

16.25 sap

+ +

Session Announcement Protocol (RFC 2974). This is not technically a +protocol handler in libavformat, it is a muxer and demuxer. +It is used for signalling of RTP streams, by announcing the SDP for the +streams regularly on a separate port. +

+ +

16.25.1 Muxer

+ +

The syntax for a SAP url given to the muxer is: +

 
sap://destination[:port][?options]
+
+ +

The RTP packets are sent to destination on port port, +or to port 5004 if no port is specified. +options is a &-separated list. The following options +are supported: +

+
+
announce_addr=address
+

Specify the destination IP address for sending the announcements to. +If omitted, the announcements are sent to the commonly used SAP +announcement multicast address 224.2.127.254 (sap.mcast.net), or +ff0e::2:7ffe if destination is an IPv6 address. +

+
+
announce_port=port
+

Specify the port to send the announcements on, defaults to +9875 if not specified. +

+
+
ttl=ttl
+

Specify the time to live value for the announcements and RTP packets, +defaults to 255. +

+
+
same_port=0|1
+

If set to 1, send all RTP streams on the same port pair. If zero (the +default), all streams are sent on unique ports, with each stream on a +port 2 numbers higher than the previous. +VLC/Live555 requires this to be set to 1, to be able to receive the stream. +The RTP stack in libavformat for receiving requires all streams to be sent +on unique ports. +

+
+ +

Example command lines follow. +

+

To broadcast a stream on the local subnet, for watching in VLC: +

+
 
ffmpeg -re -i input -f sap sap://224.0.0.255?same_port=1
+
+ +

Similarly, for watching in ffplay: +

+
 
ffmpeg -re -i input -f sap sap://224.0.0.255
+
+ +

And for watching in ffplay, over IPv6: +

+
 
ffmpeg -re -i input -f sap sap://[ff0e::1:2:3:4]
+
+ + +

16.25.2 Demuxer

+ +

The syntax for a SAP url given to the demuxer is: +

 
sap://[address][:port]
+
+ +

address is the multicast address to listen for announcements on, +if omitted, the default 224.2.127.254 (sap.mcast.net) is used. port +is the port that is listened on, 9875 if omitted. +

+

The demuxers listens for announcements on the given address and port. +Once an announcement is received, it tries to receive that particular stream. +

+

Example command lines follow. +

+

To play back the first stream announced on the normal SAP multicast address: +

+
 
ffplay sap://
+
+ +

To play back the first stream announced on one the default IPv6 SAP multicast address: +

+
 
ffplay sap://[ff0e::2:7ffe]
+
+ + +

16.26 sctp

+ +

Stream Control Transmission Protocol. +

+

The accepted URL syntax is: +

 
sctp://host:port[?options]
+
+ +

The protocol accepts the following options: +

+
listen
+

If set to any value, listen for an incoming connection. Outgoing connection is done by default. +

+
+
max_streams
+

Set the maximum number of streams. By default no limit is set. +

+
+ + +

16.27 srtp

+ +

Secure Real-time Transport Protocol. +

+

The accepted options are: +

+
srtp_in_suite
+
srtp_out_suite
+

Select input and output encoding suites. +

+

Supported values: +

+
AES_CM_128_HMAC_SHA1_80
+
SRTP_AES128_CM_HMAC_SHA1_80
+
AES_CM_128_HMAC_SHA1_32
+
SRTP_AES128_CM_HMAC_SHA1_32
+
+ +
+
srtp_in_params
+
srtp_out_params
+

Set input and output encoding parameters, which are expressed by a +base64-encoded representation of a binary block. The first 16 bytes of +this binary block are used as master key, the following 14 bytes are +used as master salt. +

+
+ + +

16.28 subfile

+ +

Virtually extract a segment of a file or another stream. +The underlying stream must be seekable. +

+

Accepted options: +

+
start
+

Start offset of the extracted segment, in bytes. +

+
end
+

End offset of the extracted segment, in bytes. +

+
+ +

Examples: +

+

Extract a chapter from a DVD VOB file (start and end sectors obtained +externally and multiplied by 2048): +

 
subfile,,start,153391104,end,268142592,,:/media/dvd/VIDEO_TS/VTS_08_1.VOB
+
+ +

Play an AVI file directly from a TAR archive: +subfile,,start,183241728,end,366490624,,:archive.tar +

+ +

16.29 tcp

+ +

Transmission Control Protocol. +

+

The required syntax for a TCP url is: +

 
tcp://hostname:port[?options]
+
+ +

options contains a list of &-separated options of the form +key=val. +

+

The list of supported options follows. +

+
+
listen=1|0
+

Listen for an incoming connection. Default value is 0. +

+
+
timeout=microseconds
+

Set raise error timeout, expressed in microseconds. +

+

This option is only relevant in read mode: if no data arrived in more +than this time interval, raise error. +

+
+
listen_timeout=microseconds
+

Set listen timeout, expressed in microseconds. +

+
+ +

The following example shows how to setup a listening TCP connection +with ffmpeg, which is then accessed with ffplay: +

 
ffmpeg -i input -f format tcp://hostname:port?listen
+ffplay tcp://hostname:port
+
+ + +

16.30 tls

+ +

Transport Layer Security (TLS) / Secure Sockets Layer (SSL) +

+

The required syntax for a TLS/SSL url is: +

 
tls://hostname:port[?options]
+
+ +

The following parameters can be set via command line options +(or in code via AVOptions): +

+
+
ca_file, cafile=filename
+

A file containing certificate authority (CA) root certificates to treat +as trusted. If the linked TLS library contains a default this might not +need to be specified for verification to work, but not all libraries and +setups have defaults built in. +The file must be in OpenSSL PEM format. +

+
+
tls_verify=1|0
+

If enabled, try to verify the peer that we are communicating with. +Note, if using OpenSSL, this currently only makes sure that the +peer certificate is signed by one of the root certificates in the CA +database, but it does not validate that the certificate actually +matches the host name we are trying to connect to. (With GnuTLS, +the host name is validated as well.) +

+

This is disabled by default since it requires a CA database to be +provided by the caller in many cases. +

+
+
cert_file, cert=filename
+

A file containing a certificate to use in the handshake with the peer. +(When operating as server, in listen mode, this is more often required +by the peer, while client certificates only are mandated in certain +setups.) +

+
+
key_file, key=filename
+

A file containing the private key for the certificate. +

+
+
listen=1|0
+

If enabled, listen for connections on the provided port, and assume +the server role in the handshake instead of the client role. +

+
+
+ +

Example command lines: +

+

To create a TLS/SSL server that serves an input stream. +

+
 
ffmpeg -i input -f format tls://hostname:port?listen&cert=server.crt&key=server.key
+
+ +

To play back a stream from the TLS/SSL server using ffplay: +

+
 
ffplay tls://hostname:port
+
+ + +

16.31 udp

+ +

User Datagram Protocol. +

+

The required syntax for an UDP URL is: +

 
udp://hostname:port[?options]
+
+ +

options contains a list of &-separated options of the form key=val. +

+

In case threading is enabled on the system, a circular buffer is used +to store the incoming data, which allows one to reduce loss of data due to +UDP socket buffer overruns. The fifo_size and +overrun_nonfatal options are related to this buffer. +

+

The list of supported options follows. +

+
+
buffer_size=size
+

Set the UDP maximum socket buffer size in bytes. This is used to set either +the receive or send buffer size, depending on what the socket is used for. +Default is 64KB. See also fifo_size. +

+
+
localport=port
+

Override the local UDP port to bind with. +

+
+
localaddr=addr
+

Choose the local IP address. This is useful e.g. if sending multicast +and the host has multiple interfaces, where the user can choose +which interface to send on by specifying the IP address of that interface. +

+
+
pkt_size=size
+

Set the size in bytes of UDP packets. +

+
+
reuse=1|0
+

Explicitly allow or disallow reusing UDP sockets. +

+
+
ttl=ttl
+

Set the time to live value (for multicast only). +

+
+
connect=1|0
+

Initialize the UDP socket with connect(). In this case, the +destination address can’t be changed with ff_udp_set_remote_url later. +If the destination address isn’t known at the start, this option can +be specified in ff_udp_set_remote_url, too. +This allows finding out the source address for the packets with getsockname, +and makes writes return with AVERROR(ECONNREFUSED) if "destination +unreachable" is received. +For receiving, this gives the benefit of only receiving packets from +the specified peer address/port. +

+
+
sources=address[,address]
+

Only receive packets sent to the multicast group from one of the +specified sender IP addresses. +

+
+
block=address[,address]
+

Ignore packets sent to the multicast group from the specified +sender IP addresses. +

+
+
fifo_size=units
+

Set the UDP receiving circular buffer size, expressed as a number of +packets with size of 188 bytes. If not specified defaults to 7*4096. +

+
+
overrun_nonfatal=1|0
+

Survive in case of UDP receiving circular buffer overrun. Default +value is 0. +

+
+
timeout=microseconds
+

Set raise error timeout, expressed in microseconds. +

+

This option is only relevant in read mode: if no data arrived in more +than this time interval, raise error. +

+
+ + +

16.31.1 Examples

+ +
    +
  • +Use ffmpeg to stream over UDP to a remote endpoint: +
     
    ffmpeg -i input -f format udp://hostname:port
    +
    + +
  • +Use ffmpeg to stream in mpegts format over UDP using 188 +sized UDP packets, using a large input buffer: +
     
    ffmpeg -i input -f mpegts udp://hostname:port?pkt_size=188&buffer_size=65535
    +
    + +
  • +Use ffmpeg to receive over UDP from a remote endpoint: +
     
    ffmpeg -i udp://[multicast-address]:port ...
    +
    +
+ + +

16.32 unix

+ +

Unix local socket +

+

The required syntax for a Unix socket URL is: +

+
 
unix://filepath
+
+ +

The following parameters can be set via command line options +(or in code via AVOptions): +

+
+
timeout
+

Timeout in ms. +

+
listen
+

Create the Unix socket in listening mode. +

+
+ + +

17. Device Options

+ +

The libavdevice library provides the same interface as +libavformat. Namely, an input device is considered like a demuxer, and +an output device like a muxer, and the interface and generic device +options are the same provided by libavformat (see the ffmpeg-formats +manual). +

+

In addition each input or output device may support so-called private +options, which are specific for that component. +

+

Options may be set by specifying -option value in the +FFmpeg tools, or by setting the value explicitly in the device +AVFormatContext options or using the ‘libavutil/opt.h’ API +for programmatic use. +

+ + +

18. Input Devices

+ +

Input devices are configured elements in FFmpeg which allow to access +the data coming from a multimedia device attached to your system. +

+

When you configure your FFmpeg build, all the supported input devices +are enabled by default. You can list all available ones using the +configure option "–list-indevs". +

+

You can disable all the input devices using the configure option +"–disable-indevs", and selectively enable an input device using the +option "–enable-indev=INDEV", or you can disable a particular +input device using the option "–disable-indev=INDEV". +

+

The option "-formats" of the ff* tools will display the list of +supported input devices (amongst the demuxers). +

+

A description of the currently available input devices follows. +

+ +

18.1 alsa

+ +

ALSA (Advanced Linux Sound Architecture) input device. +

+

To enable this input device during configuration you need libasound +installed on your system. +

+

This device allows capturing from an ALSA device. The name of the +device to capture has to be an ALSA card identifier. +

+

An ALSA identifier has the syntax: +

 
hw:CARD[,DEV[,SUBDEV]]
+
+ +

where the DEV and SUBDEV components are optional. +

+

The three arguments (in order: CARD,DEV,SUBDEV) +specify card number or identifier, device number and subdevice number +(-1 means any). +

+

To see the list of cards currently recognized by your system check the +files ‘/proc/asound/cards’ and ‘/proc/asound/devices’. +

+

For example to capture with ffmpeg from an ALSA device with +card id 0, you may run the command: +

 
ffmpeg -f alsa -i hw:0 alsaout.wav
+
+ +

For more information see: +http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html +

+ +

18.2 avfoundation

+ +

AVFoundation input device. +

+

AVFoundation is the currently recommended framework by Apple for streamgrabbing on OSX >= 10.7 as well as on iOS. +The older QTKit framework has been marked deprecated since OSX version 10.7. +

+

The filename passed as input is parsed to contain either a device name or index. +The device index can also be given by using -video_device_index. +A given device index will override any given device name. +If the desired device consists of numbers only, use -video_device_index to identify it. +The default device will be chosen if an empty string or the device name "default" is given. +The available devices can be enumerated by using -list_devices. +

+
 
ffmpeg -f avfoundation -i "0" out.mpg
+
+ +
 
ffmpeg -f avfoundation -video_device_index 0 -i "" out.mpg
+
+ +
 
ffmpeg -f avfoundation -i "default" out.mpg
+
+ +
 
ffmpeg -f avfoundation -list_devices true -i ""
+
+ + +

18.3 bktr

+ +

BSD video input device. +

+ +

18.4 dshow

+ +

Windows DirectShow input device. +

+

DirectShow support is enabled when FFmpeg is built with the mingw-w64 project. +Currently only audio and video devices are supported. +

+

Multiple devices may be opened as separate inputs, but they may also be +opened on the same input, which should improve synchronism between them. +

+

The input name should be in the format: +

+
 
TYPE=NAME[:TYPE=NAME]
+
+ +

where TYPE can be either audio or video, +and NAME is the device’s name. +

+ +

18.4.1 Options

+ +

If no options are specified, the device’s defaults are used. +If the device does not support the requested options, it will +fail to open. +

+
+
video_size
+

Set the video size in the captured video. +

+
+
framerate
+

Set the frame rate in the captured video. +

+
+
sample_rate
+

Set the sample rate (in Hz) of the captured audio. +

+
+
sample_size
+

Set the sample size (in bits) of the captured audio. +

+
+
channels
+

Set the number of channels in the captured audio. +

+
+
list_devices
+

If set to ‘true’, print a list of devices and exit. +

+
+
list_options
+

If set to ‘true’, print a list of selected device’s options +and exit. +

+
+
video_device_number
+

Set video device number for devices with same name (starts at 0, +defaults to 0). +

+
+
audio_device_number
+

Set audio device number for devices with same name (starts at 0, +defaults to 0). +

+
+
pixel_format
+

Select pixel format to be used by DirectShow. This may only be set when +the video codec is not set or set to rawvideo. +

+
+
audio_buffer_size
+

Set audio device buffer size in milliseconds (which can directly +impact latency, depending on the device). +Defaults to using the audio device’s +default buffer size (typically some multiple of 500ms). +Setting this value too low can degrade performance. +See also +http://msdn.microsoft.com/en-us/library/windows/desktop/dd377582(v=vs.85).aspx +

+
+
+ + +

18.4.2 Examples

+ +
    +
  • +Print the list of DirectShow supported devices and exit: +
     
    $ ffmpeg -list_devices true -f dshow -i dummy
    +
    + +
  • +Open video device Camera: +
     
    $ ffmpeg -f dshow -i video="Camera"
    +
    + +
  • +Open second video device with name Camera: +
     
    $ ffmpeg -f dshow -video_device_number 1 -i video="Camera"
    +
    + +
  • +Open video device Camera and audio device Microphone: +
     
    $ ffmpeg -f dshow -i video="Camera":audio="Microphone"
    +
    + +
  • +Print the list of supported options in selected device and exit: +
     
    $ ffmpeg -list_options true -f dshow -i video="Camera"
    +
    + +
+ + +

18.5 dv1394

+ +

Linux DV 1394 input device. +

+ +

18.6 fbdev

+ +

Linux framebuffer input device. +

+

The Linux framebuffer is a graphic hardware-independent abstraction +layer to show graphics on a computer monitor, typically on the +console. It is accessed through a file device node, usually +‘/dev/fb0’. +

+

For more detailed information read the file +Documentation/fb/framebuffer.txt included in the Linux source tree. +

+

To record from the framebuffer device ‘/dev/fb0’ with +ffmpeg: +

 
ffmpeg -f fbdev -r 10 -i /dev/fb0 out.avi
+
+ +

You can take a single screenshot image with the command: +

 
ffmpeg -f fbdev -frames:v 1 -r 1 -i /dev/fb0 screenshot.jpeg
+
+ +

See also http://linux-fbdev.sourceforge.net/, and fbset(1). +

+ +

18.7 gdigrab

+ +

Win32 GDI-based screen capture device. +

+

This device allows you to capture a region of the display on Windows. +

+

There are two options for the input filename: +

 
desktop
+
+

or +

 
title=window_title
+
+ +

The first option will capture the entire desktop, or a fixed region of the +desktop. The second option will instead capture the contents of a single +window, regardless of its position on the screen. +

+

For example, to grab the entire desktop using ffmpeg: +

 
ffmpeg -f gdigrab -framerate 6 -i desktop out.mpg
+
+ +

Grab a 640x480 region at position 10,20: +

 
ffmpeg -f gdigrab -framerate 6 -offset_x 10 -offset_y 20 -video_size vga -i desktop out.mpg
+
+ +

Grab the contents of the window named "Calculator" +

 
ffmpeg -f gdigrab -framerate 6 -i title=Calculator out.mpg
+
+ + +

18.7.1 Options

+ +
+
draw_mouse
+

Specify whether to draw the mouse pointer. Use the value 0 to +not draw the pointer. Default value is 1. +

+
+
framerate
+

Set the grabbing frame rate. Default value is ntsc, +corresponding to a frame rate of 30000/1001. +

+
+
show_region
+

Show grabbed region on screen. +

+

If show_region is specified with 1, then the grabbing +region will be indicated on screen. With this option, it is easy to +know what is being grabbed if only a portion of the screen is grabbed. +

+

Note that show_region is incompatible with grabbing the contents +of a single window. +

+

For example: +

 
ffmpeg -f gdigrab -show_region 1 -framerate 6 -video_size cif -offset_x 10 -offset_y 20 -i desktop out.mpg
+
+ +
+
video_size
+

Set the video frame size. The default is to capture the full screen if ‘desktop’ is selected, or the full window size if ‘title=window_title’ is selected. +

+
+
offset_x
+

When capturing a region with video_size, set the distance from the left edge of the screen or desktop. +

+

Note that the offset calculation is from the top left corner of the primary monitor on Windows. If you have a monitor positioned to the left of your primary monitor, you will need to use a negative offset_x value to move the region to that monitor. +

+
+
offset_y
+

When capturing a region with video_size, set the distance from the top edge of the screen or desktop. +

+

Note that the offset calculation is from the top left corner of the primary monitor on Windows. If you have a monitor positioned above your primary monitor, you will need to use a negative offset_y value to move the region to that monitor. +

+
+
+ + +

18.8 iec61883

+ +

FireWire DV/HDV input device using libiec61883. +

+

To enable this input device, you need libiec61883, libraw1394 and +libavc1394 installed on your system. Use the configure option +--enable-libiec61883 to compile with the device enabled. +

+

The iec61883 capture device supports capturing from a video device +connected via IEEE1394 (FireWire), using libiec61883 and the new Linux +FireWire stack (juju). This is the default DV/HDV input method in Linux +Kernel 2.6.37 and later, since the old FireWire stack was removed. +

+

Specify the FireWire port to be used as input file, or "auto" +to choose the first port connected. +

+ +

18.8.1 Options

+ +
+
dvtype
+

Override autodetection of DV/HDV. This should only be used if auto +detection does not work, or if usage of a different device type +should be prohibited. Treating a DV device as HDV (or vice versa) will +not work and result in undefined behavior. +The values ‘auto’, ‘dv’ and ‘hdv’ are supported. +

+
+
dvbuffer
+

Set maxiumum size of buffer for incoming data, in frames. For DV, this +is an exact value. For HDV, it is not frame exact, since HDV does +not have a fixed frame size. +

+
+
dvguid
+

Select the capture device by specifying it’s GUID. Capturing will only +be performed from the specified device and fails if no device with the +given GUID is found. This is useful to select the input if multiple +devices are connected at the same time. +Look at /sys/bus/firewire/devices to find out the GUIDs. +

+
+
+ + +

18.8.2 Examples

+ +
    +
  • +Grab and show the input of a FireWire DV/HDV device. +
     
    ffplay -f iec61883 -i auto
    +
    + +
  • +Grab and record the input of a FireWire DV/HDV device, +using a packet buffer of 100000 packets if the source is HDV. +
     
    ffmpeg -f iec61883 -i auto -hdvbuffer 100000 out.mpg
    +
    + +
+ + +

18.9 jack

+ +

JACK input device. +

+

To enable this input device during configuration you need libjack +installed on your system. +

+

A JACK input device creates one or more JACK writable clients, one for +each audio channel, with name client_name:input_N, where +client_name is the name provided by the application, and N +is a number which identifies the channel. +Each writable client will send the acquired data to the FFmpeg input +device. +

+

Once you have created one or more JACK readable clients, you need to +connect them to one or more JACK writable clients. +

+

To connect or disconnect JACK clients you can use the jack_connect +and jack_disconnect programs, or do it through a graphical interface, +for example with qjackctl. +

+

To list the JACK clients and their properties you can invoke the command +jack_lsp. +

+

Follows an example which shows how to capture a JACK readable client +with ffmpeg. +

 
# Create a JACK writable client with name "ffmpeg".
+$ ffmpeg -f jack -i ffmpeg -y out.wav
+
+# Start the sample jack_metro readable client.
+$ jack_metro -b 120 -d 0.2 -f 4000
+
+# List the current JACK clients.
+$ jack_lsp -c
+system:capture_1
+system:capture_2
+system:playback_1
+system:playback_2
+ffmpeg:input_1
+metro:120_bpm
+
+# Connect metro to the ffmpeg writable client.
+$ jack_connect metro:120_bpm ffmpeg:input_1
+
+ +

For more information read: +http://jackaudio.org/ +

+ +

18.10 lavfi

+ +

Libavfilter input virtual device. +

+

This input device reads data from the open output pads of a libavfilter +filtergraph. +

+

For each filtergraph open output, the input device will create a +corresponding stream which is mapped to the generated output. Currently +only video data is supported. The filtergraph is specified through the +option ‘graph’. +

+ +

18.10.1 Options

+ +
+
graph
+

Specify the filtergraph to use as input. Each video open output must be +labelled by a unique string of the form "outN", where N is a +number starting from 0 corresponding to the mapped input stream +generated by the device. +The first unlabelled output is automatically assigned to the "out0" +label, but all the others need to be specified explicitly. +

+

If not specified defaults to the filename specified for the input +device. +

+
+
graph_file
+

Set the filename of the filtergraph to be read and sent to the other +filters. Syntax of the filtergraph is the same as the one specified by +the option graph. +

+
+
+ + +

18.10.2 Examples

+ +
    +
  • +Create a color video stream and play it back with ffplay: +
     
    ffplay -f lavfi -graph "color=c=pink [out0]" dummy
    +
    + +
  • +As the previous example, but use filename for specifying the graph +description, and omit the "out0" label: +
     
    ffplay -f lavfi color=c=pink
    +
    + +
  • +Create three different video test filtered sources and play them: +
     
    ffplay -f lavfi -graph "testsrc [out0]; testsrc,hflip [out1]; testsrc,negate [out2]" test3
    +
    + +
  • +Read an audio stream from a file using the amovie source and play it +back with ffplay: +
     
    ffplay -f lavfi "amovie=test.wav"
    +
    + +
  • +Read an audio stream and a video stream and play it back with +ffplay: +
     
    ffplay -f lavfi "movie=test.avi[out0];amovie=test.wav[out1]"
    +
    + +
+ + +

18.11 libdc1394

+ +

IIDC1394 input device, based on libdc1394 and libraw1394. +

+ +

18.12 openal

+ +

The OpenAL input device provides audio capture on all systems with a +working OpenAL 1.1 implementation. +

+

To enable this input device during configuration, you need OpenAL +headers and libraries installed on your system, and need to configure +FFmpeg with --enable-openal. +

+

OpenAL headers and libraries should be provided as part of your OpenAL +implementation, or as an additional download (an SDK). Depending on your +installation you may need to specify additional flags via the +--extra-cflags and --extra-ldflags for allowing the build +system to locate the OpenAL headers and libraries. +

+

An incomplete list of OpenAL implementations follows: +

+
+
Creative
+

The official Windows implementation, providing hardware acceleration +with supported devices and software fallback. +See http://openal.org/. +

+
OpenAL Soft
+

Portable, open source (LGPL) software implementation. Includes +backends for the most common sound APIs on the Windows, Linux, +Solaris, and BSD operating systems. +See http://kcat.strangesoft.net/openal.html. +

+
Apple
+

OpenAL is part of Core Audio, the official Mac OS X Audio interface. +See http://developer.apple.com/technologies/mac/audio-and-video.html +

+
+ +

This device allows one to capture from an audio input device handled +through OpenAL. +

+

You need to specify the name of the device to capture in the provided +filename. If the empty string is provided, the device will +automatically select the default device. You can get the list of the +supported devices by using the option list_devices. +

+ +

18.12.1 Options

+ +
+
channels
+

Set the number of channels in the captured audio. Only the values +‘1’ (monaural) and ‘2’ (stereo) are currently supported. +Defaults to ‘2’. +

+
+
sample_size
+

Set the sample size (in bits) of the captured audio. Only the values +‘8’ and ‘16’ are currently supported. Defaults to +‘16’. +

+
+
sample_rate
+

Set the sample rate (in Hz) of the captured audio. +Defaults to ‘44.1k’. +

+
+
list_devices
+

If set to ‘true’, print a list of devices and exit. +Defaults to ‘false’. +

+
+
+ + +

18.12.2 Examples

+ +

Print the list of OpenAL supported devices and exit: +

 
$ ffmpeg -list_devices true -f openal -i dummy out.ogg
+
+ +

Capture from the OpenAL device ‘DR-BT101 via PulseAudio’: +

 
$ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out.ogg
+
+ +

Capture from the default device (note the empty string ” as filename): +

 
$ ffmpeg -f openal -i '' out.ogg
+
+ +

Capture from two devices simultaneously, writing to two different files, +within the same ffmpeg command: +

 
$ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out1.ogg -f openal -i 'ALSA Default' out2.ogg
+
+

Note: not all OpenAL implementations support multiple simultaneous capture - +try the latest OpenAL Soft if the above does not work. +

+ +

18.13 oss

+ +

Open Sound System input device. +

+

The filename to provide to the input device is the device node +representing the OSS input device, and is usually set to +‘/dev/dsp’. +

+

For example to grab from ‘/dev/dsp’ using ffmpeg use the +command: +

 
ffmpeg -f oss -i /dev/dsp /tmp/oss.wav
+
+ +

For more information about OSS see: +http://manuals.opensound.com/usersguide/dsp.html +

+ +

18.14 pulse

+ +

PulseAudio input device. +

+

To enable this output device you need to configure FFmpeg with --enable-libpulse. +

+

The filename to provide to the input device is a source device or the +string "default" +

+

To list the PulseAudio source devices and their properties you can invoke +the command pactl list sources. +

+

More information about PulseAudio can be found on http://www.pulseaudio.org. +

+ +

18.14.1 Options

+
+
server
+

Connect to a specific PulseAudio server, specified by an IP address. +Default server is used when not provided. +

+
+
name
+

Specify the application name PulseAudio will use when showing active clients, +by default it is the LIBAVFORMAT_IDENT string. +

+
+
stream_name
+

Specify the stream name PulseAudio will use when showing active streams, +by default it is "record". +

+
+
sample_rate
+

Specify the samplerate in Hz, by default 48kHz is used. +

+
+
channels
+

Specify the channels in use, by default 2 (stereo) is set. +

+
+
frame_size
+

Specify the number of bytes per frame, by default it is set to 1024. +

+
+
fragment_size
+

Specify the minimal buffering fragment in PulseAudio, it will affect the +audio latency. By default it is unset. +

+
+ + +

18.14.2 Examples

+

Record a stream from default device: +

 
ffmpeg -f pulse -i default /tmp/pulse.wav
+
+ + +

18.15 qtkit

+ +

QTKit input device. +

+

The filename passed as input is parsed to contain either a device name or index. +The device index can also be given by using -video_device_index. +A given device index will override any given device name. +If the desired device consists of numbers only, use -video_device_index to identify it. +The default device will be chosen if an empty string or the device name "default" is given. +The available devices can be enumerated by using -list_devices. +

+
 
ffmpeg -f qtkit -i "0" out.mpg
+
+ +
 
ffmpeg -f qtkit -video_device_index 0 -i "" out.mpg
+
+ +
 
ffmpeg -f qtkit -i "default" out.mpg
+
+ +
 
ffmpeg -f qtkit -list_devices true -i ""
+
+ + +

18.16 sndio

+ +

sndio input device. +

+

To enable this input device during configuration you need libsndio +installed on your system. +

+

The filename to provide to the input device is the device node +representing the sndio input device, and is usually set to +‘/dev/audio0’. +

+

For example to grab from ‘/dev/audio0’ using ffmpeg use the +command: +

 
ffmpeg -f sndio -i /dev/audio0 /tmp/oss.wav
+
+ + +

18.17 video4linux2, v4l2

+ +

Video4Linux2 input video device. +

+

"v4l2" can be used as alias for "video4linux2". +

+

If FFmpeg is built with v4l-utils support (by using the +--enable-libv4l2 configure option), it is possible to use it with the +-use_libv4l2 input device option. +

+

The name of the device to grab is a file device node, usually Linux +systems tend to automatically create such nodes when the device +(e.g. an USB webcam) is plugged into the system, and has a name of the +kind ‘/dev/videoN’, where N is a number associated to +the device. +

+

Video4Linux2 devices usually support a limited set of +widthxheight sizes and frame rates. You can check which are +supported using -list_formats all for Video4Linux2 devices. +Some devices, like TV cards, support one or more standards. It is possible +to list all the supported standards using -list_standards all. +

+

The time base for the timestamps is 1 microsecond. Depending on the kernel +version and configuration, the timestamps may be derived from the real time +clock (origin at the Unix Epoch) or the monotonic clock (origin usually at +boot time, unaffected by NTP or manual changes to the clock). The +‘-timestamps abs’ or ‘-ts abs’ option can be used to force +conversion into the real time clock. +

+

Some usage examples of the video4linux2 device with ffmpeg +and ffplay: +

    +
  • +Grab and show the input of a video4linux2 device: +
     
    ffplay -f video4linux2 -framerate 30 -video_size hd720 /dev/video0
    +
    + +
  • +Grab and record the input of a video4linux2 device, leave the +frame rate and size as previously set: +
     
    ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 out.mpeg
    +
    +
+ +

For more information about Video4Linux, check http://linuxtv.org/. +

+ +

18.17.1 Options

+ +
+
standard
+

Set the standard. Must be the name of a supported standard. To get a +list of the supported standards, use the ‘list_standards’ +option. +

+
+
channel
+

Set the input channel number. Default to -1, which means using the +previously selected channel. +

+
+
video_size
+

Set the video frame size. The argument must be a string in the form +WIDTHxHEIGHT or a valid size abbreviation. +

+
+
pixel_format
+

Select the pixel format (only valid for raw video input). +

+
+
input_format
+

Set the preferred pixel format (for raw video) or a codec name. +This option allows one to select the input format, when several are +available. +

+
+
framerate
+

Set the preferred video frame rate. +

+
+
list_formats
+

List available formats (supported pixel formats, codecs, and frame +sizes) and exit. +

+

Available values are: +

+
all
+

Show all available (compressed and non-compressed) formats. +

+
+
raw
+

Show only raw video (non-compressed) formats. +

+
+
compressed
+

Show only compressed formats. +

+
+ +
+
list_standards
+

List supported standards and exit. +

+

Available values are: +

+
all
+

Show all supported standards. +

+
+ +
+
timestamps, ts
+

Set type of timestamps for grabbed frames. +

+

Available values are: +

+
default
+

Use timestamps from the kernel. +

+
+
abs
+

Use absolute timestamps (wall clock). +

+
+
mono2abs
+

Force conversion from monotonic to absolute timestamps. +

+
+ +

Default value is default. +

+
+ + +

18.18 vfwcap

+ +

VfW (Video for Windows) capture input device. +

+

The filename passed as input is the capture driver number, ranging from +0 to 9. You may use "list" as filename to print a list of drivers. Any +other filename will be interpreted as device number 0. +

+ +

18.19 x11grab

+ +

X11 video input device. +

+

This device allows one to capture a region of an X11 display. +

+

The filename passed as input has the syntax: +

 
[hostname]:display_number.screen_number[+x_offset,y_offset]
+
+ +

hostname:display_number.screen_number specifies the +X11 display name of the screen to grab from. hostname can be +omitted, and defaults to "localhost". The environment variable +DISPLAY contains the default display name. +

+

x_offset and y_offset specify the offsets of the grabbed +area with respect to the top-left border of the X11 screen. They +default to 0. +

+

Check the X11 documentation (e.g. man X) for more detailed information. +

+

Use the dpyinfo program for getting basic information about the +properties of your X11 display (e.g. grep for "name" or "dimensions"). +

+

For example to grab from ‘:0.0’ using ffmpeg: +

 
ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0 out.mpg
+
+ +

Grab at position 10,20: +

 
ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
+
+ + +

18.19.1 Options

+ +
+
draw_mouse
+

Specify whether to draw the mouse pointer. A value of 0 specify +not to draw the pointer. Default value is 1. +

+
+
follow_mouse
+

Make the grabbed area follow the mouse. The argument can be +centered or a number of pixels PIXELS. +

+

When it is specified with "centered", the grabbing region follows the mouse +pointer and keeps the pointer at the center of region; otherwise, the region +follows only when the mouse pointer reaches within PIXELS (greater than +zero) to the edge of region. +

+

For example: +

 
ffmpeg -f x11grab -follow_mouse centered -framerate 25 -video_size cif -i :0.0 out.mpg
+
+ +

To follow only when the mouse pointer reaches within 100 pixels to edge: +

 
ffmpeg -f x11grab -follow_mouse 100 -framerate 25 -video_size cif -i :0.0 out.mpg
+
+ +
+
framerate
+

Set the grabbing frame rate. Default value is ntsc, +corresponding to a frame rate of 30000/1001. +

+
+
show_region
+

Show grabbed region on screen. +

+

If show_region is specified with 1, then the grabbing +region will be indicated on screen. With this option, it is easy to +know what is being grabbed if only a portion of the screen is grabbed. +

+

For example: +

 
ffmpeg -f x11grab -show_region 1 -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
+
+ +

With follow_mouse: +

 
ffmpeg -f x11grab -follow_mouse centered -show_region 1 -framerate 25 -video_size cif -i :0.0 out.mpg
+
+ +
+
video_size
+

Set the video frame size. Default value is vga. +

+
+ + +

19. Resampler Options

+ +

The audio resampler supports the following named options. +

+

Options may be set by specifying -option value in the +FFmpeg tools, option=value for the aresample filter, +by setting the value explicitly in the +SwrContext options or using the ‘libavutil/opt.h’ API for +programmatic use. +

+
+
ich, in_channel_count
+

Set the number of input channels. Default value is 0. Setting this +value is not mandatory if the corresponding channel layout +‘in_channel_layout’ is set. +

+
+
och, out_channel_count
+

Set the number of output channels. Default value is 0. Setting this +value is not mandatory if the corresponding channel layout +‘out_channel_layout’ is set. +

+
+
uch, used_channel_count
+

Set the number of used input channels. Default value is 0. This option is +only used for special remapping. +

+
+
isr, in_sample_rate
+

Set the input sample rate. Default value is 0. +

+
+
osr, out_sample_rate
+

Set the output sample rate. Default value is 0. +

+
+
isf, in_sample_fmt
+

Specify the input sample format. It is set by default to none. +

+
+
osf, out_sample_fmt
+

Specify the output sample format. It is set by default to none. +

+
+
tsf, internal_sample_fmt
+

Set the internal sample format. Default value is none. +This will automatically be chosen when it is not explicitly set. +

+
+
icl, in_channel_layout
+
ocl, out_channel_layout
+

Set the input/output channel layout. +

+

See (ffmpeg-utils)channel layout syntax +for the required syntax. +

+
+
clev, center_mix_level
+

Set the center mix level. It is a value expressed in deciBel, and must be +in the interval [-32,32]. +

+
+
slev, surround_mix_level
+

Set the surround mix level. It is a value expressed in deciBel, and must +be in the interval [-32,32]. +

+
+
lfe_mix_level
+

Set LFE mix into non LFE level. It is used when there is a LFE input but no +LFE output. It is a value expressed in deciBel, and must +be in the interval [-32,32]. +

+
+
rmvol, rematrix_volume
+

Set rematrix volume. Default value is 1.0. +

+
+
rematrix_maxval
+

Set maximum output value for rematrixing. +This can be used to prevent clipping vs. preventing volumn reduction +A value of 1.0 prevents cliping. +

+
+
flags, swr_flags
+

Set flags used by the converter. Default value is 0. +

+

It supports the following individual flags: +

+
res
+

force resampling, this flag forces resampling to be used even when the +input and output sample rates match. +

+
+ +
+
dither_scale
+

Set the dither scale. Default value is 1. +

+
+
dither_method
+

Set dither method. Default value is 0. +

+

Supported values: +

+
rectangular
+

select rectangular dither +

+
triangular
+

select triangular dither +

+
triangular_hp
+

select triangular dither with high pass +

+
lipshitz
+

select lipshitz noise shaping dither +

+
shibata
+

select shibata noise shaping dither +

+
low_shibata
+

select low shibata noise shaping dither +

+
high_shibata
+

select high shibata noise shaping dither +

+
f_weighted
+

select f-weighted noise shaping dither +

+
modified_e_weighted
+

select modified-e-weighted noise shaping dither +

+
improved_e_weighted
+

select improved-e-weighted noise shaping dither +

+
+
+ +
+
resampler
+

Set resampling engine. Default value is swr. +

+

Supported values: +

+
swr
+

select the native SW Resampler; filter options precision and cheby are not +applicable in this case. +

+
soxr
+

select the SoX Resampler (where available); compensation, and filter options +filter_size, phase_shift, filter_type & kaiser_beta, are not applicable in this +case. +

+
+ +
+
filter_size
+

For swr only, set resampling filter size, default value is 32. +

+
+
phase_shift
+

For swr only, set resampling phase shift, default value is 10, and must be in +the interval [0,30]. +

+
+
linear_interp
+

Use Linear Interpolation if set to 1, default value is 0. +

+
+
cutoff
+

Set cutoff frequency (swr: 6dB point; soxr: 0dB point) ratio; must be a float +value between 0 and 1. Default value is 0.97 with swr, and 0.91 with soxr +(which, with a sample-rate of 44100, preserves the entire audio band to 20kHz). +

+
+
precision
+

For soxr only, the precision in bits to which the resampled signal will be +calculated. The default value of 20 (which, with suitable dithering, is +appropriate for a destination bit-depth of 16) gives SoX’s ’High Quality’; a +value of 28 gives SoX’s ’Very High Quality’. +

+
+
cheby
+

For soxr only, selects passband rolloff none (Chebyshev) & higher-precision +approximation for ’irrational’ ratios. Default value is 0. +

+
+
async
+

For swr only, simple 1 parameter audio sync to timestamps using stretching, +squeezing, filling and trimming. Setting this to 1 will enable filling and +trimming, larger values represent the maximum amount in samples that the data +may be stretched or squeezed for each second. +Default value is 0, thus no compensation is applied to make the samples match +the audio timestamps. +

+
+
first_pts
+

For swr only, assume the first pts should be this value. The time unit is 1 / sample rate. +This allows for padding/trimming at the start of stream. By default, no +assumption is made about the first frame’s expected pts, so no padding or +trimming is done. For example, this could be set to 0 to pad the beginning with +silence if an audio stream starts after the video stream or to trim any samples +with a negative pts due to encoder delay. +

+
+
min_comp
+

For swr only, set the minimum difference between timestamps and audio data (in +seconds) to trigger stretching/squeezing/filling or trimming of the +data to make it match the timestamps. The default is that +stretching/squeezing/filling and trimming is disabled +(‘min_comp’ = FLT_MAX). +

+
+
min_hard_comp
+

For swr only, set the minimum difference between timestamps and audio data (in +seconds) to trigger adding/dropping samples to make it match the +timestamps. This option effectively is a threshold to select between +hard (trim/fill) and soft (squeeze/stretch) compensation. Note that +all compensation is by default disabled through ‘min_comp’. +The default is 0.1. +

+
+
comp_duration
+

For swr only, set duration (in seconds) over which data is stretched/squeezed +to make it match the timestamps. Must be a non-negative double float value, +default value is 1.0. +

+
+
max_soft_comp
+

For swr only, set maximum factor by which data is stretched/squeezed to make it +match the timestamps. Must be a non-negative double float value, default value +is 0. +

+
+
matrix_encoding
+

Select matrixed stereo encoding. +

+

It accepts the following values: +

+
none
+

select none +

+
dolby
+

select Dolby +

+
dplii
+

select Dolby Pro Logic II +

+
+ +

Default value is none. +

+
+
filter_type
+

For swr only, select resampling filter type. This only affects resampling +operations. +

+

It accepts the following values: +

+
cubic
+

select cubic +

+
blackman_nuttall
+

select Blackman Nuttall Windowed Sinc +

+
kaiser
+

select Kaiser Windowed Sinc +

+
+ +
+
kaiser_beta
+

For swr only, set Kaiser Window Beta value. Must be an integer in the +interval [2,16], default value is 9. +

+
+
output_sample_bits
+

For swr only, set number of used output sample bits for dithering. Must be an integer in the +interval [0,64], default value is 0, which means it’s not used. +

+
+
+ +

+

+

20. Scaler Options

+ +

The video scaler supports the following named options. +

+

Options may be set by specifying -option value in the +FFmpeg tools. For programmatic use, they can be set explicitly in the +SwsContext options or through the ‘libavutil/opt.h’ API. +

+
+
+

+

+
sws_flags
+

Set the scaler flags. This is also used to set the scaling +algorithm. Only a single algorithm should be selected. +

+

It accepts the following values: +

+
fast_bilinear
+

Select fast bilinear scaling algorithm. +

+
+
bilinear
+

Select bilinear scaling algorithm. +

+
+
bicubic
+

Select bicubic scaling algorithm. +

+
+
experimental
+

Select experimental scaling algorithm. +

+
+
neighbor
+

Select nearest neighbor rescaling algorithm. +

+
+
area
+

Select averaging area rescaling algorithm. +

+
+
bicublin
+

Select bicubic scaling algorithm for the luma component, bilinear for +chroma components. +

+
+
gauss
+

Select Gaussian rescaling algorithm. +

+
+
sinc
+

Select sinc rescaling algorithm. +

+
+
lanczos
+

Select lanczos rescaling algorithm. +

+
+
spline
+

Select natural bicubic spline rescaling algorithm. +

+
+
print_info
+

Enable printing/debug logging. +

+
+
accurate_rnd
+

Enable accurate rounding. +

+
+
full_chroma_int
+

Enable full chroma interpolation. +

+
+
full_chroma_inp
+

Select full chroma input. +

+
+
bitexact
+

Enable bitexact output. +

+
+ +
+
srcw
+

Set source width. +

+
+
srch
+

Set source height. +

+
+
dstw
+

Set destination width. +

+
+
dsth
+

Set destination height. +

+
+
src_format
+

Set source pixel format (must be expressed as an integer). +

+
+
dst_format
+

Set destination pixel format (must be expressed as an integer). +

+
+
src_range
+

Select source range. +

+
+
dst_range
+

Select destination range. +

+
+
param0, param1
+

Set scaling algorithm parameters. The specified values are specific of +some scaling algorithms and ignored by others. The specified values +are floating point number values. +

+
+
sws_dither
+

Set the dithering algorithm. Accepts one of the following +values. Default value is ‘auto’. +

+
+
auto
+

automatic choice +

+
+
none
+

no dithering +

+
+
bayer
+

bayer dither +

+
+
ed
+

error diffusion dither +

+
+
a_dither
+

arithmetic dither, based using addition +

+
+
x_dither
+

arithmetic dither, based using xor (more random/less apparent patterning that +a_dither). +

+
+
+ +
+
+ + +

21. Filtering Introduction

+ +

Filtering in FFmpeg is enabled through the libavfilter library. +

+

In libavfilter, a filter can have multiple inputs and multiple +outputs. +To illustrate the sorts of things that are possible, we consider the +following filtergraph. +

+
 
                [main]
+input --> split ---------------------> overlay --> output
+            |                             ^
+            |[tmp]                  [flip]|
+            +-----> crop --> vflip -------+
+
+ +

This filtergraph splits the input stream in two streams, then sends one +stream through the crop filter and the vflip filter, before merging it +back with the other stream by overlaying it on top. You can use the +following command to achieve this: +

+
 
ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT
+
+ +

The result will be that the top half of the video is mirrored +onto the bottom half of the output video. +

+

Filters in the same linear chain are separated by commas, and distinct +linear chains of filters are separated by semicolons. In our example, +crop,vflip are in one linear chain, split and +overlay are separately in another. The points where the linear +chains join are labelled by names enclosed in square brackets. In the +example, the split filter generates two outputs that are associated to +the labels [main] and [tmp]. +

+

The stream sent to the second output of split, labelled as +[tmp], is processed through the crop filter, which crops +away the lower half part of the video, and then vertically flipped. The +overlay filter takes in input the first unchanged output of the +split filter (which was labelled as [main]), and overlay on its +lower half the output generated by the crop,vflip filterchain. +

+

Some filters take in input a list of parameters: they are specified +after the filter name and an equal sign, and are separated from each other +by a colon. +

+

There exist so-called source filters that do not have an +audio/video input, and sink filters that will not have audio/video +output. +

+ + +

22. graph2dot

+ +

The ‘graph2dot’ program included in the FFmpeg ‘tools’ +directory can be used to parse a filtergraph description and issue a +corresponding textual representation in the dot language. +

+

Invoke the command: +

 
graph2dot -h
+
+ +

to see how to use ‘graph2dot’. +

+

You can then pass the dot description to the ‘dot’ program (from +the graphviz suite of programs) and obtain a graphical representation +of the filtergraph. +

+

For example the sequence of commands: +

 
echo GRAPH_DESCRIPTION | \
+tools/graph2dot -o graph.tmp && \
+dot -Tpng graph.tmp -o graph.png && \
+display graph.png
+
+ +

can be used to create and display an image representing the graph +described by the GRAPH_DESCRIPTION string. Note that this string must be +a complete self-contained graph, with its inputs and outputs explicitly defined. +For example if your command line is of the form: +

 
ffmpeg -i infile -vf scale=640:360 outfile
+
+

your GRAPH_DESCRIPTION string will need to be of the form: +

 
nullsrc,scale=640:360,nullsink
+
+

you may also need to set the nullsrc parameters and add a format +filter in order to simulate a specific input file. +

+ + +

23. Filtergraph description

+ +

A filtergraph is a directed graph of connected filters. It can contain +cycles, and there can be multiple links between a pair of +filters. Each link has one input pad on one side connecting it to one +filter from which it takes its input, and one output pad on the other +side connecting it to one filter accepting its output. +

+

Each filter in a filtergraph is an instance of a filter class +registered in the application, which defines the features and the +number of input and output pads of the filter. +

+

A filter with no input pads is called a "source", and a filter with no +output pads is called a "sink". +

+

+

+

23.1 Filtergraph syntax

+ +

A filtergraph has a textual representation, which is +recognized by the ‘-filter’/‘-vf’ and ‘-filter_complex’ +options in ffmpeg and ‘-vf’ in ffplay, and by the +avfilter_graph_parse()/avfilter_graph_parse2() functions defined in +‘libavfilter/avfilter.h’. +

+

A filterchain consists of a sequence of connected filters, each one +connected to the previous one in the sequence. A filterchain is +represented by a list of ","-separated filter descriptions. +

+

A filtergraph consists of a sequence of filterchains. A sequence of +filterchains is represented by a list of ";"-separated filterchain +descriptions. +

+

A filter is represented by a string of the form: +[in_link_1]...[in_link_N]filter_name=arguments[out_link_1]...[out_link_M] +

+

filter_name is the name of the filter class of which the +described filter is an instance of, and has to be the name of one of +the filter classes registered in the program. +The name of the filter class is optionally followed by a string +"=arguments". +

+

arguments is a string which contains the parameters used to +initialize the filter instance. It may have one of two forms: +

    +
  • +A ’:’-separated list of key=value pairs. + +
  • +A ’:’-separated list of value. In this case, the keys are assumed to be +the option names in the order they are declared. E.g. the fade filter +declares three options in this order – ‘type’, ‘start_frame’ and +‘nb_frames’. Then the parameter list in:0:30 means that the value +in is assigned to the option ‘type’, 0 to +‘start_frame’ and 30 to ‘nb_frames’. + +
  • +A ’:’-separated list of mixed direct value and long key=value +pairs. The direct value must precede the key=value pairs, and +follow the same constraints order of the previous point. The following +key=value pairs can be set in any preferred order. + +
+ +

If the option value itself is a list of items (e.g. the format filter +takes a list of pixel formats), the items in the list are usually separated by +’|’. +

+

The list of arguments can be quoted using the character "’" as initial +and ending mark, and the character ’\’ for escaping the characters +within the quoted text; otherwise the argument string is considered +terminated when the next special character (belonging to the set +"[]=;,") is encountered. +

+

The name and arguments of the filter are optionally preceded and +followed by a list of link labels. +A link label allows one to name a link and associate it to a filter output +or input pad. The preceding labels in_link_1 +... in_link_N, are associated to the filter input pads, +the following labels out_link_1 ... out_link_M, are +associated to the output pads. +

+

When two link labels with the same name are found in the +filtergraph, a link between the corresponding input and output pad is +created. +

+

If an output pad is not labelled, it is linked by default to the first +unlabelled input pad of the next filter in the filterchain. +For example in the filterchain +

 
nullsrc, split[L1], [L2]overlay, nullsink
+
+

the split filter instance has two output pads, and the overlay filter +instance two input pads. The first output pad of split is labelled +"L1", the first input pad of overlay is labelled "L2", and the second +output pad of split is linked to the second input pad of overlay, +which are both unlabelled. +

+

In a complete filterchain all the unlabelled filter input and output +pads must be connected. A filtergraph is considered valid if all the +filter input and output pads of all the filterchains are connected. +

+

Libavfilter will automatically insert scale filters where format +conversion is required. It is possible to specify swscale flags +for those automatically inserted scalers by prepending +sws_flags=flags; +to the filtergraph description. +

+

Here is a BNF description of the filtergraph syntax: +

 
NAME             ::= sequence of alphanumeric characters and '_'
+LINKLABEL        ::= "[" NAME "]"
+LINKLABELS       ::= LINKLABEL [LINKLABELS]
+FILTER_ARGUMENTS ::= sequence of chars (possibly quoted)
+FILTER           ::= [LINKLABELS] NAME ["=" FILTER_ARGUMENTS] [LINKLABELS]
+FILTERCHAIN      ::= FILTER [,FILTERCHAIN]
+FILTERGRAPH      ::= [sws_flags=flags;] FILTERCHAIN [;FILTERGRAPH]
+
+ + +

23.2 Notes on filtergraph escaping

+ +

Filtergraph description composition entails several levels of +escaping. See (ffmpeg-utils)quoting_and_escaping for more +information about the employed escaping procedure. +

+

A first level escaping affects the content of each filter option +value, which may contain the special character : used to +separate values, or one of the escaping characters \'. +

+

A second level escaping affects the whole filter description, which +may contain the escaping characters \' or the special +characters [],; used by the filtergraph description. +

+

Finally, when you specify a filtergraph on a shell commandline, you +need to perform a third level escaping for the shell special +characters contained within it. +

+

For example, consider the following string to be embedded in +the drawtext filter description ‘text’ value: +

 
this is a 'string': may contain one, or more, special characters
+
+ +

This string contains the ' special escaping character, and the +: special character, so it needs to be escaped in this way: +

 
text=this is a \'string\'\: may contain one, or more, special characters
+
+ +

A second level of escaping is required when embedding the filter +description in a filtergraph description, in order to escape all the +filtergraph special characters. Thus the example above becomes: +

 
drawtext=text=this is a \\\'string\\\'\\: may contain one\, or more\, special characters
+
+

(note that in addition to the \' escaping special characters, +also , needs to be escaped). +

+

Finally an additional level of escaping is needed when writing the +filtergraph description in a shell command, which depends on the +escaping rules of the adopted shell. For example, assuming that +\ is special and needs to be escaped with another \, the +previous string will finally result in: +

 
-vf "drawtext=text=this is a \\\\\\'string\\\\\\'\\\\: may contain one\\, or more\\, special characters"
+
+ + +

24. Timeline editing

+ +

Some filters support a generic ‘enable’ option. For the filters +supporting timeline editing, this option can be set to an expression which is +evaluated before sending a frame to the filter. If the evaluation is non-zero, +the filter will be enabled, otherwise the frame will be sent unchanged to the +next filter in the filtergraph. +

+

The expression accepts the following values: +

+
t
+

timestamp expressed in seconds, NAN if the input timestamp is unknown +

+
+
n
+

sequential number of the input frame, starting from 0 +

+
+
pos
+

the position in the file of the input frame, NAN if unknown +

+
+ +

Additionally, these filters support an ‘enable’ command that can be used +to re-define the expression. +

+

Like any other filtering option, the ‘enable’ option follows the same +rules. +

+

For example, to enable a blur filter (smartblur) from 10 seconds to 3 +minutes, and a curves filter starting at 3 seconds: +

 
smartblur = enable='between(t,10,3*60)',
+curves    = enable='gte(t,3)' : preset=cross_process
+
+ + + +

25. Audio Filters

+ +

When you configure your FFmpeg build, you can disable any of the +existing filters using --disable-filters. +The configure output will show the audio filters included in your +build. +

+

Below is a description of the currently available audio filters. +

+ +

25.1 aconvert

+ +

Convert the input audio format to the specified formats. +

+

This filter is deprecated. Use aformat instead. +

+

The filter accepts a string of the form: +"sample_format:channel_layout". +

+

sample_format specifies the sample format, and can be a string or the +corresponding numeric value defined in ‘libavutil/samplefmt.h’. Use ’p’ +suffix for a planar sample format. +

+

channel_layout specifies the channel layout, and can be a string +or the corresponding number value defined in ‘libavutil/channel_layout.h’. +

+

The special parameter "auto", signifies that the filter will +automatically select the output format depending on the output filter. +

+ +

25.1.1 Examples

+ +
    +
  • +Convert input to float, planar, stereo: +
     
    aconvert=fltp:stereo
    +
    + +
  • +Convert input to unsigned 8-bit, automatically select out channel layout: +
     
    aconvert=u8:auto
    +
    +
+ + +

25.2 adelay

+ +

Delay one or more audio channels. +

+

Samples in delayed channel are filled with silence. +

+

The filter accepts the following option: +

+
+
delays
+

Set list of delays in milliseconds for each channel separated by ’|’. +At least one delay greater than 0 should be provided. +Unused delays will be silently ignored. If number of given delays is +smaller than number of channels all remaining channels will not be delayed. +

+
+ + +

25.2.1 Examples

+ +
    +
  • +Delay first channel by 1.5 seconds, the third channel by 0.5 seconds and leave +the second channel (and any other channels that may be present) unchanged. +
     
    adelay=1500|0|500
    +
    +
+ + +

25.3 aecho

+ +

Apply echoing to the input audio. +

+

Echoes are reflected sound and can occur naturally amongst mountains +(and sometimes large buildings) when talking or shouting; digital echo +effects emulate this behaviour and are often used to help fill out the +sound of a single instrument or vocal. The time difference between the +original signal and the reflection is the delay, and the +loudness of the reflected signal is the decay. +Multiple echoes can have different delays and decays. +

+

A description of the accepted parameters follows. +

+
+
in_gain
+

Set input gain of reflected signal. Default is 0.6. +

+
+
out_gain
+

Set output gain of reflected signal. Default is 0.3. +

+
+
delays
+

Set list of time intervals in milliseconds between original signal and reflections +separated by ’|’. Allowed range for each delay is (0 - 90000.0]. +Default is 1000. +

+
+
decays
+

Set list of loudnesses of reflected signals separated by ’|’. +Allowed range for each decay is (0 - 1.0]. +Default is 0.5. +

+
+ + +

25.3.1 Examples

+ +
    +
  • +Make it sound as if there are twice as many instruments as are actually playing: +
     
    aecho=0.8:0.88:60:0.4
    +
    + +
  • +If delay is very short, then it sound like a (metallic) robot playing music: +
     
    aecho=0.8:0.88:6:0.4
    +
    + +
  • +A longer delay will sound like an open air concert in the mountains: +
     
    aecho=0.8:0.9:1000:0.3
    +
    + +
  • +Same as above but with one more mountain: +
     
    aecho=0.8:0.9:1000|1800:0.3|0.25
    +
    +
+ + +

25.4 aeval

+ +

Modify an audio signal according to the specified expressions. +

+

This filter accepts one or more expressions (one for each channel), +which are evaluated and used to modify a corresponding audio signal. +

+

It accepts the following parameters: +

+
+
exprs
+

Set the ’|’-separated expressions list for each separate channel. If +the number of input channels is greater than the number of +expressions, the last specified expression is used for the remaining +output channels. +

+
+
channel_layout, c
+

Set output channel layout. If not specified, the channel layout is +specified by the number of expressions. If set to ‘same’, it will +use by default the same input channel layout. +

+
+ +

Each expression in exprs can contain the following constants and functions: +

+
+
ch
+

channel number of the current expression +

+
+
n
+

number of the evaluated sample, starting from 0 +

+
+
s
+

sample rate +

+
+
t
+

time of the evaluated sample expressed in seconds +

+
+
nb_in_channels
+
nb_out_channels
+

input and output number of channels +

+
+
val(CH)
+

the value of input channel with number CH +

+
+ +

Note: this filter is slow. For faster processing you should use a +dedicated filter. +

+ +

25.4.1 Examples

+ +
    +
  • +Half volume: +
     
    aeval=val(ch)/2:c=same
    +
    + +
  • +Invert phase of the second channel: +
     
    eval=val(0)|-val(1)
    +
    +
+ + +

25.5 afade

+ +

Apply fade-in/out effect to input audio. +

+

A description of the accepted parameters follows. +

+
+
type, t
+

Specify the effect type, can be either in for fade-in, or +out for a fade-out effect. Default is in. +

+
+
start_sample, ss
+

Specify the number of the start sample for starting to apply the fade +effect. Default is 0. +

+
+
nb_samples, ns
+

Specify the number of samples for which the fade effect has to last. At +the end of the fade-in effect the output audio will have the same +volume as the input audio, at the end of the fade-out transition +the output audio will be silence. Default is 44100. +

+
+
start_time, st
+

Specify time for starting to apply the fade effect. Default is 0. +The accepted syntax is: +

 
[-]HH[:MM[:SS[.m...]]]
+[-]S+[.m...]
+
+

See also the function av_parse_time(). +If set this option is used instead of start_sample one. +

+
+
duration, d
+

Specify the duration for which the fade effect has to last. Default is 0. +The accepted syntax is: +

 
[-]HH[:MM[:SS[.m...]]]
+[-]S+[.m...]
+
+

See also the function av_parse_time(). +At the end of the fade-in effect the output audio will have the same +volume as the input audio, at the end of the fade-out transition +the output audio will be silence. +If set this option is used instead of nb_samples one. +

+
+
curve
+

Set curve for fade transition. +

+

It accepts the following values: +

+
tri
+

select triangular, linear slope (default) +

+
qsin
+

select quarter of sine wave +

+
hsin
+

select half of sine wave +

+
esin
+

select exponential sine wave +

+
log
+

select logarithmic +

+
par
+

select inverted parabola +

+
qua
+

select quadratic +

+
cub
+

select cubic +

+
squ
+

select square root +

+
cbr
+

select cubic root +

+
+
+
+ + +

25.5.1 Examples

+ +
    +
  • +Fade in first 15 seconds of audio: +
     
    afade=t=in:ss=0:d=15
    +
    + +
  • +Fade out last 25 seconds of a 900 seconds audio: +
     
    afade=t=out:st=875:d=25
    +
    +
+ +

+

+

25.6 aformat

+ +

Set output format constraints for the input audio. The framework will +negotiate the most appropriate format to minimize conversions. +

+

It accepts the following parameters: +

+
sample_fmts
+

A ’|’-separated list of requested sample formats. +

+
+
sample_rates
+

A ’|’-separated list of requested sample rates. +

+
+
channel_layouts
+

A ’|’-separated list of requested channel layouts. +

+

See (ffmpeg-utils)channel layout syntax +for the required syntax. +

+
+ +

If a parameter is omitted, all values are allowed. +

+

Force the output to either unsigned 8-bit or signed 16-bit stereo +

 
aformat=sample_fmts=u8|s16:channel_layouts=stereo
+
+ + +

25.7 allpass

+ +

Apply a two-pole all-pass filter with central frequency (in Hz) +frequency, and filter-width width. +An all-pass filter changes the audio’s frequency to phase relationship +without changing its frequency to amplitude relationship. +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set frequency in Hz. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +

+
+ + +

25.8 amerge

+ +

Merge two or more audio streams into a single multi-channel stream. +

+

The filter accepts the following options: +

+
+
inputs
+

Set the number of inputs. Default is 2. +

+
+
+ +

If the channel layouts of the inputs are disjoint, and therefore compatible, +the channel layout of the output will be set accordingly and the channels +will be reordered as necessary. If the channel layouts of the inputs are not +disjoint, the output will have all the channels of the first input then all +the channels of the second input, in that order, and the channel layout of +the output will be the default value corresponding to the total number of +channels. +

+

For example, if the first input is in 2.1 (FL+FR+LF) and the second input +is FC+BL+BR, then the output will be in 5.1, with the channels in the +following order: a1, a2, b1, a3, b2, b3 (a1 is the first channel of the +first input, b1 is the first channel of the second input). +

+

On the other hand, if both input are in stereo, the output channels will be +in the default order: a1, a2, b1, b2, and the channel layout will be +arbitrarily set to 4.0, which may or may not be the expected value. +

+

All inputs must have the same sample rate, and format. +

+

If inputs do not have the same duration, the output will stop with the +shortest. +

+ +

25.8.1 Examples

+ +
    +
  • +Merge two mono files into a stereo stream: +
     
    amovie=left.wav [l] ; amovie=right.mp3 [r] ; [l] [r] amerge
    +
    + +
  • +Multiple merges assuming 1 video stream and 6 audio streams in ‘input.mkv’: +
     
    ffmpeg -i input.mkv -filter_complex "[0:1][0:2][0:3][0:4][0:5][0:6] amerge=inputs=6" -c:a pcm_s16le output.mkv
    +
    +
+ + +

25.9 amix

+ +

Mixes multiple audio inputs into a single output. +

+

For example +

 
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT
+
+

will mix 3 input audio streams to a single output with the same duration as the +first input and a dropout transition time of 3 seconds. +

+

It accepts the following parameters: +

+
inputs
+

The number of inputs. If unspecified, it defaults to 2. +

+
+
duration
+

How to determine the end-of-stream. +

+
longest
+

The duration of the longest input. (default) +

+
+
shortest
+

The duration of the shortest input. +

+
+
first
+

The duration of the first input. +

+
+
+ +
+
dropout_transition
+

The transition time, in seconds, for volume renormalization when an input +stream ends. The default value is 2 seconds. +

+
+
+ + +

25.10 anull

+ +

Pass the audio source unchanged to the output. +

+ +

25.11 apad

+ +

Pad the end of a audio stream with silence, this can be used together with +-shortest to extend audio streams to the same length as the video stream. +

+ +

25.12 aphaser

+

Add a phasing effect to the input audio. +

+

A phaser filter creates series of peaks and troughs in the frequency spectrum. +The position of the peaks and troughs are modulated so that they vary over time, creating a sweeping effect. +

+

A description of the accepted parameters follows. +

+
+
in_gain
+

Set input gain. Default is 0.4. +

+
+
out_gain
+

Set output gain. Default is 0.74 +

+
+
delay
+

Set delay in milliseconds. Default is 3.0. +

+
+
decay
+

Set decay. Default is 0.4. +

+
+
speed
+

Set modulation speed in Hz. Default is 0.5. +

+
+
type
+

Set modulation type. Default is triangular. +

+

It accepts the following values: +

+
triangular, t
+
sinusoidal, s
+
+
+
+ +

+

+

25.13 aresample

+ +

Resample the input audio to the specified parameters, using the +libswresample library. If none are specified then the filter will +automatically convert between its input and output. +

+

This filter is also able to stretch/squeeze the audio data to make it match +the timestamps or to inject silence / cut out audio to make it match the +timestamps, do a combination of both or do neither. +

+

The filter accepts the syntax +[sample_rate:]resampler_options, where sample_rate +expresses a sample rate and resampler_options is a list of +key=value pairs, separated by ":". See the +ffmpeg-resampler manual for the complete list of supported options. +

+ +

25.13.1 Examples

+ +
    +
  • +Resample the input audio to 44100Hz: +
     
    aresample=44100
    +
    + +
  • +Stretch/squeeze samples to the given timestamps, with a maximum of 1000 +samples per second compensation: +
     
    aresample=async=1000
    +
    +
+ + +

25.14 asetnsamples

+ +

Set the number of samples per each output audio frame. +

+

The last output packet may contain a different number of samples, as +the filter will flush all the remaining samples when the input audio +signal its end. +

+

The filter accepts the following options: +

+
+
nb_out_samples, n
+

Set the number of frames per each output audio frame. The number is +intended as the number of samples per each channel. +Default value is 1024. +

+
+
pad, p
+

If set to 1, the filter will pad the last audio frame with zeroes, so +that the last frame will contain the same number of samples as the +previous ones. Default value is 1. +

+
+ +

For example, to set the number of per-frame samples to 1234 and +disable padding for the last frame, use: +

 
asetnsamples=n=1234:p=0
+
+ + +

25.15 asetrate

+ +

Set the sample rate without altering the PCM data. +This will result in a change of speed and pitch. +

+

The filter accepts the following options: +

+
+
sample_rate, r
+

Set the output sample rate. Default is 44100 Hz. +

+
+ + +

25.16 ashowinfo

+ +

Show a line containing various information for each input audio frame. +The input audio is not modified. +

+

The shown line contains a sequence of key/value pairs of the form +key:value. +

+

It accepts the following parameters: +

+
+
n
+

The (sequential) number of the input frame, starting from 0. +

+
+
pts
+

The presentation timestamp of the input frame, in time base units; the time base +depends on the filter input pad, and is usually 1/sample_rate. +

+
+
pts_time
+

The presentation timestamp of the input frame in seconds. +

+
+
pos
+

position of the frame in the input stream, -1 if this information in +unavailable and/or meaningless (for example in case of synthetic audio) +

+
+
fmt
+

The sample format. +

+
+
chlayout
+

The channel layout. +

+
+
rate
+

The sample rate for the audio frame. +

+
+
nb_samples
+

The number of samples (per channel) in the frame. +

+
+
checksum
+

The Adler-32 checksum (printed in hexadecimal) of the audio data. For planar +audio, the data is treated as if all the planes were concatenated. +

+
+
plane_checksums
+

A list of Adler-32 checksums for each data plane. +

+
+ + +

25.17 astats

+ +

Display time domain statistical information about the audio channels. +Statistics are calculated and displayed for each audio channel and, +where applicable, an overall figure is also given. +

+

It accepts the following option: +

+
length
+

Short window length in seconds, used for peak and trough RMS measurement. +Default is 0.05 (50 miliseconds). Allowed range is [0.1 - 10]. +

+
+ +

A description of each shown parameter follows: +

+
+
DC offset
+

Mean amplitude displacement from zero. +

+
+
Min level
+

Minimal sample level. +

+
+
Max level
+

Maximal sample level. +

+
+
Peak level dB
+
RMS level dB
+

Standard peak and RMS level measured in dBFS. +

+
+
RMS peak dB
+
RMS trough dB
+

Peak and trough values for RMS level measured over a short window. +

+
+
Crest factor
+

Standard ratio of peak to RMS level (note: not in dB). +

+
+
Flat factor
+

Flatness (i.e. consecutive samples with the same value) of the signal at its peak levels +(i.e. either Min level or Max level). +

+
+
Peak count
+

Number of occasions (not the number of samples) that the signal attained either +Min level or Max level. +

+
+ + +

25.18 astreamsync

+ +

Forward two audio streams and control the order the buffers are forwarded. +

+

The filter accepts the following options: +

+
+
expr, e
+

Set the expression deciding which stream should be +forwarded next: if the result is negative, the first stream is forwarded; if +the result is positive or zero, the second stream is forwarded. It can use +the following variables: +

+
+
b1 b2
+

number of buffers forwarded so far on each stream +

+
s1 s2
+

number of samples forwarded so far on each stream +

+
t1 t2
+

current timestamp of each stream +

+
+ +

The default value is t1-t2, which means to always forward the stream +that has a smaller timestamp. +

+
+ + +

25.18.1 Examples

+ +

Stress-test amerge by randomly sending buffers on the wrong +input, while avoiding too much of a desynchronization: +

 
amovie=file.ogg [a] ; amovie=file.mp3 [b] ;
+[a] [b] astreamsync=(2*random(1))-1+tanh(5*(t1-t2)) [a2] [b2] ;
+[a2] [b2] amerge
+
+ + +

25.19 asyncts

+ +

Synchronize audio data with timestamps by squeezing/stretching it and/or +dropping samples/adding silence when needed. +

+

This filter is not built by default, please use aresample to do squeezing/stretching. +

+

It accepts the following parameters: +

+
compensate
+

Enable stretching/squeezing the data to make it match the timestamps. Disabled +by default. When disabled, time gaps are covered with silence. +

+
+
min_delta
+

The minimum difference between timestamps and audio data (in seconds) to trigger +adding/dropping samples. The default value is 0.1. If you get an imperfect +sync with this filter, try setting this parameter to 0. +

+
+
max_comp
+

The maximum compensation in samples per second. Only relevant with compensate=1. +The default value is 500. +

+
+
first_pts
+

Assume that the first PTS should be this value. The time base is 1 / sample +rate. This allows for padding/trimming at the start of the stream. By default, +no assumption is made about the first frame’s expected PTS, so no padding or +trimming is done. For example, this could be set to 0 to pad the beginning with +silence if an audio stream starts after the video stream or to trim any samples +with a negative PTS due to encoder delay. +

+
+
+ + +

25.20 atempo

+ +

Adjust audio tempo. +

+

The filter accepts exactly one parameter, the audio tempo. If not +specified then the filter will assume nominal 1.0 tempo. Tempo must +be in the [0.5, 2.0] range. +

+ +

25.20.1 Examples

+ +
    +
  • +Slow down audio to 80% tempo: +
     
    atempo=0.8
    +
    + +
  • +To speed up audio to 125% tempo: +
     
    atempo=1.25
    +
    +
+ + +

25.21 atrim

+ +

Trim the input so that the output contains one continuous subpart of the input. +

+

It accepts the following parameters: +

+
start
+

Timestamp (in seconds) of the start of the section to keep. I.e. the audio +sample with the timestamp start will be the first sample in the output. +

+
+
end
+

Specify time of the first audio sample that will be dropped, i.e. the +audio sample immediately preceding the one with the timestamp end will be +the last sample in the output. +

+
+
start_pts
+

Same as start, except this option sets the start timestamp in samples +instead of seconds. +

+
+
end_pts
+

Same as end, except this option sets the end timestamp in samples instead +of seconds. +

+
+
duration
+

The maximum duration of the output in seconds. +

+
+
start_sample
+

The number of the first sample that should be output. +

+
+
end_sample
+

The number of the first sample that should be dropped. +

+
+ +

start’, ‘end’, ‘duration’ are expressed as time +duration specifications, check the "Time duration" section in the +ffmpeg-utils manual. +

+

Note that the first two sets of the start/end options and the ‘duration’ +option look at the frame timestamp, while the _sample options simply count the +samples that pass through the filter. So start/end_pts and start/end_sample will +give different results when the timestamps are wrong, inexact or do not start at +zero. Also note that this filter does not modify the timestamps. If you wish +to have the output timestamps start at zero, insert the asetpts filter after the +atrim filter. +

+

If multiple start or end options are set, this filter tries to be greedy and +keep all samples that match at least one of the specified constraints. To keep +only the part that matches all the constraints at once, chain multiple atrim +filters. +

+

The defaults are such that all the input is kept. So it is possible to set e.g. +just the end values to keep everything before the specified time. +

+

Examples: +

    +
  • +Drop everything except the second minute of input: +
     
    ffmpeg -i INPUT -af atrim=60:120
    +
    + +
  • +Keep only the first 1000 samples: +
     
    ffmpeg -i INPUT -af atrim=end_sample=1000
    +
    + +
+ + +

25.22 bandpass

+ +

Apply a two-pole Butterworth band-pass filter with central +frequency frequency, and (3dB-point) band-width width. +The csg option selects a constant skirt gain (peak gain = Q) +instead of the default: constant 0dB peak gain. +The filter roll off at 6dB per octave (20dB per decade). +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set the filter’s central frequency. Default is 3000. +

+
+
csg
+

Constant skirt gain if set to 1. Defaults to 0. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +

+
+ + +

25.23 bandreject

+ +

Apply a two-pole Butterworth band-reject filter with central +frequency frequency, and (3dB-point) band-width width. +The filter roll off at 6dB per octave (20dB per decade). +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set the filter’s central frequency. Default is 3000. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +

+
+ + +

25.24 bass

+ +

Boost or cut the bass (lower) frequencies of the audio using a two-pole +shelving filter with a response similar to that of a standard +hi-fi’s tone-controls. This is also known as shelving equalisation (EQ). +

+

The filter accepts the following options: +

+
+
gain, g
+

Give the gain at 0 Hz. Its useful range is about -20 +(for a large cut) to +20 (for a large boost). +Beware of clipping when using a positive gain. +

+
+
frequency, f
+

Set the filter’s central frequency and so can be used +to extend or reduce the frequency range to be boosted or cut. +The default value is 100 Hz. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Determine how steep is the filter’s shelf transition. +

+
+ + +

25.25 biquad

+ +

Apply a biquad IIR filter with the given coefficients. +Where b0, b1, b2 and a0, a1, a2 +are the numerator and denominator coefficients respectively. +

+ +

25.26 channelmap

+ +

Remap input channels to new locations. +

+

It accepts the following parameters: +

+
channel_layout
+

The channel layout of the output stream. +

+
+
map
+

Map channels from input to output. The argument is a ’|’-separated list of +mappings, each in the in_channel-out_channel or +in_channel form. in_channel can be either the name of the input +channel (e.g. FL for front left) or its index in the input channel layout. +out_channel is the name of the output channel or its index in the output +channel layout. If out_channel is not given then it is implicitly an +index, starting with zero and increasing by one for each mapping. +

+
+ +

If no mapping is present, the filter will implicitly map input channels to +output channels, preserving indices. +

+

For example, assuming a 5.1+downmix input MOV file, +

 
ffmpeg -i in.mov -filter 'channelmap=map=DL-FL|DR-FR' out.wav
+
+

will create an output WAV file tagged as stereo from the downmix channels of +the input. +

+

To fix a 5.1 WAV improperly encoded in AAC’s native channel order +

 
ffmpeg -i in.wav -filter 'channelmap=1|2|0|5|3|4:channel_layout=5.1' out.wav
+
+ + +

25.27 channelsplit

+ +

Split each channel from an input audio stream into a separate output stream. +

+

It accepts the following parameters: +

+
channel_layout
+

The channel layout of the input stream. The default is "stereo". +

+
+ +

For example, assuming a stereo input MP3 file, +

 
ffmpeg -i in.mp3 -filter_complex channelsplit out.mkv
+
+

will create an output Matroska file with two audio streams, one containing only +the left channel and the other the right channel. +

+

Split a 5.1 WAV file into per-channel files: +

 
ffmpeg -i in.wav -filter_complex
+'channelsplit=channel_layout=5.1[FL][FR][FC][LFE][SL][SR]'
+-map '[FL]' front_left.wav -map '[FR]' front_right.wav -map '[FC]'
+front_center.wav -map '[LFE]' lfe.wav -map '[SL]' side_left.wav -map '[SR]'
+side_right.wav
+
+ + +

25.28 compand

+

Compress or expand the audio’s dynamic range. +

+

It accepts the following parameters: +

+
+
attacks
+
decays
+

A list of times in seconds for each channel over which the instantaneous level +of the input signal is averaged to determine its volume. attacks refers to +increase of volume and decays refers to decrease of volume. For most +situations, the attack time (response to the audio getting louder) should be +shorter than the decay time, because the human ear is more sensitive to sudden +loud audio than sudden soft audio. A typical value for attack is 0.3 seconds and +a typical value for decay is 0.8 seconds. +

+
+
points
+

A list of points for the transfer function, specified in dB relative to the +maximum possible signal amplitude. Each key points list must be defined using +the following syntax: x0/y0|x1/y1|x2/y2|.... or +x0/y0 x1/y1 x2/y2 .... +

+

The input values must be in strictly increasing order but the transfer function +does not have to be monotonically rising. The point 0/0 is assumed but +may be overridden (by 0/out-dBn). Typical values for the transfer +function are -70/-70|-60/-20. +

+
+
soft-knee
+

Set the curve radius in dB for all joints. It defaults to 0.01. +

+
+
gain
+

Set the additional gain in dB to be applied at all points on the transfer +function. This allows for easy adjustment of the overall gain. +It defaults to 0. +

+
+
volume
+

Set an initial volume, in dB, to be assumed for each channel when filtering +starts. This permits the user to supply a nominal level initially, so that, for +example, a very large gain is not applied to initial signal levels before the +companding has begun to operate. A typical value for audio which is initially +quiet is -90 dB. It defaults to 0. +

+
+
delay
+

Set a delay, in seconds. The input audio is analyzed immediately, but audio is +delayed before being fed to the volume adjuster. Specifying a delay +approximately equal to the attack/decay times allows the filter to effectively +operate in predictive rather than reactive mode. It defaults to 0. +

+
+
+ + +

25.28.1 Examples

+ +
    +
  • +Make music with both quiet and loud passages suitable for listening to in a +noisy environment: +
     
    compand=.3|.3:1|1:-90/-60|-60/-40|-40/-30|-20/-20:6:0:-90:0.2
    +
    + +
  • +A noise gate for when the noise is at a lower level than the signal: +
     
    compand=.1|.1:.2|.2:-900/-900|-50.1/-900|-50/-50:.01:0:-90:.1
    +
    + +
  • +Here is another noise gate, this time for when the noise is at a higher level +than the signal (making it, in some ways, similar to squelch): +
     
    compand=.1|.1:.1|.1:-45.1/-45.1|-45/-900|0/-900:.01:45:-90:.1
    +
    +
+ + +

25.29 earwax

+ +

Make audio easier to listen to on headphones. +

+

This filter adds ‘cues’ to 44.1kHz stereo (i.e. audio CD format) audio +so that when listened to on headphones the stereo image is moved from +inside your head (standard for headphones) to outside and in front of +the listener (standard for speakers). +

+

Ported from SoX. +

+ +

25.30 equalizer

+ +

Apply a two-pole peaking equalisation (EQ) filter. With this +filter, the signal-level at and around a selected frequency can +be increased or decreased, whilst (unlike bandpass and bandreject +filters) that at all other frequencies is unchanged. +

+

In order to produce complex equalisation curves, this filter can +be given several times, each with a different central frequency. +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set the filter’s central frequency in Hz. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +

+
+
gain, g
+

Set the required gain or attenuation in dB. +Beware of clipping when using a positive gain. +

+
+ + +

25.30.1 Examples

+
    +
  • +Attenuate 10 dB at 1000 Hz, with a bandwidth of 200 Hz: +
     
    equalizer=f=1000:width_type=h:width=200:g=-10
    +
    + +
  • +Apply 2 dB gain at 1000 Hz with Q 1 and attenuate 5 dB at 100 Hz with Q 2: +
     
    equalizer=f=1000:width_type=q:width=1:g=2,equalizer=f=100:width_type=q:width=2:g=-5
    +
    +
+ + +

25.31 highpass

+ +

Apply a high-pass filter with 3dB point frequency. +The filter can be either single-pole, or double-pole (the default). +The filter roll off at 6dB per pole per octave (20dB per pole per decade). +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set frequency in Hz. Default is 3000. +

+
+
poles, p
+

Set number of poles. Default is 2. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +Applies only to double-pole filter. +The default is 0.707q and gives a Butterworth response. +

+
+ + +

25.32 join

+ +

Join multiple input streams into one multi-channel stream. +

+

It accepts the following parameters: +

+
inputs
+

The number of input streams. It defaults to 2. +

+
+
channel_layout
+

The desired output channel layout. It defaults to stereo. +

+
+
map
+

Map channels from inputs to output. The argument is a ’|’-separated list of +mappings, each in the input_idx.in_channel-out_channel +form. input_idx is the 0-based index of the input stream. in_channel +can be either the name of the input channel (e.g. FL for front left) or its +index in the specified input stream. out_channel is the name of the output +channel. +

+
+ +

The filter will attempt to guess the mappings when they are not specified +explicitly. It does so by first trying to find an unused matching input channel +and if that fails it picks the first unused input channel. +

+

Join 3 inputs (with properly set channel layouts): +

 
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex join=inputs=3 OUTPUT
+
+ +

Build a 5.1 output from 6 single-channel streams: +

 
ffmpeg -i fl -i fr -i fc -i sl -i sr -i lfe -filter_complex
+'join=inputs=6:channel_layout=5.1:map=0.0-FL|1.0-FR|2.0-FC|3.0-SL|4.0-SR|5.0-LFE'
+out
+
+ + +

25.33 ladspa

+ +

Load a LADSPA (Linux Audio Developer’s Simple Plugin API) plugin. +

+

To enable compilation of this filter you need to configure FFmpeg with +--enable-ladspa. +

+
+
file, f
+

Specifies the name of LADSPA plugin library to load. If the environment +variable LADSPA_PATH is defined, the LADSPA plugin is searched in +each one of the directories specified by the colon separated list in +LADSPA_PATH, otherwise in the standard LADSPA paths, which are in +this order: ‘HOME/.ladspa/lib/’, ‘/usr/local/lib/ladspa/’, +‘/usr/lib/ladspa/’. +

+
+
plugin, p
+

Specifies the plugin within the library. Some libraries contain only +one plugin, but others contain many of them. If this is not set filter +will list all available plugins within the specified library. +

+
+
controls, c
+

Set the ’|’ separated list of controls which are zero or more floating point +values that determine the behavior of the loaded plugin (for example delay, +threshold or gain). +Controls need to be defined using the following syntax: +c0=value0|c1=value1|c2=value2|..., where +valuei is the value set on the i-th control. +If ‘controls’ is set to help, all available controls and +their valid ranges are printed. +

+
+
sample_rate, s
+

Specify the sample rate, default to 44100. Only used if plugin have +zero inputs. +

+
+
nb_samples, n
+

Set the number of samples per channel per each output frame, default +is 1024. Only used if plugin have zero inputs. +

+
+
duration, d
+

Set the minimum duration of the sourced audio. See the function +av_parse_time() for the accepted format, also check the "Time duration" +section in the ffmpeg-utils manual. +Note that the resulting duration may be greater than the specified duration, +as the generated audio is always cut at the end of a complete frame. +If not specified, or the expressed duration is negative, the audio is +supposed to be generated forever. +Only used if plugin have zero inputs. +

+
+
+ + +

25.33.1 Examples

+ +
    +
  • +List all available plugins within amp (LADSPA example plugin) library: +
     
    ladspa=file=amp
    +
    + +
  • +List all available controls and their valid ranges for vcf_notch +plugin from VCF library: +
     
    ladspa=f=vcf:p=vcf_notch:c=help
    +
    + +
  • +Simulate low quality audio equipment using Computer Music Toolkit (CMT) +plugin library: +
     
    ladspa=file=cmt:plugin=lofi:controls=c0=22|c1=12|c2=12
    +
    + +
  • +Add reverberation to the audio using TAP-plugins +(Tom’s Audio Processing plugins): +
     
    ladspa=file=tap_reverb:tap_reverb
    +
    + +
  • +Generate white noise, with 0.2 amplitude: +
     
    ladspa=file=cmt:noise_source_white:c=c0=.2
    +
    + +
  • +Generate 20 bpm clicks using plugin C* Click - Metronome from the +C* Audio Plugin Suite (CAPS) library: +
     
    ladspa=file=caps:Click:c=c1=20'
    +
    + +
  • +Apply C* Eq10X2 - Stereo 10-band equaliser effect: +
     
    ladspa=caps:Eq10X2:c=c0=-48|c9=-24|c3=12|c4=2
    +
    +
+ + +

25.33.2 Commands

+ +

This filter supports the following commands: +

+
cN
+

Modify the N-th control value. +

+

If the specified value is not valid, it is ignored and prior one is kept. +

+
+ + +

25.34 lowpass

+ +

Apply a low-pass filter with 3dB point frequency. +The filter can be either single-pole or double-pole (the default). +The filter roll off at 6dB per pole per octave (20dB per pole per decade). +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set frequency in Hz. Default is 500. +

+
+
poles, p
+

Set number of poles. Default is 2. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +Applies only to double-pole filter. +The default is 0.707q and gives a Butterworth response. +

+
+ + +

25.35 pan

+ +

Mix channels with specific gain levels. The filter accepts the output +channel layout followed by a set of channels definitions. +

+

This filter is also designed to remap efficiently the channels of an audio +stream. +

+

The filter accepts parameters of the form: +"l:outdef:outdef:..." +

+
+
l
+

output channel layout or number of channels +

+
+
outdef
+

output channel specification, of the form: +"out_name=[gain*]in_name[+[gain*]in_name...]" +

+
+
out_name
+

output channel to define, either a channel name (FL, FR, etc.) or a channel +number (c0, c1, etc.) +

+
+
gain
+

multiplicative coefficient for the channel, 1 leaving the volume unchanged +

+
+
in_name
+

input channel to use, see out_name for details; it is not possible to mix +named and numbered input channels +

+
+ +

If the ‘=’ in a channel specification is replaced by ‘<’, then the gains for +that specification will be renormalized so that the total is 1, thus +avoiding clipping noise. +

+ +

25.35.1 Mixing examples

+ +

For example, if you want to down-mix from stereo to mono, but with a bigger +factor for the left channel: +

 
pan=1:c0=0.9*c0+0.1*c1
+
+ +

A customized down-mix to stereo that works automatically for 3-, 4-, 5- and +7-channels surround: +

 
pan=stereo: FL < FL + 0.5*FC + 0.6*BL + 0.6*SL : FR < FR + 0.5*FC + 0.6*BR + 0.6*SR
+
+ +

Note that ffmpeg integrates a default down-mix (and up-mix) system +that should be preferred (see "-ac" option) unless you have very specific +needs. +

+ +

25.35.2 Remapping examples

+ +

The channel remapping will be effective if, and only if: +

+
    +
  • gain coefficients are zeroes or ones, +
  • only one input per channel output, +
+ +

If all these conditions are satisfied, the filter will notify the user ("Pure +channel mapping detected"), and use an optimized and lossless method to do the +remapping. +

+

For example, if you have a 5.1 source and want a stereo audio stream by +dropping the extra channels: +

 
pan="stereo: c0=FL : c1=FR"
+
+ +

Given the same source, you can also switch front left and front right channels +and keep the input channel layout: +

 
pan="5.1: c0=c1 : c1=c0 : c2=c2 : c3=c3 : c4=c4 : c5=c5"
+
+ +

If the input is a stereo audio stream, you can mute the front left channel (and +still keep the stereo channel layout) with: +

 
pan="stereo:c1=c1"
+
+ +

Still with a stereo audio stream input, you can copy the right channel in both +front left and right: +

 
pan="stereo: c0=FR : c1=FR"
+
+ + +

25.36 replaygain

+ +

ReplayGain scanner filter. This filter takes an audio stream as an input and +outputs it unchanged. +At end of filtering it displays track_gain and track_peak. +

+ +

25.37 resample

+ +

Convert the audio sample format, sample rate and channel layout. It is +not meant to be used directly. +

+ +

25.38 silencedetect

+ +

Detect silence in an audio stream. +

+

This filter logs a message when it detects that the input audio volume is less +or equal to a noise tolerance value for a duration greater or equal to the +minimum detected noise duration. +

+

The printed times and duration are expressed in seconds. +

+

The filter accepts the following options: +

+
+
duration, d
+

Set silence duration until notification (default is 2 seconds). +

+
+
noise, n
+

Set noise tolerance. Can be specified in dB (in case "dB" is appended to the +specified value) or amplitude ratio. Default is -60dB, or 0.001. +

+
+ + +

25.38.1 Examples

+ +
    +
  • +Detect 5 seconds of silence with -50dB noise tolerance: +
     
    silencedetect=n=-50dB:d=5
    +
    + +
  • +Complete example with ffmpeg to detect silence with 0.0001 noise +tolerance in ‘silence.mp3’: +
     
    ffmpeg -i silence.mp3 -af silencedetect=noise=0.0001 -f null -
    +
    +
+ + +

25.39 treble

+ +

Boost or cut treble (upper) frequencies of the audio using a two-pole +shelving filter with a response similar to that of a standard +hi-fi’s tone-controls. This is also known as shelving equalisation (EQ). +

+

The filter accepts the following options: +

+
+
gain, g
+

Give the gain at whichever is the lower of ~22 kHz and the +Nyquist frequency. Its useful range is about -20 (for a large cut) +to +20 (for a large boost). Beware of clipping when using a positive gain. +

+
+
frequency, f
+

Set the filter’s central frequency and so can be used +to extend or reduce the frequency range to be boosted or cut. +The default value is 3000 Hz. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Determine how steep is the filter’s shelf transition. +

+
+ + +

25.40 volume

+ +

Adjust the input audio volume. +

+

It accepts the following parameters: +

+
volume
+

Set audio volume expression. +

+

Output values are clipped to the maximum value. +

+

The output audio volume is given by the relation: +

 
output_volume = volume * input_volume
+
+ +

The default value for volume is "1.0". +

+
+
precision
+

This parameter represents the mathematical precision. +

+

It determines which input sample formats will be allowed, which affects the +precision of the volume scaling. +

+
+
fixed
+

8-bit fixed-point; this limits input sample format to U8, S16, and S32. +

+
float
+

32-bit floating-point; this limits input sample format to FLT. (default) +

+
double
+

64-bit floating-point; this limits input sample format to DBL. +

+
+ +
+
replaygain
+

Choose the behaviour on encountering ReplayGain side data in input frames. +

+
+
drop
+

Remove ReplayGain side data, ignoring its contents (the default). +

+
+
ignore
+

Ignore ReplayGain side data, but leave it in the frame. +

+
+
track
+

Prefer the track gain, if present. +

+
+
album
+

Prefer the album gain, if present. +

+
+ +
+
replaygain_preamp
+

Pre-amplification gain in dB to apply to the selected replaygain gain. +

+

Default value for replaygain_preamp is 0.0. +

+
+
eval
+

Set when the volume expression is evaluated. +

+

It accepts the following values: +

+
once
+

only evaluate expression once during the filter initialization, or +when the ‘volume’ command is sent +

+
+
frame
+

evaluate expression for each incoming frame +

+
+ +

Default value is ‘once’. +

+
+ +

The volume expression can contain the following parameters. +

+
+
n
+

frame number (starting at zero) +

+
nb_channels
+

number of channels +

+
nb_consumed_samples
+

number of samples consumed by the filter +

+
nb_samples
+

number of samples in the current frame +

+
pos
+

original frame position in the file +

+
pts
+

frame PTS +

+
sample_rate
+

sample rate +

+
startpts
+

PTS at start of stream +

+
startt
+

time at start of stream +

+
t
+

frame time +

+
tb
+

timestamp timebase +

+
volume
+

last set volume value +

+
+ +

Note that when ‘eval’ is set to ‘once’ only the +sample_rate and tb variables are available, all other +variables will evaluate to NAN. +

+ +

25.40.1 Commands

+ +

This filter supports the following commands: +

+
volume
+

Modify the volume expression. +The command accepts the same syntax of the corresponding option. +

+

If the specified expression is not valid, it is kept at its current +value. +

+
replaygain_noclip
+

Prevent clipping by limiting the gain applied. +

+

Default value for replaygain_noclip is 1. +

+
+
+ + +

25.40.2 Examples

+ +
    +
  • +Halve the input audio volume: +
     
    volume=volume=0.5
    +volume=volume=1/2
    +volume=volume=-6.0206dB
    +
    + +

    In all the above example the named key for ‘volume’ can be +omitted, for example like in: +

     
    volume=0.5
    +
    + +
  • +Increase input audio power by 6 decibels using fixed-point precision: +
     
    volume=volume=6dB:precision=fixed
    +
    + +
  • +Fade volume after time 10 with an annihilation period of 5 seconds: +
     
    volume='if(lt(t,10),1,max(1-(t-10)/5,0))':eval=frame
    +
    +
+ + +

25.41 volumedetect

+ +

Detect the volume of the input video. +

+

The filter has no parameters. The input is not modified. Statistics about +the volume will be printed in the log when the input stream end is reached. +

+

In particular it will show the mean volume (root mean square), maximum +volume (on a per-sample basis), and the beginning of a histogram of the +registered volume values (from the maximum value to a cumulated 1/1000 of +the samples). +

+

All volumes are in decibels relative to the maximum PCM value. +

+ +

25.41.1 Examples

+ +

Here is an excerpt of the output: +

 
[Parsed_volumedetect_0  0xa23120] mean_volume: -27 dB
+[Parsed_volumedetect_0  0xa23120] max_volume: -4 dB
+[Parsed_volumedetect_0  0xa23120] histogram_4db: 6
+[Parsed_volumedetect_0  0xa23120] histogram_5db: 62
+[Parsed_volumedetect_0  0xa23120] histogram_6db: 286
+[Parsed_volumedetect_0  0xa23120] histogram_7db: 1042
+[Parsed_volumedetect_0  0xa23120] histogram_8db: 2551
+[Parsed_volumedetect_0  0xa23120] histogram_9db: 4609
+[Parsed_volumedetect_0  0xa23120] histogram_10db: 8409
+
+ +

It means that: +

    +
  • +The mean square energy is approximately -27 dB, or 10^-2.7. +
  • +The largest sample is at -4 dB, or more precisely between -4 dB and -5 dB. +
  • +There are 6 samples at -4 dB, 62 at -5 dB, 286 at -6 dB, etc. +
+ +

In other words, raising the volume by +4 dB does not cause any clipping, +raising it by +5 dB causes clipping for 6 samples, etc. +

+ + +

26. Audio Sources

+ +

Below is a description of the currently available audio sources. +

+ +

26.1 abuffer

+ +

Buffer audio frames, and make them available to the filter chain. +

+

This source is mainly intended for a programmatic use, in particular +through the interface defined in ‘libavfilter/asrc_abuffer.h’. +

+

It accepts the following parameters: +

+
time_base
+

The timebase which will be used for timestamps of submitted frames. It must be +either a floating-point number or in numerator/denominator form. +

+
+
sample_rate
+

The sample rate of the incoming audio buffers. +

+
+
sample_fmt
+

The sample format of the incoming audio buffers. +Either a sample format name or its corresponging integer representation from +the enum AVSampleFormat in ‘libavutil/samplefmt.h’ +

+
+
channel_layout
+

The channel layout of the incoming audio buffers. +Either a channel layout name from channel_layout_map in +‘libavutil/channel_layout.c’ or its corresponding integer representation +from the AV_CH_LAYOUT_* macros in ‘libavutil/channel_layout.h’ +

+
+
channels
+

The number of channels of the incoming audio buffers. +If both channels and channel_layout are specified, then they +must be consistent. +

+
+
+ + +

26.1.1 Examples

+ +
 
abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo
+
+ +

will instruct the source to accept planar 16bit signed stereo at 44100Hz. +Since the sample format with name "s16p" corresponds to the number +6 and the "stereo" channel layout corresponds to the value 0x3, this is +equivalent to: +

 
abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3
+
+ + +

26.2 aevalsrc

+ +

Generate an audio signal specified by an expression. +

+

This source accepts in input one or more expressions (one for each +channel), which are evaluated and used to generate a corresponding +audio signal. +

+

This source accepts the following options: +

+
+
exprs
+

Set the ’|’-separated expressions list for each separate channel. In case the +‘channel_layout’ option is not specified, the selected channel layout +depends on the number of provided expressions. Otherwise the last +specified expression is applied to the remaining output channels. +

+
+
channel_layout, c
+

Set the channel layout. The number of channels in the specified layout +must be equal to the number of specified expressions. +

+
+
duration, d
+

Set the minimum duration of the sourced audio. See the function +av_parse_time() for the accepted format. +Note that the resulting duration may be greater than the specified +duration, as the generated audio is always cut at the end of a +complete frame. +

+

If not specified, or the expressed duration is negative, the audio is +supposed to be generated forever. +

+
+
nb_samples, n
+

Set the number of samples per channel per each output frame, +default to 1024. +

+
+
sample_rate, s
+

Specify the sample rate, default to 44100. +

+
+ +

Each expression in exprs can contain the following constants: +

+
+
n
+

number of the evaluated sample, starting from 0 +

+
+
t
+

time of the evaluated sample expressed in seconds, starting from 0 +

+
+
s
+

sample rate +

+
+
+ + +

26.2.1 Examples

+ +
    +
  • +Generate silence: +
     
    aevalsrc=0
    +
    + +
  • +Generate a sin signal with frequency of 440 Hz, set sample rate to +8000 Hz: +
     
    aevalsrc="sin(440*2*PI*t):s=8000"
    +
    + +
  • +Generate a two channels signal, specify the channel layout (Front +Center + Back Center) explicitly: +
     
    aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC"
    +
    + +
  • +Generate white noise: +
     
    aevalsrc="-2+random(0)"
    +
    + +
  • +Generate an amplitude modulated signal: +
     
    aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)"
    +
    + +
  • +Generate 2.5 Hz binaural beats on a 360 Hz carrier: +
     
    aevalsrc="0.1*sin(2*PI*(360-2.5/2)*t) | 0.1*sin(2*PI*(360+2.5/2)*t)"
    +
    + +
+ + +

26.3 anullsrc

+ +

The null audio source, return unprocessed audio frames. It is mainly useful +as a template and to be employed in analysis / debugging tools, or as +the source for filters which ignore the input data (for example the sox +synth filter). +

+

This source accepts the following options: +

+
+
channel_layout, cl
+
+

Specifies the channel layout, and can be either an integer or a string +representing a channel layout. The default value of channel_layout +is "stereo". +

+

Check the channel_layout_map definition in +‘libavutil/channel_layout.c’ for the mapping between strings and +channel layout values. +

+
+
sample_rate, r
+

Specifies the sample rate, and defaults to 44100. +

+
+
nb_samples, n
+

Set the number of samples per requested frames. +

+
+
+ + +

26.3.1 Examples

+ +
    +
  • +Set the sample rate to 48000 Hz and the channel layout to AV_CH_LAYOUT_MONO. +
     
    anullsrc=r=48000:cl=4
    +
    + +
  • +Do the same operation with a more obvious syntax: +
     
    anullsrc=r=48000:cl=mono
    +
    +
+ +

All the parameters need to be explicitly defined. +

+ +

26.4 flite

+ +

Synthesize a voice utterance using the libflite library. +

+

To enable compilation of this filter you need to configure FFmpeg with +--enable-libflite. +

+

Note that the flite library is not thread-safe. +

+

The filter accepts the following options: +

+
+
list_voices
+

If set to 1, list the names of the available voices and exit +immediately. Default value is 0. +

+
+
nb_samples, n
+

Set the maximum number of samples per frame. Default value is 512. +

+
+
textfile
+

Set the filename containing the text to speak. +

+
+
text
+

Set the text to speak. +

+
+
voice, v
+

Set the voice to use for the speech synthesis. Default value is +kal. See also the list_voices option. +

+
+ + +

26.4.1 Examples

+ +
    +
  • +Read from file ‘speech.txt’, and synthetize the text using the +standard flite voice: +
     
    flite=textfile=speech.txt
    +
    + +
  • +Read the specified text selecting the slt voice: +
     
    flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
    +
    + +
  • +Input text to ffmpeg: +
     
    ffmpeg -f lavfi -i flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
    +
    + +
  • +Make ‘ffplay’ speak the specified text, using flite and +the lavfi device: +
     
    ffplay -f lavfi flite=text='No more be grieved for which that thou hast done.'
    +
    +
+ +

For more information about libflite, check: +http://www.speech.cs.cmu.edu/flite/ +

+ +

26.5 sine

+ +

Generate an audio signal made of a sine wave with amplitude 1/8. +

+

The audio signal is bit-exact. +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set the carrier frequency. Default is 440 Hz. +

+
+
beep_factor, b
+

Enable a periodic beep every second with frequency beep_factor times +the carrier frequency. Default is 0, meaning the beep is disabled. +

+
+
sample_rate, r
+

Specify the sample rate, default is 44100. +

+
+
duration, d
+

Specify the duration of the generated audio stream. +

+
+
samples_per_frame
+

Set the number of samples per output frame, default is 1024. +

+
+ + +

26.5.1 Examples

+ +
    +
  • +Generate a simple 440 Hz sine wave: +
     
    sine
    +
    + +
  • +Generate a 220 Hz sine wave with a 880 Hz beep each second, for 5 seconds: +
     
    sine=220:4:d=5
    +sine=f=220:b=4:d=5
    +sine=frequency=220:beep_factor=4:duration=5
    +
    + +
+ + + +

27. Audio Sinks

+ +

Below is a description of the currently available audio sinks. +

+ +

27.1 abuffersink

+ +

Buffer audio frames, and make them available to the end of filter chain. +

+

This sink is mainly intended for programmatic use, in particular +through the interface defined in ‘libavfilter/buffersink.h’ +or the options system. +

+

It accepts a pointer to an AVABufferSinkContext structure, which +defines the incoming buffers’ formats, to be passed as the opaque +parameter to avfilter_init_filter for initialization. +

+

27.2 anullsink

+ +

Null audio sink; do absolutely nothing with the input audio. It is +mainly useful as a template and for use in analysis / debugging +tools. +

+ + +

28. Video Filters

+ +

When you configure your FFmpeg build, you can disable any of the +existing filters using --disable-filters. +The configure output will show the video filters included in your +build. +

+

Below is a description of the currently available video filters. +

+ +

28.1 alphaextract

+ +

Extract the alpha component from the input as a grayscale video. This +is especially useful with the alphamerge filter. +

+ +

28.2 alphamerge

+ +

Add or replace the alpha component of the primary input with the +grayscale value of a second input. This is intended for use with +alphaextract to allow the transmission or storage of frame +sequences that have alpha in a format that doesn’t support an alpha +channel. +

+

For example, to reconstruct full frames from a normal YUV-encoded video +and a separate video created with alphaextract, you might use: +

 
movie=in_alpha.mkv [alpha]; [in][alpha] alphamerge [out]
+
+ +

Since this filter is designed for reconstruction, it operates on frame +sequences without considering timestamps, and terminates when either +input reaches end of stream. This will cause problems if your encoding +pipeline drops frames. If you’re trying to apply an image as an +overlay to a video stream, consider the overlay filter instead. +

+ +

28.3 ass

+ +

Same as the subtitles filter, except that it doesn’t require libavcodec +and libavformat to work. On the other hand, it is limited to ASS (Advanced +Substation Alpha) subtitles files. +

+ +

28.4 bbox

+ +

Compute the bounding box for the non-black pixels in the input frame +luminance plane. +

+

This filter computes the bounding box containing all the pixels with a +luminance value greater than the minimum allowed value. +The parameters describing the bounding box are printed on the filter +log. +

+

The filter accepts the following option: +

+
+
min_val
+

Set the minimal luminance value. Default is 16. +

+
+ + +

28.5 blackdetect

+ +

Detect video intervals that are (almost) completely black. Can be +useful to detect chapter transitions, commercials, or invalid +recordings. Output lines contains the time for the start, end and +duration of the detected black interval expressed in seconds. +

+

In order to display the output lines, you need to set the loglevel at +least to the AV_LOG_INFO value. +

+

The filter accepts the following options: +

+
+
black_min_duration, d
+

Set the minimum detected black duration expressed in seconds. It must +be a non-negative floating point number. +

+

Default value is 2.0. +

+
+
picture_black_ratio_th, pic_th
+

Set the threshold for considering a picture "black". +Express the minimum value for the ratio: +

 
nb_black_pixels / nb_pixels
+
+ +

for which a picture is considered black. +Default value is 0.98. +

+
+
pixel_black_th, pix_th
+

Set the threshold for considering a pixel "black". +

+

The threshold expresses the maximum pixel luminance value for which a +pixel is considered "black". The provided value is scaled according to +the following equation: +

 
absolute_threshold = luminance_minimum_value + pixel_black_th * luminance_range_size
+
+ +

luminance_range_size and luminance_minimum_value depend on +the input video format, the range is [0-255] for YUV full-range +formats and [16-235] for YUV non full-range formats. +

+

Default value is 0.10. +

+
+ +

The following example sets the maximum pixel threshold to the minimum +value, and detects only black intervals of 2 or more seconds: +

 
blackdetect=d=2:pix_th=0.00
+
+ + +

28.6 blackframe

+ +

Detect frames that are (almost) completely black. Can be useful to +detect chapter transitions or commercials. Output lines consist of +the frame number of the detected frame, the percentage of blackness, +the position in the file if known or -1 and the timestamp in seconds. +

+

In order to display the output lines, you need to set the loglevel at +least to the AV_LOG_INFO value. +

+

It accepts the following parameters: +

+
+
amount
+

The percentage of the pixels that have to be below the threshold; it defaults to +98. +

+
+
threshold, thresh
+

The threshold below which a pixel value is considered black; it defaults to +32. +

+
+
+ + +

28.7 blend

+ +

Blend two video frames into each other. +

+

It takes two input streams and outputs one stream, the first input is the +"top" layer and second input is "bottom" layer. +Output terminates when shortest input terminates. +

+

A description of the accepted options follows. +

+
+
c0_mode
+
c1_mode
+
c2_mode
+
c3_mode
+
all_mode
+

Set blend mode for specific pixel component or all pixel components in case +of all_mode. Default value is normal. +

+

Available values for component modes are: +

+
addition
+
and
+
average
+
burn
+
darken
+
difference
+
divide
+
dodge
+
exclusion
+
hardlight
+
lighten
+
multiply
+
negation
+
normal
+
or
+
overlay
+
phoenix
+
pinlight
+
reflect
+
screen
+
softlight
+
subtract
+
vividlight
+
xor
+
+ +
+
c0_opacity
+
c1_opacity
+
c2_opacity
+
c3_opacity
+
all_opacity
+

Set blend opacity for specific pixel component or all pixel components in case +of all_opacity. Only used in combination with pixel component blend modes. +

+
+
c0_expr
+
c1_expr
+
c2_expr
+
c3_expr
+
all_expr
+

Set blend expression for specific pixel component or all pixel components in case +of all_expr. Note that related mode options will be ignored if those are set. +

+

The expressions can use the following variables: +

+
+
N
+

The sequential number of the filtered frame, starting from 0. +

+
+
X
+
Y
+

the coordinates of the current sample +

+
+
W
+
H
+

the width and height of currently filtered plane +

+
+
SW
+
SH
+

Width and height scale depending on the currently filtered plane. It is the +ratio between the corresponding luma plane number of pixels and the current +plane ones. E.g. for YUV4:2:0 the values are 1,1 for the luma plane, and +0.5,0.5 for chroma planes. +

+
+
T
+

Time of the current frame, expressed in seconds. +

+
+
TOP, A
+

Value of pixel component at current location for first video frame (top layer). +

+
+
BOTTOM, B
+

Value of pixel component at current location for second video frame (bottom layer). +

+
+ +
+
shortest
+

Force termination when the shortest input terminates. Default is 0. +

+
repeatlast
+

Continue applying the last bottom frame after the end of the stream. A value of +0 disable the filter after the last frame of the bottom layer is reached. +Default is 1. +

+
+ + +

28.7.1 Examples

+ +
    +
  • +Apply transition from bottom layer to top layer in first 10 seconds: +
     
    blend=all_expr='A*(if(gte(T,10),1,T/10))+B*(1-(if(gte(T,10),1,T/10)))'
    +
    + +
  • +Apply 1x1 checkerboard effect: +
     
    blend=all_expr='if(eq(mod(X,2),mod(Y,2)),A,B)'
    +
    + +
  • +Apply uncover left effect: +
     
    blend=all_expr='if(gte(N*SW+X,W),A,B)'
    +
    + +
  • +Apply uncover down effect: +
     
    blend=all_expr='if(gte(Y-N*SH,0),A,B)'
    +
    + +
  • +Apply uncover up-left effect: +
     
    blend=all_expr='if(gte(T*SH*40+Y,H)*gte((T*40*SW+X)*W/H,W),A,B)'
    +
    +
+ + +

28.8 boxblur

+ +

Apply a boxblur algorithm to the input video. +

+

It accepts the following parameters: +

+
+
luma_radius, lr
+
luma_power, lp
+
chroma_radius, cr
+
chroma_power, cp
+
alpha_radius, ar
+
alpha_power, ap
+
+ +

A description of the accepted options follows. +

+
+
luma_radius, lr
+
chroma_radius, cr
+
alpha_radius, ar
+

Set an expression for the box radius in pixels used for blurring the +corresponding input plane. +

+

The radius value must be a non-negative number, and must not be +greater than the value of the expression min(w,h)/2 for the +luma and alpha planes, and of min(cw,ch)/2 for the chroma +planes. +

+

Default value for ‘luma_radius’ is "2". If not specified, +‘chroma_radius’ and ‘alpha_radius’ default to the +corresponding value set for ‘luma_radius’. +

+

The expressions can contain the following constants: +

+
w
+
h
+

The input width and height in pixels. +

+
+
cw
+
ch
+

The input chroma image width and height in pixels. +

+
+
hsub
+
vsub
+

The horizontal and vertical chroma subsample values. For example, for the +pixel format "yuv422p", hsub is 2 and vsub is 1. +

+
+ +
+
luma_power, lp
+
chroma_power, cp
+
alpha_power, ap
+

Specify how many times the boxblur filter is applied to the +corresponding plane. +

+

Default value for ‘luma_power’ is 2. If not specified, +‘chroma_power’ and ‘alpha_power’ default to the +corresponding value set for ‘luma_power’. +

+

A value of 0 will disable the effect. +

+
+ + +

28.8.1 Examples

+ +
    +
  • +Apply a boxblur filter with the luma, chroma, and alpha radii +set to 2: +
     
    boxblur=luma_radius=2:luma_power=1
    +boxblur=2:1
    +
    + +
  • +Set the luma radius to 2, and alpha and chroma radius to 0: +
     
    boxblur=2:1:cr=0:ar=0
    +
    + +
  • +Set the luma and chroma radii to a fraction of the video dimension: +
     
    boxblur=luma_radius=min(h\,w)/10:luma_power=1:chroma_radius=min(cw\,ch)/10:chroma_power=1
    +
    +
+ + +

28.9 colorbalance

+

Modify intensity of primary colors (red, green and blue) of input frames. +

+

The filter allows an input frame to be adjusted in the shadows, midtones or highlights +regions for the red-cyan, green-magenta or blue-yellow balance. +

+

A positive adjustment value shifts the balance towards the primary color, a negative +value towards the complementary color. +

+

The filter accepts the following options: +

+
+
rs
+
gs
+
bs
+

Adjust red, green and blue shadows (darkest pixels). +

+
+
rm
+
gm
+
bm
+

Adjust red, green and blue midtones (medium pixels). +

+
+
rh
+
gh
+
bh
+

Adjust red, green and blue highlights (brightest pixels). +

+

Allowed ranges for options are [-1.0, 1.0]. Defaults are 0. +

+
+ + +

28.9.1 Examples

+ +
    +
  • +Add red color cast to shadows: +
     
    colorbalance=rs=.3
    +
    +
+ + +

28.10 colorchannelmixer

+ +

Adjust video input frames by re-mixing color channels. +

+

This filter modifies a color channel by adding the values associated to +the other channels of the same pixels. For example if the value to +modify is red, the output value will be: +

 
red=red*rr + blue*rb + green*rg + alpha*ra
+
+ +

The filter accepts the following options: +

+
+
rr
+
rg
+
rb
+
ra
+

Adjust contribution of input red, green, blue and alpha channels for output red channel. +Default is 1 for rr, and 0 for rg, rb and ra. +

+
+
gr
+
gg
+
gb
+
ga
+

Adjust contribution of input red, green, blue and alpha channels for output green channel. +Default is 1 for gg, and 0 for gr, gb and ga. +

+
+
br
+
bg
+
bb
+
ba
+

Adjust contribution of input red, green, blue and alpha channels for output blue channel. +Default is 1 for bb, and 0 for br, bg and ba. +

+
+
ar
+
ag
+
ab
+
aa
+

Adjust contribution of input red, green, blue and alpha channels for output alpha channel. +Default is 1 for aa, and 0 for ar, ag and ab. +

+

Allowed ranges for options are [-2.0, 2.0]. +

+
+ + +

28.10.1 Examples

+ +
    +
  • +Convert source to grayscale: +
     
    colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3
    +
    +
  • +Simulate sepia tones: +
     
    colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131
    +
    +
+ + +

28.11 colormatrix

+ +

Convert color matrix. +

+

The filter accepts the following options: +

+
+
src
+
dst
+

Specify the source and destination color matrix. Both values must be +specified. +

+

The accepted values are: +

+
bt709
+

BT.709 +

+
+
bt601
+

BT.601 +

+
+
smpte240m
+

SMPTE-240M +

+
+
fcc
+

FCC +

+
+
+
+ +

For example to convert from BT.601 to SMPTE-240M, use the command: +

 
colormatrix=bt601:smpte240m
+
+ + +

28.12 copy

+ +

Copy the input source unchanged to the output. This is mainly useful for +testing purposes. +

+ +

28.13 crop

+ +

Crop the input video to given dimensions. +

+

It accepts the following parameters: +

+
+
w, out_w
+

The width of the output video. It defaults to iw. +This expression is evaluated only once during the filter +configuration. +

+
+
h, out_h
+

The height of the output video. It defaults to ih. +This expression is evaluated only once during the filter +configuration. +

+
+
x
+

The horizontal position, in the input video, of the left edge of the output +video. It defaults to (in_w-out_w)/2. +This expression is evaluated per-frame. +

+
+
y
+

The vertical position, in the input video, of the top edge of the output video. +It defaults to (in_h-out_h)/2. +This expression is evaluated per-frame. +

+
+
keep_aspect
+

If set to 1 will force the output display aspect ratio +to be the same of the input, by changing the output sample aspect +ratio. It defaults to 0. +

+
+ +

The out_w, out_h, x, y parameters are +expressions containing the following constants: +

+
+
x
+
y
+

The computed values for x and y. They are evaluated for +each new frame. +

+
+
in_w
+
in_h
+

The input width and height. +

+
+
iw
+
ih
+

These are the same as in_w and in_h. +

+
+
out_w
+
out_h
+

The output (cropped) width and height. +

+
+
ow
+
oh
+

These are the same as out_w and out_h. +

+
+
a
+

same as iw / ih +

+
+
sar
+

input sample aspect ratio +

+
+
dar
+

input display aspect ratio, it is the same as (iw / ih) * sar +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
n
+

The number of the input frame, starting from 0. +

+
+
pos
+

the position in the file of the input frame, NAN if unknown +

+
+
t
+

The timestamp expressed in seconds. It’s NAN if the input timestamp is unknown. +

+
+
+ +

The expression for out_w may depend on the value of out_h, +and the expression for out_h may depend on out_w, but they +cannot depend on x and y, as x and y are +evaluated after out_w and out_h. +

+

The x and y parameters specify the expressions for the +position of the top-left corner of the output (non-cropped) area. They +are evaluated for each frame. If the evaluated value is not valid, it +is approximated to the nearest valid value. +

+

The expression for x may depend on y, and the expression +for y may depend on x. +

+ +

28.13.1 Examples

+ +
    +
  • +Crop area with size 100x100 at position (12,34). +
     
    crop=100:100:12:34
    +
    + +

    Using named options, the example above becomes: +

     
    crop=w=100:h=100:x=12:y=34
    +
    + +
  • +Crop the central input area with size 100x100: +
     
    crop=100:100
    +
    + +
  • +Crop the central input area with size 2/3 of the input video: +
     
    crop=2/3*in_w:2/3*in_h
    +
    + +
  • +Crop the input video central square: +
     
    crop=out_w=in_h
    +crop=in_h
    +
    + +
  • +Delimit the rectangle with the top-left corner placed at position +100:100 and the right-bottom corner corresponding to the right-bottom +corner of the input image. +
     
    crop=in_w-100:in_h-100:100:100
    +
    + +
  • +Crop 10 pixels from the left and right borders, and 20 pixels from +the top and bottom borders +
     
    crop=in_w-2*10:in_h-2*20
    +
    + +
  • +Keep only the bottom right quarter of the input image: +
     
    crop=in_w/2:in_h/2:in_w/2:in_h/2
    +
    + +
  • +Crop height for getting Greek harmony: +
     
    crop=in_w:1/PHI*in_w
    +
    + +
  • +Appply trembling effect: +
     
    crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(n/10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(n/7)
    +
    + +
  • +Apply erratic camera effect depending on timestamp: +
     
    crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(t*10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(t*13)"
    +
    + +
  • +Set x depending on the value of y: +
     
    crop=in_w/2:in_h/2:y:10+10*sin(n/10)
    +
    +
+ + +

28.14 cropdetect

+ +

Auto-detect the crop size. +

+

It calculates the necessary cropping parameters and prints the +recommended parameters via the logging system. The detected dimensions +correspond to the non-black area of the input video. +

+

It accepts the following parameters: +

+
+
limit
+

Set higher black value threshold, which can be optionally specified +from nothing (0) to everything (255). An intensity value greater +to the set value is considered non-black. It defaults to 24. +

+
+
round
+

The value which the width/height should be divisible by. It defaults to +16. The offset is automatically adjusted to center the video. Use 2 to +get only even dimensions (needed for 4:2:2 video). 16 is best when +encoding to most video codecs. +

+
+
reset_count, reset
+

Set the counter that determines after how many frames cropdetect will +reset the previously detected largest video area and start over to +detect the current optimal crop area. Default value is 0. +

+

This can be useful when channel logos distort the video area. 0 +indicates ’never reset’, and returns the largest area encountered during +playback. +

+
+ +

+

+

28.15 curves

+ +

Apply color adjustments using curves. +

+

This filter is similar to the Adobe Photoshop and GIMP curves tools. Each +component (red, green and blue) has its values defined by N key points +tied from each other using a smooth curve. The x-axis represents the pixel +values from the input frame, and the y-axis the new pixel values to be set for +the output frame. +

+

By default, a component curve is defined by the two points (0;0) and +(1;1). This creates a straight line where each original pixel value is +"adjusted" to its own value, which means no change to the image. +

+

The filter allows you to redefine these two points and add some more. A new +curve (using a natural cubic spline interpolation) will be define to pass +smoothly through all these new coordinates. The new defined points needs to be +strictly increasing over the x-axis, and their x and y values must +be in the [0;1] interval. If the computed curves happened to go outside +the vector spaces, the values will be clipped accordingly. +

+

If there is no key point defined in x=0, the filter will automatically +insert a (0;0) point. In the same way, if there is no key point defined +in x=1, the filter will automatically insert a (1;1) point. +

+

The filter accepts the following options: +

+
+
preset
+

Select one of the available color presets. This option can be used in addition +to the ‘r’, ‘g’, ‘b’ parameters; in this case, the later +options takes priority on the preset values. +Available presets are: +

+
none
+
color_negative
+
cross_process
+
darker
+
increase_contrast
+
lighter
+
linear_contrast
+
medium_contrast
+
negative
+
strong_contrast
+
vintage
+
+

Default is none. +

+
master, m
+

Set the master key points. These points will define a second pass mapping. It +is sometimes called a "luminance" or "value" mapping. It can be used with +‘r’, ‘g’, ‘b’ or ‘all’ since it acts like a +post-processing LUT. +

+
red, r
+

Set the key points for the red component. +

+
green, g
+

Set the key points for the green component. +

+
blue, b
+

Set the key points for the blue component. +

+
all
+

Set the key points for all components (not including master). +Can be used in addition to the other key points component +options. In this case, the unset component(s) will fallback on this +‘all’ setting. +

+
psfile
+

Specify a Photoshop curves file (.asv) to import the settings from. +

+
+ +

To avoid some filtergraph syntax conflicts, each key points list need to be +defined using the following syntax: x0/y0 x1/y1 x2/y2 .... +

+ +

28.15.1 Examples

+ +
    +
  • +Increase slightly the middle level of blue: +
     
    curves=blue='0.5/0.58'
    +
    + +
  • +Vintage effect: +
     
    curves=r='0/0.11 .42/.51 1/0.95':g='0.50/0.48':b='0/0.22 .49/.44 1/0.8'
    +
    +

    Here we obtain the following coordinates for each components: +

    +
    red
    +

    (0;0.11) (0.42;0.51) (1;0.95) +

    +
    green
    +

    (0;0) (0.50;0.48) (1;1) +

    +
    blue
    +

    (0;0.22) (0.49;0.44) (1;0.80) +

    +
    + +
  • +The previous example can also be achieved with the associated built-in preset: +
     
    curves=preset=vintage
    +
    + +
  • +Or simply: +
     
    curves=vintage
    +
    + +
  • +Use a Photoshop preset and redefine the points of the green component: +
     
    curves=psfile='MyCurvesPresets/purple.asv':green='0.45/0.53'
    +
    +
+ + +

28.16 dctdnoiz

+ +

Denoise frames using 2D DCT (frequency domain filtering). +

+

This filter is not designed for real time and can be extremely slow. +

+

The filter accepts the following options: +

+
+
sigma, s
+

Set the noise sigma constant. +

+

This sigma defines a hard threshold of 3 * sigma; every DCT +coefficient (absolute value) below this threshold with be dropped. +

+

If you need a more advanced filtering, see ‘expr’. +

+

Default is 0. +

+
+
overlap
+

Set number overlapping pixels for each block. Each block is of size +16x16. Since the filter can be slow, you may want to reduce this value, +at the cost of a less effective filter and the risk of various artefacts. +

+

If the overlapping value doesn’t allow to process the whole input width or +height, a warning will be displayed and according borders won’t be denoised. +

+

Default value is 15. +

+
+
expr, e
+

Set the coefficient factor expression. +

+

For each coefficient of a DCT block, this expression will be evaluated as a +multiplier value for the coefficient. +

+

If this is option is set, the ‘sigma’ option will be ignored. +

+

The absolute value of the coefficient can be accessed through the c +variable. +

+
+ + +

28.16.1 Examples

+ +

Apply a denoise with a ‘sigma’ of 4.5: +

 
dctdnoiz=4.5
+
+ +

The same operation can be achieved using the expression system: +

 
dctdnoiz=e='gte(c, 4.5*3)'
+
+ +

+

+

28.17 decimate

+ +

Drop duplicated frames at regular intervals. +

+

The filter accepts the following options: +

+
+
cycle
+

Set the number of frames from which one will be dropped. Setting this to +N means one frame in every batch of N frames will be dropped. +Default is 5. +

+
+
dupthresh
+

Set the threshold for duplicate detection. If the difference metric for a frame +is less than or equal to this value, then it is declared as duplicate. Default +is 1.1 +

+
+
scthresh
+

Set scene change threshold. Default is 15. +

+
+
blockx
+
blocky
+

Set the size of the x and y-axis blocks used during metric calculations. +Larger blocks give better noise suppression, but also give worse detection of +small movements. Must be a power of two. Default is 32. +

+
+
ppsrc
+

Mark main input as a pre-processed input and activate clean source input +stream. This allows the input to be pre-processed with various filters to help +the metrics calculation while keeping the frame selection lossless. When set to +1, the first stream is for the pre-processed input, and the second +stream is the clean source from where the kept frames are chosen. Default is +0. +

+
+
chroma
+

Set whether or not chroma is considered in the metric calculations. Default is +1. +

+
+ + +

28.18 dejudder

+ +

Remove judder produced by partially interlaced telecined content. +

+

Judder can be introduced, for instance, by pullup filter. If the original +source was partially telecined content then the output of pullup,dejudder +will have a variable frame rate. May change the recorded frame rate of the +container. Aside from that change, this filter will not affect constant frame +rate video. +

+

The option available in this filter is: +

+
cycle
+

Specify the length of the window over which the judder repeats. +

+

Accepts any interger greater than 1. Useful values are: +

+
4
+

If the original was telecined from 24 to 30 fps (Film to NTSC). +

+
+
5
+

If the original was telecined from 25 to 30 fps (PAL to NTSC). +

+
+
20
+

If a mixture of the two. +

+
+ +

The default is ‘4’. +

+
+ + +

28.19 delogo

+ +

Suppress a TV station logo by a simple interpolation of the surrounding +pixels. Just set a rectangle covering the logo and watch it disappear +(and sometimes something even uglier appear - your mileage may vary). +

+

It accepts the following parameters: +

+
x
+
y
+

Specify the top left corner coordinates of the logo. They must be +specified. +

+
+
w
+
h
+

Specify the width and height of the logo to clear. They must be +specified. +

+
+
band, t
+

Specify the thickness of the fuzzy edge of the rectangle (added to +w and h). The default value is 4. +

+
+
show
+

When set to 1, a green rectangle is drawn on the screen to simplify +finding the right x, y, w, and h parameters. +The default value is 0. +

+

The rectangle is drawn on the outermost pixels which will be (partly) +replaced with interpolated values. The values of the next pixels +immediately outside this rectangle in each direction will be used to +compute the interpolated pixel values inside the rectangle. +

+
+
+ + +

28.19.1 Examples

+ +
    +
  • +Set a rectangle covering the area with top left corner coordinates 0,0 +and size 100x77, and a band of size 10: +
     
    delogo=x=0:y=0:w=100:h=77:band=10
    +
    + +
+ + +

28.20 deshake

+ +

Attempt to fix small changes in horizontal and/or vertical shift. This +filter helps remove camera shake from hand-holding a camera, bumping a +tripod, moving on a vehicle, etc. +

+

The filter accepts the following options: +

+
+
x
+
y
+
w
+
h
+

Specify a rectangular area where to limit the search for motion +vectors. +If desired the search for motion vectors can be limited to a +rectangular area of the frame defined by its top left corner, width +and height. These parameters have the same meaning as the drawbox +filter which can be used to visualise the position of the bounding +box. +

+

This is useful when simultaneous movement of subjects within the frame +might be confused for camera motion by the motion vector search. +

+

If any or all of x, y, w and h are set to -1 +then the full frame is used. This allows later options to be set +without specifying the bounding box for the motion vector search. +

+

Default - search the whole frame. +

+
+
rx
+
ry
+

Specify the maximum extent of movement in x and y directions in the +range 0-64 pixels. Default 16. +

+
+
edge
+

Specify how to generate pixels to fill blanks at the edge of the +frame. Available values are: +

+
blank, 0
+

Fill zeroes at blank locations +

+
original, 1
+

Original image at blank locations +

+
clamp, 2
+

Extruded edge value at blank locations +

+
mirror, 3
+

Mirrored edge at blank locations +

+
+

Default value is ‘mirror’. +

+
+
blocksize
+

Specify the blocksize to use for motion search. Range 4-128 pixels, +default 8. +

+
+
contrast
+

Specify the contrast threshold for blocks. Only blocks with more than +the specified contrast (difference between darkest and lightest +pixels) will be considered. Range 1-255, default 125. +

+
+
search
+

Specify the search strategy. Available values are: +

+
exhaustive, 0
+

Set exhaustive search +

+
less, 1
+

Set less exhaustive search. +

+
+

Default value is ‘exhaustive’. +

+
+
filename
+

If set then a detailed log of the motion search is written to the +specified file. +

+
+
opencl
+

If set to 1, specify using OpenCL capabilities, only available if +FFmpeg was configured with --enable-opencl. Default value is 0. +

+
+
+ + +

28.21 drawbox

+ +

Draw a colored box on the input image. +

+

It accepts the following parameters: +

+
+
x
+
y
+

The expressions which specify the top left corner coordinates of the box. It defaults to 0. +

+
+
width, w
+
height, h
+

The expressions which specify the width and height of the box; if 0 they are interpreted as +the input width and height. It defaults to 0. +

+
+
color, c
+

Specify the color of the box to write. For the general syntax of this option, +check the "Color" section in the ffmpeg-utils manual. If the special +value invert is used, the box edge color is the same as the +video with inverted luma. +

+
+
thickness, t
+

The expression which sets the thickness of the box edge. Default value is 3. +

+

See below for the list of accepted constants. +

+
+ +

The parameters for x, y, w and h and t are expressions containing the +following constants: +

+
+
dar
+

The input display aspect ratio, it is the same as (w / h) * sar. +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
in_h, ih
+
in_w, iw
+

The input width and height. +

+
+
sar
+

The input sample aspect ratio. +

+
+
x
+
y
+

The x and y offset coordinates where the box is drawn. +

+
+
w
+
h
+

The width and height of the drawn box. +

+
+
t
+

The thickness of the drawn box. +

+

These constants allow the x, y, w, h and t expressions to refer to +each other, so you may for example specify y=x/dar or h=w/dar. +

+
+
+ + +

28.21.1 Examples

+ +
    +
  • +Draw a black box around the edge of the input image: +
     
    drawbox
    +
    + +
  • +Draw a box with color red and an opacity of 50%: +
     
    drawbox=10:20:200:60:red@0.5
    +
    + +

    The previous example can be specified as: +

     
    drawbox=x=10:y=20:w=200:h=60:color=red@0.5
    +
    + +
  • +Fill the box with pink color: +
     
    drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=max
    +
    + +
  • +Draw a 2-pixel red 2.40:1 mask: +
     
    drawbox=x=-t:y=0.5*(ih-iw/2.4)-t:w=iw+t*2:h=iw/2.4+t*2:t=2:c=red
    +
    +
+ + +

28.22 drawgrid

+ +

Draw a grid on the input image. +

+

It accepts the following parameters: +

+
+
x
+
y
+

The expressions which specify the coordinates of some point of grid intersection (meant to configure offset). Both default to 0. +

+
+
width, w
+
height, h
+

The expressions which specify the width and height of the grid cell, if 0 they are interpreted as the +input width and height, respectively, minus thickness, so image gets +framed. Default to 0. +

+
+
color, c
+

Specify the color of the grid. For the general syntax of this option, +check the "Color" section in the ffmpeg-utils manual. If the special +value invert is used, the grid color is the same as the +video with inverted luma. +

+
+
thickness, t
+

The expression which sets the thickness of the grid line. Default value is 1. +

+

See below for the list of accepted constants. +

+
+ +

The parameters for x, y, w and h and t are expressions containing the +following constants: +

+
+
dar
+

The input display aspect ratio, it is the same as (w / h) * sar. +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
in_h, ih
+
in_w, iw
+

The input grid cell width and height. +

+
+
sar
+

The input sample aspect ratio. +

+
+
x
+
y
+

The x and y coordinates of some point of grid intersection (meant to configure offset). +

+
+
w
+
h
+

The width and height of the drawn cell. +

+
+
t
+

The thickness of the drawn cell. +

+

These constants allow the x, y, w, h and t expressions to refer to +each other, so you may for example specify y=x/dar or h=w/dar. +

+
+
+ + +

28.22.1 Examples

+ +
    +
  • +Draw a grid with cell 100x100 pixels, thickness 2 pixels, with color red and an opacity of 50%: +
     
    drawgrid=width=100:height=100:thickness=2:color=red@0.5
    +
    + +
  • +Draw a white 3x3 grid with an opacity of 50%: +
     
    drawgrid=w=iw/3:h=ih/3:t=2:c=white@0.5
    +
    +
+ +

+

+

28.23 drawtext

+ +

Draw a text string or text from a specified file on top of a video, using the +libfreetype library. +

+

To enable compilation of this filter, you need to configure FFmpeg with +--enable-libfreetype. +To enable default font fallback and the font option you need to +configure FFmpeg with --enable-libfontconfig. +

+ +

28.23.1 Syntax

+ +

It accepts the following parameters: +

+
+
box
+

Used to draw a box around text using the background color. +The value must be either 1 (enable) or 0 (disable). +The default value of box is 0. +

+
+
boxcolor
+

The color to be used for drawing box around text. For the syntax of this +option, check the "Color" section in the ffmpeg-utils manual. +

+

The default value of boxcolor is "white". +

+
+
borderw
+

Set the width of the border to be drawn around the text using bordercolor. +The default value of borderw is 0. +

+
+
bordercolor
+

Set the color to be used for drawing border around text. For the syntax of this +option, check the "Color" section in the ffmpeg-utils manual. +

+

The default value of bordercolor is "black". +

+
+
expansion
+

Select how the text is expanded. Can be either none, +strftime (deprecated) or +normal (default). See the Text expansion section +below for details. +

+
+
fix_bounds
+

If true, check and fix text coords to avoid clipping. +

+
+
fontcolor
+

The color to be used for drawing fonts. For the syntax of this option, check +the "Color" section in the ffmpeg-utils manual. +

+

The default value of fontcolor is "black". +

+
+
font
+

The font family to be used for drawing text. By default Sans. +

+
+
fontfile
+

The font file to be used for drawing text. The path must be included. +This parameter is mandatory if the fontconfig support is disabled. +

+
+
fontsize
+

The font size to be used for drawing text. +The default value of fontsize is 16. +

+
+
ft_load_flags
+

The flags to be used for loading the fonts. +

+

The flags map the corresponding flags supported by libfreetype, and are +a combination of the following values: +

+
default
+
no_scale
+
no_hinting
+
render
+
no_bitmap
+
vertical_layout
+
force_autohint
+
crop_bitmap
+
pedantic
+
ignore_global_advance_width
+
no_recurse
+
ignore_transform
+
monochrome
+
linear_design
+
no_autohint
+
+ +

Default value is "default". +

+

For more information consult the documentation for the FT_LOAD_* +libfreetype flags. +

+
+
shadowcolor
+

The color to be used for drawing a shadow behind the drawn text. For the +syntax of this option, check the "Color" section in the ffmpeg-utils manual. +

+

The default value of shadowcolor is "black". +

+
+
shadowx
+
shadowy
+

The x and y offsets for the text shadow position with respect to the +position of the text. They can be either positive or negative +values. The default value for both is "0". +

+
+
start_number
+

The starting frame number for the n/frame_num variable. The default value +is "0". +

+
+
tabsize
+

The size in number of spaces to use for rendering the tab. +Default value is 4. +

+
+
timecode
+

Set the initial timecode representation in "hh:mm:ss[:;.]ff" +format. It can be used with or without text parameter. timecode_rate +option must be specified. +

+
+
timecode_rate, rate, r
+

Set the timecode frame rate (timecode only). +

+
+
text
+

The text string to be drawn. The text must be a sequence of UTF-8 +encoded characters. +This parameter is mandatory if no file is specified with the parameter +textfile. +

+
+
textfile
+

A text file containing text to be drawn. The text must be a sequence +of UTF-8 encoded characters. +

+

This parameter is mandatory if no text string is specified with the +parameter text. +

+

If both text and textfile are specified, an error is thrown. +

+
+
reload
+

If set to 1, the textfile will be reloaded before each frame. +Be sure to update it atomically, or it may be read partially, or even fail. +

+
+
x
+
y
+

The expressions which specify the offsets where text will be drawn +within the video frame. They are relative to the top/left border of the +output image. +

+

The default value of x and y is "0". +

+

See below for the list of accepted constants and functions. +

+
+ +

The parameters for x and y are expressions containing the +following constants and functions: +

+
+
dar
+

input display aspect ratio, it is the same as (w / h) * sar +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
line_h, lh
+

the height of each text line +

+
+
main_h, h, H
+

the input height +

+
+
main_w, w, W
+

the input width +

+
+
max_glyph_a, ascent
+

the maximum distance from the baseline to the highest/upper grid +coordinate used to place a glyph outline point, for all the rendered +glyphs. +It is a positive value, due to the grid’s orientation with the Y axis +upwards. +

+
+
max_glyph_d, descent
+

the maximum distance from the baseline to the lowest grid coordinate +used to place a glyph outline point, for all the rendered glyphs. +This is a negative value, due to the grid’s orientation, with the Y axis +upwards. +

+
+
max_glyph_h
+

maximum glyph height, that is the maximum height for all the glyphs +contained in the rendered text, it is equivalent to ascent - +descent. +

+
+
max_glyph_w
+

maximum glyph width, that is the maximum width for all the glyphs +contained in the rendered text +

+
+
n
+

the number of input frame, starting from 0 +

+
+
rand(min, max)
+

return a random number included between min and max +

+
+
sar
+

The input sample aspect ratio. +

+
+
t
+

timestamp expressed in seconds, NAN if the input timestamp is unknown +

+
+
text_h, th
+

the height of the rendered text +

+
+
text_w, tw
+

the width of the rendered text +

+
+
x
+
y
+

the x and y offset coordinates where the text is drawn. +

+

These parameters allow the x and y expressions to refer +each other, so you can for example specify y=x/dar. +

+
+ +

+

+

28.23.2 Text expansion

+ +

If ‘expansion’ is set to strftime, +the filter recognizes strftime() sequences in the provided text and +expands them accordingly. Check the documentation of strftime(). This +feature is deprecated. +

+

If ‘expansion’ is set to none, the text is printed verbatim. +

+

If ‘expansion’ is set to normal (which is the default), +the following expansion mechanism is used. +

+

The backslash character ’\’, followed by any character, always expands to +the second character. +

+

Sequence of the form %{...} are expanded. The text between the +braces is a function name, possibly followed by arguments separated by ’:’. +If the arguments contain special characters or delimiters (’:’ or ’}’), +they should be escaped. +

+

Note that they probably must also be escaped as the value for the +‘text’ option in the filter argument string and as the filter +argument in the filtergraph description, and possibly also for the shell, +that makes up to four levels of escaping; using a text file avoids these +problems. +

+

The following functions are available: +

+
+
expr, e
+

The expression evaluation result. +

+

It must take one argument specifying the expression to be evaluated, +which accepts the same constants and functions as the x and +y values. Note that not all constants should be used, for +example the text size is not known when evaluating the expression, so +the constants text_w and text_h will have an undefined +value. +

+
+
gmtime
+

The time at which the filter is running, expressed in UTC. +It can accept an argument: a strftime() format string. +

+
+
localtime
+

The time at which the filter is running, expressed in the local time zone. +It can accept an argument: a strftime() format string. +

+
+
metadata
+

Frame metadata. It must take one argument specifying metadata key. +

+
+
n, frame_num
+

The frame number, starting from 0. +

+
+
pict_type
+

A 1 character description of the current picture type. +

+
+
pts
+

The timestamp of the current frame, in seconds, with microsecond accuracy. +

+
+
+ + +

28.23.3 Examples

+ +
    +
  • +Draw "Test Text" with font FreeSerif, using the default values for the +optional parameters. + +
     
    drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text'"
    +
    + +
  • +Draw ’Test Text’ with font FreeSerif of size 24 at position x=100 +and y=50 (counting from the top-left corner of the screen), text is +yellow with a red box around it. Both the text and the box have an +opacity of 20%. + +
     
    drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text':\
    +          x=100: y=50: fontsize=24: fontcolor=yellow@0.2: box=1: boxcolor=red@0.2"
    +
    + +

    Note that the double quotes are not necessary if spaces are not used +within the parameter list. +

    +
  • +Show the text at the center of the video frame: +
     
    drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h-line_h)/2"
    +
    + +
  • +Show a text line sliding from right to left in the last row of the video +frame. The file ‘LONG_LINE’ is assumed to contain a single line +with no newlines. +
     
    drawtext="fontsize=15:fontfile=FreeSerif.ttf:text=LONG_LINE:y=h-line_h:x=-50*t"
    +
    + +
  • +Show the content of file ‘CREDITS’ off the bottom of the frame and scroll up. +
     
    drawtext="fontsize=20:fontfile=FreeSerif.ttf:textfile=CREDITS:y=h-20*t"
    +
    + +
  • +Draw a single green letter "g", at the center of the input video. +The glyph baseline is placed at half screen height. +
     
    drawtext="fontsize=60:fontfile=FreeSerif.ttf:fontcolor=green:text=g:x=(w-max_glyph_w)/2:y=h/2-ascent"
    +
    + +
  • +Show text for 1 second every 3 seconds: +
     
    drawtext="fontfile=FreeSerif.ttf:fontcolor=white:x=100:y=x/dar:enable=lt(mod(t\,3)\,1):text='blink'"
    +
    + +
  • +Use fontconfig to set the font. Note that the colons need to be escaped. +
     
    drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'
    +
    + +
  • +Print the date of a real-time encoding (see strftime(3)): +
     
    drawtext='fontfile=FreeSans.ttf:text=%{localtime:%a %b %d %Y}'
    +
    + +
+ +

For more information about libfreetype, check: +http://www.freetype.org/. +

+

For more information about fontconfig, check: +http://freedesktop.org/software/fontconfig/fontconfig-user.html. +

+ +

28.24 edgedetect

+ +

Detect and draw edges. The filter uses the Canny Edge Detection algorithm. +

+

The filter accepts the following options: +

+
+
low
+
high
+

Set low and high threshold values used by the Canny thresholding +algorithm. +

+

The high threshold selects the "strong" edge pixels, which are then +connected through 8-connectivity with the "weak" edge pixels selected +by the low threshold. +

+

low and high threshold values must be chosen in the range +[0,1], and low should be lesser or equal to high. +

+

Default value for low is 20/255, and default value for high +is 50/255. +

+
+ +

Example: +

 
edgedetect=low=0.1:high=0.4
+
+ + +

28.25 extractplanes

+ +

Extract color channel components from input video stream into +separate grayscale video streams. +

+

The filter accepts the following option: +

+
+
planes
+

Set plane(s) to extract. +

+

Available values for planes are: +

+
y
+
u
+
v
+
a
+
r
+
g
+
b
+
+ +

Choosing planes not available in the input will result in an error. +That means you cannot select r, g, b planes +with y, u, v planes at same time. +

+
+ + +

28.25.1 Examples

+ +
    +
  • +Extract luma, u and v color channel component from input video frame +into 3 grayscale outputs: +
     
    ffmpeg -i video.avi -filter_complex 'extractplanes=y+u+v[y][u][v]' -map '[y]' y.avi -map '[u]' u.avi -map '[v]' v.avi
    +
    +
+ + +

28.26 elbg

+ +

Apply a posterize effect using the ELBG (Enhanced LBG) algorithm. +

+

For each input image, the filter will compute the optimal mapping from +the input to the output given the codebook length, that is the number +of distinct output colors. +

+

This filter accepts the following options. +

+
+
codebook_length, l
+

Set codebook length. The value must be a positive integer, and +represents the number of distinct output colors. Default value is 256. +

+
+
nb_steps, n
+

Set the maximum number of iterations to apply for computing the optimal +mapping. The higher the value the better the result and the higher the +computation time. Default value is 1. +

+
+
seed, s
+

Set a random seed, must be an integer included between 0 and +UINT32_MAX. If not specified, or if explicitly set to -1, the filter +will try to use a good random seed on a best effort basis. +

+
+ + +

28.27 fade

+ +

Apply a fade-in/out effect to the input video. +

+

It accepts the following parameters: +

+
+
type, t
+

The effect type can be either "in" for a fade-in, or "out" for a fade-out +effect. +Default is in. +

+
+
start_frame, s
+

Specify the number of the frame to start applying the fade +effect at. Default is 0. +

+
+
nb_frames, n
+

The number of frames that the fade effect lasts. At the end of the +fade-in effect, the output video will have the same intensity as the input video. +At the end of the fade-out transition, the output video will be filled with the +selected ‘color’. +Default is 25. +

+
+
alpha
+

If set to 1, fade only alpha channel, if one exists on the input. +Default value is 0. +

+
+
start_time, st
+

Specify the timestamp (in seconds) of the frame to start to apply the fade +effect. If both start_frame and start_time are specified, the fade will start at +whichever comes last. Default is 0. +

+
+
duration, d
+

The number of seconds for which the fade effect has to last. At the end of the +fade-in effect the output video will have the same intensity as the input video, +at the end of the fade-out transition the output video will be filled with the +selected ‘color’. +If both duration and nb_frames are specified, duration is used. Default is 0. +

+
+
color, c
+

Specify the color of the fade. Default is "black". +

+
+ + +

28.27.1 Examples

+ +
    +
  • +Fade in the first 30 frames of video: +
     
    fade=in:0:30
    +
    + +

    The command above is equivalent to: +

     
    fade=t=in:s=0:n=30
    +
    + +
  • +Fade out the last 45 frames of a 200-frame video: +
     
    fade=out:155:45
    +fade=type=out:start_frame=155:nb_frames=45
    +
    + +
  • +Fade in the first 25 frames and fade out the last 25 frames of a 1000-frame video: +
     
    fade=in:0:25, fade=out:975:25
    +
    + +
  • +Make the first 5 frames yellow, then fade in from frame 5-24: +
     
    fade=in:5:20:color=yellow
    +
    + +
  • +Fade in alpha over first 25 frames of video: +
     
    fade=in:0:25:alpha=1
    +
    + +
  • +Make the first 5.5 seconds black, then fade in for 0.5 seconds: +
     
    fade=t=in:st=5.5:d=0.5
    +
    + +
+ + +

28.28 field

+ +

Extract a single field from an interlaced image using stride +arithmetic to avoid wasting CPU time. The output frames are marked as +non-interlaced. +

+

The filter accepts the following options: +

+
+
type
+

Specify whether to extract the top (if the value is 0 or +top) or the bottom field (if the value is 1 or +bottom). +

+
+ + +

28.29 fieldmatch

+ +

Field matching filter for inverse telecine. It is meant to reconstruct the +progressive frames from a telecined stream. The filter does not drop duplicated +frames, so to achieve a complete inverse telecine fieldmatch needs to be +followed by a decimation filter such as decimate in the filtergraph. +

+

The separation of the field matching and the decimation is notably motivated by +the possibility of inserting a de-interlacing filter fallback between the two. +If the source has mixed telecined and real interlaced content, +fieldmatch will not be able to match fields for the interlaced parts. +But these remaining combed frames will be marked as interlaced, and thus can be +de-interlaced by a later filter such as yadif before decimation. +

+

In addition to the various configuration options, fieldmatch can take an +optional second stream, activated through the ‘ppsrc’ option. If +enabled, the frames reconstruction will be based on the fields and frames from +this second stream. This allows the first input to be pre-processed in order to +help the various algorithms of the filter, while keeping the output lossless +(assuming the fields are matched properly). Typically, a field-aware denoiser, +or brightness/contrast adjustments can help. +

+

Note that this filter uses the same algorithms as TIVTC/TFM (AviSynth project) +and VIVTC/VFM (VapourSynth project). The later is a light clone of TFM from +which fieldmatch is based on. While the semantic and usage are very +close, some behaviour and options names can differ. +

+

The filter accepts the following options: +

+
+
order
+

Specify the assumed field order of the input stream. Available values are: +

+
+
auto
+

Auto detect parity (use FFmpeg’s internal parity value). +

+
bff
+

Assume bottom field first. +

+
tff
+

Assume top field first. +

+
+ +

Note that it is sometimes recommended not to trust the parity announced by the +stream. +

+

Default value is auto. +

+
+
mode
+

Set the matching mode or strategy to use. ‘pc’ mode is the safest in the +sense that it won’t risk creating jerkiness due to duplicate frames when +possible, but if there are bad edits or blended fields it will end up +outputting combed frames when a good match might actually exist. On the other +hand, ‘pcn_ub’ mode is the most risky in terms of creating jerkiness, +but will almost always find a good frame if there is one. The other values are +all somewhere in between ‘pc’ and ‘pcn_ub’ in terms of risking +jerkiness and creating duplicate frames versus finding good matches in sections +with bad edits, orphaned fields, blended fields, etc. +

+

More details about p/c/n/u/b are available in p/c/n/u/b meaning section. +

+

Available values are: +

+
+
pc
+

2-way matching (p/c) +

+
pc_n
+

2-way matching, and trying 3rd match if still combed (p/c + n) +

+
pc_u
+

2-way matching, and trying 3rd match (same order) if still combed (p/c + u) +

+
pc_n_ub
+

2-way matching, trying 3rd match if still combed, and trying 4th/5th matches if +still combed (p/c + n + u/b) +

+
pcn
+

3-way matching (p/c/n) +

+
pcn_ub
+

3-way matching, and trying 4th/5th matches if all 3 of the original matches are +detected as combed (p/c/n + u/b) +

+
+ +

The parenthesis at the end indicate the matches that would be used for that +mode assuming ‘order’=tff (and ‘field’ on auto or +top). +

+

In terms of speed ‘pc’ mode is by far the fastest and ‘pcn_ub’ is +the slowest. +

+

Default value is pc_n. +

+
+
ppsrc
+

Mark the main input stream as a pre-processed input, and enable the secondary +input stream as the clean source to pick the fields from. See the filter +introduction for more details. It is similar to the ‘clip2’ feature from +VFM/TFM. +

+

Default value is 0 (disabled). +

+
+
field
+

Set the field to match from. It is recommended to set this to the same value as +‘order’ unless you experience matching failures with that setting. In +certain circumstances changing the field that is used to match from can have a +large impact on matching performance. Available values are: +

+
+
auto
+

Automatic (same value as ‘order’). +

+
bottom
+

Match from the bottom field. +

+
top
+

Match from the top field. +

+
+ +

Default value is auto. +

+
+
mchroma
+

Set whether or not chroma is included during the match comparisons. In most +cases it is recommended to leave this enabled. You should set this to 0 +only if your clip has bad chroma problems such as heavy rainbowing or other +artifacts. Setting this to 0 could also be used to speed things up at +the cost of some accuracy. +

+

Default value is 1. +

+
+
y0
+
y1
+

These define an exclusion band which excludes the lines between ‘y0’ and +‘y1’ from being included in the field matching decision. An exclusion +band can be used to ignore subtitles, a logo, or other things that may +interfere with the matching. ‘y0’ sets the starting scan line and +‘y1’ sets the ending line; all lines in between ‘y0’ and +‘y1’ (including ‘y0’ and ‘y1’) will be ignored. Setting +‘y0’ and ‘y1’ to the same value will disable the feature. +‘y0’ and ‘y1’ defaults to 0. +

+
+
scthresh
+

Set the scene change detection threshold as a percentage of maximum change on +the luma plane. Good values are in the [8.0, 14.0] range. Scene change +detection is only relevant in case ‘combmatch’=sc. The range for +‘scthresh’ is [0.0, 100.0]. +

+

Default value is 12.0. +

+
+
combmatch
+

When ‘combatch’ is not none, fieldmatch will take into +account the combed scores of matches when deciding what match to use as the +final match. Available values are: +

+
+
none
+

No final matching based on combed scores. +

+
sc
+

Combed scores are only used when a scene change is detected. +

+
full
+

Use combed scores all the time. +

+
+ +

Default is sc. +

+
+
combdbg
+

Force fieldmatch to calculate the combed metrics for certain matches and +print them. This setting is known as ‘micout’ in TFM/VFM vocabulary. +Available values are: +

+
+
none
+

No forced calculation. +

+
pcn
+

Force p/c/n calculations. +

+
pcnub
+

Force p/c/n/u/b calculations. +

+
+ +

Default value is none. +

+
+
cthresh
+

This is the area combing threshold used for combed frame detection. This +essentially controls how "strong" or "visible" combing must be to be detected. +Larger values mean combing must be more visible and smaller values mean combing +can be less visible or strong and still be detected. Valid settings are from +-1 (every pixel will be detected as combed) to 255 (no pixel will +be detected as combed). This is basically a pixel difference value. A good +range is [8, 12]. +

+

Default value is 9. +

+
+
chroma
+

Sets whether or not chroma is considered in the combed frame decision. Only +disable this if your source has chroma problems (rainbowing, etc.) that are +causing problems for the combed frame detection with chroma enabled. Actually, +using ‘chroma’=0 is usually more reliable, except for the case +where there is chroma only combing in the source. +

+

Default value is 0. +

+
+
blockx
+
blocky
+

Respectively set the x-axis and y-axis size of the window used during combed +frame detection. This has to do with the size of the area in which +‘combpel’ pixels are required to be detected as combed for a frame to be +declared combed. See the ‘combpel’ parameter description for more info. +Possible values are any number that is a power of 2 starting at 4 and going up +to 512. +

+

Default value is 16. +

+
+
combpel
+

The number of combed pixels inside any of the ‘blocky’ by +‘blockx’ size blocks on the frame for the frame to be detected as +combed. While ‘cthresh’ controls how "visible" the combing must be, this +setting controls "how much" combing there must be in any localized area (a +window defined by the ‘blockx’ and ‘blocky’ settings) on the +frame. Minimum value is 0 and maximum is blocky x blockx (at +which point no frames will ever be detected as combed). This setting is known +as ‘MI’ in TFM/VFM vocabulary. +

+

Default value is 80. +

+
+ +

+

+

28.29.1 p/c/n/u/b meaning

+ + +

28.29.1.1 p/c/n

+ +

We assume the following telecined stream: +

+
 
Top fields:     1 2 2 3 4
+Bottom fields:  1 2 3 4 4
+
+ +

The numbers correspond to the progressive frame the fields relate to. Here, the +first two frames are progressive, the 3rd and 4th are combed, and so on. +

+

When fieldmatch is configured to run a matching from bottom +(‘field’=bottom) this is how this input stream get transformed: +

+
 
Input stream:
+                T     1 2 2 3 4
+                B     1 2 3 4 4   <-- matching reference
+
+Matches:              c c n n c
+
+Output stream:
+                T     1 2 3 4 4
+                B     1 2 3 4 4
+
+ +

As a result of the field matching, we can see that some frames get duplicated. +To perform a complete inverse telecine, you need to rely on a decimation filter +after this operation. See for instance the decimate filter. +

+

The same operation now matching from top fields (‘field’=top) +looks like this: +

+
 
Input stream:
+                T     1 2 2 3 4   <-- matching reference
+                B     1 2 3 4 4
+
+Matches:              c c p p c
+
+Output stream:
+                T     1 2 2 3 4
+                B     1 2 2 3 4
+
+ +

In these examples, we can see what p, c and n mean; +basically, they refer to the frame and field of the opposite parity: +

+
    +
  • p matches the field of the opposite parity in the previous frame +
  • c matches the field of the opposite parity in the current frame +
  • n matches the field of the opposite parity in the next frame +
+ + +

28.29.1.2 u/b

+ +

The u and b matching are a bit special in the sense that they match +from the opposite parity flag. In the following examples, we assume that we are +currently matching the 2nd frame (Top:2, bottom:2). According to the match, a +’x’ is placed above and below each matched fields. +

+

With bottom matching (‘field’=bottom): +

 
Match:           c         p           n          b          u
+
+                 x       x               x        x          x
+  Top          1 2 2     1 2 2       1 2 2      1 2 2      1 2 2
+  Bottom       1 2 3     1 2 3       1 2 3      1 2 3      1 2 3
+                 x         x           x        x              x
+
+Output frames:
+                 2          1          2          2          2
+                 2          2          2          1          3
+
+ +

With top matching (‘field’=top): +

 
Match:           c         p           n          b          u
+
+                 x         x           x        x              x
+  Top          1 2 2     1 2 2       1 2 2      1 2 2      1 2 2
+  Bottom       1 2 3     1 2 3       1 2 3      1 2 3      1 2 3
+                 x       x               x        x          x
+
+Output frames:
+                 2          2          2          1          2
+                 2          1          3          2          2
+
+ + +

28.29.2 Examples

+ +

Simple IVTC of a top field first telecined stream: +

 
fieldmatch=order=tff:combmatch=none, decimate
+
+ +

Advanced IVTC, with fallback on yadif for still combed frames: +

 
fieldmatch=order=tff:combmatch=full, yadif=deint=interlaced, decimate
+
+ + +

28.30 fieldorder

+ +

Transform the field order of the input video. +

+

It accepts the following parameters: +

+
+
order
+

The output field order. Valid values are tff for top field first or bff +for bottom field first. +

+
+ +

The default value is ‘tff’. +

+

The transformation is done by shifting the picture content up or down +by one line, and filling the remaining line with appropriate picture content. +This method is consistent with most broadcast field order converters. +

+

If the input video is not flagged as being interlaced, or it is already +flagged as being of the required output field order, then this filter does +not alter the incoming video. +

+

It is very useful when converting to or from PAL DV material, +which is bottom field first. +

+

For example: +

 
ffmpeg -i in.vob -vf "fieldorder=bff" out.dv
+
+ + +

28.31 fifo

+ +

Buffer input images and send them when they are requested. +

+

It is mainly useful when auto-inserted by the libavfilter +framework. +

+

It does not take parameters. +

+

+

+

28.32 format

+ +

Convert the input video to one of the specified pixel formats. +Libavfilter will try to pick one that is suitable as input to +the next filter. +

+

It accepts the following parameters: +

+
pix_fmts
+

A ’|’-separated list of pixel format names, such as +"pix_fmts=yuv420p|monow|rgb24". +

+
+
+ + +

28.32.1 Examples

+ +
    +
  • +Convert the input video to the yuv420p format +
     
    format=pix_fmts=yuv420p
    +
    + +

    Convert the input video to any of the formats in the list +

     
    format=pix_fmts=yuv420p|yuv444p|yuv410p
    +
    +
+ +

+

+

28.33 fps

+ +

Convert the video to specified constant frame rate by duplicating or dropping +frames as necessary. +

+

It accepts the following parameters: +

+
fps
+

The desired output frame rate. The default is 25. +

+
+
round
+

Rounding method. +

+

Possible values are: +

+
zero
+

zero round towards 0 +

+
inf
+

round away from 0 +

+
down
+

round towards -infinity +

+
up
+

round towards +infinity +

+
near
+

round to nearest +

+
+

The default is near. +

+
+
start_time
+

Assume the first PTS should be the given value, in seconds. This allows for +padding/trimming at the start of stream. By default, no assumption is made +about the first frame’s expected PTS, so no padding or trimming is done. +For example, this could be set to 0 to pad the beginning with duplicates of +the first frame if a video stream starts after the audio stream or to trim any +frames with a negative PTS. +

+
+
+ +

Alternatively, the options can be specified as a flat string: +fps[:round]. +

+

See also the setpts filter. +

+ +

28.33.1 Examples

+ +
    +
  • +A typical usage in order to set the fps to 25: +
     
    fps=fps=25
    +
    + +
  • +Sets the fps to 24, using abbreviation and rounding method to round to nearest: +
     
    fps=fps=film:round=near
    +
    +
+ + +

28.34 framepack

+ +

Pack two different video streams into a stereoscopic video, setting proper +metadata on supported codecs. The two views should have the same size and +framerate and processing will stop when the shorter video ends. Please note +that you may conveniently adjust view properties with the scale and +fps filters. +

+

It accepts the following parameters: +

+
format
+

The desired packing format. Supported values are: +

+
+
sbs
+

The views are next to each other (default). +

+
+
tab
+

The views are on top of each other. +

+
+
lines
+

The views are packed by line. +

+
+
columns
+

The views are packed by column. +

+
+
frameseq
+

The views are temporally interleaved. +

+
+
+ +
+
+ +

Some examples: +

+
 
# Convert left and right views into a frame-sequential video
+ffmpeg -i LEFT -i RIGHT -filter_complex framepack=frameseq OUTPUT
+
+# Convert views into a side-by-side video with the same output resolution as the input
+ffmpeg -i LEFT -i RIGHT -filter_complex [0:v]scale=w=iw/2[left],[1:v]scale=w=iw/2[right],[left][right]framepack=sbs OUTPUT
+
+ + +

28.35 framestep

+ +

Select one frame every N-th frame. +

+

This filter accepts the following option: +

+
step
+

Select frame after every step frames. +Allowed values are positive integers higher than 0. Default value is 1. +

+
+ +

+

+

28.36 frei0r

+ +

Apply a frei0r effect to the input video. +

+

To enable the compilation of this filter, you need to install the frei0r +header and configure FFmpeg with --enable-frei0r. +

+

It accepts the following parameters: +

+
+
filter_name
+

The name of the frei0r effect to load. If the environment variable +FREI0R_PATH is defined, the frei0r effect is searched for in each of the +directories specified by the colon-separated list in FREIOR_PATH. +Otherwise, the standard frei0r paths are searched, in this order: +‘HOME/.frei0r-1/lib/’, ‘/usr/local/lib/frei0r-1/’, +‘/usr/lib/frei0r-1/’. +

+
+
filter_params
+

A ’|’-separated list of parameters to pass to the frei0r effect. +

+
+
+ +

A frei0r effect parameter can be a boolean (its value is either +"y" or "n"), a double, a color (specified as +R/G/B, where R, G, and B are floating point +numbers between 0.0 and 1.0, inclusive) or by a color description specified in the "Color" +section in the ffmpeg-utils manual), a position (specified as X/Y, where +X and Y are floating point numbers) and/or a string. +

+

The number and types of parameters depend on the loaded effect. If an +effect parameter is not specified, the default value is set. +

+ +

28.36.1 Examples

+ +
    +
  • +Apply the distort0r effect, setting the first two double parameters: +
     
    frei0r=filter_name=distort0r:filter_params=0.5|0.01
    +
    + +
  • +Apply the colordistance effect, taking a color as the first parameter: +
     
    frei0r=colordistance:0.2/0.3/0.4
    +frei0r=colordistance:violet
    +frei0r=colordistance:0x112233
    +
    + +
  • +Apply the perspective effect, specifying the top left and top right image +positions: +
     
    frei0r=perspective:0.2/0.2|0.8/0.2
    +
    +
+ +

For more information, see +http://frei0r.dyne.org +

+ +

28.37 geq

+ +

The filter accepts the following options: +

+
+
lum_expr, lum
+

Set the luminance expression. +

+
cb_expr, cb
+

Set the chrominance blue expression. +

+
cr_expr, cr
+

Set the chrominance red expression. +

+
alpha_expr, a
+

Set the alpha expression. +

+
red_expr, r
+

Set the red expression. +

+
green_expr, g
+

Set the green expression. +

+
blue_expr, b
+

Set the blue expression. +

+
+ +

The colorspace is selected according to the specified options. If one +of the ‘lum_expr’, ‘cb_expr’, or ‘cr_expr’ +options is specified, the filter will automatically select a YCbCr +colorspace. If one of the ‘red_expr’, ‘green_expr’, or +‘blue_expr’ options is specified, it will select an RGB +colorspace. +

+

If one of the chrominance expression is not defined, it falls back on the other +one. If no alpha expression is specified it will evaluate to opaque value. +If none of chrominance expressions are specified, they will evaluate +to the luminance expression. +

+

The expressions can use the following variables and functions: +

+
+
N
+

The sequential number of the filtered frame, starting from 0. +

+
+
X
+
Y
+

The coordinates of the current sample. +

+
+
W
+
H
+

The width and height of the image. +

+
+
SW
+
SH
+

Width and height scale depending on the currently filtered plane. It is the +ratio between the corresponding luma plane number of pixels and the current +plane ones. E.g. for YUV4:2:0 the values are 1,1 for the luma plane, and +0.5,0.5 for chroma planes. +

+
+
T
+

Time of the current frame, expressed in seconds. +

+
+
p(x, y)
+

Return the value of the pixel at location (x,y) of the current +plane. +

+
+
lum(x, y)
+

Return the value of the pixel at location (x,y) of the luminance +plane. +

+
+
cb(x, y)
+

Return the value of the pixel at location (x,y) of the +blue-difference chroma plane. Return 0 if there is no such plane. +

+
+
cr(x, y)
+

Return the value of the pixel at location (x,y) of the +red-difference chroma plane. Return 0 if there is no such plane. +

+
+
r(x, y)
+
g(x, y)
+
b(x, y)
+

Return the value of the pixel at location (x,y) of the +red/green/blue component. Return 0 if there is no such component. +

+
+
alpha(x, y)
+

Return the value of the pixel at location (x,y) of the alpha +plane. Return 0 if there is no such plane. +

+
+ +

For functions, if x and y are outside the area, the value will be +automatically clipped to the closer edge. +

+ +

28.37.1 Examples

+ +
    +
  • +Flip the image horizontally: +
     
    geq=p(W-X\,Y)
    +
    + +
  • +Generate a bidimensional sine wave, with angle PI/3 and a +wavelength of 100 pixels: +
     
    geq=128 + 100*sin(2*(PI/100)*(cos(PI/3)*(X-50*T) + sin(PI/3)*Y)):128:128
    +
    + +
  • +Generate a fancy enigmatic moving light: +
     
    nullsrc=s=256x256,geq=random(1)/hypot(X-cos(N*0.07)*W/2-W/2\,Y-sin(N*0.09)*H/2-H/2)^2*1000000*sin(N*0.02):128:128
    +
    + +
  • +Generate a quick emboss effect: +
     
    format=gray,geq=lum_expr='(p(X,Y)+(256-p(X-4,Y-4)))/2'
    +
    + +
  • +Modify RGB components depending on pixel position: +
     
    geq=r='X/W*r(X,Y)':g='(1-X/W)*g(X,Y)':b='(H-Y)/H*b(X,Y)'
    +
    +
+ + +

28.38 gradfun

+ +

Fix the banding artifacts that are sometimes introduced into nearly flat +regions by truncation to 8bit color depth. +Interpolate the gradients that should go where the bands are, and +dither them. +

+

It is designed for playback only. Do not use it prior to +lossy compression, because compression tends to lose the dither and +bring back the bands. +

+

It accepts the following parameters: +

+
+
strength
+

The maximum amount by which the filter will change any one pixel. This is also +the threshold for detecting nearly flat regions. Acceptable values range from +.51 to 64; the default value is 1.2. Out-of-range values will be clipped to the +valid range. +

+
+
radius
+

The neighborhood to fit the gradient to. A larger radius makes for smoother +gradients, but also prevents the filter from modifying the pixels near detailed +regions. Acceptable values are 8-32; the default value is 16. Out-of-range +values will be clipped to the valid range. +

+
+
+ +

Alternatively, the options can be specified as a flat string: +strength[:radius] +

+ +

28.38.1 Examples

+ +
    +
  • +Apply the filter with a 3.5 strength and radius of 8: +
     
    gradfun=3.5:8
    +
    + +
  • +Specify radius, omitting the strength (which will fall-back to the default +value): +
     
    gradfun=radius=8
    +
    + +
+ +

+

+

28.39 haldclut

+ +

Apply a Hald CLUT to a video stream. +

+

First input is the video stream to process, and second one is the Hald CLUT. +The Hald CLUT input can be a simple picture or a complete video stream. +

+

The filter accepts the following options: +

+
+
shortest
+

Force termination when the shortest input terminates. Default is 0. +

+
repeatlast
+

Continue applying the last CLUT after the end of the stream. A value of +0 disable the filter after the last frame of the CLUT is reached. +Default is 1. +

+
+ +

haldclut also has the same interpolation options as lut3d (both +filters share the same internals). +

+

More information about the Hald CLUT can be found on Eskil Steenberg’s website +(Hald CLUT author) at http://www.quelsolaar.com/technology/clut.html. +

+ +

28.39.1 Workflow examples

+ + +

28.39.1.1 Hald CLUT video stream

+ +

Generate an identity Hald CLUT stream altered with various effects: +

 
ffmpeg -f lavfi -i haldclutsrc=8 -vf "hue=H=2*PI*t:s=sin(2*PI*t)+1, curves=cross_process" -t 10 -c:v ffv1 clut.nut
+
+ +

Note: make sure you use a lossless codec. +

+

Then use it with haldclut to apply it on some random stream: +

 
ffmpeg -f lavfi -i mandelbrot -i clut.nut -filter_complex '[0][1] haldclut' -t 20 mandelclut.mkv
+
+ +

The Hald CLUT will be applied to the 10 first seconds (duration of +‘clut.nut’), then the latest picture of that CLUT stream will be applied +to the remaining frames of the mandelbrot stream. +

+ +

28.39.1.2 Hald CLUT with preview

+ +

A Hald CLUT is supposed to be a squared image of Level*Level*Level by +Level*Level*Level pixels. For a given Hald CLUT, FFmpeg will select the +biggest possible square starting at the top left of the picture. The remaining +padding pixels (bottom or right) will be ignored. This area can be used to add +a preview of the Hald CLUT. +

+

Typically, the following generated Hald CLUT will be supported by the +haldclut filter: +

+
 
ffmpeg -f lavfi -i haldclutsrc=8 -vf "
+   pad=iw+320 [padded_clut];
+   smptebars=s=320x256, split [a][b];
+   [padded_clut][a] overlay=W-320:h, curves=color_negative [main];
+   [main][b] overlay=W-320" -frames:v 1 clut.png
+
+ +

It contains the original and a preview of the effect of the CLUT: SMPTE color +bars are displayed on the right-top, and below the same color bars processed by +the color changes. +

+

Then, the effect of this Hald CLUT can be visualized with: +

 
ffplay input.mkv -vf "movie=clut.png, [in] haldclut"
+
+ + +

28.40 hflip

+ +

Flip the input video horizontally. +

+

For example, to horizontally flip the input video with ffmpeg: +

 
ffmpeg -i in.avi -vf "hflip" out.avi
+
+ + +

28.41 histeq

+

This filter applies a global color histogram equalization on a +per-frame basis. +

+

It can be used to correct video that has a compressed range of pixel +intensities. The filter redistributes the pixel intensities to +equalize their distribution across the intensity range. It may be +viewed as an "automatically adjusting contrast filter". This filter is +useful only for correcting degraded or poorly captured source +video. +

+

The filter accepts the following options: +

+
+
strength
+

Determine the amount of equalization to be applied. As the strength +is reduced, the distribution of pixel intensities more-and-more +approaches that of the input frame. The value must be a float number +in the range [0,1] and defaults to 0.200. +

+
+
intensity
+

Set the maximum intensity that can generated and scale the output +values appropriately. The strength should be set as desired and then +the intensity can be limited if needed to avoid washing-out. The value +must be a float number in the range [0,1] and defaults to 0.210. +

+
+
antibanding
+

Set the antibanding level. If enabled the filter will randomly vary +the luminance of output pixels by a small amount to avoid banding of +the histogram. Possible values are none, weak or +strong. It defaults to none. +

+
+ + +

28.42 histogram

+ +

Compute and draw a color distribution histogram for the input video. +

+

The computed histogram is a representation of the color component +distribution in an image. +

+

The filter accepts the following options: +

+
+
mode
+

Set histogram mode. +

+

It accepts the following values: +

+
levels
+

Standard histogram that displays the color components distribution in an +image. Displays color graph for each color component. Shows distribution of +the Y, U, V, A or R, G, B components, depending on input format, in the +current frame. Below each graph a color component scale meter is shown. +

+
+
color
+

Displays chroma values (U/V color placement) in a two dimensional +graph (which is called a vectorscope). The brighter a pixel in the +vectorscope, the more pixels of the input frame correspond to that pixel +(i.e., more pixels have this chroma value). The V component is displayed on +the horizontal (X) axis, with the leftmost side being V = 0 and the rightmost +side being V = 255. The U component is displayed on the vertical (Y) axis, +with the top representing U = 0 and the bottom representing U = 255. +

+

The position of a white pixel in the graph corresponds to the chroma value of +a pixel of the input clip. The graph can therefore be used to read the hue +(color flavor) and the saturation (the dominance of the hue in the color). As +the hue of a color changes, it moves around the square. At the center of the +square the saturation is zero, which means that the corresponding pixel has no +color. If the amount of a specific color is increased (while leaving the other +colors unchanged) the saturation increases, and the indicator moves towards +the edge of the square. +

+
+
color2
+

Chroma values in vectorscope, similar as color but actual chroma values +are displayed. +

+
+
waveform
+

Per row/column color component graph. In row mode, the graph on the left side +represents color component value 0 and the right side represents value = 255. +In column mode, the top side represents color component value = 0 and bottom +side represents value = 255. +

+
+

Default value is levels. +

+
+
level_height
+

Set height of level in levels. Default value is 200. +Allowed range is [50, 2048]. +

+
+
scale_height
+

Set height of color scale in levels. Default value is 12. +Allowed range is [0, 40]. +

+
+
step
+

Set step for waveform mode. Smaller values are useful to find out how +many values of the same luminance are distributed across input rows/columns. +Default value is 10. Allowed range is [1, 255]. +

+
+
waveform_mode
+

Set mode for waveform. Can be either row, or column. +Default is row. +

+
+
waveform_mirror
+

Set mirroring mode for waveform. 0 means unmirrored, 1 +means mirrored. In mirrored mode, higher values will be represented on the left +side for row mode and at the top for column mode. Default is +0 (unmirrored). +

+
+
display_mode
+

Set display mode for waveform and levels. +It accepts the following values: +

+
parade
+

Display separate graph for the color components side by side in +row waveform mode or one below the other in column waveform mode +for waveform histogram mode. For levels histogram mode, +per color component graphs are placed below each other. +

+

Using this display mode in waveform histogram mode makes it easy to +spot color casts in the highlights and shadows of an image, by comparing the +contours of the top and the bottom graphs of each waveform. Since whites, +grays, and blacks are characterized by exactly equal amounts of red, green, +and blue, neutral areas of the picture should display three waveforms of +roughly equal width/height. If not, the correction is easy to perform by +making level adjustments the three waveforms. +

+
+
overlay
+

Presents information identical to that in the parade, except +that the graphs representing color components are superimposed directly +over one another. +

+

This display mode in waveform histogram mode makes it easier to spot +relative differences or similarities in overlapping areas of the color +components that are supposed to be identical, such as neutral whites, grays, +or blacks. +

+
+

Default is parade. +

+
+
levels_mode
+

Set mode for levels. Can be either linear, or logarithmic. +Default is linear. +

+
+ + +

28.42.1 Examples

+ +
    +
  • +Calculate and draw histogram: +
     
    ffplay -i input -vf histogram
    +
    + +
+ +

+

+

28.43 hqdn3d

+ +

This is a high precision/quality 3d denoise filter. It aims to reduce +image noise, producing smooth images and making still images really +still. It should enhance compressibility. +

+

It accepts the following optional parameters: +

+
+
luma_spatial
+

A non-negative floating point number which specifies spatial luma strength. +It defaults to 4.0. +

+
+
chroma_spatial
+

A non-negative floating point number which specifies spatial chroma strength. +It defaults to 3.0*luma_spatial/4.0. +

+
+
luma_tmp
+

A floating point number which specifies luma temporal strength. It defaults to +6.0*luma_spatial/4.0. +

+
+
chroma_tmp
+

A floating point number which specifies chroma temporal strength. It defaults to +luma_tmp*chroma_spatial/luma_spatial. +

+
+ + +

28.44 hue

+ +

Modify the hue and/or the saturation of the input. +

+

It accepts the following parameters: +

+
+
h
+

Specify the hue angle as a number of degrees. It accepts an expression, +and defaults to "0". +

+
+
s
+

Specify the saturation in the [-10,10] range. It accepts an expression and +defaults to "1". +

+
+
H
+

Specify the hue angle as a number of radians. It accepts an +expression, and defaults to "0". +

+
+
b
+

Specify the brightness in the [-10,10] range. It accepts an expression and +defaults to "0". +

+
+ +

h’ and ‘H’ are mutually exclusive, and can’t be +specified at the same time. +

+

The ‘b’, ‘h’, ‘H’ and ‘s’ option values are +expressions containing the following constants: +

+
+
n
+

frame count of the input frame starting from 0 +

+
+
pts
+

presentation timestamp of the input frame expressed in time base units +

+
+
r
+

frame rate of the input video, NAN if the input frame rate is unknown +

+
+
t
+

timestamp expressed in seconds, NAN if the input timestamp is unknown +

+
+
tb
+

time base of the input video +

+
+ + +

28.44.1 Examples

+ +
    +
  • +Set the hue to 90 degrees and the saturation to 1.0: +
     
    hue=h=90:s=1
    +
    + +
  • +Same command but expressing the hue in radians: +
     
    hue=H=PI/2:s=1
    +
    + +
  • +Rotate hue and make the saturation swing between 0 +and 2 over a period of 1 second: +
     
    hue="H=2*PI*t: s=sin(2*PI*t)+1"
    +
    + +
  • +Apply a 3 seconds saturation fade-in effect starting at 0: +
     
    hue="s=min(t/3\,1)"
    +
    + +

    The general fade-in expression can be written as: +

     
    hue="s=min(0\, max((t-START)/DURATION\, 1))"
    +
    + +
  • +Apply a 3 seconds saturation fade-out effect starting at 5 seconds: +
     
    hue="s=max(0\, min(1\, (8-t)/3))"
    +
    + +

    The general fade-out expression can be written as: +

     
    hue="s=max(0\, min(1\, (START+DURATION-t)/DURATION))"
    +
    + +
+ + +

28.44.2 Commands

+ +

This filter supports the following commands: +

+
b
+
s
+
h
+
H
+

Modify the hue and/or the saturation and/or brightness of the input video. +The command accepts the same syntax of the corresponding option. +

+

If the specified expression is not valid, it is kept at its current +value. +

+
+ + +

28.45 idet

+ +

Detect video interlacing type. +

+

This filter tries to detect if the input is interlaced or progressive, +top or bottom field first. +

+

The filter accepts the following options: +

+
+
intl_thres
+

Set interlacing threshold. +

+
prog_thres
+

Set progressive threshold. +

+
+ + +

28.46 il

+ +

Deinterleave or interleave fields. +

+

This filter allows one to process interlaced images fields without +deinterlacing them. Deinterleaving splits the input frame into 2 +fields (so called half pictures). Odd lines are moved to the top +half of the output image, even lines to the bottom half. +You can process (filter) them independently and then re-interleave them. +

+

The filter accepts the following options: +

+
+
luma_mode, l
+
chroma_mode, c
+
alpha_mode, a
+

Available values for luma_mode, chroma_mode and +alpha_mode are: +

+
+
none
+

Do nothing. +

+
+
deinterleave, d
+

Deinterleave fields, placing one above the other. +

+
+
interleave, i
+

Interleave fields. Reverse the effect of deinterleaving. +

+
+

Default value is none. +

+
+
luma_swap, ls
+
chroma_swap, cs
+
alpha_swap, as
+

Swap luma/chroma/alpha fields. Exchange even & odd lines. Default value is 0. +

+
+ + +

28.47 interlace

+ +

Simple interlacing filter from progressive contents. This interleaves upper (or +lower) lines from odd frames with lower (or upper) lines from even frames, +halving the frame rate and preserving image height. A vertical lowpass filter +is always applied in order to avoid twitter effects and reduce moiré patterns. +

+
 
   Original        Original             New Frame
+   Frame 'j'      Frame 'j+1'             (tff)
+  ==========      ===========       ==================
+    Line 0  -------------------->    Frame 'j' Line 0
+    Line 1          Line 1  ---->   Frame 'j+1' Line 1
+    Line 2 --------------------->    Frame 'j' Line 2
+    Line 3          Line 3  ---->   Frame 'j+1' Line 3
+     ...             ...                   ...
+New Frame + 1 will be generated by Frame 'j+2' and Frame 'j+3' and so on
+
+ +

It accepts the following optional parameters: +

+
+
scan
+

This determines whether the interlaced frame is taken from the even +(tff - default) or odd (bff) lines of the progressive frame. +

+
+ + +

28.48 kerndeint

+ +

Deinterlace input video by applying Donald Graft’s adaptive kernel +deinterling. Work on interlaced parts of a video to produce +progressive frames. +

+

The description of the accepted parameters follows. +

+
+
thresh
+

Set the threshold which affects the filter’s tolerance when +determining if a pixel line must be processed. It must be an integer +in the range [0,255] and defaults to 10. A value of 0 will result in +applying the process on every pixels. +

+
+
map
+

Paint pixels exceeding the threshold value to white if set to 1. +Default is 0. +

+
+
order
+

Set the fields order. Swap fields if set to 1, leave fields alone if +0. Default is 0. +

+
+
sharp
+

Enable additional sharpening if set to 1. Default is 0. +

+
+
twoway
+

Enable twoway sharpening if set to 1. Default is 0. +

+
+ + +

28.48.1 Examples

+ +
    +
  • +Apply default values: +
     
    kerndeint=thresh=10:map=0:order=0:sharp=0:twoway=0
    +
    + +
  • +Enable additional sharpening: +
     
    kerndeint=sharp=1
    +
    + +
  • +Paint processed pixels in white: +
     
    kerndeint=map=1
    +
    +
+ +

+

+

28.49 lut3d

+ +

Apply a 3D LUT to an input video. +

+

The filter accepts the following options: +

+
+
file
+

Set the 3D LUT file name. +

+

Currently supported formats: +

+
3dl
+

AfterEffects +

+
cube
+

Iridas +

+
dat
+

DaVinci +

+
m3d
+

Pandora +

+
+
+
interp
+

Select interpolation mode. +

+

Available values are: +

+
+
nearest
+

Use values from the nearest defined point. +

+
trilinear
+

Interpolate values using the 8 points defining a cube. +

+
tetrahedral
+

Interpolate values using a tetrahedron. +

+
+
+
+ + +

28.50 lut, lutrgb, lutyuv

+ +

Compute a look-up table for binding each pixel component input value +to an output value, and apply it to the input video. +

+

lutyuv applies a lookup table to a YUV input video, lutrgb +to an RGB input video. +

+

These filters accept the following parameters: +

+
c0
+

set first pixel component expression +

+
c1
+

set second pixel component expression +

+
c2
+

set third pixel component expression +

+
c3
+

set fourth pixel component expression, corresponds to the alpha component +

+
+
r
+

set red component expression +

+
g
+

set green component expression +

+
b
+

set blue component expression +

+
a
+

alpha component expression +

+
+
y
+

set Y/luminance component expression +

+
u
+

set U/Cb component expression +

+
v
+

set V/Cr component expression +

+
+ +

Each of them specifies the expression to use for computing the lookup table for +the corresponding pixel component values. +

+

The exact component associated to each of the c* options depends on the +format in input. +

+

The lut filter requires either YUV or RGB pixel formats in input, +lutrgb requires RGB pixel formats in input, and lutyuv requires YUV. +

+

The expressions can contain the following constants and functions: +

+
+
w
+
h
+

The input width and height. +

+
+
val
+

The input value for the pixel component. +

+
+
clipval
+

The input value, clipped to the minval-maxval range. +

+
+
maxval
+

The maximum value for the pixel component. +

+
+
minval
+

The minimum value for the pixel component. +

+
+
negval
+

The negated value for the pixel component value, clipped to the +minval-maxval range; it corresponds to the expression +"maxval-clipval+minval". +

+
+
clip(val)
+

The computed value in val, clipped to the +minval-maxval range. +

+
+
gammaval(gamma)
+

The computed gamma correction value of the pixel component value, +clipped to the minval-maxval range. It corresponds to the +expression +"pow((clipval-minval)/(maxval-minval)\,gamma)*(maxval-minval)+minval" +

+
+
+ +

All expressions default to "val". +

+ +

28.50.1 Examples

+ +
    +
  • +Negate input video: +
     
    lutrgb="r=maxval+minval-val:g=maxval+minval-val:b=maxval+minval-val"
    +lutyuv="y=maxval+minval-val:u=maxval+minval-val:v=maxval+minval-val"
    +
    + +

    The above is the same as: +

     
    lutrgb="r=negval:g=negval:b=negval"
    +lutyuv="y=negval:u=negval:v=negval"
    +
    + +
  • +Negate luminance: +
     
    lutyuv=y=negval
    +
    + +
  • +Remove chroma components, turning the video into a graytone image: +
     
    lutyuv="u=128:v=128"
    +
    + +
  • +Apply a luma burning effect: +
     
    lutyuv="y=2*val"
    +
    + +
  • +Remove green and blue components: +
     
    lutrgb="g=0:b=0"
    +
    + +
  • +Set a constant alpha channel value on input: +
     
    format=rgba,lutrgb=a="maxval-minval/2"
    +
    + +
  • +Correct luminance gamma by a factor of 0.5: +
     
    lutyuv=y=gammaval(0.5)
    +
    + +
  • +Discard least significant bits of luma: +
     
    lutyuv=y='bitand(val, 128+64+32)'
    +
    +
+ + +

28.51 mergeplanes

+ +

Merge color channel components from several video streams. +

+

The filter accepts up to 4 input streams, and merge selected input +planes to the output video. +

+

This filter accepts the following options: +

+
mapping
+

Set input to output plane mapping. Default is 0. +

+

The mappings is specified as a bitmap. It should be specified as a +hexadecimal number in the form 0xAa[Bb[Cc[Dd]]]. ’Aa’ describes the +mapping for the first plane of the output stream. ’A’ sets the number of +the input stream to use (from 0 to 3), and ’a’ the plane number of the +corresponding input to use (from 0 to 3). The rest of the mappings is +similar, ’Bb’ describes the mapping for the output stream second +plane, ’Cc’ describes the mapping for the output stream third plane and +’Dd’ describes the mapping for the output stream fourth plane. +

+
+
format
+

Set output pixel format. Default is yuva444p. +

+
+ + +

28.51.1 Examples

+ +
    +
  • +Merge three gray video streams of same width and height into single video stream: +
     
    [a0][a1][a2]mergeplanes=0x001020:yuv444p
    +
    + +
  • +Merge 1st yuv444p stream and 2nd gray video stream into yuva444p video stream: +
     
    [a0][a1]mergeplanes=0x00010210:yuva444p
    +
    + +
  • +Swap Y and A plane in yuva444p stream: +
     
    format=yuva444p,mergeplanes=0x03010200:yuva444p
    +
    + +
  • +Swap U and V plane in yuv420p stream: +
     
    format=yuv420p,mergeplanes=0x000201:yuv420p
    +
    + +
  • +Cast a rgb24 clip to yuv444p: +
     
    format=rgb24,mergeplanes=0x000102:yuv444p
    +
    +
+ + +

28.52 mcdeint

+ +

Apply motion-compensation deinterlacing. +

+

It needs one field per frame as input and must thus be used together +with yadif=1/3 or equivalent. +

+

This filter accepts the following options: +

+
mode
+

Set the deinterlacing mode. +

+

It accepts one of the following values: +

+
fast
+
medium
+
slow
+

use iterative motion estimation +

+
extra_slow
+

like ‘slow’, but use multiple reference frames. +

+
+

Default value is ‘fast’. +

+
+
parity
+

Set the picture field parity assumed for the input video. It must be +one of the following values: +

+
+
0, tff
+

assume top field first +

+
1, bff
+

assume bottom field first +

+
+ +

Default value is ‘bff’. +

+
+
qp
+

Set per-block quantization parameter (QP) used by the internal +encoder. +

+

Higher values should result in a smoother motion vector field but less +optimal individual vectors. Default value is 1. +

+
+ + +

28.53 mp

+ +

Apply an MPlayer filter to the input video. +

+

This filter provides a wrapper around some of the filters of +MPlayer/MEncoder. +

+

This wrapper is considered experimental. Some of the wrapped filters +may not work properly and we may drop support for them, as they will +be implemented natively into FFmpeg. Thus you should avoid +depending on them when writing portable scripts. +

+

The filter accepts the parameters: +filter_name[:=]filter_params +

+

filter_name is the name of a supported MPlayer filter, +filter_params is a string containing the parameters accepted by +the named filter. +

+

The list of the currently supported filters follows: +

+
eq2
+
eq
+
fspp
+
ilpack
+
pp7
+
softpulldown
+
uspp
+
+ +

The parameter syntax and behavior for the listed filters are the same +of the corresponding MPlayer filters. For detailed instructions check +the "VIDEO FILTERS" section in the MPlayer manual. +

+ +

28.53.1 Examples

+ +
    +
  • +Adjust gamma, brightness, contrast: +
     
    mp=eq2=1.0:2:0.5
    +
    +
+ +

See also mplayer(1), http://www.mplayerhq.hu/. +

+ +

28.54 mpdecimate

+ +

Drop frames that do not differ greatly from the previous frame in +order to reduce frame rate. +

+

The main use of this filter is for very-low-bitrate encoding +(e.g. streaming over dialup modem), but it could in theory be used for +fixing movies that were inverse-telecined incorrectly. +

+

A description of the accepted options follows. +

+
+
max
+

Set the maximum number of consecutive frames which can be dropped (if +positive), or the minimum interval between dropped frames (if +negative). If the value is 0, the frame is dropped unregarding the +number of previous sequentially dropped frames. +

+

Default value is 0. +

+
+
hi
+
lo
+
frac
+

Set the dropping threshold values. +

+

Values for ‘hi’ and ‘lo’ are for 8x8 pixel blocks and +represent actual pixel value differences, so a threshold of 64 +corresponds to 1 unit of difference for each pixel, or the same spread +out differently over the block. +

+

A frame is a candidate for dropping if no 8x8 blocks differ by more +than a threshold of ‘hi’, and if no more than ‘frac’ blocks (1 +meaning the whole image) differ by more than a threshold of ‘lo’. +

+

Default value for ‘hi’ is 64*12, default value for ‘lo’ is +64*5, and default value for ‘frac’ is 0.33. +

+
+ + + +

28.55 negate

+ +

Negate input video. +

+

It accepts an integer in input; if non-zero it negates the +alpha component (if available). The default value in input is 0. +

+ +

28.56 noformat

+ +

Force libavfilter not to use any of the specified pixel formats for the +input to the next filter. +

+

It accepts the following parameters: +

+
pix_fmts
+

A ’|’-separated list of pixel format names, such as +apix_fmts=yuv420p|monow|rgb24". +

+
+
+ + +

28.56.1 Examples

+ +
    +
  • +Force libavfilter to use a format different from yuv420p for the +input to the vflip filter: +
     
    noformat=pix_fmts=yuv420p,vflip
    +
    + +
  • +Convert the input video to any of the formats not contained in the list: +
     
    noformat=yuv420p|yuv444p|yuv410p
    +
    +
+ + +

28.57 noise

+ +

Add noise on video input frame. +

+

The filter accepts the following options: +

+
+
all_seed
+
c0_seed
+
c1_seed
+
c2_seed
+
c3_seed
+

Set noise seed for specific pixel component or all pixel components in case +of all_seed. Default value is 123457. +

+
+
all_strength, alls
+
c0_strength, c0s
+
c1_strength, c1s
+
c2_strength, c2s
+
c3_strength, c3s
+

Set noise strength for specific pixel component or all pixel components in case +all_strength. Default value is 0. Allowed range is [0, 100]. +

+
+
all_flags, allf
+
c0_flags, c0f
+
c1_flags, c1f
+
c2_flags, c2f
+
c3_flags, c3f
+

Set pixel component flags or set flags for all components if all_flags. +Available values for component flags are: +

+
a
+

averaged temporal noise (smoother) +

+
p
+

mix random noise with a (semi)regular pattern +

+
t
+

temporal noise (noise pattern changes between frames) +

+
u
+

uniform noise (gaussian otherwise) +

+
+
+
+ + +

28.57.1 Examples

+ +

Add temporal and uniform noise to input video: +

 
noise=alls=20:allf=t+u
+
+ + +

28.58 null

+ +

Pass the video source unchanged to the output. +

+ +

28.59 ocv

+ +

Apply a video transform using libopencv. +

+

To enable this filter, install the libopencv library and headers and +configure FFmpeg with --enable-libopencv. +

+

It accepts the following parameters: +

+
+
filter_name
+

The name of the libopencv filter to apply. +

+
+
filter_params
+

The parameters to pass to the libopencv filter. If not specified, the default +values are assumed. +

+
+
+ +

Refer to the official libopencv documentation for more precise +information: +http://opencv.willowgarage.com/documentation/c/image_filtering.html +

+

Several libopencv filters are supported; see the following subsections. +

+

+

+

28.59.1 dilate

+ +

Dilate an image by using a specific structuring element. +It corresponds to the libopencv function cvDilate. +

+

It accepts the parameters: struct_el|nb_iterations. +

+

struct_el represents a structuring element, and has the syntax: +colsxrows+anchor_xxanchor_y/shape +

+

cols and rows represent the number of columns and rows of +the structuring element, anchor_x and anchor_y the anchor +point, and shape the shape for the structuring element. shape +must be "rect", "cross", "ellipse", or "custom". +

+

If the value for shape is "custom", it must be followed by a +string of the form "=filename". The file with name +filename is assumed to represent a binary image, with each +printable character corresponding to a bright pixel. When a custom +shape is used, cols and rows are ignored, the number +or columns and rows of the read file are assumed instead. +

+

The default value for struct_el is "3x3+0x0/rect". +

+

nb_iterations specifies the number of times the transform is +applied to the image, and defaults to 1. +

+

Some examples: +

 
# Use the default values
+ocv=dilate
+
+# Dilate using a structuring element with a 5x5 cross, iterating two times
+ocv=filter_name=dilate:filter_params=5x5+2x2/cross|2
+
+# Read the shape from the file diamond.shape, iterating two times.
+# The file diamond.shape may contain a pattern of characters like this
+#   *
+#  ***
+# *****
+#  ***
+#   *
+# The specified columns and rows are ignored
+# but the anchor point coordinates are not
+ocv=dilate:0x0+2x2/custom=diamond.shape|2
+
+ + +

28.59.2 erode

+ +

Erode an image by using a specific structuring element. +It corresponds to the libopencv function cvErode. +

+

It accepts the parameters: struct_el:nb_iterations, +with the same syntax and semantics as the dilate filter. +

+ +

28.59.3 smooth

+ +

Smooth the input video. +

+

The filter takes the following parameters: +type|param1|param2|param3|param4. +

+

type is the type of smooth filter to apply, and must be one of +the following values: "blur", "blur_no_scale", "median", "gaussian", +or "bilateral". The default value is "gaussian". +

+

The meaning of param1, param2, param3, and param4 +depend on the smooth type. param1 and +param2 accept integer positive values or 0. param3 and +param4 accept floating point values. +

+

The default value for param1 is 3. The default value for the +other parameters is 0. +

+

These parameters correspond to the parameters assigned to the +libopencv function cvSmooth. +

+

+

+

28.60 overlay

+ +

Overlay one video on top of another. +

+

It takes two inputs and has one output. The first input is the "main" +video on which the second input is overlayed. +

+

It accepts the following parameters: +

+

A description of the accepted options follows. +

+
+
x
+
y
+

Set the expression for the x and y coordinates of the overlayed video +on the main video. Default value is "0" for both expressions. In case +the expression is invalid, it is set to a huge value (meaning that the +overlay will not be displayed within the output visible area). +

+
+
eof_action
+

The action to take when EOF is encountered on the secondary input; it accepts +one of the following values: +

+
+
repeat
+

Repeat the last frame (the default). +

+
endall
+

End both streams. +

+
pass
+

Pass the main input through. +

+
+ +
+
eval
+

Set when the expressions for ‘x’, and ‘y’ are evaluated. +

+

It accepts the following values: +

+
init
+

only evaluate expressions once during the filter initialization or +when a command is processed +

+
+
frame
+

evaluate expressions for each incoming frame +

+
+ +

Default value is ‘frame’. +

+
+
shortest
+

If set to 1, force the output to terminate when the shortest input +terminates. Default value is 0. +

+
+
format
+

Set the format for the output video. +

+

It accepts the following values: +

+
yuv420
+

force YUV420 output +

+
+
yuv422
+

force YUV422 output +

+
+
yuv444
+

force YUV444 output +

+
+
rgb
+

force RGB output +

+
+ +

Default value is ‘yuv420’. +

+
+
rgb (deprecated)
+

If set to 1, force the filter to accept inputs in the RGB +color space. Default value is 0. This option is deprecated, use +‘format’ instead. +

+
+
repeatlast
+

If set to 1, force the filter to draw the last overlay frame over the +main input until the end of the stream. A value of 0 disables this +behavior. Default value is 1. +

+
+ +

The ‘x’, and ‘y’ expressions can contain the following +parameters. +

+
+
main_w, W
+
main_h, H
+

The main input width and height. +

+
+
overlay_w, w
+
overlay_h, h
+

The overlay input width and height. +

+
+
x
+
y
+

The computed values for x and y. They are evaluated for +each new frame. +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values of the output +format. For example for the pixel format "yuv422p" hsub is 2 and +vsub is 1. +

+
+
n
+

the number of input frame, starting from 0 +

+
+
pos
+

the position in the file of the input frame, NAN if unknown +

+
+
t
+

The timestamp, expressed in seconds. It’s NAN if the input timestamp is unknown. +

+
+
+ +

Note that the n, pos, t variables are available only +when evaluation is done per frame, and will evaluate to NAN +when ‘eval’ is set to ‘init’. +

+

Be aware that frames are taken from each input video in timestamp +order, hence, if their initial timestamps differ, it is a good idea +to pass the two inputs through a setpts=PTS-STARTPTS filter to +have them begin in the same zero timestamp, as the example for +the movie filter does. +

+

You can chain together more overlays but you should test the +efficiency of such approach. +

+ +

28.60.1 Commands

+ +

This filter supports the following commands: +

+
x
+
y
+

Modify the x and y of the overlay input. +The command accepts the same syntax of the corresponding option. +

+

If the specified expression is not valid, it is kept at its current +value. +

+
+ + +

28.60.2 Examples

+ +
    +
  • +Draw the overlay at 10 pixels from the bottom right corner of the main +video: +
     
    overlay=main_w-overlay_w-10:main_h-overlay_h-10
    +
    + +

    Using named options the example above becomes: +

     
    overlay=x=main_w-overlay_w-10:y=main_h-overlay_h-10
    +
    + +
  • +Insert a transparent PNG logo in the bottom left corner of the input, +using the ffmpeg tool with the -filter_complex option: +
     
    ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output
    +
    + +
  • +Insert 2 different transparent PNG logos (second logo on bottom +right corner) using the ffmpeg tool: +
     
    ffmpeg -i input -i logo1 -i logo2 -filter_complex 'overlay=x=10:y=H-h-10,overlay=x=W-w-10:y=H-h-10' output
    +
    + +
  • +Add a transparent color layer on top of the main video; WxH +must specify the size of the main input to the overlay filter: +
     
    color=color=red@.3:size=WxH [over]; [in][over] overlay [out]
    +
    + +
  • +Play an original video and a filtered version (here with the deshake +filter) side by side using the ffplay tool: +
     
    ffplay input.avi -vf 'split[a][b]; [a]pad=iw*2:ih[src]; [b]deshake[filt]; [src][filt]overlay=w'
    +
    + +

    The above command is the same as: +

     
    ffplay input.avi -vf 'split[b], pad=iw*2[src], [b]deshake, [src]overlay=w'
    +
    + +
  • +Make a sliding overlay appearing from the left to the right top part of the +screen starting since time 2: +
     
    overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0
    +
    + +
  • +Compose output by putting two input videos side to side: +
     
    ffmpeg -i left.avi -i right.avi -filter_complex "
    +nullsrc=size=200x100 [background];
    +[0:v] setpts=PTS-STARTPTS, scale=100x100 [left];
    +[1:v] setpts=PTS-STARTPTS, scale=100x100 [right];
    +[background][left]       overlay=shortest=1       [background+left];
    +[background+left][right] overlay=shortest=1:x=100 [left+right]
    +"
    +
    + +
  • +Mask 10-20 seconds of a video by applying the delogo filter to a section +
     
    ffmpeg -i test.avi -codec:v:0 wmv2 -ar 11025 -b:v 9000k
    +-vf '[in]split[split_main][split_delogo];[split_delogo]trim=start=360:end=371,delogo=0:0:640:480[delogoed];[split_main][delogoed]overlay=eof_action=pass[out]'
    +masked.avi
    +
    + +
  • +Chain several overlays in cascade: +
     
    nullsrc=s=200x200 [bg];
    +testsrc=s=100x100, split=4 [in0][in1][in2][in3];
    +[in0] lutrgb=r=0, [bg]   overlay=0:0     [mid0];
    +[in1] lutrgb=g=0, [mid0] overlay=100:0   [mid1];
    +[in2] lutrgb=b=0, [mid1] overlay=0:100   [mid2];
    +[in3] null,       [mid2] overlay=100:100 [out0]
    +
    + +
+ + +

28.61 owdenoise

+ +

Apply Overcomplete Wavelet denoiser. +

+

The filter accepts the following options: +

+
+
depth
+

Set depth. +

+

Larger depth values will denoise lower frequency components more, but +slow down filtering. +

+

Must be an int in the range 8-16, default is 8. +

+
+
luma_strength, ls
+

Set luma strength. +

+

Must be a double value in the range 0-1000, default is 1.0. +

+
+
chroma_strength, cs
+

Set chroma strength. +

+

Must be a double value in the range 0-1000, default is 1.0. +

+
+ + +

28.62 pad

+ +

Add paddings to the input image, and place the original input at the +provided x, y coordinates. +

+

It accepts the following parameters: +

+
+
width, w
+
height, h
+

Specify an expression for the size of the output image with the +paddings added. If the value for width or height is 0, the +corresponding input size is used for the output. +

+

The width expression can reference the value set by the +height expression, and vice versa. +

+

The default value of width and height is 0. +

+
+
x
+
y
+

Specify the offsets to place the input image at within the padded area, +with respect to the top/left border of the output image. +

+

The x expression can reference the value set by the y +expression, and vice versa. +

+

The default value of x and y is 0. +

+
+
color
+

Specify the color of the padded area. For the syntax of this option, +check the "Color" section in the ffmpeg-utils manual. +

+

The default value of color is "black". +

+
+ +

The value for the width, height, x, and y +options are expressions containing the following constants: +

+
+
in_w
+
in_h
+

The input video width and height. +

+
+
iw
+
ih
+

These are the same as in_w and in_h. +

+
+
out_w
+
out_h
+

The output width and height (the size of the padded area), as +specified by the width and height expressions. +

+
+
ow
+
oh
+

These are the same as out_w and out_h. +

+
+
x
+
y
+

The x and y offsets as specified by the x and y +expressions, or NAN if not yet specified. +

+
+
a
+

same as iw / ih +

+
+
sar
+

input sample aspect ratio +

+
+
dar
+

input display aspect ratio, it is the same as (iw / ih) * sar +

+
+
hsub
+
vsub
+

The horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+ + +

28.62.1 Examples

+ +
    +
  • +Add paddings with the color "violet" to the input video. The output video +size is 640x480, and the top-left corner of the input video is placed at +column 0, row 40 +
     
    pad=640:480:0:40:violet
    +
    + +

    The example above is equivalent to the following command: +

     
    pad=width=640:height=480:x=0:y=40:color=violet
    +
    + +
  • +Pad the input to get an output with dimensions increased by 3/2, +and put the input video at the center of the padded area: +
     
    pad="3/2*iw:3/2*ih:(ow-iw)/2:(oh-ih)/2"
    +
    + +
  • +Pad the input to get a squared output with size equal to the maximum +value between the input width and height, and put the input video at +the center of the padded area: +
     
    pad="max(iw\,ih):ow:(ow-iw)/2:(oh-ih)/2"
    +
    + +
  • +Pad the input to get a final w/h ratio of 16:9: +
     
    pad="ih*16/9:ih:(ow-iw)/2:(oh-ih)/2"
    +
    + +
  • +In case of anamorphic video, in order to set the output display aspect +correctly, it is necessary to use sar in the expression, +according to the relation: +
     
    (ih * X / ih) * sar = output_dar
    +X = output_dar / sar
    +
    + +

    Thus the previous example needs to be modified to: +

     
    pad="ih*16/9/sar:ih:(ow-iw)/2:(oh-ih)/2"
    +
    + +
  • +Double the output size and put the input video in the bottom-right +corner of the output padded area: +
     
    pad="2*iw:2*ih:ow-iw:oh-ih"
    +
    +
+ + +

28.63 perspective

+ +

Correct perspective of video not recorded perpendicular to the screen. +

+

A description of the accepted parameters follows. +

+
+
x0
+
y0
+
x1
+
y1
+
x2
+
y2
+
x3
+
y3
+

Set coordinates expression for top left, top right, bottom left and bottom right corners. +Default values are 0:0:W:0:0:H:W:H with which perspective will remain unchanged. +

+

The expressions can use the following variables: +

+
+
W
+
H
+

the width and height of video frame. +

+
+ +
+
interpolation
+

Set interpolation for perspective correction. +

+

It accepts the following values: +

+
linear
+
cubic
+
+ +

Default value is ‘linear’. +

+
+ + +

28.64 phase

+ +

Delay interlaced video by one field time so that the field order changes. +

+

The intended use is to fix PAL movies that have been captured with the +opposite field order to the film-to-video transfer. +

+

A description of the accepted parameters follows. +

+
+
mode
+

Set phase mode. +

+

It accepts the following values: +

+
t
+

Capture field order top-first, transfer bottom-first. +Filter will delay the bottom field. +

+
+
b
+

Capture field order bottom-first, transfer top-first. +Filter will delay the top field. +

+
+
p
+

Capture and transfer with the same field order. This mode only exists +for the documentation of the other options to refer to, but if you +actually select it, the filter will faithfully do nothing. +

+
+
a
+

Capture field order determined automatically by field flags, transfer +opposite. +Filter selects among ‘t’ and ‘b’ modes on a frame by frame +basis using field flags. If no field information is available, +then this works just like ‘u’. +

+
+
u
+

Capture unknown or varying, transfer opposite. +Filter selects among ‘t’ and ‘b’ on a frame by frame basis by +analyzing the images and selecting the alternative that produces best +match between the fields. +

+
+
T
+

Capture top-first, transfer unknown or varying. +Filter selects among ‘t’ and ‘p’ using image analysis. +

+
+
B
+

Capture bottom-first, transfer unknown or varying. +Filter selects among ‘b’ and ‘p’ using image analysis. +

+
+
A
+

Capture determined by field flags, transfer unknown or varying. +Filter selects among ‘t’, ‘b’ and ‘p’ using field flags and +image analysis. If no field information is available, then this works just +like ‘U’. This is the default mode. +

+
+
U
+

Both capture and transfer unknown or varying. +Filter selects among ‘t’, ‘b’ and ‘p’ using image analysis only. +

+
+
+
+ + +

28.65 pixdesctest

+ +

Pixel format descriptor test filter, mainly useful for internal +testing. The output video should be equal to the input video. +

+

For example: +

 
format=monow, pixdesctest
+
+ +

can be used to test the monowhite pixel format descriptor definition. +

+ +

28.66 pp

+ +

Enable the specified chain of postprocessing subfilters using libpostproc. This +library should be automatically selected with a GPL build (--enable-gpl). +Subfilters must be separated by ’/’ and can be disabled by prepending a ’-’. +Each subfilter and some options have a short and a long name that can be used +interchangeably, i.e. dr/dering are the same. +

+

The filters accept the following options: +

+
+
subfilters
+

Set postprocessing subfilters string. +

+
+ +

All subfilters share common options to determine their scope: +

+
+
a/autoq
+

Honor the quality commands for this subfilter. +

+
+
c/chrom
+

Do chrominance filtering, too (default). +

+
+
y/nochrom
+

Do luminance filtering only (no chrominance). +

+
+
n/noluma
+

Do chrominance filtering only (no luminance). +

+
+ +

These options can be appended after the subfilter name, separated by a ’|’. +

+

Available subfilters are: +

+
+
hb/hdeblock[|difference[|flatness]]
+

Horizontal deblocking filter +

+
difference
+

Difference factor where higher values mean more deblocking (default: 32). +

+
flatness
+

Flatness threshold where lower values mean more deblocking (default: 39). +

+
+ +
+
vb/vdeblock[|difference[|flatness]]
+

Vertical deblocking filter +

+
difference
+

Difference factor where higher values mean more deblocking (default: 32). +

+
flatness
+

Flatness threshold where lower values mean more deblocking (default: 39). +

+
+ +
+
ha/hadeblock[|difference[|flatness]]
+

Accurate horizontal deblocking filter +

+
difference
+

Difference factor where higher values mean more deblocking (default: 32). +

+
flatness
+

Flatness threshold where lower values mean more deblocking (default: 39). +

+
+ +
+
va/vadeblock[|difference[|flatness]]
+

Accurate vertical deblocking filter +

+
difference
+

Difference factor where higher values mean more deblocking (default: 32). +

+
flatness
+

Flatness threshold where lower values mean more deblocking (default: 39). +

+
+
+
+ +

The horizontal and vertical deblocking filters share the difference and +flatness values so you cannot set different horizontal and vertical +thresholds. +

+
+
h1/x1hdeblock
+

Experimental horizontal deblocking filter +

+
+
v1/x1vdeblock
+

Experimental vertical deblocking filter +

+
+
dr/dering
+

Deringing filter +

+
+
tn/tmpnoise[|threshold1[|threshold2[|threshold3]]], temporal noise reducer
+
+
threshold1
+

larger -> stronger filtering +

+
threshold2
+

larger -> stronger filtering +

+
threshold3
+

larger -> stronger filtering +

+
+ +
+
al/autolevels[:f/fullyrange], automatic brightness / contrast correction
+
+
f/fullyrange
+

Stretch luminance to 0-255. +

+
+ +
+
lb/linblenddeint
+

Linear blend deinterlacing filter that deinterlaces the given block by +filtering all lines with a (1 2 1) filter. +

+
+
li/linipoldeint
+

Linear interpolating deinterlacing filter that deinterlaces the given block by +linearly interpolating every second line. +

+
+
ci/cubicipoldeint
+

Cubic interpolating deinterlacing filter deinterlaces the given block by +cubically interpolating every second line. +

+
+
md/mediandeint
+

Median deinterlacing filter that deinterlaces the given block by applying a +median filter to every second line. +

+
+
fd/ffmpegdeint
+

FFmpeg deinterlacing filter that deinterlaces the given block by filtering every +second line with a (-1 4 2 4 -1) filter. +

+
+
l5/lowpass5
+

Vertically applied FIR lowpass deinterlacing filter that deinterlaces the given +block by filtering all lines with a (-1 2 6 2 -1) filter. +

+
+
fq/forceQuant[|quantizer]
+

Overrides the quantizer table from the input with the constant quantizer you +specify. +

+
quantizer
+

Quantizer to use +

+
+ +
+
de/default
+

Default pp filter combination (hb|a,vb|a,dr|a) +

+
+
fa/fast
+

Fast pp filter combination (h1|a,v1|a,dr|a) +

+
+
ac
+

High quality pp filter combination (ha|a|128|7,va|a,dr|a) +

+
+ + +

28.66.1 Examples

+ +
    +
  • +Apply horizontal and vertical deblocking, deringing and automatic +brightness/contrast: +
     
    pp=hb/vb/dr/al
    +
    + +
  • +Apply default filters without brightness/contrast correction: +
     
    pp=de/-al
    +
    + +
  • +Apply default filters and temporal denoiser: +
     
    pp=default/tmpnoise|1|2|3
    +
    + +
  • +Apply deblocking on luminance only, and switch vertical deblocking on or off +automatically depending on available CPU time: +
     
    pp=hb|y/vb|a
    +
    +
+ + +

28.67 psnr

+ +

Obtain the average, maximum and minimum PSNR (Peak Signal to Noise +Ratio) between two input videos. +

+

This filter takes in input two input videos, the first input is +considered the "main" source and is passed unchanged to the +output. The second input is used as a "reference" video for computing +the PSNR. +

+

Both video inputs must have the same resolution and pixel format for +this filter to work correctly. Also it assumes that both inputs +have the same number of frames, which are compared one by one. +

+

The obtained average PSNR is printed through the logging system. +

+

The filter stores the accumulated MSE (mean squared error) of each +frame, and at the end of the processing it is averaged across all frames +equally, and the following formula is applied to obtain the PSNR: +

+
 
PSNR = 10*log10(MAX^2/MSE)
+
+ +

Where MAX is the average of the maximum values of each component of the +image. +

+

The description of the accepted parameters follows. +

+
+
stats_file, f
+

If specified the filter will use the named file to save the PSNR of +each individual frame. +

+
+ +

The file printed if stats_file is selected, contains a sequence of +key/value pairs of the form key:value for each compared +couple of frames. +

+

A description of each shown parameter follows: +

+
+
n
+

sequential number of the input frame, starting from 1 +

+
+
mse_avg
+

Mean Square Error pixel-by-pixel average difference of the compared +frames, averaged over all the image components. +

+
+
mse_y, mse_u, mse_v, mse_r, mse_g, mse_g, mse_a
+

Mean Square Error pixel-by-pixel average difference of the compared +frames for the component specified by the suffix. +

+
+
psnr_y, psnr_u, psnr_v, psnr_r, psnr_g, psnr_b, psnr_a
+

Peak Signal to Noise ratio of the compared frames for the component +specified by the suffix. +

+
+ +

For example: +

 
movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
+[main][ref] psnr="stats_file=stats.log" [out]
+
+ +

On this example the input file being processed is compared with the +reference file ‘ref_movie.mpg’. The PSNR of each individual frame +is stored in ‘stats.log’. +

+

+

+

28.68 pullup

+ +

Pulldown reversal (inverse telecine) filter, capable of handling mixed +hard-telecine, 24000/1001 fps progressive, and 30000/1001 fps progressive +content. +

+

The pullup filter is designed to take advantage of future context in making +its decisions. This filter is stateless in the sense that it does not lock +onto a pattern to follow, but it instead looks forward to the following +fields in order to identify matches and rebuild progressive frames. +

+

To produce content with an even framerate, insert the fps filter after +pullup, use fps=24000/1001 if the input frame rate is 29.97fps, +fps=24 for 30fps and the (rare) telecined 25fps input. +

+

The filter accepts the following options: +

+
+
jl
+
jr
+
jt
+
jb
+

These options set the amount of "junk" to ignore at the left, right, top, and +bottom of the image, respectively. Left and right are in units of 8 pixels, +while top and bottom are in units of 2 lines. +The default is 8 pixels on each side. +

+
+
sb
+

Set the strict breaks. Setting this option to 1 will reduce the chances of +filter generating an occasional mismatched frame, but it may also cause an +excessive number of frames to be dropped during high motion sequences. +Conversely, setting it to -1 will make filter match fields more easily. +This may help processing of video where there is slight blurring between +the fields, but may also cause there to be interlaced frames in the output. +Default value is 0. +

+
+
mp
+

Set the metric plane to use. It accepts the following values: +

+
l
+

Use luma plane. +

+
+
u
+

Use chroma blue plane. +

+
+
v
+

Use chroma red plane. +

+
+ +

This option may be set to use chroma plane instead of the default luma plane +for doing filter’s computations. This may improve accuracy on very clean +source material, but more likely will decrease accuracy, especially if there +is chroma noise (rainbow effect) or any grayscale video. +The main purpose of setting ‘mp’ to a chroma plane is to reduce CPU +load and make pullup usable in realtime on slow machines. +

+
+ +

For best results (without duplicated frames in the output file) it is +necessary to change the output frame rate. For example, to inverse +telecine NTSC input: +

 
ffmpeg -i input -vf pullup -r 24000/1001 ...
+
+ + +

28.69 removelogo

+ +

Suppress a TV station logo, using an image file to determine which +pixels comprise the logo. It works by filling in the pixels that +comprise the logo with neighboring pixels. +

+

The filter accepts the following options: +

+
+
filename, f
+

Set the filter bitmap file, which can be any image format supported by +libavformat. The width and height of the image file must match those of the +video stream being processed. +

+
+ +

Pixels in the provided bitmap image with a value of zero are not +considered part of the logo, non-zero pixels are considered part of +the logo. If you use white (255) for the logo and black (0) for the +rest, you will be safe. For making the filter bitmap, it is +recommended to take a screen capture of a black frame with the logo +visible, and then using a threshold filter followed by the erode +filter once or twice. +

+

If needed, little splotches can be fixed manually. Remember that if +logo pixels are not covered, the filter quality will be much +reduced. Marking too many pixels as part of the logo does not hurt as +much, but it will increase the amount of blurring needed to cover over +the image and will destroy more information than necessary, and extra +pixels will slow things down on a large logo. +

+ +

28.70 rotate

+ +

Rotate video by an arbitrary angle expressed in radians. +

+

The filter accepts the following options: +

+

A description of the optional parameters follows. +

+
angle, a
+

Set an expression for the angle by which to rotate the input video +clockwise, expressed as a number of radians. A negative value will +result in a counter-clockwise rotation. By default it is set to "0". +

+

This expression is evaluated for each frame. +

+
+
out_w, ow
+

Set the output width expression, default value is "iw". +This expression is evaluated just once during configuration. +

+
+
out_h, oh
+

Set the output height expression, default value is "ih". +This expression is evaluated just once during configuration. +

+
+
bilinear
+

Enable bilinear interpolation if set to 1, a value of 0 disables +it. Default value is 1. +

+
+
fillcolor, c
+

Set the color used to fill the output area not covered by the rotated +image. For the generalsyntax of this option, check the "Color" section in the +ffmpeg-utils manual. If the special value "none" is selected then no +background is printed (useful for example if the background is never shown). +

+

Default value is "black". +

+
+ +

The expressions for the angle and the output size can contain the +following constants and functions: +

+
+
n
+

sequential number of the input frame, starting from 0. It is always NAN +before the first frame is filtered. +

+
+
t
+

time in seconds of the input frame, it is set to 0 when the filter is +configured. It is always NAN before the first frame is filtered. +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
in_w, iw
+
in_h, ih
+

the input video width and height +

+
+
out_w, ow
+
out_h, oh
+

the output width and height, that is the size of the padded area as +specified by the width and height expressions +

+
+
rotw(a)
+
roth(a)
+

the minimal width/height required for completely containing the input +video rotated by a radians. +

+

These are only available when computing the ‘out_w’ and +‘out_h’ expressions. +

+
+ + +

28.70.1 Examples

+ +
    +
  • +Rotate the input by PI/6 radians clockwise: +
     
    rotate=PI/6
    +
    + +
  • +Rotate the input by PI/6 radians counter-clockwise: +
     
    rotate=-PI/6
    +
    + +
  • +Rotate the input by 45 degrees clockwise: +
     
    rotate=45*PI/180
    +
    + +
  • +Apply a constant rotation with period T, starting from an angle of PI/3: +
     
    rotate=PI/3+2*PI*t/T
    +
    + +
  • +Make the input video rotation oscillating with a period of T +seconds and an amplitude of A radians: +
     
    rotate=A*sin(2*PI/T*t)
    +
    + +
  • +Rotate the video, output size is chosen so that the whole rotating +input video is always completely contained in the output: +
     
    rotate='2*PI*t:ow=hypot(iw,ih):oh=ow'
    +
    + +
  • +Rotate the video, reduce the output size so that no background is ever +shown: +
     
    rotate=2*PI*t:ow='min(iw,ih)/sqrt(2)':oh=ow:c=none
    +
    +
+ + +

28.70.2 Commands

+ +

The filter supports the following commands: +

+
+
a, angle
+

Set the angle expression. +The command accepts the same syntax of the corresponding option. +

+

If the specified expression is not valid, it is kept at its current +value. +

+
+ + +

28.71 sab

+ +

Apply Shape Adaptive Blur. +

+

The filter accepts the following options: +

+
+
luma_radius, lr
+

Set luma blur filter strength, must be a value in range 0.1-4.0, default +value is 1.0. A greater value will result in a more blurred image, and +in slower processing. +

+
+
luma_pre_filter_radius, lpfr
+

Set luma pre-filter radius, must be a value in the 0.1-2.0 range, default +value is 1.0. +

+
+
luma_strength, ls
+

Set luma maximum difference between pixels to still be considered, must +be a value in the 0.1-100.0 range, default value is 1.0. +

+
+
chroma_radius, cr
+

Set chroma blur filter strength, must be a value in range 0.1-4.0. A +greater value will result in a more blurred image, and in slower +processing. +

+
+
chroma_pre_filter_radius, cpfr
+

Set chroma pre-filter radius, must be a value in the 0.1-2.0 range. +

+
+
chroma_strength, cs
+

Set chroma maximum difference between pixels to still be considered, +must be a value in the 0.1-100.0 range. +

+
+ +

Each chroma option value, if not explicitly specified, is set to the +corresponding luma option value. +

+

+

+

28.72 scale

+ +

Scale (resize) the input video, using the libswscale library. +

+

The scale filter forces the output display aspect ratio to be the same +of the input, by changing the output sample aspect ratio. +

+

If the input image format is different from the format requested by +the next filter, the scale filter will convert the input to the +requested format. +

+ +

28.72.1 Options

+

The filter accepts the following options, or any of the options +supported by the libswscale scaler. +

+

See (ffmpeg-scaler)scaler_options for +the complete list of scaler options. +

+
+
width, w
+
height, h
+

Set the output video dimension expression. Default value is the input +dimension. +

+

If the value is 0, the input width is used for the output. +

+

If one of the values is -1, the scale filter will use a value that +maintains the aspect ratio of the input image, calculated from the +other specified dimension. If both of them are -1, the input size is +used +

+

If one of the values is -n with n > 1, the scale filter will also use a value +that maintains the aspect ratio of the input image, calculated from the other +specified dimension. After that it will, however, make sure that the calculated +dimension is divisible by n and adjust the value if necessary. +

+

See below for the list of accepted constants for use in the dimension +expression. +

+
+
interl
+

Set the interlacing mode. It accepts the following values: +

+
+
1
+

Force interlaced aware scaling. +

+
+
0
+

Do not apply interlaced scaling. +

+
+
-1
+

Select interlaced aware scaling depending on whether the source frames +are flagged as interlaced or not. +

+
+ +

Default value is ‘0’. +

+
+
flags
+

Set libswscale scaling flags. See +(ffmpeg-scaler)sws_flags for the +complete list of values. If not explicitly specified the filter applies +the default flags. +

+
+
size, s
+

Set the video size. For the syntax of this option, check the "Video size" +section in the ffmpeg-utils manual. +

+
+
in_color_matrix
+
out_color_matrix
+

Set in/output YCbCr color space type. +

+

This allows the autodetected value to be overridden as well as allows forcing +a specific value used for the output and encoder. +

+

If not specified, the color space type depends on the pixel format. +

+

Possible values: +

+
+
auto
+

Choose automatically. +

+
+
bt709
+

Format conforming to International Telecommunication Union (ITU) +Recommendation BT.709. +

+
+
fcc
+

Set color space conforming to the United States Federal Communications +Commission (FCC) Code of Federal Regulations (CFR) Title 47 (2003) 73.682 (a). +

+
+
bt601
+

Set color space conforming to: +

+
    +
  • +ITU Radiocommunication Sector (ITU-R) Recommendation BT.601 + +
  • +ITU-R Rec. BT.470-6 (1998) Systems B, B1, and G + +
  • +Society of Motion Picture and Television Engineers (SMPTE) ST 170:2004 + +
+ +
+
smpte240m
+

Set color space conforming to SMPTE ST 240:1999. +

+
+ +
+
in_range
+
out_range
+

Set in/output YCbCr sample range. +

+

This allows the autodetected value to be overridden as well as allows forcing +a specific value used for the output and encoder. If not specified, the +range depends on the pixel format. Possible values: +

+
+
auto
+

Choose automatically. +

+
+
jpeg/full/pc
+

Set full range (0-255 in case of 8-bit luma). +

+
+
mpeg/tv
+

Set "MPEG" range (16-235 in case of 8-bit luma). +

+
+ +
+
force_original_aspect_ratio
+

Enable decreasing or increasing output video width or height if necessary to +keep the original aspect ratio. Possible values: +

+
+
disable
+

Scale the video as specified and disable this feature. +

+
+
decrease
+

The output video dimensions will automatically be decreased if needed. +

+
+
increase
+

The output video dimensions will automatically be increased if needed. +

+
+
+ +

One useful instance of this option is that when you know a specific device’s +maximum allowed resolution, you can use this to limit the output video to +that, while retaining the aspect ratio. For example, device A allows +1280x720 playback, and your video is 1920x800. Using this option (set it to +decrease) and specifying 1280x720 to the command line makes the output +1280x533. +

+

Please note that this is a different thing than specifying -1 for ‘w’ +or ‘h’, you still need to specify the output resolution for this option +to work. +

+
+
+ +

The values of the ‘w’ and ‘h’ options are expressions +containing the following constants: +

+
+
in_w
+
in_h
+

The input width and height +

+
+
iw
+
ih
+

These are the same as in_w and in_h. +

+
+
out_w
+
out_h
+

The output (scaled) width and height +

+
+
ow
+
oh
+

These are the same as out_w and out_h +

+
+
a
+

The same as iw / ih +

+
+
sar
+

input sample aspect ratio +

+
+
dar
+

The input display aspect ratio. Calculated from (iw / ih) * sar. +

+
+
hsub
+
vsub
+

horizontal and vertical input chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
ohsub
+
ovsub
+

horizontal and vertical output chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+ + +

28.72.2 Examples

+ +
    +
  • +Scale the input video to a size of 200x100 +
     
    scale=w=200:h=100
    +
    + +

    This is equivalent to: +

     
    scale=200:100
    +
    + +

    or: +

     
    scale=200x100
    +
    + +
  • +Specify a size abbreviation for the output size: +
     
    scale=qcif
    +
    + +

    which can also be written as: +

     
    scale=size=qcif
    +
    + +
  • +Scale the input to 2x: +
     
    scale=w=2*iw:h=2*ih
    +
    + +
  • +The above is the same as: +
     
    scale=2*in_w:2*in_h
    +
    + +
  • +Scale the input to 2x with forced interlaced scaling: +
     
    scale=2*iw:2*ih:interl=1
    +
    + +
  • +Scale the input to half size: +
     
    scale=w=iw/2:h=ih/2
    +
    + +
  • +Increase the width, and set the height to the same size: +
     
    scale=3/2*iw:ow
    +
    + +
  • +Seek Greek harmony: +
     
    scale=iw:1/PHI*iw
    +scale=ih*PHI:ih
    +
    + +
  • +Increase the height, and set the width to 3/2 of the height: +
     
    scale=w=3/2*oh:h=3/5*ih
    +
    + +
  • +Increase the size, making the size a multiple of the chroma +subsample values: +
     
    scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub"
    +
    + +
  • +Increase the width to a maximum of 500 pixels, +keeping the same aspect ratio as the input: +
     
    scale=w='min(500\, iw*3/2):h=-1'
    +
    +
+ + +

28.73 separatefields

+ +

The separatefields takes a frame-based video input and splits +each frame into its components fields, producing a new half height clip +with twice the frame rate and twice the frame count. +

+

This filter use field-dominance information in frame to decide which +of each pair of fields to place first in the output. +If it gets it wrong use setfield filter before separatefields filter. +

+ +

28.74 setdar, setsar

+ +

The setdar filter sets the Display Aspect Ratio for the filter +output video. +

+

This is done by changing the specified Sample (aka Pixel) Aspect +Ratio, according to the following equation: +

 
DAR = HORIZONTAL_RESOLUTION / VERTICAL_RESOLUTION * SAR
+
+ +

Keep in mind that the setdar filter does not modify the pixel +dimensions of the video frame. Also, the display aspect ratio set by +this filter may be changed by later filters in the filterchain, +e.g. in case of scaling or if another "setdar" or a "setsar" filter is +applied. +

+

The setsar filter sets the Sample (aka Pixel) Aspect Ratio for +the filter output video. +

+

Note that as a consequence of the application of this filter, the +output display aspect ratio will change according to the equation +above. +

+

Keep in mind that the sample aspect ratio set by the setsar +filter may be changed by later filters in the filterchain, e.g. if +another "setsar" or a "setdar" filter is applied. +

+

It accepts the following parameters: +

+
+
r, ratio, dar (setdar only), sar (setsar only)
+

Set the aspect ratio used by the filter. +

+

The parameter can be a floating point number string, an expression, or +a string of the form num:den, where num and +den are the numerator and denominator of the aspect ratio. If +the parameter is not specified, it is assumed the value "0". +In case the form "num:den" is used, the : character +should be escaped. +

+
+
max
+

Set the maximum integer value to use for expressing numerator and +denominator when reducing the expressed aspect ratio to a rational. +Default value is 100. +

+
+
+ +

The parameter sar is an expression containing +the following constants: +

+
+
E, PI, PHI
+

These are approximated values for the mathematical constants e +(Euler’s number), pi (Greek pi), and phi (the golden ratio). +

+
+
w, h
+

The input width and height. +

+
+
a
+

These are the same as w / h. +

+
+
sar
+

The input sample aspect ratio. +

+
+
dar
+

The input display aspect ratio. It is the same as +(w / h) * sar. +

+
+
hsub, vsub
+

Horizontal and vertical chroma subsample values. For example, for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+ + +

28.74.1 Examples

+ +
    +
  • +To change the display aspect ratio to 16:9, specify one of the following: +
     
    setdar=dar=1.77777
    +setdar=dar=16/9
    +setdar=dar=1.77777
    +
    + +
  • +To change the sample aspect ratio to 10:11, specify: +
     
    setsar=sar=10/11
    +
    + +
  • +To set a display aspect ratio of 16:9, and specify a maximum integer value of +1000 in the aspect ratio reduction, use the command: +
     
    setdar=ratio=16/9:max=1000
    +
    + +
+ +

+

+

28.75 setfield

+ +

Force field for the output video frame. +

+

The setfield filter marks the interlace type field for the +output frames. It does not change the input frame, but only sets the +corresponding property, which affects how the frame is treated by +following filters (e.g. fieldorder or yadif). +

+

The filter accepts the following options: +

+
+
mode
+

Available values are: +

+
+
auto
+

Keep the same field property. +

+
+
bff
+

Mark the frame as bottom-field-first. +

+
+
tff
+

Mark the frame as top-field-first. +

+
+
prog
+

Mark the frame as progressive. +

+
+
+
+ + +

28.76 showinfo

+ +

Show a line containing various information for each input video frame. +The input video is not modified. +

+

The shown line contains a sequence of key/value pairs of the form +key:value. +

+

It accepts the following parameters: +

+
+
n
+

The (sequential) number of the input frame, starting from 0. +

+
+
pts
+

The Presentation TimeStamp of the input frame, expressed as a number of +time base units. The time base unit depends on the filter input pad. +

+
+
pts_time
+

The Presentation TimeStamp of the input frame, expressed as a number of +seconds. +

+
+
pos
+

The position of the frame in the input stream, or -1 if this information is +unavailable and/or meaningless (for example in case of synthetic video). +

+
+
fmt
+

The pixel format name. +

+
+
sar
+

The sample aspect ratio of the input frame, expressed in the form +num/den. +

+
+
s
+

The size of the input frame. For the syntax of this option, check the "Video size" +section in the ffmpeg-utils manual. +

+
+
i
+

The type of interlaced mode ("P" for "progressive", "T" for top field first, "B" +for bottom field first). +

+
+
iskey
+

This is 1 if the frame is a key frame, 0 otherwise. +

+
+
type
+

The picture type of the input frame ("I" for an I-frame, "P" for a +P-frame, "B" for a B-frame, or "?" for an unknown type). +Also refer to the documentation of the AVPictureType enum and of +the av_get_picture_type_char function defined in +‘libavutil/avutil.h’. +

+
+
checksum
+

The Adler-32 checksum (printed in hexadecimal) of all the planes of the input frame. +

+
+
plane_checksum
+

The Adler-32 checksum (printed in hexadecimal) of each plane of the input frame, +expressed in the form "[c0 c1 c2 c3]". +

+
+ + +

28.77 shuffleplanes

+ +

Reorder and/or duplicate video planes. +

+

It accepts the following parameters: +

+
+
map0
+

The index of the input plane to be used as the first output plane. +

+
+
map1
+

The index of the input plane to be used as the second output plane. +

+
+
map2
+

The index of the input plane to be used as the third output plane. +

+
+
map3
+

The index of the input plane to be used as the fourth output plane. +

+
+
+ +

The first plane has the index 0. The default is to keep the input unchanged. +

+

Swap the second and third planes of the input: +

 
ffmpeg -i INPUT -vf shuffleplanes=0:2:1:3 OUTPUT
+
+ +

+

+

28.78 smartblur

+ +

Blur the input video without impacting the outlines. +

+

It accepts the following options: +

+
+
luma_radius, lr
+

Set the luma radius. The option value must be a float number in +the range [0.1,5.0] that specifies the variance of the gaussian filter +used to blur the image (slower if larger). Default value is 1.0. +

+
+
luma_strength, ls
+

Set the luma strength. The option value must be a float number +in the range [-1.0,1.0] that configures the blurring. A value included +in [0.0,1.0] will blur the image whereas a value included in +[-1.0,0.0] will sharpen the image. Default value is 1.0. +

+
+
luma_threshold, lt
+

Set the luma threshold used as a coefficient to determine +whether a pixel should be blurred or not. The option value must be an +integer in the range [-30,30]. A value of 0 will filter all the image, +a value included in [0,30] will filter flat areas and a value included +in [-30,0] will filter edges. Default value is 0. +

+
+
chroma_radius, cr
+

Set the chroma radius. The option value must be a float number in +the range [0.1,5.0] that specifies the variance of the gaussian filter +used to blur the image (slower if larger). Default value is 1.0. +

+
+
chroma_strength, cs
+

Set the chroma strength. The option value must be a float number +in the range [-1.0,1.0] that configures the blurring. A value included +in [0.0,1.0] will blur the image whereas a value included in +[-1.0,0.0] will sharpen the image. Default value is 1.0. +

+
+
chroma_threshold, ct
+

Set the chroma threshold used as a coefficient to determine +whether a pixel should be blurred or not. The option value must be an +integer in the range [-30,30]. A value of 0 will filter all the image, +a value included in [0,30] will filter flat areas and a value included +in [-30,0] will filter edges. Default value is 0. +

+
+ +

If a chroma option is not explicitly set, the corresponding luma value +is set. +

+ +

28.79 stereo3d

+ +

Convert between different stereoscopic image formats. +

+

The filters accept the following options: +

+
+
in
+

Set stereoscopic image format of input. +

+

Available values for input image formats are: +

+
sbsl
+

side by side parallel (left eye left, right eye right) +

+
+
sbsr
+

side by side crosseye (right eye left, left eye right) +

+
+
sbs2l
+

side by side parallel with half width resolution +(left eye left, right eye right) +

+
+
sbs2r
+

side by side crosseye with half width resolution +(right eye left, left eye right) +

+
+
abl
+

above-below (left eye above, right eye below) +

+
+
abr
+

above-below (right eye above, left eye below) +

+
+
ab2l
+

above-below with half height resolution +(left eye above, right eye below) +

+
+
ab2r
+

above-below with half height resolution +(right eye above, left eye below) +

+
+
al
+

alternating frames (left eye first, right eye second) +

+
+
ar
+

alternating frames (right eye first, left eye second) +

+

Default value is ‘sbsl’. +

+
+ +
+
out
+

Set stereoscopic image format of output. +

+

Available values for output image formats are all the input formats as well as: +

+
arbg
+

anaglyph red/blue gray +(red filter on left eye, blue filter on right eye) +

+
+
argg
+

anaglyph red/green gray +(red filter on left eye, green filter on right eye) +

+
+
arcg
+

anaglyph red/cyan gray +(red filter on left eye, cyan filter on right eye) +

+
+
arch
+

anaglyph red/cyan half colored +(red filter on left eye, cyan filter on right eye) +

+
+
arcc
+

anaglyph red/cyan color +(red filter on left eye, cyan filter on right eye) +

+
+
arcd
+

anaglyph red/cyan color optimized with the least squares projection of dubois +(red filter on left eye, cyan filter on right eye) +

+
+
agmg
+

anaglyph green/magenta gray +(green filter on left eye, magenta filter on right eye) +

+
+
agmh
+

anaglyph green/magenta half colored +(green filter on left eye, magenta filter on right eye) +

+
+
agmc
+

anaglyph green/magenta colored +(green filter on left eye, magenta filter on right eye) +

+
+
agmd
+

anaglyph green/magenta color optimized with the least squares projection of dubois +(green filter on left eye, magenta filter on right eye) +

+
+
aybg
+

anaglyph yellow/blue gray +(yellow filter on left eye, blue filter on right eye) +

+
+
aybh
+

anaglyph yellow/blue half colored +(yellow filter on left eye, blue filter on right eye) +

+
+
aybc
+

anaglyph yellow/blue colored +(yellow filter on left eye, blue filter on right eye) +

+
+
aybd
+

anaglyph yellow/blue color optimized with the least squares projection of dubois +(yellow filter on left eye, blue filter on right eye) +

+
+
irl
+

interleaved rows (left eye has top row, right eye starts on next row) +

+
+
irr
+

interleaved rows (right eye has top row, left eye starts on next row) +

+
+
ml
+

mono output (left eye only) +

+
+
mr
+

mono output (right eye only) +

+
+ +

Default value is ‘arcd’. +

+
+ + +

28.79.1 Examples

+ +
    +
  • +Convert input video from side by side parallel to anaglyph yellow/blue dubois: +
     
    stereo3d=sbsl:aybd
    +
    + +
  • +Convert input video from above bellow (left eye above, right eye below) to side by side crosseye. +
     
    stereo3d=abl:sbsr
    +
    +
+ + +

28.80 spp

+ +

Apply a simple postprocessing filter that compresses and decompresses the image +at several (or - in the case of ‘quality’ level 6 - all) shifts +and average the results. +

+

The filter accepts the following options: +

+
+
quality
+

Set quality. This option defines the number of levels for averaging. It accepts +an integer in the range 0-6. If set to 0, the filter will have no +effect. A value of 6 means the higher quality. For each increment of +that value the speed drops by a factor of approximately 2. Default value is +3. +

+
+
qp
+

Force a constant quantization parameter. If not set, the filter will use the QP +from the video stream (if available). +

+
+
mode
+

Set thresholding mode. Available modes are: +

+
+
hard
+

Set hard thresholding (default). +

+
soft
+

Set soft thresholding (better de-ringing effect, but likely blurrier). +

+
+ +
+
use_bframe_qp
+

Enable the use of the QP from the B-Frames if set to 1. Using this +option may cause flicker since the B-Frames have often larger QP. Default is +0 (not enabled). +

+
+ +

+

+

28.81 subtitles

+ +

Draw subtitles on top of input video using the libass library. +

+

To enable compilation of this filter you need to configure FFmpeg with +--enable-libass. This filter also requires a build with libavcodec and +libavformat to convert the passed subtitles file to ASS (Advanced Substation +Alpha) subtitles format. +

+

The filter accepts the following options: +

+
+
filename, f
+

Set the filename of the subtitle file to read. It must be specified. +

+
+
original_size
+

Specify the size of the original video, the video for which the ASS file +was composed. For the syntax of this option, check the "Video size" section in +the ffmpeg-utils manual. Due to a misdesign in ASS aspect ratio arithmetic, +this is necessary to correctly scale the fonts if the aspect ratio has been +changed. +

+
+
charenc
+

Set subtitles input character encoding. subtitles filter only. Only +useful if not UTF-8. +

+
+ +

If the first key is not specified, it is assumed that the first value +specifies the ‘filename’. +

+

For example, to render the file ‘sub.srt’ on top of the input +video, use the command: +

 
subtitles=sub.srt
+
+ +

which is equivalent to: +

 
subtitles=filename=sub.srt
+
+ + +

28.82 super2xsai

+ +

Scale the input by 2x and smooth using the Super2xSaI (Scale and +Interpolate) pixel art scaling algorithm. +

+

Useful for enlarging pixel art images without reducing sharpness. +

+ +

28.83 swapuv

+

Swap U & V plane. +

+ +

28.84 telecine

+ +

Apply telecine process to the video. +

+

This filter accepts the following options: +

+
+
first_field
+
+
top, t
+

top field first +

+
bottom, b
+

bottom field first +The default value is top. +

+
+ +
+
pattern
+

A string of numbers representing the pulldown pattern you wish to apply. +The default value is 23. +

+
+ +
 
Some typical patterns:
+
+NTSC output (30i):
+27.5p: 32222
+24p: 23 (classic)
+24p: 2332 (preferred)
+20p: 33
+18p: 334
+16p: 3444
+
+PAL output (25i):
+27.5p: 12222
+24p: 222222222223 ("Euro pulldown")
+16.67p: 33
+16p: 33333334
+
+ + +

28.85 thumbnail

+

Select the most representative frame in a given sequence of consecutive frames. +

+

The filter accepts the following options: +

+
+
n
+

Set the frames batch size to analyze; in a set of n frames, the filter +will pick one of them, and then handle the next batch of n frames until +the end. Default is 100. +

+
+ +

Since the filter keeps track of the whole frames sequence, a bigger n +value will result in a higher memory usage, so a high value is not recommended. +

+ +

28.85.1 Examples

+ +
    +
  • +Extract one picture each 50 frames: +
     
    thumbnail=50
    +
    + +
  • +Complete example of a thumbnail creation with ffmpeg: +
     
    ffmpeg -i in.avi -vf thumbnail,scale=300:200 -frames:v 1 out.png
    +
    +
+ + +

28.86 tile

+ +

Tile several successive frames together. +

+

The filter accepts the following options: +

+
+
layout
+

Set the grid size (i.e. the number of lines and columns). For the syntax of +this option, check the "Video size" section in the ffmpeg-utils manual. +

+
+
nb_frames
+

Set the maximum number of frames to render in the given area. It must be less +than or equal to wxh. The default value is 0, meaning all +the area will be used. +

+
+
margin
+

Set the outer border margin in pixels. +

+
+
padding
+

Set the inner border thickness (i.e. the number of pixels between frames). For +more advanced padding options (such as having different values for the edges), +refer to the pad video filter. +

+
+
color
+

Specify the color of the unused areaFor the syntax of this option, check the +"Color" section in the ffmpeg-utils manual. The default value of color +is "black". +

+
+ + +

28.86.1 Examples

+ +
    +
  • +Produce 8x8 PNG tiles of all keyframes (‘-skip_frame nokey’) in a movie: +
     
    ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png
    +
    +

    The ‘-vsync 0’ is necessary to prevent ffmpeg from +duplicating each output frame to accommodate the originally detected frame +rate. +

    +
  • +Display 5 pictures in an area of 3x2 frames, +with 7 pixels between them, and 2 pixels of initial margin, using +mixed flat and named options: +
     
    tile=3x2:nb_frames=5:padding=7:margin=2
    +
    +
+ + +

28.87 tinterlace

+ +

Perform various types of temporal field interlacing. +

+

Frames are counted starting from 1, so the first input frame is +considered odd. +

+

The filter accepts the following options: +

+
+
mode
+

Specify the mode of the interlacing. This option can also be specified +as a value alone. See below for a list of values for this option. +

+

Available values are: +

+
+
merge, 0
+

Move odd frames into the upper field, even into the lower field, +generating a double height frame at half frame rate. +

+
+
drop_odd, 1
+

Only output even frames, odd frames are dropped, generating a frame with +unchanged height at half frame rate. +

+
+
drop_even, 2
+

Only output odd frames, even frames are dropped, generating a frame with +unchanged height at half frame rate. +

+
+
pad, 3
+

Expand each frame to full height, but pad alternate lines with black, +generating a frame with double height at the same input frame rate. +

+
+
interleave_top, 4
+

Interleave the upper field from odd frames with the lower field from +even frames, generating a frame with unchanged height at half frame rate. +

+
+
interleave_bottom, 5
+

Interleave the lower field from odd frames with the upper field from +even frames, generating a frame with unchanged height at half frame rate. +

+
+
interlacex2, 6
+

Double frame rate with unchanged height. Frames are inserted each +containing the second temporal field from the previous input frame and +the first temporal field from the next input frame. This mode relies on +the top_field_first flag. Useful for interlaced video displays with no +field synchronisation. +

+
+ +

Numeric values are deprecated but are accepted for backward +compatibility reasons. +

+

Default mode is merge. +

+
+
flags
+

Specify flags influencing the filter process. +

+

Available value for flags is: +

+
+
low_pass_filter, vlfp
+

Enable vertical low-pass filtering in the filter. +Vertical low-pass filtering is required when creating an interlaced +destination from a progressive source which contains high-frequency +vertical detail. Filtering will reduce interlace ’twitter’ and Moire +patterning. +

+

Vertical low-pass filtering can only be enabled for ‘mode’ +interleave_top and interleave_bottom. +

+
+
+
+
+ + +

28.88 transpose

+ +

Transpose rows with columns in the input video and optionally flip it. +

+

It accepts the following parameters: +

+
+
dir
+

Specify the transposition direction. +

+

Can assume the following values: +

+
0, 4, cclock_flip
+

Rotate by 90 degrees counterclockwise and vertically flip (default), that is: +

 
L.R     L.l
+. . ->  . .
+l.r     R.r
+
+ +
+
1, 5, clock
+

Rotate by 90 degrees clockwise, that is: +

 
L.R     l.L
+. . ->  . .
+l.r     r.R
+
+ +
+
2, 6, cclock
+

Rotate by 90 degrees counterclockwise, that is: +

 
L.R     R.r
+. . ->  . .
+l.r     L.l
+
+ +
+
3, 7, clock_flip
+

Rotate by 90 degrees clockwise and vertically flip, that is: +

 
L.R     r.R
+. . ->  . .
+l.r     l.L
+
+
+
+ +

For values between 4-7, the transposition is only done if the input +video geometry is portrait and not landscape. These values are +deprecated, the passthrough option should be used instead. +

+

Numerical values are deprecated, and should be dropped in favor of +symbolic constants. +

+
+
passthrough
+

Do not apply the transposition if the input geometry matches the one +specified by the specified value. It accepts the following values: +

+
none
+

Always apply transposition. +

+
portrait
+

Preserve portrait geometry (when height >= width). +

+
landscape
+

Preserve landscape geometry (when width >= height). +

+
+ +

Default value is none. +

+
+ +

For example to rotate by 90 degrees clockwise and preserve portrait +layout: +

 
transpose=dir=1:passthrough=portrait
+
+ +

The command above can also be specified as: +

 
transpose=1:portrait
+
+ + +

28.89 trim

+

Trim the input so that the output contains one continuous subpart of the input. +

+

It accepts the following parameters: +

+
start
+

Specify the time of the start of the kept section, i.e. the frame with the +timestamp start will be the first frame in the output. +

+
+
end
+

Specify the time of the first frame that will be dropped, i.e. the frame +immediately preceding the one with the timestamp end will be the last +frame in the output. +

+
+
start_pts
+

This is the same as start, except this option sets the start timestamp +in timebase units instead of seconds. +

+
+
end_pts
+

This is the same as end, except this option sets the end timestamp +in timebase units instead of seconds. +

+
+
duration
+

The maximum duration of the output in seconds. +

+
+
start_frame
+

The number of the first frame that should be passed to the output. +

+
+
end_frame
+

The number of the first frame that should be dropped. +

+
+ +

start’, ‘end’, ‘duration’ are expressed as time +duration specifications, check the "Time duration" section in the +ffmpeg-utils manual. +

+

Note that the first two sets of the start/end options and the ‘duration’ +option look at the frame timestamp, while the _frame variants simply count the +frames that pass through the filter. Also note that this filter does not modify +the timestamps. If you wish for the output timestamps to start at zero, insert a +setpts filter after the trim filter. +

+

If multiple start or end options are set, this filter tries to be greedy and +keep all the frames that match at least one of the specified constraints. To keep +only the part that matches all the constraints at once, chain multiple trim +filters. +

+

The defaults are such that all the input is kept. So it is possible to set e.g. +just the end values to keep everything before the specified time. +

+

Examples: +

    +
  • +Drop everything except the second minute of input: +
     
    ffmpeg -i INPUT -vf trim=60:120
    +
    + +
  • +Keep only the first second: +
     
    ffmpeg -i INPUT -vf trim=duration=1
    +
    + +
+ + + +

28.90 unsharp

+ +

Sharpen or blur the input video. +

+

It accepts the following parameters: +

+
+
luma_msize_x, lx
+

Set the luma matrix horizontal size. It must be an odd integer between +3 and 63. The default value is 5. +

+
+
luma_msize_y, ly
+

Set the luma matrix vertical size. It must be an odd integer between 3 +and 63. The default value is 5. +

+
+
luma_amount, la
+

Set the luma effect strength. It must be a floating point number, reasonable +values lay between -1.5 and 1.5. +

+

Negative values will blur the input video, while positive values will +sharpen it, a value of zero will disable the effect. +

+

Default value is 1.0. +

+
+
chroma_msize_x, cx
+

Set the chroma matrix horizontal size. It must be an odd integer +between 3 and 63. The default value is 5. +

+
+
chroma_msize_y, cy
+

Set the chroma matrix vertical size. It must be an odd integer +between 3 and 63. The default value is 5. +

+
+
chroma_amount, ca
+

Set the chroma effect strength. It must be a floating point number, reasonable +values lay between -1.5 and 1.5. +

+

Negative values will blur the input video, while positive values will +sharpen it, a value of zero will disable the effect. +

+

Default value is 0.0. +

+
+
opencl
+

If set to 1, specify using OpenCL capabilities, only available if +FFmpeg was configured with --enable-opencl. Default value is 0. +

+
+
+ +

All parameters are optional and default to the equivalent of the +string ’5:5:1.0:5:5:0.0’. +

+ +

28.90.1 Examples

+ +
    +
  • +Apply strong luma sharpen effect: +
     
    unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5
    +
    + +
  • +Apply a strong blur of both luma and chroma parameters: +
     
    unsharp=7:7:-2:7:7:-2
    +
    +
+ +

+

+

28.91 vidstabdetect

+ +

Analyze video stabilization/deshaking. Perform pass 1 of 2, see +vidstabtransform for pass 2. +

+

This filter generates a file with relative translation and rotation +transform information about subsequent frames, which is then used by +the vidstabtransform filter. +

+

To enable compilation of this filter you need to configure FFmpeg with +--enable-libvidstab. +

+

This filter accepts the following options: +

+
+
result
+

Set the path to the file used to write the transforms information. +Default value is ‘transforms.trf’. +

+
+
shakiness
+

Set how shaky the video is and how quick the camera is. It accepts an +integer in the range 1-10, a value of 1 means little shakiness, a +value of 10 means strong shakiness. Default value is 5. +

+
+
accuracy
+

Set the accuracy of the detection process. It must be a value in the +range 1-15. A value of 1 means low accuracy, a value of 15 means high +accuracy. Default value is 15. +

+
+
stepsize
+

Set stepsize of the search process. The region around minimum is +scanned with 1 pixel resolution. Default value is 6. +

+
+
mincontrast
+

Set minimum contrast. Below this value a local measurement field is +discarded. Must be a floating point value in the range 0-1. Default +value is 0.3. +

+
+
tripod
+

Set reference frame number for tripod mode. +

+

If enabled, the motion of the frames is compared to a reference frame +in the filtered stream, identified by the specified number. The idea +is to compensate all movements in a more-or-less static scene and keep +the camera view absolutely still. +

+

If set to 0, it is disabled. The frames are counted starting from 1. +

+
+
show
+

Show fields and transforms in the resulting frames. It accepts an +integer in the range 0-2. Default value is 0, which disables any +visualization. +

+
+ + +

28.91.1 Examples

+ +
    +
  • +Use default values: +
     
    vidstabdetect
    +
    + +
  • +Analyze strongly shaky movie and put the results in file +‘mytransforms.trf’: +
     
    vidstabdetect=shakiness=10:accuracy=15:result="mytransforms.trf"
    +
    + +
  • +Visualize the result of internal transformations in the resulting +video: +
     
    vidstabdetect=show=1
    +
    + +
  • +Analyze a video with medium shakiness using ffmpeg: +
     
    ffmpeg -i input -vf vidstabdetect=shakiness=5:show=1 dummy.avi
    +
    +
+ +

+

+

28.92 vidstabtransform

+ +

Video stabilization/deshaking: pass 2 of 2, +see vidstabdetect for pass 1. +

+

Read a file with transform information for each frame and +apply/compensate them. Together with the vidstabdetect +filter this can be used to deshake videos. See also +http://public.hronopik.de/vid.stab. It is important to also use +the unsharp filter, see below. +

+

To enable compilation of this filter you need to configure FFmpeg with +--enable-libvidstab. +

+ +

28.92.1 Options

+ +
+
input
+

Set path to the file used to read the transforms. Default value is +‘transforms.trf’). +

+
+
smoothing
+

Set the number of frames (value*2 + 1) used for lowpass filtering the +camera movements. Default value is 10. +

+

For example a number of 10 means that 21 frames are used (10 in the +past and 10 in the future) to smoothen the motion in the video. A +larger values leads to a smoother video, but limits the acceleration +of the camera (pan/tilt movements). 0 is a special case where a +static camera is simulated. +

+
+
optalgo
+

Set the camera path optimization algorithm. +

+

Accepted values are: +

+
gauss
+

gaussian kernel low-pass filter on camera motion (default) +

+
avg
+

averaging on transformations +

+
+ +
+
maxshift
+

Set maximal number of pixels to translate frames. Default value is -1, +meaning no limit. +

+
+
maxangle
+

Set maximal angle in radians (degree*PI/180) to rotate frames. Default +value is -1, meaning no limit. +

+
+
crop
+

Specify how to deal with borders that may be visible due to movement +compensation. +

+

Available values are: +

+
keep
+

keep image information from previous frame (default) +

+
black
+

fill the border black +

+
+ +
+
invert
+

Invert transforms if set to 1. Default value is 0. +

+
+
relative
+

Consider transforms as relative to previsou frame if set to 1, +absolute if set to 0. Default value is 0. +

+
+
zoom
+

Set percentage to zoom. A positive value will result in a zoom-in +effect, a negative value in a zoom-out effect. Default value is 0 (no +zoom). +

+
+
optzoom
+

Set optimal zooming to avoid borders. +

+

Accepted values are: +

+
0
+

disabled +

+
1
+

optimal static zoom value is determined (only very strong movements +will lead to visible borders) (default) +

+
2
+

optimal adaptive zoom value is determined (no borders will be +visible), see ‘zoomspeed’ +

+
+ +

Note that the value given at zoom is added to the one calculated here. +

+
+
zoomspeed
+

Set percent to zoom maximally each frame (enabled when +‘optzoom’ is set to 2). Range is from 0 to 5, default value is +0.25. +

+
+
interpol
+

Specify type of interpolation. +

+

Available values are: +

+
no
+

no interpolation +

+
linear
+

linear only horizontal +

+
bilinear
+

linear in both directions (default) +

+
bicubic
+

cubic in both directions (slow) +

+
+ +
+
tripod
+

Enable virtual tripod mode if set to 1, which is equivalent to +relative=0:smoothing=0. Default value is 0. +

+

Use also tripod option of vidstabdetect. +

+
+
debug
+

Increase log verbosity if set to 1. Also the detected global motions +are written to the temporary file ‘global_motions.trf’. Default +value is 0. +

+
+ + +

28.92.2 Examples

+ +
    +
  • +Use ffmpeg for a typical stabilization with default values: +
     
    ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 inp_stabilized.mpeg
    +
    + +

    Note the use of the unsharp filter which is always recommended. +

    +
  • +Zoom in a bit more and load transform data from a given file: +
     
    vidstabtransform=zoom=5:input="mytransforms.trf"
    +
    + +
  • +Smoothen the video even more: +
     
    vidstabtransform=smoothing=30
    +
    +
+ + +

28.93 vflip

+ +

Flip the input video vertically. +

+

For example, to vertically flip a video with ffmpeg: +

 
ffmpeg -i in.avi -vf "vflip" out.avi
+
+ + +

28.94 vignette

+ +

Make or reverse a natural vignetting effect. +

+

The filter accepts the following options: +

+
+
angle, a
+

Set lens angle expression as a number of radians. +

+

The value is clipped in the [0,PI/2] range. +

+

Default value: "PI/5" +

+
+
x0
+
y0
+

Set center coordinates expressions. Respectively "w/2" and "h/2" +by default. +

+
+
mode
+

Set forward/backward mode. +

+

Available modes are: +

+
forward
+

The larger the distance from the central point, the darker the image becomes. +

+
+
backward
+

The larger the distance from the central point, the brighter the image becomes. +This can be used to reverse a vignette effect, though there is no automatic +detection to extract the lens ‘angle’ and other settings (yet). It can +also be used to create a burning effect. +

+
+ +

Default value is ‘forward’. +

+
+
eval
+

Set evaluation mode for the expressions (‘angle’, ‘x0’, ‘y0’). +

+

It accepts the following values: +

+
init
+

Evaluate expressions only once during the filter initialization. +

+
+
frame
+

Evaluate expressions for each incoming frame. This is way slower than the +‘init’ mode since it requires all the scalers to be re-computed, but it +allows advanced dynamic expressions. +

+
+ +

Default value is ‘init’. +

+
+
dither
+

Set dithering to reduce the circular banding effects. Default is 1 +(enabled). +

+
+
aspect
+

Set vignette aspect. This setting allows one to adjust the shape of the vignette. +Setting this value to the SAR of the input will make a rectangular vignetting +following the dimensions of the video. +

+

Default is 1/1. +

+
+ + +

28.94.1 Expressions

+ +

The ‘alpha’, ‘x0’ and ‘y0’ expressions can contain the +following parameters. +

+
+
w
+
h
+

input width and height +

+
+
n
+

the number of input frame, starting from 0 +

+
+
pts
+

the PTS (Presentation TimeStamp) time of the filtered video frame, expressed in +TB units, NAN if undefined +

+
+
r
+

frame rate of the input video, NAN if the input frame rate is unknown +

+
+
t
+

the PTS (Presentation TimeStamp) of the filtered video frame, +expressed in seconds, NAN if undefined +

+
+
tb
+

time base of the input video +

+
+ + + +

28.94.2 Examples

+ +
    +
  • +Apply simple strong vignetting effect: +
     
    vignette=PI/4
    +
    + +
  • +Make a flickering vignetting: +
     
    vignette='PI/4+random(1)*PI/50':eval=frame
    +
    + +
+ + +

28.95 w3fdif

+ +

Deinterlace the input video ("w3fdif" stands for "Weston 3 Field +Deinterlacing Filter"). +

+

Based on the process described by Martin Weston for BBC R&D, and +implemented based on the de-interlace algorithm written by Jim +Easterbrook for BBC R&D, the Weston 3 field deinterlacing filter +uses filter coefficients calculated by BBC R&D. +

+

There are two sets of filter coefficients, so called "simple": +and "complex". Which set of filter coefficients is used can +be set by passing an optional parameter: +

+
+
filter
+

Set the interlacing filter coefficients. Accepts one of the following values: +

+
+
simple
+

Simple filter coefficient set. +

+
complex
+

More-complex filter coefficient set. +

+
+

Default value is ‘complex’. +

+
+
deint
+

Specify which frames to deinterlace. Accept one of the following values: +

+
+
all
+

Deinterlace all frames, +

+
interlaced
+

Only deinterlace frames marked as interlaced. +

+
+ +

Default value is ‘all’. +

+
+ +

+

+

28.96 yadif

+ +

Deinterlace the input video ("yadif" means "yet another deinterlacing +filter"). +

+

It accepts the following parameters: +

+ +
+
mode
+

The interlacing mode to adopt. It accepts one of the following values: +

+
+
0, send_frame
+

Output one frame for each frame. +

+
1, send_field
+

Output one frame for each field. +

+
2, send_frame_nospatial
+

Like send_frame, but it skips the spatial interlacing check. +

+
3, send_field_nospatial
+

Like send_field, but it skips the spatial interlacing check. +

+
+ +

The default value is send_frame. +

+
+
parity
+

The picture field parity assumed for the input interlaced video. It accepts one +of the following values: +

+
+
0, tff
+

Assume the top field is first. +

+
1, bff
+

Assume the bottom field is first. +

+
-1, auto
+

Enable automatic detection of field parity. +

+
+ +

The default value is auto. +If the interlacing is unknown or the decoder does not export this information, +top field first will be assumed. +

+
+
deint
+

Specify which frames to deinterlace. Accept one of the following +values: +

+
+
0, all
+

Deinterlace all frames. +

+
1, interlaced
+

Only deinterlace frames marked as interlaced. +

+
+ +

The default value is all. +

+
+ + + +

29. Video Sources

+ +

Below is a description of the currently available video sources. +

+ +

29.1 buffer

+ +

Buffer video frames, and make them available to the filter chain. +

+

This source is mainly intended for a programmatic use, in particular +through the interface defined in ‘libavfilter/vsrc_buffer.h’. +

+

It accepts the following parameters: +

+
+
video_size
+

Specify the size (width and height) of the buffered video frames. For the +syntax of this option, check the "Video size" section in the ffmpeg-utils +manual. +

+
+
width
+

The input video width. +

+
+
height
+

The input video height. +

+
+
pix_fmt
+

A string representing the pixel format of the buffered video frames. +It may be a number corresponding to a pixel format, or a pixel format +name. +

+
+
time_base
+

Specify the timebase assumed by the timestamps of the buffered frames. +

+
+
frame_rate
+

Specify the frame rate expected for the video stream. +

+
+
pixel_aspect, sar
+

The sample (pixel) aspect ratio of the input video. +

+
+
sws_param
+

Specify the optional parameters to be used for the scale filter which +is automatically inserted when an input change is detected in the +input size or format. +

+
+ +

For example: +

 
buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1
+
+ +

will instruct the source to accept video frames with size 320x240 and +with format "yuv410p", assuming 1/24 as the timestamps timebase and +square pixels (1:1 sample aspect ratio). +Since the pixel format with name "yuv410p" corresponds to the number 6 +(check the enum AVPixelFormat definition in ‘libavutil/pixfmt.h’), +this example corresponds to: +

 
buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1
+
+ +

Alternatively, the options can be specified as a flat string, but this +syntax is deprecated: +

+

width:height:pix_fmt:time_base.num:time_base.den:pixel_aspect.num:pixel_aspect.den[:sws_param] +

+ +

29.2 cellauto

+ +

Create a pattern generated by an elementary cellular automaton. +

+

The initial state of the cellular automaton can be defined through the +‘filename’, and ‘pattern’ options. If such options are +not specified an initial state is created randomly. +

+

At each new frame a new row in the video is filled with the result of +the cellular automaton next generation. The behavior when the whole +frame is filled is defined by the ‘scroll’ option. +

+

This source accepts the following options: +

+
+
filename, f
+

Read the initial cellular automaton state, i.e. the starting row, from +the specified file. +In the file, each non-whitespace character is considered an alive +cell, a newline will terminate the row, and further characters in the +file will be ignored. +

+
+
pattern, p
+

Read the initial cellular automaton state, i.e. the starting row, from +the specified string. +

+

Each non-whitespace character in the string is considered an alive +cell, a newline will terminate the row, and further characters in the +string will be ignored. +

+
+
rate, r
+

Set the video rate, that is the number of frames generated per second. +Default is 25. +

+
+
random_fill_ratio, ratio
+

Set the random fill ratio for the initial cellular automaton row. It +is a floating point number value ranging from 0 to 1, defaults to +1/PHI. +

+

This option is ignored when a file or a pattern is specified. +

+
+
random_seed, seed
+

Set the seed for filling randomly the initial row, must be an integer +included between 0 and UINT32_MAX. If not specified, or if explicitly +set to -1, the filter will try to use a good random seed on a best +effort basis. +

+
+
rule
+

Set the cellular automaton rule, it is a number ranging from 0 to 255. +Default value is 110. +

+
+
size, s
+

Set the size of the output video. For the syntax of this option, check +the "Video size" section in the ffmpeg-utils manual. +

+

If ‘filename’ or ‘pattern’ is specified, the size is set +by default to the width of the specified initial state row, and the +height is set to width * PHI. +

+

If ‘size’ is set, it must contain the width of the specified +pattern string, and the specified pattern will be centered in the +larger row. +

+

If a filename or a pattern string is not specified, the size value +defaults to "320x518" (used for a randomly generated initial state). +

+
+
scroll
+

If set to 1, scroll the output upward when all the rows in the output +have been already filled. If set to 0, the new generated row will be +written over the top row just after the bottom row is filled. +Defaults to 1. +

+
+
start_full, full
+

If set to 1, completely fill the output with generated rows before +outputting the first frame. +This is the default behavior, for disabling set the value to 0. +

+
+
stitch
+

If set to 1, stitch the left and right row edges together. +This is the default behavior, for disabling set the value to 0. +

+
+ + +

29.2.1 Examples

+ +
    +
  • +Read the initial state from ‘pattern’, and specify an output of +size 200x400. +
     
    cellauto=f=pattern:s=200x400
    +
    + +
  • +Generate a random initial row with a width of 200 cells, with a fill +ratio of 2/3: +
     
    cellauto=ratio=2/3:s=200x200
    +
    + +
  • +Create a pattern generated by rule 18 starting by a single alive cell +centered on an initial row with width 100: +
     
    cellauto=p=@:s=100x400:full=0:rule=18
    +
    + +
  • +Specify a more elaborated initial pattern: +
     
    cellauto=p='@@ @ @@':s=100x400:full=0:rule=18
    +
    + +
+ + +

29.3 mandelbrot

+ +

Generate a Mandelbrot set fractal, and progressively zoom towards the +point specified with start_x and start_y. +

+

This source accepts the following options: +

+
+
end_pts
+

Set the terminal pts value. Default value is 400. +

+
+
end_scale
+

Set the terminal scale value. +Must be a floating point value. Default value is 0.3. +

+
+
inner
+

Set the inner coloring mode, that is the algorithm used to draw the +Mandelbrot fractal internal region. +

+

It shall assume one of the following values: +

+
black
+

Set black mode. +

+
convergence
+

Show time until convergence. +

+
mincol
+

Set color based on point closest to the origin of the iterations. +

+
period
+

Set period mode. +

+
+ +

Default value is mincol. +

+
+
bailout
+

Set the bailout value. Default value is 10.0. +

+
+
maxiter
+

Set the maximum of iterations performed by the rendering +algorithm. Default value is 7189. +

+
+
outer
+

Set outer coloring mode. +It shall assume one of following values: +

+
iteration_count
+

Set iteration cound mode. +

+
normalized_iteration_count
+

set normalized iteration count mode. +

+
+

Default value is normalized_iteration_count. +

+
+
rate, r
+

Set frame rate, expressed as number of frames per second. Default +value is "25". +

+
+
size, s
+

Set frame size. For the syntax of this option, check the "Video +size" section in the ffmpeg-utils manual. Default value is "640x480". +

+
+
start_scale
+

Set the initial scale value. Default value is 3.0. +

+
+
start_x
+

Set the initial x position. Must be a floating point value between +-100 and 100. Default value is -0.743643887037158704752191506114774. +

+
+
start_y
+

Set the initial y position. Must be a floating point value between +-100 and 100. Default value is -0.131825904205311970493132056385139. +

+
+ + +

29.4 mptestsrc

+ +

Generate various test patterns, as generated by the MPlayer test filter. +

+

The size of the generated video is fixed, and is 256x256. +This source is useful in particular for testing encoding features. +

+

This source accepts the following options: +

+
+
rate, r
+

Specify the frame rate of the sourced video, as the number of frames +generated per second. It has to be a string in the format +frame_rate_num/frame_rate_den, an integer number, a floating point +number or a valid video frame rate abbreviation. The default value is +"25". +

+
+
duration, d
+

Set the video duration of the sourced video. The accepted syntax is: +

 
[-]HH:MM:SS[.m...]
+[-]S+[.m...]
+
+

See also the function av_parse_time(). +

+

If not specified, or the expressed duration is negative, the video is +supposed to be generated forever. +

+
+
test, t
+
+

Set the number or the name of the test to perform. Supported tests are: +

+
dc_luma
+
dc_chroma
+
freq_luma
+
freq_chroma
+
amp_luma
+
amp_chroma
+
cbp
+
mv
+
ring1
+
ring2
+
all
+
+ +

Default value is "all", which will cycle through the list of all tests. +

+
+ +

Some examples: +

 
testsrc=t=dc_luma
+
+ +

will generate a "dc_luma" test pattern. +

+ +

29.5 frei0r_src

+ +

Provide a frei0r source. +

+

To enable compilation of this filter you need to install the frei0r +header and configure FFmpeg with --enable-frei0r. +

+

This source accepts the following parameters: +

+
+
size
+

The size of the video to generate. For the syntax of this option, check the +"Video size" section in the ffmpeg-utils manual. +

+
+
framerate
+

The framerate of the generated video. It may be a string of the form +num/den or a frame rate abbreviation. +

+
+
filter_name
+

The name to the frei0r source to load. For more information regarding frei0r and +how to set the parameters, read the frei0r section in the video filters +documentation. +

+
+
filter_params
+

A ’|’-separated list of parameters to pass to the frei0r source. +

+
+
+ +

For example, to generate a frei0r partik0l source with size 200x200 +and frame rate 10 which is overlayed on the overlay filter main input: +

 
frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay
+
+ + +

29.6 life

+ +

Generate a life pattern. +

+

This source is based on a generalization of John Conway’s life game. +

+

The sourced input represents a life grid, each pixel represents a cell +which can be in one of two possible states, alive or dead. Every cell +interacts with its eight neighbours, which are the cells that are +horizontally, vertically, or diagonally adjacent. +

+

At each interaction the grid evolves according to the adopted rule, +which specifies the number of neighbor alive cells which will make a +cell stay alive or born. The ‘rule’ option allows one to specify +the rule to adopt. +

+

This source accepts the following options: +

+
+
filename, f
+

Set the file from which to read the initial grid state. In the file, +each non-whitespace character is considered an alive cell, and newline +is used to delimit the end of each row. +

+

If this option is not specified, the initial grid is generated +randomly. +

+
+
rate, r
+

Set the video rate, that is the number of frames generated per second. +Default is 25. +

+
+
random_fill_ratio, ratio
+

Set the random fill ratio for the initial random grid. It is a +floating point number value ranging from 0 to 1, defaults to 1/PHI. +It is ignored when a file is specified. +

+
+
random_seed, seed
+

Set the seed for filling the initial random grid, must be an integer +included between 0 and UINT32_MAX. If not specified, or if explicitly +set to -1, the filter will try to use a good random seed on a best +effort basis. +

+
+
rule
+

Set the life rule. +

+

A rule can be specified with a code of the kind "SNS/BNB", +where NS and NB are sequences of numbers in the range 0-8, +NS specifies the number of alive neighbor cells which make a +live cell stay alive, and NB the number of alive neighbor cells +which make a dead cell to become alive (i.e. to "born"). +"s" and "b" can be used in place of "S" and "B", respectively. +

+

Alternatively a rule can be specified by an 18-bits integer. The 9 +high order bits are used to encode the next cell state if it is alive +for each number of neighbor alive cells, the low order bits specify +the rule for "borning" new cells. Higher order bits encode for an +higher number of neighbor cells. +For example the number 6153 = (12<<9)+9 specifies a stay alive +rule of 12 and a born rule of 9, which corresponds to "S23/B03". +

+

Default value is "S23/B3", which is the original Conway’s game of life +rule, and will keep a cell alive if it has 2 or 3 neighbor alive +cells, and will born a new cell if there are three alive cells around +a dead cell. +

+
+
size, s
+

Set the size of the output video. For the syntax of this option, check the +"Video size" section in the ffmpeg-utils manual. +

+

If ‘filename’ is specified, the size is set by default to the +same size of the input file. If ‘size’ is set, it must contain +the size specified in the input file, and the initial grid defined in +that file is centered in the larger resulting area. +

+

If a filename is not specified, the size value defaults to "320x240" +(used for a randomly generated initial grid). +

+
+
stitch
+

If set to 1, stitch the left and right grid edges together, and the +top and bottom edges also. Defaults to 1. +

+
+
mold
+

Set cell mold speed. If set, a dead cell will go from ‘death_color’ to +‘mold_color’ with a step of ‘mold’. ‘mold’ can have a +value from 0 to 255. +

+
+
life_color
+

Set the color of living (or new born) cells. +

+
+
death_color
+

Set the color of dead cells. If ‘mold’ is set, this is the first color +used to represent a dead cell. +

+
+
mold_color
+

Set mold color, for definitely dead and moldy cells. +

+

For the syntax of these 3 color options, check the "Color" section in the +ffmpeg-utils manual. +

+
+ + +

29.6.1 Examples

+ +
    +
  • +Read a grid from ‘pattern’, and center it on a grid of size +300x300 pixels: +
     
    life=f=pattern:s=300x300
    +
    + +
  • +Generate a random grid of size 200x200, with a fill ratio of 2/3: +
     
    life=ratio=2/3:s=200x200
    +
    + +
  • +Specify a custom rule for evolving a randomly generated grid: +
     
    life=rule=S14/B34
    +
    + +
  • +Full example with slow death effect (mold) using ffplay: +
     
    ffplay -f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16
    +
    +
+ +

+ + + + + + +

+

29.7 color, haldclutsrc, nullsrc, rgbtestsrc, smptebars, smptehdbars, testsrc

+ +

The color source provides an uniformly colored input. +

+

The haldclutsrc source provides an identity Hald CLUT. See also +haldclut filter. +

+

The nullsrc source returns unprocessed video frames. It is +mainly useful to be employed in analysis / debugging tools, or as the +source for filters which ignore the input data. +

+

The rgbtestsrc source generates an RGB test pattern useful for +detecting RGB vs BGR issues. You should see a red, green and blue +stripe from top to bottom. +

+

The smptebars source generates a color bars pattern, based on +the SMPTE Engineering Guideline EG 1-1990. +

+

The smptehdbars source generates a color bars pattern, based on +the SMPTE RP 219-2002. +

+

The testsrc source generates a test video pattern, showing a +color pattern, a scrolling gradient and a timestamp. This is mainly +intended for testing purposes. +

+

The sources accept the following parameters: +

+
+
color, c
+

Specify the color of the source, only available in the color +source. For the syntax of this option, check the "Color" section in the +ffmpeg-utils manual. +

+
+
level
+

Specify the level of the Hald CLUT, only available in the haldclutsrc +source. A level of N generates a picture of N*N*N by N*N*N +pixels to be used as identity matrix for 3D lookup tables. Each component is +coded on a 1/(N*N) scale. +

+
+
size, s
+

Specify the size of the sourced video. For the syntax of this option, check the +"Video size" section in the ffmpeg-utils manual. The default value is +"320x240". +

+

This option is not available with the haldclutsrc filter. +

+
+
rate, r
+

Specify the frame rate of the sourced video, as the number of frames +generated per second. It has to be a string in the format +frame_rate_num/frame_rate_den, an integer number, a floating point +number or a valid video frame rate abbreviation. The default value is +"25". +

+
+
sar
+

Set the sample aspect ratio of the sourced video. +

+
+
duration, d
+

Set the video duration of the sourced video. The accepted syntax is: +

 
[-]HH[:MM[:SS[.m...]]]
+[-]S+[.m...]
+
+

Also see the the av_parse_time() function. +

+

If not specified, or the expressed duration is negative, the video is +supposed to be generated forever. +

+
+
decimals, n
+

Set the number of decimals to show in the timestamp, only available in the +testsrc source. +

+

The displayed timestamp value will correspond to the original +timestamp value multiplied by the power of 10 of the specified +value. Default value is 0. +

+
+ +

For example the following: +

 
testsrc=duration=5.3:size=qcif:rate=10
+
+ +

will generate a video with a duration of 5.3 seconds, with size +176x144 and a frame rate of 10 frames per second. +

+

The following graph description will generate a red source +with an opacity of 0.2, with size "qcif" and a frame rate of 10 +frames per second. +

 
color=c=red@0.2:s=qcif:r=10
+
+ +

If the input content is to be ignored, nullsrc can be used. The +following command generates noise in the luminance plane by employing +the geq filter: +

 
nullsrc=s=256x256, geq=random(1)*255:128:128
+
+ + +

29.7.1 Commands

+ +

The color source supports the following commands: +

+
+
c, color
+

Set the color of the created image. Accepts the same syntax of the +corresponding ‘color’ option. +

+
+ + + +

30. Video Sinks

+ +

Below is a description of the currently available video sinks. +

+ +

30.1 buffersink

+ +

Buffer video frames, and make them available to the end of the filter +graph. +

+

This sink is mainly intended for programmatic use, in particular +through the interface defined in ‘libavfilter/buffersink.h’ +or the options system. +

+

It accepts a pointer to an AVBufferSinkContext structure, which +defines the incoming buffers’ formats, to be passed as the opaque +parameter to avfilter_init_filter for initialization. +

+ +

30.2 nullsink

+ +

Null video sink: do absolutely nothing with the input video. It is +mainly useful as a template and for use in analysis / debugging +tools. +

+ + +

31. Multimedia Filters

+ +

Below is a description of the currently available multimedia filters. +

+ +

31.1 avectorscope

+ +

Convert input audio to a video output, representing the audio vector +scope. +

+

The filter is used to measure the difference between channels of stereo +audio stream. A monoaural signal, consisting of identical left and right +signal, results in straight vertical line. Any stereo separation is visible +as a deviation from this line, creating a Lissajous figure. +If the straight (or deviation from it) but horizontal line appears this +indicates that the left and right channels are out of phase. +

+

The filter accepts the following options: +

+
+
mode, m
+

Set the vectorscope mode. +

+

Available values are: +

+
lissajous
+

Lissajous rotated by 45 degrees. +

+
+
lissajous_xy
+

Same as above but not rotated. +

+
+ +

Default value is ‘lissajous’. +

+
+
size, s
+

Set the video size for the output. For the syntax of this option, check the "Video size" +section in the ffmpeg-utils manual. Default value is 400x400. +

+
+
rate, r
+

Set the output frame rate. Default value is 25. +

+
+
rc
+
gc
+
bc
+

Specify the red, green and blue contrast. Default values are 40, 160 and 80. +Allowed range is [0, 255]. +

+
+
rf
+
gf
+
bf
+

Specify the red, green and blue fade. Default values are 15, 10 and 5. +Allowed range is [0, 255]. +

+
+
zoom
+

Set the zoom factor. Default value is 1. Allowed range is [1, 10]. +

+
+ + +

31.1.1 Examples

+ +
    +
  • +Complete example using ffplay: +
     
    ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
    +             [a] avectorscope=zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7 [out0]'
    +
    +
+ + +

31.2 concat

+ +

Concatenate audio and video streams, joining them together one after the +other. +

+

The filter works on segments of synchronized video and audio streams. All +segments must have the same number of streams of each type, and that will +also be the number of streams at output. +

+

The filter accepts the following options: +

+
+
n
+

Set the number of segments. Default is 2. +

+
+
v
+

Set the number of output video streams, that is also the number of video +streams in each segment. Default is 1. +

+
+
a
+

Set the number of output audio streams, that is also the number of video +streams in each segment. Default is 0. +

+
+
unsafe
+

Activate unsafe mode: do not fail if segments have a different format. +

+
+
+ +

The filter has v+a outputs: first v video outputs, then +a audio outputs. +

+

There are nx(v+a) inputs: first the inputs for the first +segment, in the same order as the outputs, then the inputs for the second +segment, etc. +

+

Related streams do not always have exactly the same duration, for various +reasons including codec frame size or sloppy authoring. For that reason, +related synchronized streams (e.g. a video and its audio track) should be +concatenated at once. The concat filter will use the duration of the longest +stream in each segment (except the last one), and if necessary pad shorter +audio streams with silence. +

+

For this filter to work correctly, all segments must start at timestamp 0. +

+

All corresponding streams must have the same parameters in all segments; the +filtering system will automatically select a common pixel format for video +streams, and a common sample format, sample rate and channel layout for +audio streams, but other settings, such as resolution, must be converted +explicitly by the user. +

+

Different frame rates are acceptable but will result in variable frame rate +at output; be sure to configure the output file to handle it. +

+ +

31.2.1 Examples

+ +
    +
  • +Concatenate an opening, an episode and an ending, all in bilingual version +(video in stream 0, audio in streams 1 and 2): +
     
    ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv -filter_complex \
    +  '[0:0] [0:1] [0:2] [1:0] [1:1] [1:2] [2:0] [2:1] [2:2]
    +   concat=n=3:v=1:a=2 [v] [a1] [a2]' \
    +  -map '[v]' -map '[a1]' -map '[a2]' output.mkv
    +
    + +
  • +Concatenate two parts, handling audio and video separately, using the +(a)movie sources, and adjusting the resolution: +
     
    movie=part1.mp4, scale=512:288 [v1] ; amovie=part1.mp4 [a1] ;
    +movie=part2.mp4, scale=512:288 [v2] ; amovie=part2.mp4 [a2] ;
    +[v1] [v2] concat [outv] ; [a1] [a2] concat=v=0:a=1 [outa]
    +
    +

    Note that a desync will happen at the stitch if the audio and video streams +do not have exactly the same duration in the first file. +

    +
+ + +

31.3 ebur128

+ +

EBU R128 scanner filter. This filter takes an audio stream as input and outputs +it unchanged. By default, it logs a message at a frequency of 10Hz with the +Momentary loudness (identified by M), Short-term loudness (S), +Integrated loudness (I) and Loudness Range (LRA). +

+

The filter also has a video output (see the video option) with a real +time graph to observe the loudness evolution. The graphic contains the logged +message mentioned above, so it is not printed anymore when this option is set, +unless the verbose logging is set. The main graphing area contains the +short-term loudness (3 seconds of analysis), and the gauge on the right is for +the momentary loudness (400 milliseconds). +

+

More information about the Loudness Recommendation EBU R128 on +http://tech.ebu.ch/loudness. +

+

The filter accepts the following options: +

+
+
video
+

Activate the video output. The audio stream is passed unchanged whether this +option is set or no. The video stream will be the first output stream if +activated. Default is 0. +

+
+
size
+

Set the video size. This option is for video only. For the syntax of this +option, check the "Video size" section in the ffmpeg-utils manual. Default +and minimum resolution is 640x480. +

+
+
meter
+

Set the EBU scale meter. Default is 9. Common values are 9 and +18, respectively for EBU scale meter +9 and EBU scale meter +18. Any +other integer value between this range is allowed. +

+
+
metadata
+

Set metadata injection. If set to 1, the audio input will be segmented +into 100ms output frames, each of them containing various loudness information +in metadata. All the metadata keys are prefixed with lavfi.r128.. +

+

Default is 0. +

+
+
framelog
+

Force the frame logging level. +

+

Available values are: +

+
info
+

information logging level +

+
verbose
+

verbose logging level +

+
+ +

By default, the logging level is set to info. If the ‘video’ or +the ‘metadata’ options are set, it switches to verbose. +

+
+
peak
+

Set peak mode(s). +

+

Available modes can be cumulated (the option is a flag type). Possible +values are: +

+
none
+

Disable any peak mode (default). +

+
sample
+

Enable sample-peak mode. +

+

Simple peak mode looking for the higher sample value. It logs a message +for sample-peak (identified by SPK). +

+
true
+

Enable true-peak mode. +

+

If enabled, the peak lookup is done on an over-sampled version of the input +stream for better peak accuracy. It logs a message for true-peak. +(identified by TPK) and true-peak per frame (identified by FTPK). +This mode requires a build with libswresample. +

+
+ +
+
+ + +

31.3.1 Examples

+ +
    +
  • +Real-time graph using ffplay, with a EBU scale meter +18: +
     
    ffplay -f lavfi -i "amovie=input.mp3,ebur128=video=1:meter=18 [out0][out1]"
    +
    + +
  • +Run an analysis with ffmpeg: +
     
    ffmpeg -nostats -i input.mp3 -filter_complex ebur128 -f null -
    +
    +
+ + +

31.4 interleave, ainterleave

+ +

Temporally interleave frames from several inputs. +

+

interleave works with video inputs, ainterleave with audio. +

+

These filters read frames from several inputs and send the oldest +queued frame to the output. +

+

Input streams must have a well defined, monotonically increasing frame +timestamp values. +

+

In order to submit one frame to output, these filters need to enqueue +at least one frame for each input, so they cannot work in case one +input is not yet terminated and will not receive incoming frames. +

+

For example consider the case when one input is a select filter +which always drop input frames. The interleave filter will keep +reading from that input, but it will never be able to send new frames +to output until the input will send an end-of-stream signal. +

+

Also, depending on inputs synchronization, the filters will drop +frames in case one input receives more frames than the other ones, and +the queue is already filled. +

+

These filters accept the following options: +

+
+
nb_inputs, n
+

Set the number of different inputs, it is 2 by default. +

+
+ + +

31.4.1 Examples

+ +
    +
  • +Interleave frames belonging to different streams using ffmpeg: +
     
    ffmpeg -i bambi.avi -i pr0n.mkv -filter_complex "[0:v][1:v] interleave" out.avi
    +
    + +
  • +Add flickering blur effect: +
     
    select='if(gt(random(0), 0.2), 1, 2)':n=2 [tmp], boxblur=2:2, [tmp] interleave
    +
    +
+ + +

31.5 perms, aperms

+ +

Set read/write permissions for the output frames. +

+

These filters are mainly aimed at developers to test direct path in the +following filter in the filtergraph. +

+

The filters accept the following options: +

+
+
mode
+

Select the permissions mode. +

+

It accepts the following values: +

+
none
+

Do nothing. This is the default. +

+
ro
+

Set all the output frames read-only. +

+
rw
+

Set all the output frames directly writable. +

+
toggle
+

Make the frame read-only if writable, and writable if read-only. +

+
random
+

Set each output frame read-only or writable randomly. +

+
+ +
+
seed
+

Set the seed for the random mode, must be an integer included between +0 and UINT32_MAX. If not specified, or if explicitly set to +-1, the filter will try to use a good random seed on a best effort +basis. +

+
+ +

Note: in case of auto-inserted filter between the permission filter and the +following one, the permission might not be received as expected in that +following filter. Inserting a format or aformat filter before the +perms/aperms filter can avoid this problem. +

+ +

31.6 select, aselect

+ +

Select frames to pass in output. +

+

This filter accepts the following options: +

+
+
expr, e
+

Set expression, which is evaluated for each input frame. +

+

If the expression is evaluated to zero, the frame is discarded. +

+

If the evaluation result is negative or NaN, the frame is sent to the +first output; otherwise it is sent to the output with index +ceil(val)-1, assuming that the input index starts from 0. +

+

For example a value of 1.2 corresponds to the output with index +ceil(1.2)-1 = 2-1 = 1, that is the second output. +

+
+
outputs, n
+

Set the number of outputs. The output to which to send the selected +frame is based on the result of the evaluation. Default value is 1. +

+
+ +

The expression can contain the following constants: +

+
+
n
+

The (sequential) number of the filtered frame, starting from 0. +

+
+
selected_n
+

The (sequential) number of the selected frame, starting from 0. +

+
+
prev_selected_n
+

The sequential number of the last selected frame. It’s NAN if undefined. +

+
+
TB
+

The timebase of the input timestamps. +

+
+
pts
+

The PTS (Presentation TimeStamp) of the filtered video frame, +expressed in TB units. It’s NAN if undefined. +

+
+
t
+

The PTS of the filtered video frame, +expressed in seconds. It’s NAN if undefined. +

+
+
prev_pts
+

The PTS of the previously filtered video frame. It’s NAN if undefined. +

+
+
prev_selected_pts
+

The PTS of the last previously filtered video frame. It’s NAN if undefined. +

+
+
prev_selected_t
+

The PTS of the last previously selected video frame. It’s NAN if undefined. +

+
+
start_pts
+

The PTS of the first video frame in the video. It’s NAN if undefined. +

+
+
start_t
+

The time of the first video frame in the video. It’s NAN if undefined. +

+
+
pict_type (video only)
+

The type of the filtered frame. It can assume one of the following +values: +

+
I
+
P
+
B
+
S
+
SI
+
SP
+
BI
+
+ +
+
interlace_type (video only)
+

The frame interlace type. It can assume one of the following values: +

+
PROGRESSIVE
+

The frame is progressive (not interlaced). +

+
TOPFIRST
+

The frame is top-field-first. +

+
BOTTOMFIRST
+

The frame is bottom-field-first. +

+
+ +
+
consumed_sample_n (audio only)
+

the number of selected samples before the current frame +

+
+
samples_n (audio only)
+

the number of samples in the current frame +

+
+
sample_rate (audio only)
+

the input sample rate +

+
+
key
+

This is 1 if the filtered frame is a key-frame, 0 otherwise. +

+
+
pos
+

the position in the file of the filtered frame, -1 if the information +is not available (e.g. for synthetic video) +

+
+
scene (video only)
+

value between 0 and 1 to indicate a new scene; a low value reflects a low +probability for the current frame to introduce a new scene, while a higher +value means the current frame is more likely to be one (see the example below) +

+
+
+ +

The default value of the select expression is "1". +

+ +

31.6.1 Examples

+ +
    +
  • +Select all frames in input: +
     
    select
    +
    + +

    The example above is the same as: +

     
    select=1
    +
    + +
  • +Skip all frames: +
     
    select=0
    +
    + +
  • +Select only I-frames: +
     
    select='eq(pict_type\,I)'
    +
    + +
  • +Select one frame every 100: +
     
    select='not(mod(n\,100))'
    +
    + +
  • +Select only frames contained in the 10-20 time interval: +
     
    select=between(t\,10\,20)
    +
    + +
  • +Select only I frames contained in the 10-20 time interval: +
     
    select=between(t\,10\,20)*eq(pict_type\,I)
    +
    + +
  • +Select frames with a minimum distance of 10 seconds: +
     
    select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)'
    +
    + +
  • +Use aselect to select only audio frames with samples number > 100: +
     
    aselect='gt(samples_n\,100)'
    +
    + +
  • +Create a mosaic of the first scenes: +
     
    ffmpeg -i video.avi -vf select='gt(scene\,0.4)',scale=160:120,tile -frames:v 1 preview.png
    +
    + +

    Comparing scene against a value between 0.3 and 0.5 is generally a sane +choice. +

    +
  • +Send even and odd frames to separate outputs, and compose them: +
     
    select=n=2:e='mod(n, 2)+1' [odd][even]; [odd] pad=h=2*ih [tmp]; [tmp][even] overlay=y=h
    +
    +
+ + +

31.7 sendcmd, asendcmd

+ +

Send commands to filters in the filtergraph. +

+

These filters read commands to be sent to other filters in the +filtergraph. +

+

sendcmd must be inserted between two video filters, +asendcmd must be inserted between two audio filters, but apart +from that they act the same way. +

+

The specification of commands can be provided in the filter arguments +with the commands option, or in a file specified by the +filename option. +

+

These filters accept the following options: +

+
commands, c
+

Set the commands to be read and sent to the other filters. +

+
filename, f
+

Set the filename of the commands to be read and sent to the other +filters. +

+
+ + +

31.7.1 Commands syntax

+ +

A commands description consists of a sequence of interval +specifications, comprising a list of commands to be executed when a +particular event related to that interval occurs. The occurring event +is typically the current frame time entering or leaving a given time +interval. +

+

An interval is specified by the following syntax: +

 
START[-END] COMMANDS;
+
+ +

The time interval is specified by the START and END times. +END is optional and defaults to the maximum time. +

+

The current frame time is considered within the specified interval if +it is included in the interval [START, END), that is when +the time is greater or equal to START and is lesser than +END. +

+

COMMANDS consists of a sequence of one or more command +specifications, separated by ",", relating to that interval. The +syntax of a command specification is given by: +

 
[FLAGS] TARGET COMMAND ARG
+
+ +

FLAGS is optional and specifies the type of events relating to +the time interval which enable sending the specified command, and must +be a non-null sequence of identifier flags separated by "+" or "|" and +enclosed between "[" and "]". +

+

The following flags are recognized: +

+
enter
+

The command is sent when the current frame timestamp enters the +specified interval. In other words, the command is sent when the +previous frame timestamp was not in the given interval, and the +current is. +

+
+
leave
+

The command is sent when the current frame timestamp leaves the +specified interval. In other words, the command is sent when the +previous frame timestamp was in the given interval, and the +current is not. +

+
+ +

If FLAGS is not specified, a default value of [enter] is +assumed. +

+

TARGET specifies the target of the command, usually the name of +the filter class or a specific filter instance name. +

+

COMMAND specifies the name of the command for the target filter. +

+

ARG is optional and specifies the optional list of argument for +the given COMMAND. +

+

Between one interval specification and another, whitespaces, or +sequences of characters starting with # until the end of line, +are ignored and can be used to annotate comments. +

+

A simplified BNF description of the commands specification syntax +follows: +

 
COMMAND_FLAG  ::= "enter" | "leave"
+COMMAND_FLAGS ::= COMMAND_FLAG [(+|"|")COMMAND_FLAG]
+COMMAND       ::= ["[" COMMAND_FLAGS "]"] TARGET COMMAND [ARG]
+COMMANDS      ::= COMMAND [,COMMANDS]
+INTERVAL      ::= START[-END] COMMANDS
+INTERVALS     ::= INTERVAL[;INTERVALS]
+
+ + +

31.7.2 Examples

+ +
    +
  • +Specify audio tempo change at second 4: +
     
    asendcmd=c='4.0 atempo tempo 1.5',atempo
    +
    + +
  • +Specify a list of drawtext and hue commands in a file. +
     
    # show text in the interval 5-10
    +5.0-10.0 [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=hello world',
    +         [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=';
    +
    +# desaturate the image in the interval 15-20
    +15.0-20.0 [enter] hue s 0,
    +          [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=nocolor',
    +          [leave] hue s 1,
    +          [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=color';
    +
    +# apply an exponential saturation fade-out effect, starting from time 25
    +25 [enter] hue s exp(25-t)
    +
    + +

    A filtergraph allowing to read and process the above command list +stored in a file ‘test.cmd’, can be specified with: +

     
    sendcmd=f=test.cmd,drawtext=fontfile=FreeSerif.ttf:text='',hue
    +
    +
+ +

+

+

31.8 setpts, asetpts

+ +

Change the PTS (presentation timestamp) of the input frames. +

+

setpts works on video frames, asetpts on audio frames. +

+

This filter accepts the following options: +

+
+
expr
+

The expression which is evaluated for each frame to construct its timestamp. +

+
+
+ +

The expression is evaluated through the eval API and can contain the following +constants: +

+
+
FRAME_RATE
+

frame rate, only defined for constant frame-rate video +

+
+
PTS
+

The presentation timestamp in input +

+
+
N
+

The count of the input frame for video or the number of consumed samples, +not including the current frame for audio, starting from 0. +

+
+
NB_CONSUMED_SAMPLES
+

The number of consumed samples, not including the current frame (only +audio) +

+
+
NB_SAMPLES, S
+

The number of samples in the current frame (only audio) +

+
+
SAMPLE_RATE, SR
+

The audio sample rate. +

+
+
STARTPTS
+

The PTS of the first frame. +

+
+
STARTT
+

the time in seconds of the first frame +

+
+
INTERLACED
+

State whether the current frame is interlaced. +

+
+
T
+

the time in seconds of the current frame +

+
+
POS
+

original position in the file of the frame, or undefined if undefined +for the current frame +

+
+
PREV_INPTS
+

The previous input PTS. +

+
+
PREV_INT
+

previous input time in seconds +

+
+
PREV_OUTPTS
+

The previous output PTS. +

+
+
PREV_OUTT
+

previous output time in seconds +

+
+
RTCTIME
+

The wallclock (RTC) time in microseconds.. This is deprecated, use time(0) +instead. +

+
+
RTCSTART
+

The wallclock (RTC) time at the start of the movie in microseconds. +

+
+
TB
+

The timebase of the input timestamps. +

+
+
+ + +

31.8.1 Examples

+ +
    +
  • +Start counting PTS from zero +
     
    setpts=PTS-STARTPTS
    +
    + +
  • +Apply fast motion effect: +
     
    setpts=0.5*PTS
    +
    + +
  • +Apply slow motion effect: +
     
    setpts=2.0*PTS
    +
    + +
  • +Set fixed rate of 25 frames per second: +
     
    setpts=N/(25*TB)
    +
    + +
  • +Set fixed rate 25 fps with some jitter: +
     
    setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'
    +
    + +
  • +Apply an offset of 10 seconds to the input PTS: +
     
    setpts=PTS+10/TB
    +
    + +
  • +Generate timestamps from a "live source" and rebase onto the current timebase: +
     
    setpts='(RTCTIME - RTCSTART) / (TB * 1000000)'
    +
    + +
  • +Generate timestamps by counting samples: +
     
    asetpts=N/SR/TB
    +
    + +
+ + +

31.9 settb, asettb

+ +

Set the timebase to use for the output frames timestamps. +It is mainly useful for testing timebase configuration. +

+

It accepts the following parameters: +

+
+
expr, tb
+

The expression which is evaluated into the output timebase. +

+
+
+ +

The value for ‘tb’ is an arithmetic expression representing a +rational. The expression can contain the constants "AVTB" (the default +timebase), "intb" (the input timebase) and "sr" (the sample rate, +audio only). Default value is "intb". +

+ +

31.9.1 Examples

+ +
    +
  • +Set the timebase to 1/25: +
     
    settb=expr=1/25
    +
    + +
  • +Set the timebase to 1/10: +
     
    settb=expr=0.1
    +
    + +
  • +Set the timebase to 1001/1000: +
     
    settb=1+0.001
    +
    + +
  • +Set the timebase to 2*intb: +
     
    settb=2*intb
    +
    + +
  • +Set the default timebase value: +
     
    settb=AVTB
    +
    +
+ + +

31.10 showspectrum

+ +

Convert input audio to a video output, representing the audio frequency +spectrum. +

+

The filter accepts the following options: +

+
+
size, s
+

Specify the video size for the output. For the syntax of this option, check +the "Video size" section in the ffmpeg-utils manual. Default value is +640x512. +

+
+
slide
+

Specify if the spectrum should slide along the window. Default value is +0. +

+
+
mode
+

Specify display mode. +

+

It accepts the following values: +

+
combined
+

all channels are displayed in the same row +

+
separate
+

all channels are displayed in separate rows +

+
+ +

Default value is ‘combined’. +

+
+
color
+

Specify display color mode. +

+

It accepts the following values: +

+
channel
+

each channel is displayed in a separate color +

+
intensity
+

each channel is is displayed using the same color scheme +

+
+ +

Default value is ‘channel’. +

+
+
scale
+

Specify scale used for calculating intensity color values. +

+

It accepts the following values: +

+
lin
+

linear +

+
sqrt
+

square root, default +

+
cbrt
+

cubic root +

+
log
+

logarithmic +

+
+ +

Default value is ‘sqrt’. +

+
+
saturation
+

Set saturation modifier for displayed colors. Negative values provide +alternative color scheme. 0 is no saturation at all. +Saturation must be in [-10.0, 10.0] range. +Default value is 1. +

+
+
win_func
+

Set window function. +

+

It accepts the following values: +

+
none
+

No samples pre-processing (do not expect this to be faster) +

+
hann
+

Hann window +

+
hamming
+

Hamming window +

+
blackman
+

Blackman window +

+
+ +

Default value is hann. +

+
+ +

The usage is very similar to the showwaves filter; see the examples in that +section. +

+ +

31.10.1 Examples

+ +
    +
  • +Large window with logarithmic color scaling: +
     
    showspectrum=s=1280x480:scale=log
    +
    + +
  • +Complete example for a colored and sliding spectrum per channel using ffplay: +
     
    ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
    +             [a] showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt [out0]'
    +
    +
+ + +

31.11 showwaves

+ +

Convert input audio to a video output, representing the samples waves. +

+

The filter accepts the following options: +

+
+
size, s
+

Specify the video size for the output. For the syntax of this option, check +the "Video size" section in the ffmpeg-utils manual. Default value +is "600x240". +

+
+
mode
+

Set display mode. +

+

Available values are: +

+
point
+

Draw a point for each sample. +

+
+
line
+

Draw a vertical line for each sample. +

+
+ +

Default value is point. +

+
+
n
+

Set the number of samples which are printed on the same column. A +larger value will decrease the frame rate. Must be a positive +integer. This option can be set only if the value for rate +is not explicitly specified. +

+
+
rate, r
+

Set the (approximate) output frame rate. This is done by setting the +option n. Default value is "25". +

+
+
+ + +

31.11.1 Examples

+ +
    +
  • +Output the input file audio and the corresponding video representation +at the same time: +
     
    amovie=a.mp3,asplit[out0],showwaves[out1]
    +
    + +
  • +Create a synthetic signal and show it with showwaves, forcing a +frame rate of 30 frames per second: +
     
    aevalsrc=sin(1*2*PI*t)*sin(880*2*PI*t):cos(2*PI*200*t),asplit[out0],showwaves=r=30[out1]
    +
    +
+ + +

31.12 split, asplit

+ +

Split input into several identical outputs. +

+

asplit works with audio input, split with video. +

+

The filter accepts a single parameter which specifies the number of outputs. If +unspecified, it defaults to 2. +

+ +

31.12.1 Examples

+ +
    +
  • +Create two separate outputs from the same input: +
     
    [in] split [out0][out1]
    +
    + +
  • +To create 3 or more outputs, you need to specify the number of +outputs, like in: +
     
    [in] asplit=3 [out0][out1][out2]
    +
    + +
  • +Create two separate outputs from the same input, one cropped and +one padded: +
     
    [in] split [splitout1][splitout2];
    +[splitout1] crop=100:100:0:0    [cropout];
    +[splitout2] pad=200:200:100:100 [padout];
    +
    + +
  • +Create 5 copies of the input audio with ffmpeg: +
     
    ffmpeg -i INPUT -filter_complex asplit=5 OUTPUT
    +
    +
+ + +

31.13 zmq, azmq

+ +

Receive commands sent through a libzmq client, and forward them to +filters in the filtergraph. +

+

zmq and azmq work as a pass-through filters. zmq +must be inserted between two video filters, azmq between two +audio filters. +

+

To enable these filters you need to install the libzmq library and +headers and configure FFmpeg with --enable-libzmq. +

+

For more information about libzmq see: +http://www.zeromq.org/ +

+

The zmq and azmq filters work as a libzmq server, which +receives messages sent through a network interface defined by the +‘bind_address’ option. +

+

The received message must be in the form: +

 
TARGET COMMAND [ARG]
+
+ +

TARGET specifies the target of the command, usually the name of +the filter class or a specific filter instance name. +

+

COMMAND specifies the name of the command for the target filter. +

+

ARG is optional and specifies the optional argument list for the +given COMMAND. +

+

Upon reception, the message is processed and the corresponding command +is injected into the filtergraph. Depending on the result, the filter +will send a reply to the client, adopting the format: +

 
ERROR_CODE ERROR_REASON
+MESSAGE
+
+ +

MESSAGE is optional. +

+ +

31.13.1 Examples

+ +

Look at ‘tools/zmqsend’ for an example of a zmq client which can +be used to send commands processed by these filters. +

+

Consider the following filtergraph generated by ffplay +

 
ffplay -dumpgraph 1 -f lavfi "
+color=s=100x100:c=red  [l];
+color=s=100x100:c=blue [r];
+nullsrc=s=200x100, zmq [bg];
+[bg][l]   overlay      [bg+l];
+[bg+l][r] overlay=x=100 "
+
+ +

To change the color of the left side of the video, the following +command can be used: +

 
echo Parsed_color_0 c yellow | tools/zmqsend
+
+ +

To change the right side: +

 
echo Parsed_color_1 c pink | tools/zmqsend
+
+ + + +

32. Multimedia Sources

+ +

Below is a description of the currently available multimedia sources. +

+ +

32.1 amovie

+ +

This is the same as movie source, except it selects an audio +stream by default. +

+

+

+

32.2 movie

+ +

Read audio and/or video stream(s) from a movie container. +

+

It accepts the following parameters: +

+
+
filename
+

The name of the resource to read (not necessarily a file; it can also be a +device or a stream accessed through some protocol). +

+
+
format_name, f
+

Specifies the format assumed for the movie to read, and can be either +the name of a container or an input device. If not specified, the +format is guessed from movie_name or by probing. +

+
+
seek_point, sp
+

Specifies the seek point in seconds. The frames will be output +starting from this seek point. The parameter is evaluated with +av_strtod, so the numerical value may be suffixed by an IS +postfix. The default value is "0". +

+
+
streams, s
+

Specifies the streams to read. Several streams can be specified, +separated by "+". The source will then have as many outputs, in the +same order. The syntax is explained in the “Stream specifiers” +section in the ffmpeg manual. Two special names, "dv" and "da" specify +respectively the default (best suited) video and audio stream. Default +is "dv", or "da" if the filter is called as "amovie". +

+
+
stream_index, si
+

Specifies the index of the video stream to read. If the value is -1, +the most suitable video stream will be automatically selected. The default +value is "-1". Deprecated. If the filter is called "amovie", it will select +audio instead of video. +

+
+
loop
+

Specifies how many times to read the stream in sequence. +If the value is less than 1, the stream will be read again and again. +Default value is "1". +

+

Note that when the movie is looped the source timestamps are not +changed, so it will generate non monotonically increasing timestamps. +

+
+ +

It allows overlaying a second video on top of the main input of +a filtergraph, as shown in this graph: +

 
input -----------> deltapts0 --> overlay --> output
+                                    ^
+                                    |
+movie --> scale--> deltapts1 -------+
+
+ +

32.2.1 Examples

+ +
    +
  • +Skip 3.2 seconds from the start of the AVI file in.avi, and overlay it +on top of the input labelled "in": +
     
    movie=in.avi:seek_point=3.2, scale=180:-1, setpts=PTS-STARTPTS [over];
    +[in] setpts=PTS-STARTPTS [main];
    +[main][over] overlay=16:16 [out]
    +
    + +
  • +Read from a video4linux2 device, and overlay it on top of the input +labelled "in": +
     
    movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [over];
    +[in] setpts=PTS-STARTPTS [main];
    +[main][over] overlay=16:16 [out]
    +
    + +
  • +Read the first video stream and the audio stream with id 0x81 from +dvd.vob; the video is connected to the pad named "video" and the audio is +connected to the pad named "audio": +
     
    movie=dvd.vob:s=v:0+#0x81 [video] [audio]
    +
    +
+ + + +

33. See Also

+ +

ffplay, +ffmpeg, ffprobe, ffserver, +ffmpeg-utils, +ffmpeg-scaler, +ffmpeg-resampler, +ffmpeg-codecs, +ffmpeg-bitstream-filters, +ffmpeg-formats, +ffmpeg-devices, +ffmpeg-protocols, +ffmpeg-filters +

+ + +

34. Authors

+ +

The FFmpeg developers. +

+

For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +git log in the FFmpeg source directory, or browsing the +online repository at http://source.ffmpeg.org. +

+

Maintainers for the specific components are listed in the file +‘MAINTAINERS’ in the source code tree. +

+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/ffplay.html b/3-Postprocessing/ffmpeg/doc/ffplay.html new file mode 100644 index 0000000..0ebb171 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/ffplay.html @@ -0,0 +1,688 @@ + + + + + +FFmpeg documentation : ffplay + + + + + + + + + + +
+
+ + +

ffplay Documentation

+ + +

Table of Contents

+ + + +

1. Synopsis

+ +

ffplay [options] [‘input_file’] +

+ +

2. Description

+ +

FFplay is a very simple and portable media player using the FFmpeg +libraries and the SDL library. It is mostly used as a testbed for the +various FFmpeg APIs. +

+ +

3. Options

+ +

All the numerical options, if not specified otherwise, accept a string +representing a number as input, which may be followed by one of the SI +unit prefixes, for example: ’K’, ’M’, or ’G’. +

+

If ’i’ is appended to the SI unit prefix, the complete prefix will be +interpreted as a unit prefix for binary multiplies, which are based on +powers of 1024 instead of powers of 1000. Appending ’B’ to the SI unit +prefix multiplies the value by 8. This allows using, for example: +’KB’, ’MiB’, ’G’ and ’B’ as number suffixes. +

+

Options which do not take arguments are boolean options, and set the +corresponding value to true. They can be set to false by prefixing +the option name with "no". For example using "-nofoo" +will set the boolean option with name "foo" to false. +

+

+

+

3.1 Stream specifiers

+

Some options are applied per-stream, e.g. bitrate or codec. Stream specifiers +are used to precisely specify which stream(s) a given option belongs to. +

+

A stream specifier is a string generally appended to the option name and +separated from it by a colon. E.g. -codec:a:1 ac3 contains the +a:1 stream specifier, which matches the second audio stream. Therefore, it +would select the ac3 codec for the second audio stream. +

+

A stream specifier can match several streams, so that the option is applied to all +of them. E.g. the stream specifier in -b:a 128k matches all audio +streams. +

+

An empty stream specifier matches all streams. For example, -codec copy +or -codec: copy would copy all the streams without reencoding. +

+

Possible forms of stream specifiers are: +

+
stream_index
+

Matches the stream with this index. E.g. -threads:1 4 would set the +thread count for the second stream to 4. +

+
stream_type[:stream_index]
+

stream_type is one of following: ’v’ for video, ’a’ for audio, ’s’ for subtitle, +’d’ for data, and ’t’ for attachments. If stream_index is given, then it matches +stream number stream_index of this type. Otherwise, it matches all +streams of this type. +

+
p:program_id[:stream_index]
+

If stream_index is given, then it matches the stream with number stream_index +in the program with the id program_id. Otherwise, it matches all streams in the +program. +

+
#stream_id or i:stream_id
+

Match the stream by stream id (e.g. PID in MPEG-TS container). +

+
+ + +

3.2 Generic options

+ +

These options are shared amongst the ff* tools. +

+
+
-L
+

Show license. +

+
+
-h, -?, -help, --help [arg]
+

Show help. An optional parameter may be specified to print help about a specific +item. If no argument is specified, only basic (non advanced) tool +options are shown. +

+

Possible values of arg are: +

+
long
+

Print advanced tool options in addition to the basic tool options. +

+
+
full
+

Print complete list of options, including shared and private options +for encoders, decoders, demuxers, muxers, filters, etc. +

+
+
decoder=decoder_name
+

Print detailed information about the decoder named decoder_name. Use the +‘-decoders’ option to get a list of all decoders. +

+
+
encoder=encoder_name
+

Print detailed information about the encoder named encoder_name. Use the +‘-encoders’ option to get a list of all encoders. +

+
+
demuxer=demuxer_name
+

Print detailed information about the demuxer named demuxer_name. Use the +‘-formats’ option to get a list of all demuxers and muxers. +

+
+
muxer=muxer_name
+

Print detailed information about the muxer named muxer_name. Use the +‘-formats’ option to get a list of all muxers and demuxers. +

+
+
filter=filter_name
+

Print detailed information about the filter name filter_name. Use the +‘-filters’ option to get a list of all filters. +

+
+ +
+
-version
+

Show version. +

+
+
-formats
+

Show available formats. +

+
+
-codecs
+

Show all codecs known to libavcodec. +

+

Note that the term ’codec’ is used throughout this documentation as a shortcut +for what is more correctly called a media bitstream format. +

+
+
-decoders
+

Show available decoders. +

+
+
-encoders
+

Show all available encoders. +

+
+
-bsfs
+

Show available bitstream filters. +

+
+
-protocols
+

Show available protocols. +

+
+
-filters
+

Show available libavfilter filters. +

+
+
-pix_fmts
+

Show available pixel formats. +

+
+
-sample_fmts
+

Show available sample formats. +

+
+
-layouts
+

Show channel names and standard channel layouts. +

+
+
-colors
+

Show recognized color names. +

+
+
-loglevel [repeat+]loglevel | -v [repeat+]loglevel
+

Set the logging level used by the library. +Adding "repeat+" indicates that repeated log output should not be compressed +to the first line and the "Last message repeated n times" line will be +omitted. "repeat" can also be used alone. +If "repeat" is used alone, and with no prior loglevel set, the default +loglevel will be used. If multiple loglevel parameters are given, using +’repeat’ will not change the loglevel. +loglevel is a number or a string containing one of the following values: +

+
quiet
+

Show nothing at all; be silent. +

+
panic
+

Only show fatal errors which could lead the process to crash, such as +and assert failure. This is not currently used for anything. +

+
fatal
+

Only show fatal errors. These are errors after which the process absolutely +cannot continue after. +

+
error
+

Show all errors, including ones which can be recovered from. +

+
warning
+

Show all warnings and errors. Any message related to possibly +incorrect or unexpected events will be shown. +

+
info
+

Show informative messages during processing. This is in addition to +warnings and errors. This is the default value. +

+
verbose
+

Same as info, except more verbose. +

+
debug
+

Show everything, including debugging information. +

+
+ +

By default the program logs to stderr, if coloring is supported by the +terminal, colors are used to mark errors and warnings. Log coloring +can be disabled setting the environment variable +AV_LOG_FORCE_NOCOLOR or NO_COLOR, or can be forced setting +the environment variable AV_LOG_FORCE_COLOR. +The use of the environment variable NO_COLOR is deprecated and +will be dropped in a following FFmpeg version. +

+
+
-report
+

Dump full command line and console output to a file named +program-YYYYMMDD-HHMMSS.log in the current +directory. +This file can be useful for bug reports. +It also implies -loglevel verbose. +

+

Setting the environment variable FFREPORT to any value has the +same effect. If the value is a ’:’-separated key=value sequence, these +options will affect the report; options values must be escaped if they +contain special characters or the options delimiter ’:’ (see the +“Quoting and escaping” section in the ffmpeg-utils manual). The +following option is recognized: +

+
file
+

set the file name to use for the report; %p is expanded to the name +of the program, %t is expanded to a timestamp, %% is expanded +to a plain % +

+
+ +

Errors in parsing the environment variable are not fatal, and will not +appear in the report. +

+
+
-hide_banner
+

Suppress printing banner. +

+

All FFmpeg tools will normally show a copyright notice, build options +and library versions. This option can be used to suppress printing +this information. +

+
+
-cpuflags flags (global)
+

Allows setting and clearing cpu flags. This option is intended +for testing. Do not use it unless you know what you’re doing. +

 
ffmpeg -cpuflags -sse+mmx ...
+ffmpeg -cpuflags mmx ...
+ffmpeg -cpuflags 0 ...
+
+

Possible flags for this option are: +

+
x86
+
+
mmx
+
mmxext
+
sse
+
sse2
+
sse2slow
+
sse3
+
sse3slow
+
ssse3
+
atom
+
sse4.1
+
sse4.2
+
avx
+
xop
+
fma4
+
3dnow
+
3dnowext
+
cmov
+
+
+
ARM
+
+
armv5te
+
armv6
+
armv6t2
+
vfp
+
vfpv3
+
neon
+
+
+
PowerPC
+
+
altivec
+
+
+
Specific Processors
+
+
pentium2
+
pentium3
+
pentium4
+
k6
+
k62
+
athlon
+
athlonxp
+
k8
+
+
+
+ +
+
-opencl_bench
+

Benchmark all available OpenCL devices and show the results. This option +is only available when FFmpeg has been compiled with --enable-opencl. +

+
+
-opencl_options options (global)
+

Set OpenCL environment options. This option is only available when +FFmpeg has been compiled with --enable-opencl. +

+

options must be a list of key=value option pairs +separated by ’:’. See the “OpenCL Options” section in the +ffmpeg-utils manual for the list of supported options. +

+
+ + +

3.3 AVOptions

+ +

These options are provided directly by the libavformat, libavdevice and +libavcodec libraries. To see the list of available AVOptions, use the +‘-help’ option. They are separated into two categories: +

+
generic
+

These options can be set for any container, codec or device. Generic options +are listed under AVFormatContext options for containers/devices and under +AVCodecContext options for codecs. +

+
private
+

These options are specific to the given container, device or codec. Private +options are listed under their corresponding containers/devices/codecs. +

+
+ +

For example to write an ID3v2.3 header instead of a default ID3v2.4 to +an MP3 file, use the ‘id3v2_version’ private option of the MP3 +muxer: +

 
ffmpeg -i input.flac -id3v2_version 3 out.mp3
+
+ +

All codec AVOptions are per-stream, and thus a stream specifier +should be attached to them. +

+

Note: the ‘-nooption’ syntax cannot be used for boolean +AVOptions, use ‘-option 0’/‘-option 1’. +

+

Note: the old undocumented way of specifying per-stream AVOptions by +prepending v/a/s to the options name is now obsolete and will be +removed soon. +

+ +

3.4 Main options

+ +
+
-x width
+

Force displayed width. +

+
-y height
+

Force displayed height. +

+
-s size
+

Set frame size (WxH or abbreviation), needed for videos which do +not contain a header with the frame size like raw YUV. This option +has been deprecated in favor of private options, try -video_size. +

+
-an
+

Disable audio. +

+
-vn
+

Disable video. +

+
-ss pos
+

Seek to a given position in seconds. +

+
-t duration
+

play <duration> seconds of audio/video +

+
-bytes
+

Seek by bytes. +

+
-nodisp
+

Disable graphical display. +

+
-f fmt
+

Force format. +

+
-window_title title
+

Set window title (default is the input filename). +

+
-loop number
+

Loops movie playback <number> times. 0 means forever. +

+
-showmode mode
+

Set the show mode to use. +Available values for mode are: +

+
0, video
+

show video +

+
1, waves
+

show audio waves +

+
2, rdft
+

show audio frequency band using RDFT ((Inverse) Real Discrete Fourier Transform) +

+
+ +

Default value is "video", if video is not present or cannot be played +"rdft" is automatically selected. +

+

You can interactively cycle through the available show modes by +pressing the key <w>. +

+
+
-vf filtergraph
+

Create the filtergraph specified by filtergraph and use it to +filter the video stream. +

+

filtergraph is a description of the filtergraph to apply to +the stream, and must have a single video input and a single video +output. In the filtergraph, the input is associated to the label +in, and the output to the label out. See the +ffmpeg-filters manual for more information about the filtergraph +syntax. +

+
+
-af filtergraph
+

filtergraph is a description of the filtergraph to apply to +the input audio. +Use the option "-filters" to show all the available filters (including +sources and sinks). +

+
+
-i input_file
+

Read input_file. +

+
+ + +

3.5 Advanced options

+
+
-pix_fmt format
+

Set pixel format. +This option has been deprecated in favor of private options, try -pixel_format. +

+
+
-stats
+

Print several playback statistics, in particular show the stream +duration, the codec parameters, the current position in the stream and +the audio/video synchronisation drift. It is on by default, to +explicitly disable it you need to specify -nostats. +

+
+
-bug
+

Work around bugs. +

+
-fast
+

Non-spec-compliant optimizations. +

+
-genpts
+

Generate pts. +

+
-rtp_tcp
+

Force RTP/TCP protocol usage instead of RTP/UDP. It is only meaningful +if you are streaming with the RTSP protocol. +

+
-sync type
+

Set the master clock to audio (type=audio), video +(type=video) or external (type=ext). Default is audio. The +master clock is used to control audio-video synchronization. Most media +players use audio as master clock, but in some cases (streaming or high +quality broadcast) it is necessary to change that. This option is mainly +used for debugging purposes. +

+
-threads count
+

Set the thread count. +

+
-ast audio_stream_number
+

Select the desired audio stream number, counting from 0. The number +refers to the list of all the input audio streams. If it is greater +than the number of audio streams minus one, then the last one is +selected, if it is negative the audio playback is disabled. +

+
-vst video_stream_number
+

Select the desired video stream number, counting from 0. The number +refers to the list of all the input video streams. If it is greater +than the number of video streams minus one, then the last one is +selected, if it is negative the video playback is disabled. +

+
-sst subtitle_stream_number
+

Select the desired subtitle stream number, counting from 0. The number +refers to the list of all the input subtitle streams. If it is greater +than the number of subtitle streams minus one, then the last one is +selected, if it is negative the subtitle rendering is disabled. +

+
-autoexit
+

Exit when video is done playing. +

+
-exitonkeydown
+

Exit if any key is pressed. +

+
-exitonmousedown
+

Exit if any mouse button is pressed. +

+
+
-codec:media_specifier codec_name
+

Force a specific decoder implementation for the stream identified by +media_specifier, which can assume the values a (audio), +v (video), and s subtitle. +

+
+
-acodec codec_name
+

Force a specific audio decoder. +

+
+
-vcodec codec_name
+

Force a specific video decoder. +

+
+
-scodec codec_name
+

Force a specific subtitle decoder. +

+
+ + +

3.6 While playing

+ +
+
<q, ESC>
+

Quit. +

+
+
<f>
+

Toggle full screen. +

+
+
<p, SPC>
+

Pause. +

+
+
<a>
+

Cycle audio channel in the curret program. +

+
+
<v>
+

Cycle video channel. +

+
+
<t>
+

Cycle subtitle channel in the current program. +

+
+
<c>
+

Cycle program. +

+
+
<w>
+

Show audio waves. +

+
+
<s>
+

Step to the next frame. +

+

Pause if the stream is not already paused, step to the next video +frame, and pause. +

+
+
<left/right>
+

Seek backward/forward 10 seconds. +

+
+
<down/up>
+

Seek backward/forward 1 minute. +

+
+
<page down/page up>
+

Seek to the previous/next chapter. +or if there are no chapters +Seek backward/forward 10 minutes. +

+
+
<mouse click>
+

Seek to percentage in file corresponding to fraction of width. +

+
+
+ + + + +

4. See Also

+ +

ffmpeg-all, +ffmpeg, ffprobe, ffserver, +ffmpeg-utils, +ffmpeg-scaler, +ffmpeg-resampler, +ffmpeg-codecs, +ffmpeg-bitstream-filters, +ffmpeg-formats, +ffmpeg-devices, +ffmpeg-protocols, +ffmpeg-filters +

+ + +

5. Authors

+ +

The FFmpeg developers. +

+

For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +git log in the FFmpeg source directory, or browsing the +online repository at http://source.ffmpeg.org. +

+

Maintainers for the specific components are listed in the file +‘MAINTAINERS’ in the source code tree. +

+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/ffprobe-all.html b/3-Postprocessing/ffmpeg/doc/ffprobe-all.html new file mode 100644 index 0000000..b8b29cc --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/ffprobe-all.html @@ -0,0 +1,19591 @@ + + + + + +FFmpeg documentation : ffprobe + + + + + + + + + + +
+
+ + +

ffprobe Documentation

+ + +

Table of Contents

+
+ + +
+ + +

1. Synopsis

+ +

ffprobe [options] [‘input_file’] +

+ +

2. Description

+ +

ffprobe gathers information from multimedia streams and prints it in +human- and machine-readable fashion. +

+

For example it can be used to check the format of the container used +by a multimedia stream and the format and type of each media stream +contained in it. +

+

If a filename is specified in input, ffprobe will try to open and +probe the file content. If the file cannot be opened or recognized as +a multimedia file, a positive exit code is returned. +

+

ffprobe may be employed both as a standalone application or in +combination with a textual filter, which may perform more +sophisticated processing, e.g. statistical processing or plotting. +

+

Options are used to list some of the formats supported by ffprobe or +for specifying which information to display, and for setting how +ffprobe will show it. +

+

ffprobe output is designed to be easily parsable by a textual filter, +and consists of one or more sections of a form defined by the selected +writer, which is specified by the ‘print_format’ option. +

+

Sections may contain other nested sections, and are identified by a +name (which may be shared by other sections), and an unique +name. See the output of ‘sections’. +

+

Metadata tags stored in the container or in the streams are recognized +and printed in the corresponding "FORMAT", "STREAM" or "PROGRAM_STREAM" +section. +

+ + +

3. Options

+ +

All the numerical options, if not specified otherwise, accept a string +representing a number as input, which may be followed by one of the SI +unit prefixes, for example: ’K’, ’M’, or ’G’. +

+

If ’i’ is appended to the SI unit prefix, the complete prefix will be +interpreted as a unit prefix for binary multiplies, which are based on +powers of 1024 instead of powers of 1000. Appending ’B’ to the SI unit +prefix multiplies the value by 8. This allows using, for example: +’KB’, ’MiB’, ’G’ and ’B’ as number suffixes. +

+

Options which do not take arguments are boolean options, and set the +corresponding value to true. They can be set to false by prefixing +the option name with "no". For example using "-nofoo" +will set the boolean option with name "foo" to false. +

+

+

+

3.1 Stream specifiers

+

Some options are applied per-stream, e.g. bitrate or codec. Stream specifiers +are used to precisely specify which stream(s) a given option belongs to. +

+

A stream specifier is a string generally appended to the option name and +separated from it by a colon. E.g. -codec:a:1 ac3 contains the +a:1 stream specifier, which matches the second audio stream. Therefore, it +would select the ac3 codec for the second audio stream. +

+

A stream specifier can match several streams, so that the option is applied to all +of them. E.g. the stream specifier in -b:a 128k matches all audio +streams. +

+

An empty stream specifier matches all streams. For example, -codec copy +or -codec: copy would copy all the streams without reencoding. +

+

Possible forms of stream specifiers are: +

+
stream_index
+

Matches the stream with this index. E.g. -threads:1 4 would set the +thread count for the second stream to 4. +

+
stream_type[:stream_index]
+

stream_type is one of following: ’v’ for video, ’a’ for audio, ’s’ for subtitle, +’d’ for data, and ’t’ for attachments. If stream_index is given, then it matches +stream number stream_index of this type. Otherwise, it matches all +streams of this type. +

+
p:program_id[:stream_index]
+

If stream_index is given, then it matches the stream with number stream_index +in the program with the id program_id. Otherwise, it matches all streams in the +program. +

+
#stream_id or i:stream_id
+

Match the stream by stream id (e.g. PID in MPEG-TS container). +

+
+ + +

3.2 Generic options

+ +

These options are shared amongst the ff* tools. +

+
+
-L
+

Show license. +

+
+
-h, -?, -help, --help [arg]
+

Show help. An optional parameter may be specified to print help about a specific +item. If no argument is specified, only basic (non advanced) tool +options are shown. +

+

Possible values of arg are: +

+
long
+

Print advanced tool options in addition to the basic tool options. +

+
+
full
+

Print complete list of options, including shared and private options +for encoders, decoders, demuxers, muxers, filters, etc. +

+
+
decoder=decoder_name
+

Print detailed information about the decoder named decoder_name. Use the +‘-decoders’ option to get a list of all decoders. +

+
+
encoder=encoder_name
+

Print detailed information about the encoder named encoder_name. Use the +‘-encoders’ option to get a list of all encoders. +

+
+
demuxer=demuxer_name
+

Print detailed information about the demuxer named demuxer_name. Use the +‘-formats’ option to get a list of all demuxers and muxers. +

+
+
muxer=muxer_name
+

Print detailed information about the muxer named muxer_name. Use the +‘-formats’ option to get a list of all muxers and demuxers. +

+
+
filter=filter_name
+

Print detailed information about the filter name filter_name. Use the +‘-filters’ option to get a list of all filters. +

+
+ +
+
-version
+

Show version. +

+
+
-formats
+

Show available formats. +

+
+
-codecs
+

Show all codecs known to libavcodec. +

+

Note that the term ’codec’ is used throughout this documentation as a shortcut +for what is more correctly called a media bitstream format. +

+
+
-decoders
+

Show available decoders. +

+
+
-encoders
+

Show all available encoders. +

+
+
-bsfs
+

Show available bitstream filters. +

+
+
-protocols
+

Show available protocols. +

+
+
-filters
+

Show available libavfilter filters. +

+
+
-pix_fmts
+

Show available pixel formats. +

+
+
-sample_fmts
+

Show available sample formats. +

+
+
-layouts
+

Show channel names and standard channel layouts. +

+
+
-colors
+

Show recognized color names. +

+
+
-loglevel [repeat+]loglevel | -v [repeat+]loglevel
+

Set the logging level used by the library. +Adding "repeat+" indicates that repeated log output should not be compressed +to the first line and the "Last message repeated n times" line will be +omitted. "repeat" can also be used alone. +If "repeat" is used alone, and with no prior loglevel set, the default +loglevel will be used. If multiple loglevel parameters are given, using +’repeat’ will not change the loglevel. +loglevel is a number or a string containing one of the following values: +

+
quiet
+

Show nothing at all; be silent. +

+
panic
+

Only show fatal errors which could lead the process to crash, such as +and assert failure. This is not currently used for anything. +

+
fatal
+

Only show fatal errors. These are errors after which the process absolutely +cannot continue after. +

+
error
+

Show all errors, including ones which can be recovered from. +

+
warning
+

Show all warnings and errors. Any message related to possibly +incorrect or unexpected events will be shown. +

+
info
+

Show informative messages during processing. This is in addition to +warnings and errors. This is the default value. +

+
verbose
+

Same as info, except more verbose. +

+
debug
+

Show everything, including debugging information. +

+
+ +

By default the program logs to stderr, if coloring is supported by the +terminal, colors are used to mark errors and warnings. Log coloring +can be disabled setting the environment variable +AV_LOG_FORCE_NOCOLOR or NO_COLOR, or can be forced setting +the environment variable AV_LOG_FORCE_COLOR. +The use of the environment variable NO_COLOR is deprecated and +will be dropped in a following FFmpeg version. +

+
+
-report
+

Dump full command line and console output to a file named +program-YYYYMMDD-HHMMSS.log in the current +directory. +This file can be useful for bug reports. +It also implies -loglevel verbose. +

+

Setting the environment variable FFREPORT to any value has the +same effect. If the value is a ’:’-separated key=value sequence, these +options will affect the report; options values must be escaped if they +contain special characters or the options delimiter ’:’ (see the +“Quoting and escaping” section in the ffmpeg-utils manual). The +following option is recognized: +

+
file
+

set the file name to use for the report; %p is expanded to the name +of the program, %t is expanded to a timestamp, %% is expanded +to a plain % +

+
+ +

Errors in parsing the environment variable are not fatal, and will not +appear in the report. +

+
+
-hide_banner
+

Suppress printing banner. +

+

All FFmpeg tools will normally show a copyright notice, build options +and library versions. This option can be used to suppress printing +this information. +

+
+
-cpuflags flags (global)
+

Allows setting and clearing cpu flags. This option is intended +for testing. Do not use it unless you know what you’re doing. +

 
ffmpeg -cpuflags -sse+mmx ...
+ffmpeg -cpuflags mmx ...
+ffmpeg -cpuflags 0 ...
+
+

Possible flags for this option are: +

+
x86
+
+
mmx
+
mmxext
+
sse
+
sse2
+
sse2slow
+
sse3
+
sse3slow
+
ssse3
+
atom
+
sse4.1
+
sse4.2
+
avx
+
xop
+
fma4
+
3dnow
+
3dnowext
+
cmov
+
+
+
ARM
+
+
armv5te
+
armv6
+
armv6t2
+
vfp
+
vfpv3
+
neon
+
+
+
PowerPC
+
+
altivec
+
+
+
Specific Processors
+
+
pentium2
+
pentium3
+
pentium4
+
k6
+
k62
+
athlon
+
athlonxp
+
k8
+
+
+
+ +
+
-opencl_bench
+

Benchmark all available OpenCL devices and show the results. This option +is only available when FFmpeg has been compiled with --enable-opencl. +

+
+
-opencl_options options (global)
+

Set OpenCL environment options. This option is only available when +FFmpeg has been compiled with --enable-opencl. +

+

options must be a list of key=value option pairs +separated by ’:’. See the “OpenCL Options” section in the +ffmpeg-utils manual for the list of supported options. +

+
+ + +

3.3 AVOptions

+ +

These options are provided directly by the libavformat, libavdevice and +libavcodec libraries. To see the list of available AVOptions, use the +‘-help’ option. They are separated into two categories: +

+
generic
+

These options can be set for any container, codec or device. Generic options +are listed under AVFormatContext options for containers/devices and under +AVCodecContext options for codecs. +

+
private
+

These options are specific to the given container, device or codec. Private +options are listed under their corresponding containers/devices/codecs. +

+
+ +

For example to write an ID3v2.3 header instead of a default ID3v2.4 to +an MP3 file, use the ‘id3v2_version’ private option of the MP3 +muxer: +

 
ffmpeg -i input.flac -id3v2_version 3 out.mp3
+
+ +

All codec AVOptions are per-stream, and thus a stream specifier +should be attached to them. +

+

Note: the ‘-nooption’ syntax cannot be used for boolean +AVOptions, use ‘-option 0’/‘-option 1’. +

+

Note: the old undocumented way of specifying per-stream AVOptions by +prepending v/a/s to the options name is now obsolete and will be +removed soon. +

+ +

3.4 Main options

+ +
+
-f format
+

Force format to use. +

+
+
-unit
+

Show the unit of the displayed values. +

+
+
-prefix
+

Use SI prefixes for the displayed values. +Unless the "-byte_binary_prefix" option is used all the prefixes +are decimal. +

+
+
-byte_binary_prefix
+

Force the use of binary prefixes for byte values. +

+
+
-sexagesimal
+

Use sexagesimal format HH:MM:SS.MICROSECONDS for time values. +

+
+
-pretty
+

Prettify the format of the displayed values, it corresponds to the +options "-unit -prefix -byte_binary_prefix -sexagesimal". +

+
+
-of, -print_format writer_name[=writer_options]
+

Set the output printing format. +

+

writer_name specifies the name of the writer, and +writer_options specifies the options to be passed to the writer. +

+

For example for printing the output in JSON format, specify: +

 
-print_format json
+
+ +

For more details on the available output printing formats, see the +Writers section below. +

+
+
-sections
+

Print sections structure and section information, and exit. The output +is not meant to be parsed by a machine. +

+
+
-select_streams stream_specifier
+

Select only the streams specified by stream_specifier. This +option affects only the options related to streams +(e.g. show_streams, show_packets, etc.). +

+

For example to show only audio streams, you can use the command: +

 
ffprobe -show_streams -select_streams a INPUT
+
+ +

To show only video packets belonging to the video stream with index 1: +

 
ffprobe -show_packets -select_streams v:1 INPUT
+
+ +
+
-show_data
+

Show payload data, as a hexadecimal and ASCII dump. Coupled with +‘-show_packets’, it will dump the packets’ data. Coupled with +‘-show_streams’, it will dump the codec extradata. +

+

The dump is printed as the "data" field. It may contain newlines. +

+
+
-show_error
+

Show information about the error found when trying to probe the input. +

+

The error information is printed within a section with name "ERROR". +

+
+
-show_format
+

Show information about the container format of the input multimedia +stream. +

+

All the container format information is printed within a section with +name "FORMAT". +

+
+
-show_format_entry name
+

Like ‘-show_format’, but only prints the specified entry of the +container format information, rather than all. This option may be given more +than once, then all specified entries will be shown. +

+

This option is deprecated, use show_entries instead. +

+
+
-show_entries section_entries
+

Set list of entries to show. +

+

Entries are specified according to the following +syntax. section_entries contains a list of section entries +separated by :. Each section entry is composed by a section +name (or unique name), optionally followed by a list of entries local +to that section, separated by ,. +

+

If section name is specified but is followed by no =, all +entries are printed to output, together with all the contained +sections. Otherwise only the entries specified in the local section +entries list are printed. In particular, if = is specified but +the list of local entries is empty, then no entries will be shown for +that section. +

+

Note that the order of specification of the local section entries is +not honored in the output, and the usual display order will be +retained. +

+

The formal syntax is given by: +

 
LOCAL_SECTION_ENTRIES ::= SECTION_ENTRY_NAME[,LOCAL_SECTION_ENTRIES]
+SECTION_ENTRY         ::= SECTION_NAME[=[LOCAL_SECTION_ENTRIES]]
+SECTION_ENTRIES       ::= SECTION_ENTRY[:SECTION_ENTRIES]
+
+ +

For example, to show only the index and type of each stream, and the PTS +time, duration time, and stream index of the packets, you can specify +the argument: +

 
packet=pts_time,duration_time,stream_index : stream=index,codec_type
+
+ +

To show all the entries in the section "format", but only the codec +type in the section "stream", specify the argument: +

 
format : stream=codec_type
+
+ +

To show all the tags in the stream and format sections: +

 
format_tags : format_tags
+
+ +

To show only the title tag (if available) in the stream +sections: +

 
stream_tags=title
+
+ +
+
-show_packets
+

Show information about each packet contained in the input multimedia +stream. +

+

The information for each single packet is printed within a dedicated +section with name "PACKET". +

+
+
-show_frames
+

Show information about each frame and subtitle contained in the input +multimedia stream. +

+

The information for each single frame is printed within a dedicated +section with name "FRAME" or "SUBTITLE". +

+
+
-show_streams
+

Show information about each media stream contained in the input +multimedia stream. +

+

Each media stream information is printed within a dedicated section +with name "STREAM". +

+
+
-show_programs
+

Show information about programs and their streams contained in the input +multimedia stream. +

+

Each media stream information is printed within a dedicated section +with name "PROGRAM_STREAM". +

+
+
-show_chapters
+

Show information about chapters stored in the format. +

+

Each chapter is printed within a dedicated section with name "CHAPTER". +

+
+
-count_frames
+

Count the number of frames per stream and report it in the +corresponding stream section. +

+
+
-count_packets
+

Count the number of packets per stream and report it in the +corresponding stream section. +

+
+
-read_intervals read_intervals
+
+

Read only the specified intervals. read_intervals must be a +sequence of interval specifications separated by ",". +ffprobe will seek to the interval starting point, and will +continue reading from that. +

+

Each interval is specified by two optional parts, separated by "%". +

+

The first part specifies the interval start position. It is +interpreted as an abolute position, or as a relative offset from the +current position if it is preceded by the "+" character. If this first +part is not specified, no seeking will be performed when reading this +interval. +

+

The second part specifies the interval end position. It is interpreted +as an absolute position, or as a relative offset from the current +position if it is preceded by the "+" character. If the offset +specification starts with "#", it is interpreted as the number of +packets to read (not including the flushing packets) from the interval +start. If no second part is specified, the program will read until the +end of the input. +

+

Note that seeking is not accurate, thus the actual interval start +point may be different from the specified position. Also, when an +interval duration is specified, the absolute end time will be computed +by adding the duration to the interval start point found by seeking +the file, rather than to the specified start value. +

+

The formal syntax is given by: +

 
INTERVAL  ::= [START|+START_OFFSET][%[END|+END_OFFSET]]
+INTERVALS ::= INTERVAL[,INTERVALS]
+
+ +

A few examples follow. +

    +
  • +Seek to time 10, read packets until 20 seconds after the found seek +point, then seek to position 01:30 (1 minute and thirty +seconds) and read packets until position 01:45. +
     
    10%+20,01:30%01:45
    +
    + +
  • +Read only 42 packets after seeking to position 01:23: +
     
    01:23%+#42
    +
    + +
  • +Read only the first 20 seconds from the start: +
     
    %+20
    +
    + +
  • +Read from the start until position 02:30: +
     
    %02:30
    +
    +
+ +
+
-show_private_data, -private
+

Show private data, that is data depending on the format of the +particular shown element. +This option is enabled by default, but you may need to disable it +for specific uses, for example when creating XSD-compliant XML output. +

+
+
-show_program_version
+

Show information related to program version. +

+

Version information is printed within a section with name +"PROGRAM_VERSION". +

+
+
-show_library_versions
+

Show information related to library versions. +

+

Version information for each library is printed within a section with +name "LIBRARY_VERSION". +

+
+
-show_versions
+

Show information related to program and library versions. This is the +equivalent of setting both ‘-show_program_version’ and +‘-show_library_versions’ options. +

+
+
-bitexact
+

Force bitexact output, useful to produce output which is not dependent +on the specific build. +

+
+
-i input_file
+

Read input_file. +

+
+
+ + +

4. Writers

+ +

A writer defines the output format adopted by ffprobe, and will be +used for printing all the parts of the output. +

+

A writer may accept one or more arguments, which specify the options +to adopt. The options are specified as a list of key=value +pairs, separated by ":". +

+

All writers support the following options: +

+
+
string_validation, sv
+

Set string validation mode. +

+

The following values are accepted. +

+
fail
+

The writer will fail immediately in case an invalid string (UTF-8) +sequence or code point is found in the input. This is especially +useful to validate input metadata. +

+
+
ignore
+

Any validation error will be ignored. This will result in possibly +broken output, especially with the json or xml writer. +

+
+
replace
+

The writer will substitute invalid UTF-8 sequences or code points with +the string specified with the ‘string_validation_replacement’. +

+
+ +

Default value is ‘replace’. +

+
+
string_validation_replacement, svr
+

Set replacement string to use in case ‘string_validation’ is +set to ‘replace’. +

+

In case the option is not specified, the writer will assume the empty +string, that is it will remove the invalid sequences from the input +strings. +

+
+ +

A description of the currently available writers follows. +

+ +

4.1 default

+

Default format. +

+

Print each section in the form: +

 
[SECTION]
+key1=val1
+...
+keyN=valN
+[/SECTION]
+
+ +

Metadata tags are printed as a line in the corresponding FORMAT, STREAM or +PROGRAM_STREAM section, and are prefixed by the string "TAG:". +

+

A description of the accepted options follows. +

+
+
nokey, nk
+

If set to 1 specify not to print the key of each field. Default value +is 0. +

+
+
noprint_wrappers, nw
+

If set to 1 specify not to print the section header and footer. +Default value is 0. +

+
+ + +

4.2 compact, csv

+

Compact and CSV format. +

+

The csv writer is equivalent to compact, but supports +different defaults. +

+

Each section is printed on a single line. +If no option is specifid, the output has the form: +

 
section|key1=val1| ... |keyN=valN
+
+ +

Metadata tags are printed in the corresponding "format" or "stream" +section. A metadata tag key, if printed, is prefixed by the string +"tag:". +

+

The description of the accepted options follows. +

+
+
item_sep, s
+

Specify the character to use for separating fields in the output line. +It must be a single printable character, it is "|" by default ("," for +the csv writer). +

+
+
nokey, nk
+

If set to 1 specify not to print the key of each field. Its default +value is 0 (1 for the csv writer). +

+
+
escape, e
+

Set the escape mode to use, default to "c" ("csv" for the csv +writer). +

+

It can assume one of the following values: +

+
c
+

Perform C-like escaping. Strings containing a newline (’\n’), carriage +return (’\r’), a tab (’\t’), a form feed (’\f’), the escaping +character (’\’) or the item separator character SEP are escaped using C-like fashioned +escaping, so that a newline is converted to the sequence "\n", a +carriage return to "\r", ’\’ to "\\" and the separator SEP is +converted to "\SEP". +

+
+
csv
+

Perform CSV-like escaping, as described in RFC4180. Strings +containing a newline (’\n’), a carriage return (’\r’), a double quote +(’"’), or SEP are enclosed in double-quotes. +

+
+
none
+

Perform no escaping. +

+
+ +
+
print_section, p
+

Print the section name at the begin of each line if the value is +1, disable it with value set to 0. Default value is +1. +

+
+
+ + +

4.3 flat

+

Flat format. +

+

A free-form output where each line contains an explicit key=value, such as +"streams.stream.3.tags.foo=bar". The output is shell escaped, so it can be +directly embedded in sh scripts as long as the separator character is an +alphanumeric character or an underscore (see sep_char option). +

+

The description of the accepted options follows. +

+
+
sep_char, s
+

Separator character used to separate the chapter, the section name, IDs and +potential tags in the printed field key. +

+

Default value is ’.’. +

+
+
hierarchical, h
+

Specify if the section name specification should be hierarchical. If +set to 1, and if there is more than one section in the current +chapter, the section name will be prefixed by the name of the +chapter. A value of 0 will disable this behavior. +

+

Default value is 1. +

+
+ + +

4.4 ini

+

INI format output. +

+

Print output in an INI based format. +

+

The following conventions are adopted: +

+
    +
  • +all key and values are UTF-8 +
  • +’.’ is the subgroup separator +
  • +newline, ’\t’, ’\f’, ’\b’ and the following characters are escaped +
  • +’\’ is the escape character +
  • +’#’ is the comment indicator +
  • +’=’ is the key/value separator +
  • +’:’ is not used but usually parsed as key/value separator +
+ +

This writer accepts options as a list of key=value pairs, +separated by ":". +

+

The description of the accepted options follows. +

+
+
hierarchical, h
+

Specify if the section name specification should be hierarchical. If +set to 1, and if there is more than one section in the current +chapter, the section name will be prefixed by the name of the +chapter. A value of 0 will disable this behavior. +

+

Default value is 1. +

+
+ + +

4.5 json

+

JSON based format. +

+

Each section is printed using JSON notation. +

+

The description of the accepted options follows. +

+
+
compact, c
+

If set to 1 enable compact output, that is each section will be +printed on a single line. Default value is 0. +

+
+ +

For more information about JSON, see http://www.json.org/. +

+ +

4.6 xml

+

XML based format. +

+

The XML output is described in the XML schema description file +‘ffprobe.xsd’ installed in the FFmpeg datadir. +

+

An updated version of the schema can be retrieved at the url +http://www.ffmpeg.org/schema/ffprobe.xsd, which redirects to the +latest schema committed into the FFmpeg development source code tree. +

+

Note that the output issued will be compliant to the +‘ffprobe.xsd’ schema only when no special global output options +(‘unit’, ‘prefix’, ‘byte_binary_prefix’, +‘sexagesimal’ etc.) are specified. +

+

The description of the accepted options follows. +

+
+
fully_qualified, q
+

If set to 1 specify if the output should be fully qualified. Default +value is 0. +This is required for generating an XML file which can be validated +through an XSD file. +

+
+
xsd_compliant, x
+

If set to 1 perform more checks for ensuring that the output is XSD +compliant. Default value is 0. +This option automatically sets ‘fully_qualified’ to 1. +

+
+ +

For more information about the XML format, see +http://www.w3.org/XML/. +

+ +

5. Timecode

+ +

ffprobe supports Timecode extraction: +

+
    +
  • +MPEG1/2 timecode is extracted from the GOP, and is available in the video +stream details (‘-show_streams’, see timecode). + +
  • +MOV timecode is extracted from tmcd track, so is available in the tmcd +stream metadata (‘-show_streams’, see TAG:timecode). + +
  • +DV, GXF and AVI timecodes are available in format metadata +(‘-show_format’, see TAG:timecode). + +
+ + +

6. Syntax

+ +

This section documents the syntax and formats employed by the FFmpeg +libraries and tools. +

+

+

+

6.1 Quoting and escaping

+ +

FFmpeg adopts the following quoting and escaping mechanism, unless +explicitly specified. The following rules are applied: +

+
    +
  • +' and \ are special characters (respectively used for +quoting and escaping). In addition to them, there might be other +special characters depending on the specific syntax where the escaping +and quoting are employed. + +
  • +A special character is escaped by prefixing it with a ’\’. + +
  • +All characters enclosed between ” are included literally in the +parsed string. The quote character ' itself cannot be quoted, +so you may need to close the quote and escape it. + +
  • +Leading and trailing whitespaces, unless escaped or quoted, are +removed from the parsed string. +
+ +

Note that you may need to add a second level of escaping when using +the command line or a script, which depends on the syntax of the +adopted shell language. +

+

The function av_get_token defined in +‘libavutil/avstring.h’ can be used to parse a token quoted or +escaped according to the rules defined above. +

+

The tool ‘tools/ffescape’ in the FFmpeg source tree can be used +to automatically quote or escape a string in a script. +

+ +

6.1.1 Examples

+ +
    +
  • +Escape the string Crime d'Amour containing the ' special +character: +
     
    Crime d\'Amour
    +
    + +
  • +The string above contains a quote, so the ' needs to be escaped +when quoting it: +
     
    'Crime d'\''Amour'
    +
    + +
  • +Include leading or trailing whitespaces using quoting: +
     
    '  this string starts and ends with whitespaces  '
    +
    + +
  • +Escaping and quoting can be mixed together: +
     
    ' The string '\'string\'' is a string '
    +
    + +
  • +To include a literal \ you can use either escaping or quoting: +
     
    'c:\foo' can be written as c:\\foo
    +
    +
+ +

+

+

6.2 Date

+ +

The accepted syntax is: +

 
[(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z]
+now
+
+ +

If the value is "now" it takes the current time. +

+

Time is local time unless Z is appended, in which case it is +interpreted as UTC. +If the year-month-day part is not specified it takes the current +year-month-day. +

+

+

+

6.3 Time duration

+ +

There are two accepted syntaxes for expressing time duration. +

+
 
[-][HH:]MM:SS[.m...]
+
+ +

HH expresses the number of hours, MM the number of minutes +for a maximum of 2 digits, and SS the number of seconds for a +maximum of 2 digits. The m at the end expresses decimal value for +SS. +

+

or +

+
 
[-]S+[.m...]
+
+ +

S expresses the number of seconds, with the optional decimal part +m. +

+

In both expressions, the optional ‘-’ indicates negative duration. +

+ +

6.3.1 Examples

+ +

The following examples are all valid time duration: +

+
+
55
+

55 seconds +

+
+
12:03:45
+

12 hours, 03 minutes and 45 seconds +

+
+
23.189
+

23.189 seconds +

+
+ +

+

+

6.4 Video size

+

Specify the size of the sourced video, it may be a string of the form +widthxheight, or the name of a size abbreviation. +

+

The following abbreviations are recognized: +

+
ntsc
+

720x480 +

+
pal
+

720x576 +

+
qntsc
+

352x240 +

+
qpal
+

352x288 +

+
sntsc
+

640x480 +

+
spal
+

768x576 +

+
film
+

352x240 +

+
ntsc-film
+

352x240 +

+
sqcif
+

128x96 +

+
qcif
+

176x144 +

+
cif
+

352x288 +

+
4cif
+

704x576 +

+
16cif
+

1408x1152 +

+
qqvga
+

160x120 +

+
qvga
+

320x240 +

+
vga
+

640x480 +

+
svga
+

800x600 +

+
xga
+

1024x768 +

+
uxga
+

1600x1200 +

+
qxga
+

2048x1536 +

+
sxga
+

1280x1024 +

+
qsxga
+

2560x2048 +

+
hsxga
+

5120x4096 +

+
wvga
+

852x480 +

+
wxga
+

1366x768 +

+
wsxga
+

1600x1024 +

+
wuxga
+

1920x1200 +

+
woxga
+

2560x1600 +

+
wqsxga
+

3200x2048 +

+
wquxga
+

3840x2400 +

+
whsxga
+

6400x4096 +

+
whuxga
+

7680x4800 +

+
cga
+

320x200 +

+
ega
+

640x350 +

+
hd480
+

852x480 +

+
hd720
+

1280x720 +

+
hd1080
+

1920x1080 +

+
2k
+

2048x1080 +

+
2kflat
+

1998x1080 +

+
2kscope
+

2048x858 +

+
4k
+

4096x2160 +

+
4kflat
+

3996x2160 +

+
4kscope
+

4096x1716 +

+
nhd
+

640x360 +

+
hqvga
+

240x160 +

+
wqvga
+

400x240 +

+
fwqvga
+

432x240 +

+
hvga
+

480x320 +

+
qhd
+

960x540 +

+
+ +

+

+

6.5 Video rate

+ +

Specify the frame rate of a video, expressed as the number of frames +generated per second. It has to be a string in the format +frame_rate_num/frame_rate_den, an integer number, a float +number or a valid video frame rate abbreviation. +

+

The following abbreviations are recognized: +

+
ntsc
+

30000/1001 +

+
pal
+

25/1 +

+
qntsc
+

30000/1001 +

+
qpal
+

25/1 +

+
sntsc
+

30000/1001 +

+
spal
+

25/1 +

+
film
+

24/1 +

+
ntsc-film
+

24000/1001 +

+
+ +

+

+

6.6 Ratio

+ +

A ratio can be expressed as an expression, or in the form +numerator:denominator. +

+

Note that a ratio with infinite (1/0) or negative value is +considered valid, so you should check on the returned value if you +want to exclude those values. +

+

The undefined value can be expressed using the "0:0" string. +

+

+

+

6.7 Color

+ +

It can be the name of a color as defined below (case insensitive match) or a +[0x|#]RRGGBB[AA] sequence, possibly followed by @ and a string +representing the alpha component. +

+

The alpha component may be a string composed by "0x" followed by an +hexadecimal number or a decimal number between 0.0 and 1.0, which +represents the opacity value (‘0x00’ or ‘0.0’ means completely +transparent, ‘0xff’ or ‘1.0’ completely opaque). If the alpha +component is not specified then ‘0xff’ is assumed. +

+

The string ‘random’ will result in a random color. +

+

The following names of colors are recognized: +

+
AliceBlue
+

0xF0F8FF +

+
AntiqueWhite
+

0xFAEBD7 +

+
Aqua
+

0x00FFFF +

+
Aquamarine
+

0x7FFFD4 +

+
Azure
+

0xF0FFFF +

+
Beige
+

0xF5F5DC +

+
Bisque
+

0xFFE4C4 +

+
Black
+

0x000000 +

+
BlanchedAlmond
+

0xFFEBCD +

+
Blue
+

0x0000FF +

+
BlueViolet
+

0x8A2BE2 +

+
Brown
+

0xA52A2A +

+
BurlyWood
+

0xDEB887 +

+
CadetBlue
+

0x5F9EA0 +

+
Chartreuse
+

0x7FFF00 +

+
Chocolate
+

0xD2691E +

+
Coral
+

0xFF7F50 +

+
CornflowerBlue
+

0x6495ED +

+
Cornsilk
+

0xFFF8DC +

+
Crimson
+

0xDC143C +

+
Cyan
+

0x00FFFF +

+
DarkBlue
+

0x00008B +

+
DarkCyan
+

0x008B8B +

+
DarkGoldenRod
+

0xB8860B +

+
DarkGray
+

0xA9A9A9 +

+
DarkGreen
+

0x006400 +

+
DarkKhaki
+

0xBDB76B +

+
DarkMagenta
+

0x8B008B +

+
DarkOliveGreen
+

0x556B2F +

+
Darkorange
+

0xFF8C00 +

+
DarkOrchid
+

0x9932CC +

+
DarkRed
+

0x8B0000 +

+
DarkSalmon
+

0xE9967A +

+
DarkSeaGreen
+

0x8FBC8F +

+
DarkSlateBlue
+

0x483D8B +

+
DarkSlateGray
+

0x2F4F4F +

+
DarkTurquoise
+

0x00CED1 +

+
DarkViolet
+

0x9400D3 +

+
DeepPink
+

0xFF1493 +

+
DeepSkyBlue
+

0x00BFFF +

+
DimGray
+

0x696969 +

+
DodgerBlue
+

0x1E90FF +

+
FireBrick
+

0xB22222 +

+
FloralWhite
+

0xFFFAF0 +

+
ForestGreen
+

0x228B22 +

+
Fuchsia
+

0xFF00FF +

+
Gainsboro
+

0xDCDCDC +

+
GhostWhite
+

0xF8F8FF +

+
Gold
+

0xFFD700 +

+
GoldenRod
+

0xDAA520 +

+
Gray
+

0x808080 +

+
Green
+

0x008000 +

+
GreenYellow
+

0xADFF2F +

+
HoneyDew
+

0xF0FFF0 +

+
HotPink
+

0xFF69B4 +

+
IndianRed
+

0xCD5C5C +

+
Indigo
+

0x4B0082 +

+
Ivory
+

0xFFFFF0 +

+
Khaki
+

0xF0E68C +

+
Lavender
+

0xE6E6FA +

+
LavenderBlush
+

0xFFF0F5 +

+
LawnGreen
+

0x7CFC00 +

+
LemonChiffon
+

0xFFFACD +

+
LightBlue
+

0xADD8E6 +

+
LightCoral
+

0xF08080 +

+
LightCyan
+

0xE0FFFF +

+
LightGoldenRodYellow
+

0xFAFAD2 +

+
LightGreen
+

0x90EE90 +

+
LightGrey
+

0xD3D3D3 +

+
LightPink
+

0xFFB6C1 +

+
LightSalmon
+

0xFFA07A +

+
LightSeaGreen
+

0x20B2AA +

+
LightSkyBlue
+

0x87CEFA +

+
LightSlateGray
+

0x778899 +

+
LightSteelBlue
+

0xB0C4DE +

+
LightYellow
+

0xFFFFE0 +

+
Lime
+

0x00FF00 +

+
LimeGreen
+

0x32CD32 +

+
Linen
+

0xFAF0E6 +

+
Magenta
+

0xFF00FF +

+
Maroon
+

0x800000 +

+
MediumAquaMarine
+

0x66CDAA +

+
MediumBlue
+

0x0000CD +

+
MediumOrchid
+

0xBA55D3 +

+
MediumPurple
+

0x9370D8 +

+
MediumSeaGreen
+

0x3CB371 +

+
MediumSlateBlue
+

0x7B68EE +

+
MediumSpringGreen
+

0x00FA9A +

+
MediumTurquoise
+

0x48D1CC +

+
MediumVioletRed
+

0xC71585 +

+
MidnightBlue
+

0x191970 +

+
MintCream
+

0xF5FFFA +

+
MistyRose
+

0xFFE4E1 +

+
Moccasin
+

0xFFE4B5 +

+
NavajoWhite
+

0xFFDEAD +

+
Navy
+

0x000080 +

+
OldLace
+

0xFDF5E6 +

+
Olive
+

0x808000 +

+
OliveDrab
+

0x6B8E23 +

+
Orange
+

0xFFA500 +

+
OrangeRed
+

0xFF4500 +

+
Orchid
+

0xDA70D6 +

+
PaleGoldenRod
+

0xEEE8AA +

+
PaleGreen
+

0x98FB98 +

+
PaleTurquoise
+

0xAFEEEE +

+
PaleVioletRed
+

0xD87093 +

+
PapayaWhip
+

0xFFEFD5 +

+
PeachPuff
+

0xFFDAB9 +

+
Peru
+

0xCD853F +

+
Pink
+

0xFFC0CB +

+
Plum
+

0xDDA0DD +

+
PowderBlue
+

0xB0E0E6 +

+
Purple
+

0x800080 +

+
Red
+

0xFF0000 +

+
RosyBrown
+

0xBC8F8F +

+
RoyalBlue
+

0x4169E1 +

+
SaddleBrown
+

0x8B4513 +

+
Salmon
+

0xFA8072 +

+
SandyBrown
+

0xF4A460 +

+
SeaGreen
+

0x2E8B57 +

+
SeaShell
+

0xFFF5EE +

+
Sienna
+

0xA0522D +

+
Silver
+

0xC0C0C0 +

+
SkyBlue
+

0x87CEEB +

+
SlateBlue
+

0x6A5ACD +

+
SlateGray
+

0x708090 +

+
Snow
+

0xFFFAFA +

+
SpringGreen
+

0x00FF7F +

+
SteelBlue
+

0x4682B4 +

+
Tan
+

0xD2B48C +

+
Teal
+

0x008080 +

+
Thistle
+

0xD8BFD8 +

+
Tomato
+

0xFF6347 +

+
Turquoise
+

0x40E0D0 +

+
Violet
+

0xEE82EE +

+
Wheat
+

0xF5DEB3 +

+
White
+

0xFFFFFF +

+
WhiteSmoke
+

0xF5F5F5 +

+
Yellow
+

0xFFFF00 +

+
YellowGreen
+

0x9ACD32 +

+
+ +

+

+

6.8 Channel Layout

+ +

A channel layout specifies the spatial disposition of the channels in +a multi-channel audio stream. To specify a channel layout, FFmpeg +makes use of a special syntax. +

+

Individual channels are identified by an id, as given by the table +below: +

+
FL
+

front left +

+
FR
+

front right +

+
FC
+

front center +

+
LFE
+

low frequency +

+
BL
+

back left +

+
BR
+

back right +

+
FLC
+

front left-of-center +

+
FRC
+

front right-of-center +

+
BC
+

back center +

+
SL
+

side left +

+
SR
+

side right +

+
TC
+

top center +

+
TFL
+

top front left +

+
TFC
+

top front center +

+
TFR
+

top front right +

+
TBL
+

top back left +

+
TBC
+

top back center +

+
TBR
+

top back right +

+
DL
+

downmix left +

+
DR
+

downmix right +

+
WL
+

wide left +

+
WR
+

wide right +

+
SDL
+

surround direct left +

+
SDR
+

surround direct right +

+
LFE2
+

low frequency 2 +

+
+ +

Standard channel layout compositions can be specified by using the +following identifiers: +

+
mono
+

FC +

+
stereo
+

FL+FR +

+
2.1
+

FL+FR+LFE +

+
3.0
+

FL+FR+FC +

+
3.0(back)
+

FL+FR+BC +

+
4.0
+

FL+FR+FC+BC +

+
quad
+

FL+FR+BL+BR +

+
quad(side)
+

FL+FR+SL+SR +

+
3.1
+

FL+FR+FC+LFE +

+
5.0
+

FL+FR+FC+BL+BR +

+
5.0(side)
+

FL+FR+FC+SL+SR +

+
4.1
+

FL+FR+FC+LFE+BC +

+
5.1
+

FL+FR+FC+LFE+BL+BR +

+
5.1(side)
+

FL+FR+FC+LFE+SL+SR +

+
6.0
+

FL+FR+FC+BC+SL+SR +

+
6.0(front)
+

FL+FR+FLC+FRC+SL+SR +

+
hexagonal
+

FL+FR+FC+BL+BR+BC +

+
6.1
+

FL+FR+FC+LFE+BC+SL+SR +

+
6.1
+

FL+FR+FC+LFE+BL+BR+BC +

+
6.1(front)
+

FL+FR+LFE+FLC+FRC+SL+SR +

+
7.0
+

FL+FR+FC+BL+BR+SL+SR +

+
7.0(front)
+

FL+FR+FC+FLC+FRC+SL+SR +

+
7.1
+

FL+FR+FC+LFE+BL+BR+SL+SR +

+
7.1(wide)
+

FL+FR+FC+LFE+BL+BR+FLC+FRC +

+
7.1(wide-side)
+

FL+FR+FC+LFE+FLC+FRC+SL+SR +

+
octagonal
+

FL+FR+FC+BL+BR+BC+SL+SR +

+
downmix
+

DL+DR +

+
+ +

A custom channel layout can be specified as a sequence of terms, separated by +’+’ or ’|’. Each term can be: +

    +
  • +the name of a standard channel layout (e.g. ‘mono’, +‘stereo’, ‘4.0’, ‘quad’, ‘5.0’, etc.) + +
  • +the name of a single channel (e.g. ‘FL’, ‘FR’, ‘FC’, ‘LFE’, etc.) + +
  • +a number of channels, in decimal, optionally followed by ’c’, yielding +the default channel layout for that number of channels (see the +function av_get_default_channel_layout) + +
  • +a channel layout mask, in hexadecimal starting with "0x" (see the +AV_CH_* macros in ‘libavutil/channel_layout.h’. +
+ +

Starting from libavutil version 53 the trailing character "c" to +specify a number of channels will be required, while a channel layout +mask could also be specified as a decimal number (if and only if not +followed by "c"). +

+

See also the function av_get_channel_layout defined in +‘libavutil/channel_layout.h’. +

+ +

7. Expression Evaluation

+ +

When evaluating an arithmetic expression, FFmpeg uses an internal +formula evaluator, implemented through the ‘libavutil/eval.h’ +interface. +

+

An expression may contain unary, binary operators, constants, and +functions. +

+

Two expressions expr1 and expr2 can be combined to form +another expression "expr1;expr2". +expr1 and expr2 are evaluated in turn, and the new +expression evaluates to the value of expr2. +

+

The following binary operators are available: +, -, +*, /, ^. +

+

The following unary operators are available: +, -. +

+

The following functions are available: +

+
abs(x)
+

Compute absolute value of x. +

+
+
acos(x)
+

Compute arccosine of x. +

+
+
asin(x)
+

Compute arcsine of x. +

+
+
atan(x)
+

Compute arctangent of x. +

+
+
between(x, min, max)
+

Return 1 if x is greater than or equal to min and lesser than or +equal to max, 0 otherwise. +

+
+
bitand(x, y)
+
bitor(x, y)
+

Compute bitwise and/or operation on x and y. +

+

The results of the evaluation of x and y are converted to +integers before executing the bitwise operation. +

+

Note that both the conversion to integer and the conversion back to +floating point can lose precision. Beware of unexpected results for +large numbers (usually 2^53 and larger). +

+
+
ceil(expr)
+

Round the value of expression expr upwards to the nearest +integer. For example, "ceil(1.5)" is "2.0". +

+
+
cos(x)
+

Compute cosine of x. +

+
+
cosh(x)
+

Compute hyperbolic cosine of x. +

+
+
eq(x, y)
+

Return 1 if x and y are equivalent, 0 otherwise. +

+
+
exp(x)
+

Compute exponential of x (with base e, the Euler’s number). +

+
+
floor(expr)
+

Round the value of expression expr downwards to the nearest +integer. For example, "floor(-1.5)" is "-2.0". +

+
+
gauss(x)
+

Compute Gauss function of x, corresponding to +exp(-x*x/2) / sqrt(2*PI). +

+
+
gcd(x, y)
+

Return the greatest common divisor of x and y. If both x and +y are 0 or either or both are less than zero then behavior is undefined. +

+
+
gt(x, y)
+

Return 1 if x is greater than y, 0 otherwise. +

+
+
gte(x, y)
+

Return 1 if x is greater than or equal to y, 0 otherwise. +

+
+
hypot(x, y)
+

This function is similar to the C function with the same name; it returns +"sqrt(x*x + y*y)", the length of the hypotenuse of a +right triangle with sides of length x and y, or the distance of the +point (x, y) from the origin. +

+
+
if(x, y)
+

Evaluate x, and if the result is non-zero return the result of +the evaluation of y, return 0 otherwise. +

+
+
if(x, y, z)
+

Evaluate x, and if the result is non-zero return the evaluation +result of y, otherwise the evaluation result of z. +

+
+
ifnot(x, y)
+

Evaluate x, and if the result is zero return the result of the +evaluation of y, return 0 otherwise. +

+
+
ifnot(x, y, z)
+

Evaluate x, and if the result is zero return the evaluation +result of y, otherwise the evaluation result of z. +

+
+
isinf(x)
+

Return 1.0 if x is +/-INFINITY, 0.0 otherwise. +

+
+
isnan(x)
+

Return 1.0 if x is NAN, 0.0 otherwise. +

+
+
ld(var)
+

Allow to load the value of the internal variable with number +var, which was previously stored with st(var, expr). +The function returns the loaded value. +

+
+
log(x)
+

Compute natural logarithm of x. +

+
+
lt(x, y)
+

Return 1 if x is lesser than y, 0 otherwise. +

+
+
lte(x, y)
+

Return 1 if x is lesser than or equal to y, 0 otherwise. +

+
+
max(x, y)
+

Return the maximum between x and y. +

+
+
min(x, y)
+

Return the maximum between x and y. +

+
+
mod(x, y)
+

Compute the remainder of division of x by y. +

+
+
not(expr)
+

Return 1.0 if expr is zero, 0.0 otherwise. +

+
+
pow(x, y)
+

Compute the power of x elevated y, it is equivalent to +"(x)^(y)". +

+
+
print(t)
+
print(t, l)
+

Print the value of expression t with loglevel l. If +l is not specified then a default log level is used. +Returns the value of the expression printed. +

+

Prints t with loglevel l +

+
+
random(x)
+

Return a pseudo random value between 0.0 and 1.0. x is the index of the +internal variable which will be used to save the seed/state. +

+
+
root(expr, max)
+

Find an input value for which the function represented by expr +with argument ld(0) is 0 in the interval 0..max. +

+

The expression in expr must denote a continuous function or the +result is undefined. +

+

ld(0) is used to represent the function input value, which means +that the given expression will be evaluated multiple times with +various input values that the expression can access through +ld(0). When the expression evaluates to 0 then the +corresponding input value will be returned. +

+
+
sin(x)
+

Compute sine of x. +

+
+
sinh(x)
+

Compute hyperbolic sine of x. +

+
+
sqrt(expr)
+

Compute the square root of expr. This is equivalent to +"(expr)^.5". +

+
+
squish(x)
+

Compute expression 1/(1 + exp(4*x)). +

+
+
st(var, expr)
+

Allow to store the value of the expression expr in an internal +variable. var specifies the number of the variable where to +store the value, and it is a value ranging from 0 to 9. The function +returns the value stored in the internal variable. +Note, Variables are currently not shared between expressions. +

+
+
tan(x)
+

Compute tangent of x. +

+
+
tanh(x)
+

Compute hyperbolic tangent of x. +

+
+
taylor(expr, x)
+
taylor(expr, x, id)
+

Evaluate a Taylor series at x, given an expression representing +the ld(id)-th derivative of a function at 0. +

+

When the series does not converge the result is undefined. +

+

ld(id) is used to represent the derivative order in expr, +which means that the given expression will be evaluated multiple times +with various input values that the expression can access through +ld(id). If id is not specified then 0 is assumed. +

+

Note, when you have the derivatives at y instead of 0, +taylor(expr, x-y) can be used. +

+
+
time(0)
+

Return the current (wallclock) time in seconds. +

+
+
trunc(expr)
+

Round the value of expression expr towards zero to the nearest +integer. For example, "trunc(-1.5)" is "-1.0". +

+
+
while(cond, expr)
+

Evaluate expression expr while the expression cond is +non-zero, and returns the value of the last expr evaluation, or +NAN if cond was always false. +

+
+ +

The following constants are available: +

+
PI
+

area of the unit disc, approximately 3.14 +

+
E
+

exp(1) (Euler’s number), approximately 2.718 +

+
PHI
+

golden ratio (1+sqrt(5))/2, approximately 1.618 +

+
+ +

Assuming that an expression is considered "true" if it has a non-zero +value, note that: +

+

* works like AND +

+

+ works like OR +

+

For example the construct: +

 
if (A AND B) then C
+
+

is equivalent to: +

 
if(A*B, C)
+
+ +

In your C code, you can extend the list of unary and binary functions, +and define recognized constants, so that they are available for your +expressions. +

+

The evaluator also recognizes the International System unit prefixes. +If ’i’ is appended after the prefix, binary prefixes are used, which +are based on powers of 1024 instead of powers of 1000. +The ’B’ postfix multiplies the value by 8, and can be appended after a +unit prefix or used alone. This allows using for example ’KB’, ’MiB’, +’G’ and ’B’ as number postfix. +

+

The list of available International System prefixes follows, with +indication of the corresponding powers of 10 and of 2. +

+
y
+

10^-24 / 2^-80 +

+
z
+

10^-21 / 2^-70 +

+
a
+

10^-18 / 2^-60 +

+
f
+

10^-15 / 2^-50 +

+
p
+

10^-12 / 2^-40 +

+
n
+

10^-9 / 2^-30 +

+
u
+

10^-6 / 2^-20 +

+
m
+

10^-3 / 2^-10 +

+
c
+

10^-2 +

+
d
+

10^-1 +

+
h
+

10^2 +

+
k
+

10^3 / 2^10 +

+
K
+

10^3 / 2^10 +

+
M
+

10^6 / 2^20 +

+
G
+

10^9 / 2^30 +

+
T
+

10^12 / 2^40 +

+
P
+

10^15 / 2^40 +

+
E
+

10^18 / 2^50 +

+
Z
+

10^21 / 2^60 +

+
Y
+

10^24 / 2^70 +

+
+ + + +

8. OpenCL Options

+ +

When FFmpeg is configured with --enable-opencl, it is possible +to set the options for the global OpenCL context. +

+

The list of supported options follows: +

+
+
build_options
+

Set build options used to compile the registered kernels. +

+

See reference "OpenCL Specification Version: 1.2 chapter 5.6.4". +

+
+
platform_idx
+

Select the index of the platform to run OpenCL code. +

+

The specified index must be one of the indexes in the device list +which can be obtained with ffmpeg -opencl_bench or av_opencl_get_device_list(). +

+
+
device_idx
+

Select the index of the device used to run OpenCL code. +

+

The specified index must be one of the indexes in the device list which +can be obtained with ffmpeg -opencl_bench or av_opencl_get_device_list(). +

+
+
+ +

+

+

9. Codec Options

+ +

libavcodec provides some generic global options, which can be set on +all the encoders and decoders. In addition each codec may support +so-called private options, which are specific for a given codec. +

+

Sometimes, a global option may only affect a specific kind of codec, +and may be unsensical or ignored by another, so you need to be aware +of the meaning of the specified options. Also some options are +meant only for decoding or encoding. +

+

Options may be set by specifying -option value in the +FFmpeg tools, or by setting the value explicitly in the +AVCodecContext options or using the ‘libavutil/opt.h’ API +for programmatic use. +

+

The list of supported options follow: +

+
+
b integer (encoding,audio,video)
+

Set bitrate in bits/s. Default value is 200K. +

+
+
ab integer (encoding,audio)
+

Set audio bitrate (in bits/s). Default value is 128K. +

+
+
bt integer (encoding,video)
+

Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate +tolerance specifies how far ratecontrol is willing to deviate from the +target average bitrate value. This is not related to min/max +bitrate. Lowering tolerance too much has an adverse effect on quality. +

+
+
flags flags (decoding/encoding,audio,video,subtitles)
+

Set generic flags. +

+

Possible values: +

+
mv4
+

Use four motion vector by macroblock (mpeg4). +

+
qpel
+

Use 1/4 pel motion compensation. +

+
loop
+

Use loop filter. +

+
qscale
+

Use fixed qscale. +

+
gmc
+

Use gmc. +

+
mv0
+

Always try a mb with mv=<0,0>. +

+
input_preserved
+
pass1
+

Use internal 2pass ratecontrol in first pass mode. +

+
pass2
+

Use internal 2pass ratecontrol in second pass mode. +

+
gray
+

Only decode/encode grayscale. +

+
emu_edge
+

Do not draw edges. +

+
psnr
+

Set error[?] variables during encoding. +

+
truncated
+
naq
+

Normalize adaptive quantization. +

+
ildct
+

Use interlaced DCT. +

+
low_delay
+

Force low delay. +

+
global_header
+

Place global headers in extradata instead of every keyframe. +

+
bitexact
+

Use only bitexact stuff (except (I)DCT). +

+
aic
+

Apply H263 advanced intra coding / mpeg4 ac prediction. +

+
cbp
+

Deprecated, use mpegvideo private options instead. +

+
qprd
+

Deprecated, use mpegvideo private options instead. +

+
ilme
+

Apply interlaced motion estimation. +

+
cgop
+

Use closed gop. +

+
+ +
+
me_method integer (encoding,video)
+

Set motion estimation method. +

+

Possible values: +

+
zero
+

zero motion estimation (fastest) +

+
full
+

full motion estimation (slowest) +

+
epzs
+

EPZS motion estimation (default) +

+
esa
+

esa motion estimation (alias for full) +

+
tesa
+

tesa motion estimation +

+
dia
+

dia motion estimation (alias for epzs) +

+
log
+

log motion estimation +

+
phods
+

phods motion estimation +

+
x1
+

X1 motion estimation +

+
hex
+

hex motion estimation +

+
umh
+

umh motion estimation +

+
iter
+

iter motion estimation +

+
+ +
+
extradata_size integer
+

Set extradata size. +

+
+
time_base rational number
+

Set codec time base. +

+

It is the fundamental unit of time (in seconds) in terms of which +frame timestamps are represented. For fixed-fps content, timebase +should be 1 / frame_rate and timestamp increments should be +identically 1. +

+
+
g integer (encoding,video)
+

Set the group of picture size. Default value is 12. +

+
+
ar integer (decoding/encoding,audio)
+

Set audio sampling rate (in Hz). +

+
+
ac integer (decoding/encoding,audio)
+

Set number of audio channels. +

+
+
cutoff integer (encoding,audio)
+

Set cutoff bandwidth. +

+
+
frame_size integer (encoding,audio)
+

Set audio frame size. +

+

Each submitted frame except the last must contain exactly frame_size +samples per channel. May be 0 when the codec has +CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is not +restricted. It is set by some decoders to indicate constant frame +size. +

+
+
frame_number integer
+

Set the frame number. +

+
+
delay integer
+
qcomp float (encoding,video)
+

Set video quantizer scale compression (VBR). It is used as a constant +in the ratecontrol equation. Recommended range for default rc_eq: +0.0-1.0. +

+
+
qblur float (encoding,video)
+

Set video quantizer scale blur (VBR). +

+
+
qmin integer (encoding,video)
+

Set min video quantizer scale (VBR). Must be included between -1 and +69, default value is 2. +

+
+
qmax integer (encoding,video)
+

Set max video quantizer scale (VBR). Must be included between -1 and +1024, default value is 31. +

+
+
qdiff integer (encoding,video)
+

Set max difference between the quantizer scale (VBR). +

+
+
bf integer (encoding,video)
+

Set max number of B frames between non-B-frames. +

+

Must be an integer between -1 and 16. 0 means that B-frames are +disabled. If a value of -1 is used, it will choose an automatic value +depending on the encoder. +

+

Default value is 0. +

+
+
b_qfactor float (encoding,video)
+

Set qp factor between P and B frames. +

+
+
rc_strategy integer (encoding,video)
+

Set ratecontrol method. +

+
+
b_strategy integer (encoding,video)
+

Set strategy to choose between I/P/B-frames. +

+
+
ps integer (encoding,video)
+

Set RTP payload size in bytes. +

+
+
mv_bits integer
+
header_bits integer
+
i_tex_bits integer
+
p_tex_bits integer
+
i_count integer
+
p_count integer
+
skip_count integer
+
misc_bits integer
+
frame_bits integer
+
codec_tag integer
+
bug flags (decoding,video)
+

Workaround not auto detected encoder bugs. +

+

Possible values: +

+
autodetect
+
old_msmpeg4
+

some old lavc generated msmpeg4v3 files (no autodetection) +

+
xvid_ilace
+

Xvid interlacing bug (autodetected if fourcc==XVIX) +

+
ump4
+

(autodetected if fourcc==UMP4) +

+
no_padding
+

padding bug (autodetected) +

+
amv
+
ac_vlc
+

illegal vlc bug (autodetected per fourcc) +

+
qpel_chroma
+
std_qpel
+

old standard qpel (autodetected per fourcc/version) +

+
qpel_chroma2
+
direct_blocksize
+

direct-qpel-blocksize bug (autodetected per fourcc/version) +

+
edge
+

edge padding bug (autodetected per fourcc/version) +

+
hpel_chroma
+
dc_clip
+
ms
+

Workaround various bugs in microsoft broken decoders. +

+
trunc
+

trancated frames +

+
+ +
+
lelim integer (encoding,video)
+

Set single coefficient elimination threshold for luminance (negative +values also consider DC coefficient). +

+
+
celim integer (encoding,video)
+

Set single coefficient elimination threshold for chrominance (negative +values also consider dc coefficient) +

+
+
strict integer (decoding/encoding,audio,video)
+

Specify how strictly to follow the standards. +

+

Possible values: +

+
very
+

strictly conform to a older more strict version of the spec or reference software +

+
strict
+

strictly conform to all the things in the spec no matter what consequences +

+
normal
+
unofficial
+

allow unofficial extensions +

+
experimental
+

allow non standardized experimental things, experimental +(unfinished/work in progress/not well tested) decoders and encoders. +Note: experimental decoders can pose a security risk, do not use this for +decoding untrusted input. +

+
+ +
+
b_qoffset float (encoding,video)
+

Set QP offset between P and B frames. +

+
+
err_detect flags (decoding,audio,video)
+

Set error detection flags. +

+

Possible values: +

+
crccheck
+

verify embedded CRCs +

+
bitstream
+

detect bitstream specification deviations +

+
buffer
+

detect improper bitstream length +

+
explode
+

abort decoding on minor error detection +

+
careful
+

consider things that violate the spec and have not been seen in the wild as errors +

+
compliant
+

consider all spec non compliancies as errors +

+
aggressive
+

consider things that a sane encoder should not do as an error +

+
+ +
+
has_b_frames integer
+
block_align integer
+
mpeg_quant integer (encoding,video)
+

Use MPEG quantizers instead of H.263. +

+
+
qsquish float (encoding,video)
+

How to keep quantizer between qmin and qmax (0 = clip, 1 = use +differentiable function). +

+
+
rc_qmod_amp float (encoding,video)
+

Set experimental quantizer modulation. +

+
+
rc_qmod_freq integer (encoding,video)
+

Set experimental quantizer modulation. +

+
+
rc_override_count integer
+
rc_eq string (encoding,video)
+

Set rate control equation. When computing the expression, besides the +standard functions defined in the section ’Expression Evaluation’, the +following functions are available: bits2qp(bits), qp2bits(qp). Also +the following constants are available: iTex pTex tex mv fCode iCount +mcVar var isI isP isB avgQP qComp avgIITex avgPITex avgPPTex avgBPTex +avgTex. +

+
+
maxrate integer (encoding,audio,video)
+

Set max bitrate tolerance (in bits/s). Requires bufsize to be set. +

+
+
minrate integer (encoding,audio,video)
+

Set min bitrate tolerance (in bits/s). Most useful in setting up a CBR +encode. It is of little use elsewise. +

+
+
bufsize integer (encoding,audio,video)
+

Set ratecontrol buffer size (in bits). +

+
+
rc_buf_aggressivity float (encoding,video)
+

Currently useless. +

+
+
i_qfactor float (encoding,video)
+

Set QP factor between P and I frames. +

+
+
i_qoffset float (encoding,video)
+

Set QP offset between P and I frames. +

+
+
rc_init_cplx float (encoding,video)
+

Set initial complexity for 1-pass encoding. +

+
+
dct integer (encoding,video)
+

Set DCT algorithm. +

+

Possible values: +

+
auto
+

autoselect a good one (default) +

+
fastint
+

fast integer +

+
int
+

accurate integer +

+
mmx
+
altivec
+
faan
+

floating point AAN DCT +

+
+ +
+
lumi_mask float (encoding,video)
+

Compress bright areas stronger than medium ones. +

+
+
tcplx_mask float (encoding,video)
+

Set temporal complexity masking. +

+
+
scplx_mask float (encoding,video)
+

Set spatial complexity masking. +

+
+
p_mask float (encoding,video)
+

Set inter masking. +

+
+
dark_mask float (encoding,video)
+

Compress dark areas stronger than medium ones. +

+
+
idct integer (decoding/encoding,video)
+

Select IDCT implementation. +

+

Possible values: +

+
auto
+
int
+
simple
+
simplemmx
+
arm
+
altivec
+
sh4
+
simplearm
+
simplearmv5te
+
simplearmv6
+
simpleneon
+
simplealpha
+
ipp
+
xvidmmx
+
faani
+

floating point AAN IDCT +

+
+ +
+
slice_count integer
+
ec flags (decoding,video)
+

Set error concealment strategy. +

+

Possible values: +

+
guess_mvs
+

iterative motion vector (MV) search (slow) +

+
deblock
+

use strong deblock filter for damaged MBs +

+
+ +
+
bits_per_coded_sample integer
+
pred integer (encoding,video)
+

Set prediction method. +

+

Possible values: +

+
left
+
plane
+
median
+
+ +
+
aspect rational number (encoding,video)
+

Set sample aspect ratio. +

+
+
debug flags (decoding/encoding,audio,video,subtitles)
+

Print specific debug info. +

+

Possible values: +

+
pict
+

picture info +

+
rc
+

rate control +

+
bitstream
+
mb_type
+

macroblock (MB) type +

+
qp
+

per-block quantization parameter (QP) +

+
mv
+

motion vector +

+
dct_coeff
+
skip
+
startcode
+
pts
+
er
+

error recognition +

+
mmco
+

memory management control operations (H.264) +

+
bugs
+
vis_qp
+

visualize quantization parameter (QP), lower QP are tinted greener +

+
vis_mb_type
+

visualize block types +

+
buffers
+

picture buffer allocations +

+
thread_ops
+

threading operations +

+
+ +
+
vismv integer (decoding,video)
+

Visualize motion vectors (MVs). +

+

Possible values: +

+
pf
+

forward predicted MVs of P-frames +

+
bf
+

forward predicted MVs of B-frames +

+
bb
+

backward predicted MVs of B-frames +

+
+ +
+
cmp integer (encoding,video)
+

Set full pel me compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
subcmp integer (encoding,video)
+

Set sub pel me compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
mbcmp integer (encoding,video)
+

Set macroblock compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
ildctcmp integer (encoding,video)
+

Set interlaced dct compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
dia_size integer (encoding,video)
+

Set diamond type & size for motion estimation. +

+
+
last_pred integer (encoding,video)
+

Set amount of motion predictors from the previous frame. +

+
+
preme integer (encoding,video)
+

Set pre motion estimation. +

+
+
precmp integer (encoding,video)
+

Set pre motion estimation compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
pre_dia_size integer (encoding,video)
+

Set diamond type & size for motion estimation pre-pass. +

+
+
subq integer (encoding,video)
+

Set sub pel motion estimation quality. +

+
+
dtg_active_format integer
+
me_range integer (encoding,video)
+

Set limit motion vectors range (1023 for DivX player). +

+
+
ibias integer (encoding,video)
+

Set intra quant bias. +

+
+
pbias integer (encoding,video)
+

Set inter quant bias. +

+
+
color_table_id integer
+
global_quality integer (encoding,audio,video)
+
coder integer (encoding,video)
+
+

Possible values: +

+
vlc
+

variable length coder / huffman coder +

+
ac
+

arithmetic coder +

+
raw
+

raw (no encoding) +

+
rle
+

run-length coder +

+
deflate
+

deflate-based coder +

+
+ +
+
context integer (encoding,video)
+

Set context model. +

+
+
slice_flags integer
+
xvmc_acceleration integer
+
mbd integer (encoding,video)
+

Set macroblock decision algorithm (high quality mode). +

+

Possible values: +

+
simple
+

use mbcmp (default) +

+
bits
+

use fewest bits +

+
rd
+

use best rate distortion +

+
+ +
+
stream_codec_tag integer
+
sc_threshold integer (encoding,video)
+

Set scene change threshold. +

+
+
lmin integer (encoding,video)
+

Set min lagrange factor (VBR). +

+
+
lmax integer (encoding,video)
+

Set max lagrange factor (VBR). +

+
+
nr integer (encoding,video)
+

Set noise reduction. +

+
+
rc_init_occupancy integer (encoding,video)
+

Set number of bits which should be loaded into the rc buffer before +decoding starts. +

+
+
flags2 flags (decoding/encoding,audio,video)
+
+

Possible values: +

+
fast
+

Allow non spec compliant speedup tricks. +

+
sgop
+

Deprecated, use mpegvideo private options instead. +

+
noout
+

Skip bitstream encoding. +

+
ignorecrop
+

Ignore cropping information from sps. +

+
local_header
+

Place global headers at every keyframe instead of in extradata. +

+
chunks
+

Frame data might be split into multiple chunks. +

+
showall
+

Show all frames before the first keyframe. +

+
skiprd
+

Deprecated, use mpegvideo private options instead. +

+
+ +
+
error integer (encoding,video)
+
qns integer (encoding,video)
+

Deprecated, use mpegvideo private options instead. +

+
+
threads integer (decoding/encoding,video)
+
+

Possible values: +

+
auto
+

detect a good number of threads +

+
+ +
+
me_threshold integer (encoding,video)
+

Set motion estimation threshold. +

+
+
mb_threshold integer (encoding,video)
+

Set macroblock threshold. +

+
+
dc integer (encoding,video)
+

Set intra_dc_precision. +

+
+
nssew integer (encoding,video)
+

Set nsse weight. +

+
+
skip_top integer (decoding,video)
+

Set number of macroblock rows at the top which are skipped. +

+
+
skip_bottom integer (decoding,video)
+

Set number of macroblock rows at the bottom which are skipped. +

+
+
profile integer (encoding,audio,video)
+
+

Possible values: +

+
unknown
+
aac_main
+
aac_low
+
aac_ssr
+
aac_ltp
+
aac_he
+
aac_he_v2
+
aac_ld
+
aac_eld
+
mpeg2_aac_low
+
mpeg2_aac_he
+
dts
+
dts_es
+
dts_96_24
+
dts_hd_hra
+
dts_hd_ma
+
+ +
+
level integer (encoding,audio,video)
+
+

Possible values: +

+
unknown
+
+ +
+
lowres integer (decoding,audio,video)
+

Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions. +

+
+
skip_threshold integer (encoding,video)
+

Set frame skip threshold. +

+
+
skip_factor integer (encoding,video)
+

Set frame skip factor. +

+
+
skip_exp integer (encoding,video)
+

Set frame skip exponent. +Negative values behave identical to the corresponding positive ones, except +that the score is normalized. +Positive values exist primarly for compatibility reasons and are not so useful. +

+
+
skipcmp integer (encoding,video)
+

Set frame skip compare function. +

+

Possible values: +

+
sad
+

sum of absolute differences, fast (default) +

+
sse
+

sum of squared errors +

+
satd
+

sum of absolute Hadamard transformed differences +

+
dct
+

sum of absolute DCT transformed differences +

+
psnr
+

sum of squared quantization errors (avoid, low quality) +

+
bit
+

number of bits needed for the block +

+
rd
+

rate distortion optimal, slow +

+
zero
+

0 +

+
vsad
+

sum of absolute vertical differences +

+
vsse
+

sum of squared vertical differences +

+
nsse
+

noise preserving sum of squared differences +

+
w53
+

5/3 wavelet, only used in snow +

+
w97
+

9/7 wavelet, only used in snow +

+
dctmax
+
chroma
+
+ +
+
border_mask float (encoding,video)
+

Increase the quantizer for macroblocks close to borders. +

+
+
mblmin integer (encoding,video)
+

Set min macroblock lagrange factor (VBR). +

+
+
mblmax integer (encoding,video)
+

Set max macroblock lagrange factor (VBR). +

+
+
mepc integer (encoding,video)
+

Set motion estimation bitrate penalty compensation (1.0 = 256). +

+
+
skip_loop_filter integer (decoding,video)
+
skip_idct integer (decoding,video)
+
skip_frame integer (decoding,video)
+
+

Make decoder discard processing depending on the frame type selected +by the option value. +

+

skip_loop_filter’ skips frame loop filtering, ‘skip_idct’ +skips frame IDCT/dequantization, ‘skip_frame’ skips decoding. +

+

Possible values: +

+
none
+

Discard no frame. +

+
+
default
+

Discard useless frames like 0-sized frames. +

+
+
noref
+

Discard all non-reference frames. +

+
+
bidir
+

Discard all bidirectional frames. +

+
+
nokey
+

Discard all frames excepts keyframes. +

+
+
all
+

Discard all frames. +

+
+ +

Default value is ‘default’. +

+
+
bidir_refine integer (encoding,video)
+

Refine the two motion vectors used in bidirectional macroblocks. +

+
+
brd_scale integer (encoding,video)
+

Downscale frames for dynamic B-frame decision. +

+
+
keyint_min integer (encoding,video)
+

Set minimum interval between IDR-frames. +

+
+
refs integer (encoding,video)
+

Set reference frames to consider for motion compensation. +

+
+
chromaoffset integer (encoding,video)
+

Set chroma qp offset from luma. +

+
+
trellis integer (encoding,audio,video)
+

Set rate-distortion optimal quantization. +

+
+
sc_factor integer (encoding,video)
+

Set value multiplied by qscale for each frame and added to +scene_change_score. +

+
+
mv0_threshold integer (encoding,video)
+
b_sensitivity integer (encoding,video)
+

Adjust sensitivity of b_frame_strategy 1. +

+
+
compression_level integer (encoding,audio,video)
+
min_prediction_order integer (encoding,audio)
+
max_prediction_order integer (encoding,audio)
+
timecode_frame_start integer (encoding,video)
+

Set GOP timecode frame start number, in non drop frame format. +

+
+
request_channels integer (decoding,audio)
+

Set desired number of audio channels. +

+
+
bits_per_raw_sample integer
+
channel_layout integer (decoding/encoding,audio)
+
+

Possible values: +

+
request_channel_layout integer (decoding,audio)
+
+

Possible values: +

+
rc_max_vbv_use float (encoding,video)
+
rc_min_vbv_use float (encoding,video)
+
ticks_per_frame integer (decoding/encoding,audio,video)
+
color_primaries integer (decoding/encoding,video)
+
color_trc integer (decoding/encoding,video)
+
colorspace integer (decoding/encoding,video)
+
color_range integer (decoding/encoding,video)
+
chroma_sample_location integer (decoding/encoding,video)
+
log_level_offset integer
+

Set the log level offset. +

+
+
slices integer (encoding,video)
+

Number of slices, used in parallelized encoding. +

+
+
thread_type flags (decoding/encoding,video)
+

Select multithreading type. +

+

Possible values: +

+
slice
+
frame
+
+
+
audio_service_type integer (encoding,audio)
+

Set audio service type. +

+

Possible values: +

+
ma
+

Main Audio Service +

+
ef
+

Effects +

+
vi
+

Visually Impaired +

+
hi
+

Hearing Impaired +

+
di
+

Dialogue +

+
co
+

Commentary +

+
em
+

Emergency +

+
vo
+

Voice Over +

+
ka
+

Karaoke +

+
+ +
+
request_sample_fmt sample_fmt (decoding,audio)
+

Set sample format audio decoders should prefer. Default value is +none. +

+
+
pkt_timebase rational number
+
sub_charenc encoding (decoding,subtitles)
+

Set the input subtitles character encoding. +

+
+
field_order field_order (video)
+

Set/override the field order of the video. +Possible values: +

+
progressive
+

Progressive video +

+
tt
+

Interlaced video, top field coded and displayed first +

+
bb
+

Interlaced video, bottom field coded and displayed first +

+
tb
+

Interlaced video, top coded first, bottom displayed first +

+
bt
+

Interlaced video, bottom coded first, top displayed first +

+
+ +
+
skip_alpha integer (decoding,video)
+

Set to 1 to disable processing alpha (transparency). This works like the +‘gray’ flag in the ‘flags’ option which skips chroma information +instead of alpha. Default is 0. +

+
+ + + +

10. Decoders

+ +

Decoders are configured elements in FFmpeg which allow the decoding of +multimedia streams. +

+

When you configure your FFmpeg build, all the supported native decoders +are enabled by default. Decoders requiring an external library must be enabled +manually via the corresponding --enable-lib option. You can list all +available decoders using the configure option --list-decoders. +

+

You can disable all the decoders with the configure option +--disable-decoders and selectively enable / disable single decoders +with the options --enable-decoder=DECODER / +--disable-decoder=DECODER. +

+

The option -decoders of the ff* tools will display the list of +enabled decoders. +

+ + +

11. Video Decoders

+ +

A description of some of the currently available video decoders +follows. +

+ +

11.1 rawvideo

+ +

Raw video decoder. +

+

This decoder decodes rawvideo streams. +

+ +

11.1.1 Options

+ +
+
top top_field_first
+

Specify the assumed field type of the input video. +

+
-1
+

the video is assumed to be progressive (default) +

+
0
+

bottom-field-first is assumed +

+
1
+

top-field-first is assumed +

+
+ +
+
+ + + +

12. Audio Decoders

+ +

A description of some of the currently available audio decoders +follows. +

+ +

12.1 ac3

+ +

AC-3 audio decoder. +

+

This decoder implements part of ATSC A/52:2010 and ETSI TS 102 366, as well as +the undocumented RealAudio 3 (a.k.a. dnet). +

+ +

12.1.1 AC-3 Decoder Options

+ +
+
-drc_scale value
+

Dynamic Range Scale Factor. The factor to apply to dynamic range values +from the AC-3 stream. This factor is applied exponentially. +There are 3 notable scale factor ranges: +

+
drc_scale == 0
+

DRC disabled. Produces full range audio. +

+
0 < drc_scale <= 1
+

DRC enabled. Applies a fraction of the stream DRC value. +Audio reproduction is between full range and full compression. +

+
drc_scale > 1
+

DRC enabled. Applies drc_scale asymmetrically. +Loud sounds are fully compressed. Soft sounds are enhanced. +

+
+ +
+
+ + +

12.2 ffwavesynth

+ +

Internal wave synthetizer. +

+

This decoder generates wave patterns according to predefined sequences. Its +use is purely internal and the format of the data it accepts is not publicly +documented. +

+ +

12.3 libcelt

+ +

libcelt decoder wrapper. +

+

libcelt allows libavcodec to decode the Xiph CELT ultra-low delay audio codec. +Requires the presence of the libcelt headers and library during configuration. +You need to explicitly configure the build with --enable-libcelt. +

+ +

12.4 libgsm

+ +

libgsm decoder wrapper. +

+

libgsm allows libavcodec to decode the GSM full rate audio codec. Requires +the presence of the libgsm headers and library during configuration. You need +to explicitly configure the build with --enable-libgsm. +

+

This decoder supports both the ordinary GSM and the Microsoft variant. +

+ +

12.5 libilbc

+ +

libilbc decoder wrapper. +

+

libilbc allows libavcodec to decode the Internet Low Bitrate Codec (iLBC) +audio codec. Requires the presence of the libilbc headers and library during +configuration. You need to explicitly configure the build with +--enable-libilbc. +

+ +

12.5.1 Options

+ +

The following option is supported by the libilbc wrapper. +

+
+
enhance
+
+

Enable the enhancement of the decoded audio when set to 1. The default +value is 0 (disabled). +

+
+
+ + +

12.6 libopencore-amrnb

+ +

libopencore-amrnb decoder wrapper. +

+

libopencore-amrnb allows libavcodec to decode the Adaptive Multi-Rate +Narrowband audio codec. Using it requires the presence of the +libopencore-amrnb headers and library during configuration. You need to +explicitly configure the build with --enable-libopencore-amrnb. +

+

An FFmpeg native decoder for AMR-NB exists, so users can decode AMR-NB +without this library. +

+ +

12.7 libopencore-amrwb

+ +

libopencore-amrwb decoder wrapper. +

+

libopencore-amrwb allows libavcodec to decode the Adaptive Multi-Rate +Wideband audio codec. Using it requires the presence of the +libopencore-amrwb headers and library during configuration. You need to +explicitly configure the build with --enable-libopencore-amrwb. +

+

An FFmpeg native decoder for AMR-WB exists, so users can decode AMR-WB +without this library. +

+ +

12.8 libopus

+ +

libopus decoder wrapper. +

+

libopus allows libavcodec to decode the Opus Interactive Audio Codec. +Requires the presence of the libopus headers and library during +configuration. You need to explicitly configure the build with +--enable-libopus. +

+ + +

13. Subtitles Decoders

+ + +

13.1 dvdsub

+ +

This codec decodes the bitmap subtitles used in DVDs; the same subtitles can +also be found in VobSub file pairs and in some Matroska files. +

+ +

13.1.1 Options

+ +
+
palette
+

Specify the global palette used by the bitmaps. When stored in VobSub, the +palette is normally specified in the index file; in Matroska, the palette is +stored in the codec extra-data in the same format as in VobSub. In DVDs, the +palette is stored in the IFO file, and therefore not available when reading +from dumped VOB files. +

+

The format for this option is a string containing 16 24-bits hexadecimal +numbers (without 0x prefix) separated by comas, for example 0d00ee, +ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b, 0d617a, 7b7b7b, d1d1d1, +7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c, 7c127b. +

+
+ + +

13.2 libzvbi-teletext

+ +

Libzvbi allows libavcodec to decode DVB teletext pages and DVB teletext +subtitles. Requires the presence of the libzvbi headers and library during +configuration. You need to explicitly configure the build with +--enable-libzvbi. +

+ +

13.2.1 Options

+ +
+
txt_page
+

List of teletext page numbers to decode. You may use the special * string to +match all pages. Pages that do not match the specified list are dropped. +Default value is *. +

+
txt_chop_top
+

Discards the top teletext line. Default value is 1. +

+
txt_format
+

Specifies the format of the decoded subtitles. The teletext decoder is capable +of decoding the teletext pages to bitmaps or to simple text, you should use +"bitmap" for teletext pages, because certain graphics and colors cannot be +expressed in simple text. You might use "text" for teletext based subtitles if +your application can handle simple text based subtitles. Default value is +bitmap. +

+
txt_left
+

X offset of generated bitmaps, default is 0. +

+
txt_top
+

Y offset of generated bitmaps, default is 0. +

+
txt_chop_spaces
+

Chops leading and trailing spaces and removes empty lines from the generated +text. This option is useful for teletext based subtitles where empty spaces may +be present at the start or at the end of the lines or empty lines may be +present between the subtitle lines because of double-sized teletext charactes. +Default value is 1. +

+
txt_duration
+

Sets the display duration of the decoded teletext pages or subtitles in +miliseconds. Default value is 30000 which is 30 seconds. +

+
txt_transparent
+

Force transparent background of the generated teletext bitmaps. Default value +is 0 which means an opaque (black) background. +

+
+ + +

14. Bitstream Filters

+ +

When you configure your FFmpeg build, all the supported bitstream +filters are enabled by default. You can list all available ones using +the configure option --list-bsfs. +

+

You can disable all the bitstream filters using the configure option +--disable-bsfs, and selectively enable any bitstream filter using +the option --enable-bsf=BSF, or you can disable a particular +bitstream filter using the option --disable-bsf=BSF. +

+

The option -bsfs of the ff* tools will display the list of +all the supported bitstream filters included in your build. +

+

Below is a description of the currently available bitstream filters. +

+ +

14.1 aac_adtstoasc

+ +

Convert MPEG-2/4 AAC ADTS to MPEG-4 Audio Specific Configuration +bitstream filter. +

+

This filter creates an MPEG-4 AudioSpecificConfig from an MPEG-2/4 +ADTS header and removes the ADTS header. +

+

This is required for example when copying an AAC stream from a raw +ADTS AAC container to a FLV or a MOV/MP4 file. +

+ +

14.2 chomp

+ +

Remove zero padding at the end of a packet. +

+ +

14.3 dump_extra

+ +

Add extradata to the beginning of the filtered packets. +

+

The additional argument specifies which packets should be filtered. +It accepts the values: +

+
a
+

add extradata to all key packets, but only if local_header is +set in the ‘flags2’ codec context field +

+
+
k
+

add extradata to all key packets +

+
+
e
+

add extradata to all packets +

+
+ +

If not specified it is assumed ‘k’. +

+

For example the following ffmpeg command forces a global +header (thus disabling individual packet headers) in the H.264 packets +generated by the libx264 encoder, but corrects them by adding +the header stored in extradata to the key packets: +

 
ffmpeg -i INPUT -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra out.ts
+
+ + +

14.4 h264_mp4toannexb

+ +

Convert an H.264 bitstream from length prefixed mode to start code +prefixed mode (as defined in the Annex B of the ITU-T H.264 +specification). +

+

This is required by some streaming formats, typically the MPEG-2 +transport stream format ("mpegts"). +

+

For example to remux an MP4 file containing an H.264 stream to mpegts +format with ffmpeg, you can use the command: +

+
 
ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264_mp4toannexb OUTPUT.ts
+
+ + +

14.5 imx_dump_header

+ + +

14.6 mjpeg2jpeg

+ +

Convert MJPEG/AVI1 packets to full JPEG/JFIF packets. +

+

MJPEG is a video codec wherein each video frame is essentially a +JPEG image. The individual frames can be extracted without loss, +e.g. by +

+
 
ffmpeg -i ../some_mjpeg.avi -c:v copy frames_%d.jpg
+
+ +

Unfortunately, these chunks are incomplete JPEG images, because +they lack the DHT segment required for decoding. Quoting from +http://www.digitalpreservation.gov/formats/fdd/fdd000063.shtml: +

+

Avery Lee, writing in the rec.video.desktop newsgroup in 2001, +commented that "MJPEG, or at least the MJPEG in AVIs having the +MJPG fourcc, is restricted JPEG with a fixed – and *omitted* – +Huffman table. The JPEG must be YCbCr colorspace, it must be 4:2:2, +and it must use basic Huffman encoding, not arithmetic or +progressive. . . . You can indeed extract the MJPEG frames and +decode them with a regular JPEG decoder, but you have to prepend +the DHT segment to them, or else the decoder won’t have any idea +how to decompress the data. The exact table necessary is given in +the OpenDML spec." +

+

This bitstream filter patches the header of frames extracted from an MJPEG +stream (carrying the AVI1 header ID and lacking a DHT segment) to +produce fully qualified JPEG images. +

+
 
ffmpeg -i mjpeg-movie.avi -c:v copy -bsf:v mjpeg2jpeg frame_%d.jpg
+exiftran -i -9 frame*.jpg
+ffmpeg -i frame_%d.jpg -c:v copy rotated.avi
+
+ + +

14.7 mjpega_dump_header

+ + +

14.8 movsub

+ + +

14.9 mp3_header_decompress

+ + +

14.10 noise

+ + +

14.11 remove_extra

+ + +

15. Format Options

+ +

The libavformat library provides some generic global options, which +can be set on all the muxers and demuxers. In addition each muxer or +demuxer may support so-called private options, which are specific for +that component. +

+

Options may be set by specifying -option value in the +FFmpeg tools, or by setting the value explicitly in the +AVFormatContext options or using the ‘libavutil/opt.h’ API +for programmatic use. +

+

The list of supported options follows: +

+
+
avioflags flags (input/output)
+

Possible values: +

+
direct
+

Reduce buffering. +

+
+ +
+
probesize integer (input)
+

Set probing size in bytes, i.e. the size of the data to analyze to get +stream information. A higher value will allow to detect more +information in case it is dispersed into the stream, but will increase +latency. Must be an integer not lesser than 32. It is 5000000 by default. +

+
+
packetsize integer (output)
+

Set packet size. +

+
+
fflags flags (input/output)
+

Set format flags. +

+

Possible values: +

+
ignidx
+

Ignore index. +

+
genpts
+

Generate PTS. +

+
nofillin
+

Do not fill in missing values that can be exactly calculated. +

+
noparse
+

Disable AVParsers, this needs +nofillin too. +

+
igndts
+

Ignore DTS. +

+
discardcorrupt
+

Discard corrupted frames. +

+
sortdts
+

Try to interleave output packets by DTS. +

+
keepside
+

Do not merge side data. +

+
latm
+

Enable RTP MP4A-LATM payload. +

+
nobuffer
+

Reduce the latency introduced by optional buffering +

+
+ +
+
seek2any integer (input)
+

Allow seeking to non-keyframes on demuxer level when supported if set to 1. +Default is 0. +

+
+
analyzeduration integer (input)
+

Specify how many microseconds are analyzed to probe the input. A +higher value will allow to detect more accurate information, but will +increase latency. It defaults to 5,000,000 microseconds = 5 seconds. +

+
+
cryptokey hexadecimal string (input)
+

Set decryption key. +

+
+
indexmem integer (input)
+

Set max memory used for timestamp index (per stream). +

+
+
rtbufsize integer (input)
+

Set max memory used for buffering real-time frames. +

+
+
fdebug flags (input/output)
+

Print specific debug info. +

+

Possible values: +

+
ts
+
+ +
+
max_delay integer (input/output)
+

Set maximum muxing or demuxing delay in microseconds. +

+
+
fpsprobesize integer (input)
+

Set number of frames used to probe fps. +

+
+
audio_preload integer (output)
+

Set microseconds by which audio packets should be interleaved earlier. +

+
+
chunk_duration integer (output)
+

Set microseconds for each chunk. +

+
+
chunk_size integer (output)
+

Set size in bytes for each chunk. +

+
+
err_detect, f_err_detect flags (input)
+

Set error detection flags. f_err_detect is deprecated and +should be used only via the ffmpeg tool. +

+

Possible values: +

+
crccheck
+

Verify embedded CRCs. +

+
bitstream
+

Detect bitstream specification deviations. +

+
buffer
+

Detect improper bitstream length. +

+
explode
+

Abort decoding on minor error detection. +

+
careful
+

Consider things that violate the spec and have not been seen in the +wild as errors. +

+
compliant
+

Consider all spec non compliancies as errors. +

+
aggressive
+

Consider things that a sane encoder should not do as an error. +

+
+ +
+
use_wallclock_as_timestamps integer (input)
+

Use wallclock as timestamps. +

+
+
avoid_negative_ts integer (output)
+
+

Possible values: +

+
make_non_negative
+

Shift timestamps to make them non-negative. +Also note that this affects only leading negative timestamps, and not +non-monotonic negative timestamps. +

+
make_zero
+

Shift timestamps so that the first timestamp is 0. +

+
auto (default)
+

Enables shifting when required by the target format. +

+
disabled
+

Disables shifting of timestamp. +

+
+ +

When shifting is enabled, all output timestamps are shifted by the +same amount. Audio, video, and subtitles desynching and relative +timestamp differences are preserved compared to how they would have +been without shifting. +

+
+
skip_initial_bytes integer (input)
+

Set number of bytes to skip before reading header and frames if set to 1. +Default is 0. +

+
+
correct_ts_overflow integer (input)
+

Correct single timestamp overflows if set to 1. Default is 1. +

+
+
flush_packets integer (output)
+

Flush the underlying I/O stream after each packet. Default 1 enables it, and +has the effect of reducing the latency; 0 disables it and may slightly +increase performance in some cases. +

+
+
output_ts_offset offset (output)
+

Set the output time offset. +

+

offset must be a time duration specification, +see (ffmpeg-utils)time duration syntax. +

+

The offset is added by the muxer to the output timestamps. +

+

Specifying a positive offset means that the corresponding streams are +delayed bt the time duration specified in offset. Default value +is 0 (meaning that no offset is applied). +

+
+ + +

+

+

15.1 Format stream specifiers

+ +

Format stream specifiers allow selection of one or more streams that +match specific properties. +

+

Possible forms of stream specifiers are: +

+
stream_index
+

Matches the stream with this index. +

+
+
stream_type[:stream_index]
+

stream_type is one of following: ’v’ for video, ’a’ for audio, +’s’ for subtitle, ’d’ for data, and ’t’ for attachments. If +stream_index is given, then it matches the stream number +stream_index of this type. Otherwise, it matches all streams of +this type. +

+
+
p:program_id[:stream_index]
+

If stream_index is given, then it matches the stream with number +stream_index in the program with the id +program_id. Otherwise, it matches all streams in the program. +

+
+
#stream_id
+

Matches the stream by a format-specific ID. +

+
+ +

The exact semantics of stream specifiers is defined by the +avformat_match_stream_specifier() function declared in the +‘libavformat/avformat.h’ header. +

+ +

16. Demuxers

+ +

Demuxers are configured elements in FFmpeg that can read the +multimedia streams from a particular type of file. +

+

When you configure your FFmpeg build, all the supported demuxers +are enabled by default. You can list all available ones using the +configure option --list-demuxers. +

+

You can disable all the demuxers using the configure option +--disable-demuxers, and selectively enable a single demuxer with +the option --enable-demuxer=DEMUXER, or disable it +with the option --disable-demuxer=DEMUXER. +

+

The option -formats of the ff* tools will display the list of +enabled demuxers. +

+

The description of some of the currently available demuxers follows. +

+ +

16.1 applehttp

+ +

Apple HTTP Live Streaming demuxer. +

+

This demuxer presents all AVStreams from all variant streams. +The id field is set to the bitrate variant index number. By setting +the discard flags on AVStreams (by pressing ’a’ or ’v’ in ffplay), +the caller can decide which variant streams to actually receive. +The total bitrate of the variant that the stream belongs to is +available in a metadata key named "variant_bitrate". +

+ +

16.2 asf

+ +

Advanced Systems Format demuxer. +

+

This demuxer is used to demux ASF files and MMS network streams. +

+
+
-no_resync_search bool
+

Do not try to resynchronize by looking for a certain optional start code. +

+
+ +

+

+

16.3 concat

+ +

Virtual concatenation script demuxer. +

+

This demuxer reads a list of files and other directives from a text file and +demuxes them one after the other, as if all their packet had been muxed +together. +

+

The timestamps in the files are adjusted so that the first file starts at 0 +and each next file starts where the previous one finishes. Note that it is +done globally and may cause gaps if all streams do not have exactly the same +length. +

+

All files must have the same streams (same codecs, same time base, etc.). +

+

The duration of each file is used to adjust the timestamps of the next file: +if the duration is incorrect (because it was computed using the bit-rate or +because the file is truncated, for example), it can cause artifacts. The +duration directive can be used to override the duration stored in +each file. +

+ +

16.3.1 Syntax

+ +

The script is a text file in extended-ASCII, with one directive per line. +Empty lines, leading spaces and lines starting with ’#’ are ignored. The +following directive is recognized: +

+
+
file path
+

Path to a file to read; special characters and spaces must be escaped with +backslash or single quotes. +

+

All subsequent file-related directives apply to that file. +

+
+
ffconcat version 1.0
+

Identify the script type and version. It also sets the ‘safe’ option +to 1 if it was to its default -1. +

+

To make FFmpeg recognize the format automatically, this directive must +appears exactly as is (no extra space or byte-order-mark) on the very first +line of the script. +

+
+
duration dur
+

Duration of the file. This information can be specified from the file; +specifying it here may be more efficient or help if the information from the +file is not available or accurate. +

+

If the duration is set for all files, then it is possible to seek in the +whole concatenated video. +

+
+
stream
+

Introduce a stream in the virtual file. +All subsequent stream-related directives apply to the last introduced +stream. +Some streams properties must be set in order to allow identifying the +matching streams in the subfiles. +If no streams are defined in the script, the streams from the first file are +copied. +

+
+
exact_stream_id id
+

Set the id of the stream. +If this directive is given, the string with the corresponding id in the +subfiles will be used. +This is especially useful for MPEG-PS (VOB) files, where the order of the +streams is not reliable. +

+
+
+ + +

16.3.2 Options

+ +

This demuxer accepts the following option: +

+
+
safe
+

If set to 1, reject unsafe file paths. A file path is considered safe if it +does not contain a protocol specification and is relative and all components +only contain characters from the portable character set (letters, digits, +period, underscore and hyphen) and have no period at the beginning of a +component. +

+

If set to 0, any file name is accepted. +

+

The default is -1, it is equivalent to 1 if the format was automatically +probed and 0 otherwise. +

+
+
+ + +

16.4 flv

+ +

Adobe Flash Video Format demuxer. +

+

This demuxer is used to demux FLV files and RTMP network streams. +

+
+
-flv_metadata bool
+

Allocate the streams according to the onMetaData array content. +

+
+ + +

16.5 libgme

+ +

The Game Music Emu library is a collection of video game music file emulators. +

+

See http://code.google.com/p/game-music-emu/ for more information. +

+

Some files have multiple tracks. The demuxer will pick the first track by +default. The ‘track_index’ option can be used to select a different +track. Track indexes start at 0. The demuxer exports the number of tracks as +tracks meta data entry. +

+

For very large files, the ‘max_size’ option may have to be adjusted. +

+ +

16.6 libquvi

+ +

Play media from Internet services using the quvi project. +

+

The demuxer accepts a ‘format’ option to request a specific quality. It +is by default set to best. +

+

See http://quvi.sourceforge.net/ for more information. +

+

FFmpeg needs to be built with --enable-libquvi for this demuxer to be +enabled. +

+ +

16.7 image2

+ +

Image file demuxer. +

+

This demuxer reads from a list of image files specified by a pattern. +The syntax and meaning of the pattern is specified by the +option pattern_type. +

+

The pattern may contain a suffix which is used to automatically +determine the format of the images contained in the files. +

+

The size, the pixel format, and the format of each image must be the +same for all the files in the sequence. +

+

This demuxer accepts the following options: +

+
framerate
+

Set the frame rate for the video stream. It defaults to 25. +

+
loop
+

If set to 1, loop over the input. Default value is 0. +

+
pattern_type
+

Select the pattern type used to interpret the provided filename. +

+

pattern_type accepts one of the following values. +

+
sequence
+

Select a sequence pattern type, used to specify a sequence of files +indexed by sequential numbers. +

+

A sequence pattern may contain the string "%d" or "%0Nd", which +specifies the position of the characters representing a sequential +number in each filename matched by the pattern. If the form +"%d0Nd" is used, the string representing the number in each +filename is 0-padded and N is the total number of 0-padded +digits representing the number. The literal character ’%’ can be +specified in the pattern with the string "%%". +

+

If the sequence pattern contains "%d" or "%0Nd", the first filename of +the file list specified by the pattern must contain a number +inclusively contained between start_number and +start_number+start_number_range-1, and all the following +numbers must be sequential. +

+

For example the pattern "img-%03d.bmp" will match a sequence of +filenames of the form ‘img-001.bmp’, ‘img-002.bmp’, ..., +‘img-010.bmp’, etc.; the pattern "i%%m%%g-%d.jpg" will match a +sequence of filenames of the form ‘i%m%g-1.jpg’, +‘i%m%g-2.jpg’, ..., ‘i%m%g-10.jpg’, etc. +

+

Note that the pattern must not necessarily contain "%d" or +"%0Nd", for example to convert a single image file +‘img.jpeg’ you can employ the command: +

 
ffmpeg -i img.jpeg img.png
+
+ +
+
glob
+

Select a glob wildcard pattern type. +

+

The pattern is interpreted like a glob() pattern. This is only +selectable if libavformat was compiled with globbing support. +

+
+
glob_sequence (deprecated, will be removed)
+

Select a mixed glob wildcard/sequence pattern. +

+

If your version of libavformat was compiled with globbing support, and +the provided pattern contains at least one glob meta character among +%*?[]{} that is preceded by an unescaped "%", the pattern is +interpreted like a glob() pattern, otherwise it is interpreted +like a sequence pattern. +

+

All glob special characters %*?[]{} must be prefixed +with "%". To escape a literal "%" you shall use "%%". +

+

For example the pattern foo-%*.jpeg will match all the +filenames prefixed by "foo-" and terminating with ".jpeg", and +foo-%?%?%?.jpeg will match all the filenames prefixed with +"foo-", followed by a sequence of three characters, and terminating +with ".jpeg". +

+

This pattern type is deprecated in favor of glob and +sequence. +

+
+ +

Default value is glob_sequence. +

+
pixel_format
+

Set the pixel format of the images to read. If not specified the pixel +format is guessed from the first image file in the sequence. +

+
start_number
+

Set the index of the file matched by the image file pattern to start +to read from. Default value is 0. +

+
start_number_range
+

Set the index interval range to check when looking for the first image +file in the sequence, starting from start_number. Default value +is 5. +

+
ts_from_file
+

If set to 1, will set frame timestamp to modification time of image file. Note +that monotonity of timestamps is not provided: images go in the same order as +without this option. Default value is 0. +If set to 2, will set frame timestamp to the modification time of the image file in +nanosecond precision. +

+
video_size
+

Set the video size of the images to read. If not specified the video +size is guessed from the first image file in the sequence. +

+
+ + +

16.7.1 Examples

+ +
    +
  • +Use ffmpeg for creating a video from the images in the file +sequence ‘img-001.jpeg’, ‘img-002.jpeg’, ..., assuming an +input frame rate of 10 frames per second: +
     
    ffmpeg -framerate 10 -i 'img-%03d.jpeg' out.mkv
    +
    + +
  • +As above, but start by reading from a file with index 100 in the sequence: +
     
    ffmpeg -framerate 10 -start_number 100 -i 'img-%03d.jpeg' out.mkv
    +
    + +
  • +Read images matching the "*.png" glob pattern , that is all the files +terminating with the ".png" suffix: +
     
    ffmpeg -framerate 10 -pattern_type glob -i "*.png" out.mkv
    +
    +
+ + +

16.8 mpegts

+ +

MPEG-2 transport stream demuxer. +

+
+
fix_teletext_pts
+

Overrides teletext packet PTS and DTS values with the timestamps calculated +from the PCR of the first program which the teletext stream is part of and is +not discarded. Default value is 1, set this option to 0 if you want your +teletext packet PTS and DTS values untouched. +

+
+ + +

16.9 rawvideo

+ +

Raw video demuxer. +

+

This demuxer allows one to read raw video data. Since there is no header +specifying the assumed video parameters, the user must specify them +in order to be able to decode the data correctly. +

+

This demuxer accepts the following options: +

+
framerate
+

Set input video frame rate. Default value is 25. +

+
+
pixel_format
+

Set the input video pixel format. Default value is yuv420p. +

+
+
video_size
+

Set the input video size. This value must be specified explicitly. +

+
+ +

For example to read a rawvideo file ‘input.raw’ with +ffplay, assuming a pixel format of rgb24, a video +size of 320x240, and a frame rate of 10 images per second, use +the command: +

 
ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -framerate 10 input.raw
+
+ + +

16.10 sbg

+ +

SBaGen script demuxer. +

+

This demuxer reads the script language used by SBaGen +http://uazu.net/sbagen/ to generate binaural beats sessions. A SBG +script looks like that: +

 
-SE
+a: 300-2.5/3 440+4.5/0
+b: 300-2.5/0 440+4.5/3
+off: -
+NOW      == a
++0:07:00 == b
++0:14:00 == a
++0:21:00 == b
++0:30:00    off
+
+ +

A SBG script can mix absolute and relative timestamps. If the script uses +either only absolute timestamps (including the script start time) or only +relative ones, then its layout is fixed, and the conversion is +straightforward. On the other hand, if the script mixes both kind of +timestamps, then the NOW reference for relative timestamps will be +taken from the current time of day at the time the script is read, and the +script layout will be frozen according to that reference. That means that if +the script is directly played, the actual times will match the absolute +timestamps up to the sound controller’s clock accuracy, but if the user +somehow pauses the playback or seeks, all times will be shifted accordingly. +

+ +

16.11 tedcaptions

+ +

JSON captions used for TED Talks. +

+

TED does not provide links to the captions, but they can be guessed from the +page. The file ‘tools/bookmarklets.html’ from the FFmpeg source tree +contains a bookmarklet to expose them. +

+

This demuxer accepts the following option: +

+
start_time
+

Set the start time of the TED talk, in milliseconds. The default is 15000 +(15s). It is used to sync the captions with the downloadable videos, because +they include a 15s intro. +

+
+ +

Example: convert the captions to a format most players understand: +

 
ffmpeg -i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-en.srt
+
+ + +

17. Metadata

+ +

FFmpeg is able to dump metadata from media files into a simple UTF-8-encoded +INI-like text file and then load it back using the metadata muxer/demuxer. +

+

The file format is as follows: +

    +
  1. +A file consists of a header and a number of metadata tags divided into sections, +each on its own line. + +
  2. +The header is a ’;FFMETADATA’ string, followed by a version number (now 1). + +
  3. +Metadata tags are of the form ’key=value’ + +
  4. +Immediately after header follows global metadata + +
  5. +After global metadata there may be sections with per-stream/per-chapter +metadata. + +
  6. +A section starts with the section name in uppercase (i.e. STREAM or CHAPTER) in +brackets (’[’, ’]’) and ends with next section or end of file. + +
  7. +At the beginning of a chapter section there may be an optional timebase to be +used for start/end values. It must be in form ’TIMEBASE=num/den’, where num and +den are integers. If the timebase is missing then start/end times are assumed to +be in milliseconds. +Next a chapter section must contain chapter start and end times in form +’START=num’, ’END=num’, where num is a positive integer. + +
  8. +Empty lines and lines starting with ’;’ or ’#’ are ignored. + +
  9. +Metadata keys or values containing special characters (’=’, ’;’, ’#’, ’\’ and a +newline) must be escaped with a backslash ’\’. + +
  10. +Note that whitespace in metadata (e.g. foo = bar) is considered to be a part of +the tag (in the example above key is ’foo ’, value is ’ bar’). +
+ +

A ffmetadata file might look like this: +

 
;FFMETADATA1
+title=bike\\shed
+;this is a comment
+artist=FFmpeg troll team
+
+[CHAPTER]
+TIMEBASE=1/1000
+START=0
+#chapter ends at 0:01:00
+END=60000
+title=chapter \#1
+[STREAM]
+title=multi\
+line
+
+ +

By using the ffmetadata muxer and demuxer it is possible to extract +metadata from an input file to an ffmetadata file, and then transcode +the file into an output file with the edited ffmetadata file. +

+

Extracting an ffmetadata file with ‘ffmpeg’ goes as follows: +

 
ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE
+
+ +

Reinserting edited metadata information from the FFMETADATAFILE file can +be done as: +

 
ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec copy OUTPUT
+
+ + +

18. Protocols

+ +

Protocols are configured elements in FFmpeg that enable access to +resources that require specific protocols. +

+

When you configure your FFmpeg build, all the supported protocols are +enabled by default. You can list all available ones using the +configure option "–list-protocols". +

+

You can disable all the protocols using the configure option +"–disable-protocols", and selectively enable a protocol using the +option "–enable-protocol=PROTOCOL", or you can disable a +particular protocol using the option +"–disable-protocol=PROTOCOL". +

+

The option "-protocols" of the ff* tools will display the list of +supported protocols. +

+

A description of the currently available protocols follows. +

+ +

18.1 bluray

+ +

Read BluRay playlist. +

+

The accepted options are: +

+
angle
+

BluRay angle +

+
+
chapter
+

Start chapter (1...N) +

+
+
playlist
+

Playlist to read (BDMV/PLAYLIST/?????.mpls) +

+
+
+ +

Examples: +

+

Read longest playlist from BluRay mounted to /mnt/bluray: +

 
bluray:/mnt/bluray
+
+ +

Read angle 2 of playlist 4 from BluRay mounted to /mnt/bluray, start from chapter 2: +

 
-playlist 4 -angle 2 -chapter 2 bluray:/mnt/bluray
+
+ + +

18.2 cache

+ +

Caching wrapper for input stream. +

+

Cache the input stream to temporary file. It brings seeking capability to live streams. +

+
 
cache:URL
+
+ + +

18.3 concat

+ +

Physical concatenation protocol. +

+

Allow to read and seek from many resource in sequence as if they were +a unique resource. +

+

A URL accepted by this protocol has the syntax: +

 
concat:URL1|URL2|...|URLN
+
+ +

where URL1, URL2, ..., URLN are the urls of the +resource to be concatenated, each one possibly specifying a distinct +protocol. +

+

For example to read a sequence of files ‘split1.mpeg’, +‘split2.mpeg’, ‘split3.mpeg’ with ffplay use the +command: +

 
ffplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg
+
+ +

Note that you may need to escape the character "|" which is special for +many shells. +

+ +

18.4 crypto

+ +

AES-encrypted stream reading protocol. +

+

The accepted options are: +

+
key
+

Set the AES decryption key binary block from given hexadecimal representation. +

+
+
iv
+

Set the AES decryption initialization vector binary block from given hexadecimal representation. +

+
+ +

Accepted URL formats: +

 
crypto:URL
+crypto+URL
+
+ + +

18.5 data

+ +

Data in-line in the URI. See http://en.wikipedia.org/wiki/Data_URI_scheme. +

+

For example, to convert a GIF file given inline with ffmpeg: +

 
ffmpeg -i "data:image/gif;base64,R0lGODdhCAAIAMIEAAAAAAAA//8AAP//AP///////////////ywAAAAACAAIAAADF0gEDLojDgdGiJdJqUX02iB4E8Q9jUMkADs=" smiley.png
+
+ + +

18.6 file

+ +

File access protocol. +

+

Allow to read from or write to a file. +

+

A file URL can have the form: +

 
file:filename
+
+ +

where filename is the path of the file to read. +

+

An URL that does not have a protocol prefix will be assumed to be a +file URL. Depending on the build, an URL that looks like a Windows +path with the drive letter at the beginning will also be assumed to be +a file URL (usually not the case in builds for unix-like systems). +

+

For example to read from a file ‘input.mpeg’ with ffmpeg +use the command: +

 
ffmpeg -i file:input.mpeg output.mpeg
+
+ +

This protocol accepts the following options: +

+
+
truncate
+

Truncate existing files on write, if set to 1. A value of 0 prevents +truncating. Default value is 1. +

+
+
blocksize
+

Set I/O operation maximum block size, in bytes. Default value is +INT_MAX, which results in not limiting the requested block size. +Setting this value reasonably low improves user termination request reaction +time, which is valuable for files on slow medium. +

+
+ + +

18.7 ftp

+ +

FTP (File Transfer Protocol). +

+

Allow to read from or write to remote resources using FTP protocol. +

+

Following syntax is required. +

 
ftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
+
+ +

This protocol accepts the following options. +

+
+
timeout
+

Set timeout of socket I/O operations used by the underlying low level +operation. By default it is set to -1, which means that the timeout is +not specified. +

+
+
ftp-anonymous-password
+

Password used when login as anonymous user. Typically an e-mail address +should be used. +

+
+
ftp-write-seekable
+

Control seekability of connection during encoding. If set to 1 the +resource is supposed to be seekable, if set to 0 it is assumed not +to be seekable. Default value is 0. +

+
+ +

NOTE: Protocol can be used as output, but it is recommended to not do +it, unless special care is taken (tests, customized server configuration +etc.). Different FTP servers behave in different way during seek +operation. ff* tools may produce incomplete content due to server limitations. +

+ +

18.8 gopher

+ +

Gopher protocol. +

+ +

18.9 hls

+ +

Read Apple HTTP Live Streaming compliant segmented stream as +a uniform one. The M3U8 playlists describing the segments can be +remote HTTP resources or local files, accessed using the standard +file protocol. +The nested protocol is declared by specifying +"+proto" after the hls URI scheme name, where proto +is either "file" or "http". +

+
 
hls+http://host/path/to/remote/resource.m3u8
+hls+file://path/to/local/resource.m3u8
+
+ +

Using this protocol is discouraged - the hls demuxer should work +just as well (if not, please report the issues) and is more complete. +To use the hls demuxer instead, simply use the direct URLs to the +m3u8 files. +

+ +

18.10 http

+ +

HTTP (Hyper Text Transfer Protocol). +

+

This protocol accepts the following options: +

+
+
seekable
+

Control seekability of connection. If set to 1 the resource is +supposed to be seekable, if set to 0 it is assumed not to be seekable, +if set to -1 it will try to autodetect if it is seekable. Default +value is -1. +

+
+
chunked_post
+

If set to 1 use chunked Transfer-Encoding for posts, default is 1. +

+
+
content_type
+

Set a specific content type for the POST messages. +

+
+
headers
+

Set custom HTTP headers, can override built in default headers. The +value must be a string encoding the headers. +

+
+
multiple_requests
+

Use persistent connections if set to 1, default is 0. +

+
+
post_data
+

Set custom HTTP post data. +

+
+
user-agent
+
user_agent
+

Override the User-Agent header. If not specified the protocol will use a +string describing the libavformat build. ("Lavf/<version>") +

+
+
timeout
+

Set timeout of socket I/O operations used by the underlying low level +operation. By default it is set to -1, which means that the timeout is +not specified. +

+
+
mime_type
+

Export the MIME type. +

+
+
icy
+

If set to 1 request ICY (SHOUTcast) metadata from the server. If the server +supports this, the metadata has to be retrieved by the application by reading +the ‘icy_metadata_headers’ and ‘icy_metadata_packet’ options. +The default is 0. +

+
+
icy_metadata_headers
+

If the server supports ICY metadata, this contains the ICY-specific HTTP reply +headers, separated by newline characters. +

+
+
icy_metadata_packet
+

If the server supports ICY metadata, and ‘icy’ was set to 1, this +contains the last non-empty metadata packet sent by the server. It should be +polled in regular intervals by applications interested in mid-stream metadata +updates. +

+
+
cookies
+

Set the cookies to be sent in future requests. The format of each cookie is the +same as the value of a Set-Cookie HTTP response field. Multiple cookies can be +delimited by a newline character. +

+
+
offset
+

Set initial byte offset. +

+
+
end_offset
+

Try to limit the request to bytes preceding this offset. +

+
+ + +

18.10.1 HTTP Cookies

+ +

Some HTTP requests will be denied unless cookie values are passed in with the +request. The ‘cookies’ option allows these cookies to be specified. At +the very least, each cookie must specify a value along with a path and domain. +HTTP requests that match both the domain and path will automatically include the +cookie value in the HTTP Cookie header field. Multiple cookies can be delimited +by a newline. +

+

The required syntax to play a stream specifying a cookie is: +

 
ffplay -cookies "nlqptid=nltid=tsn; path=/; domain=somedomain.com;" http://somedomain.com/somestream.m3u8
+
+ + +

18.11 mmst

+ +

MMS (Microsoft Media Server) protocol over TCP. +

+ +

18.12 mmsh

+ +

MMS (Microsoft Media Server) protocol over HTTP. +

+

The required syntax is: +

 
mmsh://server[:port][/app][/playpath]
+
+ + +

18.13 md5

+ +

MD5 output protocol. +

+

Computes the MD5 hash of the data to be written, and on close writes +this to the designated output or stdout if none is specified. It can +be used to test muxers without writing an actual file. +

+

Some examples follow. +

 
# Write the MD5 hash of the encoded AVI file to the file output.avi.md5.
+ffmpeg -i input.flv -f avi -y md5:output.avi.md5
+
+# Write the MD5 hash of the encoded AVI file to stdout.
+ffmpeg -i input.flv -f avi -y md5:
+
+ +

Note that some formats (typically MOV) require the output protocol to +be seekable, so they will fail with the MD5 output protocol. +

+ +

18.14 pipe

+ +

UNIX pipe access protocol. +

+

Allow to read and write from UNIX pipes. +

+

The accepted syntax is: +

 
pipe:[number]
+
+ +

number is the number corresponding to the file descriptor of the +pipe (e.g. 0 for stdin, 1 for stdout, 2 for stderr). If number +is not specified, by default the stdout file descriptor will be used +for writing, stdin for reading. +

+

For example to read from stdin with ffmpeg: +

 
cat test.wav | ffmpeg -i pipe:0
+# ...this is the same as...
+cat test.wav | ffmpeg -i pipe:
+
+ +

For writing to stdout with ffmpeg: +

 
ffmpeg -i test.wav -f avi pipe:1 | cat > test.avi
+# ...this is the same as...
+ffmpeg -i test.wav -f avi pipe: | cat > test.avi
+
+ +

This protocol accepts the following options: +

+
+
blocksize
+

Set I/O operation maximum block size, in bytes. Default value is +INT_MAX, which results in not limiting the requested block size. +Setting this value reasonably low improves user termination request reaction +time, which is valuable if data transmission is slow. +

+
+ +

Note that some formats (typically MOV), require the output protocol to +be seekable, so they will fail with the pipe output protocol. +

+ +

18.15 rtmp

+ +

Real-Time Messaging Protocol. +

+

The Real-Time Messaging Protocol (RTMP) is used for streaming multimedia +content across a TCP/IP network. +

+

The required syntax is: +

 
rtmp://[username:password@]server[:port][/app][/instance][/playpath]
+
+ +

The accepted parameters are: +

+
username
+

An optional username (mostly for publishing). +

+
+
password
+

An optional password (mostly for publishing). +

+
+
server
+

The address of the RTMP server. +

+
+
port
+

The number of the TCP port to use (by default is 1935). +

+
+
app
+

It is the name of the application to access. It usually corresponds to +the path where the application is installed on the RTMP server +(e.g. ‘/ondemand/’, ‘/flash/live/’, etc.). You can override +the value parsed from the URI through the rtmp_app option, too. +

+
+
playpath
+

It is the path or name of the resource to play with reference to the +application specified in app, may be prefixed by "mp4:". You +can override the value parsed from the URI through the rtmp_playpath +option, too. +

+
+
listen
+

Act as a server, listening for an incoming connection. +

+
+
timeout
+

Maximum time to wait for the incoming connection. Implies listen. +

+
+ +

Additionally, the following parameters can be set via command line options +(or in code via AVOptions): +

+
rtmp_app
+

Name of application to connect on the RTMP server. This option +overrides the parameter specified in the URI. +

+
+
rtmp_buffer
+

Set the client buffer time in milliseconds. The default is 3000. +

+
+
rtmp_conn
+

Extra arbitrary AMF connection parameters, parsed from a string, +e.g. like B:1 S:authMe O:1 NN:code:1.23 NS:flag:ok O:0. +Each value is prefixed by a single character denoting the type, +B for Boolean, N for number, S for string, O for object, or Z for null, +followed by a colon. For Booleans the data must be either 0 or 1 for +FALSE or TRUE, respectively. Likewise for Objects the data must be 0 or +1 to end or begin an object, respectively. Data items in subobjects may +be named, by prefixing the type with ’N’ and specifying the name before +the value (i.e. NB:myFlag:1). This option may be used multiple +times to construct arbitrary AMF sequences. +

+
+
rtmp_flashver
+

Version of the Flash plugin used to run the SWF player. The default +is LNX 9,0,124,2. (When publishing, the default is FMLE/3.0 (compatible; +<libavformat version>).) +

+
+
rtmp_flush_interval
+

Number of packets flushed in the same request (RTMPT only). The default +is 10. +

+
+
rtmp_live
+

Specify that the media is a live stream. No resuming or seeking in +live streams is possible. The default value is any, which means the +subscriber first tries to play the live stream specified in the +playpath. If a live stream of that name is not found, it plays the +recorded stream. The other possible values are live and +recorded. +

+
+
rtmp_pageurl
+

URL of the web page in which the media was embedded. By default no +value will be sent. +

+
+
rtmp_playpath
+

Stream identifier to play or to publish. This option overrides the +parameter specified in the URI. +

+
+
rtmp_subscribe
+

Name of live stream to subscribe to. By default no value will be sent. +It is only sent if the option is specified or if rtmp_live +is set to live. +

+
+
rtmp_swfhash
+

SHA256 hash of the decompressed SWF file (32 bytes). +

+
+
rtmp_swfsize
+

Size of the decompressed SWF file, required for SWFVerification. +

+
+
rtmp_swfurl
+

URL of the SWF player for the media. By default no value will be sent. +

+
+
rtmp_swfverify
+

URL to player swf file, compute hash/size automatically. +

+
+
rtmp_tcurl
+

URL of the target stream. Defaults to proto://host[:port]/app. +

+
+
+ +

For example to read with ffplay a multimedia resource named +"sample" from the application "vod" from an RTMP server "myserver": +

 
ffplay rtmp://myserver/vod/sample
+
+ +

To publish to a password protected server, passing the playpath and +app names separately: +

 
ffmpeg -re -i <input> -f flv -rtmp_playpath some/long/path -rtmp_app long/app/name rtmp://username:password@myserver/
+
+ + +

18.16 rtmpe

+ +

Encrypted Real-Time Messaging Protocol. +

+

The Encrypted Real-Time Messaging Protocol (RTMPE) is used for +streaming multimedia content within standard cryptographic primitives, +consisting of Diffie-Hellman key exchange and HMACSHA256, generating +a pair of RC4 keys. +

+ +

18.17 rtmps

+ +

Real-Time Messaging Protocol over a secure SSL connection. +

+

The Real-Time Messaging Protocol (RTMPS) is used for streaming +multimedia content across an encrypted connection. +

+ +

18.18 rtmpt

+ +

Real-Time Messaging Protocol tunneled through HTTP. +

+

The Real-Time Messaging Protocol tunneled through HTTP (RTMPT) is used +for streaming multimedia content within HTTP requests to traverse +firewalls. +

+ +

18.19 rtmpte

+ +

Encrypted Real-Time Messaging Protocol tunneled through HTTP. +

+

The Encrypted Real-Time Messaging Protocol tunneled through HTTP (RTMPTE) +is used for streaming multimedia content within HTTP requests to traverse +firewalls. +

+ +

18.20 rtmpts

+ +

Real-Time Messaging Protocol tunneled through HTTPS. +

+

The Real-Time Messaging Protocol tunneled through HTTPS (RTMPTS) is used +for streaming multimedia content within HTTPS requests to traverse +firewalls. +

+ +

18.21 libssh

+ +

Secure File Transfer Protocol via libssh +

+

Allow to read from or write to remote resources using SFTP protocol. +

+

Following syntax is required. +

+
 
sftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
+
+ +

This protocol accepts the following options. +

+
+
timeout
+

Set timeout of socket I/O operations used by the underlying low level +operation. By default it is set to -1, which means that the timeout +is not specified. +

+
+
truncate
+

Truncate existing files on write, if set to 1. A value of 0 prevents +truncating. Default value is 1. +

+
+
private_key
+

Specify the path of the file containing private key to use during authorization. +By default libssh searches for keys in the ‘~/.ssh/’ directory. +

+
+
+ +

Example: Play a file stored on remote server. +

+
 
ffplay sftp://user:password@server_address:22/home/user/resource.mpeg
+
+ + +

18.22 librtmp rtmp, rtmpe, rtmps, rtmpt, rtmpte

+ +

Real-Time Messaging Protocol and its variants supported through +librtmp. +

+

Requires the presence of the librtmp headers and library during +configuration. You need to explicitly configure the build with +"–enable-librtmp". If enabled this will replace the native RTMP +protocol. +

+

This protocol provides most client functions and a few server +functions needed to support RTMP, RTMP tunneled in HTTP (RTMPT), +encrypted RTMP (RTMPE), RTMP over SSL/TLS (RTMPS) and tunneled +variants of these encrypted types (RTMPTE, RTMPTS). +

+

The required syntax is: +

 
rtmp_proto://server[:port][/app][/playpath] options
+
+ +

where rtmp_proto is one of the strings "rtmp", "rtmpt", "rtmpe", +"rtmps", "rtmpte", "rtmpts" corresponding to each RTMP variant, and +server, port, app and playpath have the same +meaning as specified for the RTMP native protocol. +options contains a list of space-separated options of the form +key=val. +

+

See the librtmp manual page (man 3 librtmp) for more information. +

+

For example, to stream a file in real-time to an RTMP server using +ffmpeg: +

 
ffmpeg -re -i myfile -f flv rtmp://myserver/live/mystream
+
+ +

To play the same stream using ffplay: +

 
ffplay "rtmp://myserver/live/mystream live=1"
+
+ + +

18.23 rtp

+ +

Real-time Transport Protocol. +

+

The required syntax for an RTP URL is: +rtp://hostname[:port][?option=val...] +

+

port specifies the RTP port to use. +

+

The following URL options are supported: +

+
+
ttl=n
+

Set the TTL (Time-To-Live) value (for multicast only). +

+
+
rtcpport=n
+

Set the remote RTCP port to n. +

+
+
localrtpport=n
+

Set the local RTP port to n. +

+
+
localrtcpport=n'
+

Set the local RTCP port to n. +

+
+
pkt_size=n
+

Set max packet size (in bytes) to n. +

+
+
connect=0|1
+

Do a connect() on the UDP socket (if set to 1) or not (if set +to 0). +

+
+
sources=ip[,ip]
+

List allowed source IP addresses. +

+
+
block=ip[,ip]
+

List disallowed (blocked) source IP addresses. +

+
+
write_to_source=0|1
+

Send packets to the source address of the latest received packet (if +set to 1) or to a default remote address (if set to 0). +

+
+
localport=n
+

Set the local RTP port to n. +

+

This is a deprecated option. Instead, ‘localrtpport’ should be +used. +

+
+
+ +

Important notes: +

+
    +
  1. +If ‘rtcpport’ is not set the RTCP port will be set to the RTP +port value plus 1. + +
  2. +If ‘localrtpport’ (the local RTP port) is not set any available +port will be used for the local RTP and RTCP ports. + +
  3. +If ‘localrtcpport’ (the local RTCP port) is not set it will be +set to the the local RTP port value plus 1. +
+ + +

18.24 rtsp

+ +

Real-Time Streaming Protocol. +

+

RTSP is not technically a protocol handler in libavformat, it is a demuxer +and muxer. The demuxer supports both normal RTSP (with data transferred +over RTP; this is used by e.g. Apple and Microsoft) and Real-RTSP (with +data transferred over RDT). +

+

The muxer can be used to send a stream using RTSP ANNOUNCE to a server +supporting it (currently Darwin Streaming Server and Mischa Spiegelmock’s +RTSP server). +

+

The required syntax for a RTSP url is: +

 
rtsp://hostname[:port]/path
+
+ +

Options can be set on the ffmpeg/ffplay command +line, or set in code via AVOptions or in +avformat_open_input. +

+

The following options are supported. +

+
+
initial_pause
+

Do not start playing the stream immediately if set to 1. Default value +is 0. +

+
+
rtsp_transport
+

Set RTSP trasport protocols. +

+

It accepts the following values: +

+
udp
+

Use UDP as lower transport protocol. +

+
+
tcp
+

Use TCP (interleaving within the RTSP control channel) as lower +transport protocol. +

+
+
udp_multicast
+

Use UDP multicast as lower transport protocol. +

+
+
http
+

Use HTTP tunneling as lower transport protocol, which is useful for +passing proxies. +

+
+ +

Multiple lower transport protocols may be specified, in that case they are +tried one at a time (if the setup of one fails, the next one is tried). +For the muxer, only the ‘tcp’ and ‘udp’ options are supported. +

+
+
rtsp_flags
+

Set RTSP flags. +

+

The following values are accepted: +

+
filter_src
+

Accept packets only from negotiated peer address and port. +

+
listen
+

Act as a server, listening for an incoming connection. +

+
prefer_tcp
+

Try TCP for RTP transport first, if TCP is available as RTSP RTP transport. +

+
+ +

Default value is ‘none’. +

+
+
allowed_media_types
+

Set media types to accept from the server. +

+

The following flags are accepted: +

+
video
+
audio
+
data
+
+ +

By default it accepts all media types. +

+
+
min_port
+

Set minimum local UDP port. Default value is 5000. +

+
+
max_port
+

Set maximum local UDP port. Default value is 65000. +

+
+
timeout
+

Set maximum timeout (in seconds) to wait for incoming connections. +

+

A value of -1 mean infinite (default). This option implies the +‘rtsp_flags’ set to ‘listen’. +

+
+
reorder_queue_size
+

Set number of packets to buffer for handling of reordered packets. +

+
+
stimeout
+

Set socket TCP I/O timeout in micro seconds. +

+
+
user-agent
+

Override User-Agent header. If not specified, it default to the +libavformat identifier string. +

+
+ +

When receiving data over UDP, the demuxer tries to reorder received packets +(since they may arrive out of order, or packets may get lost totally). This +can be disabled by setting the maximum demuxing delay to zero (via +the max_delay field of AVFormatContext). +

+

When watching multi-bitrate Real-RTSP streams with ffplay, the +streams to display can be chosen with -vst n and +-ast n for video and audio respectively, and can be switched +on the fly by pressing v and a. +

+ +

18.24.1 Examples

+ +

The following examples all make use of the ffplay and +ffmpeg tools. +

+
    +
  • +Watch a stream over UDP, with a max reordering delay of 0.5 seconds: +
     
    ffplay -max_delay 500000 -rtsp_transport udp rtsp://server/video.mp4
    +
    + +
  • +Watch a stream tunneled over HTTP: +
     
    ffplay -rtsp_transport http rtsp://server/video.mp4
    +
    + +
  • +Send a stream in realtime to a RTSP server, for others to watch: +
     
    ffmpeg -re -i input -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
    +
    + +
  • +Receive a stream in realtime: +
     
    ffmpeg -rtsp_flags listen -i rtsp://ownaddress/live.sdp output
    +
    +
+ + +

18.25 sap

+ +

Session Announcement Protocol (RFC 2974). This is not technically a +protocol handler in libavformat, it is a muxer and demuxer. +It is used for signalling of RTP streams, by announcing the SDP for the +streams regularly on a separate port. +

+ +

18.25.1 Muxer

+ +

The syntax for a SAP url given to the muxer is: +

 
sap://destination[:port][?options]
+
+ +

The RTP packets are sent to destination on port port, +or to port 5004 if no port is specified. +options is a &-separated list. The following options +are supported: +

+
+
announce_addr=address
+

Specify the destination IP address for sending the announcements to. +If omitted, the announcements are sent to the commonly used SAP +announcement multicast address 224.2.127.254 (sap.mcast.net), or +ff0e::2:7ffe if destination is an IPv6 address. +

+
+
announce_port=port
+

Specify the port to send the announcements on, defaults to +9875 if not specified. +

+
+
ttl=ttl
+

Specify the time to live value for the announcements and RTP packets, +defaults to 255. +

+
+
same_port=0|1
+

If set to 1, send all RTP streams on the same port pair. If zero (the +default), all streams are sent on unique ports, with each stream on a +port 2 numbers higher than the previous. +VLC/Live555 requires this to be set to 1, to be able to receive the stream. +The RTP stack in libavformat for receiving requires all streams to be sent +on unique ports. +

+
+ +

Example command lines follow. +

+

To broadcast a stream on the local subnet, for watching in VLC: +

+
 
ffmpeg -re -i input -f sap sap://224.0.0.255?same_port=1
+
+ +

Similarly, for watching in ffplay: +

+
 
ffmpeg -re -i input -f sap sap://224.0.0.255
+
+ +

And for watching in ffplay, over IPv6: +

+
 
ffmpeg -re -i input -f sap sap://[ff0e::1:2:3:4]
+
+ + +

18.25.2 Demuxer

+ +

The syntax for a SAP url given to the demuxer is: +

 
sap://[address][:port]
+
+ +

address is the multicast address to listen for announcements on, +if omitted, the default 224.2.127.254 (sap.mcast.net) is used. port +is the port that is listened on, 9875 if omitted. +

+

The demuxers listens for announcements on the given address and port. +Once an announcement is received, it tries to receive that particular stream. +

+

Example command lines follow. +

+

To play back the first stream announced on the normal SAP multicast address: +

+
 
ffplay sap://
+
+ +

To play back the first stream announced on one the default IPv6 SAP multicast address: +

+
 
ffplay sap://[ff0e::2:7ffe]
+
+ + +

18.26 sctp

+ +

Stream Control Transmission Protocol. +

+

The accepted URL syntax is: +

 
sctp://host:port[?options]
+
+ +

The protocol accepts the following options: +

+
listen
+

If set to any value, listen for an incoming connection. Outgoing connection is done by default. +

+
+
max_streams
+

Set the maximum number of streams. By default no limit is set. +

+
+ + +

18.27 srtp

+ +

Secure Real-time Transport Protocol. +

+

The accepted options are: +

+
srtp_in_suite
+
srtp_out_suite
+

Select input and output encoding suites. +

+

Supported values: +

+
AES_CM_128_HMAC_SHA1_80
+
SRTP_AES128_CM_HMAC_SHA1_80
+
AES_CM_128_HMAC_SHA1_32
+
SRTP_AES128_CM_HMAC_SHA1_32
+
+ +
+
srtp_in_params
+
srtp_out_params
+

Set input and output encoding parameters, which are expressed by a +base64-encoded representation of a binary block. The first 16 bytes of +this binary block are used as master key, the following 14 bytes are +used as master salt. +

+
+ + +

18.28 subfile

+ +

Virtually extract a segment of a file or another stream. +The underlying stream must be seekable. +

+

Accepted options: +

+
start
+

Start offset of the extracted segment, in bytes. +

+
end
+

End offset of the extracted segment, in bytes. +

+
+ +

Examples: +

+

Extract a chapter from a DVD VOB file (start and end sectors obtained +externally and multiplied by 2048): +

 
subfile,,start,153391104,end,268142592,,:/media/dvd/VIDEO_TS/VTS_08_1.VOB
+
+ +

Play an AVI file directly from a TAR archive: +subfile,,start,183241728,end,366490624,,:archive.tar +

+ +

18.29 tcp

+ +

Transmission Control Protocol. +

+

The required syntax for a TCP url is: +

 
tcp://hostname:port[?options]
+
+ +

options contains a list of &-separated options of the form +key=val. +

+

The list of supported options follows. +

+
+
listen=1|0
+

Listen for an incoming connection. Default value is 0. +

+
+
timeout=microseconds
+

Set raise error timeout, expressed in microseconds. +

+

This option is only relevant in read mode: if no data arrived in more +than this time interval, raise error. +

+
+
listen_timeout=microseconds
+

Set listen timeout, expressed in microseconds. +

+
+ +

The following example shows how to setup a listening TCP connection +with ffmpeg, which is then accessed with ffplay: +

 
ffmpeg -i input -f format tcp://hostname:port?listen
+ffplay tcp://hostname:port
+
+ + +

18.30 tls

+ +

Transport Layer Security (TLS) / Secure Sockets Layer (SSL) +

+

The required syntax for a TLS/SSL url is: +

 
tls://hostname:port[?options]
+
+ +

The following parameters can be set via command line options +(or in code via AVOptions): +

+
+
ca_file, cafile=filename
+

A file containing certificate authority (CA) root certificates to treat +as trusted. If the linked TLS library contains a default this might not +need to be specified for verification to work, but not all libraries and +setups have defaults built in. +The file must be in OpenSSL PEM format. +

+
+
tls_verify=1|0
+

If enabled, try to verify the peer that we are communicating with. +Note, if using OpenSSL, this currently only makes sure that the +peer certificate is signed by one of the root certificates in the CA +database, but it does not validate that the certificate actually +matches the host name we are trying to connect to. (With GnuTLS, +the host name is validated as well.) +

+

This is disabled by default since it requires a CA database to be +provided by the caller in many cases. +

+
+
cert_file, cert=filename
+

A file containing a certificate to use in the handshake with the peer. +(When operating as server, in listen mode, this is more often required +by the peer, while client certificates only are mandated in certain +setups.) +

+
+
key_file, key=filename
+

A file containing the private key for the certificate. +

+
+
listen=1|0
+

If enabled, listen for connections on the provided port, and assume +the server role in the handshake instead of the client role. +

+
+
+ +

Example command lines: +

+

To create a TLS/SSL server that serves an input stream. +

+
 
ffmpeg -i input -f format tls://hostname:port?listen&cert=server.crt&key=server.key
+
+ +

To play back a stream from the TLS/SSL server using ffplay: +

+
 
ffplay tls://hostname:port
+
+ + +

18.31 udp

+ +

User Datagram Protocol. +

+

The required syntax for an UDP URL is: +

 
udp://hostname:port[?options]
+
+ +

options contains a list of &-separated options of the form key=val. +

+

In case threading is enabled on the system, a circular buffer is used +to store the incoming data, which allows one to reduce loss of data due to +UDP socket buffer overruns. The fifo_size and +overrun_nonfatal options are related to this buffer. +

+

The list of supported options follows. +

+
+
buffer_size=size
+

Set the UDP maximum socket buffer size in bytes. This is used to set either +the receive or send buffer size, depending on what the socket is used for. +Default is 64KB. See also fifo_size. +

+
+
localport=port
+

Override the local UDP port to bind with. +

+
+
localaddr=addr
+

Choose the local IP address. This is useful e.g. if sending multicast +and the host has multiple interfaces, where the user can choose +which interface to send on by specifying the IP address of that interface. +

+
+
pkt_size=size
+

Set the size in bytes of UDP packets. +

+
+
reuse=1|0
+

Explicitly allow or disallow reusing UDP sockets. +

+
+
ttl=ttl
+

Set the time to live value (for multicast only). +

+
+
connect=1|0
+

Initialize the UDP socket with connect(). In this case, the +destination address can’t be changed with ff_udp_set_remote_url later. +If the destination address isn’t known at the start, this option can +be specified in ff_udp_set_remote_url, too. +This allows finding out the source address for the packets with getsockname, +and makes writes return with AVERROR(ECONNREFUSED) if "destination +unreachable" is received. +For receiving, this gives the benefit of only receiving packets from +the specified peer address/port. +

+
+
sources=address[,address]
+

Only receive packets sent to the multicast group from one of the +specified sender IP addresses. +

+
+
block=address[,address]
+

Ignore packets sent to the multicast group from the specified +sender IP addresses. +

+
+
fifo_size=units
+

Set the UDP receiving circular buffer size, expressed as a number of +packets with size of 188 bytes. If not specified defaults to 7*4096. +

+
+
overrun_nonfatal=1|0
+

Survive in case of UDP receiving circular buffer overrun. Default +value is 0. +

+
+
timeout=microseconds
+

Set raise error timeout, expressed in microseconds. +

+

This option is only relevant in read mode: if no data arrived in more +than this time interval, raise error. +

+
+ + +

18.31.1 Examples

+ +
    +
  • +Use ffmpeg to stream over UDP to a remote endpoint: +
     
    ffmpeg -i input -f format udp://hostname:port
    +
    + +
  • +Use ffmpeg to stream in mpegts format over UDP using 188 +sized UDP packets, using a large input buffer: +
     
    ffmpeg -i input -f mpegts udp://hostname:port?pkt_size=188&buffer_size=65535
    +
    + +
  • +Use ffmpeg to receive over UDP from a remote endpoint: +
     
    ffmpeg -i udp://[multicast-address]:port ...
    +
    +
+ + +

18.32 unix

+ +

Unix local socket +

+

The required syntax for a Unix socket URL is: +

+
 
unix://filepath
+
+ +

The following parameters can be set via command line options +(or in code via AVOptions): +

+
+
timeout
+

Timeout in ms. +

+
listen
+

Create the Unix socket in listening mode. +

+
+ + +

19. Device Options

+ +

The libavdevice library provides the same interface as +libavformat. Namely, an input device is considered like a demuxer, and +an output device like a muxer, and the interface and generic device +options are the same provided by libavformat (see the ffmpeg-formats +manual). +

+

In addition each input or output device may support so-called private +options, which are specific for that component. +

+

Options may be set by specifying -option value in the +FFmpeg tools, or by setting the value explicitly in the device +AVFormatContext options or using the ‘libavutil/opt.h’ API +for programmatic use. +

+ + +

20. Input Devices

+ +

Input devices are configured elements in FFmpeg which allow to access +the data coming from a multimedia device attached to your system. +

+

When you configure your FFmpeg build, all the supported input devices +are enabled by default. You can list all available ones using the +configure option "–list-indevs". +

+

You can disable all the input devices using the configure option +"–disable-indevs", and selectively enable an input device using the +option "–enable-indev=INDEV", or you can disable a particular +input device using the option "–disable-indev=INDEV". +

+

The option "-formats" of the ff* tools will display the list of +supported input devices (amongst the demuxers). +

+

A description of the currently available input devices follows. +

+ +

20.1 alsa

+ +

ALSA (Advanced Linux Sound Architecture) input device. +

+

To enable this input device during configuration you need libasound +installed on your system. +

+

This device allows capturing from an ALSA device. The name of the +device to capture has to be an ALSA card identifier. +

+

An ALSA identifier has the syntax: +

 
hw:CARD[,DEV[,SUBDEV]]
+
+ +

where the DEV and SUBDEV components are optional. +

+

The three arguments (in order: CARD,DEV,SUBDEV) +specify card number or identifier, device number and subdevice number +(-1 means any). +

+

To see the list of cards currently recognized by your system check the +files ‘/proc/asound/cards’ and ‘/proc/asound/devices’. +

+

For example to capture with ffmpeg from an ALSA device with +card id 0, you may run the command: +

 
ffmpeg -f alsa -i hw:0 alsaout.wav
+
+ +

For more information see: +http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html +

+ +

20.2 avfoundation

+ +

AVFoundation input device. +

+

AVFoundation is the currently recommended framework by Apple for streamgrabbing on OSX >= 10.7 as well as on iOS. +The older QTKit framework has been marked deprecated since OSX version 10.7. +

+

The filename passed as input is parsed to contain either a device name or index. +The device index can also be given by using -video_device_index. +A given device index will override any given device name. +If the desired device consists of numbers only, use -video_device_index to identify it. +The default device will be chosen if an empty string or the device name "default" is given. +The available devices can be enumerated by using -list_devices. +

+
 
ffmpeg -f avfoundation -i "0" out.mpg
+
+ +
 
ffmpeg -f avfoundation -video_device_index 0 -i "" out.mpg
+
+ +
 
ffmpeg -f avfoundation -i "default" out.mpg
+
+ +
 
ffmpeg -f avfoundation -list_devices true -i ""
+
+ + +

20.3 bktr

+ +

BSD video input device. +

+ +

20.4 dshow

+ +

Windows DirectShow input device. +

+

DirectShow support is enabled when FFmpeg is built with the mingw-w64 project. +Currently only audio and video devices are supported. +

+

Multiple devices may be opened as separate inputs, but they may also be +opened on the same input, which should improve synchronism between them. +

+

The input name should be in the format: +

+
 
TYPE=NAME[:TYPE=NAME]
+
+ +

where TYPE can be either audio or video, +and NAME is the device’s name. +

+ +

20.4.1 Options

+ +

If no options are specified, the device’s defaults are used. +If the device does not support the requested options, it will +fail to open. +

+
+
video_size
+

Set the video size in the captured video. +

+
+
framerate
+

Set the frame rate in the captured video. +

+
+
sample_rate
+

Set the sample rate (in Hz) of the captured audio. +

+
+
sample_size
+

Set the sample size (in bits) of the captured audio. +

+
+
channels
+

Set the number of channels in the captured audio. +

+
+
list_devices
+

If set to ‘true’, print a list of devices and exit. +

+
+
list_options
+

If set to ‘true’, print a list of selected device’s options +and exit. +

+
+
video_device_number
+

Set video device number for devices with same name (starts at 0, +defaults to 0). +

+
+
audio_device_number
+

Set audio device number for devices with same name (starts at 0, +defaults to 0). +

+
+
pixel_format
+

Select pixel format to be used by DirectShow. This may only be set when +the video codec is not set or set to rawvideo. +

+
+
audio_buffer_size
+

Set audio device buffer size in milliseconds (which can directly +impact latency, depending on the device). +Defaults to using the audio device’s +default buffer size (typically some multiple of 500ms). +Setting this value too low can degrade performance. +See also +http://msdn.microsoft.com/en-us/library/windows/desktop/dd377582(v=vs.85).aspx +

+
+
+ + +

20.4.2 Examples

+ +
    +
  • +Print the list of DirectShow supported devices and exit: +
     
    $ ffmpeg -list_devices true -f dshow -i dummy
    +
    + +
  • +Open video device Camera: +
     
    $ ffmpeg -f dshow -i video="Camera"
    +
    + +
  • +Open second video device with name Camera: +
     
    $ ffmpeg -f dshow -video_device_number 1 -i video="Camera"
    +
    + +
  • +Open video device Camera and audio device Microphone: +
     
    $ ffmpeg -f dshow -i video="Camera":audio="Microphone"
    +
    + +
  • +Print the list of supported options in selected device and exit: +
     
    $ ffmpeg -list_options true -f dshow -i video="Camera"
    +
    + +
+ + +

20.5 dv1394

+ +

Linux DV 1394 input device. +

+ +

20.6 fbdev

+ +

Linux framebuffer input device. +

+

The Linux framebuffer is a graphic hardware-independent abstraction +layer to show graphics on a computer monitor, typically on the +console. It is accessed through a file device node, usually +‘/dev/fb0’. +

+

For more detailed information read the file +Documentation/fb/framebuffer.txt included in the Linux source tree. +

+

To record from the framebuffer device ‘/dev/fb0’ with +ffmpeg: +

 
ffmpeg -f fbdev -r 10 -i /dev/fb0 out.avi
+
+ +

You can take a single screenshot image with the command: +

 
ffmpeg -f fbdev -frames:v 1 -r 1 -i /dev/fb0 screenshot.jpeg
+
+ +

See also http://linux-fbdev.sourceforge.net/, and fbset(1). +

+ +

20.7 gdigrab

+ +

Win32 GDI-based screen capture device. +

+

This device allows you to capture a region of the display on Windows. +

+

There are two options for the input filename: +

 
desktop
+
+

or +

 
title=window_title
+
+ +

The first option will capture the entire desktop, or a fixed region of the +desktop. The second option will instead capture the contents of a single +window, regardless of its position on the screen. +

+

For example, to grab the entire desktop using ffmpeg: +

 
ffmpeg -f gdigrab -framerate 6 -i desktop out.mpg
+
+ +

Grab a 640x480 region at position 10,20: +

 
ffmpeg -f gdigrab -framerate 6 -offset_x 10 -offset_y 20 -video_size vga -i desktop out.mpg
+
+ +

Grab the contents of the window named "Calculator" +

 
ffmpeg -f gdigrab -framerate 6 -i title=Calculator out.mpg
+
+ + +

20.7.1 Options

+ +
+
draw_mouse
+

Specify whether to draw the mouse pointer. Use the value 0 to +not draw the pointer. Default value is 1. +

+
+
framerate
+

Set the grabbing frame rate. Default value is ntsc, +corresponding to a frame rate of 30000/1001. +

+
+
show_region
+

Show grabbed region on screen. +

+

If show_region is specified with 1, then the grabbing +region will be indicated on screen. With this option, it is easy to +know what is being grabbed if only a portion of the screen is grabbed. +

+

Note that show_region is incompatible with grabbing the contents +of a single window. +

+

For example: +

 
ffmpeg -f gdigrab -show_region 1 -framerate 6 -video_size cif -offset_x 10 -offset_y 20 -i desktop out.mpg
+
+ +
+
video_size
+

Set the video frame size. The default is to capture the full screen if ‘desktop’ is selected, or the full window size if ‘title=window_title’ is selected. +

+
+
offset_x
+

When capturing a region with video_size, set the distance from the left edge of the screen or desktop. +

+

Note that the offset calculation is from the top left corner of the primary monitor on Windows. If you have a monitor positioned to the left of your primary monitor, you will need to use a negative offset_x value to move the region to that monitor. +

+
+
offset_y
+

When capturing a region with video_size, set the distance from the top edge of the screen or desktop. +

+

Note that the offset calculation is from the top left corner of the primary monitor on Windows. If you have a monitor positioned above your primary monitor, you will need to use a negative offset_y value to move the region to that monitor. +

+
+
+ + +

20.8 iec61883

+ +

FireWire DV/HDV input device using libiec61883. +

+

To enable this input device, you need libiec61883, libraw1394 and +libavc1394 installed on your system. Use the configure option +--enable-libiec61883 to compile with the device enabled. +

+

The iec61883 capture device supports capturing from a video device +connected via IEEE1394 (FireWire), using libiec61883 and the new Linux +FireWire stack (juju). This is the default DV/HDV input method in Linux +Kernel 2.6.37 and later, since the old FireWire stack was removed. +

+

Specify the FireWire port to be used as input file, or "auto" +to choose the first port connected. +

+ +

20.8.1 Options

+ +
+
dvtype
+

Override autodetection of DV/HDV. This should only be used if auto +detection does not work, or if usage of a different device type +should be prohibited. Treating a DV device as HDV (or vice versa) will +not work and result in undefined behavior. +The values ‘auto’, ‘dv’ and ‘hdv’ are supported. +

+
+
dvbuffer
+

Set maxiumum size of buffer for incoming data, in frames. For DV, this +is an exact value. For HDV, it is not frame exact, since HDV does +not have a fixed frame size. +

+
+
dvguid
+

Select the capture device by specifying it’s GUID. Capturing will only +be performed from the specified device and fails if no device with the +given GUID is found. This is useful to select the input if multiple +devices are connected at the same time. +Look at /sys/bus/firewire/devices to find out the GUIDs. +

+
+
+ + +

20.8.2 Examples

+ +
    +
  • +Grab and show the input of a FireWire DV/HDV device. +
     
    ffplay -f iec61883 -i auto
    +
    + +
  • +Grab and record the input of a FireWire DV/HDV device, +using a packet buffer of 100000 packets if the source is HDV. +
     
    ffmpeg -f iec61883 -i auto -hdvbuffer 100000 out.mpg
    +
    + +
+ + +

20.9 jack

+ +

JACK input device. +

+

To enable this input device during configuration you need libjack +installed on your system. +

+

A JACK input device creates one or more JACK writable clients, one for +each audio channel, with name client_name:input_N, where +client_name is the name provided by the application, and N +is a number which identifies the channel. +Each writable client will send the acquired data to the FFmpeg input +device. +

+

Once you have created one or more JACK readable clients, you need to +connect them to one or more JACK writable clients. +

+

To connect or disconnect JACK clients you can use the jack_connect +and jack_disconnect programs, or do it through a graphical interface, +for example with qjackctl. +

+

To list the JACK clients and their properties you can invoke the command +jack_lsp. +

+

Follows an example which shows how to capture a JACK readable client +with ffmpeg. +

 
# Create a JACK writable client with name "ffmpeg".
+$ ffmpeg -f jack -i ffmpeg -y out.wav
+
+# Start the sample jack_metro readable client.
+$ jack_metro -b 120 -d 0.2 -f 4000
+
+# List the current JACK clients.
+$ jack_lsp -c
+system:capture_1
+system:capture_2
+system:playback_1
+system:playback_2
+ffmpeg:input_1
+metro:120_bpm
+
+# Connect metro to the ffmpeg writable client.
+$ jack_connect metro:120_bpm ffmpeg:input_1
+
+ +

For more information read: +http://jackaudio.org/ +

+ +

20.10 lavfi

+ +

Libavfilter input virtual device. +

+

This input device reads data from the open output pads of a libavfilter +filtergraph. +

+

For each filtergraph open output, the input device will create a +corresponding stream which is mapped to the generated output. Currently +only video data is supported. The filtergraph is specified through the +option ‘graph’. +

+ +

20.10.1 Options

+ +
+
graph
+

Specify the filtergraph to use as input. Each video open output must be +labelled by a unique string of the form "outN", where N is a +number starting from 0 corresponding to the mapped input stream +generated by the device. +The first unlabelled output is automatically assigned to the "out0" +label, but all the others need to be specified explicitly. +

+

If not specified defaults to the filename specified for the input +device. +

+
+
graph_file
+

Set the filename of the filtergraph to be read and sent to the other +filters. Syntax of the filtergraph is the same as the one specified by +the option graph. +

+
+
+ + +

20.10.2 Examples

+ +
    +
  • +Create a color video stream and play it back with ffplay: +
     
    ffplay -f lavfi -graph "color=c=pink [out0]" dummy
    +
    + +
  • +As the previous example, but use filename for specifying the graph +description, and omit the "out0" label: +
     
    ffplay -f lavfi color=c=pink
    +
    + +
  • +Create three different video test filtered sources and play them: +
     
    ffplay -f lavfi -graph "testsrc [out0]; testsrc,hflip [out1]; testsrc,negate [out2]" test3
    +
    + +
  • +Read an audio stream from a file using the amovie source and play it +back with ffplay: +
     
    ffplay -f lavfi "amovie=test.wav"
    +
    + +
  • +Read an audio stream and a video stream and play it back with +ffplay: +
     
    ffplay -f lavfi "movie=test.avi[out0];amovie=test.wav[out1]"
    +
    + +
+ + +

20.11 libdc1394

+ +

IIDC1394 input device, based on libdc1394 and libraw1394. +

+ +

20.12 openal

+ +

The OpenAL input device provides audio capture on all systems with a +working OpenAL 1.1 implementation. +

+

To enable this input device during configuration, you need OpenAL +headers and libraries installed on your system, and need to configure +FFmpeg with --enable-openal. +

+

OpenAL headers and libraries should be provided as part of your OpenAL +implementation, or as an additional download (an SDK). Depending on your +installation you may need to specify additional flags via the +--extra-cflags and --extra-ldflags for allowing the build +system to locate the OpenAL headers and libraries. +

+

An incomplete list of OpenAL implementations follows: +

+
+
Creative
+

The official Windows implementation, providing hardware acceleration +with supported devices and software fallback. +See http://openal.org/. +

+
OpenAL Soft
+

Portable, open source (LGPL) software implementation. Includes +backends for the most common sound APIs on the Windows, Linux, +Solaris, and BSD operating systems. +See http://kcat.strangesoft.net/openal.html. +

+
Apple
+

OpenAL is part of Core Audio, the official Mac OS X Audio interface. +See http://developer.apple.com/technologies/mac/audio-and-video.html +

+
+ +

This device allows one to capture from an audio input device handled +through OpenAL. +

+

You need to specify the name of the device to capture in the provided +filename. If the empty string is provided, the device will +automatically select the default device. You can get the list of the +supported devices by using the option list_devices. +

+ +

20.12.1 Options

+ +
+
channels
+

Set the number of channels in the captured audio. Only the values +‘1’ (monaural) and ‘2’ (stereo) are currently supported. +Defaults to ‘2’. +

+
+
sample_size
+

Set the sample size (in bits) of the captured audio. Only the values +‘8’ and ‘16’ are currently supported. Defaults to +‘16’. +

+
+
sample_rate
+

Set the sample rate (in Hz) of the captured audio. +Defaults to ‘44.1k’. +

+
+
list_devices
+

If set to ‘true’, print a list of devices and exit. +Defaults to ‘false’. +

+
+
+ + +

20.12.2 Examples

+ +

Print the list of OpenAL supported devices and exit: +

 
$ ffmpeg -list_devices true -f openal -i dummy out.ogg
+
+ +

Capture from the OpenAL device ‘DR-BT101 via PulseAudio’: +

 
$ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out.ogg
+
+ +

Capture from the default device (note the empty string ” as filename): +

 
$ ffmpeg -f openal -i '' out.ogg
+
+ +

Capture from two devices simultaneously, writing to two different files, +within the same ffmpeg command: +

 
$ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out1.ogg -f openal -i 'ALSA Default' out2.ogg
+
+

Note: not all OpenAL implementations support multiple simultaneous capture - +try the latest OpenAL Soft if the above does not work. +

+ +

20.13 oss

+ +

Open Sound System input device. +

+

The filename to provide to the input device is the device node +representing the OSS input device, and is usually set to +‘/dev/dsp’. +

+

For example to grab from ‘/dev/dsp’ using ffmpeg use the +command: +

 
ffmpeg -f oss -i /dev/dsp /tmp/oss.wav
+
+ +

For more information about OSS see: +http://manuals.opensound.com/usersguide/dsp.html +

+ +

20.14 pulse

+ +

PulseAudio input device. +

+

To enable this output device you need to configure FFmpeg with --enable-libpulse. +

+

The filename to provide to the input device is a source device or the +string "default" +

+

To list the PulseAudio source devices and their properties you can invoke +the command pactl list sources. +

+

More information about PulseAudio can be found on http://www.pulseaudio.org. +

+ +

20.14.1 Options

+
+
server
+

Connect to a specific PulseAudio server, specified by an IP address. +Default server is used when not provided. +

+
+
name
+

Specify the application name PulseAudio will use when showing active clients, +by default it is the LIBAVFORMAT_IDENT string. +

+
+
stream_name
+

Specify the stream name PulseAudio will use when showing active streams, +by default it is "record". +

+
+
sample_rate
+

Specify the samplerate in Hz, by default 48kHz is used. +

+
+
channels
+

Specify the channels in use, by default 2 (stereo) is set. +

+
+
frame_size
+

Specify the number of bytes per frame, by default it is set to 1024. +

+
+
fragment_size
+

Specify the minimal buffering fragment in PulseAudio, it will affect the +audio latency. By default it is unset. +

+
+ + +

20.14.2 Examples

+

Record a stream from default device: +

 
ffmpeg -f pulse -i default /tmp/pulse.wav
+
+ + +

20.15 qtkit

+ +

QTKit input device. +

+

The filename passed as input is parsed to contain either a device name or index. +The device index can also be given by using -video_device_index. +A given device index will override any given device name. +If the desired device consists of numbers only, use -video_device_index to identify it. +The default device will be chosen if an empty string or the device name "default" is given. +The available devices can be enumerated by using -list_devices. +

+
 
ffmpeg -f qtkit -i "0" out.mpg
+
+ +
 
ffmpeg -f qtkit -video_device_index 0 -i "" out.mpg
+
+ +
 
ffmpeg -f qtkit -i "default" out.mpg
+
+ +
 
ffmpeg -f qtkit -list_devices true -i ""
+
+ + +

20.16 sndio

+ +

sndio input device. +

+

To enable this input device during configuration you need libsndio +installed on your system. +

+

The filename to provide to the input device is the device node +representing the sndio input device, and is usually set to +‘/dev/audio0’. +

+

For example to grab from ‘/dev/audio0’ using ffmpeg use the +command: +

 
ffmpeg -f sndio -i /dev/audio0 /tmp/oss.wav
+
+ + +

20.17 video4linux2, v4l2

+ +

Video4Linux2 input video device. +

+

"v4l2" can be used as alias for "video4linux2". +

+

If FFmpeg is built with v4l-utils support (by using the +--enable-libv4l2 configure option), it is possible to use it with the +-use_libv4l2 input device option. +

+

The name of the device to grab is a file device node, usually Linux +systems tend to automatically create such nodes when the device +(e.g. an USB webcam) is plugged into the system, and has a name of the +kind ‘/dev/videoN’, where N is a number associated to +the device. +

+

Video4Linux2 devices usually support a limited set of +widthxheight sizes and frame rates. You can check which are +supported using -list_formats all for Video4Linux2 devices. +Some devices, like TV cards, support one or more standards. It is possible +to list all the supported standards using -list_standards all. +

+

The time base for the timestamps is 1 microsecond. Depending on the kernel +version and configuration, the timestamps may be derived from the real time +clock (origin at the Unix Epoch) or the monotonic clock (origin usually at +boot time, unaffected by NTP or manual changes to the clock). The +‘-timestamps abs’ or ‘-ts abs’ option can be used to force +conversion into the real time clock. +

+

Some usage examples of the video4linux2 device with ffmpeg +and ffplay: +

    +
  • +Grab and show the input of a video4linux2 device: +
     
    ffplay -f video4linux2 -framerate 30 -video_size hd720 /dev/video0
    +
    + +
  • +Grab and record the input of a video4linux2 device, leave the +frame rate and size as previously set: +
     
    ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 out.mpeg
    +
    +
+ +

For more information about Video4Linux, check http://linuxtv.org/. +

+ +

20.17.1 Options

+ +
+
standard
+

Set the standard. Must be the name of a supported standard. To get a +list of the supported standards, use the ‘list_standards’ +option. +

+
+
channel
+

Set the input channel number. Default to -1, which means using the +previously selected channel. +

+
+
video_size
+

Set the video frame size. The argument must be a string in the form +WIDTHxHEIGHT or a valid size abbreviation. +

+
+
pixel_format
+

Select the pixel format (only valid for raw video input). +

+
+
input_format
+

Set the preferred pixel format (for raw video) or a codec name. +This option allows one to select the input format, when several are +available. +

+
+
framerate
+

Set the preferred video frame rate. +

+
+
list_formats
+

List available formats (supported pixel formats, codecs, and frame +sizes) and exit. +

+

Available values are: +

+
all
+

Show all available (compressed and non-compressed) formats. +

+
+
raw
+

Show only raw video (non-compressed) formats. +

+
+
compressed
+

Show only compressed formats. +

+
+ +
+
list_standards
+

List supported standards and exit. +

+

Available values are: +

+
all
+

Show all supported standards. +

+
+ +
+
timestamps, ts
+

Set type of timestamps for grabbed frames. +

+

Available values are: +

+
default
+

Use timestamps from the kernel. +

+
+
abs
+

Use absolute timestamps (wall clock). +

+
+
mono2abs
+

Force conversion from monotonic to absolute timestamps. +

+
+ +

Default value is default. +

+
+ + +

20.18 vfwcap

+ +

VfW (Video for Windows) capture input device. +

+

The filename passed as input is the capture driver number, ranging from +0 to 9. You may use "list" as filename to print a list of drivers. Any +other filename will be interpreted as device number 0. +

+ +

20.19 x11grab

+ +

X11 video input device. +

+

This device allows one to capture a region of an X11 display. +

+

The filename passed as input has the syntax: +

 
[hostname]:display_number.screen_number[+x_offset,y_offset]
+
+ +

hostname:display_number.screen_number specifies the +X11 display name of the screen to grab from. hostname can be +omitted, and defaults to "localhost". The environment variable +DISPLAY contains the default display name. +

+

x_offset and y_offset specify the offsets of the grabbed +area with respect to the top-left border of the X11 screen. They +default to 0. +

+

Check the X11 documentation (e.g. man X) for more detailed information. +

+

Use the dpyinfo program for getting basic information about the +properties of your X11 display (e.g. grep for "name" or "dimensions"). +

+

For example to grab from ‘:0.0’ using ffmpeg: +

 
ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0 out.mpg
+
+ +

Grab at position 10,20: +

 
ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
+
+ + +

20.19.1 Options

+ +
+
draw_mouse
+

Specify whether to draw the mouse pointer. A value of 0 specify +not to draw the pointer. Default value is 1. +

+
+
follow_mouse
+

Make the grabbed area follow the mouse. The argument can be +centered or a number of pixels PIXELS. +

+

When it is specified with "centered", the grabbing region follows the mouse +pointer and keeps the pointer at the center of region; otherwise, the region +follows only when the mouse pointer reaches within PIXELS (greater than +zero) to the edge of region. +

+

For example: +

 
ffmpeg -f x11grab -follow_mouse centered -framerate 25 -video_size cif -i :0.0 out.mpg
+
+ +

To follow only when the mouse pointer reaches within 100 pixels to edge: +

 
ffmpeg -f x11grab -follow_mouse 100 -framerate 25 -video_size cif -i :0.0 out.mpg
+
+ +
+
framerate
+

Set the grabbing frame rate. Default value is ntsc, +corresponding to a frame rate of 30000/1001. +

+
+
show_region
+

Show grabbed region on screen. +

+

If show_region is specified with 1, then the grabbing +region will be indicated on screen. With this option, it is easy to +know what is being grabbed if only a portion of the screen is grabbed. +

+

For example: +

 
ffmpeg -f x11grab -show_region 1 -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
+
+ +

With follow_mouse: +

 
ffmpeg -f x11grab -follow_mouse centered -show_region 1 -framerate 25 -video_size cif -i :0.0 out.mpg
+
+ +
+
video_size
+

Set the video frame size. Default value is vga. +

+
+ + +

21. Resampler Options

+ +

The audio resampler supports the following named options. +

+

Options may be set by specifying -option value in the +FFmpeg tools, option=value for the aresample filter, +by setting the value explicitly in the +SwrContext options or using the ‘libavutil/opt.h’ API for +programmatic use. +

+
+
ich, in_channel_count
+

Set the number of input channels. Default value is 0. Setting this +value is not mandatory if the corresponding channel layout +‘in_channel_layout’ is set. +

+
+
och, out_channel_count
+

Set the number of output channels. Default value is 0. Setting this +value is not mandatory if the corresponding channel layout +‘out_channel_layout’ is set. +

+
+
uch, used_channel_count
+

Set the number of used input channels. Default value is 0. This option is +only used for special remapping. +

+
+
isr, in_sample_rate
+

Set the input sample rate. Default value is 0. +

+
+
osr, out_sample_rate
+

Set the output sample rate. Default value is 0. +

+
+
isf, in_sample_fmt
+

Specify the input sample format. It is set by default to none. +

+
+
osf, out_sample_fmt
+

Specify the output sample format. It is set by default to none. +

+
+
tsf, internal_sample_fmt
+

Set the internal sample format. Default value is none. +This will automatically be chosen when it is not explicitly set. +

+
+
icl, in_channel_layout
+
ocl, out_channel_layout
+

Set the input/output channel layout. +

+

See (ffmpeg-utils)channel layout syntax +for the required syntax. +

+
+
clev, center_mix_level
+

Set the center mix level. It is a value expressed in deciBel, and must be +in the interval [-32,32]. +

+
+
slev, surround_mix_level
+

Set the surround mix level. It is a value expressed in deciBel, and must +be in the interval [-32,32]. +

+
+
lfe_mix_level
+

Set LFE mix into non LFE level. It is used when there is a LFE input but no +LFE output. It is a value expressed in deciBel, and must +be in the interval [-32,32]. +

+
+
rmvol, rematrix_volume
+

Set rematrix volume. Default value is 1.0. +

+
+
rematrix_maxval
+

Set maximum output value for rematrixing. +This can be used to prevent clipping vs. preventing volumn reduction +A value of 1.0 prevents cliping. +

+
+
flags, swr_flags
+

Set flags used by the converter. Default value is 0. +

+

It supports the following individual flags: +

+
res
+

force resampling, this flag forces resampling to be used even when the +input and output sample rates match. +

+
+ +
+
dither_scale
+

Set the dither scale. Default value is 1. +

+
+
dither_method
+

Set dither method. Default value is 0. +

+

Supported values: +

+
rectangular
+

select rectangular dither +

+
triangular
+

select triangular dither +

+
triangular_hp
+

select triangular dither with high pass +

+
lipshitz
+

select lipshitz noise shaping dither +

+
shibata
+

select shibata noise shaping dither +

+
low_shibata
+

select low shibata noise shaping dither +

+
high_shibata
+

select high shibata noise shaping dither +

+
f_weighted
+

select f-weighted noise shaping dither +

+
modified_e_weighted
+

select modified-e-weighted noise shaping dither +

+
improved_e_weighted
+

select improved-e-weighted noise shaping dither +

+
+
+ +
+
resampler
+

Set resampling engine. Default value is swr. +

+

Supported values: +

+
swr
+

select the native SW Resampler; filter options precision and cheby are not +applicable in this case. +

+
soxr
+

select the SoX Resampler (where available); compensation, and filter options +filter_size, phase_shift, filter_type & kaiser_beta, are not applicable in this +case. +

+
+ +
+
filter_size
+

For swr only, set resampling filter size, default value is 32. +

+
+
phase_shift
+

For swr only, set resampling phase shift, default value is 10, and must be in +the interval [0,30]. +

+
+
linear_interp
+

Use Linear Interpolation if set to 1, default value is 0. +

+
+
cutoff
+

Set cutoff frequency (swr: 6dB point; soxr: 0dB point) ratio; must be a float +value between 0 and 1. Default value is 0.97 with swr, and 0.91 with soxr +(which, with a sample-rate of 44100, preserves the entire audio band to 20kHz). +

+
+
precision
+

For soxr only, the precision in bits to which the resampled signal will be +calculated. The default value of 20 (which, with suitable dithering, is +appropriate for a destination bit-depth of 16) gives SoX’s ’High Quality’; a +value of 28 gives SoX’s ’Very High Quality’. +

+
+
cheby
+

For soxr only, selects passband rolloff none (Chebyshev) & higher-precision +approximation for ’irrational’ ratios. Default value is 0. +

+
+
async
+

For swr only, simple 1 parameter audio sync to timestamps using stretching, +squeezing, filling and trimming. Setting this to 1 will enable filling and +trimming, larger values represent the maximum amount in samples that the data +may be stretched or squeezed for each second. +Default value is 0, thus no compensation is applied to make the samples match +the audio timestamps. +

+
+
first_pts
+

For swr only, assume the first pts should be this value. The time unit is 1 / sample rate. +This allows for padding/trimming at the start of stream. By default, no +assumption is made about the first frame’s expected pts, so no padding or +trimming is done. For example, this could be set to 0 to pad the beginning with +silence if an audio stream starts after the video stream or to trim any samples +with a negative pts due to encoder delay. +

+
+
min_comp
+

For swr only, set the minimum difference between timestamps and audio data (in +seconds) to trigger stretching/squeezing/filling or trimming of the +data to make it match the timestamps. The default is that +stretching/squeezing/filling and trimming is disabled +(‘min_comp’ = FLT_MAX). +

+
+
min_hard_comp
+

For swr only, set the minimum difference between timestamps and audio data (in +seconds) to trigger adding/dropping samples to make it match the +timestamps. This option effectively is a threshold to select between +hard (trim/fill) and soft (squeeze/stretch) compensation. Note that +all compensation is by default disabled through ‘min_comp’. +The default is 0.1. +

+
+
comp_duration
+

For swr only, set duration (in seconds) over which data is stretched/squeezed +to make it match the timestamps. Must be a non-negative double float value, +default value is 1.0. +

+
+
max_soft_comp
+

For swr only, set maximum factor by which data is stretched/squeezed to make it +match the timestamps. Must be a non-negative double float value, default value +is 0. +

+
+
matrix_encoding
+

Select matrixed stereo encoding. +

+

It accepts the following values: +

+
none
+

select none +

+
dolby
+

select Dolby +

+
dplii
+

select Dolby Pro Logic II +

+
+ +

Default value is none. +

+
+
filter_type
+

For swr only, select resampling filter type. This only affects resampling +operations. +

+

It accepts the following values: +

+
cubic
+

select cubic +

+
blackman_nuttall
+

select Blackman Nuttall Windowed Sinc +

+
kaiser
+

select Kaiser Windowed Sinc +

+
+ +
+
kaiser_beta
+

For swr only, set Kaiser Window Beta value. Must be an integer in the +interval [2,16], default value is 9. +

+
+
output_sample_bits
+

For swr only, set number of used output sample bits for dithering. Must be an integer in the +interval [0,64], default value is 0, which means it’s not used. +

+
+
+ +

+

+

22. Scaler Options

+ +

The video scaler supports the following named options. +

+

Options may be set by specifying -option value in the +FFmpeg tools. For programmatic use, they can be set explicitly in the +SwsContext options or through the ‘libavutil/opt.h’ API. +

+
+
+

+

+
sws_flags
+

Set the scaler flags. This is also used to set the scaling +algorithm. Only a single algorithm should be selected. +

+

It accepts the following values: +

+
fast_bilinear
+

Select fast bilinear scaling algorithm. +

+
+
bilinear
+

Select bilinear scaling algorithm. +

+
+
bicubic
+

Select bicubic scaling algorithm. +

+
+
experimental
+

Select experimental scaling algorithm. +

+
+
neighbor
+

Select nearest neighbor rescaling algorithm. +

+
+
area
+

Select averaging area rescaling algorithm. +

+
+
bicublin
+

Select bicubic scaling algorithm for the luma component, bilinear for +chroma components. +

+
+
gauss
+

Select Gaussian rescaling algorithm. +

+
+
sinc
+

Select sinc rescaling algorithm. +

+
+
lanczos
+

Select lanczos rescaling algorithm. +

+
+
spline
+

Select natural bicubic spline rescaling algorithm. +

+
+
print_info
+

Enable printing/debug logging. +

+
+
accurate_rnd
+

Enable accurate rounding. +

+
+
full_chroma_int
+

Enable full chroma interpolation. +

+
+
full_chroma_inp
+

Select full chroma input. +

+
+
bitexact
+

Enable bitexact output. +

+
+ +
+
srcw
+

Set source width. +

+
+
srch
+

Set source height. +

+
+
dstw
+

Set destination width. +

+
+
dsth
+

Set destination height. +

+
+
src_format
+

Set source pixel format (must be expressed as an integer). +

+
+
dst_format
+

Set destination pixel format (must be expressed as an integer). +

+
+
src_range
+

Select source range. +

+
+
dst_range
+

Select destination range. +

+
+
param0, param1
+

Set scaling algorithm parameters. The specified values are specific of +some scaling algorithms and ignored by others. The specified values +are floating point number values. +

+
+
sws_dither
+

Set the dithering algorithm. Accepts one of the following +values. Default value is ‘auto’. +

+
+
auto
+

automatic choice +

+
+
none
+

no dithering +

+
+
bayer
+

bayer dither +

+
+
ed
+

error diffusion dither +

+
+
a_dither
+

arithmetic dither, based using addition +

+
+
x_dither
+

arithmetic dither, based using xor (more random/less apparent patterning that +a_dither). +

+
+
+ +
+
+ + +

23. Filtering Introduction

+ +

Filtering in FFmpeg is enabled through the libavfilter library. +

+

In libavfilter, a filter can have multiple inputs and multiple +outputs. +To illustrate the sorts of things that are possible, we consider the +following filtergraph. +

+
 
                [main]
+input --> split ---------------------> overlay --> output
+            |                             ^
+            |[tmp]                  [flip]|
+            +-----> crop --> vflip -------+
+
+ +

This filtergraph splits the input stream in two streams, then sends one +stream through the crop filter and the vflip filter, before merging it +back with the other stream by overlaying it on top. You can use the +following command to achieve this: +

+
 
ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT
+
+ +

The result will be that the top half of the video is mirrored +onto the bottom half of the output video. +

+

Filters in the same linear chain are separated by commas, and distinct +linear chains of filters are separated by semicolons. In our example, +crop,vflip are in one linear chain, split and +overlay are separately in another. The points where the linear +chains join are labelled by names enclosed in square brackets. In the +example, the split filter generates two outputs that are associated to +the labels [main] and [tmp]. +

+

The stream sent to the second output of split, labelled as +[tmp], is processed through the crop filter, which crops +away the lower half part of the video, and then vertically flipped. The +overlay filter takes in input the first unchanged output of the +split filter (which was labelled as [main]), and overlay on its +lower half the output generated by the crop,vflip filterchain. +

+

Some filters take in input a list of parameters: they are specified +after the filter name and an equal sign, and are separated from each other +by a colon. +

+

There exist so-called source filters that do not have an +audio/video input, and sink filters that will not have audio/video +output. +

+ + +

24. graph2dot

+ +

The ‘graph2dot’ program included in the FFmpeg ‘tools’ +directory can be used to parse a filtergraph description and issue a +corresponding textual representation in the dot language. +

+

Invoke the command: +

 
graph2dot -h
+
+ +

to see how to use ‘graph2dot’. +

+

You can then pass the dot description to the ‘dot’ program (from +the graphviz suite of programs) and obtain a graphical representation +of the filtergraph. +

+

For example the sequence of commands: +

 
echo GRAPH_DESCRIPTION | \
+tools/graph2dot -o graph.tmp && \
+dot -Tpng graph.tmp -o graph.png && \
+display graph.png
+
+ +

can be used to create and display an image representing the graph +described by the GRAPH_DESCRIPTION string. Note that this string must be +a complete self-contained graph, with its inputs and outputs explicitly defined. +For example if your command line is of the form: +

 
ffmpeg -i infile -vf scale=640:360 outfile
+
+

your GRAPH_DESCRIPTION string will need to be of the form: +

 
nullsrc,scale=640:360,nullsink
+
+

you may also need to set the nullsrc parameters and add a format +filter in order to simulate a specific input file. +

+ + +

25. Filtergraph description

+ +

A filtergraph is a directed graph of connected filters. It can contain +cycles, and there can be multiple links between a pair of +filters. Each link has one input pad on one side connecting it to one +filter from which it takes its input, and one output pad on the other +side connecting it to one filter accepting its output. +

+

Each filter in a filtergraph is an instance of a filter class +registered in the application, which defines the features and the +number of input and output pads of the filter. +

+

A filter with no input pads is called a "source", and a filter with no +output pads is called a "sink". +

+

+

+

25.1 Filtergraph syntax

+ +

A filtergraph has a textual representation, which is +recognized by the ‘-filter’/‘-vf’ and ‘-filter_complex’ +options in ffmpeg and ‘-vf’ in ffplay, and by the +avfilter_graph_parse()/avfilter_graph_parse2() functions defined in +‘libavfilter/avfilter.h’. +

+

A filterchain consists of a sequence of connected filters, each one +connected to the previous one in the sequence. A filterchain is +represented by a list of ","-separated filter descriptions. +

+

A filtergraph consists of a sequence of filterchains. A sequence of +filterchains is represented by a list of ";"-separated filterchain +descriptions. +

+

A filter is represented by a string of the form: +[in_link_1]...[in_link_N]filter_name=arguments[out_link_1]...[out_link_M] +

+

filter_name is the name of the filter class of which the +described filter is an instance of, and has to be the name of one of +the filter classes registered in the program. +The name of the filter class is optionally followed by a string +"=arguments". +

+

arguments is a string which contains the parameters used to +initialize the filter instance. It may have one of two forms: +

    +
  • +A ’:’-separated list of key=value pairs. + +
  • +A ’:’-separated list of value. In this case, the keys are assumed to be +the option names in the order they are declared. E.g. the fade filter +declares three options in this order – ‘type’, ‘start_frame’ and +‘nb_frames’. Then the parameter list in:0:30 means that the value +in is assigned to the option ‘type’, 0 to +‘start_frame’ and 30 to ‘nb_frames’. + +
  • +A ’:’-separated list of mixed direct value and long key=value +pairs. The direct value must precede the key=value pairs, and +follow the same constraints order of the previous point. The following +key=value pairs can be set in any preferred order. + +
+ +

If the option value itself is a list of items (e.g. the format filter +takes a list of pixel formats), the items in the list are usually separated by +’|’. +

+

The list of arguments can be quoted using the character "’" as initial +and ending mark, and the character ’\’ for escaping the characters +within the quoted text; otherwise the argument string is considered +terminated when the next special character (belonging to the set +"[]=;,") is encountered. +

+

The name and arguments of the filter are optionally preceded and +followed by a list of link labels. +A link label allows one to name a link and associate it to a filter output +or input pad. The preceding labels in_link_1 +... in_link_N, are associated to the filter input pads, +the following labels out_link_1 ... out_link_M, are +associated to the output pads. +

+

When two link labels with the same name are found in the +filtergraph, a link between the corresponding input and output pad is +created. +

+

If an output pad is not labelled, it is linked by default to the first +unlabelled input pad of the next filter in the filterchain. +For example in the filterchain +

 
nullsrc, split[L1], [L2]overlay, nullsink
+
+

the split filter instance has two output pads, and the overlay filter +instance two input pads. The first output pad of split is labelled +"L1", the first input pad of overlay is labelled "L2", and the second +output pad of split is linked to the second input pad of overlay, +which are both unlabelled. +

+

In a complete filterchain all the unlabelled filter input and output +pads must be connected. A filtergraph is considered valid if all the +filter input and output pads of all the filterchains are connected. +

+

Libavfilter will automatically insert scale filters where format +conversion is required. It is possible to specify swscale flags +for those automatically inserted scalers by prepending +sws_flags=flags; +to the filtergraph description. +

+

Here is a BNF description of the filtergraph syntax: +

 
NAME             ::= sequence of alphanumeric characters and '_'
+LINKLABEL        ::= "[" NAME "]"
+LINKLABELS       ::= LINKLABEL [LINKLABELS]
+FILTER_ARGUMENTS ::= sequence of chars (possibly quoted)
+FILTER           ::= [LINKLABELS] NAME ["=" FILTER_ARGUMENTS] [LINKLABELS]
+FILTERCHAIN      ::= FILTER [,FILTERCHAIN]
+FILTERGRAPH      ::= [sws_flags=flags;] FILTERCHAIN [;FILTERGRAPH]
+
+ + +

25.2 Notes on filtergraph escaping

+ +

Filtergraph description composition entails several levels of +escaping. See (ffmpeg-utils)quoting_and_escaping for more +information about the employed escaping procedure. +

+

A first level escaping affects the content of each filter option +value, which may contain the special character : used to +separate values, or one of the escaping characters \'. +

+

A second level escaping affects the whole filter description, which +may contain the escaping characters \' or the special +characters [],; used by the filtergraph description. +

+

Finally, when you specify a filtergraph on a shell commandline, you +need to perform a third level escaping for the shell special +characters contained within it. +

+

For example, consider the following string to be embedded in +the drawtext filter description ‘text’ value: +

 
this is a 'string': may contain one, or more, special characters
+
+ +

This string contains the ' special escaping character, and the +: special character, so it needs to be escaped in this way: +

 
text=this is a \'string\'\: may contain one, or more, special characters
+
+ +

A second level of escaping is required when embedding the filter +description in a filtergraph description, in order to escape all the +filtergraph special characters. Thus the example above becomes: +

 
drawtext=text=this is a \\\'string\\\'\\: may contain one\, or more\, special characters
+
+

(note that in addition to the \' escaping special characters, +also , needs to be escaped). +

+

Finally an additional level of escaping is needed when writing the +filtergraph description in a shell command, which depends on the +escaping rules of the adopted shell. For example, assuming that +\ is special and needs to be escaped with another \, the +previous string will finally result in: +

 
-vf "drawtext=text=this is a \\\\\\'string\\\\\\'\\\\: may contain one\\, or more\\, special characters"
+
+ + +

26. Timeline editing

+ +

Some filters support a generic ‘enable’ option. For the filters +supporting timeline editing, this option can be set to an expression which is +evaluated before sending a frame to the filter. If the evaluation is non-zero, +the filter will be enabled, otherwise the frame will be sent unchanged to the +next filter in the filtergraph. +

+

The expression accepts the following values: +

+
t
+

timestamp expressed in seconds, NAN if the input timestamp is unknown +

+
+
n
+

sequential number of the input frame, starting from 0 +

+
+
pos
+

the position in the file of the input frame, NAN if unknown +

+
+ +

Additionally, these filters support an ‘enable’ command that can be used +to re-define the expression. +

+

Like any other filtering option, the ‘enable’ option follows the same +rules. +

+

For example, to enable a blur filter (smartblur) from 10 seconds to 3 +minutes, and a curves filter starting at 3 seconds: +

 
smartblur = enable='between(t,10,3*60)',
+curves    = enable='gte(t,3)' : preset=cross_process
+
+ + + +

27. Audio Filters

+ +

When you configure your FFmpeg build, you can disable any of the +existing filters using --disable-filters. +The configure output will show the audio filters included in your +build. +

+

Below is a description of the currently available audio filters. +

+ +

27.1 aconvert

+ +

Convert the input audio format to the specified formats. +

+

This filter is deprecated. Use aformat instead. +

+

The filter accepts a string of the form: +"sample_format:channel_layout". +

+

sample_format specifies the sample format, and can be a string or the +corresponding numeric value defined in ‘libavutil/samplefmt.h’. Use ’p’ +suffix for a planar sample format. +

+

channel_layout specifies the channel layout, and can be a string +or the corresponding number value defined in ‘libavutil/channel_layout.h’. +

+

The special parameter "auto", signifies that the filter will +automatically select the output format depending on the output filter. +

+ +

27.1.1 Examples

+ +
    +
  • +Convert input to float, planar, stereo: +
     
    aconvert=fltp:stereo
    +
    + +
  • +Convert input to unsigned 8-bit, automatically select out channel layout: +
     
    aconvert=u8:auto
    +
    +
+ + +

27.2 adelay

+ +

Delay one or more audio channels. +

+

Samples in delayed channel are filled with silence. +

+

The filter accepts the following option: +

+
+
delays
+

Set list of delays in milliseconds for each channel separated by ’|’. +At least one delay greater than 0 should be provided. +Unused delays will be silently ignored. If number of given delays is +smaller than number of channels all remaining channels will not be delayed. +

+
+ + +

27.2.1 Examples

+ +
    +
  • +Delay first channel by 1.5 seconds, the third channel by 0.5 seconds and leave +the second channel (and any other channels that may be present) unchanged. +
     
    adelay=1500|0|500
    +
    +
+ + +

27.3 aecho

+ +

Apply echoing to the input audio. +

+

Echoes are reflected sound and can occur naturally amongst mountains +(and sometimes large buildings) when talking or shouting; digital echo +effects emulate this behaviour and are often used to help fill out the +sound of a single instrument or vocal. The time difference between the +original signal and the reflection is the delay, and the +loudness of the reflected signal is the decay. +Multiple echoes can have different delays and decays. +

+

A description of the accepted parameters follows. +

+
+
in_gain
+

Set input gain of reflected signal. Default is 0.6. +

+
+
out_gain
+

Set output gain of reflected signal. Default is 0.3. +

+
+
delays
+

Set list of time intervals in milliseconds between original signal and reflections +separated by ’|’. Allowed range for each delay is (0 - 90000.0]. +Default is 1000. +

+
+
decays
+

Set list of loudnesses of reflected signals separated by ’|’. +Allowed range for each decay is (0 - 1.0]. +Default is 0.5. +

+
+ + +

27.3.1 Examples

+ +
    +
  • +Make it sound as if there are twice as many instruments as are actually playing: +
     
    aecho=0.8:0.88:60:0.4
    +
    + +
  • +If delay is very short, then it sound like a (metallic) robot playing music: +
     
    aecho=0.8:0.88:6:0.4
    +
    + +
  • +A longer delay will sound like an open air concert in the mountains: +
     
    aecho=0.8:0.9:1000:0.3
    +
    + +
  • +Same as above but with one more mountain: +
     
    aecho=0.8:0.9:1000|1800:0.3|0.25
    +
    +
+ + +

27.4 aeval

+ +

Modify an audio signal according to the specified expressions. +

+

This filter accepts one or more expressions (one for each channel), +which are evaluated and used to modify a corresponding audio signal. +

+

It accepts the following parameters: +

+
+
exprs
+

Set the ’|’-separated expressions list for each separate channel. If +the number of input channels is greater than the number of +expressions, the last specified expression is used for the remaining +output channels. +

+
+
channel_layout, c
+

Set output channel layout. If not specified, the channel layout is +specified by the number of expressions. If set to ‘same’, it will +use by default the same input channel layout. +

+
+ +

Each expression in exprs can contain the following constants and functions: +

+
+
ch
+

channel number of the current expression +

+
+
n
+

number of the evaluated sample, starting from 0 +

+
+
s
+

sample rate +

+
+
t
+

time of the evaluated sample expressed in seconds +

+
+
nb_in_channels
+
nb_out_channels
+

input and output number of channels +

+
+
val(CH)
+

the value of input channel with number CH +

+
+ +

Note: this filter is slow. For faster processing you should use a +dedicated filter. +

+ +

27.4.1 Examples

+ +
    +
  • +Half volume: +
     
    aeval=val(ch)/2:c=same
    +
    + +
  • +Invert phase of the second channel: +
     
    eval=val(0)|-val(1)
    +
    +
+ + +

27.5 afade

+ +

Apply fade-in/out effect to input audio. +

+

A description of the accepted parameters follows. +

+
+
type, t
+

Specify the effect type, can be either in for fade-in, or +out for a fade-out effect. Default is in. +

+
+
start_sample, ss
+

Specify the number of the start sample for starting to apply the fade +effect. Default is 0. +

+
+
nb_samples, ns
+

Specify the number of samples for which the fade effect has to last. At +the end of the fade-in effect the output audio will have the same +volume as the input audio, at the end of the fade-out transition +the output audio will be silence. Default is 44100. +

+
+
start_time, st
+

Specify time for starting to apply the fade effect. Default is 0. +The accepted syntax is: +

 
[-]HH[:MM[:SS[.m...]]]
+[-]S+[.m...]
+
+

See also the function av_parse_time(). +If set this option is used instead of start_sample one. +

+
+
duration, d
+

Specify the duration for which the fade effect has to last. Default is 0. +The accepted syntax is: +

 
[-]HH[:MM[:SS[.m...]]]
+[-]S+[.m...]
+
+

See also the function av_parse_time(). +At the end of the fade-in effect the output audio will have the same +volume as the input audio, at the end of the fade-out transition +the output audio will be silence. +If set this option is used instead of nb_samples one. +

+
+
curve
+

Set curve for fade transition. +

+

It accepts the following values: +

+
tri
+

select triangular, linear slope (default) +

+
qsin
+

select quarter of sine wave +

+
hsin
+

select half of sine wave +

+
esin
+

select exponential sine wave +

+
log
+

select logarithmic +

+
par
+

select inverted parabola +

+
qua
+

select quadratic +

+
cub
+

select cubic +

+
squ
+

select square root +

+
cbr
+

select cubic root +

+
+
+
+ + +

27.5.1 Examples

+ +
    +
  • +Fade in first 15 seconds of audio: +
     
    afade=t=in:ss=0:d=15
    +
    + +
  • +Fade out last 25 seconds of a 900 seconds audio: +
     
    afade=t=out:st=875:d=25
    +
    +
+ +

+

+

27.6 aformat

+ +

Set output format constraints for the input audio. The framework will +negotiate the most appropriate format to minimize conversions. +

+

It accepts the following parameters: +

+
sample_fmts
+

A ’|’-separated list of requested sample formats. +

+
+
sample_rates
+

A ’|’-separated list of requested sample rates. +

+
+
channel_layouts
+

A ’|’-separated list of requested channel layouts. +

+

See (ffmpeg-utils)channel layout syntax +for the required syntax. +

+
+ +

If a parameter is omitted, all values are allowed. +

+

Force the output to either unsigned 8-bit or signed 16-bit stereo +

 
aformat=sample_fmts=u8|s16:channel_layouts=stereo
+
+ + +

27.7 allpass

+ +

Apply a two-pole all-pass filter with central frequency (in Hz) +frequency, and filter-width width. +An all-pass filter changes the audio’s frequency to phase relationship +without changing its frequency to amplitude relationship. +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set frequency in Hz. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +

+
+ + +

27.8 amerge

+ +

Merge two or more audio streams into a single multi-channel stream. +

+

The filter accepts the following options: +

+
+
inputs
+

Set the number of inputs. Default is 2. +

+
+
+ +

If the channel layouts of the inputs are disjoint, and therefore compatible, +the channel layout of the output will be set accordingly and the channels +will be reordered as necessary. If the channel layouts of the inputs are not +disjoint, the output will have all the channels of the first input then all +the channels of the second input, in that order, and the channel layout of +the output will be the default value corresponding to the total number of +channels. +

+

For example, if the first input is in 2.1 (FL+FR+LF) and the second input +is FC+BL+BR, then the output will be in 5.1, with the channels in the +following order: a1, a2, b1, a3, b2, b3 (a1 is the first channel of the +first input, b1 is the first channel of the second input). +

+

On the other hand, if both input are in stereo, the output channels will be +in the default order: a1, a2, b1, b2, and the channel layout will be +arbitrarily set to 4.0, which may or may not be the expected value. +

+

All inputs must have the same sample rate, and format. +

+

If inputs do not have the same duration, the output will stop with the +shortest. +

+ +

27.8.1 Examples

+ +
    +
  • +Merge two mono files into a stereo stream: +
     
    amovie=left.wav [l] ; amovie=right.mp3 [r] ; [l] [r] amerge
    +
    + +
  • +Multiple merges assuming 1 video stream and 6 audio streams in ‘input.mkv’: +
     
    ffmpeg -i input.mkv -filter_complex "[0:1][0:2][0:3][0:4][0:5][0:6] amerge=inputs=6" -c:a pcm_s16le output.mkv
    +
    +
+ + +

27.9 amix

+ +

Mixes multiple audio inputs into a single output. +

+

For example +

 
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT
+
+

will mix 3 input audio streams to a single output with the same duration as the +first input and a dropout transition time of 3 seconds. +

+

It accepts the following parameters: +

+
inputs
+

The number of inputs. If unspecified, it defaults to 2. +

+
+
duration
+

How to determine the end-of-stream. +

+
longest
+

The duration of the longest input. (default) +

+
+
shortest
+

The duration of the shortest input. +

+
+
first
+

The duration of the first input. +

+
+
+ +
+
dropout_transition
+

The transition time, in seconds, for volume renormalization when an input +stream ends. The default value is 2 seconds. +

+
+
+ + +

27.10 anull

+ +

Pass the audio source unchanged to the output. +

+ +

27.11 apad

+ +

Pad the end of a audio stream with silence, this can be used together with +-shortest to extend audio streams to the same length as the video stream. +

+ +

27.12 aphaser

+

Add a phasing effect to the input audio. +

+

A phaser filter creates series of peaks and troughs in the frequency spectrum. +The position of the peaks and troughs are modulated so that they vary over time, creating a sweeping effect. +

+

A description of the accepted parameters follows. +

+
+
in_gain
+

Set input gain. Default is 0.4. +

+
+
out_gain
+

Set output gain. Default is 0.74 +

+
+
delay
+

Set delay in milliseconds. Default is 3.0. +

+
+
decay
+

Set decay. Default is 0.4. +

+
+
speed
+

Set modulation speed in Hz. Default is 0.5. +

+
+
type
+

Set modulation type. Default is triangular. +

+

It accepts the following values: +

+
triangular, t
+
sinusoidal, s
+
+
+
+ +

+

+

27.13 aresample

+ +

Resample the input audio to the specified parameters, using the +libswresample library. If none are specified then the filter will +automatically convert between its input and output. +

+

This filter is also able to stretch/squeeze the audio data to make it match +the timestamps or to inject silence / cut out audio to make it match the +timestamps, do a combination of both or do neither. +

+

The filter accepts the syntax +[sample_rate:]resampler_options, where sample_rate +expresses a sample rate and resampler_options is a list of +key=value pairs, separated by ":". See the +ffmpeg-resampler manual for the complete list of supported options. +

+ +

27.13.1 Examples

+ +
    +
  • +Resample the input audio to 44100Hz: +
     
    aresample=44100
    +
    + +
  • +Stretch/squeeze samples to the given timestamps, with a maximum of 1000 +samples per second compensation: +
     
    aresample=async=1000
    +
    +
+ + +

27.14 asetnsamples

+ +

Set the number of samples per each output audio frame. +

+

The last output packet may contain a different number of samples, as +the filter will flush all the remaining samples when the input audio +signal its end. +

+

The filter accepts the following options: +

+
+
nb_out_samples, n
+

Set the number of frames per each output audio frame. The number is +intended as the number of samples per each channel. +Default value is 1024. +

+
+
pad, p
+

If set to 1, the filter will pad the last audio frame with zeroes, so +that the last frame will contain the same number of samples as the +previous ones. Default value is 1. +

+
+ +

For example, to set the number of per-frame samples to 1234 and +disable padding for the last frame, use: +

 
asetnsamples=n=1234:p=0
+
+ + +

27.15 asetrate

+ +

Set the sample rate without altering the PCM data. +This will result in a change of speed and pitch. +

+

The filter accepts the following options: +

+
+
sample_rate, r
+

Set the output sample rate. Default is 44100 Hz. +

+
+ + +

27.16 ashowinfo

+ +

Show a line containing various information for each input audio frame. +The input audio is not modified. +

+

The shown line contains a sequence of key/value pairs of the form +key:value. +

+

It accepts the following parameters: +

+
+
n
+

The (sequential) number of the input frame, starting from 0. +

+
+
pts
+

The presentation timestamp of the input frame, in time base units; the time base +depends on the filter input pad, and is usually 1/sample_rate. +

+
+
pts_time
+

The presentation timestamp of the input frame in seconds. +

+
+
pos
+

position of the frame in the input stream, -1 if this information in +unavailable and/or meaningless (for example in case of synthetic audio) +

+
+
fmt
+

The sample format. +

+
+
chlayout
+

The channel layout. +

+
+
rate
+

The sample rate for the audio frame. +

+
+
nb_samples
+

The number of samples (per channel) in the frame. +

+
+
checksum
+

The Adler-32 checksum (printed in hexadecimal) of the audio data. For planar +audio, the data is treated as if all the planes were concatenated. +

+
+
plane_checksums
+

A list of Adler-32 checksums for each data plane. +

+
+ + +

27.17 astats

+ +

Display time domain statistical information about the audio channels. +Statistics are calculated and displayed for each audio channel and, +where applicable, an overall figure is also given. +

+

It accepts the following option: +

+
length
+

Short window length in seconds, used for peak and trough RMS measurement. +Default is 0.05 (50 miliseconds). Allowed range is [0.1 - 10]. +

+
+ +

A description of each shown parameter follows: +

+
+
DC offset
+

Mean amplitude displacement from zero. +

+
+
Min level
+

Minimal sample level. +

+
+
Max level
+

Maximal sample level. +

+
+
Peak level dB
+
RMS level dB
+

Standard peak and RMS level measured in dBFS. +

+
+
RMS peak dB
+
RMS trough dB
+

Peak and trough values for RMS level measured over a short window. +

+
+
Crest factor
+

Standard ratio of peak to RMS level (note: not in dB). +

+
+
Flat factor
+

Flatness (i.e. consecutive samples with the same value) of the signal at its peak levels +(i.e. either Min level or Max level). +

+
+
Peak count
+

Number of occasions (not the number of samples) that the signal attained either +Min level or Max level. +

+
+ + +

27.18 astreamsync

+ +

Forward two audio streams and control the order the buffers are forwarded. +

+

The filter accepts the following options: +

+
+
expr, e
+

Set the expression deciding which stream should be +forwarded next: if the result is negative, the first stream is forwarded; if +the result is positive or zero, the second stream is forwarded. It can use +the following variables: +

+
+
b1 b2
+

number of buffers forwarded so far on each stream +

+
s1 s2
+

number of samples forwarded so far on each stream +

+
t1 t2
+

current timestamp of each stream +

+
+ +

The default value is t1-t2, which means to always forward the stream +that has a smaller timestamp. +

+
+ + +

27.18.1 Examples

+ +

Stress-test amerge by randomly sending buffers on the wrong +input, while avoiding too much of a desynchronization: +

 
amovie=file.ogg [a] ; amovie=file.mp3 [b] ;
+[a] [b] astreamsync=(2*random(1))-1+tanh(5*(t1-t2)) [a2] [b2] ;
+[a2] [b2] amerge
+
+ + +

27.19 asyncts

+ +

Synchronize audio data with timestamps by squeezing/stretching it and/or +dropping samples/adding silence when needed. +

+

This filter is not built by default, please use aresample to do squeezing/stretching. +

+

It accepts the following parameters: +

+
compensate
+

Enable stretching/squeezing the data to make it match the timestamps. Disabled +by default. When disabled, time gaps are covered with silence. +

+
+
min_delta
+

The minimum difference between timestamps and audio data (in seconds) to trigger +adding/dropping samples. The default value is 0.1. If you get an imperfect +sync with this filter, try setting this parameter to 0. +

+
+
max_comp
+

The maximum compensation in samples per second. Only relevant with compensate=1. +The default value is 500. +

+
+
first_pts
+

Assume that the first PTS should be this value. The time base is 1 / sample +rate. This allows for padding/trimming at the start of the stream. By default, +no assumption is made about the first frame’s expected PTS, so no padding or +trimming is done. For example, this could be set to 0 to pad the beginning with +silence if an audio stream starts after the video stream or to trim any samples +with a negative PTS due to encoder delay. +

+
+
+ + +

27.20 atempo

+ +

Adjust audio tempo. +

+

The filter accepts exactly one parameter, the audio tempo. If not +specified then the filter will assume nominal 1.0 tempo. Tempo must +be in the [0.5, 2.0] range. +

+ +

27.20.1 Examples

+ +
    +
  • +Slow down audio to 80% tempo: +
     
    atempo=0.8
    +
    + +
  • +To speed up audio to 125% tempo: +
     
    atempo=1.25
    +
    +
+ + +

27.21 atrim

+ +

Trim the input so that the output contains one continuous subpart of the input. +

+

It accepts the following parameters: +

+
start
+

Timestamp (in seconds) of the start of the section to keep. I.e. the audio +sample with the timestamp start will be the first sample in the output. +

+
+
end
+

Specify time of the first audio sample that will be dropped, i.e. the +audio sample immediately preceding the one with the timestamp end will be +the last sample in the output. +

+
+
start_pts
+

Same as start, except this option sets the start timestamp in samples +instead of seconds. +

+
+
end_pts
+

Same as end, except this option sets the end timestamp in samples instead +of seconds. +

+
+
duration
+

The maximum duration of the output in seconds. +

+
+
start_sample
+

The number of the first sample that should be output. +

+
+
end_sample
+

The number of the first sample that should be dropped. +

+
+ +

start’, ‘end’, ‘duration’ are expressed as time +duration specifications, check the "Time duration" section in the +ffmpeg-utils manual. +

+

Note that the first two sets of the start/end options and the ‘duration’ +option look at the frame timestamp, while the _sample options simply count the +samples that pass through the filter. So start/end_pts and start/end_sample will +give different results when the timestamps are wrong, inexact or do not start at +zero. Also note that this filter does not modify the timestamps. If you wish +to have the output timestamps start at zero, insert the asetpts filter after the +atrim filter. +

+

If multiple start or end options are set, this filter tries to be greedy and +keep all samples that match at least one of the specified constraints. To keep +only the part that matches all the constraints at once, chain multiple atrim +filters. +

+

The defaults are such that all the input is kept. So it is possible to set e.g. +just the end values to keep everything before the specified time. +

+

Examples: +

    +
  • +Drop everything except the second minute of input: +
     
    ffmpeg -i INPUT -af atrim=60:120
    +
    + +
  • +Keep only the first 1000 samples: +
     
    ffmpeg -i INPUT -af atrim=end_sample=1000
    +
    + +
+ + +

27.22 bandpass

+ +

Apply a two-pole Butterworth band-pass filter with central +frequency frequency, and (3dB-point) band-width width. +The csg option selects a constant skirt gain (peak gain = Q) +instead of the default: constant 0dB peak gain. +The filter roll off at 6dB per octave (20dB per decade). +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set the filter’s central frequency. Default is 3000. +

+
+
csg
+

Constant skirt gain if set to 1. Defaults to 0. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +

+
+ + +

27.23 bandreject

+ +

Apply a two-pole Butterworth band-reject filter with central +frequency frequency, and (3dB-point) band-width width. +The filter roll off at 6dB per octave (20dB per decade). +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set the filter’s central frequency. Default is 3000. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +

+
+ + +

27.24 bass

+ +

Boost or cut the bass (lower) frequencies of the audio using a two-pole +shelving filter with a response similar to that of a standard +hi-fi’s tone-controls. This is also known as shelving equalisation (EQ). +

+

The filter accepts the following options: +

+
+
gain, g
+

Give the gain at 0 Hz. Its useful range is about -20 +(for a large cut) to +20 (for a large boost). +Beware of clipping when using a positive gain. +

+
+
frequency, f
+

Set the filter’s central frequency and so can be used +to extend or reduce the frequency range to be boosted or cut. +The default value is 100 Hz. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Determine how steep is the filter’s shelf transition. +

+
+ + +

27.25 biquad

+ +

Apply a biquad IIR filter with the given coefficients. +Where b0, b1, b2 and a0, a1, a2 +are the numerator and denominator coefficients respectively. +

+ +

27.26 channelmap

+ +

Remap input channels to new locations. +

+

It accepts the following parameters: +

+
channel_layout
+

The channel layout of the output stream. +

+
+
map
+

Map channels from input to output. The argument is a ’|’-separated list of +mappings, each in the in_channel-out_channel or +in_channel form. in_channel can be either the name of the input +channel (e.g. FL for front left) or its index in the input channel layout. +out_channel is the name of the output channel or its index in the output +channel layout. If out_channel is not given then it is implicitly an +index, starting with zero and increasing by one for each mapping. +

+
+ +

If no mapping is present, the filter will implicitly map input channels to +output channels, preserving indices. +

+

For example, assuming a 5.1+downmix input MOV file, +

 
ffmpeg -i in.mov -filter 'channelmap=map=DL-FL|DR-FR' out.wav
+
+

will create an output WAV file tagged as stereo from the downmix channels of +the input. +

+

To fix a 5.1 WAV improperly encoded in AAC’s native channel order +

 
ffmpeg -i in.wav -filter 'channelmap=1|2|0|5|3|4:channel_layout=5.1' out.wav
+
+ + +

27.27 channelsplit

+ +

Split each channel from an input audio stream into a separate output stream. +

+

It accepts the following parameters: +

+
channel_layout
+

The channel layout of the input stream. The default is "stereo". +

+
+ +

For example, assuming a stereo input MP3 file, +

 
ffmpeg -i in.mp3 -filter_complex channelsplit out.mkv
+
+

will create an output Matroska file with two audio streams, one containing only +the left channel and the other the right channel. +

+

Split a 5.1 WAV file into per-channel files: +

 
ffmpeg -i in.wav -filter_complex
+'channelsplit=channel_layout=5.1[FL][FR][FC][LFE][SL][SR]'
+-map '[FL]' front_left.wav -map '[FR]' front_right.wav -map '[FC]'
+front_center.wav -map '[LFE]' lfe.wav -map '[SL]' side_left.wav -map '[SR]'
+side_right.wav
+
+ + +

27.28 compand

+

Compress or expand the audio’s dynamic range. +

+

It accepts the following parameters: +

+
+
attacks
+
decays
+

A list of times in seconds for each channel over which the instantaneous level +of the input signal is averaged to determine its volume. attacks refers to +increase of volume and decays refers to decrease of volume. For most +situations, the attack time (response to the audio getting louder) should be +shorter than the decay time, because the human ear is more sensitive to sudden +loud audio than sudden soft audio. A typical value for attack is 0.3 seconds and +a typical value for decay is 0.8 seconds. +

+
+
points
+

A list of points for the transfer function, specified in dB relative to the +maximum possible signal amplitude. Each key points list must be defined using +the following syntax: x0/y0|x1/y1|x2/y2|.... or +x0/y0 x1/y1 x2/y2 .... +

+

The input values must be in strictly increasing order but the transfer function +does not have to be monotonically rising. The point 0/0 is assumed but +may be overridden (by 0/out-dBn). Typical values for the transfer +function are -70/-70|-60/-20. +

+
+
soft-knee
+

Set the curve radius in dB for all joints. It defaults to 0.01. +

+
+
gain
+

Set the additional gain in dB to be applied at all points on the transfer +function. This allows for easy adjustment of the overall gain. +It defaults to 0. +

+
+
volume
+

Set an initial volume, in dB, to be assumed for each channel when filtering +starts. This permits the user to supply a nominal level initially, so that, for +example, a very large gain is not applied to initial signal levels before the +companding has begun to operate. A typical value for audio which is initially +quiet is -90 dB. It defaults to 0. +

+
+
delay
+

Set a delay, in seconds. The input audio is analyzed immediately, but audio is +delayed before being fed to the volume adjuster. Specifying a delay +approximately equal to the attack/decay times allows the filter to effectively +operate in predictive rather than reactive mode. It defaults to 0. +

+
+
+ + +

27.28.1 Examples

+ +
    +
  • +Make music with both quiet and loud passages suitable for listening to in a +noisy environment: +
     
    compand=.3|.3:1|1:-90/-60|-60/-40|-40/-30|-20/-20:6:0:-90:0.2
    +
    + +
  • +A noise gate for when the noise is at a lower level than the signal: +
     
    compand=.1|.1:.2|.2:-900/-900|-50.1/-900|-50/-50:.01:0:-90:.1
    +
    + +
  • +Here is another noise gate, this time for when the noise is at a higher level +than the signal (making it, in some ways, similar to squelch): +
     
    compand=.1|.1:.1|.1:-45.1/-45.1|-45/-900|0/-900:.01:45:-90:.1
    +
    +
+ + +

27.29 earwax

+ +

Make audio easier to listen to on headphones. +

+

This filter adds ‘cues’ to 44.1kHz stereo (i.e. audio CD format) audio +so that when listened to on headphones the stereo image is moved from +inside your head (standard for headphones) to outside and in front of +the listener (standard for speakers). +

+

Ported from SoX. +

+ +

27.30 equalizer

+ +

Apply a two-pole peaking equalisation (EQ) filter. With this +filter, the signal-level at and around a selected frequency can +be increased or decreased, whilst (unlike bandpass and bandreject +filters) that at all other frequencies is unchanged. +

+

In order to produce complex equalisation curves, this filter can +be given several times, each with a different central frequency. +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set the filter’s central frequency in Hz. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +

+
+
gain, g
+

Set the required gain or attenuation in dB. +Beware of clipping when using a positive gain. +

+
+ + +

27.30.1 Examples

+
    +
  • +Attenuate 10 dB at 1000 Hz, with a bandwidth of 200 Hz: +
     
    equalizer=f=1000:width_type=h:width=200:g=-10
    +
    + +
  • +Apply 2 dB gain at 1000 Hz with Q 1 and attenuate 5 dB at 100 Hz with Q 2: +
     
    equalizer=f=1000:width_type=q:width=1:g=2,equalizer=f=100:width_type=q:width=2:g=-5
    +
    +
+ + +

27.31 highpass

+ +

Apply a high-pass filter with 3dB point frequency. +The filter can be either single-pole, or double-pole (the default). +The filter roll off at 6dB per pole per octave (20dB per pole per decade). +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set frequency in Hz. Default is 3000. +

+
+
poles, p
+

Set number of poles. Default is 2. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +Applies only to double-pole filter. +The default is 0.707q and gives a Butterworth response. +

+
+ + +

27.32 join

+ +

Join multiple input streams into one multi-channel stream. +

+

It accepts the following parameters: +

+
inputs
+

The number of input streams. It defaults to 2. +

+
+
channel_layout
+

The desired output channel layout. It defaults to stereo. +

+
+
map
+

Map channels from inputs to output. The argument is a ’|’-separated list of +mappings, each in the input_idx.in_channel-out_channel +form. input_idx is the 0-based index of the input stream. in_channel +can be either the name of the input channel (e.g. FL for front left) or its +index in the specified input stream. out_channel is the name of the output +channel. +

+
+ +

The filter will attempt to guess the mappings when they are not specified +explicitly. It does so by first trying to find an unused matching input channel +and if that fails it picks the first unused input channel. +

+

Join 3 inputs (with properly set channel layouts): +

 
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex join=inputs=3 OUTPUT
+
+ +

Build a 5.1 output from 6 single-channel streams: +

 
ffmpeg -i fl -i fr -i fc -i sl -i sr -i lfe -filter_complex
+'join=inputs=6:channel_layout=5.1:map=0.0-FL|1.0-FR|2.0-FC|3.0-SL|4.0-SR|5.0-LFE'
+out
+
+ + +

27.33 ladspa

+ +

Load a LADSPA (Linux Audio Developer’s Simple Plugin API) plugin. +

+

To enable compilation of this filter you need to configure FFmpeg with +--enable-ladspa. +

+
+
file, f
+

Specifies the name of LADSPA plugin library to load. If the environment +variable LADSPA_PATH is defined, the LADSPA plugin is searched in +each one of the directories specified by the colon separated list in +LADSPA_PATH, otherwise in the standard LADSPA paths, which are in +this order: ‘HOME/.ladspa/lib/’, ‘/usr/local/lib/ladspa/’, +‘/usr/lib/ladspa/’. +

+
+
plugin, p
+

Specifies the plugin within the library. Some libraries contain only +one plugin, but others contain many of them. If this is not set filter +will list all available plugins within the specified library. +

+
+
controls, c
+

Set the ’|’ separated list of controls which are zero or more floating point +values that determine the behavior of the loaded plugin (for example delay, +threshold or gain). +Controls need to be defined using the following syntax: +c0=value0|c1=value1|c2=value2|..., where +valuei is the value set on the i-th control. +If ‘controls’ is set to help, all available controls and +their valid ranges are printed. +

+
+
sample_rate, s
+

Specify the sample rate, default to 44100. Only used if plugin have +zero inputs. +

+
+
nb_samples, n
+

Set the number of samples per channel per each output frame, default +is 1024. Only used if plugin have zero inputs. +

+
+
duration, d
+

Set the minimum duration of the sourced audio. See the function +av_parse_time() for the accepted format, also check the "Time duration" +section in the ffmpeg-utils manual. +Note that the resulting duration may be greater than the specified duration, +as the generated audio is always cut at the end of a complete frame. +If not specified, or the expressed duration is negative, the audio is +supposed to be generated forever. +Only used if plugin have zero inputs. +

+
+
+ + +

27.33.1 Examples

+ +
    +
  • +List all available plugins within amp (LADSPA example plugin) library: +
     
    ladspa=file=amp
    +
    + +
  • +List all available controls and their valid ranges for vcf_notch +plugin from VCF library: +
     
    ladspa=f=vcf:p=vcf_notch:c=help
    +
    + +
  • +Simulate low quality audio equipment using Computer Music Toolkit (CMT) +plugin library: +
     
    ladspa=file=cmt:plugin=lofi:controls=c0=22|c1=12|c2=12
    +
    + +
  • +Add reverberation to the audio using TAP-plugins +(Tom’s Audio Processing plugins): +
     
    ladspa=file=tap_reverb:tap_reverb
    +
    + +
  • +Generate white noise, with 0.2 amplitude: +
     
    ladspa=file=cmt:noise_source_white:c=c0=.2
    +
    + +
  • +Generate 20 bpm clicks using plugin C* Click - Metronome from the +C* Audio Plugin Suite (CAPS) library: +
     
    ladspa=file=caps:Click:c=c1=20'
    +
    + +
  • +Apply C* Eq10X2 - Stereo 10-band equaliser effect: +
     
    ladspa=caps:Eq10X2:c=c0=-48|c9=-24|c3=12|c4=2
    +
    +
+ + +

27.33.2 Commands

+ +

This filter supports the following commands: +

+
cN
+

Modify the N-th control value. +

+

If the specified value is not valid, it is ignored and prior one is kept. +

+
+ + +

27.34 lowpass

+ +

Apply a low-pass filter with 3dB point frequency. +The filter can be either single-pole or double-pole (the default). +The filter roll off at 6dB per pole per octave (20dB per pole per decade). +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set frequency in Hz. Default is 500. +

+
+
poles, p
+

Set number of poles. Default is 2. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Specify the band-width of a filter in width_type units. +Applies only to double-pole filter. +The default is 0.707q and gives a Butterworth response. +

+
+ + +

27.35 pan

+ +

Mix channels with specific gain levels. The filter accepts the output +channel layout followed by a set of channels definitions. +

+

This filter is also designed to remap efficiently the channels of an audio +stream. +

+

The filter accepts parameters of the form: +"l:outdef:outdef:..." +

+
+
l
+

output channel layout or number of channels +

+
+
outdef
+

output channel specification, of the form: +"out_name=[gain*]in_name[+[gain*]in_name...]" +

+
+
out_name
+

output channel to define, either a channel name (FL, FR, etc.) or a channel +number (c0, c1, etc.) +

+
+
gain
+

multiplicative coefficient for the channel, 1 leaving the volume unchanged +

+
+
in_name
+

input channel to use, see out_name for details; it is not possible to mix +named and numbered input channels +

+
+ +

If the ‘=’ in a channel specification is replaced by ‘<’, then the gains for +that specification will be renormalized so that the total is 1, thus +avoiding clipping noise. +

+ +

27.35.1 Mixing examples

+ +

For example, if you want to down-mix from stereo to mono, but with a bigger +factor for the left channel: +

 
pan=1:c0=0.9*c0+0.1*c1
+
+ +

A customized down-mix to stereo that works automatically for 3-, 4-, 5- and +7-channels surround: +

 
pan=stereo: FL < FL + 0.5*FC + 0.6*BL + 0.6*SL : FR < FR + 0.5*FC + 0.6*BR + 0.6*SR
+
+ +

Note that ffmpeg integrates a default down-mix (and up-mix) system +that should be preferred (see "-ac" option) unless you have very specific +needs. +

+ +

27.35.2 Remapping examples

+ +

The channel remapping will be effective if, and only if: +

+
    +
  • gain coefficients are zeroes or ones, +
  • only one input per channel output, +
+ +

If all these conditions are satisfied, the filter will notify the user ("Pure +channel mapping detected"), and use an optimized and lossless method to do the +remapping. +

+

For example, if you have a 5.1 source and want a stereo audio stream by +dropping the extra channels: +

 
pan="stereo: c0=FL : c1=FR"
+
+ +

Given the same source, you can also switch front left and front right channels +and keep the input channel layout: +

 
pan="5.1: c0=c1 : c1=c0 : c2=c2 : c3=c3 : c4=c4 : c5=c5"
+
+ +

If the input is a stereo audio stream, you can mute the front left channel (and +still keep the stereo channel layout) with: +

 
pan="stereo:c1=c1"
+
+ +

Still with a stereo audio stream input, you can copy the right channel in both +front left and right: +

 
pan="stereo: c0=FR : c1=FR"
+
+ + +

27.36 replaygain

+ +

ReplayGain scanner filter. This filter takes an audio stream as an input and +outputs it unchanged. +At end of filtering it displays track_gain and track_peak. +

+ +

27.37 resample

+ +

Convert the audio sample format, sample rate and channel layout. It is +not meant to be used directly. +

+ +

27.38 silencedetect

+ +

Detect silence in an audio stream. +

+

This filter logs a message when it detects that the input audio volume is less +or equal to a noise tolerance value for a duration greater or equal to the +minimum detected noise duration. +

+

The printed times and duration are expressed in seconds. +

+

The filter accepts the following options: +

+
+
duration, d
+

Set silence duration until notification (default is 2 seconds). +

+
+
noise, n
+

Set noise tolerance. Can be specified in dB (in case "dB" is appended to the +specified value) or amplitude ratio. Default is -60dB, or 0.001. +

+
+ + +

27.38.1 Examples

+ +
    +
  • +Detect 5 seconds of silence with -50dB noise tolerance: +
     
    silencedetect=n=-50dB:d=5
    +
    + +
  • +Complete example with ffmpeg to detect silence with 0.0001 noise +tolerance in ‘silence.mp3’: +
     
    ffmpeg -i silence.mp3 -af silencedetect=noise=0.0001 -f null -
    +
    +
+ + +

27.39 treble

+ +

Boost or cut treble (upper) frequencies of the audio using a two-pole +shelving filter with a response similar to that of a standard +hi-fi’s tone-controls. This is also known as shelving equalisation (EQ). +

+

The filter accepts the following options: +

+
+
gain, g
+

Give the gain at whichever is the lower of ~22 kHz and the +Nyquist frequency. Its useful range is about -20 (for a large cut) +to +20 (for a large boost). Beware of clipping when using a positive gain. +

+
+
frequency, f
+

Set the filter’s central frequency and so can be used +to extend or reduce the frequency range to be boosted or cut. +The default value is 3000 Hz. +

+
+
width_type
+

Set method to specify band-width of filter. +

+
h
+

Hz +

+
q
+

Q-Factor +

+
o
+

octave +

+
s
+

slope +

+
+ +
+
width, w
+

Determine how steep is the filter’s shelf transition. +

+
+ + +

27.40 volume

+ +

Adjust the input audio volume. +

+

It accepts the following parameters: +

+
volume
+

Set audio volume expression. +

+

Output values are clipped to the maximum value. +

+

The output audio volume is given by the relation: +

 
output_volume = volume * input_volume
+
+ +

The default value for volume is "1.0". +

+
+
precision
+

This parameter represents the mathematical precision. +

+

It determines which input sample formats will be allowed, which affects the +precision of the volume scaling. +

+
+
fixed
+

8-bit fixed-point; this limits input sample format to U8, S16, and S32. +

+
float
+

32-bit floating-point; this limits input sample format to FLT. (default) +

+
double
+

64-bit floating-point; this limits input sample format to DBL. +

+
+ +
+
replaygain
+

Choose the behaviour on encountering ReplayGain side data in input frames. +

+
+
drop
+

Remove ReplayGain side data, ignoring its contents (the default). +

+
+
ignore
+

Ignore ReplayGain side data, but leave it in the frame. +

+
+
track
+

Prefer the track gain, if present. +

+
+
album
+

Prefer the album gain, if present. +

+
+ +
+
replaygain_preamp
+

Pre-amplification gain in dB to apply to the selected replaygain gain. +

+

Default value for replaygain_preamp is 0.0. +

+
+
eval
+

Set when the volume expression is evaluated. +

+

It accepts the following values: +

+
once
+

only evaluate expression once during the filter initialization, or +when the ‘volume’ command is sent +

+
+
frame
+

evaluate expression for each incoming frame +

+
+ +

Default value is ‘once’. +

+
+ +

The volume expression can contain the following parameters. +

+
+
n
+

frame number (starting at zero) +

+
nb_channels
+

number of channels +

+
nb_consumed_samples
+

number of samples consumed by the filter +

+
nb_samples
+

number of samples in the current frame +

+
pos
+

original frame position in the file +

+
pts
+

frame PTS +

+
sample_rate
+

sample rate +

+
startpts
+

PTS at start of stream +

+
startt
+

time at start of stream +

+
t
+

frame time +

+
tb
+

timestamp timebase +

+
volume
+

last set volume value +

+
+ +

Note that when ‘eval’ is set to ‘once’ only the +sample_rate and tb variables are available, all other +variables will evaluate to NAN. +

+ +

27.40.1 Commands

+ +

This filter supports the following commands: +

+
volume
+

Modify the volume expression. +The command accepts the same syntax of the corresponding option. +

+

If the specified expression is not valid, it is kept at its current +value. +

+
replaygain_noclip
+

Prevent clipping by limiting the gain applied. +

+

Default value for replaygain_noclip is 1. +

+
+
+ + +

27.40.2 Examples

+ +
    +
  • +Halve the input audio volume: +
     
    volume=volume=0.5
    +volume=volume=1/2
    +volume=volume=-6.0206dB
    +
    + +

    In all the above example the named key for ‘volume’ can be +omitted, for example like in: +

     
    volume=0.5
    +
    + +
  • +Increase input audio power by 6 decibels using fixed-point precision: +
     
    volume=volume=6dB:precision=fixed
    +
    + +
  • +Fade volume after time 10 with an annihilation period of 5 seconds: +
     
    volume='if(lt(t,10),1,max(1-(t-10)/5,0))':eval=frame
    +
    +
+ + +

27.41 volumedetect

+ +

Detect the volume of the input video. +

+

The filter has no parameters. The input is not modified. Statistics about +the volume will be printed in the log when the input stream end is reached. +

+

In particular it will show the mean volume (root mean square), maximum +volume (on a per-sample basis), and the beginning of a histogram of the +registered volume values (from the maximum value to a cumulated 1/1000 of +the samples). +

+

All volumes are in decibels relative to the maximum PCM value. +

+ +

27.41.1 Examples

+ +

Here is an excerpt of the output: +

 
[Parsed_volumedetect_0  0xa23120] mean_volume: -27 dB
+[Parsed_volumedetect_0  0xa23120] max_volume: -4 dB
+[Parsed_volumedetect_0  0xa23120] histogram_4db: 6
+[Parsed_volumedetect_0  0xa23120] histogram_5db: 62
+[Parsed_volumedetect_0  0xa23120] histogram_6db: 286
+[Parsed_volumedetect_0  0xa23120] histogram_7db: 1042
+[Parsed_volumedetect_0  0xa23120] histogram_8db: 2551
+[Parsed_volumedetect_0  0xa23120] histogram_9db: 4609
+[Parsed_volumedetect_0  0xa23120] histogram_10db: 8409
+
+ +

It means that: +

    +
  • +The mean square energy is approximately -27 dB, or 10^-2.7. +
  • +The largest sample is at -4 dB, or more precisely between -4 dB and -5 dB. +
  • +There are 6 samples at -4 dB, 62 at -5 dB, 286 at -6 dB, etc. +
+ +

In other words, raising the volume by +4 dB does not cause any clipping, +raising it by +5 dB causes clipping for 6 samples, etc. +

+ + +

28. Audio Sources

+ +

Below is a description of the currently available audio sources. +

+ +

28.1 abuffer

+ +

Buffer audio frames, and make them available to the filter chain. +

+

This source is mainly intended for a programmatic use, in particular +through the interface defined in ‘libavfilter/asrc_abuffer.h’. +

+

It accepts the following parameters: +

+
time_base
+

The timebase which will be used for timestamps of submitted frames. It must be +either a floating-point number or in numerator/denominator form. +

+
+
sample_rate
+

The sample rate of the incoming audio buffers. +

+
+
sample_fmt
+

The sample format of the incoming audio buffers. +Either a sample format name or its corresponging integer representation from +the enum AVSampleFormat in ‘libavutil/samplefmt.h’ +

+
+
channel_layout
+

The channel layout of the incoming audio buffers. +Either a channel layout name from channel_layout_map in +‘libavutil/channel_layout.c’ or its corresponding integer representation +from the AV_CH_LAYOUT_* macros in ‘libavutil/channel_layout.h’ +

+
+
channels
+

The number of channels of the incoming audio buffers. +If both channels and channel_layout are specified, then they +must be consistent. +

+
+
+ + +

28.1.1 Examples

+ +
 
abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo
+
+ +

will instruct the source to accept planar 16bit signed stereo at 44100Hz. +Since the sample format with name "s16p" corresponds to the number +6 and the "stereo" channel layout corresponds to the value 0x3, this is +equivalent to: +

 
abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3
+
+ + +

28.2 aevalsrc

+ +

Generate an audio signal specified by an expression. +

+

This source accepts in input one or more expressions (one for each +channel), which are evaluated and used to generate a corresponding +audio signal. +

+

This source accepts the following options: +

+
+
exprs
+

Set the ’|’-separated expressions list for each separate channel. In case the +‘channel_layout’ option is not specified, the selected channel layout +depends on the number of provided expressions. Otherwise the last +specified expression is applied to the remaining output channels. +

+
+
channel_layout, c
+

Set the channel layout. The number of channels in the specified layout +must be equal to the number of specified expressions. +

+
+
duration, d
+

Set the minimum duration of the sourced audio. See the function +av_parse_time() for the accepted format. +Note that the resulting duration may be greater than the specified +duration, as the generated audio is always cut at the end of a +complete frame. +

+

If not specified, or the expressed duration is negative, the audio is +supposed to be generated forever. +

+
+
nb_samples, n
+

Set the number of samples per channel per each output frame, +default to 1024. +

+
+
sample_rate, s
+

Specify the sample rate, default to 44100. +

+
+ +

Each expression in exprs can contain the following constants: +

+
+
n
+

number of the evaluated sample, starting from 0 +

+
+
t
+

time of the evaluated sample expressed in seconds, starting from 0 +

+
+
s
+

sample rate +

+
+
+ + +

28.2.1 Examples

+ +
    +
  • +Generate silence: +
     
    aevalsrc=0
    +
    + +
  • +Generate a sin signal with frequency of 440 Hz, set sample rate to +8000 Hz: +
     
    aevalsrc="sin(440*2*PI*t):s=8000"
    +
    + +
  • +Generate a two channels signal, specify the channel layout (Front +Center + Back Center) explicitly: +
     
    aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC"
    +
    + +
  • +Generate white noise: +
     
    aevalsrc="-2+random(0)"
    +
    + +
  • +Generate an amplitude modulated signal: +
     
    aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)"
    +
    + +
  • +Generate 2.5 Hz binaural beats on a 360 Hz carrier: +
     
    aevalsrc="0.1*sin(2*PI*(360-2.5/2)*t) | 0.1*sin(2*PI*(360+2.5/2)*t)"
    +
    + +
+ + +

28.3 anullsrc

+ +

The null audio source, return unprocessed audio frames. It is mainly useful +as a template and to be employed in analysis / debugging tools, or as +the source for filters which ignore the input data (for example the sox +synth filter). +

+

This source accepts the following options: +

+
+
channel_layout, cl
+
+

Specifies the channel layout, and can be either an integer or a string +representing a channel layout. The default value of channel_layout +is "stereo". +

+

Check the channel_layout_map definition in +‘libavutil/channel_layout.c’ for the mapping between strings and +channel layout values. +

+
+
sample_rate, r
+

Specifies the sample rate, and defaults to 44100. +

+
+
nb_samples, n
+

Set the number of samples per requested frames. +

+
+
+ + +

28.3.1 Examples

+ +
    +
  • +Set the sample rate to 48000 Hz and the channel layout to AV_CH_LAYOUT_MONO. +
     
    anullsrc=r=48000:cl=4
    +
    + +
  • +Do the same operation with a more obvious syntax: +
     
    anullsrc=r=48000:cl=mono
    +
    +
+ +

All the parameters need to be explicitly defined. +

+ +

28.4 flite

+ +

Synthesize a voice utterance using the libflite library. +

+

To enable compilation of this filter you need to configure FFmpeg with +--enable-libflite. +

+

Note that the flite library is not thread-safe. +

+

The filter accepts the following options: +

+
+
list_voices
+

If set to 1, list the names of the available voices and exit +immediately. Default value is 0. +

+
+
nb_samples, n
+

Set the maximum number of samples per frame. Default value is 512. +

+
+
textfile
+

Set the filename containing the text to speak. +

+
+
text
+

Set the text to speak. +

+
+
voice, v
+

Set the voice to use for the speech synthesis. Default value is +kal. See also the list_voices option. +

+
+ + +

28.4.1 Examples

+ +
    +
  • +Read from file ‘speech.txt’, and synthetize the text using the +standard flite voice: +
     
    flite=textfile=speech.txt
    +
    + +
  • +Read the specified text selecting the slt voice: +
     
    flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
    +
    + +
  • +Input text to ffmpeg: +
     
    ffmpeg -f lavfi -i flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
    +
    + +
  • +Make ‘ffplay’ speak the specified text, using flite and +the lavfi device: +
     
    ffplay -f lavfi flite=text='No more be grieved for which that thou hast done.'
    +
    +
+ +

For more information about libflite, check: +http://www.speech.cs.cmu.edu/flite/ +

+ +

28.5 sine

+ +

Generate an audio signal made of a sine wave with amplitude 1/8. +

+

The audio signal is bit-exact. +

+

The filter accepts the following options: +

+
+
frequency, f
+

Set the carrier frequency. Default is 440 Hz. +

+
+
beep_factor, b
+

Enable a periodic beep every second with frequency beep_factor times +the carrier frequency. Default is 0, meaning the beep is disabled. +

+
+
sample_rate, r
+

Specify the sample rate, default is 44100. +

+
+
duration, d
+

Specify the duration of the generated audio stream. +

+
+
samples_per_frame
+

Set the number of samples per output frame, default is 1024. +

+
+ + +

28.5.1 Examples

+ +
    +
  • +Generate a simple 440 Hz sine wave: +
     
    sine
    +
    + +
  • +Generate a 220 Hz sine wave with a 880 Hz beep each second, for 5 seconds: +
     
    sine=220:4:d=5
    +sine=f=220:b=4:d=5
    +sine=frequency=220:beep_factor=4:duration=5
    +
    + +
+ + + +

29. Audio Sinks

+ +

Below is a description of the currently available audio sinks. +

+ +

29.1 abuffersink

+ +

Buffer audio frames, and make them available to the end of filter chain. +

+

This sink is mainly intended for programmatic use, in particular +through the interface defined in ‘libavfilter/buffersink.h’ +or the options system. +

+

It accepts a pointer to an AVABufferSinkContext structure, which +defines the incoming buffers’ formats, to be passed as the opaque +parameter to avfilter_init_filter for initialization. +

+

29.2 anullsink

+ +

Null audio sink; do absolutely nothing with the input audio. It is +mainly useful as a template and for use in analysis / debugging +tools. +

+ + +

30. Video Filters

+ +

When you configure your FFmpeg build, you can disable any of the +existing filters using --disable-filters. +The configure output will show the video filters included in your +build. +

+

Below is a description of the currently available video filters. +

+ +

30.1 alphaextract

+ +

Extract the alpha component from the input as a grayscale video. This +is especially useful with the alphamerge filter. +

+ +

30.2 alphamerge

+ +

Add or replace the alpha component of the primary input with the +grayscale value of a second input. This is intended for use with +alphaextract to allow the transmission or storage of frame +sequences that have alpha in a format that doesn’t support an alpha +channel. +

+

For example, to reconstruct full frames from a normal YUV-encoded video +and a separate video created with alphaextract, you might use: +

 
movie=in_alpha.mkv [alpha]; [in][alpha] alphamerge [out]
+
+ +

Since this filter is designed for reconstruction, it operates on frame +sequences without considering timestamps, and terminates when either +input reaches end of stream. This will cause problems if your encoding +pipeline drops frames. If you’re trying to apply an image as an +overlay to a video stream, consider the overlay filter instead. +

+ +

30.3 ass

+ +

Same as the subtitles filter, except that it doesn’t require libavcodec +and libavformat to work. On the other hand, it is limited to ASS (Advanced +Substation Alpha) subtitles files. +

+ +

30.4 bbox

+ +

Compute the bounding box for the non-black pixels in the input frame +luminance plane. +

+

This filter computes the bounding box containing all the pixels with a +luminance value greater than the minimum allowed value. +The parameters describing the bounding box are printed on the filter +log. +

+

The filter accepts the following option: +

+
+
min_val
+

Set the minimal luminance value. Default is 16. +

+
+ + +

30.5 blackdetect

+ +

Detect video intervals that are (almost) completely black. Can be +useful to detect chapter transitions, commercials, or invalid +recordings. Output lines contains the time for the start, end and +duration of the detected black interval expressed in seconds. +

+

In order to display the output lines, you need to set the loglevel at +least to the AV_LOG_INFO value. +

+

The filter accepts the following options: +

+
+
black_min_duration, d
+

Set the minimum detected black duration expressed in seconds. It must +be a non-negative floating point number. +

+

Default value is 2.0. +

+
+
picture_black_ratio_th, pic_th
+

Set the threshold for considering a picture "black". +Express the minimum value for the ratio: +

 
nb_black_pixels / nb_pixels
+
+ +

for which a picture is considered black. +Default value is 0.98. +

+
+
pixel_black_th, pix_th
+

Set the threshold for considering a pixel "black". +

+

The threshold expresses the maximum pixel luminance value for which a +pixel is considered "black". The provided value is scaled according to +the following equation: +

 
absolute_threshold = luminance_minimum_value + pixel_black_th * luminance_range_size
+
+ +

luminance_range_size and luminance_minimum_value depend on +the input video format, the range is [0-255] for YUV full-range +formats and [16-235] for YUV non full-range formats. +

+

Default value is 0.10. +

+
+ +

The following example sets the maximum pixel threshold to the minimum +value, and detects only black intervals of 2 or more seconds: +

 
blackdetect=d=2:pix_th=0.00
+
+ + +

30.6 blackframe

+ +

Detect frames that are (almost) completely black. Can be useful to +detect chapter transitions or commercials. Output lines consist of +the frame number of the detected frame, the percentage of blackness, +the position in the file if known or -1 and the timestamp in seconds. +

+

In order to display the output lines, you need to set the loglevel at +least to the AV_LOG_INFO value. +

+

It accepts the following parameters: +

+
+
amount
+

The percentage of the pixels that have to be below the threshold; it defaults to +98. +

+
+
threshold, thresh
+

The threshold below which a pixel value is considered black; it defaults to +32. +

+
+
+ + +

30.7 blend

+ +

Blend two video frames into each other. +

+

It takes two input streams and outputs one stream, the first input is the +"top" layer and second input is "bottom" layer. +Output terminates when shortest input terminates. +

+

A description of the accepted options follows. +

+
+
c0_mode
+
c1_mode
+
c2_mode
+
c3_mode
+
all_mode
+

Set blend mode for specific pixel component or all pixel components in case +of all_mode. Default value is normal. +

+

Available values for component modes are: +

+
addition
+
and
+
average
+
burn
+
darken
+
difference
+
divide
+
dodge
+
exclusion
+
hardlight
+
lighten
+
multiply
+
negation
+
normal
+
or
+
overlay
+
phoenix
+
pinlight
+
reflect
+
screen
+
softlight
+
subtract
+
vividlight
+
xor
+
+ +
+
c0_opacity
+
c1_opacity
+
c2_opacity
+
c3_opacity
+
all_opacity
+

Set blend opacity for specific pixel component or all pixel components in case +of all_opacity. Only used in combination with pixel component blend modes. +

+
+
c0_expr
+
c1_expr
+
c2_expr
+
c3_expr
+
all_expr
+

Set blend expression for specific pixel component or all pixel components in case +of all_expr. Note that related mode options will be ignored if those are set. +

+

The expressions can use the following variables: +

+
+
N
+

The sequential number of the filtered frame, starting from 0. +

+
+
X
+
Y
+

the coordinates of the current sample +

+
+
W
+
H
+

the width and height of currently filtered plane +

+
+
SW
+
SH
+

Width and height scale depending on the currently filtered plane. It is the +ratio between the corresponding luma plane number of pixels and the current +plane ones. E.g. for YUV4:2:0 the values are 1,1 for the luma plane, and +0.5,0.5 for chroma planes. +

+
+
T
+

Time of the current frame, expressed in seconds. +

+
+
TOP, A
+

Value of pixel component at current location for first video frame (top layer). +

+
+
BOTTOM, B
+

Value of pixel component at current location for second video frame (bottom layer). +

+
+ +
+
shortest
+

Force termination when the shortest input terminates. Default is 0. +

+
repeatlast
+

Continue applying the last bottom frame after the end of the stream. A value of +0 disable the filter after the last frame of the bottom layer is reached. +Default is 1. +

+
+ + +

30.7.1 Examples

+ +
    +
  • +Apply transition from bottom layer to top layer in first 10 seconds: +
     
    blend=all_expr='A*(if(gte(T,10),1,T/10))+B*(1-(if(gte(T,10),1,T/10)))'
    +
    + +
  • +Apply 1x1 checkerboard effect: +
     
    blend=all_expr='if(eq(mod(X,2),mod(Y,2)),A,B)'
    +
    + +
  • +Apply uncover left effect: +
     
    blend=all_expr='if(gte(N*SW+X,W),A,B)'
    +
    + +
  • +Apply uncover down effect: +
     
    blend=all_expr='if(gte(Y-N*SH,0),A,B)'
    +
    + +
  • +Apply uncover up-left effect: +
     
    blend=all_expr='if(gte(T*SH*40+Y,H)*gte((T*40*SW+X)*W/H,W),A,B)'
    +
    +
+ + +

30.8 boxblur

+ +

Apply a boxblur algorithm to the input video. +

+

It accepts the following parameters: +

+
+
luma_radius, lr
+
luma_power, lp
+
chroma_radius, cr
+
chroma_power, cp
+
alpha_radius, ar
+
alpha_power, ap
+
+ +

A description of the accepted options follows. +

+
+
luma_radius, lr
+
chroma_radius, cr
+
alpha_radius, ar
+

Set an expression for the box radius in pixels used for blurring the +corresponding input plane. +

+

The radius value must be a non-negative number, and must not be +greater than the value of the expression min(w,h)/2 for the +luma and alpha planes, and of min(cw,ch)/2 for the chroma +planes. +

+

Default value for ‘luma_radius’ is "2". If not specified, +‘chroma_radius’ and ‘alpha_radius’ default to the +corresponding value set for ‘luma_radius’. +

+

The expressions can contain the following constants: +

+
w
+
h
+

The input width and height in pixels. +

+
+
cw
+
ch
+

The input chroma image width and height in pixels. +

+
+
hsub
+
vsub
+

The horizontal and vertical chroma subsample values. For example, for the +pixel format "yuv422p", hsub is 2 and vsub is 1. +

+
+ +
+
luma_power, lp
+
chroma_power, cp
+
alpha_power, ap
+

Specify how many times the boxblur filter is applied to the +corresponding plane. +

+

Default value for ‘luma_power’ is 2. If not specified, +‘chroma_power’ and ‘alpha_power’ default to the +corresponding value set for ‘luma_power’. +

+

A value of 0 will disable the effect. +

+
+ + +

30.8.1 Examples

+ +
    +
  • +Apply a boxblur filter with the luma, chroma, and alpha radii +set to 2: +
     
    boxblur=luma_radius=2:luma_power=1
    +boxblur=2:1
    +
    + +
  • +Set the luma radius to 2, and alpha and chroma radius to 0: +
     
    boxblur=2:1:cr=0:ar=0
    +
    + +
  • +Set the luma and chroma radii to a fraction of the video dimension: +
     
    boxblur=luma_radius=min(h\,w)/10:luma_power=1:chroma_radius=min(cw\,ch)/10:chroma_power=1
    +
    +
+ + +

30.9 colorbalance

+

Modify intensity of primary colors (red, green and blue) of input frames. +

+

The filter allows an input frame to be adjusted in the shadows, midtones or highlights +regions for the red-cyan, green-magenta or blue-yellow balance. +

+

A positive adjustment value shifts the balance towards the primary color, a negative +value towards the complementary color. +

+

The filter accepts the following options: +

+
+
rs
+
gs
+
bs
+

Adjust red, green and blue shadows (darkest pixels). +

+
+
rm
+
gm
+
bm
+

Adjust red, green and blue midtones (medium pixels). +

+
+
rh
+
gh
+
bh
+

Adjust red, green and blue highlights (brightest pixels). +

+

Allowed ranges for options are [-1.0, 1.0]. Defaults are 0. +

+
+ + +

30.9.1 Examples

+ +
    +
  • +Add red color cast to shadows: +
     
    colorbalance=rs=.3
    +
    +
+ + +

30.10 colorchannelmixer

+ +

Adjust video input frames by re-mixing color channels. +

+

This filter modifies a color channel by adding the values associated to +the other channels of the same pixels. For example if the value to +modify is red, the output value will be: +

 
red=red*rr + blue*rb + green*rg + alpha*ra
+
+ +

The filter accepts the following options: +

+
+
rr
+
rg
+
rb
+
ra
+

Adjust contribution of input red, green, blue and alpha channels for output red channel. +Default is 1 for rr, and 0 for rg, rb and ra. +

+
+
gr
+
gg
+
gb
+
ga
+

Adjust contribution of input red, green, blue and alpha channels for output green channel. +Default is 1 for gg, and 0 for gr, gb and ga. +

+
+
br
+
bg
+
bb
+
ba
+

Adjust contribution of input red, green, blue and alpha channels for output blue channel. +Default is 1 for bb, and 0 for br, bg and ba. +

+
+
ar
+
ag
+
ab
+
aa
+

Adjust contribution of input red, green, blue and alpha channels for output alpha channel. +Default is 1 for aa, and 0 for ar, ag and ab. +

+

Allowed ranges for options are [-2.0, 2.0]. +

+
+ + +

30.10.1 Examples

+ +
    +
  • +Convert source to grayscale: +
     
    colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3
    +
    +
  • +Simulate sepia tones: +
     
    colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131
    +
    +
+ + +

30.11 colormatrix

+ +

Convert color matrix. +

+

The filter accepts the following options: +

+
+
src
+
dst
+

Specify the source and destination color matrix. Both values must be +specified. +

+

The accepted values are: +

+
bt709
+

BT.709 +

+
+
bt601
+

BT.601 +

+
+
smpte240m
+

SMPTE-240M +

+
+
fcc
+

FCC +

+
+
+
+ +

For example to convert from BT.601 to SMPTE-240M, use the command: +

 
colormatrix=bt601:smpte240m
+
+ + +

30.12 copy

+ +

Copy the input source unchanged to the output. This is mainly useful for +testing purposes. +

+ +

30.13 crop

+ +

Crop the input video to given dimensions. +

+

It accepts the following parameters: +

+
+
w, out_w
+

The width of the output video. It defaults to iw. +This expression is evaluated only once during the filter +configuration. +

+
+
h, out_h
+

The height of the output video. It defaults to ih. +This expression is evaluated only once during the filter +configuration. +

+
+
x
+

The horizontal position, in the input video, of the left edge of the output +video. It defaults to (in_w-out_w)/2. +This expression is evaluated per-frame. +

+
+
y
+

The vertical position, in the input video, of the top edge of the output video. +It defaults to (in_h-out_h)/2. +This expression is evaluated per-frame. +

+
+
keep_aspect
+

If set to 1 will force the output display aspect ratio +to be the same of the input, by changing the output sample aspect +ratio. It defaults to 0. +

+
+ +

The out_w, out_h, x, y parameters are +expressions containing the following constants: +

+
+
x
+
y
+

The computed values for x and y. They are evaluated for +each new frame. +

+
+
in_w
+
in_h
+

The input width and height. +

+
+
iw
+
ih
+

These are the same as in_w and in_h. +

+
+
out_w
+
out_h
+

The output (cropped) width and height. +

+
+
ow
+
oh
+

These are the same as out_w and out_h. +

+
+
a
+

same as iw / ih +

+
+
sar
+

input sample aspect ratio +

+
+
dar
+

input display aspect ratio, it is the same as (iw / ih) * sar +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
n
+

The number of the input frame, starting from 0. +

+
+
pos
+

the position in the file of the input frame, NAN if unknown +

+
+
t
+

The timestamp expressed in seconds. It’s NAN if the input timestamp is unknown. +

+
+
+ +

The expression for out_w may depend on the value of out_h, +and the expression for out_h may depend on out_w, but they +cannot depend on x and y, as x and y are +evaluated after out_w and out_h. +

+

The x and y parameters specify the expressions for the +position of the top-left corner of the output (non-cropped) area. They +are evaluated for each frame. If the evaluated value is not valid, it +is approximated to the nearest valid value. +

+

The expression for x may depend on y, and the expression +for y may depend on x. +

+ +

30.13.1 Examples

+ +
    +
  • +Crop area with size 100x100 at position (12,34). +
     
    crop=100:100:12:34
    +
    + +

    Using named options, the example above becomes: +

     
    crop=w=100:h=100:x=12:y=34
    +
    + +
  • +Crop the central input area with size 100x100: +
     
    crop=100:100
    +
    + +
  • +Crop the central input area with size 2/3 of the input video: +
     
    crop=2/3*in_w:2/3*in_h
    +
    + +
  • +Crop the input video central square: +
     
    crop=out_w=in_h
    +crop=in_h
    +
    + +
  • +Delimit the rectangle with the top-left corner placed at position +100:100 and the right-bottom corner corresponding to the right-bottom +corner of the input image. +
     
    crop=in_w-100:in_h-100:100:100
    +
    + +
  • +Crop 10 pixels from the left and right borders, and 20 pixels from +the top and bottom borders +
     
    crop=in_w-2*10:in_h-2*20
    +
    + +
  • +Keep only the bottom right quarter of the input image: +
     
    crop=in_w/2:in_h/2:in_w/2:in_h/2
    +
    + +
  • +Crop height for getting Greek harmony: +
     
    crop=in_w:1/PHI*in_w
    +
    + +
  • +Appply trembling effect: +
     
    crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(n/10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(n/7)
    +
    + +
  • +Apply erratic camera effect depending on timestamp: +
     
    crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(t*10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(t*13)"
    +
    + +
  • +Set x depending on the value of y: +
     
    crop=in_w/2:in_h/2:y:10+10*sin(n/10)
    +
    +
+ + +

30.14 cropdetect

+ +

Auto-detect the crop size. +

+

It calculates the necessary cropping parameters and prints the +recommended parameters via the logging system. The detected dimensions +correspond to the non-black area of the input video. +

+

It accepts the following parameters: +

+
+
limit
+

Set higher black value threshold, which can be optionally specified +from nothing (0) to everything (255). An intensity value greater +to the set value is considered non-black. It defaults to 24. +

+
+
round
+

The value which the width/height should be divisible by. It defaults to +16. The offset is automatically adjusted to center the video. Use 2 to +get only even dimensions (needed for 4:2:2 video). 16 is best when +encoding to most video codecs. +

+
+
reset_count, reset
+

Set the counter that determines after how many frames cropdetect will +reset the previously detected largest video area and start over to +detect the current optimal crop area. Default value is 0. +

+

This can be useful when channel logos distort the video area. 0 +indicates ’never reset’, and returns the largest area encountered during +playback. +

+
+ +

+

+

30.15 curves

+ +

Apply color adjustments using curves. +

+

This filter is similar to the Adobe Photoshop and GIMP curves tools. Each +component (red, green and blue) has its values defined by N key points +tied from each other using a smooth curve. The x-axis represents the pixel +values from the input frame, and the y-axis the new pixel values to be set for +the output frame. +

+

By default, a component curve is defined by the two points (0;0) and +(1;1). This creates a straight line where each original pixel value is +"adjusted" to its own value, which means no change to the image. +

+

The filter allows you to redefine these two points and add some more. A new +curve (using a natural cubic spline interpolation) will be define to pass +smoothly through all these new coordinates. The new defined points needs to be +strictly increasing over the x-axis, and their x and y values must +be in the [0;1] interval. If the computed curves happened to go outside +the vector spaces, the values will be clipped accordingly. +

+

If there is no key point defined in x=0, the filter will automatically +insert a (0;0) point. In the same way, if there is no key point defined +in x=1, the filter will automatically insert a (1;1) point. +

+

The filter accepts the following options: +

+
+
preset
+

Select one of the available color presets. This option can be used in addition +to the ‘r’, ‘g’, ‘b’ parameters; in this case, the later +options takes priority on the preset values. +Available presets are: +

+
none
+
color_negative
+
cross_process
+
darker
+
increase_contrast
+
lighter
+
linear_contrast
+
medium_contrast
+
negative
+
strong_contrast
+
vintage
+
+

Default is none. +

+
master, m
+

Set the master key points. These points will define a second pass mapping. It +is sometimes called a "luminance" or "value" mapping. It can be used with +‘r’, ‘g’, ‘b’ or ‘all’ since it acts like a +post-processing LUT. +

+
red, r
+

Set the key points for the red component. +

+
green, g
+

Set the key points for the green component. +

+
blue, b
+

Set the key points for the blue component. +

+
all
+

Set the key points for all components (not including master). +Can be used in addition to the other key points component +options. In this case, the unset component(s) will fallback on this +‘all’ setting. +

+
psfile
+

Specify a Photoshop curves file (.asv) to import the settings from. +

+
+ +

To avoid some filtergraph syntax conflicts, each key points list need to be +defined using the following syntax: x0/y0 x1/y1 x2/y2 .... +

+ +

30.15.1 Examples

+ +
    +
  • +Increase slightly the middle level of blue: +
     
    curves=blue='0.5/0.58'
    +
    + +
  • +Vintage effect: +
     
    curves=r='0/0.11 .42/.51 1/0.95':g='0.50/0.48':b='0/0.22 .49/.44 1/0.8'
    +
    +

    Here we obtain the following coordinates for each components: +

    +
    red
    +

    (0;0.11) (0.42;0.51) (1;0.95) +

    +
    green
    +

    (0;0) (0.50;0.48) (1;1) +

    +
    blue
    +

    (0;0.22) (0.49;0.44) (1;0.80) +

    +
    + +
  • +The previous example can also be achieved with the associated built-in preset: +
     
    curves=preset=vintage
    +
    + +
  • +Or simply: +
     
    curves=vintage
    +
    + +
  • +Use a Photoshop preset and redefine the points of the green component: +
     
    curves=psfile='MyCurvesPresets/purple.asv':green='0.45/0.53'
    +
    +
+ + +

30.16 dctdnoiz

+ +

Denoise frames using 2D DCT (frequency domain filtering). +

+

This filter is not designed for real time and can be extremely slow. +

+

The filter accepts the following options: +

+
+
sigma, s
+

Set the noise sigma constant. +

+

This sigma defines a hard threshold of 3 * sigma; every DCT +coefficient (absolute value) below this threshold with be dropped. +

+

If you need a more advanced filtering, see ‘expr’. +

+

Default is 0. +

+
+
overlap
+

Set number overlapping pixels for each block. Each block is of size +16x16. Since the filter can be slow, you may want to reduce this value, +at the cost of a less effective filter and the risk of various artefacts. +

+

If the overlapping value doesn’t allow to process the whole input width or +height, a warning will be displayed and according borders won’t be denoised. +

+

Default value is 15. +

+
+
expr, e
+

Set the coefficient factor expression. +

+

For each coefficient of a DCT block, this expression will be evaluated as a +multiplier value for the coefficient. +

+

If this is option is set, the ‘sigma’ option will be ignored. +

+

The absolute value of the coefficient can be accessed through the c +variable. +

+
+ + +

30.16.1 Examples

+ +

Apply a denoise with a ‘sigma’ of 4.5: +

 
dctdnoiz=4.5
+
+ +

The same operation can be achieved using the expression system: +

 
dctdnoiz=e='gte(c, 4.5*3)'
+
+ +

+

+

30.17 decimate

+ +

Drop duplicated frames at regular intervals. +

+

The filter accepts the following options: +

+
+
cycle
+

Set the number of frames from which one will be dropped. Setting this to +N means one frame in every batch of N frames will be dropped. +Default is 5. +

+
+
dupthresh
+

Set the threshold for duplicate detection. If the difference metric for a frame +is less than or equal to this value, then it is declared as duplicate. Default +is 1.1 +

+
+
scthresh
+

Set scene change threshold. Default is 15. +

+
+
blockx
+
blocky
+

Set the size of the x and y-axis blocks used during metric calculations. +Larger blocks give better noise suppression, but also give worse detection of +small movements. Must be a power of two. Default is 32. +

+
+
ppsrc
+

Mark main input as a pre-processed input and activate clean source input +stream. This allows the input to be pre-processed with various filters to help +the metrics calculation while keeping the frame selection lossless. When set to +1, the first stream is for the pre-processed input, and the second +stream is the clean source from where the kept frames are chosen. Default is +0. +

+
+
chroma
+

Set whether or not chroma is considered in the metric calculations. Default is +1. +

+
+ + +

30.18 dejudder

+ +

Remove judder produced by partially interlaced telecined content. +

+

Judder can be introduced, for instance, by pullup filter. If the original +source was partially telecined content then the output of pullup,dejudder +will have a variable frame rate. May change the recorded frame rate of the +container. Aside from that change, this filter will not affect constant frame +rate video. +

+

The option available in this filter is: +

+
cycle
+

Specify the length of the window over which the judder repeats. +

+

Accepts any interger greater than 1. Useful values are: +

+
4
+

If the original was telecined from 24 to 30 fps (Film to NTSC). +

+
+
5
+

If the original was telecined from 25 to 30 fps (PAL to NTSC). +

+
+
20
+

If a mixture of the two. +

+
+ +

The default is ‘4’. +

+
+ + +

30.19 delogo

+ +

Suppress a TV station logo by a simple interpolation of the surrounding +pixels. Just set a rectangle covering the logo and watch it disappear +(and sometimes something even uglier appear - your mileage may vary). +

+

It accepts the following parameters: +

+
x
+
y
+

Specify the top left corner coordinates of the logo. They must be +specified. +

+
+
w
+
h
+

Specify the width and height of the logo to clear. They must be +specified. +

+
+
band, t
+

Specify the thickness of the fuzzy edge of the rectangle (added to +w and h). The default value is 4. +

+
+
show
+

When set to 1, a green rectangle is drawn on the screen to simplify +finding the right x, y, w, and h parameters. +The default value is 0. +

+

The rectangle is drawn on the outermost pixels which will be (partly) +replaced with interpolated values. The values of the next pixels +immediately outside this rectangle in each direction will be used to +compute the interpolated pixel values inside the rectangle. +

+
+
+ + +

30.19.1 Examples

+ +
    +
  • +Set a rectangle covering the area with top left corner coordinates 0,0 +and size 100x77, and a band of size 10: +
     
    delogo=x=0:y=0:w=100:h=77:band=10
    +
    + +
+ + +

30.20 deshake

+ +

Attempt to fix small changes in horizontal and/or vertical shift. This +filter helps remove camera shake from hand-holding a camera, bumping a +tripod, moving on a vehicle, etc. +

+

The filter accepts the following options: +

+
+
x
+
y
+
w
+
h
+

Specify a rectangular area where to limit the search for motion +vectors. +If desired the search for motion vectors can be limited to a +rectangular area of the frame defined by its top left corner, width +and height. These parameters have the same meaning as the drawbox +filter which can be used to visualise the position of the bounding +box. +

+

This is useful when simultaneous movement of subjects within the frame +might be confused for camera motion by the motion vector search. +

+

If any or all of x, y, w and h are set to -1 +then the full frame is used. This allows later options to be set +without specifying the bounding box for the motion vector search. +

+

Default - search the whole frame. +

+
+
rx
+
ry
+

Specify the maximum extent of movement in x and y directions in the +range 0-64 pixels. Default 16. +

+
+
edge
+

Specify how to generate pixels to fill blanks at the edge of the +frame. Available values are: +

+
blank, 0
+

Fill zeroes at blank locations +

+
original, 1
+

Original image at blank locations +

+
clamp, 2
+

Extruded edge value at blank locations +

+
mirror, 3
+

Mirrored edge at blank locations +

+
+

Default value is ‘mirror’. +

+
+
blocksize
+

Specify the blocksize to use for motion search. Range 4-128 pixels, +default 8. +

+
+
contrast
+

Specify the contrast threshold for blocks. Only blocks with more than +the specified contrast (difference between darkest and lightest +pixels) will be considered. Range 1-255, default 125. +

+
+
search
+

Specify the search strategy. Available values are: +

+
exhaustive, 0
+

Set exhaustive search +

+
less, 1
+

Set less exhaustive search. +

+
+

Default value is ‘exhaustive’. +

+
+
filename
+

If set then a detailed log of the motion search is written to the +specified file. +

+
+
opencl
+

If set to 1, specify using OpenCL capabilities, only available if +FFmpeg was configured with --enable-opencl. Default value is 0. +

+
+
+ + +

30.21 drawbox

+ +

Draw a colored box on the input image. +

+

It accepts the following parameters: +

+
+
x
+
y
+

The expressions which specify the top left corner coordinates of the box. It defaults to 0. +

+
+
width, w
+
height, h
+

The expressions which specify the width and height of the box; if 0 they are interpreted as +the input width and height. It defaults to 0. +

+
+
color, c
+

Specify the color of the box to write. For the general syntax of this option, +check the "Color" section in the ffmpeg-utils manual. If the special +value invert is used, the box edge color is the same as the +video with inverted luma. +

+
+
thickness, t
+

The expression which sets the thickness of the box edge. Default value is 3. +

+

See below for the list of accepted constants. +

+
+ +

The parameters for x, y, w and h and t are expressions containing the +following constants: +

+
+
dar
+

The input display aspect ratio, it is the same as (w / h) * sar. +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
in_h, ih
+
in_w, iw
+

The input width and height. +

+
+
sar
+

The input sample aspect ratio. +

+
+
x
+
y
+

The x and y offset coordinates where the box is drawn. +

+
+
w
+
h
+

The width and height of the drawn box. +

+
+
t
+

The thickness of the drawn box. +

+

These constants allow the x, y, w, h and t expressions to refer to +each other, so you may for example specify y=x/dar or h=w/dar. +

+
+
+ + +

30.21.1 Examples

+ +
    +
  • +Draw a black box around the edge of the input image: +
     
    drawbox
    +
    + +
  • +Draw a box with color red and an opacity of 50%: +
     
    drawbox=10:20:200:60:red@0.5
    +
    + +

    The previous example can be specified as: +

     
    drawbox=x=10:y=20:w=200:h=60:color=red@0.5
    +
    + +
  • +Fill the box with pink color: +
     
    drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=max
    +
    + +
  • +Draw a 2-pixel red 2.40:1 mask: +
     
    drawbox=x=-t:y=0.5*(ih-iw/2.4)-t:w=iw+t*2:h=iw/2.4+t*2:t=2:c=red
    +
    +
+ + +

30.22 drawgrid

+ +

Draw a grid on the input image. +

+

It accepts the following parameters: +

+
+
x
+
y
+

The expressions which specify the coordinates of some point of grid intersection (meant to configure offset). Both default to 0. +

+
+
width, w
+
height, h
+

The expressions which specify the width and height of the grid cell, if 0 they are interpreted as the +input width and height, respectively, minus thickness, so image gets +framed. Default to 0. +

+
+
color, c
+

Specify the color of the grid. For the general syntax of this option, +check the "Color" section in the ffmpeg-utils manual. If the special +value invert is used, the grid color is the same as the +video with inverted luma. +

+
+
thickness, t
+

The expression which sets the thickness of the grid line. Default value is 1. +

+

See below for the list of accepted constants. +

+
+ +

The parameters for x, y, w and h and t are expressions containing the +following constants: +

+
+
dar
+

The input display aspect ratio, it is the same as (w / h) * sar. +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
in_h, ih
+
in_w, iw
+

The input grid cell width and height. +

+
+
sar
+

The input sample aspect ratio. +

+
+
x
+
y
+

The x and y coordinates of some point of grid intersection (meant to configure offset). +

+
+
w
+
h
+

The width and height of the drawn cell. +

+
+
t
+

The thickness of the drawn cell. +

+

These constants allow the x, y, w, h and t expressions to refer to +each other, so you may for example specify y=x/dar or h=w/dar. +

+
+
+ + +

30.22.1 Examples

+ +
    +
  • +Draw a grid with cell 100x100 pixels, thickness 2 pixels, with color red and an opacity of 50%: +
     
    drawgrid=width=100:height=100:thickness=2:color=red@0.5
    +
    + +
  • +Draw a white 3x3 grid with an opacity of 50%: +
     
    drawgrid=w=iw/3:h=ih/3:t=2:c=white@0.5
    +
    +
+ +

+

+

30.23 drawtext

+ +

Draw a text string or text from a specified file on top of a video, using the +libfreetype library. +

+

To enable compilation of this filter, you need to configure FFmpeg with +--enable-libfreetype. +To enable default font fallback and the font option you need to +configure FFmpeg with --enable-libfontconfig. +

+ +

30.23.1 Syntax

+ +

It accepts the following parameters: +

+
+
box
+

Used to draw a box around text using the background color. +The value must be either 1 (enable) or 0 (disable). +The default value of box is 0. +

+
+
boxcolor
+

The color to be used for drawing box around text. For the syntax of this +option, check the "Color" section in the ffmpeg-utils manual. +

+

The default value of boxcolor is "white". +

+
+
borderw
+

Set the width of the border to be drawn around the text using bordercolor. +The default value of borderw is 0. +

+
+
bordercolor
+

Set the color to be used for drawing border around text. For the syntax of this +option, check the "Color" section in the ffmpeg-utils manual. +

+

The default value of bordercolor is "black". +

+
+
expansion
+

Select how the text is expanded. Can be either none, +strftime (deprecated) or +normal (default). See the Text expansion section +below for details. +

+
+
fix_bounds
+

If true, check and fix text coords to avoid clipping. +

+
+
fontcolor
+

The color to be used for drawing fonts. For the syntax of this option, check +the "Color" section in the ffmpeg-utils manual. +

+

The default value of fontcolor is "black". +

+
+
font
+

The font family to be used for drawing text. By default Sans. +

+
+
fontfile
+

The font file to be used for drawing text. The path must be included. +This parameter is mandatory if the fontconfig support is disabled. +

+
+
fontsize
+

The font size to be used for drawing text. +The default value of fontsize is 16. +

+
+
ft_load_flags
+

The flags to be used for loading the fonts. +

+

The flags map the corresponding flags supported by libfreetype, and are +a combination of the following values: +

+
default
+
no_scale
+
no_hinting
+
render
+
no_bitmap
+
vertical_layout
+
force_autohint
+
crop_bitmap
+
pedantic
+
ignore_global_advance_width
+
no_recurse
+
ignore_transform
+
monochrome
+
linear_design
+
no_autohint
+
+ +

Default value is "default". +

+

For more information consult the documentation for the FT_LOAD_* +libfreetype flags. +

+
+
shadowcolor
+

The color to be used for drawing a shadow behind the drawn text. For the +syntax of this option, check the "Color" section in the ffmpeg-utils manual. +

+

The default value of shadowcolor is "black". +

+
+
shadowx
+
shadowy
+

The x and y offsets for the text shadow position with respect to the +position of the text. They can be either positive or negative +values. The default value for both is "0". +

+
+
start_number
+

The starting frame number for the n/frame_num variable. The default value +is "0". +

+
+
tabsize
+

The size in number of spaces to use for rendering the tab. +Default value is 4. +

+
+
timecode
+

Set the initial timecode representation in "hh:mm:ss[:;.]ff" +format. It can be used with or without text parameter. timecode_rate +option must be specified. +

+
+
timecode_rate, rate, r
+

Set the timecode frame rate (timecode only). +

+
+
text
+

The text string to be drawn. The text must be a sequence of UTF-8 +encoded characters. +This parameter is mandatory if no file is specified with the parameter +textfile. +

+
+
textfile
+

A text file containing text to be drawn. The text must be a sequence +of UTF-8 encoded characters. +

+

This parameter is mandatory if no text string is specified with the +parameter text. +

+

If both text and textfile are specified, an error is thrown. +

+
+
reload
+

If set to 1, the textfile will be reloaded before each frame. +Be sure to update it atomically, or it may be read partially, or even fail. +

+
+
x
+
y
+

The expressions which specify the offsets where text will be drawn +within the video frame. They are relative to the top/left border of the +output image. +

+

The default value of x and y is "0". +

+

See below for the list of accepted constants and functions. +

+
+ +

The parameters for x and y are expressions containing the +following constants and functions: +

+
+
dar
+

input display aspect ratio, it is the same as (w / h) * sar +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
line_h, lh
+

the height of each text line +

+
+
main_h, h, H
+

the input height +

+
+
main_w, w, W
+

the input width +

+
+
max_glyph_a, ascent
+

the maximum distance from the baseline to the highest/upper grid +coordinate used to place a glyph outline point, for all the rendered +glyphs. +It is a positive value, due to the grid’s orientation with the Y axis +upwards. +

+
+
max_glyph_d, descent
+

the maximum distance from the baseline to the lowest grid coordinate +used to place a glyph outline point, for all the rendered glyphs. +This is a negative value, due to the grid’s orientation, with the Y axis +upwards. +

+
+
max_glyph_h
+

maximum glyph height, that is the maximum height for all the glyphs +contained in the rendered text, it is equivalent to ascent - +descent. +

+
+
max_glyph_w
+

maximum glyph width, that is the maximum width for all the glyphs +contained in the rendered text +

+
+
n
+

the number of input frame, starting from 0 +

+
+
rand(min, max)
+

return a random number included between min and max +

+
+
sar
+

The input sample aspect ratio. +

+
+
t
+

timestamp expressed in seconds, NAN if the input timestamp is unknown +

+
+
text_h, th
+

the height of the rendered text +

+
+
text_w, tw
+

the width of the rendered text +

+
+
x
+
y
+

the x and y offset coordinates where the text is drawn. +

+

These parameters allow the x and y expressions to refer +each other, so you can for example specify y=x/dar. +

+
+ +

+

+

30.23.2 Text expansion

+ +

If ‘expansion’ is set to strftime, +the filter recognizes strftime() sequences in the provided text and +expands them accordingly. Check the documentation of strftime(). This +feature is deprecated. +

+

If ‘expansion’ is set to none, the text is printed verbatim. +

+

If ‘expansion’ is set to normal (which is the default), +the following expansion mechanism is used. +

+

The backslash character ’\’, followed by any character, always expands to +the second character. +

+

Sequence of the form %{...} are expanded. The text between the +braces is a function name, possibly followed by arguments separated by ’:’. +If the arguments contain special characters or delimiters (’:’ or ’}’), +they should be escaped. +

+

Note that they probably must also be escaped as the value for the +‘text’ option in the filter argument string and as the filter +argument in the filtergraph description, and possibly also for the shell, +that makes up to four levels of escaping; using a text file avoids these +problems. +

+

The following functions are available: +

+
+
expr, e
+

The expression evaluation result. +

+

It must take one argument specifying the expression to be evaluated, +which accepts the same constants and functions as the x and +y values. Note that not all constants should be used, for +example the text size is not known when evaluating the expression, so +the constants text_w and text_h will have an undefined +value. +

+
+
gmtime
+

The time at which the filter is running, expressed in UTC. +It can accept an argument: a strftime() format string. +

+
+
localtime
+

The time at which the filter is running, expressed in the local time zone. +It can accept an argument: a strftime() format string. +

+
+
metadata
+

Frame metadata. It must take one argument specifying metadata key. +

+
+
n, frame_num
+

The frame number, starting from 0. +

+
+
pict_type
+

A 1 character description of the current picture type. +

+
+
pts
+

The timestamp of the current frame, in seconds, with microsecond accuracy. +

+
+
+ + +

30.23.3 Examples

+ +
    +
  • +Draw "Test Text" with font FreeSerif, using the default values for the +optional parameters. + +
     
    drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text'"
    +
    + +
  • +Draw ’Test Text’ with font FreeSerif of size 24 at position x=100 +and y=50 (counting from the top-left corner of the screen), text is +yellow with a red box around it. Both the text and the box have an +opacity of 20%. + +
     
    drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text':\
    +          x=100: y=50: fontsize=24: fontcolor=yellow@0.2: box=1: boxcolor=red@0.2"
    +
    + +

    Note that the double quotes are not necessary if spaces are not used +within the parameter list. +

    +
  • +Show the text at the center of the video frame: +
     
    drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h-line_h)/2"
    +
    + +
  • +Show a text line sliding from right to left in the last row of the video +frame. The file ‘LONG_LINE’ is assumed to contain a single line +with no newlines. +
     
    drawtext="fontsize=15:fontfile=FreeSerif.ttf:text=LONG_LINE:y=h-line_h:x=-50*t"
    +
    + +
  • +Show the content of file ‘CREDITS’ off the bottom of the frame and scroll up. +
     
    drawtext="fontsize=20:fontfile=FreeSerif.ttf:textfile=CREDITS:y=h-20*t"
    +
    + +
  • +Draw a single green letter "g", at the center of the input video. +The glyph baseline is placed at half screen height. +
     
    drawtext="fontsize=60:fontfile=FreeSerif.ttf:fontcolor=green:text=g:x=(w-max_glyph_w)/2:y=h/2-ascent"
    +
    + +
  • +Show text for 1 second every 3 seconds: +
     
    drawtext="fontfile=FreeSerif.ttf:fontcolor=white:x=100:y=x/dar:enable=lt(mod(t\,3)\,1):text='blink'"
    +
    + +
  • +Use fontconfig to set the font. Note that the colons need to be escaped. +
     
    drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'
    +
    + +
  • +Print the date of a real-time encoding (see strftime(3)): +
     
    drawtext='fontfile=FreeSans.ttf:text=%{localtime:%a %b %d %Y}'
    +
    + +
+ +

For more information about libfreetype, check: +http://www.freetype.org/. +

+

For more information about fontconfig, check: +http://freedesktop.org/software/fontconfig/fontconfig-user.html. +

+ +

30.24 edgedetect

+ +

Detect and draw edges. The filter uses the Canny Edge Detection algorithm. +

+

The filter accepts the following options: +

+
+
low
+
high
+

Set low and high threshold values used by the Canny thresholding +algorithm. +

+

The high threshold selects the "strong" edge pixels, which are then +connected through 8-connectivity with the "weak" edge pixels selected +by the low threshold. +

+

low and high threshold values must be chosen in the range +[0,1], and low should be lesser or equal to high. +

+

Default value for low is 20/255, and default value for high +is 50/255. +

+
+ +

Example: +

 
edgedetect=low=0.1:high=0.4
+
+ + +

30.25 extractplanes

+ +

Extract color channel components from input video stream into +separate grayscale video streams. +

+

The filter accepts the following option: +

+
+
planes
+

Set plane(s) to extract. +

+

Available values for planes are: +

+
y
+
u
+
v
+
a
+
r
+
g
+
b
+
+ +

Choosing planes not available in the input will result in an error. +That means you cannot select r, g, b planes +with y, u, v planes at same time. +

+
+ + +

30.25.1 Examples

+ +
    +
  • +Extract luma, u and v color channel component from input video frame +into 3 grayscale outputs: +
     
    ffmpeg -i video.avi -filter_complex 'extractplanes=y+u+v[y][u][v]' -map '[y]' y.avi -map '[u]' u.avi -map '[v]' v.avi
    +
    +
+ + +

30.26 elbg

+ +

Apply a posterize effect using the ELBG (Enhanced LBG) algorithm. +

+

For each input image, the filter will compute the optimal mapping from +the input to the output given the codebook length, that is the number +of distinct output colors. +

+

This filter accepts the following options. +

+
+
codebook_length, l
+

Set codebook length. The value must be a positive integer, and +represents the number of distinct output colors. Default value is 256. +

+
+
nb_steps, n
+

Set the maximum number of iterations to apply for computing the optimal +mapping. The higher the value the better the result and the higher the +computation time. Default value is 1. +

+
+
seed, s
+

Set a random seed, must be an integer included between 0 and +UINT32_MAX. If not specified, or if explicitly set to -1, the filter +will try to use a good random seed on a best effort basis. +

+
+ + +

30.27 fade

+ +

Apply a fade-in/out effect to the input video. +

+

It accepts the following parameters: +

+
+
type, t
+

The effect type can be either "in" for a fade-in, or "out" for a fade-out +effect. +Default is in. +

+
+
start_frame, s
+

Specify the number of the frame to start applying the fade +effect at. Default is 0. +

+
+
nb_frames, n
+

The number of frames that the fade effect lasts. At the end of the +fade-in effect, the output video will have the same intensity as the input video. +At the end of the fade-out transition, the output video will be filled with the +selected ‘color’. +Default is 25. +

+
+
alpha
+

If set to 1, fade only alpha channel, if one exists on the input. +Default value is 0. +

+
+
start_time, st
+

Specify the timestamp (in seconds) of the frame to start to apply the fade +effect. If both start_frame and start_time are specified, the fade will start at +whichever comes last. Default is 0. +

+
+
duration, d
+

The number of seconds for which the fade effect has to last. At the end of the +fade-in effect the output video will have the same intensity as the input video, +at the end of the fade-out transition the output video will be filled with the +selected ‘color’. +If both duration and nb_frames are specified, duration is used. Default is 0. +

+
+
color, c
+

Specify the color of the fade. Default is "black". +

+
+ + +

30.27.1 Examples

+ +
    +
  • +Fade in the first 30 frames of video: +
     
    fade=in:0:30
    +
    + +

    The command above is equivalent to: +

     
    fade=t=in:s=0:n=30
    +
    + +
  • +Fade out the last 45 frames of a 200-frame video: +
     
    fade=out:155:45
    +fade=type=out:start_frame=155:nb_frames=45
    +
    + +
  • +Fade in the first 25 frames and fade out the last 25 frames of a 1000-frame video: +
     
    fade=in:0:25, fade=out:975:25
    +
    + +
  • +Make the first 5 frames yellow, then fade in from frame 5-24: +
     
    fade=in:5:20:color=yellow
    +
    + +
  • +Fade in alpha over first 25 frames of video: +
     
    fade=in:0:25:alpha=1
    +
    + +
  • +Make the first 5.5 seconds black, then fade in for 0.5 seconds: +
     
    fade=t=in:st=5.5:d=0.5
    +
    + +
+ + +

30.28 field

+ +

Extract a single field from an interlaced image using stride +arithmetic to avoid wasting CPU time. The output frames are marked as +non-interlaced. +

+

The filter accepts the following options: +

+
+
type
+

Specify whether to extract the top (if the value is 0 or +top) or the bottom field (if the value is 1 or +bottom). +

+
+ + +

30.29 fieldmatch

+ +

Field matching filter for inverse telecine. It is meant to reconstruct the +progressive frames from a telecined stream. The filter does not drop duplicated +frames, so to achieve a complete inverse telecine fieldmatch needs to be +followed by a decimation filter such as decimate in the filtergraph. +

+

The separation of the field matching and the decimation is notably motivated by +the possibility of inserting a de-interlacing filter fallback between the two. +If the source has mixed telecined and real interlaced content, +fieldmatch will not be able to match fields for the interlaced parts. +But these remaining combed frames will be marked as interlaced, and thus can be +de-interlaced by a later filter such as yadif before decimation. +

+

In addition to the various configuration options, fieldmatch can take an +optional second stream, activated through the ‘ppsrc’ option. If +enabled, the frames reconstruction will be based on the fields and frames from +this second stream. This allows the first input to be pre-processed in order to +help the various algorithms of the filter, while keeping the output lossless +(assuming the fields are matched properly). Typically, a field-aware denoiser, +or brightness/contrast adjustments can help. +

+

Note that this filter uses the same algorithms as TIVTC/TFM (AviSynth project) +and VIVTC/VFM (VapourSynth project). The later is a light clone of TFM from +which fieldmatch is based on. While the semantic and usage are very +close, some behaviour and options names can differ. +

+

The filter accepts the following options: +

+
+
order
+

Specify the assumed field order of the input stream. Available values are: +

+
+
auto
+

Auto detect parity (use FFmpeg’s internal parity value). +

+
bff
+

Assume bottom field first. +

+
tff
+

Assume top field first. +

+
+ +

Note that it is sometimes recommended not to trust the parity announced by the +stream. +

+

Default value is auto. +

+
+
mode
+

Set the matching mode or strategy to use. ‘pc’ mode is the safest in the +sense that it won’t risk creating jerkiness due to duplicate frames when +possible, but if there are bad edits or blended fields it will end up +outputting combed frames when a good match might actually exist. On the other +hand, ‘pcn_ub’ mode is the most risky in terms of creating jerkiness, +but will almost always find a good frame if there is one. The other values are +all somewhere in between ‘pc’ and ‘pcn_ub’ in terms of risking +jerkiness and creating duplicate frames versus finding good matches in sections +with bad edits, orphaned fields, blended fields, etc. +

+

More details about p/c/n/u/b are available in p/c/n/u/b meaning section. +

+

Available values are: +

+
+
pc
+

2-way matching (p/c) +

+
pc_n
+

2-way matching, and trying 3rd match if still combed (p/c + n) +

+
pc_u
+

2-way matching, and trying 3rd match (same order) if still combed (p/c + u) +

+
pc_n_ub
+

2-way matching, trying 3rd match if still combed, and trying 4th/5th matches if +still combed (p/c + n + u/b) +

+
pcn
+

3-way matching (p/c/n) +

+
pcn_ub
+

3-way matching, and trying 4th/5th matches if all 3 of the original matches are +detected as combed (p/c/n + u/b) +

+
+ +

The parenthesis at the end indicate the matches that would be used for that +mode assuming ‘order’=tff (and ‘field’ on auto or +top). +

+

In terms of speed ‘pc’ mode is by far the fastest and ‘pcn_ub’ is +the slowest. +

+

Default value is pc_n. +

+
+
ppsrc
+

Mark the main input stream as a pre-processed input, and enable the secondary +input stream as the clean source to pick the fields from. See the filter +introduction for more details. It is similar to the ‘clip2’ feature from +VFM/TFM. +

+

Default value is 0 (disabled). +

+
+
field
+

Set the field to match from. It is recommended to set this to the same value as +‘order’ unless you experience matching failures with that setting. In +certain circumstances changing the field that is used to match from can have a +large impact on matching performance. Available values are: +

+
+
auto
+

Automatic (same value as ‘order’). +

+
bottom
+

Match from the bottom field. +

+
top
+

Match from the top field. +

+
+ +

Default value is auto. +

+
+
mchroma
+

Set whether or not chroma is included during the match comparisons. In most +cases it is recommended to leave this enabled. You should set this to 0 +only if your clip has bad chroma problems such as heavy rainbowing or other +artifacts. Setting this to 0 could also be used to speed things up at +the cost of some accuracy. +

+

Default value is 1. +

+
+
y0
+
y1
+

These define an exclusion band which excludes the lines between ‘y0’ and +‘y1’ from being included in the field matching decision. An exclusion +band can be used to ignore subtitles, a logo, or other things that may +interfere with the matching. ‘y0’ sets the starting scan line and +‘y1’ sets the ending line; all lines in between ‘y0’ and +‘y1’ (including ‘y0’ and ‘y1’) will be ignored. Setting +‘y0’ and ‘y1’ to the same value will disable the feature. +‘y0’ and ‘y1’ defaults to 0. +

+
+
scthresh
+

Set the scene change detection threshold as a percentage of maximum change on +the luma plane. Good values are in the [8.0, 14.0] range. Scene change +detection is only relevant in case ‘combmatch’=sc. The range for +‘scthresh’ is [0.0, 100.0]. +

+

Default value is 12.0. +

+
+
combmatch
+

When ‘combatch’ is not none, fieldmatch will take into +account the combed scores of matches when deciding what match to use as the +final match. Available values are: +

+
+
none
+

No final matching based on combed scores. +

+
sc
+

Combed scores are only used when a scene change is detected. +

+
full
+

Use combed scores all the time. +

+
+ +

Default is sc. +

+
+
combdbg
+

Force fieldmatch to calculate the combed metrics for certain matches and +print them. This setting is known as ‘micout’ in TFM/VFM vocabulary. +Available values are: +

+
+
none
+

No forced calculation. +

+
pcn
+

Force p/c/n calculations. +

+
pcnub
+

Force p/c/n/u/b calculations. +

+
+ +

Default value is none. +

+
+
cthresh
+

This is the area combing threshold used for combed frame detection. This +essentially controls how "strong" or "visible" combing must be to be detected. +Larger values mean combing must be more visible and smaller values mean combing +can be less visible or strong and still be detected. Valid settings are from +-1 (every pixel will be detected as combed) to 255 (no pixel will +be detected as combed). This is basically a pixel difference value. A good +range is [8, 12]. +

+

Default value is 9. +

+
+
chroma
+

Sets whether or not chroma is considered in the combed frame decision. Only +disable this if your source has chroma problems (rainbowing, etc.) that are +causing problems for the combed frame detection with chroma enabled. Actually, +using ‘chroma’=0 is usually more reliable, except for the case +where there is chroma only combing in the source. +

+

Default value is 0. +

+
+
blockx
+
blocky
+

Respectively set the x-axis and y-axis size of the window used during combed +frame detection. This has to do with the size of the area in which +‘combpel’ pixels are required to be detected as combed for a frame to be +declared combed. See the ‘combpel’ parameter description for more info. +Possible values are any number that is a power of 2 starting at 4 and going up +to 512. +

+

Default value is 16. +

+
+
combpel
+

The number of combed pixels inside any of the ‘blocky’ by +‘blockx’ size blocks on the frame for the frame to be detected as +combed. While ‘cthresh’ controls how "visible" the combing must be, this +setting controls "how much" combing there must be in any localized area (a +window defined by the ‘blockx’ and ‘blocky’ settings) on the +frame. Minimum value is 0 and maximum is blocky x blockx (at +which point no frames will ever be detected as combed). This setting is known +as ‘MI’ in TFM/VFM vocabulary. +

+

Default value is 80. +

+
+ +

+

+

30.29.1 p/c/n/u/b meaning

+ + +

30.29.1.1 p/c/n

+ +

We assume the following telecined stream: +

+
 
Top fields:     1 2 2 3 4
+Bottom fields:  1 2 3 4 4
+
+ +

The numbers correspond to the progressive frame the fields relate to. Here, the +first two frames are progressive, the 3rd and 4th are combed, and so on. +

+

When fieldmatch is configured to run a matching from bottom +(‘field’=bottom) this is how this input stream get transformed: +

+
 
Input stream:
+                T     1 2 2 3 4
+                B     1 2 3 4 4   <-- matching reference
+
+Matches:              c c n n c
+
+Output stream:
+                T     1 2 3 4 4
+                B     1 2 3 4 4
+
+ +

As a result of the field matching, we can see that some frames get duplicated. +To perform a complete inverse telecine, you need to rely on a decimation filter +after this operation. See for instance the decimate filter. +

+

The same operation now matching from top fields (‘field’=top) +looks like this: +

+
 
Input stream:
+                T     1 2 2 3 4   <-- matching reference
+                B     1 2 3 4 4
+
+Matches:              c c p p c
+
+Output stream:
+                T     1 2 2 3 4
+                B     1 2 2 3 4
+
+ +

In these examples, we can see what p, c and n mean; +basically, they refer to the frame and field of the opposite parity: +

+
    +
  • p matches the field of the opposite parity in the previous frame +
  • c matches the field of the opposite parity in the current frame +
  • n matches the field of the opposite parity in the next frame +
+ + +

30.29.1.2 u/b

+ +

The u and b matching are a bit special in the sense that they match +from the opposite parity flag. In the following examples, we assume that we are +currently matching the 2nd frame (Top:2, bottom:2). According to the match, a +’x’ is placed above and below each matched fields. +

+

With bottom matching (‘field’=bottom): +

 
Match:           c         p           n          b          u
+
+                 x       x               x        x          x
+  Top          1 2 2     1 2 2       1 2 2      1 2 2      1 2 2
+  Bottom       1 2 3     1 2 3       1 2 3      1 2 3      1 2 3
+                 x         x           x        x              x
+
+Output frames:
+                 2          1          2          2          2
+                 2          2          2          1          3
+
+ +

With top matching (‘field’=top): +

 
Match:           c         p           n          b          u
+
+                 x         x           x        x              x
+  Top          1 2 2     1 2 2       1 2 2      1 2 2      1 2 2
+  Bottom       1 2 3     1 2 3       1 2 3      1 2 3      1 2 3
+                 x       x               x        x          x
+
+Output frames:
+                 2          2          2          1          2
+                 2          1          3          2          2
+
+ + +

30.29.2 Examples

+ +

Simple IVTC of a top field first telecined stream: +

 
fieldmatch=order=tff:combmatch=none, decimate
+
+ +

Advanced IVTC, with fallback on yadif for still combed frames: +

 
fieldmatch=order=tff:combmatch=full, yadif=deint=interlaced, decimate
+
+ + +

30.30 fieldorder

+ +

Transform the field order of the input video. +

+

It accepts the following parameters: +

+
+
order
+

The output field order. Valid values are tff for top field first or bff +for bottom field first. +

+
+ +

The default value is ‘tff’. +

+

The transformation is done by shifting the picture content up or down +by one line, and filling the remaining line with appropriate picture content. +This method is consistent with most broadcast field order converters. +

+

If the input video is not flagged as being interlaced, or it is already +flagged as being of the required output field order, then this filter does +not alter the incoming video. +

+

It is very useful when converting to or from PAL DV material, +which is bottom field first. +

+

For example: +

 
ffmpeg -i in.vob -vf "fieldorder=bff" out.dv
+
+ + +

30.31 fifo

+ +

Buffer input images and send them when they are requested. +

+

It is mainly useful when auto-inserted by the libavfilter +framework. +

+

It does not take parameters. +

+

+

+

30.32 format

+ +

Convert the input video to one of the specified pixel formats. +Libavfilter will try to pick one that is suitable as input to +the next filter. +

+

It accepts the following parameters: +

+
pix_fmts
+

A ’|’-separated list of pixel format names, such as +"pix_fmts=yuv420p|monow|rgb24". +

+
+
+ + +

30.32.1 Examples

+ +
    +
  • +Convert the input video to the yuv420p format +
     
    format=pix_fmts=yuv420p
    +
    + +

    Convert the input video to any of the formats in the list +

     
    format=pix_fmts=yuv420p|yuv444p|yuv410p
    +
    +
+ +

+

+

30.33 fps

+ +

Convert the video to specified constant frame rate by duplicating or dropping +frames as necessary. +

+

It accepts the following parameters: +

+
fps
+

The desired output frame rate. The default is 25. +

+
+
round
+

Rounding method. +

+

Possible values are: +

+
zero
+

zero round towards 0 +

+
inf
+

round away from 0 +

+
down
+

round towards -infinity +

+
up
+

round towards +infinity +

+
near
+

round to nearest +

+
+

The default is near. +

+
+
start_time
+

Assume the first PTS should be the given value, in seconds. This allows for +padding/trimming at the start of stream. By default, no assumption is made +about the first frame’s expected PTS, so no padding or trimming is done. +For example, this could be set to 0 to pad the beginning with duplicates of +the first frame if a video stream starts after the audio stream or to trim any +frames with a negative PTS. +

+
+
+ +

Alternatively, the options can be specified as a flat string: +fps[:round]. +

+

See also the setpts filter. +

+ +

30.33.1 Examples

+ +
    +
  • +A typical usage in order to set the fps to 25: +
     
    fps=fps=25
    +
    + +
  • +Sets the fps to 24, using abbreviation and rounding method to round to nearest: +
     
    fps=fps=film:round=near
    +
    +
+ + +

30.34 framepack

+ +

Pack two different video streams into a stereoscopic video, setting proper +metadata on supported codecs. The two views should have the same size and +framerate and processing will stop when the shorter video ends. Please note +that you may conveniently adjust view properties with the scale and +fps filters. +

+

It accepts the following parameters: +

+
format
+

The desired packing format. Supported values are: +

+
+
sbs
+

The views are next to each other (default). +

+
+
tab
+

The views are on top of each other. +

+
+
lines
+

The views are packed by line. +

+
+
columns
+

The views are packed by column. +

+
+
frameseq
+

The views are temporally interleaved. +

+
+
+ +
+
+ +

Some examples: +

+
 
# Convert left and right views into a frame-sequential video
+ffmpeg -i LEFT -i RIGHT -filter_complex framepack=frameseq OUTPUT
+
+# Convert views into a side-by-side video with the same output resolution as the input
+ffmpeg -i LEFT -i RIGHT -filter_complex [0:v]scale=w=iw/2[left],[1:v]scale=w=iw/2[right],[left][right]framepack=sbs OUTPUT
+
+ + +

30.35 framestep

+ +

Select one frame every N-th frame. +

+

This filter accepts the following option: +

+
step
+

Select frame after every step frames. +Allowed values are positive integers higher than 0. Default value is 1. +

+
+ +

+

+

30.36 frei0r

+ +

Apply a frei0r effect to the input video. +

+

To enable the compilation of this filter, you need to install the frei0r +header and configure FFmpeg with --enable-frei0r. +

+

It accepts the following parameters: +

+
+
filter_name
+

The name of the frei0r effect to load. If the environment variable +FREI0R_PATH is defined, the frei0r effect is searched for in each of the +directories specified by the colon-separated list in FREIOR_PATH. +Otherwise, the standard frei0r paths are searched, in this order: +‘HOME/.frei0r-1/lib/’, ‘/usr/local/lib/frei0r-1/’, +‘/usr/lib/frei0r-1/’. +

+
+
filter_params
+

A ’|’-separated list of parameters to pass to the frei0r effect. +

+
+
+ +

A frei0r effect parameter can be a boolean (its value is either +"y" or "n"), a double, a color (specified as +R/G/B, where R, G, and B are floating point +numbers between 0.0 and 1.0, inclusive) or by a color description specified in the "Color" +section in the ffmpeg-utils manual), a position (specified as X/Y, where +X and Y are floating point numbers) and/or a string. +

+

The number and types of parameters depend on the loaded effect. If an +effect parameter is not specified, the default value is set. +

+ +

30.36.1 Examples

+ +
    +
  • +Apply the distort0r effect, setting the first two double parameters: +
     
    frei0r=filter_name=distort0r:filter_params=0.5|0.01
    +
    + +
  • +Apply the colordistance effect, taking a color as the first parameter: +
     
    frei0r=colordistance:0.2/0.3/0.4
    +frei0r=colordistance:violet
    +frei0r=colordistance:0x112233
    +
    + +
  • +Apply the perspective effect, specifying the top left and top right image +positions: +
     
    frei0r=perspective:0.2/0.2|0.8/0.2
    +
    +
+ +

For more information, see +http://frei0r.dyne.org +

+ +

30.37 geq

+ +

The filter accepts the following options: +

+
+
lum_expr, lum
+

Set the luminance expression. +

+
cb_expr, cb
+

Set the chrominance blue expression. +

+
cr_expr, cr
+

Set the chrominance red expression. +

+
alpha_expr, a
+

Set the alpha expression. +

+
red_expr, r
+

Set the red expression. +

+
green_expr, g
+

Set the green expression. +

+
blue_expr, b
+

Set the blue expression. +

+
+ +

The colorspace is selected according to the specified options. If one +of the ‘lum_expr’, ‘cb_expr’, or ‘cr_expr’ +options is specified, the filter will automatically select a YCbCr +colorspace. If one of the ‘red_expr’, ‘green_expr’, or +‘blue_expr’ options is specified, it will select an RGB +colorspace. +

+

If one of the chrominance expression is not defined, it falls back on the other +one. If no alpha expression is specified it will evaluate to opaque value. +If none of chrominance expressions are specified, they will evaluate +to the luminance expression. +

+

The expressions can use the following variables and functions: +

+
+
N
+

The sequential number of the filtered frame, starting from 0. +

+
+
X
+
Y
+

The coordinates of the current sample. +

+
+
W
+
H
+

The width and height of the image. +

+
+
SW
+
SH
+

Width and height scale depending on the currently filtered plane. It is the +ratio between the corresponding luma plane number of pixels and the current +plane ones. E.g. for YUV4:2:0 the values are 1,1 for the luma plane, and +0.5,0.5 for chroma planes. +

+
+
T
+

Time of the current frame, expressed in seconds. +

+
+
p(x, y)
+

Return the value of the pixel at location (x,y) of the current +plane. +

+
+
lum(x, y)
+

Return the value of the pixel at location (x,y) of the luminance +plane. +

+
+
cb(x, y)
+

Return the value of the pixel at location (x,y) of the +blue-difference chroma plane. Return 0 if there is no such plane. +

+
+
cr(x, y)
+

Return the value of the pixel at location (x,y) of the +red-difference chroma plane. Return 0 if there is no such plane. +

+
+
r(x, y)
+
g(x, y)
+
b(x, y)
+

Return the value of the pixel at location (x,y) of the +red/green/blue component. Return 0 if there is no such component. +

+
+
alpha(x, y)
+

Return the value of the pixel at location (x,y) of the alpha +plane. Return 0 if there is no such plane. +

+
+ +

For functions, if x and y are outside the area, the value will be +automatically clipped to the closer edge. +

+ +

30.37.1 Examples

+ +
    +
  • +Flip the image horizontally: +
     
    geq=p(W-X\,Y)
    +
    + +
  • +Generate a bidimensional sine wave, with angle PI/3 and a +wavelength of 100 pixels: +
     
    geq=128 + 100*sin(2*(PI/100)*(cos(PI/3)*(X-50*T) + sin(PI/3)*Y)):128:128
    +
    + +
  • +Generate a fancy enigmatic moving light: +
     
    nullsrc=s=256x256,geq=random(1)/hypot(X-cos(N*0.07)*W/2-W/2\,Y-sin(N*0.09)*H/2-H/2)^2*1000000*sin(N*0.02):128:128
    +
    + +
  • +Generate a quick emboss effect: +
     
    format=gray,geq=lum_expr='(p(X,Y)+(256-p(X-4,Y-4)))/2'
    +
    + +
  • +Modify RGB components depending on pixel position: +
     
    geq=r='X/W*r(X,Y)':g='(1-X/W)*g(X,Y)':b='(H-Y)/H*b(X,Y)'
    +
    +
+ + +

30.38 gradfun

+ +

Fix the banding artifacts that are sometimes introduced into nearly flat +regions by truncation to 8bit color depth. +Interpolate the gradients that should go where the bands are, and +dither them. +

+

It is designed for playback only. Do not use it prior to +lossy compression, because compression tends to lose the dither and +bring back the bands. +

+

It accepts the following parameters: +

+
+
strength
+

The maximum amount by which the filter will change any one pixel. This is also +the threshold for detecting nearly flat regions. Acceptable values range from +.51 to 64; the default value is 1.2. Out-of-range values will be clipped to the +valid range. +

+
+
radius
+

The neighborhood to fit the gradient to. A larger radius makes for smoother +gradients, but also prevents the filter from modifying the pixels near detailed +regions. Acceptable values are 8-32; the default value is 16. Out-of-range +values will be clipped to the valid range. +

+
+
+ +

Alternatively, the options can be specified as a flat string: +strength[:radius] +

+ +

30.38.1 Examples

+ +
    +
  • +Apply the filter with a 3.5 strength and radius of 8: +
     
    gradfun=3.5:8
    +
    + +
  • +Specify radius, omitting the strength (which will fall-back to the default +value): +
     
    gradfun=radius=8
    +
    + +
+ +

+

+

30.39 haldclut

+ +

Apply a Hald CLUT to a video stream. +

+

First input is the video stream to process, and second one is the Hald CLUT. +The Hald CLUT input can be a simple picture or a complete video stream. +

+

The filter accepts the following options: +

+
+
shortest
+

Force termination when the shortest input terminates. Default is 0. +

+
repeatlast
+

Continue applying the last CLUT after the end of the stream. A value of +0 disable the filter after the last frame of the CLUT is reached. +Default is 1. +

+
+ +

haldclut also has the same interpolation options as lut3d (both +filters share the same internals). +

+

More information about the Hald CLUT can be found on Eskil Steenberg’s website +(Hald CLUT author) at http://www.quelsolaar.com/technology/clut.html. +

+ +

30.39.1 Workflow examples

+ + +

30.39.1.1 Hald CLUT video stream

+ +

Generate an identity Hald CLUT stream altered with various effects: +

 
ffmpeg -f lavfi -i haldclutsrc=8 -vf "hue=H=2*PI*t:s=sin(2*PI*t)+1, curves=cross_process" -t 10 -c:v ffv1 clut.nut
+
+ +

Note: make sure you use a lossless codec. +

+

Then use it with haldclut to apply it on some random stream: +

 
ffmpeg -f lavfi -i mandelbrot -i clut.nut -filter_complex '[0][1] haldclut' -t 20 mandelclut.mkv
+
+ +

The Hald CLUT will be applied to the 10 first seconds (duration of +‘clut.nut’), then the latest picture of that CLUT stream will be applied +to the remaining frames of the mandelbrot stream. +

+ +

30.39.1.2 Hald CLUT with preview

+ +

A Hald CLUT is supposed to be a squared image of Level*Level*Level by +Level*Level*Level pixels. For a given Hald CLUT, FFmpeg will select the +biggest possible square starting at the top left of the picture. The remaining +padding pixels (bottom or right) will be ignored. This area can be used to add +a preview of the Hald CLUT. +

+

Typically, the following generated Hald CLUT will be supported by the +haldclut filter: +

+
 
ffmpeg -f lavfi -i haldclutsrc=8 -vf "
+   pad=iw+320 [padded_clut];
+   smptebars=s=320x256, split [a][b];
+   [padded_clut][a] overlay=W-320:h, curves=color_negative [main];
+   [main][b] overlay=W-320" -frames:v 1 clut.png
+
+ +

It contains the original and a preview of the effect of the CLUT: SMPTE color +bars are displayed on the right-top, and below the same color bars processed by +the color changes. +

+

Then, the effect of this Hald CLUT can be visualized with: +

 
ffplay input.mkv -vf "movie=clut.png, [in] haldclut"
+
+ + +

30.40 hflip

+ +

Flip the input video horizontally. +

+

For example, to horizontally flip the input video with ffmpeg: +

 
ffmpeg -i in.avi -vf "hflip" out.avi
+
+ + +

30.41 histeq

+

This filter applies a global color histogram equalization on a +per-frame basis. +

+

It can be used to correct video that has a compressed range of pixel +intensities. The filter redistributes the pixel intensities to +equalize their distribution across the intensity range. It may be +viewed as an "automatically adjusting contrast filter". This filter is +useful only for correcting degraded or poorly captured source +video. +

+

The filter accepts the following options: +

+
+
strength
+

Determine the amount of equalization to be applied. As the strength +is reduced, the distribution of pixel intensities more-and-more +approaches that of the input frame. The value must be a float number +in the range [0,1] and defaults to 0.200. +

+
+
intensity
+

Set the maximum intensity that can generated and scale the output +values appropriately. The strength should be set as desired and then +the intensity can be limited if needed to avoid washing-out. The value +must be a float number in the range [0,1] and defaults to 0.210. +

+
+
antibanding
+

Set the antibanding level. If enabled the filter will randomly vary +the luminance of output pixels by a small amount to avoid banding of +the histogram. Possible values are none, weak or +strong. It defaults to none. +

+
+ + +

30.42 histogram

+ +

Compute and draw a color distribution histogram for the input video. +

+

The computed histogram is a representation of the color component +distribution in an image. +

+

The filter accepts the following options: +

+
+
mode
+

Set histogram mode. +

+

It accepts the following values: +

+
levels
+

Standard histogram that displays the color components distribution in an +image. Displays color graph for each color component. Shows distribution of +the Y, U, V, A or R, G, B components, depending on input format, in the +current frame. Below each graph a color component scale meter is shown. +

+
+
color
+

Displays chroma values (U/V color placement) in a two dimensional +graph (which is called a vectorscope). The brighter a pixel in the +vectorscope, the more pixels of the input frame correspond to that pixel +(i.e., more pixels have this chroma value). The V component is displayed on +the horizontal (X) axis, with the leftmost side being V = 0 and the rightmost +side being V = 255. The U component is displayed on the vertical (Y) axis, +with the top representing U = 0 and the bottom representing U = 255. +

+

The position of a white pixel in the graph corresponds to the chroma value of +a pixel of the input clip. The graph can therefore be used to read the hue +(color flavor) and the saturation (the dominance of the hue in the color). As +the hue of a color changes, it moves around the square. At the center of the +square the saturation is zero, which means that the corresponding pixel has no +color. If the amount of a specific color is increased (while leaving the other +colors unchanged) the saturation increases, and the indicator moves towards +the edge of the square. +

+
+
color2
+

Chroma values in vectorscope, similar as color but actual chroma values +are displayed. +

+
+
waveform
+

Per row/column color component graph. In row mode, the graph on the left side +represents color component value 0 and the right side represents value = 255. +In column mode, the top side represents color component value = 0 and bottom +side represents value = 255. +

+
+

Default value is levels. +

+
+
level_height
+

Set height of level in levels. Default value is 200. +Allowed range is [50, 2048]. +

+
+
scale_height
+

Set height of color scale in levels. Default value is 12. +Allowed range is [0, 40]. +

+
+
step
+

Set step for waveform mode. Smaller values are useful to find out how +many values of the same luminance are distributed across input rows/columns. +Default value is 10. Allowed range is [1, 255]. +

+
+
waveform_mode
+

Set mode for waveform. Can be either row, or column. +Default is row. +

+
+
waveform_mirror
+

Set mirroring mode for waveform. 0 means unmirrored, 1 +means mirrored. In mirrored mode, higher values will be represented on the left +side for row mode and at the top for column mode. Default is +0 (unmirrored). +

+
+
display_mode
+

Set display mode for waveform and levels. +It accepts the following values: +

+
parade
+

Display separate graph for the color components side by side in +row waveform mode or one below the other in column waveform mode +for waveform histogram mode. For levels histogram mode, +per color component graphs are placed below each other. +

+

Using this display mode in waveform histogram mode makes it easy to +spot color casts in the highlights and shadows of an image, by comparing the +contours of the top and the bottom graphs of each waveform. Since whites, +grays, and blacks are characterized by exactly equal amounts of red, green, +and blue, neutral areas of the picture should display three waveforms of +roughly equal width/height. If not, the correction is easy to perform by +making level adjustments the three waveforms. +

+
+
overlay
+

Presents information identical to that in the parade, except +that the graphs representing color components are superimposed directly +over one another. +

+

This display mode in waveform histogram mode makes it easier to spot +relative differences or similarities in overlapping areas of the color +components that are supposed to be identical, such as neutral whites, grays, +or blacks. +

+
+

Default is parade. +

+
+
levels_mode
+

Set mode for levels. Can be either linear, or logarithmic. +Default is linear. +

+
+ + +

30.42.1 Examples

+ +
    +
  • +Calculate and draw histogram: +
     
    ffplay -i input -vf histogram
    +
    + +
+ +

+

+

30.43 hqdn3d

+ +

This is a high precision/quality 3d denoise filter. It aims to reduce +image noise, producing smooth images and making still images really +still. It should enhance compressibility. +

+

It accepts the following optional parameters: +

+
+
luma_spatial
+

A non-negative floating point number which specifies spatial luma strength. +It defaults to 4.0. +

+
+
chroma_spatial
+

A non-negative floating point number which specifies spatial chroma strength. +It defaults to 3.0*luma_spatial/4.0. +

+
+
luma_tmp
+

A floating point number which specifies luma temporal strength. It defaults to +6.0*luma_spatial/4.0. +

+
+
chroma_tmp
+

A floating point number which specifies chroma temporal strength. It defaults to +luma_tmp*chroma_spatial/luma_spatial. +

+
+ + +

30.44 hue

+ +

Modify the hue and/or the saturation of the input. +

+

It accepts the following parameters: +

+
+
h
+

Specify the hue angle as a number of degrees. It accepts an expression, +and defaults to "0". +

+
+
s
+

Specify the saturation in the [-10,10] range. It accepts an expression and +defaults to "1". +

+
+
H
+

Specify the hue angle as a number of radians. It accepts an +expression, and defaults to "0". +

+
+
b
+

Specify the brightness in the [-10,10] range. It accepts an expression and +defaults to "0". +

+
+ +

h’ and ‘H’ are mutually exclusive, and can’t be +specified at the same time. +

+

The ‘b’, ‘h’, ‘H’ and ‘s’ option values are +expressions containing the following constants: +

+
+
n
+

frame count of the input frame starting from 0 +

+
+
pts
+

presentation timestamp of the input frame expressed in time base units +

+
+
r
+

frame rate of the input video, NAN if the input frame rate is unknown +

+
+
t
+

timestamp expressed in seconds, NAN if the input timestamp is unknown +

+
+
tb
+

time base of the input video +

+
+ + +

30.44.1 Examples

+ +
    +
  • +Set the hue to 90 degrees and the saturation to 1.0: +
     
    hue=h=90:s=1
    +
    + +
  • +Same command but expressing the hue in radians: +
     
    hue=H=PI/2:s=1
    +
    + +
  • +Rotate hue and make the saturation swing between 0 +and 2 over a period of 1 second: +
     
    hue="H=2*PI*t: s=sin(2*PI*t)+1"
    +
    + +
  • +Apply a 3 seconds saturation fade-in effect starting at 0: +
     
    hue="s=min(t/3\,1)"
    +
    + +

    The general fade-in expression can be written as: +

     
    hue="s=min(0\, max((t-START)/DURATION\, 1))"
    +
    + +
  • +Apply a 3 seconds saturation fade-out effect starting at 5 seconds: +
     
    hue="s=max(0\, min(1\, (8-t)/3))"
    +
    + +

    The general fade-out expression can be written as: +

     
    hue="s=max(0\, min(1\, (START+DURATION-t)/DURATION))"
    +
    + +
+ + +

30.44.2 Commands

+ +

This filter supports the following commands: +

+
b
+
s
+
h
+
H
+

Modify the hue and/or the saturation and/or brightness of the input video. +The command accepts the same syntax of the corresponding option. +

+

If the specified expression is not valid, it is kept at its current +value. +

+
+ + +

30.45 idet

+ +

Detect video interlacing type. +

+

This filter tries to detect if the input is interlaced or progressive, +top or bottom field first. +

+

The filter accepts the following options: +

+
+
intl_thres
+

Set interlacing threshold. +

+
prog_thres
+

Set progressive threshold. +

+
+ + +

30.46 il

+ +

Deinterleave or interleave fields. +

+

This filter allows one to process interlaced images fields without +deinterlacing them. Deinterleaving splits the input frame into 2 +fields (so called half pictures). Odd lines are moved to the top +half of the output image, even lines to the bottom half. +You can process (filter) them independently and then re-interleave them. +

+

The filter accepts the following options: +

+
+
luma_mode, l
+
chroma_mode, c
+
alpha_mode, a
+

Available values for luma_mode, chroma_mode and +alpha_mode are: +

+
+
none
+

Do nothing. +

+
+
deinterleave, d
+

Deinterleave fields, placing one above the other. +

+
+
interleave, i
+

Interleave fields. Reverse the effect of deinterleaving. +

+
+

Default value is none. +

+
+
luma_swap, ls
+
chroma_swap, cs
+
alpha_swap, as
+

Swap luma/chroma/alpha fields. Exchange even & odd lines. Default value is 0. +

+
+ + +

30.47 interlace

+ +

Simple interlacing filter from progressive contents. This interleaves upper (or +lower) lines from odd frames with lower (or upper) lines from even frames, +halving the frame rate and preserving image height. A vertical lowpass filter +is always applied in order to avoid twitter effects and reduce moiré patterns. +

+
 
   Original        Original             New Frame
+   Frame 'j'      Frame 'j+1'             (tff)
+  ==========      ===========       ==================
+    Line 0  -------------------->    Frame 'j' Line 0
+    Line 1          Line 1  ---->   Frame 'j+1' Line 1
+    Line 2 --------------------->    Frame 'j' Line 2
+    Line 3          Line 3  ---->   Frame 'j+1' Line 3
+     ...             ...                   ...
+New Frame + 1 will be generated by Frame 'j+2' and Frame 'j+3' and so on
+
+ +

It accepts the following optional parameters: +

+
+
scan
+

This determines whether the interlaced frame is taken from the even +(tff - default) or odd (bff) lines of the progressive frame. +

+
+ + +

30.48 kerndeint

+ +

Deinterlace input video by applying Donald Graft’s adaptive kernel +deinterling. Work on interlaced parts of a video to produce +progressive frames. +

+

The description of the accepted parameters follows. +

+
+
thresh
+

Set the threshold which affects the filter’s tolerance when +determining if a pixel line must be processed. It must be an integer +in the range [0,255] and defaults to 10. A value of 0 will result in +applying the process on every pixels. +

+
+
map
+

Paint pixels exceeding the threshold value to white if set to 1. +Default is 0. +

+
+
order
+

Set the fields order. Swap fields if set to 1, leave fields alone if +0. Default is 0. +

+
+
sharp
+

Enable additional sharpening if set to 1. Default is 0. +

+
+
twoway
+

Enable twoway sharpening if set to 1. Default is 0. +

+
+ + +

30.48.1 Examples

+ +
    +
  • +Apply default values: +
     
    kerndeint=thresh=10:map=0:order=0:sharp=0:twoway=0
    +
    + +
  • +Enable additional sharpening: +
     
    kerndeint=sharp=1
    +
    + +
  • +Paint processed pixels in white: +
     
    kerndeint=map=1
    +
    +
+ +

+

+

30.49 lut3d

+ +

Apply a 3D LUT to an input video. +

+

The filter accepts the following options: +

+
+
file
+

Set the 3D LUT file name. +

+

Currently supported formats: +

+
3dl
+

AfterEffects +

+
cube
+

Iridas +

+
dat
+

DaVinci +

+
m3d
+

Pandora +

+
+
+
interp
+

Select interpolation mode. +

+

Available values are: +

+
+
nearest
+

Use values from the nearest defined point. +

+
trilinear
+

Interpolate values using the 8 points defining a cube. +

+
tetrahedral
+

Interpolate values using a tetrahedron. +

+
+
+
+ + +

30.50 lut, lutrgb, lutyuv

+ +

Compute a look-up table for binding each pixel component input value +to an output value, and apply it to the input video. +

+

lutyuv applies a lookup table to a YUV input video, lutrgb +to an RGB input video. +

+

These filters accept the following parameters: +

+
c0
+

set first pixel component expression +

+
c1
+

set second pixel component expression +

+
c2
+

set third pixel component expression +

+
c3
+

set fourth pixel component expression, corresponds to the alpha component +

+
+
r
+

set red component expression +

+
g
+

set green component expression +

+
b
+

set blue component expression +

+
a
+

alpha component expression +

+
+
y
+

set Y/luminance component expression +

+
u
+

set U/Cb component expression +

+
v
+

set V/Cr component expression +

+
+ +

Each of them specifies the expression to use for computing the lookup table for +the corresponding pixel component values. +

+

The exact component associated to each of the c* options depends on the +format in input. +

+

The lut filter requires either YUV or RGB pixel formats in input, +lutrgb requires RGB pixel formats in input, and lutyuv requires YUV. +

+

The expressions can contain the following constants and functions: +

+
+
w
+
h
+

The input width and height. +

+
+
val
+

The input value for the pixel component. +

+
+
clipval
+

The input value, clipped to the minval-maxval range. +

+
+
maxval
+

The maximum value for the pixel component. +

+
+
minval
+

The minimum value for the pixel component. +

+
+
negval
+

The negated value for the pixel component value, clipped to the +minval-maxval range; it corresponds to the expression +"maxval-clipval+minval". +

+
+
clip(val)
+

The computed value in val, clipped to the +minval-maxval range. +

+
+
gammaval(gamma)
+

The computed gamma correction value of the pixel component value, +clipped to the minval-maxval range. It corresponds to the +expression +"pow((clipval-minval)/(maxval-minval)\,gamma)*(maxval-minval)+minval" +

+
+
+ +

All expressions default to "val". +

+ +

30.50.1 Examples

+ +
    +
  • +Negate input video: +
     
    lutrgb="r=maxval+minval-val:g=maxval+minval-val:b=maxval+minval-val"
    +lutyuv="y=maxval+minval-val:u=maxval+minval-val:v=maxval+minval-val"
    +
    + +

    The above is the same as: +

     
    lutrgb="r=negval:g=negval:b=negval"
    +lutyuv="y=negval:u=negval:v=negval"
    +
    + +
  • +Negate luminance: +
     
    lutyuv=y=negval
    +
    + +
  • +Remove chroma components, turning the video into a graytone image: +
     
    lutyuv="u=128:v=128"
    +
    + +
  • +Apply a luma burning effect: +
     
    lutyuv="y=2*val"
    +
    + +
  • +Remove green and blue components: +
     
    lutrgb="g=0:b=0"
    +
    + +
  • +Set a constant alpha channel value on input: +
     
    format=rgba,lutrgb=a="maxval-minval/2"
    +
    + +
  • +Correct luminance gamma by a factor of 0.5: +
     
    lutyuv=y=gammaval(0.5)
    +
    + +
  • +Discard least significant bits of luma: +
     
    lutyuv=y='bitand(val, 128+64+32)'
    +
    +
+ + +

30.51 mergeplanes

+ +

Merge color channel components from several video streams. +

+

The filter accepts up to 4 input streams, and merge selected input +planes to the output video. +

+

This filter accepts the following options: +

+
mapping
+

Set input to output plane mapping. Default is 0. +

+

The mappings is specified as a bitmap. It should be specified as a +hexadecimal number in the form 0xAa[Bb[Cc[Dd]]]. ’Aa’ describes the +mapping for the first plane of the output stream. ’A’ sets the number of +the input stream to use (from 0 to 3), and ’a’ the plane number of the +corresponding input to use (from 0 to 3). The rest of the mappings is +similar, ’Bb’ describes the mapping for the output stream second +plane, ’Cc’ describes the mapping for the output stream third plane and +’Dd’ describes the mapping for the output stream fourth plane. +

+
+
format
+

Set output pixel format. Default is yuva444p. +

+
+ + +

30.51.1 Examples

+ +
    +
  • +Merge three gray video streams of same width and height into single video stream: +
     
    [a0][a1][a2]mergeplanes=0x001020:yuv444p
    +
    + +
  • +Merge 1st yuv444p stream and 2nd gray video stream into yuva444p video stream: +
     
    [a0][a1]mergeplanes=0x00010210:yuva444p
    +
    + +
  • +Swap Y and A plane in yuva444p stream: +
     
    format=yuva444p,mergeplanes=0x03010200:yuva444p
    +
    + +
  • +Swap U and V plane in yuv420p stream: +
     
    format=yuv420p,mergeplanes=0x000201:yuv420p
    +
    + +
  • +Cast a rgb24 clip to yuv444p: +
     
    format=rgb24,mergeplanes=0x000102:yuv444p
    +
    +
+ + +

30.52 mcdeint

+ +

Apply motion-compensation deinterlacing. +

+

It needs one field per frame as input and must thus be used together +with yadif=1/3 or equivalent. +

+

This filter accepts the following options: +

+
mode
+

Set the deinterlacing mode. +

+

It accepts one of the following values: +

+
fast
+
medium
+
slow
+

use iterative motion estimation +

+
extra_slow
+

like ‘slow’, but use multiple reference frames. +

+
+

Default value is ‘fast’. +

+
+
parity
+

Set the picture field parity assumed for the input video. It must be +one of the following values: +

+
+
0, tff
+

assume top field first +

+
1, bff
+

assume bottom field first +

+
+ +

Default value is ‘bff’. +

+
+
qp
+

Set per-block quantization parameter (QP) used by the internal +encoder. +

+

Higher values should result in a smoother motion vector field but less +optimal individual vectors. Default value is 1. +

+
+ + +

30.53 mp

+ +

Apply an MPlayer filter to the input video. +

+

This filter provides a wrapper around some of the filters of +MPlayer/MEncoder. +

+

This wrapper is considered experimental. Some of the wrapped filters +may not work properly and we may drop support for them, as they will +be implemented natively into FFmpeg. Thus you should avoid +depending on them when writing portable scripts. +

+

The filter accepts the parameters: +filter_name[:=]filter_params +

+

filter_name is the name of a supported MPlayer filter, +filter_params is a string containing the parameters accepted by +the named filter. +

+

The list of the currently supported filters follows: +

+
eq2
+
eq
+
fspp
+
ilpack
+
pp7
+
softpulldown
+
uspp
+
+ +

The parameter syntax and behavior for the listed filters are the same +of the corresponding MPlayer filters. For detailed instructions check +the "VIDEO FILTERS" section in the MPlayer manual. +

+ +

30.53.1 Examples

+ +
    +
  • +Adjust gamma, brightness, contrast: +
     
    mp=eq2=1.0:2:0.5
    +
    +
+ +

See also mplayer(1), http://www.mplayerhq.hu/. +

+ +

30.54 mpdecimate

+ +

Drop frames that do not differ greatly from the previous frame in +order to reduce frame rate. +

+

The main use of this filter is for very-low-bitrate encoding +(e.g. streaming over dialup modem), but it could in theory be used for +fixing movies that were inverse-telecined incorrectly. +

+

A description of the accepted options follows. +

+
+
max
+

Set the maximum number of consecutive frames which can be dropped (if +positive), or the minimum interval between dropped frames (if +negative). If the value is 0, the frame is dropped unregarding the +number of previous sequentially dropped frames. +

+

Default value is 0. +

+
+
hi
+
lo
+
frac
+

Set the dropping threshold values. +

+

Values for ‘hi’ and ‘lo’ are for 8x8 pixel blocks and +represent actual pixel value differences, so a threshold of 64 +corresponds to 1 unit of difference for each pixel, or the same spread +out differently over the block. +

+

A frame is a candidate for dropping if no 8x8 blocks differ by more +than a threshold of ‘hi’, and if no more than ‘frac’ blocks (1 +meaning the whole image) differ by more than a threshold of ‘lo’. +

+

Default value for ‘hi’ is 64*12, default value for ‘lo’ is +64*5, and default value for ‘frac’ is 0.33. +

+
+ + + +

30.55 negate

+ +

Negate input video. +

+

It accepts an integer in input; if non-zero it negates the +alpha component (if available). The default value in input is 0. +

+ +

30.56 noformat

+ +

Force libavfilter not to use any of the specified pixel formats for the +input to the next filter. +

+

It accepts the following parameters: +

+
pix_fmts
+

A ’|’-separated list of pixel format names, such as +apix_fmts=yuv420p|monow|rgb24". +

+
+
+ + +

30.56.1 Examples

+ +
    +
  • +Force libavfilter to use a format different from yuv420p for the +input to the vflip filter: +
     
    noformat=pix_fmts=yuv420p,vflip
    +
    + +
  • +Convert the input video to any of the formats not contained in the list: +
     
    noformat=yuv420p|yuv444p|yuv410p
    +
    +
+ + +

30.57 noise

+ +

Add noise on video input frame. +

+

The filter accepts the following options: +

+
+
all_seed
+
c0_seed
+
c1_seed
+
c2_seed
+
c3_seed
+

Set noise seed for specific pixel component or all pixel components in case +of all_seed. Default value is 123457. +

+
+
all_strength, alls
+
c0_strength, c0s
+
c1_strength, c1s
+
c2_strength, c2s
+
c3_strength, c3s
+

Set noise strength for specific pixel component or all pixel components in case +all_strength. Default value is 0. Allowed range is [0, 100]. +

+
+
all_flags, allf
+
c0_flags, c0f
+
c1_flags, c1f
+
c2_flags, c2f
+
c3_flags, c3f
+

Set pixel component flags or set flags for all components if all_flags. +Available values for component flags are: +

+
a
+

averaged temporal noise (smoother) +

+
p
+

mix random noise with a (semi)regular pattern +

+
t
+

temporal noise (noise pattern changes between frames) +

+
u
+

uniform noise (gaussian otherwise) +

+
+
+
+ + +

30.57.1 Examples

+ +

Add temporal and uniform noise to input video: +

 
noise=alls=20:allf=t+u
+
+ + +

30.58 null

+ +

Pass the video source unchanged to the output. +

+ +

30.59 ocv

+ +

Apply a video transform using libopencv. +

+

To enable this filter, install the libopencv library and headers and +configure FFmpeg with --enable-libopencv. +

+

It accepts the following parameters: +

+
+
filter_name
+

The name of the libopencv filter to apply. +

+
+
filter_params
+

The parameters to pass to the libopencv filter. If not specified, the default +values are assumed. +

+
+
+ +

Refer to the official libopencv documentation for more precise +information: +http://opencv.willowgarage.com/documentation/c/image_filtering.html +

+

Several libopencv filters are supported; see the following subsections. +

+

+

+

30.59.1 dilate

+ +

Dilate an image by using a specific structuring element. +It corresponds to the libopencv function cvDilate. +

+

It accepts the parameters: struct_el|nb_iterations. +

+

struct_el represents a structuring element, and has the syntax: +colsxrows+anchor_xxanchor_y/shape +

+

cols and rows represent the number of columns and rows of +the structuring element, anchor_x and anchor_y the anchor +point, and shape the shape for the structuring element. shape +must be "rect", "cross", "ellipse", or "custom". +

+

If the value for shape is "custom", it must be followed by a +string of the form "=filename". The file with name +filename is assumed to represent a binary image, with each +printable character corresponding to a bright pixel. When a custom +shape is used, cols and rows are ignored, the number +or columns and rows of the read file are assumed instead. +

+

The default value for struct_el is "3x3+0x0/rect". +

+

nb_iterations specifies the number of times the transform is +applied to the image, and defaults to 1. +

+

Some examples: +

 
# Use the default values
+ocv=dilate
+
+# Dilate using a structuring element with a 5x5 cross, iterating two times
+ocv=filter_name=dilate:filter_params=5x5+2x2/cross|2
+
+# Read the shape from the file diamond.shape, iterating two times.
+# The file diamond.shape may contain a pattern of characters like this
+#   *
+#  ***
+# *****
+#  ***
+#   *
+# The specified columns and rows are ignored
+# but the anchor point coordinates are not
+ocv=dilate:0x0+2x2/custom=diamond.shape|2
+
+ + +

30.59.2 erode

+ +

Erode an image by using a specific structuring element. +It corresponds to the libopencv function cvErode. +

+

It accepts the parameters: struct_el:nb_iterations, +with the same syntax and semantics as the dilate filter. +

+ +

30.59.3 smooth

+ +

Smooth the input video. +

+

The filter takes the following parameters: +type|param1|param2|param3|param4. +

+

type is the type of smooth filter to apply, and must be one of +the following values: "blur", "blur_no_scale", "median", "gaussian", +or "bilateral". The default value is "gaussian". +

+

The meaning of param1, param2, param3, and param4 +depend on the smooth type. param1 and +param2 accept integer positive values or 0. param3 and +param4 accept floating point values. +

+

The default value for param1 is 3. The default value for the +other parameters is 0. +

+

These parameters correspond to the parameters assigned to the +libopencv function cvSmooth. +

+

+

+

30.60 overlay

+ +

Overlay one video on top of another. +

+

It takes two inputs and has one output. The first input is the "main" +video on which the second input is overlayed. +

+

It accepts the following parameters: +

+

A description of the accepted options follows. +

+
+
x
+
y
+

Set the expression for the x and y coordinates of the overlayed video +on the main video. Default value is "0" for both expressions. In case +the expression is invalid, it is set to a huge value (meaning that the +overlay will not be displayed within the output visible area). +

+
+
eof_action
+

The action to take when EOF is encountered on the secondary input; it accepts +one of the following values: +

+
+
repeat
+

Repeat the last frame (the default). +

+
endall
+

End both streams. +

+
pass
+

Pass the main input through. +

+
+ +
+
eval
+

Set when the expressions for ‘x’, and ‘y’ are evaluated. +

+

It accepts the following values: +

+
init
+

only evaluate expressions once during the filter initialization or +when a command is processed +

+
+
frame
+

evaluate expressions for each incoming frame +

+
+ +

Default value is ‘frame’. +

+
+
shortest
+

If set to 1, force the output to terminate when the shortest input +terminates. Default value is 0. +

+
+
format
+

Set the format for the output video. +

+

It accepts the following values: +

+
yuv420
+

force YUV420 output +

+
+
yuv422
+

force YUV422 output +

+
+
yuv444
+

force YUV444 output +

+
+
rgb
+

force RGB output +

+
+ +

Default value is ‘yuv420’. +

+
+
rgb (deprecated)
+

If set to 1, force the filter to accept inputs in the RGB +color space. Default value is 0. This option is deprecated, use +‘format’ instead. +

+
+
repeatlast
+

If set to 1, force the filter to draw the last overlay frame over the +main input until the end of the stream. A value of 0 disables this +behavior. Default value is 1. +

+
+ +

The ‘x’, and ‘y’ expressions can contain the following +parameters. +

+
+
main_w, W
+
main_h, H
+

The main input width and height. +

+
+
overlay_w, w
+
overlay_h, h
+

The overlay input width and height. +

+
+
x
+
y
+

The computed values for x and y. They are evaluated for +each new frame. +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values of the output +format. For example for the pixel format "yuv422p" hsub is 2 and +vsub is 1. +

+
+
n
+

the number of input frame, starting from 0 +

+
+
pos
+

the position in the file of the input frame, NAN if unknown +

+
+
t
+

The timestamp, expressed in seconds. It’s NAN if the input timestamp is unknown. +

+
+
+ +

Note that the n, pos, t variables are available only +when evaluation is done per frame, and will evaluate to NAN +when ‘eval’ is set to ‘init’. +

+

Be aware that frames are taken from each input video in timestamp +order, hence, if their initial timestamps differ, it is a good idea +to pass the two inputs through a setpts=PTS-STARTPTS filter to +have them begin in the same zero timestamp, as the example for +the movie filter does. +

+

You can chain together more overlays but you should test the +efficiency of such approach. +

+ +

30.60.1 Commands

+ +

This filter supports the following commands: +

+
x
+
y
+

Modify the x and y of the overlay input. +The command accepts the same syntax of the corresponding option. +

+

If the specified expression is not valid, it is kept at its current +value. +

+
+ + +

30.60.2 Examples

+ +
    +
  • +Draw the overlay at 10 pixels from the bottom right corner of the main +video: +
     
    overlay=main_w-overlay_w-10:main_h-overlay_h-10
    +
    + +

    Using named options the example above becomes: +

     
    overlay=x=main_w-overlay_w-10:y=main_h-overlay_h-10
    +
    + +
  • +Insert a transparent PNG logo in the bottom left corner of the input, +using the ffmpeg tool with the -filter_complex option: +
     
    ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output
    +
    + +
  • +Insert 2 different transparent PNG logos (second logo on bottom +right corner) using the ffmpeg tool: +
     
    ffmpeg -i input -i logo1 -i logo2 -filter_complex 'overlay=x=10:y=H-h-10,overlay=x=W-w-10:y=H-h-10' output
    +
    + +
  • +Add a transparent color layer on top of the main video; WxH +must specify the size of the main input to the overlay filter: +
     
    color=color=red@.3:size=WxH [over]; [in][over] overlay [out]
    +
    + +
  • +Play an original video and a filtered version (here with the deshake +filter) side by side using the ffplay tool: +
     
    ffplay input.avi -vf 'split[a][b]; [a]pad=iw*2:ih[src]; [b]deshake[filt]; [src][filt]overlay=w'
    +
    + +

    The above command is the same as: +

     
    ffplay input.avi -vf 'split[b], pad=iw*2[src], [b]deshake, [src]overlay=w'
    +
    + +
  • +Make a sliding overlay appearing from the left to the right top part of the +screen starting since time 2: +
     
    overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0
    +
    + +
  • +Compose output by putting two input videos side to side: +
     
    ffmpeg -i left.avi -i right.avi -filter_complex "
    +nullsrc=size=200x100 [background];
    +[0:v] setpts=PTS-STARTPTS, scale=100x100 [left];
    +[1:v] setpts=PTS-STARTPTS, scale=100x100 [right];
    +[background][left]       overlay=shortest=1       [background+left];
    +[background+left][right] overlay=shortest=1:x=100 [left+right]
    +"
    +
    + +
  • +Mask 10-20 seconds of a video by applying the delogo filter to a section +
     
    ffmpeg -i test.avi -codec:v:0 wmv2 -ar 11025 -b:v 9000k
    +-vf '[in]split[split_main][split_delogo];[split_delogo]trim=start=360:end=371,delogo=0:0:640:480[delogoed];[split_main][delogoed]overlay=eof_action=pass[out]'
    +masked.avi
    +
    + +
  • +Chain several overlays in cascade: +
     
    nullsrc=s=200x200 [bg];
    +testsrc=s=100x100, split=4 [in0][in1][in2][in3];
    +[in0] lutrgb=r=0, [bg]   overlay=0:0     [mid0];
    +[in1] lutrgb=g=0, [mid0] overlay=100:0   [mid1];
    +[in2] lutrgb=b=0, [mid1] overlay=0:100   [mid2];
    +[in3] null,       [mid2] overlay=100:100 [out0]
    +
    + +
+ + +

30.61 owdenoise

+ +

Apply Overcomplete Wavelet denoiser. +

+

The filter accepts the following options: +

+
+
depth
+

Set depth. +

+

Larger depth values will denoise lower frequency components more, but +slow down filtering. +

+

Must be an int in the range 8-16, default is 8. +

+
+
luma_strength, ls
+

Set luma strength. +

+

Must be a double value in the range 0-1000, default is 1.0. +

+
+
chroma_strength, cs
+

Set chroma strength. +

+

Must be a double value in the range 0-1000, default is 1.0. +

+
+ + +

30.62 pad

+ +

Add paddings to the input image, and place the original input at the +provided x, y coordinates. +

+

It accepts the following parameters: +

+
+
width, w
+
height, h
+

Specify an expression for the size of the output image with the +paddings added. If the value for width or height is 0, the +corresponding input size is used for the output. +

+

The width expression can reference the value set by the +height expression, and vice versa. +

+

The default value of width and height is 0. +

+
+
x
+
y
+

Specify the offsets to place the input image at within the padded area, +with respect to the top/left border of the output image. +

+

The x expression can reference the value set by the y +expression, and vice versa. +

+

The default value of x and y is 0. +

+
+
color
+

Specify the color of the padded area. For the syntax of this option, +check the "Color" section in the ffmpeg-utils manual. +

+

The default value of color is "black". +

+
+ +

The value for the width, height, x, and y +options are expressions containing the following constants: +

+
+
in_w
+
in_h
+

The input video width and height. +

+
+
iw
+
ih
+

These are the same as in_w and in_h. +

+
+
out_w
+
out_h
+

The output width and height (the size of the padded area), as +specified by the width and height expressions. +

+
+
ow
+
oh
+

These are the same as out_w and out_h. +

+
+
x
+
y
+

The x and y offsets as specified by the x and y +expressions, or NAN if not yet specified. +

+
+
a
+

same as iw / ih +

+
+
sar
+

input sample aspect ratio +

+
+
dar
+

input display aspect ratio, it is the same as (iw / ih) * sar +

+
+
hsub
+
vsub
+

The horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+ + +

30.62.1 Examples

+ +
    +
  • +Add paddings with the color "violet" to the input video. The output video +size is 640x480, and the top-left corner of the input video is placed at +column 0, row 40 +
     
    pad=640:480:0:40:violet
    +
    + +

    The example above is equivalent to the following command: +

     
    pad=width=640:height=480:x=0:y=40:color=violet
    +
    + +
  • +Pad the input to get an output with dimensions increased by 3/2, +and put the input video at the center of the padded area: +
     
    pad="3/2*iw:3/2*ih:(ow-iw)/2:(oh-ih)/2"
    +
    + +
  • +Pad the input to get a squared output with size equal to the maximum +value between the input width and height, and put the input video at +the center of the padded area: +
     
    pad="max(iw\,ih):ow:(ow-iw)/2:(oh-ih)/2"
    +
    + +
  • +Pad the input to get a final w/h ratio of 16:9: +
     
    pad="ih*16/9:ih:(ow-iw)/2:(oh-ih)/2"
    +
    + +
  • +In case of anamorphic video, in order to set the output display aspect +correctly, it is necessary to use sar in the expression, +according to the relation: +
     
    (ih * X / ih) * sar = output_dar
    +X = output_dar / sar
    +
    + +

    Thus the previous example needs to be modified to: +

     
    pad="ih*16/9/sar:ih:(ow-iw)/2:(oh-ih)/2"
    +
    + +
  • +Double the output size and put the input video in the bottom-right +corner of the output padded area: +
     
    pad="2*iw:2*ih:ow-iw:oh-ih"
    +
    +
+ + +

30.63 perspective

+ +

Correct perspective of video not recorded perpendicular to the screen. +

+

A description of the accepted parameters follows. +

+
+
x0
+
y0
+
x1
+
y1
+
x2
+
y2
+
x3
+
y3
+

Set coordinates expression for top left, top right, bottom left and bottom right corners. +Default values are 0:0:W:0:0:H:W:H with which perspective will remain unchanged. +

+

The expressions can use the following variables: +

+
+
W
+
H
+

the width and height of video frame. +

+
+ +
+
interpolation
+

Set interpolation for perspective correction. +

+

It accepts the following values: +

+
linear
+
cubic
+
+ +

Default value is ‘linear’. +

+
+ + +

30.64 phase

+ +

Delay interlaced video by one field time so that the field order changes. +

+

The intended use is to fix PAL movies that have been captured with the +opposite field order to the film-to-video transfer. +

+

A description of the accepted parameters follows. +

+
+
mode
+

Set phase mode. +

+

It accepts the following values: +

+
t
+

Capture field order top-first, transfer bottom-first. +Filter will delay the bottom field. +

+
+
b
+

Capture field order bottom-first, transfer top-first. +Filter will delay the top field. +

+
+
p
+

Capture and transfer with the same field order. This mode only exists +for the documentation of the other options to refer to, but if you +actually select it, the filter will faithfully do nothing. +

+
+
a
+

Capture field order determined automatically by field flags, transfer +opposite. +Filter selects among ‘t’ and ‘b’ modes on a frame by frame +basis using field flags. If no field information is available, +then this works just like ‘u’. +

+
+
u
+

Capture unknown or varying, transfer opposite. +Filter selects among ‘t’ and ‘b’ on a frame by frame basis by +analyzing the images and selecting the alternative that produces best +match between the fields. +

+
+
T
+

Capture top-first, transfer unknown or varying. +Filter selects among ‘t’ and ‘p’ using image analysis. +

+
+
B
+

Capture bottom-first, transfer unknown or varying. +Filter selects among ‘b’ and ‘p’ using image analysis. +

+
+
A
+

Capture determined by field flags, transfer unknown or varying. +Filter selects among ‘t’, ‘b’ and ‘p’ using field flags and +image analysis. If no field information is available, then this works just +like ‘U’. This is the default mode. +

+
+
U
+

Both capture and transfer unknown or varying. +Filter selects among ‘t’, ‘b’ and ‘p’ using image analysis only. +

+
+
+
+ + +

30.65 pixdesctest

+ +

Pixel format descriptor test filter, mainly useful for internal +testing. The output video should be equal to the input video. +

+

For example: +

 
format=monow, pixdesctest
+
+ +

can be used to test the monowhite pixel format descriptor definition. +

+ +

30.66 pp

+ +

Enable the specified chain of postprocessing subfilters using libpostproc. This +library should be automatically selected with a GPL build (--enable-gpl). +Subfilters must be separated by ’/’ and can be disabled by prepending a ’-’. +Each subfilter and some options have a short and a long name that can be used +interchangeably, i.e. dr/dering are the same. +

+

The filters accept the following options: +

+
+
subfilters
+

Set postprocessing subfilters string. +

+
+ +

All subfilters share common options to determine their scope: +

+
+
a/autoq
+

Honor the quality commands for this subfilter. +

+
+
c/chrom
+

Do chrominance filtering, too (default). +

+
+
y/nochrom
+

Do luminance filtering only (no chrominance). +

+
+
n/noluma
+

Do chrominance filtering only (no luminance). +

+
+ +

These options can be appended after the subfilter name, separated by a ’|’. +

+

Available subfilters are: +

+
+
hb/hdeblock[|difference[|flatness]]
+

Horizontal deblocking filter +

+
difference
+

Difference factor where higher values mean more deblocking (default: 32). +

+
flatness
+

Flatness threshold where lower values mean more deblocking (default: 39). +

+
+ +
+
vb/vdeblock[|difference[|flatness]]
+

Vertical deblocking filter +

+
difference
+

Difference factor where higher values mean more deblocking (default: 32). +

+
flatness
+

Flatness threshold where lower values mean more deblocking (default: 39). +

+
+ +
+
ha/hadeblock[|difference[|flatness]]
+

Accurate horizontal deblocking filter +

+
difference
+

Difference factor where higher values mean more deblocking (default: 32). +

+
flatness
+

Flatness threshold where lower values mean more deblocking (default: 39). +

+
+ +
+
va/vadeblock[|difference[|flatness]]
+

Accurate vertical deblocking filter +

+
difference
+

Difference factor where higher values mean more deblocking (default: 32). +

+
flatness
+

Flatness threshold where lower values mean more deblocking (default: 39). +

+
+
+
+ +

The horizontal and vertical deblocking filters share the difference and +flatness values so you cannot set different horizontal and vertical +thresholds. +

+
+
h1/x1hdeblock
+

Experimental horizontal deblocking filter +

+
+
v1/x1vdeblock
+

Experimental vertical deblocking filter +

+
+
dr/dering
+

Deringing filter +

+
+
tn/tmpnoise[|threshold1[|threshold2[|threshold3]]], temporal noise reducer
+
+
threshold1
+

larger -> stronger filtering +

+
threshold2
+

larger -> stronger filtering +

+
threshold3
+

larger -> stronger filtering +

+
+ +
+
al/autolevels[:f/fullyrange], automatic brightness / contrast correction
+
+
f/fullyrange
+

Stretch luminance to 0-255. +

+
+ +
+
lb/linblenddeint
+

Linear blend deinterlacing filter that deinterlaces the given block by +filtering all lines with a (1 2 1) filter. +

+
+
li/linipoldeint
+

Linear interpolating deinterlacing filter that deinterlaces the given block by +linearly interpolating every second line. +

+
+
ci/cubicipoldeint
+

Cubic interpolating deinterlacing filter deinterlaces the given block by +cubically interpolating every second line. +

+
+
md/mediandeint
+

Median deinterlacing filter that deinterlaces the given block by applying a +median filter to every second line. +

+
+
fd/ffmpegdeint
+

FFmpeg deinterlacing filter that deinterlaces the given block by filtering every +second line with a (-1 4 2 4 -1) filter. +

+
+
l5/lowpass5
+

Vertically applied FIR lowpass deinterlacing filter that deinterlaces the given +block by filtering all lines with a (-1 2 6 2 -1) filter. +

+
+
fq/forceQuant[|quantizer]
+

Overrides the quantizer table from the input with the constant quantizer you +specify. +

+
quantizer
+

Quantizer to use +

+
+ +
+
de/default
+

Default pp filter combination (hb|a,vb|a,dr|a) +

+
+
fa/fast
+

Fast pp filter combination (h1|a,v1|a,dr|a) +

+
+
ac
+

High quality pp filter combination (ha|a|128|7,va|a,dr|a) +

+
+ + +

30.66.1 Examples

+ +
    +
  • +Apply horizontal and vertical deblocking, deringing and automatic +brightness/contrast: +
     
    pp=hb/vb/dr/al
    +
    + +
  • +Apply default filters without brightness/contrast correction: +
     
    pp=de/-al
    +
    + +
  • +Apply default filters and temporal denoiser: +
     
    pp=default/tmpnoise|1|2|3
    +
    + +
  • +Apply deblocking on luminance only, and switch vertical deblocking on or off +automatically depending on available CPU time: +
     
    pp=hb|y/vb|a
    +
    +
+ + +

30.67 psnr

+ +

Obtain the average, maximum and minimum PSNR (Peak Signal to Noise +Ratio) between two input videos. +

+

This filter takes in input two input videos, the first input is +considered the "main" source and is passed unchanged to the +output. The second input is used as a "reference" video for computing +the PSNR. +

+

Both video inputs must have the same resolution and pixel format for +this filter to work correctly. Also it assumes that both inputs +have the same number of frames, which are compared one by one. +

+

The obtained average PSNR is printed through the logging system. +

+

The filter stores the accumulated MSE (mean squared error) of each +frame, and at the end of the processing it is averaged across all frames +equally, and the following formula is applied to obtain the PSNR: +

+
 
PSNR = 10*log10(MAX^2/MSE)
+
+ +

Where MAX is the average of the maximum values of each component of the +image. +

+

The description of the accepted parameters follows. +

+
+
stats_file, f
+

If specified the filter will use the named file to save the PSNR of +each individual frame. +

+
+ +

The file printed if stats_file is selected, contains a sequence of +key/value pairs of the form key:value for each compared +couple of frames. +

+

A description of each shown parameter follows: +

+
+
n
+

sequential number of the input frame, starting from 1 +

+
+
mse_avg
+

Mean Square Error pixel-by-pixel average difference of the compared +frames, averaged over all the image components. +

+
+
mse_y, mse_u, mse_v, mse_r, mse_g, mse_g, mse_a
+

Mean Square Error pixel-by-pixel average difference of the compared +frames for the component specified by the suffix. +

+
+
psnr_y, psnr_u, psnr_v, psnr_r, psnr_g, psnr_b, psnr_a
+

Peak Signal to Noise ratio of the compared frames for the component +specified by the suffix. +

+
+ +

For example: +

 
movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
+[main][ref] psnr="stats_file=stats.log" [out]
+
+ +

On this example the input file being processed is compared with the +reference file ‘ref_movie.mpg’. The PSNR of each individual frame +is stored in ‘stats.log’. +

+

+

+

30.68 pullup

+ +

Pulldown reversal (inverse telecine) filter, capable of handling mixed +hard-telecine, 24000/1001 fps progressive, and 30000/1001 fps progressive +content. +

+

The pullup filter is designed to take advantage of future context in making +its decisions. This filter is stateless in the sense that it does not lock +onto a pattern to follow, but it instead looks forward to the following +fields in order to identify matches and rebuild progressive frames. +

+

To produce content with an even framerate, insert the fps filter after +pullup, use fps=24000/1001 if the input frame rate is 29.97fps, +fps=24 for 30fps and the (rare) telecined 25fps input. +

+

The filter accepts the following options: +

+
+
jl
+
jr
+
jt
+
jb
+

These options set the amount of "junk" to ignore at the left, right, top, and +bottom of the image, respectively. Left and right are in units of 8 pixels, +while top and bottom are in units of 2 lines. +The default is 8 pixels on each side. +

+
+
sb
+

Set the strict breaks. Setting this option to 1 will reduce the chances of +filter generating an occasional mismatched frame, but it may also cause an +excessive number of frames to be dropped during high motion sequences. +Conversely, setting it to -1 will make filter match fields more easily. +This may help processing of video where there is slight blurring between +the fields, but may also cause there to be interlaced frames in the output. +Default value is 0. +

+
+
mp
+

Set the metric plane to use. It accepts the following values: +

+
l
+

Use luma plane. +

+
+
u
+

Use chroma blue plane. +

+
+
v
+

Use chroma red plane. +

+
+ +

This option may be set to use chroma plane instead of the default luma plane +for doing filter’s computations. This may improve accuracy on very clean +source material, but more likely will decrease accuracy, especially if there +is chroma noise (rainbow effect) or any grayscale video. +The main purpose of setting ‘mp’ to a chroma plane is to reduce CPU +load and make pullup usable in realtime on slow machines. +

+
+ +

For best results (without duplicated frames in the output file) it is +necessary to change the output frame rate. For example, to inverse +telecine NTSC input: +

 
ffmpeg -i input -vf pullup -r 24000/1001 ...
+
+ + +

30.69 removelogo

+ +

Suppress a TV station logo, using an image file to determine which +pixels comprise the logo. It works by filling in the pixels that +comprise the logo with neighboring pixels. +

+

The filter accepts the following options: +

+
+
filename, f
+

Set the filter bitmap file, which can be any image format supported by +libavformat. The width and height of the image file must match those of the +video stream being processed. +

+
+ +

Pixels in the provided bitmap image with a value of zero are not +considered part of the logo, non-zero pixels are considered part of +the logo. If you use white (255) for the logo and black (0) for the +rest, you will be safe. For making the filter bitmap, it is +recommended to take a screen capture of a black frame with the logo +visible, and then using a threshold filter followed by the erode +filter once or twice. +

+

If needed, little splotches can be fixed manually. Remember that if +logo pixels are not covered, the filter quality will be much +reduced. Marking too many pixels as part of the logo does not hurt as +much, but it will increase the amount of blurring needed to cover over +the image and will destroy more information than necessary, and extra +pixels will slow things down on a large logo. +

+ +

30.70 rotate

+ +

Rotate video by an arbitrary angle expressed in radians. +

+

The filter accepts the following options: +

+

A description of the optional parameters follows. +

+
angle, a
+

Set an expression for the angle by which to rotate the input video +clockwise, expressed as a number of radians. A negative value will +result in a counter-clockwise rotation. By default it is set to "0". +

+

This expression is evaluated for each frame. +

+
+
out_w, ow
+

Set the output width expression, default value is "iw". +This expression is evaluated just once during configuration. +

+
+
out_h, oh
+

Set the output height expression, default value is "ih". +This expression is evaluated just once during configuration. +

+
+
bilinear
+

Enable bilinear interpolation if set to 1, a value of 0 disables +it. Default value is 1. +

+
+
fillcolor, c
+

Set the color used to fill the output area not covered by the rotated +image. For the generalsyntax of this option, check the "Color" section in the +ffmpeg-utils manual. If the special value "none" is selected then no +background is printed (useful for example if the background is never shown). +

+

Default value is "black". +

+
+ +

The expressions for the angle and the output size can contain the +following constants and functions: +

+
+
n
+

sequential number of the input frame, starting from 0. It is always NAN +before the first frame is filtered. +

+
+
t
+

time in seconds of the input frame, it is set to 0 when the filter is +configured. It is always NAN before the first frame is filtered. +

+
+
hsub
+
vsub
+

horizontal and vertical chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
in_w, iw
+
in_h, ih
+

the input video width and height +

+
+
out_w, ow
+
out_h, oh
+

the output width and height, that is the size of the padded area as +specified by the width and height expressions +

+
+
rotw(a)
+
roth(a)
+

the minimal width/height required for completely containing the input +video rotated by a radians. +

+

These are only available when computing the ‘out_w’ and +‘out_h’ expressions. +

+
+ + +

30.70.1 Examples

+ +
    +
  • +Rotate the input by PI/6 radians clockwise: +
     
    rotate=PI/6
    +
    + +
  • +Rotate the input by PI/6 radians counter-clockwise: +
     
    rotate=-PI/6
    +
    + +
  • +Rotate the input by 45 degrees clockwise: +
     
    rotate=45*PI/180
    +
    + +
  • +Apply a constant rotation with period T, starting from an angle of PI/3: +
     
    rotate=PI/3+2*PI*t/T
    +
    + +
  • +Make the input video rotation oscillating with a period of T +seconds and an amplitude of A radians: +
     
    rotate=A*sin(2*PI/T*t)
    +
    + +
  • +Rotate the video, output size is chosen so that the whole rotating +input video is always completely contained in the output: +
     
    rotate='2*PI*t:ow=hypot(iw,ih):oh=ow'
    +
    + +
  • +Rotate the video, reduce the output size so that no background is ever +shown: +
     
    rotate=2*PI*t:ow='min(iw,ih)/sqrt(2)':oh=ow:c=none
    +
    +
+ + +

30.70.2 Commands

+ +

The filter supports the following commands: +

+
+
a, angle
+

Set the angle expression. +The command accepts the same syntax of the corresponding option. +

+

If the specified expression is not valid, it is kept at its current +value. +

+
+ + +

30.71 sab

+ +

Apply Shape Adaptive Blur. +

+

The filter accepts the following options: +

+
+
luma_radius, lr
+

Set luma blur filter strength, must be a value in range 0.1-4.0, default +value is 1.0. A greater value will result in a more blurred image, and +in slower processing. +

+
+
luma_pre_filter_radius, lpfr
+

Set luma pre-filter radius, must be a value in the 0.1-2.0 range, default +value is 1.0. +

+
+
luma_strength, ls
+

Set luma maximum difference between pixels to still be considered, must +be a value in the 0.1-100.0 range, default value is 1.0. +

+
+
chroma_radius, cr
+

Set chroma blur filter strength, must be a value in range 0.1-4.0. A +greater value will result in a more blurred image, and in slower +processing. +

+
+
chroma_pre_filter_radius, cpfr
+

Set chroma pre-filter radius, must be a value in the 0.1-2.0 range. +

+
+
chroma_strength, cs
+

Set chroma maximum difference between pixels to still be considered, +must be a value in the 0.1-100.0 range. +

+
+ +

Each chroma option value, if not explicitly specified, is set to the +corresponding luma option value. +

+

+

+

30.72 scale

+ +

Scale (resize) the input video, using the libswscale library. +

+

The scale filter forces the output display aspect ratio to be the same +of the input, by changing the output sample aspect ratio. +

+

If the input image format is different from the format requested by +the next filter, the scale filter will convert the input to the +requested format. +

+ +

30.72.1 Options

+

The filter accepts the following options, or any of the options +supported by the libswscale scaler. +

+

See (ffmpeg-scaler)scaler_options for +the complete list of scaler options. +

+
+
width, w
+
height, h
+

Set the output video dimension expression. Default value is the input +dimension. +

+

If the value is 0, the input width is used for the output. +

+

If one of the values is -1, the scale filter will use a value that +maintains the aspect ratio of the input image, calculated from the +other specified dimension. If both of them are -1, the input size is +used +

+

If one of the values is -n with n > 1, the scale filter will also use a value +that maintains the aspect ratio of the input image, calculated from the other +specified dimension. After that it will, however, make sure that the calculated +dimension is divisible by n and adjust the value if necessary. +

+

See below for the list of accepted constants for use in the dimension +expression. +

+
+
interl
+

Set the interlacing mode. It accepts the following values: +

+
+
1
+

Force interlaced aware scaling. +

+
+
0
+

Do not apply interlaced scaling. +

+
+
-1
+

Select interlaced aware scaling depending on whether the source frames +are flagged as interlaced or not. +

+
+ +

Default value is ‘0’. +

+
+
flags
+

Set libswscale scaling flags. See +(ffmpeg-scaler)sws_flags for the +complete list of values. If not explicitly specified the filter applies +the default flags. +

+
+
size, s
+

Set the video size. For the syntax of this option, check the "Video size" +section in the ffmpeg-utils manual. +

+
+
in_color_matrix
+
out_color_matrix
+

Set in/output YCbCr color space type. +

+

This allows the autodetected value to be overridden as well as allows forcing +a specific value used for the output and encoder. +

+

If not specified, the color space type depends on the pixel format. +

+

Possible values: +

+
+
auto
+

Choose automatically. +

+
+
bt709
+

Format conforming to International Telecommunication Union (ITU) +Recommendation BT.709. +

+
+
fcc
+

Set color space conforming to the United States Federal Communications +Commission (FCC) Code of Federal Regulations (CFR) Title 47 (2003) 73.682 (a). +

+
+
bt601
+

Set color space conforming to: +

+
    +
  • +ITU Radiocommunication Sector (ITU-R) Recommendation BT.601 + +
  • +ITU-R Rec. BT.470-6 (1998) Systems B, B1, and G + +
  • +Society of Motion Picture and Television Engineers (SMPTE) ST 170:2004 + +
+ +
+
smpte240m
+

Set color space conforming to SMPTE ST 240:1999. +

+
+ +
+
in_range
+
out_range
+

Set in/output YCbCr sample range. +

+

This allows the autodetected value to be overridden as well as allows forcing +a specific value used for the output and encoder. If not specified, the +range depends on the pixel format. Possible values: +

+
+
auto
+

Choose automatically. +

+
+
jpeg/full/pc
+

Set full range (0-255 in case of 8-bit luma). +

+
+
mpeg/tv
+

Set "MPEG" range (16-235 in case of 8-bit luma). +

+
+ +
+
force_original_aspect_ratio
+

Enable decreasing or increasing output video width or height if necessary to +keep the original aspect ratio. Possible values: +

+
+
disable
+

Scale the video as specified and disable this feature. +

+
+
decrease
+

The output video dimensions will automatically be decreased if needed. +

+
+
increase
+

The output video dimensions will automatically be increased if needed. +

+
+
+ +

One useful instance of this option is that when you know a specific device’s +maximum allowed resolution, you can use this to limit the output video to +that, while retaining the aspect ratio. For example, device A allows +1280x720 playback, and your video is 1920x800. Using this option (set it to +decrease) and specifying 1280x720 to the command line makes the output +1280x533. +

+

Please note that this is a different thing than specifying -1 for ‘w’ +or ‘h’, you still need to specify the output resolution for this option +to work. +

+
+
+ +

The values of the ‘w’ and ‘h’ options are expressions +containing the following constants: +

+
+
in_w
+
in_h
+

The input width and height +

+
+
iw
+
ih
+

These are the same as in_w and in_h. +

+
+
out_w
+
out_h
+

The output (scaled) width and height +

+
+
ow
+
oh
+

These are the same as out_w and out_h +

+
+
a
+

The same as iw / ih +

+
+
sar
+

input sample aspect ratio +

+
+
dar
+

The input display aspect ratio. Calculated from (iw / ih) * sar. +

+
+
hsub
+
vsub
+

horizontal and vertical input chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+
ohsub
+
ovsub
+

horizontal and vertical output chroma subsample values. For example for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+ + +

30.72.2 Examples

+ +
    +
  • +Scale the input video to a size of 200x100 +
     
    scale=w=200:h=100
    +
    + +

    This is equivalent to: +

     
    scale=200:100
    +
    + +

    or: +

     
    scale=200x100
    +
    + +
  • +Specify a size abbreviation for the output size: +
     
    scale=qcif
    +
    + +

    which can also be written as: +

     
    scale=size=qcif
    +
    + +
  • +Scale the input to 2x: +
     
    scale=w=2*iw:h=2*ih
    +
    + +
  • +The above is the same as: +
     
    scale=2*in_w:2*in_h
    +
    + +
  • +Scale the input to 2x with forced interlaced scaling: +
     
    scale=2*iw:2*ih:interl=1
    +
    + +
  • +Scale the input to half size: +
     
    scale=w=iw/2:h=ih/2
    +
    + +
  • +Increase the width, and set the height to the same size: +
     
    scale=3/2*iw:ow
    +
    + +
  • +Seek Greek harmony: +
     
    scale=iw:1/PHI*iw
    +scale=ih*PHI:ih
    +
    + +
  • +Increase the height, and set the width to 3/2 of the height: +
     
    scale=w=3/2*oh:h=3/5*ih
    +
    + +
  • +Increase the size, making the size a multiple of the chroma +subsample values: +
     
    scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub"
    +
    + +
  • +Increase the width to a maximum of 500 pixels, +keeping the same aspect ratio as the input: +
     
    scale=w='min(500\, iw*3/2):h=-1'
    +
    +
+ + +

30.73 separatefields

+ +

The separatefields takes a frame-based video input and splits +each frame into its components fields, producing a new half height clip +with twice the frame rate and twice the frame count. +

+

This filter use field-dominance information in frame to decide which +of each pair of fields to place first in the output. +If it gets it wrong use setfield filter before separatefields filter. +

+ +

30.74 setdar, setsar

+ +

The setdar filter sets the Display Aspect Ratio for the filter +output video. +

+

This is done by changing the specified Sample (aka Pixel) Aspect +Ratio, according to the following equation: +

 
DAR = HORIZONTAL_RESOLUTION / VERTICAL_RESOLUTION * SAR
+
+ +

Keep in mind that the setdar filter does not modify the pixel +dimensions of the video frame. Also, the display aspect ratio set by +this filter may be changed by later filters in the filterchain, +e.g. in case of scaling or if another "setdar" or a "setsar" filter is +applied. +

+

The setsar filter sets the Sample (aka Pixel) Aspect Ratio for +the filter output video. +

+

Note that as a consequence of the application of this filter, the +output display aspect ratio will change according to the equation +above. +

+

Keep in mind that the sample aspect ratio set by the setsar +filter may be changed by later filters in the filterchain, e.g. if +another "setsar" or a "setdar" filter is applied. +

+

It accepts the following parameters: +

+
+
r, ratio, dar (setdar only), sar (setsar only)
+

Set the aspect ratio used by the filter. +

+

The parameter can be a floating point number string, an expression, or +a string of the form num:den, where num and +den are the numerator and denominator of the aspect ratio. If +the parameter is not specified, it is assumed the value "0". +In case the form "num:den" is used, the : character +should be escaped. +

+
+
max
+

Set the maximum integer value to use for expressing numerator and +denominator when reducing the expressed aspect ratio to a rational. +Default value is 100. +

+
+
+ +

The parameter sar is an expression containing +the following constants: +

+
+
E, PI, PHI
+

These are approximated values for the mathematical constants e +(Euler’s number), pi (Greek pi), and phi (the golden ratio). +

+
+
w, h
+

The input width and height. +

+
+
a
+

These are the same as w / h. +

+
+
sar
+

The input sample aspect ratio. +

+
+
dar
+

The input display aspect ratio. It is the same as +(w / h) * sar. +

+
+
hsub, vsub
+

Horizontal and vertical chroma subsample values. For example, for the +pixel format "yuv422p" hsub is 2 and vsub is 1. +

+
+ + +

30.74.1 Examples

+ +
    +
  • +To change the display aspect ratio to 16:9, specify one of the following: +
     
    setdar=dar=1.77777
    +setdar=dar=16/9
    +setdar=dar=1.77777
    +
    + +
  • +To change the sample aspect ratio to 10:11, specify: +
     
    setsar=sar=10/11
    +
    + +
  • +To set a display aspect ratio of 16:9, and specify a maximum integer value of +1000 in the aspect ratio reduction, use the command: +
     
    setdar=ratio=16/9:max=1000
    +
    + +
+ +

+

+

30.75 setfield

+ +

Force field for the output video frame. +

+

The setfield filter marks the interlace type field for the +output frames. It does not change the input frame, but only sets the +corresponding property, which affects how the frame is treated by +following filters (e.g. fieldorder or yadif). +

+

The filter accepts the following options: +

+
+
mode
+

Available values are: +

+
+
auto
+

Keep the same field property. +

+
+
bff
+

Mark the frame as bottom-field-first. +

+
+
tff
+

Mark the frame as top-field-first. +

+
+
prog
+

Mark the frame as progressive. +

+
+
+
+ + +

30.76 showinfo

+ +

Show a line containing various information for each input video frame. +The input video is not modified. +

+

The shown line contains a sequence of key/value pairs of the form +key:value. +

+

It accepts the following parameters: +

+
+
n
+

The (sequential) number of the input frame, starting from 0. +

+
+
pts
+

The Presentation TimeStamp of the input frame, expressed as a number of +time base units. The time base unit depends on the filter input pad. +

+
+
pts_time
+

The Presentation TimeStamp of the input frame, expressed as a number of +seconds. +

+
+
pos
+

The position of the frame in the input stream, or -1 if this information is +unavailable and/or meaningless (for example in case of synthetic video). +

+
+
fmt
+

The pixel format name. +

+
+
sar
+

The sample aspect ratio of the input frame, expressed in the form +num/den. +

+
+
s
+

The size of the input frame. For the syntax of this option, check the "Video size" +section in the ffmpeg-utils manual. +

+
+
i
+

The type of interlaced mode ("P" for "progressive", "T" for top field first, "B" +for bottom field first). +

+
+
iskey
+

This is 1 if the frame is a key frame, 0 otherwise. +

+
+
type
+

The picture type of the input frame ("I" for an I-frame, "P" for a +P-frame, "B" for a B-frame, or "?" for an unknown type). +Also refer to the documentation of the AVPictureType enum and of +the av_get_picture_type_char function defined in +‘libavutil/avutil.h’. +

+
+
checksum
+

The Adler-32 checksum (printed in hexadecimal) of all the planes of the input frame. +

+
+
plane_checksum
+

The Adler-32 checksum (printed in hexadecimal) of each plane of the input frame, +expressed in the form "[c0 c1 c2 c3]". +

+
+ + +

30.77 shuffleplanes

+ +

Reorder and/or duplicate video planes. +

+

It accepts the following parameters: +

+
+
map0
+

The index of the input plane to be used as the first output plane. +

+
+
map1
+

The index of the input plane to be used as the second output plane. +

+
+
map2
+

The index of the input plane to be used as the third output plane. +

+
+
map3
+

The index of the input plane to be used as the fourth output plane. +

+
+
+ +

The first plane has the index 0. The default is to keep the input unchanged. +

+

Swap the second and third planes of the input: +

 
ffmpeg -i INPUT -vf shuffleplanes=0:2:1:3 OUTPUT
+
+ +

+

+

30.78 smartblur

+ +

Blur the input video without impacting the outlines. +

+

It accepts the following options: +

+
+
luma_radius, lr
+

Set the luma radius. The option value must be a float number in +the range [0.1,5.0] that specifies the variance of the gaussian filter +used to blur the image (slower if larger). Default value is 1.0. +

+
+
luma_strength, ls
+

Set the luma strength. The option value must be a float number +in the range [-1.0,1.0] that configures the blurring. A value included +in [0.0,1.0] will blur the image whereas a value included in +[-1.0,0.0] will sharpen the image. Default value is 1.0. +

+
+
luma_threshold, lt
+

Set the luma threshold used as a coefficient to determine +whether a pixel should be blurred or not. The option value must be an +integer in the range [-30,30]. A value of 0 will filter all the image, +a value included in [0,30] will filter flat areas and a value included +in [-30,0] will filter edges. Default value is 0. +

+
+
chroma_radius, cr
+

Set the chroma radius. The option value must be a float number in +the range [0.1,5.0] that specifies the variance of the gaussian filter +used to blur the image (slower if larger). Default value is 1.0. +

+
+
chroma_strength, cs
+

Set the chroma strength. The option value must be a float number +in the range [-1.0,1.0] that configures the blurring. A value included +in [0.0,1.0] will blur the image whereas a value included in +[-1.0,0.0] will sharpen the image. Default value is 1.0. +

+
+
chroma_threshold, ct
+

Set the chroma threshold used as a coefficient to determine +whether a pixel should be blurred or not. The option value must be an +integer in the range [-30,30]. A value of 0 will filter all the image, +a value included in [0,30] will filter flat areas and a value included +in [-30,0] will filter edges. Default value is 0. +

+
+ +

If a chroma option is not explicitly set, the corresponding luma value +is set. +

+ +

30.79 stereo3d

+ +

Convert between different stereoscopic image formats. +

+

The filters accept the following options: +

+
+
in
+

Set stereoscopic image format of input. +

+

Available values for input image formats are: +

+
sbsl
+

side by side parallel (left eye left, right eye right) +

+
+
sbsr
+

side by side crosseye (right eye left, left eye right) +

+
+
sbs2l
+

side by side parallel with half width resolution +(left eye left, right eye right) +

+
+
sbs2r
+

side by side crosseye with half width resolution +(right eye left, left eye right) +

+
+
abl
+

above-below (left eye above, right eye below) +

+
+
abr
+

above-below (right eye above, left eye below) +

+
+
ab2l
+

above-below with half height resolution +(left eye above, right eye below) +

+
+
ab2r
+

above-below with half height resolution +(right eye above, left eye below) +

+
+
al
+

alternating frames (left eye first, right eye second) +

+
+
ar
+

alternating frames (right eye first, left eye second) +

+

Default value is ‘sbsl’. +

+
+ +
+
out
+

Set stereoscopic image format of output. +

+

Available values for output image formats are all the input formats as well as: +

+
arbg
+

anaglyph red/blue gray +(red filter on left eye, blue filter on right eye) +

+
+
argg
+

anaglyph red/green gray +(red filter on left eye, green filter on right eye) +

+
+
arcg
+

anaglyph red/cyan gray +(red filter on left eye, cyan filter on right eye) +

+
+
arch
+

anaglyph red/cyan half colored +(red filter on left eye, cyan filter on right eye) +

+
+
arcc
+

anaglyph red/cyan color +(red filter on left eye, cyan filter on right eye) +

+
+
arcd
+

anaglyph red/cyan color optimized with the least squares projection of dubois +(red filter on left eye, cyan filter on right eye) +

+
+
agmg
+

anaglyph green/magenta gray +(green filter on left eye, magenta filter on right eye) +

+
+
agmh
+

anaglyph green/magenta half colored +(green filter on left eye, magenta filter on right eye) +

+
+
agmc
+

anaglyph green/magenta colored +(green filter on left eye, magenta filter on right eye) +

+
+
agmd
+

anaglyph green/magenta color optimized with the least squares projection of dubois +(green filter on left eye, magenta filter on right eye) +

+
+
aybg
+

anaglyph yellow/blue gray +(yellow filter on left eye, blue filter on right eye) +

+
+
aybh
+

anaglyph yellow/blue half colored +(yellow filter on left eye, blue filter on right eye) +

+
+
aybc
+

anaglyph yellow/blue colored +(yellow filter on left eye, blue filter on right eye) +

+
+
aybd
+

anaglyph yellow/blue color optimized with the least squares projection of dubois +(yellow filter on left eye, blue filter on right eye) +

+
+
irl
+

interleaved rows (left eye has top row, right eye starts on next row) +

+
+
irr
+

interleaved rows (right eye has top row, left eye starts on next row) +

+
+
ml
+

mono output (left eye only) +

+
+
mr
+

mono output (right eye only) +

+
+ +

Default value is ‘arcd’. +

+
+ + +

30.79.1 Examples

+ +
    +
  • +Convert input video from side by side parallel to anaglyph yellow/blue dubois: +
     
    stereo3d=sbsl:aybd
    +
    + +
  • +Convert input video from above bellow (left eye above, right eye below) to side by side crosseye. +
     
    stereo3d=abl:sbsr
    +
    +
+ + +

30.80 spp

+ +

Apply a simple postprocessing filter that compresses and decompresses the image +at several (or - in the case of ‘quality’ level 6 - all) shifts +and average the results. +

+

The filter accepts the following options: +

+
+
quality
+

Set quality. This option defines the number of levels for averaging. It accepts +an integer in the range 0-6. If set to 0, the filter will have no +effect. A value of 6 means the higher quality. For each increment of +that value the speed drops by a factor of approximately 2. Default value is +3. +

+
+
qp
+

Force a constant quantization parameter. If not set, the filter will use the QP +from the video stream (if available). +

+
+
mode
+

Set thresholding mode. Available modes are: +

+
+
hard
+

Set hard thresholding (default). +

+
soft
+

Set soft thresholding (better de-ringing effect, but likely blurrier). +

+
+ +
+
use_bframe_qp
+

Enable the use of the QP from the B-Frames if set to 1. Using this +option may cause flicker since the B-Frames have often larger QP. Default is +0 (not enabled). +

+
+ +

+

+

30.81 subtitles

+ +

Draw subtitles on top of input video using the libass library. +

+

To enable compilation of this filter you need to configure FFmpeg with +--enable-libass. This filter also requires a build with libavcodec and +libavformat to convert the passed subtitles file to ASS (Advanced Substation +Alpha) subtitles format. +

+

The filter accepts the following options: +

+
+
filename, f
+

Set the filename of the subtitle file to read. It must be specified. +

+
+
original_size
+

Specify the size of the original video, the video for which the ASS file +was composed. For the syntax of this option, check the "Video size" section in +the ffmpeg-utils manual. Due to a misdesign in ASS aspect ratio arithmetic, +this is necessary to correctly scale the fonts if the aspect ratio has been +changed. +

+
+
charenc
+

Set subtitles input character encoding. subtitles filter only. Only +useful if not UTF-8. +

+
+ +

If the first key is not specified, it is assumed that the first value +specifies the ‘filename’. +

+

For example, to render the file ‘sub.srt’ on top of the input +video, use the command: +

 
subtitles=sub.srt
+
+ +

which is equivalent to: +

 
subtitles=filename=sub.srt
+
+ + +

30.82 super2xsai

+ +

Scale the input by 2x and smooth using the Super2xSaI (Scale and +Interpolate) pixel art scaling algorithm. +

+

Useful for enlarging pixel art images without reducing sharpness. +

+ +

30.83 swapuv

+

Swap U & V plane. +

+ +

30.84 telecine

+ +

Apply telecine process to the video. +

+

This filter accepts the following options: +

+
+
first_field
+
+
top, t
+

top field first +

+
bottom, b
+

bottom field first +The default value is top. +

+
+ +
+
pattern
+

A string of numbers representing the pulldown pattern you wish to apply. +The default value is 23. +

+
+ +
 
Some typical patterns:
+
+NTSC output (30i):
+27.5p: 32222
+24p: 23 (classic)
+24p: 2332 (preferred)
+20p: 33
+18p: 334
+16p: 3444
+
+PAL output (25i):
+27.5p: 12222
+24p: 222222222223 ("Euro pulldown")
+16.67p: 33
+16p: 33333334
+
+ + +

30.85 thumbnail

+

Select the most representative frame in a given sequence of consecutive frames. +

+

The filter accepts the following options: +

+
+
n
+

Set the frames batch size to analyze; in a set of n frames, the filter +will pick one of them, and then handle the next batch of n frames until +the end. Default is 100. +

+
+ +

Since the filter keeps track of the whole frames sequence, a bigger n +value will result in a higher memory usage, so a high value is not recommended. +

+ +

30.85.1 Examples

+ +
    +
  • +Extract one picture each 50 frames: +
     
    thumbnail=50
    +
    + +
  • +Complete example of a thumbnail creation with ffmpeg: +
     
    ffmpeg -i in.avi -vf thumbnail,scale=300:200 -frames:v 1 out.png
    +
    +
+ + +

30.86 tile

+ +

Tile several successive frames together. +

+

The filter accepts the following options: +

+
+
layout
+

Set the grid size (i.e. the number of lines and columns). For the syntax of +this option, check the "Video size" section in the ffmpeg-utils manual. +

+
+
nb_frames
+

Set the maximum number of frames to render in the given area. It must be less +than or equal to wxh. The default value is 0, meaning all +the area will be used. +

+
+
margin
+

Set the outer border margin in pixels. +

+
+
padding
+

Set the inner border thickness (i.e. the number of pixels between frames). For +more advanced padding options (such as having different values for the edges), +refer to the pad video filter. +

+
+
color
+

Specify the color of the unused areaFor the syntax of this option, check the +"Color" section in the ffmpeg-utils manual. The default value of color +is "black". +

+
+ + +

30.86.1 Examples

+ +
    +
  • +Produce 8x8 PNG tiles of all keyframes (‘-skip_frame nokey’) in a movie: +
     
    ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png
    +
    +

    The ‘-vsync 0’ is necessary to prevent ffmpeg from +duplicating each output frame to accommodate the originally detected frame +rate. +

    +
  • +Display 5 pictures in an area of 3x2 frames, +with 7 pixels between them, and 2 pixels of initial margin, using +mixed flat and named options: +
     
    tile=3x2:nb_frames=5:padding=7:margin=2
    +
    +
+ + +

30.87 tinterlace

+ +

Perform various types of temporal field interlacing. +

+

Frames are counted starting from 1, so the first input frame is +considered odd. +

+

The filter accepts the following options: +

+
+
mode
+

Specify the mode of the interlacing. This option can also be specified +as a value alone. See below for a list of values for this option. +

+

Available values are: +

+
+
merge, 0
+

Move odd frames into the upper field, even into the lower field, +generating a double height frame at half frame rate. +

+
+
drop_odd, 1
+

Only output even frames, odd frames are dropped, generating a frame with +unchanged height at half frame rate. +

+
+
drop_even, 2
+

Only output odd frames, even frames are dropped, generating a frame with +unchanged height at half frame rate. +

+
+
pad, 3
+

Expand each frame to full height, but pad alternate lines with black, +generating a frame with double height at the same input frame rate. +

+
+
interleave_top, 4
+

Interleave the upper field from odd frames with the lower field from +even frames, generating a frame with unchanged height at half frame rate. +

+
+
interleave_bottom, 5
+

Interleave the lower field from odd frames with the upper field from +even frames, generating a frame with unchanged height at half frame rate. +

+
+
interlacex2, 6
+

Double frame rate with unchanged height. Frames are inserted each +containing the second temporal field from the previous input frame and +the first temporal field from the next input frame. This mode relies on +the top_field_first flag. Useful for interlaced video displays with no +field synchronisation. +

+
+ +

Numeric values are deprecated but are accepted for backward +compatibility reasons. +

+

Default mode is merge. +

+
+
flags
+

Specify flags influencing the filter process. +

+

Available value for flags is: +

+
+
low_pass_filter, vlfp
+

Enable vertical low-pass filtering in the filter. +Vertical low-pass filtering is required when creating an interlaced +destination from a progressive source which contains high-frequency +vertical detail. Filtering will reduce interlace ’twitter’ and Moire +patterning. +

+

Vertical low-pass filtering can only be enabled for ‘mode’ +interleave_top and interleave_bottom. +

+
+
+
+
+ + +

30.88 transpose

+ +

Transpose rows with columns in the input video and optionally flip it. +

+

It accepts the following parameters: +

+
+
dir
+

Specify the transposition direction. +

+

Can assume the following values: +

+
0, 4, cclock_flip
+

Rotate by 90 degrees counterclockwise and vertically flip (default), that is: +

 
L.R     L.l
+. . ->  . .
+l.r     R.r
+
+ +
+
1, 5, clock
+

Rotate by 90 degrees clockwise, that is: +

 
L.R     l.L
+. . ->  . .
+l.r     r.R
+
+ +
+
2, 6, cclock
+

Rotate by 90 degrees counterclockwise, that is: +

 
L.R     R.r
+. . ->  . .
+l.r     L.l
+
+ +
+
3, 7, clock_flip
+

Rotate by 90 degrees clockwise and vertically flip, that is: +

 
L.R     r.R
+. . ->  . .
+l.r     l.L
+
+
+
+ +

For values between 4-7, the transposition is only done if the input +video geometry is portrait and not landscape. These values are +deprecated, the passthrough option should be used instead. +

+

Numerical values are deprecated, and should be dropped in favor of +symbolic constants. +

+
+
passthrough
+

Do not apply the transposition if the input geometry matches the one +specified by the specified value. It accepts the following values: +

+
none
+

Always apply transposition. +

+
portrait
+

Preserve portrait geometry (when height >= width). +

+
landscape
+

Preserve landscape geometry (when width >= height). +

+
+ +

Default value is none. +

+
+ +

For example to rotate by 90 degrees clockwise and preserve portrait +layout: +

 
transpose=dir=1:passthrough=portrait
+
+ +

The command above can also be specified as: +

 
transpose=1:portrait
+
+ + +

30.89 trim

+

Trim the input so that the output contains one continuous subpart of the input. +

+

It accepts the following parameters: +

+
start
+

Specify the time of the start of the kept section, i.e. the frame with the +timestamp start will be the first frame in the output. +

+
+
end
+

Specify the time of the first frame that will be dropped, i.e. the frame +immediately preceding the one with the timestamp end will be the last +frame in the output. +

+
+
start_pts
+

This is the same as start, except this option sets the start timestamp +in timebase units instead of seconds. +

+
+
end_pts
+

This is the same as end, except this option sets the end timestamp +in timebase units instead of seconds. +

+
+
duration
+

The maximum duration of the output in seconds. +

+
+
start_frame
+

The number of the first frame that should be passed to the output. +

+
+
end_frame
+

The number of the first frame that should be dropped. +

+
+ +

start’, ‘end’, ‘duration’ are expressed as time +duration specifications, check the "Time duration" section in the +ffmpeg-utils manual. +

+

Note that the first two sets of the start/end options and the ‘duration’ +option look at the frame timestamp, while the _frame variants simply count the +frames that pass through the filter. Also note that this filter does not modify +the timestamps. If you wish for the output timestamps to start at zero, insert a +setpts filter after the trim filter. +

+

If multiple start or end options are set, this filter tries to be greedy and +keep all the frames that match at least one of the specified constraints. To keep +only the part that matches all the constraints at once, chain multiple trim +filters. +

+

The defaults are such that all the input is kept. So it is possible to set e.g. +just the end values to keep everything before the specified time. +

+

Examples: +

    +
  • +Drop everything except the second minute of input: +
     
    ffmpeg -i INPUT -vf trim=60:120
    +
    + +
  • +Keep only the first second: +
     
    ffmpeg -i INPUT -vf trim=duration=1
    +
    + +
+ + + +

30.90 unsharp

+ +

Sharpen or blur the input video. +

+

It accepts the following parameters: +

+
+
luma_msize_x, lx
+

Set the luma matrix horizontal size. It must be an odd integer between +3 and 63. The default value is 5. +

+
+
luma_msize_y, ly
+

Set the luma matrix vertical size. It must be an odd integer between 3 +and 63. The default value is 5. +

+
+
luma_amount, la
+

Set the luma effect strength. It must be a floating point number, reasonable +values lay between -1.5 and 1.5. +

+

Negative values will blur the input video, while positive values will +sharpen it, a value of zero will disable the effect. +

+

Default value is 1.0. +

+
+
chroma_msize_x, cx
+

Set the chroma matrix horizontal size. It must be an odd integer +between 3 and 63. The default value is 5. +

+
+
chroma_msize_y, cy
+

Set the chroma matrix vertical size. It must be an odd integer +between 3 and 63. The default value is 5. +

+
+
chroma_amount, ca
+

Set the chroma effect strength. It must be a floating point number, reasonable +values lay between -1.5 and 1.5. +

+

Negative values will blur the input video, while positive values will +sharpen it, a value of zero will disable the effect. +

+

Default value is 0.0. +

+
+
opencl
+

If set to 1, specify using OpenCL capabilities, only available if +FFmpeg was configured with --enable-opencl. Default value is 0. +

+
+
+ +

All parameters are optional and default to the equivalent of the +string ’5:5:1.0:5:5:0.0’. +

+ +

30.90.1 Examples

+ +
    +
  • +Apply strong luma sharpen effect: +
     
    unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5
    +
    + +
  • +Apply a strong blur of both luma and chroma parameters: +
     
    unsharp=7:7:-2:7:7:-2
    +
    +
+ +

+

+

30.91 vidstabdetect

+ +

Analyze video stabilization/deshaking. Perform pass 1 of 2, see +vidstabtransform for pass 2. +

+

This filter generates a file with relative translation and rotation +transform information about subsequent frames, which is then used by +the vidstabtransform filter. +

+

To enable compilation of this filter you need to configure FFmpeg with +--enable-libvidstab. +

+

This filter accepts the following options: +

+
+
result
+

Set the path to the file used to write the transforms information. +Default value is ‘transforms.trf’. +

+
+
shakiness
+

Set how shaky the video is and how quick the camera is. It accepts an +integer in the range 1-10, a value of 1 means little shakiness, a +value of 10 means strong shakiness. Default value is 5. +

+
+
accuracy
+

Set the accuracy of the detection process. It must be a value in the +range 1-15. A value of 1 means low accuracy, a value of 15 means high +accuracy. Default value is 15. +

+
+
stepsize
+

Set stepsize of the search process. The region around minimum is +scanned with 1 pixel resolution. Default value is 6. +

+
+
mincontrast
+

Set minimum contrast. Below this value a local measurement field is +discarded. Must be a floating point value in the range 0-1. Default +value is 0.3. +

+
+
tripod
+

Set reference frame number for tripod mode. +

+

If enabled, the motion of the frames is compared to a reference frame +in the filtered stream, identified by the specified number. The idea +is to compensate all movements in a more-or-less static scene and keep +the camera view absolutely still. +

+

If set to 0, it is disabled. The frames are counted starting from 1. +

+
+
show
+

Show fields and transforms in the resulting frames. It accepts an +integer in the range 0-2. Default value is 0, which disables any +visualization. +

+
+ + +

30.91.1 Examples

+ +
    +
  • +Use default values: +
     
    vidstabdetect
    +
    + +
  • +Analyze strongly shaky movie and put the results in file +‘mytransforms.trf’: +
     
    vidstabdetect=shakiness=10:accuracy=15:result="mytransforms.trf"
    +
    + +
  • +Visualize the result of internal transformations in the resulting +video: +
     
    vidstabdetect=show=1
    +
    + +
  • +Analyze a video with medium shakiness using ffmpeg: +
     
    ffmpeg -i input -vf vidstabdetect=shakiness=5:show=1 dummy.avi
    +
    +
+ +

+

+

30.92 vidstabtransform

+ +

Video stabilization/deshaking: pass 2 of 2, +see vidstabdetect for pass 1. +

+

Read a file with transform information for each frame and +apply/compensate them. Together with the vidstabdetect +filter this can be used to deshake videos. See also +http://public.hronopik.de/vid.stab. It is important to also use +the unsharp filter, see below. +

+

To enable compilation of this filter you need to configure FFmpeg with +--enable-libvidstab. +

+ +

30.92.1 Options

+ +
+
input
+

Set path to the file used to read the transforms. Default value is +‘transforms.trf’). +

+
+
smoothing
+

Set the number of frames (value*2 + 1) used for lowpass filtering the +camera movements. Default value is 10. +

+

For example a number of 10 means that 21 frames are used (10 in the +past and 10 in the future) to smoothen the motion in the video. A +larger values leads to a smoother video, but limits the acceleration +of the camera (pan/tilt movements). 0 is a special case where a +static camera is simulated. +

+
+
optalgo
+

Set the camera path optimization algorithm. +

+

Accepted values are: +

+
gauss
+

gaussian kernel low-pass filter on camera motion (default) +

+
avg
+

averaging on transformations +

+
+ +
+
maxshift
+

Set maximal number of pixels to translate frames. Default value is -1, +meaning no limit. +

+
+
maxangle
+

Set maximal angle in radians (degree*PI/180) to rotate frames. Default +value is -1, meaning no limit. +

+
+
crop
+

Specify how to deal with borders that may be visible due to movement +compensation. +

+

Available values are: +

+
keep
+

keep image information from previous frame (default) +

+
black
+

fill the border black +

+
+ +
+
invert
+

Invert transforms if set to 1. Default value is 0. +

+
+
relative
+

Consider transforms as relative to previsou frame if set to 1, +absolute if set to 0. Default value is 0. +

+
+
zoom
+

Set percentage to zoom. A positive value will result in a zoom-in +effect, a negative value in a zoom-out effect. Default value is 0 (no +zoom). +

+
+
optzoom
+

Set optimal zooming to avoid borders. +

+

Accepted values are: +

+
0
+

disabled +

+
1
+

optimal static zoom value is determined (only very strong movements +will lead to visible borders) (default) +

+
2
+

optimal adaptive zoom value is determined (no borders will be +visible), see ‘zoomspeed’ +

+
+ +

Note that the value given at zoom is added to the one calculated here. +

+
+
zoomspeed
+

Set percent to zoom maximally each frame (enabled when +‘optzoom’ is set to 2). Range is from 0 to 5, default value is +0.25. +

+
+
interpol
+

Specify type of interpolation. +

+

Available values are: +

+
no
+

no interpolation +

+
linear
+

linear only horizontal +

+
bilinear
+

linear in both directions (default) +

+
bicubic
+

cubic in both directions (slow) +

+
+ +
+
tripod
+

Enable virtual tripod mode if set to 1, which is equivalent to +relative=0:smoothing=0. Default value is 0. +

+

Use also tripod option of vidstabdetect. +

+
+
debug
+

Increase log verbosity if set to 1. Also the detected global motions +are written to the temporary file ‘global_motions.trf’. Default +value is 0. +

+
+ + +

30.92.2 Examples

+ +
    +
  • +Use ffmpeg for a typical stabilization with default values: +
     
    ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 inp_stabilized.mpeg
    +
    + +

    Note the use of the unsharp filter which is always recommended. +

    +
  • +Zoom in a bit more and load transform data from a given file: +
     
    vidstabtransform=zoom=5:input="mytransforms.trf"
    +
    + +
  • +Smoothen the video even more: +
     
    vidstabtransform=smoothing=30
    +
    +
+ + +

30.93 vflip

+ +

Flip the input video vertically. +

+

For example, to vertically flip a video with ffmpeg: +

 
ffmpeg -i in.avi -vf "vflip" out.avi
+
+ + +

30.94 vignette

+ +

Make or reverse a natural vignetting effect. +

+

The filter accepts the following options: +

+
+
angle, a
+

Set lens angle expression as a number of radians. +

+

The value is clipped in the [0,PI/2] range. +

+

Default value: "PI/5" +

+
+
x0
+
y0
+

Set center coordinates expressions. Respectively "w/2" and "h/2" +by default. +

+
+
mode
+

Set forward/backward mode. +

+

Available modes are: +

+
forward
+

The larger the distance from the central point, the darker the image becomes. +

+
+
backward
+

The larger the distance from the central point, the brighter the image becomes. +This can be used to reverse a vignette effect, though there is no automatic +detection to extract the lens ‘angle’ and other settings (yet). It can +also be used to create a burning effect. +

+
+ +

Default value is ‘forward’. +

+
+
eval
+

Set evaluation mode for the expressions (‘angle’, ‘x0’, ‘y0’). +

+

It accepts the following values: +

+
init
+

Evaluate expressions only once during the filter initialization. +

+
+
frame
+

Evaluate expressions for each incoming frame. This is way slower than the +‘init’ mode since it requires all the scalers to be re-computed, but it +allows advanced dynamic expressions. +

+
+ +

Default value is ‘init’. +

+
+
dither
+

Set dithering to reduce the circular banding effects. Default is 1 +(enabled). +

+
+
aspect
+

Set vignette aspect. This setting allows one to adjust the shape of the vignette. +Setting this value to the SAR of the input will make a rectangular vignetting +following the dimensions of the video. +

+

Default is 1/1. +

+
+ + +

30.94.1 Expressions

+ +

The ‘alpha’, ‘x0’ and ‘y0’ expressions can contain the +following parameters. +

+
+
w
+
h
+

input width and height +

+
+
n
+

the number of input frame, starting from 0 +

+
+
pts
+

the PTS (Presentation TimeStamp) time of the filtered video frame, expressed in +TB units, NAN if undefined +

+
+
r
+

frame rate of the input video, NAN if the input frame rate is unknown +

+
+
t
+

the PTS (Presentation TimeStamp) of the filtered video frame, +expressed in seconds, NAN if undefined +

+
+
tb
+

time base of the input video +

+
+ + + +

30.94.2 Examples

+ +
    +
  • +Apply simple strong vignetting effect: +
     
    vignette=PI/4
    +
    + +
  • +Make a flickering vignetting: +
     
    vignette='PI/4+random(1)*PI/50':eval=frame
    +
    + +
+ + +

30.95 w3fdif

+ +

Deinterlace the input video ("w3fdif" stands for "Weston 3 Field +Deinterlacing Filter"). +

+

Based on the process described by Martin Weston for BBC R&D, and +implemented based on the de-interlace algorithm written by Jim +Easterbrook for BBC R&D, the Weston 3 field deinterlacing filter +uses filter coefficients calculated by BBC R&D. +

+

There are two sets of filter coefficients, so called "simple": +and "complex". Which set of filter coefficients is used can +be set by passing an optional parameter: +

+
+
filter
+

Set the interlacing filter coefficients. Accepts one of the following values: +

+
+
simple
+

Simple filter coefficient set. +

+
complex
+

More-complex filter coefficient set. +

+
+

Default value is ‘complex’. +

+
+
deint
+

Specify which frames to deinterlace. Accept one of the following values: +

+
+
all
+

Deinterlace all frames, +

+
interlaced
+

Only deinterlace frames marked as interlaced. +

+
+ +

Default value is ‘all’. +

+
+ +

+

+

30.96 yadif

+ +

Deinterlace the input video ("yadif" means "yet another deinterlacing +filter"). +

+

It accepts the following parameters: +

+ +
+
mode
+

The interlacing mode to adopt. It accepts one of the following values: +

+
+
0, send_frame
+

Output one frame for each frame. +

+
1, send_field
+

Output one frame for each field. +

+
2, send_frame_nospatial
+

Like send_frame, but it skips the spatial interlacing check. +

+
3, send_field_nospatial
+

Like send_field, but it skips the spatial interlacing check. +

+
+ +

The default value is send_frame. +

+
+
parity
+

The picture field parity assumed for the input interlaced video. It accepts one +of the following values: +

+
+
0, tff
+

Assume the top field is first. +

+
1, bff
+

Assume the bottom field is first. +

+
-1, auto
+

Enable automatic detection of field parity. +

+
+ +

The default value is auto. +If the interlacing is unknown or the decoder does not export this information, +top field first will be assumed. +

+
+
deint
+

Specify which frames to deinterlace. Accept one of the following +values: +

+
+
0, all
+

Deinterlace all frames. +

+
1, interlaced
+

Only deinterlace frames marked as interlaced. +

+
+ +

The default value is all. +

+
+ + + +

31. Video Sources

+ +

Below is a description of the currently available video sources. +

+ +

31.1 buffer

+ +

Buffer video frames, and make them available to the filter chain. +

+

This source is mainly intended for a programmatic use, in particular +through the interface defined in ‘libavfilter/vsrc_buffer.h’. +

+

It accepts the following parameters: +

+
+
video_size
+

Specify the size (width and height) of the buffered video frames. For the +syntax of this option, check the "Video size" section in the ffmpeg-utils +manual. +

+
+
width
+

The input video width. +

+
+
height
+

The input video height. +

+
+
pix_fmt
+

A string representing the pixel format of the buffered video frames. +It may be a number corresponding to a pixel format, or a pixel format +name. +

+
+
time_base
+

Specify the timebase assumed by the timestamps of the buffered frames. +

+
+
frame_rate
+

Specify the frame rate expected for the video stream. +

+
+
pixel_aspect, sar
+

The sample (pixel) aspect ratio of the input video. +

+
+
sws_param
+

Specify the optional parameters to be used for the scale filter which +is automatically inserted when an input change is detected in the +input size or format. +

+
+ +

For example: +

 
buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1
+
+ +

will instruct the source to accept video frames with size 320x240 and +with format "yuv410p", assuming 1/24 as the timestamps timebase and +square pixels (1:1 sample aspect ratio). +Since the pixel format with name "yuv410p" corresponds to the number 6 +(check the enum AVPixelFormat definition in ‘libavutil/pixfmt.h’), +this example corresponds to: +

 
buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1
+
+ +

Alternatively, the options can be specified as a flat string, but this +syntax is deprecated: +

+

width:height:pix_fmt:time_base.num:time_base.den:pixel_aspect.num:pixel_aspect.den[:sws_param] +

+ +

31.2 cellauto

+ +

Create a pattern generated by an elementary cellular automaton. +

+

The initial state of the cellular automaton can be defined through the +‘filename’, and ‘pattern’ options. If such options are +not specified an initial state is created randomly. +

+

At each new frame a new row in the video is filled with the result of +the cellular automaton next generation. The behavior when the whole +frame is filled is defined by the ‘scroll’ option. +

+

This source accepts the following options: +

+
+
filename, f
+

Read the initial cellular automaton state, i.e. the starting row, from +the specified file. +In the file, each non-whitespace character is considered an alive +cell, a newline will terminate the row, and further characters in the +file will be ignored. +

+
+
pattern, p
+

Read the initial cellular automaton state, i.e. the starting row, from +the specified string. +

+

Each non-whitespace character in the string is considered an alive +cell, a newline will terminate the row, and further characters in the +string will be ignored. +

+
+
rate, r
+

Set the video rate, that is the number of frames generated per second. +Default is 25. +

+
+
random_fill_ratio, ratio
+

Set the random fill ratio for the initial cellular automaton row. It +is a floating point number value ranging from 0 to 1, defaults to +1/PHI. +

+

This option is ignored when a file or a pattern is specified. +

+
+
random_seed, seed
+

Set the seed for filling randomly the initial row, must be an integer +included between 0 and UINT32_MAX. If not specified, or if explicitly +set to -1, the filter will try to use a good random seed on a best +effort basis. +

+
+
rule
+

Set the cellular automaton rule, it is a number ranging from 0 to 255. +Default value is 110. +

+
+
size, s
+

Set the size of the output video. For the syntax of this option, check +the "Video size" section in the ffmpeg-utils manual. +

+

If ‘filename’ or ‘pattern’ is specified, the size is set +by default to the width of the specified initial state row, and the +height is set to width * PHI. +

+

If ‘size’ is set, it must contain the width of the specified +pattern string, and the specified pattern will be centered in the +larger row. +

+

If a filename or a pattern string is not specified, the size value +defaults to "320x518" (used for a randomly generated initial state). +

+
+
scroll
+

If set to 1, scroll the output upward when all the rows in the output +have been already filled. If set to 0, the new generated row will be +written over the top row just after the bottom row is filled. +Defaults to 1. +

+
+
start_full, full
+

If set to 1, completely fill the output with generated rows before +outputting the first frame. +This is the default behavior, for disabling set the value to 0. +

+
+
stitch
+

If set to 1, stitch the left and right row edges together. +This is the default behavior, for disabling set the value to 0. +

+
+ + +

31.2.1 Examples

+ +
    +
  • +Read the initial state from ‘pattern’, and specify an output of +size 200x400. +
     
    cellauto=f=pattern:s=200x400
    +
    + +
  • +Generate a random initial row with a width of 200 cells, with a fill +ratio of 2/3: +
     
    cellauto=ratio=2/3:s=200x200
    +
    + +
  • +Create a pattern generated by rule 18 starting by a single alive cell +centered on an initial row with width 100: +
     
    cellauto=p=@:s=100x400:full=0:rule=18
    +
    + +
  • +Specify a more elaborated initial pattern: +
     
    cellauto=p='@@ @ @@':s=100x400:full=0:rule=18
    +
    + +
+ + +

31.3 mandelbrot

+ +

Generate a Mandelbrot set fractal, and progressively zoom towards the +point specified with start_x and start_y. +

+

This source accepts the following options: +

+
+
end_pts
+

Set the terminal pts value. Default value is 400. +

+
+
end_scale
+

Set the terminal scale value. +Must be a floating point value. Default value is 0.3. +

+
+
inner
+

Set the inner coloring mode, that is the algorithm used to draw the +Mandelbrot fractal internal region. +

+

It shall assume one of the following values: +

+
black
+

Set black mode. +

+
convergence
+

Show time until convergence. +

+
mincol
+

Set color based on point closest to the origin of the iterations. +

+
period
+

Set period mode. +

+
+ +

Default value is mincol. +

+
+
bailout
+

Set the bailout value. Default value is 10.0. +

+
+
maxiter
+

Set the maximum of iterations performed by the rendering +algorithm. Default value is 7189. +

+
+
outer
+

Set outer coloring mode. +It shall assume one of following values: +

+
iteration_count
+

Set iteration cound mode. +

+
normalized_iteration_count
+

set normalized iteration count mode. +

+
+

Default value is normalized_iteration_count. +

+
+
rate, r
+

Set frame rate, expressed as number of frames per second. Default +value is "25". +

+
+
size, s
+

Set frame size. For the syntax of this option, check the "Video +size" section in the ffmpeg-utils manual. Default value is "640x480". +

+
+
start_scale
+

Set the initial scale value. Default value is 3.0. +

+
+
start_x
+

Set the initial x position. Must be a floating point value between +-100 and 100. Default value is -0.743643887037158704752191506114774. +

+
+
start_y
+

Set the initial y position. Must be a floating point value between +-100 and 100. Default value is -0.131825904205311970493132056385139. +

+
+ + +

31.4 mptestsrc

+ +

Generate various test patterns, as generated by the MPlayer test filter. +

+

The size of the generated video is fixed, and is 256x256. +This source is useful in particular for testing encoding features. +

+

This source accepts the following options: +

+
+
rate, r
+

Specify the frame rate of the sourced video, as the number of frames +generated per second. It has to be a string in the format +frame_rate_num/frame_rate_den, an integer number, a floating point +number or a valid video frame rate abbreviation. The default value is +"25". +

+
+
duration, d
+

Set the video duration of the sourced video. The accepted syntax is: +

 
[-]HH:MM:SS[.m...]
+[-]S+[.m...]
+
+

See also the function av_parse_time(). +

+

If not specified, or the expressed duration is negative, the video is +supposed to be generated forever. +

+
+
test, t
+
+

Set the number or the name of the test to perform. Supported tests are: +

+
dc_luma
+
dc_chroma
+
freq_luma
+
freq_chroma
+
amp_luma
+
amp_chroma
+
cbp
+
mv
+
ring1
+
ring2
+
all
+
+ +

Default value is "all", which will cycle through the list of all tests. +

+
+ +

Some examples: +

 
testsrc=t=dc_luma
+
+ +

will generate a "dc_luma" test pattern. +

+ +

31.5 frei0r_src

+ +

Provide a frei0r source. +

+

To enable compilation of this filter you need to install the frei0r +header and configure FFmpeg with --enable-frei0r. +

+

This source accepts the following parameters: +

+
+
size
+

The size of the video to generate. For the syntax of this option, check the +"Video size" section in the ffmpeg-utils manual. +

+
+
framerate
+

The framerate of the generated video. It may be a string of the form +num/den or a frame rate abbreviation. +

+
+
filter_name
+

The name to the frei0r source to load. For more information regarding frei0r and +how to set the parameters, read the frei0r section in the video filters +documentation. +

+
+
filter_params
+

A ’|’-separated list of parameters to pass to the frei0r source. +

+
+
+ +

For example, to generate a frei0r partik0l source with size 200x200 +and frame rate 10 which is overlayed on the overlay filter main input: +

 
frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay
+
+ + +

31.6 life

+ +

Generate a life pattern. +

+

This source is based on a generalization of John Conway’s life game. +

+

The sourced input represents a life grid, each pixel represents a cell +which can be in one of two possible states, alive or dead. Every cell +interacts with its eight neighbours, which are the cells that are +horizontally, vertically, or diagonally adjacent. +

+

At each interaction the grid evolves according to the adopted rule, +which specifies the number of neighbor alive cells which will make a +cell stay alive or born. The ‘rule’ option allows one to specify +the rule to adopt. +

+

This source accepts the following options: +

+
+
filename, f
+

Set the file from which to read the initial grid state. In the file, +each non-whitespace character is considered an alive cell, and newline +is used to delimit the end of each row. +

+

If this option is not specified, the initial grid is generated +randomly. +

+
+
rate, r
+

Set the video rate, that is the number of frames generated per second. +Default is 25. +

+
+
random_fill_ratio, ratio
+

Set the random fill ratio for the initial random grid. It is a +floating point number value ranging from 0 to 1, defaults to 1/PHI. +It is ignored when a file is specified. +

+
+
random_seed, seed
+

Set the seed for filling the initial random grid, must be an integer +included between 0 and UINT32_MAX. If not specified, or if explicitly +set to -1, the filter will try to use a good random seed on a best +effort basis. +

+
+
rule
+

Set the life rule. +

+

A rule can be specified with a code of the kind "SNS/BNB", +where NS and NB are sequences of numbers in the range 0-8, +NS specifies the number of alive neighbor cells which make a +live cell stay alive, and NB the number of alive neighbor cells +which make a dead cell to become alive (i.e. to "born"). +"s" and "b" can be used in place of "S" and "B", respectively. +

+

Alternatively a rule can be specified by an 18-bits integer. The 9 +high order bits are used to encode the next cell state if it is alive +for each number of neighbor alive cells, the low order bits specify +the rule for "borning" new cells. Higher order bits encode for an +higher number of neighbor cells. +For example the number 6153 = (12<<9)+9 specifies a stay alive +rule of 12 and a born rule of 9, which corresponds to "S23/B03". +

+

Default value is "S23/B3", which is the original Conway’s game of life +rule, and will keep a cell alive if it has 2 or 3 neighbor alive +cells, and will born a new cell if there are three alive cells around +a dead cell. +

+
+
size, s
+

Set the size of the output video. For the syntax of this option, check the +"Video size" section in the ffmpeg-utils manual. +

+

If ‘filename’ is specified, the size is set by default to the +same size of the input file. If ‘size’ is set, it must contain +the size specified in the input file, and the initial grid defined in +that file is centered in the larger resulting area. +

+

If a filename is not specified, the size value defaults to "320x240" +(used for a randomly generated initial grid). +

+
+
stitch
+

If set to 1, stitch the left and right grid edges together, and the +top and bottom edges also. Defaults to 1. +

+
+
mold
+

Set cell mold speed. If set, a dead cell will go from ‘death_color’ to +‘mold_color’ with a step of ‘mold’. ‘mold’ can have a +value from 0 to 255. +

+
+
life_color
+

Set the color of living (or new born) cells. +

+
+
death_color
+

Set the color of dead cells. If ‘mold’ is set, this is the first color +used to represent a dead cell. +

+
+
mold_color
+

Set mold color, for definitely dead and moldy cells. +

+

For the syntax of these 3 color options, check the "Color" section in the +ffmpeg-utils manual. +

+
+ + +

31.6.1 Examples

+ +
    +
  • +Read a grid from ‘pattern’, and center it on a grid of size +300x300 pixels: +
     
    life=f=pattern:s=300x300
    +
    + +
  • +Generate a random grid of size 200x200, with a fill ratio of 2/3: +
     
    life=ratio=2/3:s=200x200
    +
    + +
  • +Specify a custom rule for evolving a randomly generated grid: +
     
    life=rule=S14/B34
    +
    + +
  • +Full example with slow death effect (mold) using ffplay: +
     
    ffplay -f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16
    +
    +
+ +

+ + + + + + +

+

31.7 color, haldclutsrc, nullsrc, rgbtestsrc, smptebars, smptehdbars, testsrc

+ +

The color source provides an uniformly colored input. +

+

The haldclutsrc source provides an identity Hald CLUT. See also +haldclut filter. +

+

The nullsrc source returns unprocessed video frames. It is +mainly useful to be employed in analysis / debugging tools, or as the +source for filters which ignore the input data. +

+

The rgbtestsrc source generates an RGB test pattern useful for +detecting RGB vs BGR issues. You should see a red, green and blue +stripe from top to bottom. +

+

The smptebars source generates a color bars pattern, based on +the SMPTE Engineering Guideline EG 1-1990. +

+

The smptehdbars source generates a color bars pattern, based on +the SMPTE RP 219-2002. +

+

The testsrc source generates a test video pattern, showing a +color pattern, a scrolling gradient and a timestamp. This is mainly +intended for testing purposes. +

+

The sources accept the following parameters: +

+
+
color, c
+

Specify the color of the source, only available in the color +source. For the syntax of this option, check the "Color" section in the +ffmpeg-utils manual. +

+
+
level
+

Specify the level of the Hald CLUT, only available in the haldclutsrc +source. A level of N generates a picture of N*N*N by N*N*N +pixels to be used as identity matrix for 3D lookup tables. Each component is +coded on a 1/(N*N) scale. +

+
+
size, s
+

Specify the size of the sourced video. For the syntax of this option, check the +"Video size" section in the ffmpeg-utils manual. The default value is +"320x240". +

+

This option is not available with the haldclutsrc filter. +

+
+
rate, r
+

Specify the frame rate of the sourced video, as the number of frames +generated per second. It has to be a string in the format +frame_rate_num/frame_rate_den, an integer number, a floating point +number or a valid video frame rate abbreviation. The default value is +"25". +

+
+
sar
+

Set the sample aspect ratio of the sourced video. +

+
+
duration, d
+

Set the video duration of the sourced video. The accepted syntax is: +

 
[-]HH[:MM[:SS[.m...]]]
+[-]S+[.m...]
+
+

Also see the the av_parse_time() function. +

+

If not specified, or the expressed duration is negative, the video is +supposed to be generated forever. +

+
+
decimals, n
+

Set the number of decimals to show in the timestamp, only available in the +testsrc source. +

+

The displayed timestamp value will correspond to the original +timestamp value multiplied by the power of 10 of the specified +value. Default value is 0. +

+
+ +

For example the following: +

 
testsrc=duration=5.3:size=qcif:rate=10
+
+ +

will generate a video with a duration of 5.3 seconds, with size +176x144 and a frame rate of 10 frames per second. +

+

The following graph description will generate a red source +with an opacity of 0.2, with size "qcif" and a frame rate of 10 +frames per second. +

 
color=c=red@0.2:s=qcif:r=10
+
+ +

If the input content is to be ignored, nullsrc can be used. The +following command generates noise in the luminance plane by employing +the geq filter: +

 
nullsrc=s=256x256, geq=random(1)*255:128:128
+
+ + +

31.7.1 Commands

+ +

The color source supports the following commands: +

+
+
c, color
+

Set the color of the created image. Accepts the same syntax of the +corresponding ‘color’ option. +

+
+ + + +

32. Video Sinks

+ +

Below is a description of the currently available video sinks. +

+ +

32.1 buffersink

+ +

Buffer video frames, and make them available to the end of the filter +graph. +

+

This sink is mainly intended for programmatic use, in particular +through the interface defined in ‘libavfilter/buffersink.h’ +or the options system. +

+

It accepts a pointer to an AVBufferSinkContext structure, which +defines the incoming buffers’ formats, to be passed as the opaque +parameter to avfilter_init_filter for initialization. +

+ +

32.2 nullsink

+ +

Null video sink: do absolutely nothing with the input video. It is +mainly useful as a template and for use in analysis / debugging +tools. +

+ + +

33. Multimedia Filters

+ +

Below is a description of the currently available multimedia filters. +

+ +

33.1 avectorscope

+ +

Convert input audio to a video output, representing the audio vector +scope. +

+

The filter is used to measure the difference between channels of stereo +audio stream. A monoaural signal, consisting of identical left and right +signal, results in straight vertical line. Any stereo separation is visible +as a deviation from this line, creating a Lissajous figure. +If the straight (or deviation from it) but horizontal line appears this +indicates that the left and right channels are out of phase. +

+

The filter accepts the following options: +

+
+
mode, m
+

Set the vectorscope mode. +

+

Available values are: +

+
lissajous
+

Lissajous rotated by 45 degrees. +

+
+
lissajous_xy
+

Same as above but not rotated. +

+
+ +

Default value is ‘lissajous’. +

+
+
size, s
+

Set the video size for the output. For the syntax of this option, check the "Video size" +section in the ffmpeg-utils manual. Default value is 400x400. +

+
+
rate, r
+

Set the output frame rate. Default value is 25. +

+
+
rc
+
gc
+
bc
+

Specify the red, green and blue contrast. Default values are 40, 160 and 80. +Allowed range is [0, 255]. +

+
+
rf
+
gf
+
bf
+

Specify the red, green and blue fade. Default values are 15, 10 and 5. +Allowed range is [0, 255]. +

+
+
zoom
+

Set the zoom factor. Default value is 1. Allowed range is [1, 10]. +

+
+ + +

33.1.1 Examples

+ +
    +
  • +Complete example using ffplay: +
     
    ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
    +             [a] avectorscope=zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7 [out0]'
    +
    +
+ + +

33.2 concat

+ +

Concatenate audio and video streams, joining them together one after the +other. +

+

The filter works on segments of synchronized video and audio streams. All +segments must have the same number of streams of each type, and that will +also be the number of streams at output. +

+

The filter accepts the following options: +

+
+
n
+

Set the number of segments. Default is 2. +

+
+
v
+

Set the number of output video streams, that is also the number of video +streams in each segment. Default is 1. +

+
+
a
+

Set the number of output audio streams, that is also the number of video +streams in each segment. Default is 0. +

+
+
unsafe
+

Activate unsafe mode: do not fail if segments have a different format. +

+
+
+ +

The filter has v+a outputs: first v video outputs, then +a audio outputs. +

+

There are nx(v+a) inputs: first the inputs for the first +segment, in the same order as the outputs, then the inputs for the second +segment, etc. +

+

Related streams do not always have exactly the same duration, for various +reasons including codec frame size or sloppy authoring. For that reason, +related synchronized streams (e.g. a video and its audio track) should be +concatenated at once. The concat filter will use the duration of the longest +stream in each segment (except the last one), and if necessary pad shorter +audio streams with silence. +

+

For this filter to work correctly, all segments must start at timestamp 0. +

+

All corresponding streams must have the same parameters in all segments; the +filtering system will automatically select a common pixel format for video +streams, and a common sample format, sample rate and channel layout for +audio streams, but other settings, such as resolution, must be converted +explicitly by the user. +

+

Different frame rates are acceptable but will result in variable frame rate +at output; be sure to configure the output file to handle it. +

+ +

33.2.1 Examples

+ +
    +
  • +Concatenate an opening, an episode and an ending, all in bilingual version +(video in stream 0, audio in streams 1 and 2): +
     
    ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv -filter_complex \
    +  '[0:0] [0:1] [0:2] [1:0] [1:1] [1:2] [2:0] [2:1] [2:2]
    +   concat=n=3:v=1:a=2 [v] [a1] [a2]' \
    +  -map '[v]' -map '[a1]' -map '[a2]' output.mkv
    +
    + +
  • +Concatenate two parts, handling audio and video separately, using the +(a)movie sources, and adjusting the resolution: +
     
    movie=part1.mp4, scale=512:288 [v1] ; amovie=part1.mp4 [a1] ;
    +movie=part2.mp4, scale=512:288 [v2] ; amovie=part2.mp4 [a2] ;
    +[v1] [v2] concat [outv] ; [a1] [a2] concat=v=0:a=1 [outa]
    +
    +

    Note that a desync will happen at the stitch if the audio and video streams +do not have exactly the same duration in the first file. +

    +
+ + +

33.3 ebur128

+ +

EBU R128 scanner filter. This filter takes an audio stream as input and outputs +it unchanged. By default, it logs a message at a frequency of 10Hz with the +Momentary loudness (identified by M), Short-term loudness (S), +Integrated loudness (I) and Loudness Range (LRA). +

+

The filter also has a video output (see the video option) with a real +time graph to observe the loudness evolution. The graphic contains the logged +message mentioned above, so it is not printed anymore when this option is set, +unless the verbose logging is set. The main graphing area contains the +short-term loudness (3 seconds of analysis), and the gauge on the right is for +the momentary loudness (400 milliseconds). +

+

More information about the Loudness Recommendation EBU R128 on +http://tech.ebu.ch/loudness. +

+

The filter accepts the following options: +

+
+
video
+

Activate the video output. The audio stream is passed unchanged whether this +option is set or no. The video stream will be the first output stream if +activated. Default is 0. +

+
+
size
+

Set the video size. This option is for video only. For the syntax of this +option, check the "Video size" section in the ffmpeg-utils manual. Default +and minimum resolution is 640x480. +

+
+
meter
+

Set the EBU scale meter. Default is 9. Common values are 9 and +18, respectively for EBU scale meter +9 and EBU scale meter +18. Any +other integer value between this range is allowed. +

+
+
metadata
+

Set metadata injection. If set to 1, the audio input will be segmented +into 100ms output frames, each of them containing various loudness information +in metadata. All the metadata keys are prefixed with lavfi.r128.. +

+

Default is 0. +

+
+
framelog
+

Force the frame logging level. +

+

Available values are: +

+
info
+

information logging level +

+
verbose
+

verbose logging level +

+
+ +

By default, the logging level is set to info. If the ‘video’ or +the ‘metadata’ options are set, it switches to verbose. +

+
+
peak
+

Set peak mode(s). +

+

Available modes can be cumulated (the option is a flag type). Possible +values are: +

+
none
+

Disable any peak mode (default). +

+
sample
+

Enable sample-peak mode. +

+

Simple peak mode looking for the higher sample value. It logs a message +for sample-peak (identified by SPK). +

+
true
+

Enable true-peak mode. +

+

If enabled, the peak lookup is done on an over-sampled version of the input +stream for better peak accuracy. It logs a message for true-peak. +(identified by TPK) and true-peak per frame (identified by FTPK). +This mode requires a build with libswresample. +

+
+ +
+
+ + +

33.3.1 Examples

+ +
    +
  • +Real-time graph using ffplay, with a EBU scale meter +18: +
     
    ffplay -f lavfi -i "amovie=input.mp3,ebur128=video=1:meter=18 [out0][out1]"
    +
    + +
  • +Run an analysis with ffmpeg: +
     
    ffmpeg -nostats -i input.mp3 -filter_complex ebur128 -f null -
    +
    +
+ + +

33.4 interleave, ainterleave

+ +

Temporally interleave frames from several inputs. +

+

interleave works with video inputs, ainterleave with audio. +

+

These filters read frames from several inputs and send the oldest +queued frame to the output. +

+

Input streams must have a well defined, monotonically increasing frame +timestamp values. +

+

In order to submit one frame to output, these filters need to enqueue +at least one frame for each input, so they cannot work in case one +input is not yet terminated and will not receive incoming frames. +

+

For example consider the case when one input is a select filter +which always drop input frames. The interleave filter will keep +reading from that input, but it will never be able to send new frames +to output until the input will send an end-of-stream signal. +

+

Also, depending on inputs synchronization, the filters will drop +frames in case one input receives more frames than the other ones, and +the queue is already filled. +

+

These filters accept the following options: +

+
+
nb_inputs, n
+

Set the number of different inputs, it is 2 by default. +

+
+ + +

33.4.1 Examples

+ +
    +
  • +Interleave frames belonging to different streams using ffmpeg: +
     
    ffmpeg -i bambi.avi -i pr0n.mkv -filter_complex "[0:v][1:v] interleave" out.avi
    +
    + +
  • +Add flickering blur effect: +
     
    select='if(gt(random(0), 0.2), 1, 2)':n=2 [tmp], boxblur=2:2, [tmp] interleave
    +
    +
+ + +

33.5 perms, aperms

+ +

Set read/write permissions for the output frames. +

+

These filters are mainly aimed at developers to test direct path in the +following filter in the filtergraph. +

+

The filters accept the following options: +

+
+
mode
+

Select the permissions mode. +

+

It accepts the following values: +

+
none
+

Do nothing. This is the default. +

+
ro
+

Set all the output frames read-only. +

+
rw
+

Set all the output frames directly writable. +

+
toggle
+

Make the frame read-only if writable, and writable if read-only. +

+
random
+

Set each output frame read-only or writable randomly. +

+
+ +
+
seed
+

Set the seed for the random mode, must be an integer included between +0 and UINT32_MAX. If not specified, or if explicitly set to +-1, the filter will try to use a good random seed on a best effort +basis. +

+
+ +

Note: in case of auto-inserted filter between the permission filter and the +following one, the permission might not be received as expected in that +following filter. Inserting a format or aformat filter before the +perms/aperms filter can avoid this problem. +

+ +

33.6 select, aselect

+ +

Select frames to pass in output. +

+

This filter accepts the following options: +

+
+
expr, e
+

Set expression, which is evaluated for each input frame. +

+

If the expression is evaluated to zero, the frame is discarded. +

+

If the evaluation result is negative or NaN, the frame is sent to the +first output; otherwise it is sent to the output with index +ceil(val)-1, assuming that the input index starts from 0. +

+

For example a value of 1.2 corresponds to the output with index +ceil(1.2)-1 = 2-1 = 1, that is the second output. +

+
+
outputs, n
+

Set the number of outputs. The output to which to send the selected +frame is based on the result of the evaluation. Default value is 1. +

+
+ +

The expression can contain the following constants: +

+
+
n
+

The (sequential) number of the filtered frame, starting from 0. +

+
+
selected_n
+

The (sequential) number of the selected frame, starting from 0. +

+
+
prev_selected_n
+

The sequential number of the last selected frame. It’s NAN if undefined. +

+
+
TB
+

The timebase of the input timestamps. +

+
+
pts
+

The PTS (Presentation TimeStamp) of the filtered video frame, +expressed in TB units. It’s NAN if undefined. +

+
+
t
+

The PTS of the filtered video frame, +expressed in seconds. It’s NAN if undefined. +

+
+
prev_pts
+

The PTS of the previously filtered video frame. It’s NAN if undefined. +

+
+
prev_selected_pts
+

The PTS of the last previously filtered video frame. It’s NAN if undefined. +

+
+
prev_selected_t
+

The PTS of the last previously selected video frame. It’s NAN if undefined. +

+
+
start_pts
+

The PTS of the first video frame in the video. It’s NAN if undefined. +

+
+
start_t
+

The time of the first video frame in the video. It’s NAN if undefined. +

+
+
pict_type (video only)
+

The type of the filtered frame. It can assume one of the following +values: +

+
I
+
P
+
B
+
S
+
SI
+
SP
+
BI
+
+ +
+
interlace_type (video only)
+

The frame interlace type. It can assume one of the following values: +

+
PROGRESSIVE
+

The frame is progressive (not interlaced). +

+
TOPFIRST
+

The frame is top-field-first. +

+
BOTTOMFIRST
+

The frame is bottom-field-first. +

+
+ +
+
consumed_sample_n (audio only)
+

the number of selected samples before the current frame +

+
+
samples_n (audio only)
+

the number of samples in the current frame +

+
+
sample_rate (audio only)
+

the input sample rate +

+
+
key
+

This is 1 if the filtered frame is a key-frame, 0 otherwise. +

+
+
pos
+

the position in the file of the filtered frame, -1 if the information +is not available (e.g. for synthetic video) +

+
+
scene (video only)
+

value between 0 and 1 to indicate a new scene; a low value reflects a low +probability for the current frame to introduce a new scene, while a higher +value means the current frame is more likely to be one (see the example below) +

+
+
+ +

The default value of the select expression is "1". +

+ +

33.6.1 Examples

+ +
    +
  • +Select all frames in input: +
     
    select
    +
    + +

    The example above is the same as: +

     
    select=1
    +
    + +
  • +Skip all frames: +
     
    select=0
    +
    + +
  • +Select only I-frames: +
     
    select='eq(pict_type\,I)'
    +
    + +
  • +Select one frame every 100: +
     
    select='not(mod(n\,100))'
    +
    + +
  • +Select only frames contained in the 10-20 time interval: +
     
    select=between(t\,10\,20)
    +
    + +
  • +Select only I frames contained in the 10-20 time interval: +
     
    select=between(t\,10\,20)*eq(pict_type\,I)
    +
    + +
  • +Select frames with a minimum distance of 10 seconds: +
     
    select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)'
    +
    + +
  • +Use aselect to select only audio frames with samples number > 100: +
     
    aselect='gt(samples_n\,100)'
    +
    + +
  • +Create a mosaic of the first scenes: +
     
    ffmpeg -i video.avi -vf select='gt(scene\,0.4)',scale=160:120,tile -frames:v 1 preview.png
    +
    + +

    Comparing scene against a value between 0.3 and 0.5 is generally a sane +choice. +

    +
  • +Send even and odd frames to separate outputs, and compose them: +
     
    select=n=2:e='mod(n, 2)+1' [odd][even]; [odd] pad=h=2*ih [tmp]; [tmp][even] overlay=y=h
    +
    +
+ + +

33.7 sendcmd, asendcmd

+ +

Send commands to filters in the filtergraph. +

+

These filters read commands to be sent to other filters in the +filtergraph. +

+

sendcmd must be inserted between two video filters, +asendcmd must be inserted between two audio filters, but apart +from that they act the same way. +

+

The specification of commands can be provided in the filter arguments +with the commands option, or in a file specified by the +filename option. +

+

These filters accept the following options: +

+
commands, c
+

Set the commands to be read and sent to the other filters. +

+
filename, f
+

Set the filename of the commands to be read and sent to the other +filters. +

+
+ + +

33.7.1 Commands syntax

+ +

A commands description consists of a sequence of interval +specifications, comprising a list of commands to be executed when a +particular event related to that interval occurs. The occurring event +is typically the current frame time entering or leaving a given time +interval. +

+

An interval is specified by the following syntax: +

 
START[-END] COMMANDS;
+
+ +

The time interval is specified by the START and END times. +END is optional and defaults to the maximum time. +

+

The current frame time is considered within the specified interval if +it is included in the interval [START, END), that is when +the time is greater or equal to START and is lesser than +END. +

+

COMMANDS consists of a sequence of one or more command +specifications, separated by ",", relating to that interval. The +syntax of a command specification is given by: +

 
[FLAGS] TARGET COMMAND ARG
+
+ +

FLAGS is optional and specifies the type of events relating to +the time interval which enable sending the specified command, and must +be a non-null sequence of identifier flags separated by "+" or "|" and +enclosed between "[" and "]". +

+

The following flags are recognized: +

+
enter
+

The command is sent when the current frame timestamp enters the +specified interval. In other words, the command is sent when the +previous frame timestamp was not in the given interval, and the +current is. +

+
+
leave
+

The command is sent when the current frame timestamp leaves the +specified interval. In other words, the command is sent when the +previous frame timestamp was in the given interval, and the +current is not. +

+
+ +

If FLAGS is not specified, a default value of [enter] is +assumed. +

+

TARGET specifies the target of the command, usually the name of +the filter class or a specific filter instance name. +

+

COMMAND specifies the name of the command for the target filter. +

+

ARG is optional and specifies the optional list of argument for +the given COMMAND. +

+

Between one interval specification and another, whitespaces, or +sequences of characters starting with # until the end of line, +are ignored and can be used to annotate comments. +

+

A simplified BNF description of the commands specification syntax +follows: +

 
COMMAND_FLAG  ::= "enter" | "leave"
+COMMAND_FLAGS ::= COMMAND_FLAG [(+|"|")COMMAND_FLAG]
+COMMAND       ::= ["[" COMMAND_FLAGS "]"] TARGET COMMAND [ARG]
+COMMANDS      ::= COMMAND [,COMMANDS]
+INTERVAL      ::= START[-END] COMMANDS
+INTERVALS     ::= INTERVAL[;INTERVALS]
+
+ + +

33.7.2 Examples

+ +
    +
  • +Specify audio tempo change at second 4: +
     
    asendcmd=c='4.0 atempo tempo 1.5',atempo
    +
    + +
  • +Specify a list of drawtext and hue commands in a file. +
     
    # show text in the interval 5-10
    +5.0-10.0 [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=hello world',
    +         [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=';
    +
    +# desaturate the image in the interval 15-20
    +15.0-20.0 [enter] hue s 0,
    +          [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=nocolor',
    +          [leave] hue s 1,
    +          [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=color';
    +
    +# apply an exponential saturation fade-out effect, starting from time 25
    +25 [enter] hue s exp(25-t)
    +
    + +

    A filtergraph allowing to read and process the above command list +stored in a file ‘test.cmd’, can be specified with: +

     
    sendcmd=f=test.cmd,drawtext=fontfile=FreeSerif.ttf:text='',hue
    +
    +
+ +

+

+

33.8 setpts, asetpts

+ +

Change the PTS (presentation timestamp) of the input frames. +

+

setpts works on video frames, asetpts on audio frames. +

+

This filter accepts the following options: +

+
+
expr
+

The expression which is evaluated for each frame to construct its timestamp. +

+
+
+ +

The expression is evaluated through the eval API and can contain the following +constants: +

+
+
FRAME_RATE
+

frame rate, only defined for constant frame-rate video +

+
+
PTS
+

The presentation timestamp in input +

+
+
N
+

The count of the input frame for video or the number of consumed samples, +not including the current frame for audio, starting from 0. +

+
+
NB_CONSUMED_SAMPLES
+

The number of consumed samples, not including the current frame (only +audio) +

+
+
NB_SAMPLES, S
+

The number of samples in the current frame (only audio) +

+
+
SAMPLE_RATE, SR
+

The audio sample rate. +

+
+
STARTPTS
+

The PTS of the first frame. +

+
+
STARTT
+

the time in seconds of the first frame +

+
+
INTERLACED
+

State whether the current frame is interlaced. +

+
+
T
+

the time in seconds of the current frame +

+
+
POS
+

original position in the file of the frame, or undefined if undefined +for the current frame +

+
+
PREV_INPTS
+

The previous input PTS. +

+
+
PREV_INT
+

previous input time in seconds +

+
+
PREV_OUTPTS
+

The previous output PTS. +

+
+
PREV_OUTT
+

previous output time in seconds +

+
+
RTCTIME
+

The wallclock (RTC) time in microseconds.. This is deprecated, use time(0) +instead. +

+
+
RTCSTART
+

The wallclock (RTC) time at the start of the movie in microseconds. +

+
+
TB
+

The timebase of the input timestamps. +

+
+
+ + +

33.8.1 Examples

+ +
    +
  • +Start counting PTS from zero +
     
    setpts=PTS-STARTPTS
    +
    + +
  • +Apply fast motion effect: +
     
    setpts=0.5*PTS
    +
    + +
  • +Apply slow motion effect: +
     
    setpts=2.0*PTS
    +
    + +
  • +Set fixed rate of 25 frames per second: +
     
    setpts=N/(25*TB)
    +
    + +
  • +Set fixed rate 25 fps with some jitter: +
     
    setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'
    +
    + +
  • +Apply an offset of 10 seconds to the input PTS: +
     
    setpts=PTS+10/TB
    +
    + +
  • +Generate timestamps from a "live source" and rebase onto the current timebase: +
     
    setpts='(RTCTIME - RTCSTART) / (TB * 1000000)'
    +
    + +
  • +Generate timestamps by counting samples: +
     
    asetpts=N/SR/TB
    +
    + +
+ + +

33.9 settb, asettb

+ +

Set the timebase to use for the output frames timestamps. +It is mainly useful for testing timebase configuration. +

+

It accepts the following parameters: +

+
+
expr, tb
+

The expression which is evaluated into the output timebase. +

+
+
+ +

The value for ‘tb’ is an arithmetic expression representing a +rational. The expression can contain the constants "AVTB" (the default +timebase), "intb" (the input timebase) and "sr" (the sample rate, +audio only). Default value is "intb". +

+ +

33.9.1 Examples

+ +
    +
  • +Set the timebase to 1/25: +
     
    settb=expr=1/25
    +
    + +
  • +Set the timebase to 1/10: +
     
    settb=expr=0.1
    +
    + +
  • +Set the timebase to 1001/1000: +
     
    settb=1+0.001
    +
    + +
  • +Set the timebase to 2*intb: +
     
    settb=2*intb
    +
    + +
  • +Set the default timebase value: +
     
    settb=AVTB
    +
    +
+ + +

33.10 showspectrum

+ +

Convert input audio to a video output, representing the audio frequency +spectrum. +

+

The filter accepts the following options: +

+
+
size, s
+

Specify the video size for the output. For the syntax of this option, check +the "Video size" section in the ffmpeg-utils manual. Default value is +640x512. +

+
+
slide
+

Specify if the spectrum should slide along the window. Default value is +0. +

+
+
mode
+

Specify display mode. +

+

It accepts the following values: +

+
combined
+

all channels are displayed in the same row +

+
separate
+

all channels are displayed in separate rows +

+
+ +

Default value is ‘combined’. +

+
+
color
+

Specify display color mode. +

+

It accepts the following values: +

+
channel
+

each channel is displayed in a separate color +

+
intensity
+

each channel is is displayed using the same color scheme +

+
+ +

Default value is ‘channel’. +

+
+
scale
+

Specify scale used for calculating intensity color values. +

+

It accepts the following values: +

+
lin
+

linear +

+
sqrt
+

square root, default +

+
cbrt
+

cubic root +

+
log
+

logarithmic +

+
+ +

Default value is ‘sqrt’. +

+
+
saturation
+

Set saturation modifier for displayed colors. Negative values provide +alternative color scheme. 0 is no saturation at all. +Saturation must be in [-10.0, 10.0] range. +Default value is 1. +

+
+
win_func
+

Set window function. +

+

It accepts the following values: +

+
none
+

No samples pre-processing (do not expect this to be faster) +

+
hann
+

Hann window +

+
hamming
+

Hamming window +

+
blackman
+

Blackman window +

+
+ +

Default value is hann. +

+
+ +

The usage is very similar to the showwaves filter; see the examples in that +section. +

+ +

33.10.1 Examples

+ +
    +
  • +Large window with logarithmic color scaling: +
     
    showspectrum=s=1280x480:scale=log
    +
    + +
  • +Complete example for a colored and sliding spectrum per channel using ffplay: +
     
    ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
    +             [a] showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt [out0]'
    +
    +
+ + +

33.11 showwaves

+ +

Convert input audio to a video output, representing the samples waves. +

+

The filter accepts the following options: +

+
+
size, s
+

Specify the video size for the output. For the syntax of this option, check +the "Video size" section in the ffmpeg-utils manual. Default value +is "600x240". +

+
+
mode
+

Set display mode. +

+

Available values are: +

+
point
+

Draw a point for each sample. +

+
+
line
+

Draw a vertical line for each sample. +

+
+ +

Default value is point. +

+
+
n
+

Set the number of samples which are printed on the same column. A +larger value will decrease the frame rate. Must be a positive +integer. This option can be set only if the value for rate +is not explicitly specified. +

+
+
rate, r
+

Set the (approximate) output frame rate. This is done by setting the +option n. Default value is "25". +

+
+
+ + +

33.11.1 Examples

+ +
    +
  • +Output the input file audio and the corresponding video representation +at the same time: +
     
    amovie=a.mp3,asplit[out0],showwaves[out1]
    +
    + +
  • +Create a synthetic signal and show it with showwaves, forcing a +frame rate of 30 frames per second: +
     
    aevalsrc=sin(1*2*PI*t)*sin(880*2*PI*t):cos(2*PI*200*t),asplit[out0],showwaves=r=30[out1]
    +
    +
+ + +

33.12 split, asplit

+ +

Split input into several identical outputs. +

+

asplit works with audio input, split with video. +

+

The filter accepts a single parameter which specifies the number of outputs. If +unspecified, it defaults to 2. +

+ +

33.12.1 Examples

+ +
    +
  • +Create two separate outputs from the same input: +
     
    [in] split [out0][out1]
    +
    + +
  • +To create 3 or more outputs, you need to specify the number of +outputs, like in: +
     
    [in] asplit=3 [out0][out1][out2]
    +
    + +
  • +Create two separate outputs from the same input, one cropped and +one padded: +
     
    [in] split [splitout1][splitout2];
    +[splitout1] crop=100:100:0:0    [cropout];
    +[splitout2] pad=200:200:100:100 [padout];
    +
    + +
  • +Create 5 copies of the input audio with ffmpeg: +
     
    ffmpeg -i INPUT -filter_complex asplit=5 OUTPUT
    +
    +
+ + +

33.13 zmq, azmq

+ +

Receive commands sent through a libzmq client, and forward them to +filters in the filtergraph. +

+

zmq and azmq work as a pass-through filters. zmq +must be inserted between two video filters, azmq between two +audio filters. +

+

To enable these filters you need to install the libzmq library and +headers and configure FFmpeg with --enable-libzmq. +

+

For more information about libzmq see: +http://www.zeromq.org/ +

+

The zmq and azmq filters work as a libzmq server, which +receives messages sent through a network interface defined by the +‘bind_address’ option. +

+

The received message must be in the form: +

 
TARGET COMMAND [ARG]
+
+ +

TARGET specifies the target of the command, usually the name of +the filter class or a specific filter instance name. +

+

COMMAND specifies the name of the command for the target filter. +

+

ARG is optional and specifies the optional argument list for the +given COMMAND. +

+

Upon reception, the message is processed and the corresponding command +is injected into the filtergraph. Depending on the result, the filter +will send a reply to the client, adopting the format: +

 
ERROR_CODE ERROR_REASON
+MESSAGE
+
+ +

MESSAGE is optional. +

+ +

33.13.1 Examples

+ +

Look at ‘tools/zmqsend’ for an example of a zmq client which can +be used to send commands processed by these filters. +

+

Consider the following filtergraph generated by ffplay +

 
ffplay -dumpgraph 1 -f lavfi "
+color=s=100x100:c=red  [l];
+color=s=100x100:c=blue [r];
+nullsrc=s=200x100, zmq [bg];
+[bg][l]   overlay      [bg+l];
+[bg+l][r] overlay=x=100 "
+
+ +

To change the color of the left side of the video, the following +command can be used: +

 
echo Parsed_color_0 c yellow | tools/zmqsend
+
+ +

To change the right side: +

 
echo Parsed_color_1 c pink | tools/zmqsend
+
+ + + +

34. Multimedia Sources

+ +

Below is a description of the currently available multimedia sources. +

+ +

34.1 amovie

+ +

This is the same as movie source, except it selects an audio +stream by default. +

+

+

+

34.2 movie

+ +

Read audio and/or video stream(s) from a movie container. +

+

It accepts the following parameters: +

+
+
filename
+

The name of the resource to read (not necessarily a file; it can also be a +device or a stream accessed through some protocol). +

+
+
format_name, f
+

Specifies the format assumed for the movie to read, and can be either +the name of a container or an input device. If not specified, the +format is guessed from movie_name or by probing. +

+
+
seek_point, sp
+

Specifies the seek point in seconds. The frames will be output +starting from this seek point. The parameter is evaluated with +av_strtod, so the numerical value may be suffixed by an IS +postfix. The default value is "0". +

+
+
streams, s
+

Specifies the streams to read. Several streams can be specified, +separated by "+". The source will then have as many outputs, in the +same order. The syntax is explained in the “Stream specifiers” +section in the ffmpeg manual. Two special names, "dv" and "da" specify +respectively the default (best suited) video and audio stream. Default +is "dv", or "da" if the filter is called as "amovie". +

+
+
stream_index, si
+

Specifies the index of the video stream to read. If the value is -1, +the most suitable video stream will be automatically selected. The default +value is "-1". Deprecated. If the filter is called "amovie", it will select +audio instead of video. +

+
+
loop
+

Specifies how many times to read the stream in sequence. +If the value is less than 1, the stream will be read again and again. +Default value is "1". +

+

Note that when the movie is looped the source timestamps are not +changed, so it will generate non monotonically increasing timestamps. +

+
+ +

It allows overlaying a second video on top of the main input of +a filtergraph, as shown in this graph: +

 
input -----------> deltapts0 --> overlay --> output
+                                    ^
+                                    |
+movie --> scale--> deltapts1 -------+
+
+ +

34.2.1 Examples

+ +
    +
  • +Skip 3.2 seconds from the start of the AVI file in.avi, and overlay it +on top of the input labelled "in": +
     
    movie=in.avi:seek_point=3.2, scale=180:-1, setpts=PTS-STARTPTS [over];
    +[in] setpts=PTS-STARTPTS [main];
    +[main][over] overlay=16:16 [out]
    +
    + +
  • +Read from a video4linux2 device, and overlay it on top of the input +labelled "in": +
     
    movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [over];
    +[in] setpts=PTS-STARTPTS [main];
    +[main][over] overlay=16:16 [out]
    +
    + +
  • +Read the first video stream and the audio stream with id 0x81 from +dvd.vob; the video is connected to the pad named "video" and the audio is +connected to the pad named "audio": +
     
    movie=dvd.vob:s=v:0+#0x81 [video] [audio]
    +
    +
+ + + +

35. See Also

+ +

ffprobe, +ffmpeg, ffplay, ffserver, +ffmpeg-utils, +ffmpeg-scaler, +ffmpeg-resampler, +ffmpeg-codecs, +ffmpeg-bitstream-filters, +ffmpeg-formats, +ffmpeg-devices, +ffmpeg-protocols, +ffmpeg-filters +

+ + +

36. Authors

+ +

The FFmpeg developers. +

+

For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +git log in the FFmpeg source directory, or browsing the +online repository at http://source.ffmpeg.org. +

+

Maintainers for the specific components are listed in the file +‘MAINTAINERS’ in the source code tree. +

+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/ffprobe.html b/3-Postprocessing/ffmpeg/doc/ffprobe.html new file mode 100644 index 0000000..674bff2 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/ffprobe.html @@ -0,0 +1,1060 @@ + + + + + +FFmpeg documentation : ffprobe + + + + + + + + + + +
+
+ + +

ffprobe Documentation

+ + +

Table of Contents

+ + + +

1. Synopsis

+ +

ffprobe [options] [‘input_file’] +

+ +

2. Description

+ +

ffprobe gathers information from multimedia streams and prints it in +human- and machine-readable fashion. +

+

For example it can be used to check the format of the container used +by a multimedia stream and the format and type of each media stream +contained in it. +

+

If a filename is specified in input, ffprobe will try to open and +probe the file content. If the file cannot be opened or recognized as +a multimedia file, a positive exit code is returned. +

+

ffprobe may be employed both as a standalone application or in +combination with a textual filter, which may perform more +sophisticated processing, e.g. statistical processing or plotting. +

+

Options are used to list some of the formats supported by ffprobe or +for specifying which information to display, and for setting how +ffprobe will show it. +

+

ffprobe output is designed to be easily parsable by a textual filter, +and consists of one or more sections of a form defined by the selected +writer, which is specified by the ‘print_format’ option. +

+

Sections may contain other nested sections, and are identified by a +name (which may be shared by other sections), and an unique +name. See the output of ‘sections’. +

+

Metadata tags stored in the container or in the streams are recognized +and printed in the corresponding "FORMAT", "STREAM" or "PROGRAM_STREAM" +section. +

+ + +

3. Options

+ +

All the numerical options, if not specified otherwise, accept a string +representing a number as input, which may be followed by one of the SI +unit prefixes, for example: ’K’, ’M’, or ’G’. +

+

If ’i’ is appended to the SI unit prefix, the complete prefix will be +interpreted as a unit prefix for binary multiplies, which are based on +powers of 1024 instead of powers of 1000. Appending ’B’ to the SI unit +prefix multiplies the value by 8. This allows using, for example: +’KB’, ’MiB’, ’G’ and ’B’ as number suffixes. +

+

Options which do not take arguments are boolean options, and set the +corresponding value to true. They can be set to false by prefixing +the option name with "no". For example using "-nofoo" +will set the boolean option with name "foo" to false. +

+

+

+

3.1 Stream specifiers

+

Some options are applied per-stream, e.g. bitrate or codec. Stream specifiers +are used to precisely specify which stream(s) a given option belongs to. +

+

A stream specifier is a string generally appended to the option name and +separated from it by a colon. E.g. -codec:a:1 ac3 contains the +a:1 stream specifier, which matches the second audio stream. Therefore, it +would select the ac3 codec for the second audio stream. +

+

A stream specifier can match several streams, so that the option is applied to all +of them. E.g. the stream specifier in -b:a 128k matches all audio +streams. +

+

An empty stream specifier matches all streams. For example, -codec copy +or -codec: copy would copy all the streams without reencoding. +

+

Possible forms of stream specifiers are: +

+
stream_index
+

Matches the stream with this index. E.g. -threads:1 4 would set the +thread count for the second stream to 4. +

+
stream_type[:stream_index]
+

stream_type is one of following: ’v’ for video, ’a’ for audio, ’s’ for subtitle, +’d’ for data, and ’t’ for attachments. If stream_index is given, then it matches +stream number stream_index of this type. Otherwise, it matches all +streams of this type. +

+
p:program_id[:stream_index]
+

If stream_index is given, then it matches the stream with number stream_index +in the program with the id program_id. Otherwise, it matches all streams in the +program. +

+
#stream_id or i:stream_id
+

Match the stream by stream id (e.g. PID in MPEG-TS container). +

+
+ + +

3.2 Generic options

+ +

These options are shared amongst the ff* tools. +

+
+
-L
+

Show license. +

+
+
-h, -?, -help, --help [arg]
+

Show help. An optional parameter may be specified to print help about a specific +item. If no argument is specified, only basic (non advanced) tool +options are shown. +

+

Possible values of arg are: +

+
long
+

Print advanced tool options in addition to the basic tool options. +

+
+
full
+

Print complete list of options, including shared and private options +for encoders, decoders, demuxers, muxers, filters, etc. +

+
+
decoder=decoder_name
+

Print detailed information about the decoder named decoder_name. Use the +‘-decoders’ option to get a list of all decoders. +

+
+
encoder=encoder_name
+

Print detailed information about the encoder named encoder_name. Use the +‘-encoders’ option to get a list of all encoders. +

+
+
demuxer=demuxer_name
+

Print detailed information about the demuxer named demuxer_name. Use the +‘-formats’ option to get a list of all demuxers and muxers. +

+
+
muxer=muxer_name
+

Print detailed information about the muxer named muxer_name. Use the +‘-formats’ option to get a list of all muxers and demuxers. +

+
+
filter=filter_name
+

Print detailed information about the filter name filter_name. Use the +‘-filters’ option to get a list of all filters. +

+
+ +
+
-version
+

Show version. +

+
+
-formats
+

Show available formats. +

+
+
-codecs
+

Show all codecs known to libavcodec. +

+

Note that the term ’codec’ is used throughout this documentation as a shortcut +for what is more correctly called a media bitstream format. +

+
+
-decoders
+

Show available decoders. +

+
+
-encoders
+

Show all available encoders. +

+
+
-bsfs
+

Show available bitstream filters. +

+
+
-protocols
+

Show available protocols. +

+
+
-filters
+

Show available libavfilter filters. +

+
+
-pix_fmts
+

Show available pixel formats. +

+
+
-sample_fmts
+

Show available sample formats. +

+
+
-layouts
+

Show channel names and standard channel layouts. +

+
+
-colors
+

Show recognized color names. +

+
+
-loglevel [repeat+]loglevel | -v [repeat+]loglevel
+

Set the logging level used by the library. +Adding "repeat+" indicates that repeated log output should not be compressed +to the first line and the "Last message repeated n times" line will be +omitted. "repeat" can also be used alone. +If "repeat" is used alone, and with no prior loglevel set, the default +loglevel will be used. If multiple loglevel parameters are given, using +’repeat’ will not change the loglevel. +loglevel is a number or a string containing one of the following values: +

+
quiet
+

Show nothing at all; be silent. +

+
panic
+

Only show fatal errors which could lead the process to crash, such as +and assert failure. This is not currently used for anything. +

+
fatal
+

Only show fatal errors. These are errors after which the process absolutely +cannot continue after. +

+
error
+

Show all errors, including ones which can be recovered from. +

+
warning
+

Show all warnings and errors. Any message related to possibly +incorrect or unexpected events will be shown. +

+
info
+

Show informative messages during processing. This is in addition to +warnings and errors. This is the default value. +

+
verbose
+

Same as info, except more verbose. +

+
debug
+

Show everything, including debugging information. +

+
+ +

By default the program logs to stderr, if coloring is supported by the +terminal, colors are used to mark errors and warnings. Log coloring +can be disabled setting the environment variable +AV_LOG_FORCE_NOCOLOR or NO_COLOR, or can be forced setting +the environment variable AV_LOG_FORCE_COLOR. +The use of the environment variable NO_COLOR is deprecated and +will be dropped in a following FFmpeg version. +

+
+
-report
+

Dump full command line and console output to a file named +program-YYYYMMDD-HHMMSS.log in the current +directory. +This file can be useful for bug reports. +It also implies -loglevel verbose. +

+

Setting the environment variable FFREPORT to any value has the +same effect. If the value is a ’:’-separated key=value sequence, these +options will affect the report; options values must be escaped if they +contain special characters or the options delimiter ’:’ (see the +“Quoting and escaping” section in the ffmpeg-utils manual). The +following option is recognized: +

+
file
+

set the file name to use for the report; %p is expanded to the name +of the program, %t is expanded to a timestamp, %% is expanded +to a plain % +

+
+ +

Errors in parsing the environment variable are not fatal, and will not +appear in the report. +

+
+
-hide_banner
+

Suppress printing banner. +

+

All FFmpeg tools will normally show a copyright notice, build options +and library versions. This option can be used to suppress printing +this information. +

+
+
-cpuflags flags (global)
+

Allows setting and clearing cpu flags. This option is intended +for testing. Do not use it unless you know what you’re doing. +

 
ffmpeg -cpuflags -sse+mmx ...
+ffmpeg -cpuflags mmx ...
+ffmpeg -cpuflags 0 ...
+
+

Possible flags for this option are: +

+
x86
+
+
mmx
+
mmxext
+
sse
+
sse2
+
sse2slow
+
sse3
+
sse3slow
+
ssse3
+
atom
+
sse4.1
+
sse4.2
+
avx
+
xop
+
fma4
+
3dnow
+
3dnowext
+
cmov
+
+
+
ARM
+
+
armv5te
+
armv6
+
armv6t2
+
vfp
+
vfpv3
+
neon
+
+
+
PowerPC
+
+
altivec
+
+
+
Specific Processors
+
+
pentium2
+
pentium3
+
pentium4
+
k6
+
k62
+
athlon
+
athlonxp
+
k8
+
+
+
+ +
+
-opencl_bench
+

Benchmark all available OpenCL devices and show the results. This option +is only available when FFmpeg has been compiled with --enable-opencl. +

+
+
-opencl_options options (global)
+

Set OpenCL environment options. This option is only available when +FFmpeg has been compiled with --enable-opencl. +

+

options must be a list of key=value option pairs +separated by ’:’. See the “OpenCL Options” section in the +ffmpeg-utils manual for the list of supported options. +

+
+ + +

3.3 AVOptions

+ +

These options are provided directly by the libavformat, libavdevice and +libavcodec libraries. To see the list of available AVOptions, use the +‘-help’ option. They are separated into two categories: +

+
generic
+

These options can be set for any container, codec or device. Generic options +are listed under AVFormatContext options for containers/devices and under +AVCodecContext options for codecs. +

+
private
+

These options are specific to the given container, device or codec. Private +options are listed under their corresponding containers/devices/codecs. +

+
+ +

For example to write an ID3v2.3 header instead of a default ID3v2.4 to +an MP3 file, use the ‘id3v2_version’ private option of the MP3 +muxer: +

 
ffmpeg -i input.flac -id3v2_version 3 out.mp3
+
+ +

All codec AVOptions are per-stream, and thus a stream specifier +should be attached to them. +

+

Note: the ‘-nooption’ syntax cannot be used for boolean +AVOptions, use ‘-option 0’/‘-option 1’. +

+

Note: the old undocumented way of specifying per-stream AVOptions by +prepending v/a/s to the options name is now obsolete and will be +removed soon. +

+ +

3.4 Main options

+ +
+
-f format
+

Force format to use. +

+
+
-unit
+

Show the unit of the displayed values. +

+
+
-prefix
+

Use SI prefixes for the displayed values. +Unless the "-byte_binary_prefix" option is used all the prefixes +are decimal. +

+
+
-byte_binary_prefix
+

Force the use of binary prefixes for byte values. +

+
+
-sexagesimal
+

Use sexagesimal format HH:MM:SS.MICROSECONDS for time values. +

+
+
-pretty
+

Prettify the format of the displayed values, it corresponds to the +options "-unit -prefix -byte_binary_prefix -sexagesimal". +

+
+
-of, -print_format writer_name[=writer_options]
+

Set the output printing format. +

+

writer_name specifies the name of the writer, and +writer_options specifies the options to be passed to the writer. +

+

For example for printing the output in JSON format, specify: +

 
-print_format json
+
+ +

For more details on the available output printing formats, see the +Writers section below. +

+
+
-sections
+

Print sections structure and section information, and exit. The output +is not meant to be parsed by a machine. +

+
+
-select_streams stream_specifier
+

Select only the streams specified by stream_specifier. This +option affects only the options related to streams +(e.g. show_streams, show_packets, etc.). +

+

For example to show only audio streams, you can use the command: +

 
ffprobe -show_streams -select_streams a INPUT
+
+ +

To show only video packets belonging to the video stream with index 1: +

 
ffprobe -show_packets -select_streams v:1 INPUT
+
+ +
+
-show_data
+

Show payload data, as a hexadecimal and ASCII dump. Coupled with +‘-show_packets’, it will dump the packets’ data. Coupled with +‘-show_streams’, it will dump the codec extradata. +

+

The dump is printed as the "data" field. It may contain newlines. +

+
+
-show_error
+

Show information about the error found when trying to probe the input. +

+

The error information is printed within a section with name "ERROR". +

+
+
-show_format
+

Show information about the container format of the input multimedia +stream. +

+

All the container format information is printed within a section with +name "FORMAT". +

+
+
-show_format_entry name
+

Like ‘-show_format’, but only prints the specified entry of the +container format information, rather than all. This option may be given more +than once, then all specified entries will be shown. +

+

This option is deprecated, use show_entries instead. +

+
+
-show_entries section_entries
+

Set list of entries to show. +

+

Entries are specified according to the following +syntax. section_entries contains a list of section entries +separated by :. Each section entry is composed by a section +name (or unique name), optionally followed by a list of entries local +to that section, separated by ,. +

+

If section name is specified but is followed by no =, all +entries are printed to output, together with all the contained +sections. Otherwise only the entries specified in the local section +entries list are printed. In particular, if = is specified but +the list of local entries is empty, then no entries will be shown for +that section. +

+

Note that the order of specification of the local section entries is +not honored in the output, and the usual display order will be +retained. +

+

The formal syntax is given by: +

 
LOCAL_SECTION_ENTRIES ::= SECTION_ENTRY_NAME[,LOCAL_SECTION_ENTRIES]
+SECTION_ENTRY         ::= SECTION_NAME[=[LOCAL_SECTION_ENTRIES]]
+SECTION_ENTRIES       ::= SECTION_ENTRY[:SECTION_ENTRIES]
+
+ +

For example, to show only the index and type of each stream, and the PTS +time, duration time, and stream index of the packets, you can specify +the argument: +

 
packet=pts_time,duration_time,stream_index : stream=index,codec_type
+
+ +

To show all the entries in the section "format", but only the codec +type in the section "stream", specify the argument: +

 
format : stream=codec_type
+
+ +

To show all the tags in the stream and format sections: +

 
format_tags : format_tags
+
+ +

To show only the title tag (if available) in the stream +sections: +

 
stream_tags=title
+
+ +
+
-show_packets
+

Show information about each packet contained in the input multimedia +stream. +

+

The information for each single packet is printed within a dedicated +section with name "PACKET". +

+
+
-show_frames
+

Show information about each frame and subtitle contained in the input +multimedia stream. +

+

The information for each single frame is printed within a dedicated +section with name "FRAME" or "SUBTITLE". +

+
+
-show_streams
+

Show information about each media stream contained in the input +multimedia stream. +

+

Each media stream information is printed within a dedicated section +with name "STREAM". +

+
+
-show_programs
+

Show information about programs and their streams contained in the input +multimedia stream. +

+

Each media stream information is printed within a dedicated section +with name "PROGRAM_STREAM". +

+
+
-show_chapters
+

Show information about chapters stored in the format. +

+

Each chapter is printed within a dedicated section with name "CHAPTER". +

+
+
-count_frames
+

Count the number of frames per stream and report it in the +corresponding stream section. +

+
+
-count_packets
+

Count the number of packets per stream and report it in the +corresponding stream section. +

+
+
-read_intervals read_intervals
+
+

Read only the specified intervals. read_intervals must be a +sequence of interval specifications separated by ",". +ffprobe will seek to the interval starting point, and will +continue reading from that. +

+

Each interval is specified by two optional parts, separated by "%". +

+

The first part specifies the interval start position. It is +interpreted as an abolute position, or as a relative offset from the +current position if it is preceded by the "+" character. If this first +part is not specified, no seeking will be performed when reading this +interval. +

+

The second part specifies the interval end position. It is interpreted +as an absolute position, or as a relative offset from the current +position if it is preceded by the "+" character. If the offset +specification starts with "#", it is interpreted as the number of +packets to read (not including the flushing packets) from the interval +start. If no second part is specified, the program will read until the +end of the input. +

+

Note that seeking is not accurate, thus the actual interval start +point may be different from the specified position. Also, when an +interval duration is specified, the absolute end time will be computed +by adding the duration to the interval start point found by seeking +the file, rather than to the specified start value. +

+

The formal syntax is given by: +

 
INTERVAL  ::= [START|+START_OFFSET][%[END|+END_OFFSET]]
+INTERVALS ::= INTERVAL[,INTERVALS]
+
+ +

A few examples follow. +

    +
  • +Seek to time 10, read packets until 20 seconds after the found seek +point, then seek to position 01:30 (1 minute and thirty +seconds) and read packets until position 01:45. +
     
    10%+20,01:30%01:45
    +
    + +
  • +Read only 42 packets after seeking to position 01:23: +
     
    01:23%+#42
    +
    + +
  • +Read only the first 20 seconds from the start: +
     
    %+20
    +
    + +
  • +Read from the start until position 02:30: +
     
    %02:30
    +
    +
+ +
+
-show_private_data, -private
+

Show private data, that is data depending on the format of the +particular shown element. +This option is enabled by default, but you may need to disable it +for specific uses, for example when creating XSD-compliant XML output. +

+
+
-show_program_version
+

Show information related to program version. +

+

Version information is printed within a section with name +"PROGRAM_VERSION". +

+
+
-show_library_versions
+

Show information related to library versions. +

+

Version information for each library is printed within a section with +name "LIBRARY_VERSION". +

+
+
-show_versions
+

Show information related to program and library versions. This is the +equivalent of setting both ‘-show_program_version’ and +‘-show_library_versions’ options. +

+
+
-bitexact
+

Force bitexact output, useful to produce output which is not dependent +on the specific build. +

+
+
-i input_file
+

Read input_file. +

+
+
+ + +

4. Writers

+ +

A writer defines the output format adopted by ffprobe, and will be +used for printing all the parts of the output. +

+

A writer may accept one or more arguments, which specify the options +to adopt. The options are specified as a list of key=value +pairs, separated by ":". +

+

All writers support the following options: +

+
+
string_validation, sv
+

Set string validation mode. +

+

The following values are accepted. +

+
fail
+

The writer will fail immediately in case an invalid string (UTF-8) +sequence or code point is found in the input. This is especially +useful to validate input metadata. +

+
+
ignore
+

Any validation error will be ignored. This will result in possibly +broken output, especially with the json or xml writer. +

+
+
replace
+

The writer will substitute invalid UTF-8 sequences or code points with +the string specified with the ‘string_validation_replacement’. +

+
+ +

Default value is ‘replace’. +

+
+
string_validation_replacement, svr
+

Set replacement string to use in case ‘string_validation’ is +set to ‘replace’. +

+

In case the option is not specified, the writer will assume the empty +string, that is it will remove the invalid sequences from the input +strings. +

+
+ +

A description of the currently available writers follows. +

+ +

4.1 default

+

Default format. +

+

Print each section in the form: +

 
[SECTION]
+key1=val1
+...
+keyN=valN
+[/SECTION]
+
+ +

Metadata tags are printed as a line in the corresponding FORMAT, STREAM or +PROGRAM_STREAM section, and are prefixed by the string "TAG:". +

+

A description of the accepted options follows. +

+
+
nokey, nk
+

If set to 1 specify not to print the key of each field. Default value +is 0. +

+
+
noprint_wrappers, nw
+

If set to 1 specify not to print the section header and footer. +Default value is 0. +

+
+ + +

4.2 compact, csv

+

Compact and CSV format. +

+

The csv writer is equivalent to compact, but supports +different defaults. +

+

Each section is printed on a single line. +If no option is specifid, the output has the form: +

 
section|key1=val1| ... |keyN=valN
+
+ +

Metadata tags are printed in the corresponding "format" or "stream" +section. A metadata tag key, if printed, is prefixed by the string +"tag:". +

+

The description of the accepted options follows. +

+
+
item_sep, s
+

Specify the character to use for separating fields in the output line. +It must be a single printable character, it is "|" by default ("," for +the csv writer). +

+
+
nokey, nk
+

If set to 1 specify not to print the key of each field. Its default +value is 0 (1 for the csv writer). +

+
+
escape, e
+

Set the escape mode to use, default to "c" ("csv" for the csv +writer). +

+

It can assume one of the following values: +

+
c
+

Perform C-like escaping. Strings containing a newline (’\n’), carriage +return (’\r’), a tab (’\t’), a form feed (’\f’), the escaping +character (’\’) or the item separator character SEP are escaped using C-like fashioned +escaping, so that a newline is converted to the sequence "\n", a +carriage return to "\r", ’\’ to "\\" and the separator SEP is +converted to "\SEP". +

+
+
csv
+

Perform CSV-like escaping, as described in RFC4180. Strings +containing a newline (’\n’), a carriage return (’\r’), a double quote +(’"’), or SEP are enclosed in double-quotes. +

+
+
none
+

Perform no escaping. +

+
+ +
+
print_section, p
+

Print the section name at the begin of each line if the value is +1, disable it with value set to 0. Default value is +1. +

+
+
+ + +

4.3 flat

+

Flat format. +

+

A free-form output where each line contains an explicit key=value, such as +"streams.stream.3.tags.foo=bar". The output is shell escaped, so it can be +directly embedded in sh scripts as long as the separator character is an +alphanumeric character or an underscore (see sep_char option). +

+

The description of the accepted options follows. +

+
+
sep_char, s
+

Separator character used to separate the chapter, the section name, IDs and +potential tags in the printed field key. +

+

Default value is ’.’. +

+
+
hierarchical, h
+

Specify if the section name specification should be hierarchical. If +set to 1, and if there is more than one section in the current +chapter, the section name will be prefixed by the name of the +chapter. A value of 0 will disable this behavior. +

+

Default value is 1. +

+
+ + +

4.4 ini

+

INI format output. +

+

Print output in an INI based format. +

+

The following conventions are adopted: +

+
    +
  • +all key and values are UTF-8 +
  • +’.’ is the subgroup separator +
  • +newline, ’\t’, ’\f’, ’\b’ and the following characters are escaped +
  • +’\’ is the escape character +
  • +’#’ is the comment indicator +
  • +’=’ is the key/value separator +
  • +’:’ is not used but usually parsed as key/value separator +
+ +

This writer accepts options as a list of key=value pairs, +separated by ":". +

+

The description of the accepted options follows. +

+
+
hierarchical, h
+

Specify if the section name specification should be hierarchical. If +set to 1, and if there is more than one section in the current +chapter, the section name will be prefixed by the name of the +chapter. A value of 0 will disable this behavior. +

+

Default value is 1. +

+
+ + +

4.5 json

+

JSON based format. +

+

Each section is printed using JSON notation. +

+

The description of the accepted options follows. +

+
+
compact, c
+

If set to 1 enable compact output, that is each section will be +printed on a single line. Default value is 0. +

+
+ +

For more information about JSON, see http://www.json.org/. +

+ +

4.6 xml

+

XML based format. +

+

The XML output is described in the XML schema description file +‘ffprobe.xsd’ installed in the FFmpeg datadir. +

+

An updated version of the schema can be retrieved at the url +http://www.ffmpeg.org/schema/ffprobe.xsd, which redirects to the +latest schema committed into the FFmpeg development source code tree. +

+

Note that the output issued will be compliant to the +‘ffprobe.xsd’ schema only when no special global output options +(‘unit’, ‘prefix’, ‘byte_binary_prefix’, +‘sexagesimal’ etc.) are specified. +

+

The description of the accepted options follows. +

+
+
fully_qualified, q
+

If set to 1 specify if the output should be fully qualified. Default +value is 0. +This is required for generating an XML file which can be validated +through an XSD file. +

+
+
xsd_compliant, x
+

If set to 1 perform more checks for ensuring that the output is XSD +compliant. Default value is 0. +This option automatically sets ‘fully_qualified’ to 1. +

+
+ +

For more information about the XML format, see +http://www.w3.org/XML/. +

+ +

5. Timecode

+ +

ffprobe supports Timecode extraction: +

+
    +
  • +MPEG1/2 timecode is extracted from the GOP, and is available in the video +stream details (‘-show_streams’, see timecode). + +
  • +MOV timecode is extracted from tmcd track, so is available in the tmcd +stream metadata (‘-show_streams’, see TAG:timecode). + +
  • +DV, GXF and AVI timecodes are available in format metadata +(‘-show_format’, see TAG:timecode). + +
+ + + +

6. See Also

+ +

ffprobe-all, +ffmpeg, ffplay, ffserver, +ffmpeg-utils, +ffmpeg-scaler, +ffmpeg-resampler, +ffmpeg-codecs, +ffmpeg-bitstream-filters, +ffmpeg-formats, +ffmpeg-devices, +ffmpeg-protocols, +ffmpeg-filters +

+ + +

7. Authors

+ +

The FFmpeg developers. +

+

For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +git log in the FFmpeg source directory, or browsing the +online repository at http://source.ffmpeg.org. +

+

Maintainers for the specific components are listed in the file +‘MAINTAINERS’ in the source code tree. +

+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/general.html b/3-Postprocessing/ffmpeg/doc/general.html new file mode 100644 index 0000000..a6f48cb --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/general.html @@ -0,0 +1,974 @@ + + + + + +FFmpeg documentation : General + + + + + + + + + + +
+
+ + +

General Documentation

+ + +

Table of Contents

+ + + +

1. External libraries

+ +

FFmpeg can be hooked up with a number of external libraries to add support +for more formats. None of them are used by default, their use has to be +explicitly requested by passing the appropriate flags to +./configure. +

+ +

1.1 OpenJPEG

+ +

FFmpeg can use the OpenJPEG libraries for encoding/decoding J2K videos. Go to +http://www.openjpeg.org/ to get the libraries and follow the installation +instructions. To enable using OpenJPEG in FFmpeg, pass --enable-libopenjpeg to +‘./configure’. +

+ + +

1.2 OpenCORE, VisualOn, and Fraunhofer libraries

+ +

Spun off Google Android sources, OpenCore, VisualOn and Fraunhofer +libraries provide encoders for a number of audio codecs. +

+
+

OpenCORE and VisualOn libraries are under the Apache License 2.0 +(see http://www.apache.org/licenses/LICENSE-2.0 for details), which is +incompatible to the LGPL version 2.1 and GPL version 2. You have to +upgrade FFmpeg’s license to LGPL version 3 (or if you have enabled +GPL components, GPL version 3) by passing --enable-version3 to configure in +order to use it. +

+

The Fraunhofer AAC library is licensed under a license incompatible to the GPL +and is not known to be compatible to the LGPL. Therefore, you have to pass +--enable-nonfree to configure to use it. +

+ +

1.2.1 OpenCORE AMR

+ +

FFmpeg can make use of the OpenCORE libraries for AMR-NB +decoding/encoding and AMR-WB decoding. +

+

Go to http://sourceforge.net/projects/opencore-amr/ and follow the +instructions for installing the libraries. +Then pass --enable-libopencore-amrnb and/or +--enable-libopencore-amrwb to configure to enable them. +

+ +

1.2.2 VisualOn AAC encoder library

+ +

FFmpeg can make use of the VisualOn AACenc library for AAC encoding. +

+

Go to http://sourceforge.net/projects/opencore-amr/ and follow the +instructions for installing the library. +Then pass --enable-libvo-aacenc to configure to enable it. +

+ +

1.2.3 VisualOn AMR-WB encoder library

+ +

FFmpeg can make use of the VisualOn AMR-WBenc library for AMR-WB encoding. +

+

Go to http://sourceforge.net/projects/opencore-amr/ and follow the +instructions for installing the library. +Then pass --enable-libvo-amrwbenc to configure to enable it. +

+ +

1.2.4 Fraunhofer AAC library

+ +

FFmpeg can make use of the Fraunhofer AAC library for AAC encoding. +

+

Go to http://sourceforge.net/projects/opencore-amr/ and follow the +instructions for installing the library. +Then pass --enable-libfdk-aac to configure to enable it. +

+ +

1.3 LAME

+ +

FFmpeg can make use of the LAME library for MP3 encoding. +

+

Go to http://lame.sourceforge.net/ and follow the +instructions for installing the library. +Then pass --enable-libmp3lame to configure to enable it. +

+ +

1.4 TwoLAME

+ +

FFmpeg can make use of the TwoLAME library for MP2 encoding. +

+

Go to http://www.twolame.org/ and follow the +instructions for installing the library. +Then pass --enable-libtwolame to configure to enable it. +

+ +

1.5 libvpx

+ +

FFmpeg can make use of the libvpx library for VP8/VP9 encoding. +

+

Go to http://www.webmproject.org/ and follow the instructions for +installing the library. Then pass --enable-libvpx to configure to +enable it. +

+ +

1.6 libwavpack

+ +

FFmpeg can make use of the libwavpack library for WavPack encoding. +

+

Go to http://www.wavpack.com/ and follow the instructions for +installing the library. Then pass --enable-libwavpack to configure to +enable it. +

+ +

1.7 x264

+ +

FFmpeg can make use of the x264 library for H.264 encoding. +

+

Go to http://www.videolan.org/developers/x264.html and follow the +instructions for installing the library. Then pass --enable-libx264 to +configure to enable it. +

+
+

x264 is under the GNU Public License Version 2 or later +(see http://www.gnu.org/licenses/old-licenses/gpl-2.0.html for +details), you must upgrade FFmpeg’s license to GPL in order to use it. +

+ +

1.8 x265

+ +

FFmpeg can make use of the x265 library for HEVC encoding. +

+

Go to http://x265.org/developers.html and follow the instructions +for installing the library. Then pass --enable-libx265 to configure +to enable it. +

+
+

x265 is under the GNU Public License Version 2 or later +(see http://www.gnu.org/licenses/old-licenses/gpl-2.0.html for +details), you must upgrade FFmpeg’s license to GPL in order to use it. +

+ +

1.9 libilbc

+ +

iLBC is a narrowband speech codec that has been made freely available +by Google as part of the WebRTC project. libilbc is a packaging friendly +copy of the iLBC codec. FFmpeg can make use of the libilbc library for +iLBC encoding and decoding. +

+

Go to https://github.com/dekkers/libilbc and follow the instructions for +installing the library. Then pass --enable-libilbc to configure to +enable it. +

+ +

1.10 libzvbi

+ +

libzvbi is a VBI decoding library which can be used by FFmpeg to decode DVB +teletext pages and DVB teletext subtitles. +

+

Go to http://sourceforge.net/projects/zapping/ and follow the instructions for +installing the library. Then pass --enable-libzvbi to configure to +enable it. +

+
+

libzvbi is licensed under the GNU General Public License Version 2 or later +(see http://www.gnu.org/licenses/old-licenses/gpl-2.0.html for details), +you must upgrade FFmpeg’s license to GPL in order to use it. +

+ +

1.11 AviSynth

+ +

FFmpeg can read AviSynth scripts as input. To enable support, pass +--enable-avisynth to configure. The correct headers are +included in compat/avisynth/, which allows the user to enable support +without needing to search for these headers themselves. +

+

For Windows, supported AviSynth variants are +AviSynth 2.5 or 2.6 for 32-bit builds and +AviSynth+ 0.1 for 32-bit and 64-bit builds. +

+

For Linux and OS X, the supported AviSynth variant is +AvxSynth. +

+
+

AviSynth and AvxSynth are loaded dynamically. Distributors can build FFmpeg +with --enable-avisynth, and the binaries will work regardless of the +end user having AviSynth or AvxSynth installed - they’ll only need to be +installed to use AviSynth scripts (obviously). +

+ + +

2. Supported File Formats, Codecs or Features

+ +

You can use the -formats and -codecs options to have an exhaustive list. +

+ +

2.1 File Formats

+ +

FFmpeg supports the following file formats through the libavformat +library: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameEncodingDecodingComments
4xmX4X Technologies format, used in some games.
8088flex TMVX
ACT VoiceXcontains G.729 audio
Adobe FilmstripXX
Audio IFF (AIFF)XX
American Laser Games MMXMultimedia format used in games like Mad Dog McCree.
3GPP AMRXX
Amazing Studio Packed Animation FileXMultimedia format used in game Heart Of Darkness.
Apple HTTP Live StreamingX
Artworx Data FormatX
ADPXAudio format used on the Nintendo Gamecube.
AFCXAudio format used on the Nintendo Gamecube.
ASFXX
ASTXXAudio format used on the Nintendo Wii.
AVIXX
AviSynthX
AVRXAudio format used on Mac.
AVSXMultimedia format used by the Creature Shock game.
Beam Software SIFFXAudio and video format used in some games by Beam Software.
Bethesda Softworks VIDXUsed in some games from Bethesda Softworks.
Binary textX
BinkXMultimedia format used by many games.
Bitmap Brothers JVXUsed in Z and Z95 games.
Brute Force & IgnoranceXUsed in the game Flash Traffic: City of Angels.
BRSTMXAudio format used on the Nintendo Wii.
BWFXX
CRI ADXXXAudio-only format used in console video games.
Discworld II BMVX
Interplay C93XUsed in the game Cyberia from Interplay.
Delphine Software International CINXMultimedia format used by Delphine Software games.
CD+GXVideo format used by CD+G karaoke disks
Phantom CineX
Commodore CDXLXAmiga CD video format
Core Audio FormatXXApple Core Audio Format
CRC testing formatX
Creative VoiceXXCreated for the Sound Blaster Pro.
CRYO APCXAudio format used in some games by CRYO Interactive Entertainment.
D-Cinema audioXX
Deluxe Paint AnimationX
DFAXThis format is used in Chronomaster game
DSD Stream File (DSF)X
DV videoXX
DXAXThis format is used in the non-Windows version of the Feeble Files + game and different game cutscenes repacked for use with ScummVM.
Electronic Arts cdataX
Electronic Arts MultimediaXUsed in various EA games; files have extensions like WVE and UV2.
Ensoniq Paris Audio FileX
FFM (FFserver live feed)XX
Flash (SWF)XX
Flash 9 (AVM2)XXOnly embedded audio is decoded.
FLI/FLC/FLX animationX.fli/.flc files
Flash Video (FLV)XXMacromedia Flash video files
framecrc testing formatX
FunCom ISSXAudio format used in various games from FunCom like The Longest Journey.
G.723.1XX
G.729 BITXX
G.729 rawX
GIF AnimationXX
GXFXXGeneral eXchange Format SMPTE 360M, used by Thomson Grass Valley + playout servers.
HNMXOnly version 4 supported, used in some games from Cryo Interactive
iCEDraw FileX
ICOXXMicrosoft Windows ICO
id Quake II CIN videoX
id RoQXXUsed in Quake III, Jedi Knight 2 and other computer games.
IEC61937 encapsulationXX
IFFXInterchange File Format
iLBCXX
Interplay MVEXFormat used in various Interplay computer games.
IV8XA format generated by IndigoVision 8000 video server.
IVF (On2)XXA format used by libvpx
IRCAMXX
LATMXX
LMLM4XUsed by Linux Media Labs MPEG-4 PCI boards
LOASXcontains LATM multiplexed AAC audio
LVFX
LXFXVR native stream format, used by Leitch/Harris’ video servers.
Magic Lantern Video (MLV)X
MatroskaXX
Matroska audioX
FFmpeg metadataXXMetadata in text format.
MAXIS XAXUsed in Sim City 3000; file extension .xa.
MD StudioX
Metal Gear Solid: The Twin SnakesX
Megalux FrameXUsed by Megalux Ultimate Paint
Mobotix .mxgX
Monkey’s AudioX
Motion Pixels MVIX
MOV/QuickTime/MP4XX3GP, 3GP2, PSP, iPod variants supported
MP2XX
MP3XX
MPEG-1 SystemXXmuxed audio and video, VCD format supported
MPEG-PS (program stream)XXalso known as VOB file, SVCD and DVD format supported
MPEG-TS (transport stream)XXalso known as DVB Transport Stream
MPEG-4XXMPEG-4 is a variant of QuickTime.
Mirillis FIC videoXNo cursor rendering.
MIME multipart JPEGX
MSN TCP webcamXUsed by MSN Messenger webcam streams.
MTVX
MusepackX
Musepack SV8X
Material eXchange Format (MXF)XXSMPTE 377M, used by D-Cinema, broadcast industry.
Material eXchange Format (MXF), D-10 MappingXXSMPTE 386M, D-10/IMX Mapping.
NC camera feedXNC (AVIP NC4600) camera streams
NIST SPeech HEader REsourcesX
NTT TwinVQ (VQF)XNippon Telegraph and Telephone Corporation TwinVQ.
Nullsoft Streaming VideoX
NuppelVideoX
NUTXXNUT Open Container Format
OggXX
Playstation Portable PMPX
Portable Voice FormatX
TechnoTrend PVAXUsed by TechnoTrend DVB PCI boards.
QCPX
raw ADTS (AAC)XX
raw AC-3XX
raw Chinese AVS videoXX
raw CRI ADXXX
raw DiracXX
raw DNxHDXX
raw DTSXX
raw DTS-HDX
raw E-AC-3XX
raw FLACXX
raw GSMX
raw H.261XX
raw H.263XX
raw H.264XX
raw HEVCXX
raw Ingenient MJPEGX
raw MJPEGXX
raw MLPX
raw MPEGX
raw MPEG-1X
raw MPEG-2X
raw MPEG-4XX
raw NULLX
raw videoXX
raw id RoQX
raw ShortenX
raw TAKX
raw TrueHDXX
raw VC-1XX
raw PCM A-lawXX
raw PCM mu-lawXX
raw PCM signed 8 bitXX
raw PCM signed 16 bit big-endianXX
raw PCM signed 16 bit little-endianXX
raw PCM signed 24 bit big-endianXX
raw PCM signed 24 bit little-endianXX
raw PCM signed 32 bit big-endianXX
raw PCM signed 32 bit little-endianXX
raw PCM unsigned 8 bitXX
raw PCM unsigned 16 bit big-endianXX
raw PCM unsigned 16 bit little-endianXX
raw PCM unsigned 24 bit big-endianXX
raw PCM unsigned 24 bit little-endianXX
raw PCM unsigned 32 bit big-endianXX
raw PCM unsigned 32 bit little-endianXX
raw PCM floating-point 32 bit big-endianXX
raw PCM floating-point 32 bit little-endianXX
raw PCM floating-point 64 bit big-endianXX
raw PCM floating-point 64 bit little-endianXX
RDTX
REDCODE R3DXFile format used by RED Digital cameras, contains JPEG 2000 frames and PCM audio.
RealMediaXX
RedirectorX
RedSparkX
Renderware TeXture DictionaryX
RL2XAudio and video format used in some games by Entertainment Software Partners.
RPL/ARMovieX
Lego Mindstorms RSOXX
RSDX
RTMPXXOutput is performed by publishing stream to RTMP server
RTPXX
RTSPXX
SAPXX
SBGX
SDPX
Sega FILM/CPKXUsed in many Sega Saturn console games.
Silicon Graphics MovieX
Sierra SOLX.sol files used in Sierra Online games.
Sierra VMDXUsed in Sierra CD-ROM games.
SmackerXMultimedia format used by many games.
SMJPEGXXUsed in certain Loki game ports.
SmushXMultimedia format used in some LucasArts games.
Sony OpenMG (OMA)XXAudio format used in Sony Sonic Stage and Sony Vegas.
Sony PlayStation STRX
Sony Wave64 (W64)XX
SoX native formatXX
SUN AU formatXX
Text filesX
THPXUsed on the Nintendo GameCube.
Tiertex Limited SEQXTiertex .seq files used in the DOS CD-ROM version of the game Flashback.
True AudioX
VC-1 test bitstreamXX
VivoX
WAVXX
WavPackXX
WebMXX
Windows Televison (WTV)XX
Wing Commander III movieXMultimedia format used in Origin’s Wing Commander III computer game.
Westwood Studios audioXMultimedia format used in Westwood Studios games.
Westwood Studios VQAXMultimedia format used in Westwood Studios games.
XMVXMicrosoft video container used in Xbox games.
xWMAXMicrosoft audio container used by XAudio 2.
eXtended BINary text (XBIN)X
YUV4MPEG pipeXX
Psygnosis YOPX
+ +

X means that encoding (resp. decoding) is supported. +

+ +

2.2 Image Formats

+ +

FFmpeg can read and write images for each frame of a video sequence. The +following image formats are supported: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameEncodingDecodingComments
.Y.U.VXXone raw file per component
Alias PIXXXAlias/Wavefront PIX image format
animated GIFXX
BMPXXMicrosoft BMP image
BRender PIXXArgonaut BRender 3D engine image format.
DPXXXDigital Picture Exchange
EXRXOpenEXR
JPEGXXProgressive JPEG is not supported.
JPEG 2000XX
JPEG-LSXX
LJPEGXLossless JPEG
PAMXXPAM is a PNM extension with alpha support.
PBMXXPortable BitMap image
PCXXXPC Paintbrush
PGMXXPortable GrayMap image
PGMYUVXXPGM with U and V components in YUV 4:2:0
PICXPictor/PC Paint
PNGXX
PPMXXPortable PixelMap image
PTXXV.Flash PTX format
SGIXXSGI RGB image format
Sun RasterfileXXSun RAS image format
TIFFXXYUV, JPEG and some extension is not supported yet.
Truevision TargaXXTarga (.TGA) image format
WebPEXWebP image format, encoding supported through external library libwebp
XBMXXX BitMap image format
XFaceXXX-Face image format
XWDXXX Window Dump image format
+ +

X means that encoding (resp. decoding) is supported. +

+

E means that support is provided through an external library. +

+ +

2.3 Video Codecs

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameEncodingDecodingComments
4X MovieXUsed in certain computer games.
8088flex TMVX
A64 multicolorXCreates video suitable to be played on a commodore 64 (multicolor mode).
Amazing Studio PAF VideoX
American Laser Games MMXUsed in games like Mad Dog McCree.
AMV VideoXXUsed in Chinese MP3 players.
ANSI/ASCII artX
Apple Intermediate CodecX
Apple MJPEG-BX
Apple ProResXX
Apple QuickDrawXfourcc: qdrw
Asus v1XXfourcc: ASV1
Asus v2XXfourcc: ASV2
ATI VCR1Xfourcc: VCR1
ATI VCR2Xfourcc: VCR2
Auravision AuraX
Auravision Aura 2X
Autodesk Animator Flic videoX
Autodesk RLEXfourcc: AASC
Avid 1:1 10-bit RGB PackerXXfourcc: AVrp
AVS (Audio Video Standard) videoXVideo encoding used by the Creature Shock game.
AYUVXXMicrosoft uncompressed packed 4:4:4:4
Beam Software VBX
Bethesda VID videoXUsed in some games from Bethesda Softworks.
Bink VideoX
Bitmap Brothers JV videoX
y41p Brooktree uncompressed 4:1:1 12-bitXX
Brute Force & IgnoranceXUsed in the game Flash Traffic: City of Angels.
C93 videoXCodec used in Cyberia game.
CamStudioXfourcc: CSCD
CD+GXVideo codec for CD+G karaoke disks
CDXLXAmiga CD video codec
Chinese AVS videoEXAVS1-P2, JiZhun profile, encoding through external library libxavs
Delphine Software International CIN videoXCodec used in Delphine Software International games.
Discworld II BMV VideoX
Canopus Lossless CodecX
CinepakX
Cirrus Logic AccuPakXXfourcc: CLJR
CPiA Video FormatX
Creative YUV (CYUV)X
DFAXCodec used in Chronomaster game.
DiracEXsupported through external library libschroedinger
Deluxe Paint AnimationX
DNxHDXXaka SMPTE VC3
Duck TrueMotion 1.0Xfourcc: DUCK
Duck TrueMotion 2.0Xfourcc: TM20
DV (Digital Video)XX
Dxtory capture formatX
Feeble Files/ScummVM DXAXCodec originally used in Feeble Files game.
Electronic Arts CMV videoXUsed in NHL 95 game.
Electronic Arts Madcow videoX
Electronic Arts TGV videoX
Electronic Arts TGQ videoX
Electronic Arts TQI videoX
Escape 124X
Escape 130X
FFmpeg video codec #1XXlossless codec (fourcc: FFV1)
Flash Screen Video v1XXfourcc: FSV1
Flash Screen Video v2XX
Flash Video (FLV)XXSorenson H.263 used in Flash
Forward UncompressedX
FrapsX
Go2WebinarXfourcc: G2M4
H.261XX
H.263 / H.263-1996XX
H.263+ / H.263-1998 / H.263 version 2XX
H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10EXencoding supported through external library libx264
HEVCXXencoding supported through the external library libx265
HNM version 4X
HuffYUVXX
HuffYUV FFmpeg variantXX
IBM UltimotionXfourcc: ULTI
id Cinematic videoXUsed in Quake II.
id RoQ videoXXUsed in Quake III, Jedi Knight 2, other computer games.
IFF ILBMXIFF interleaved bitmap
IFF ByteRun1XIFF run length encoded bitmap
Intel H.263X
Intel Indeo 2X
Intel Indeo 3X
Intel Indeo 4X
Intel Indeo 5X
Interplay C93XUsed in the game Cyberia from Interplay.
Interplay MVE videoXUsed in Interplay .MVE files.
J2KXX
Karl Morton’s video codecXCodec used in Worms games.
Kega Game Video (KGV1)XKega emulator screen capture codec.
LagarithX
LCL (LossLess Codec Library) MSZHX
LCL (LossLess Codec Library) ZLIBEE
LOCOX
LucasArts SANM/SmushXUsed in LucasArts games / SMUSH animations.
lossless MJPEGXX
Microsoft ATC ScreenXAlso known as Microsoft Screen 3.
Microsoft Expression Encoder ScreenXAlso known as Microsoft Titanium Screen 2.
Microsoft RLEX
Microsoft Screen 1XAlso known as Windows Media Video V7 Screen.
Microsoft Screen 2XAlso known as Windows Media Video V9 Screen.
Microsoft Video 1X
MimicXUsed in MSN Messenger Webcam streams.
Miro VideoXLXfourcc: VIXL
MJPEG (Motion JPEG)XX
Mobotix MxPEG videoX
Motion Pixels videoX
MPEG-1 videoXX
MPEG-2 videoXX
MPEG-4 part 2XXlibxvidcore can be used alternatively for encoding.
MPEG-4 part 2 Microsoft variant version 1X
MPEG-4 part 2 Microsoft variant version 2XX
MPEG-4 part 2 Microsoft variant version 3XX
Nintendo Gamecube THP videoX
NuppelVideo/RTjpegXVideo encoding used in NuppelVideo files.
On2 VP3Xstill experimental
On2 VP5Xfourcc: VP50
On2 VP6Xfourcc: VP60,VP61,VP62
On2 VP7Xfourcc: VP70,VP71
VP8EXfourcc: VP80, encoding supported through external library libvpx
VP9EXencoding supported through external library libvpx
Pinnacle TARGA CineWave YUV16Xfourcc: Y216
ProresXfourcc: apch,apcn,apcs,apco
Q-team QPEGXfourccs: QPEG, Q1.0, Q1.1
QuickTime 8BPS videoX
QuickTime Animation (RLE) videoXXfourcc: ’rle ’
QuickTime Graphics (SMC)Xfourcc: ’smc ’
QuickTime video (RPZA)Xfourcc: rpza
R10K AJA Kona 10-bit RGB CodecXX
R210 Quicktime Uncompressed RGB 10-bitXX
Raw VideoXX
RealVideo 1.0XX
RealVideo 2.0XX
RealVideo 3.0Xstill far from ideal
RealVideo 4.0X
Renderware TXD (TeXture Dictionary)XTexture dictionaries used by the Renderware Engine.
RL2 videoXused in some games by Entertainment Software Partners
Sierra VMD videoXUsed in Sierra VMD files.
Silicon Graphics Motion Video Compressor 1 (MVC1)X
Silicon Graphics Motion Video Compressor 2 (MVC2)X
Silicon Graphics RLE 8-bit videoX
Smacker videoXVideo encoding used in Smacker.
SMPTE VC-1X
SnowXXexperimental wavelet codec (fourcc: SNOW)
Sony PlayStation MDEC (Motion DECoder)X
Sorenson Vector Quantizer 1XXfourcc: SVQ1
Sorenson Vector Quantizer 3Xfourcc: SVQ3
Sunplus JPEG (SP5X)Xfourcc: SP5X
TechSmith Screen Capture CodecXfourcc: TSCC
TechSmith Screen Capture Codec 2Xfourcc: TSC2
TheoraEXencoding supported through external library libtheora
Tiertex Limited SEQ videoXCodec used in DOS CD-ROM FlashBack game.
Ut VideoXX
v210 QuickTime uncompressed 4:2:2 10-bitXX
v308 QuickTime uncompressed 4:4:4XX
v408 QuickTime uncompressed 4:4:4:4XX
v410 QuickTime uncompressed 4:4:4 10-bitXX
VBLE Lossless CodecX
VMware Screen Codec / VMware VideoXCodec used in videos captured by VMware.
Westwood Studios VQA (Vector Quantized Animation) videoX
Windows Media ImageX
Windows Media Video 7XX
Windows Media Video 8XX
Windows Media Video 9Xnot completely working
Wing Commander III / XanXUsed in Wing Commander III .MVE files.
Wing Commander IV / XanXUsed in Wing Commander IV.
Winnov WNV1X
WMV7XX
YAMAHA SMAFXX
Psygnosis YOP VideoX
yuv4XXlibquicktime uncompressed packed 4:2:0
ZeroCodec Lossless VideoX
ZLIBXXpart of LCL, encoder experimental
Zip Motion Blocks VideoXXEncoder works only in PAL8.
+ +

X means that encoding (resp. decoding) is supported. +

+

E means that support is provided through an external library. +

+ +

2.4 Audio Codecs

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameEncodingDecodingComments
8SVX exponentialX
8SVX fibonacciX
AAC+EXencoding supported through external library libaacplus
AACEXencoding supported through external library libfaac and libvo-aacenc
AC-3IXIX
ADPCM 4X MovieX
ADPCM CDROM XAX
ADPCM Creative TechnologyX16 -> 4, 8 -> 4, 8 -> 3, 8 -> 2
ADPCM Electronic ArtsXUsed in various EA titles.
ADPCM Electronic Arts Maxis CDROM XSXUsed in Sim City 3000.
ADPCM Electronic Arts R1X
ADPCM Electronic Arts R2X
ADPCM Electronic Arts R3X
ADPCM Electronic Arts XASX
ADPCM G.722XX
ADPCM G.726XX
ADPCM IMA AMVXUsed in AMV files
ADPCM IMA Electronic Arts EACSX
ADPCM IMA Electronic Arts SEADX
ADPCM IMA FuncomX
ADPCM IMA QuickTimeXX
ADPCM IMA Loki SDL MJPEGX
ADPCM IMA WAVXX
ADPCM IMA WestwoodX
ADPCM ISS IMAXUsed in FunCom games.
ADPCM IMA DialogicX
ADPCM IMA Duck DK3XUsed in some Sega Saturn console games.
ADPCM IMA Duck DK4XUsed in some Sega Saturn console games.
ADPCM IMA RadicalX
ADPCM MicrosoftXX
ADPCM MS IMAXX
ADPCM Nintendo Gamecube AFCX
ADPCM Nintendo Gamecube DTKX
ADPCM Nintendo Gamecube THPX
ADPCM QT IMAXX
ADPCM SEGA CRI ADXXXUsed in Sega Dreamcast games.
ADPCM Shockwave FlashXX
ADPCM Sound Blaster Pro 2-bitX
ADPCM Sound Blaster Pro 2.6-bitX
ADPCM Sound Blaster Pro 4-bitX
ADPCM VIMAUsed in LucasArts SMUSH animations.
ADPCM Westwood Studios IMAXUsed in Westwood Studios games like Command and Conquer.
ADPCM YamahaXX
AMR-NBEXencoding supported through external library libopencore-amrnb
AMR-WBEXencoding supported through external library libvo-amrwbenc
Amazing Studio PAF AudioX
Apple lossless audioXXQuickTime fourcc ’alac’
ATRAC1X
ATRAC3X
ATRAC3+X
Bink AudioXUsed in Bink and Smacker files in many games.
CELTEdecoding supported through external library libcelt
Delphine Software International CIN audioXCodec used in Delphine Software International games.
Discworld II BMV AudioX
COOKXAll versions except 5.1 are supported.
DCA (DTS Coherent Acoustics)XX
DPCM id RoQXXUsed in Quake III, Jedi Knight 2 and other computer games.
DPCM InterplayXUsed in various Interplay computer games.
DPCM Sierra OnlineXUsed in Sierra Online game audio files.
DPCM SolX
DPCM XanXUsed in Origin’s Wing Commander IV AVI files.
DSD (Direct Stream Digitial), least significant bit firstX
DSD (Direct Stream Digitial), most significant bit firstX
DSD (Direct Stream Digitial), least significant bit first, planarX
DSD (Direct Stream Digitial), most significant bit first, planarX
DSP Group TrueSpeechX
DV audioX
Enhanced AC-3XX
EVRC (Enhanced Variable Rate Codec)X
FLAC (Free Lossless Audio Codec)XIX
G.723.1XX
G.729X
GSMEXencoding supported through external library libgsm
GSM Microsoft variantEXencoding supported through external library libgsm
IAC (Indeo Audio Coder)X
iLBC (Internet Low Bitrate Codec)EEencoding and decoding supported through external library libilbc
IMC (Intel Music Coder)X
MACE (Macintosh Audio Compression/Expansion) 3:1X
MACE (Macintosh Audio Compression/Expansion) 6:1X
MLP (Meridian Lossless Packing)XUsed in DVD-Audio discs.
Monkey’s AudioX
MP1 (MPEG audio layer 1)IX
MP2 (MPEG audio layer 2)IXIXencoding supported also through external library TwoLAME
MP3 (MPEG audio layer 3)EIXencoding supported through external library LAME, ADU MP3 and MP3onMP4 also supported
MPEG-4 Audio Lossless Coding (ALS)X
Musepack SV7X
Musepack SV8X
Nellymoser AsaoXX
On2 AVC (Audio for Video Codec)X
OpusEEsupported through external library libopus
PCM A-lawXX
PCM mu-lawXX
PCM signed 8-bit planarXX
PCM signed 16-bit big-endian planarXX
PCM signed 16-bit little-endian planarXX
PCM signed 24-bit little-endian planarXX
PCM signed 32-bit little-endian planarXX
PCM 32-bit floating point big-endianXX
PCM 32-bit floating point little-endianXX
PCM 64-bit floating point big-endianXX
PCM 64-bit floating point little-endianXX
PCM D-Cinema audio signed 24-bitXX
PCM signed 8-bitXX
PCM signed 16-bit big-endianXX
PCM signed 16-bit little-endianXX
PCM signed 24-bit big-endianXX
PCM signed 24-bit little-endianXX
PCM signed 32-bit big-endianXX
PCM signed 32-bit little-endianXX
PCM signed 16/20/24-bit big-endian in MPEG-TSX
PCM unsigned 8-bitXX
PCM unsigned 16-bit big-endianXX
PCM unsigned 16-bit little-endianXX
PCM unsigned 24-bit big-endianXX
PCM unsigned 24-bit little-endianXX
PCM unsigned 32-bit big-endianXX
PCM unsigned 32-bit little-endianXX
PCM ZorkX
QCELP / PureVoiceX
QDesign Music Codec 2XThere are still some distortions.
RealAudio 1.0 (14.4K)XXReal 14400 bit/s codec
RealAudio 2.0 (28.8K)XReal 28800 bit/s codec
RealAudio 3.0 (dnet)IXXReal low bitrate AC-3 codec
RealAudio LosslessX
RealAudio SIPR / ACELP.NETX
ShortenX
Sierra VMD audioXUsed in Sierra VMD files.
Smacker audioX
SMPTE 302M AES3 audioXX
SonicXXexperimental codec
Sonic losslessXXexperimental codec
SpeexEEsupported through external library libspeex
TAK (Tom’s lossless Audio Kompressor)X
True Audio (TTA)XX
TrueHDXUsed in HD-DVD and Blu-Ray discs.
TwinVQ (VQF flavor)X
VIMAXUsed in LucasArts SMUSH animations.
VorbisEXA native but very primitive encoder exists.
Voxware MetaSoundX
WavPackXX
Westwood Audio (SND1)X
Windows Media Audio 1XX
Windows Media Audio 2XX
Windows Media Audio LosslessX
Windows Media Audio ProX
Windows Media Audio VoiceX
+ +

X means that encoding (resp. decoding) is supported. +

+

E means that support is provided through an external library. +

+

I means that an integer-only version is available, too (ensures high +performance on systems without hardware floating point support). +

+ +

2.5 Subtitle Formats

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NameMuxingDemuxingEncodingDecoding
3GPP Timed TextXX
AQTitleXX
DVBXXXX
DVB teletextXE
DVDXXXX
JACOsubXXX
MicroDVDXXX
MPL2XX
MPsub (MPlayer)XX
PGSX
PJS (Phoenix)XX
RealTextXX
SAMIXX
SSA/ASSXXXX
SubRip (SRT)XXXX
SubViewer v1XX
SubViewerXX
TED Talks captionsXX
VobSub (IDX+SUB)XX
VPlayerXX
WebVTTXXX
XSUBXX
+ +

X means that the feature is supported. +

+

E means that support is provided through an external library. +

+ +

2.6 Network Protocols

+ + + + + + + + + + + + + + + + + + + + + + + + +
NameSupport
fileX
FTPX
GopherX
HLSX
HTTPX
HTTPSX
MMSHX
MMSTX
pipeX
RTMPX
RTMPEX
RTMPSX
RTMPTX
RTMPTEX
RTMPTSX
RTPX
SCTPX
SFTPE
TCPX
TLSX
UDPX
+ +

X means that the protocol is supported. +

+

E means that support is provided through an external library. +

+ + +

2.7 Input/Output Devices

+ + + + + + + + + + + + + + + + + + + + + +
NameInputOutput
ALSAXX
BKTRX
cacaX
DV1394X
Lavfi virtual deviceX
Linux framebufferXX
JACKX
LIBCDIOX
LIBDC1394X
OpenALX
OpenGLX
OSSXX
PulseAudioXX
SDLX
Video4Linux2XX
VfW captureX
X11 grabbingX
Win32 grabbingX
+ +

X means that input/output is supported. +

+ +

2.8 Timecode

+ + + + + + + + + +
Codec/formatReadWrite
AVIXX
DVXX
GXFXX
MOVXX
MPEG1/2XX
MXFXX
+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/git-howto.html b/3-Postprocessing/ffmpeg/doc/git-howto.html new file mode 100644 index 0000000..4a4de1a --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/git-howto.html @@ -0,0 +1,459 @@ + + + + + +FFmpeg documentation : Using git to develop FFmpeg: + + + + + + + + + + +
+
+ + +

Using git to develop FFmpeg

+ + +

Table of Contents

+ + + +

1. Introduction

+ +

This document aims in giving some quick references on a set of useful git +commands. You should always use the extensive and detailed documentation +provided directly by git: +

+
 
git --help
+man git
+
+ +

shows you the available subcommands, +

+
 
git <command> --help
+man git-<command>
+
+ +

shows information about the subcommand <command>. +

+

Additional information could be found on the +Git Reference website +

+

For more information about the Git project, visit the +

+

Git website +

+

Consult these resources whenever you have problems, they are quite exhaustive. +

+

What follows now is a basic introduction to Git and some FFmpeg-specific +guidelines to ease the contribution to the project +

+ +

2. Basics Usage

+ + +

2.1 Get GIT

+ +

You can get git from http://git-scm.com/ +Most distribution and operating system provide a package for it. +

+ + +

2.2 Cloning the source tree

+ +
 
git clone git://source.ffmpeg.org/ffmpeg <target>
+
+ +

This will put the FFmpeg sources into the directory <target>. +

+
 
git clone git@source.ffmpeg.org:ffmpeg <target>
+
+ +

This will put the FFmpeg sources into the directory <target> and let +you push back your changes to the remote repository. +

+

Make sure that you do not have Windows line endings in your checkouts, +otherwise you may experience spurious compilation failures. One way to +achieve this is to run +

+
 
git config --global core.autocrlf false
+
+ + + +

2.3 Updating the source tree to the latest revision

+ +
 
git pull (--rebase)
+
+ +

pulls in the latest changes from the tracked branch. The tracked branch +can be remote. By default the master branch tracks the branch master in +the remote origin. +

+
+

--rebase (see below) is recommended. +

+ +

2.4 Rebasing your local branches

+ +
 
git pull --rebase
+
+ +

fetches the changes from the main repository and replays your local commits +over it. This is required to keep all your local changes at the top of +FFmpeg’s master tree. The master tree will reject pushes with merge commits. +

+ + +

2.5 Adding/removing files/directories

+ +
 
git add [-A] <filename/dirname>
+git rm [-r] <filename/dirname>
+
+ +

GIT needs to get notified of all changes you make to your working +directory that makes files appear or disappear. +Line moves across files are automatically tracked. +

+ + +

2.6 Showing modifications

+ +
 
git diff <filename(s)>
+
+ +

will show all local modifications in your working directory as unified diff. +

+ + +

2.7 Inspecting the changelog

+ +
 
git log <filename(s)>
+
+ +

You may also use the graphical tools like gitview or gitk or the web +interface available at http://source.ffmpeg.org/ +

+ +

2.8 Checking source tree status

+ +
 
git status
+
+ +

detects all the changes you made and lists what actions will be taken in case +of a commit (additions, modifications, deletions, etc.). +

+ + +

2.9 Committing

+ +
 
git diff --check
+
+ +

to double check your changes before committing them to avoid trouble later +on. All experienced developers do this on each and every commit, no matter +how small. +Every one of them has been saved from looking like a fool by this many times. +It’s very easy for stray debug output or cosmetic modifications to slip in, +please avoid problems through this extra level of scrutiny. +

+

For cosmetics-only commits you should get (almost) empty output from +

+
 
git diff -w -b <filename(s)>
+
+ +

Also check the output of +

+
 
git status
+
+ +

to make sure you don’t have untracked files or deletions. +

+
 
git add [-i|-p|-A] <filenames/dirnames>
+
+ +

Make sure you have told git your name and email address +

+
 
git config --global user.name "My Name"
+git config --global user.email my@email.invalid
+
+ +

Use –global to set the global configuration for all your git checkouts. +

+

Git will select the changes to the files for commit. Optionally you can use +the interactive or the patch mode to select hunk by hunk what should be +added to the commit. +

+ +
 
git commit
+
+ +

Git will commit the selected changes to your current local branch. +

+

You will be prompted for a log message in an editor, which is either +set in your personal configuration file through +

+
 
git config --global core.editor
+
+ +

or set by one of the following environment variables: +GIT_EDITOR, VISUAL or EDITOR. +

+

Log messages should be concise but descriptive. Explain why you made a change, +what you did will be obvious from the changes themselves most of the time. +Saying just "bug fix" or "10l" is bad. Remember that people of varying skill +levels look at and educate themselves while reading through your code. Don’t +include filenames in log messages, Git provides that information. +

+

Possibly make the commit message have a terse, descriptive first line, an +empty line and then a full description. The first line will be used to name +the patch by git format-patch. +

+ +

2.10 Preparing a patchset

+ +
 
git format-patch <commit> [-o directory]
+
+ +

will generate a set of patches for each commit between <commit> and +current HEAD. E.g. +

+
 
git format-patch origin/master
+
+ +

will generate patches for all commits on current branch which are not +present in upstream. +A useful shortcut is also +

+
 
git format-patch -n
+
+ +

which will generate patches from last n commits. +By default the patches are created in the current directory. +

+ +

2.11 Sending patches for review

+ +
 
git send-email <commit list|directory>
+
+ +

will send the patches created by git format-patch or directly +generates them. All the email fields can be configured in the global/local +configuration or overridden by command line. +Note that this tool must often be installed separately (e.g. git-email +package on Debian-based distros). +

+ + +

2.12 Renaming/moving/copying files or contents of files

+ +

Git automatically tracks such changes, making those normal commits. +

+
 
mv/cp path/file otherpath/otherfile
+git add [-A] .
+git commit
+
+ + + +

3. Git configuration

+ +

In order to simplify a few workflows, it is advisable to configure both +your personal Git installation and your local FFmpeg repository. +

+ +

3.1 Personal Git installation

+ +

Add the following to your ‘~/.gitconfig’ to help git send-email +and git format-patch detect renames: +

+
 
[diff]
+        renames = copy
+
+ + +

3.2 Repository configuration

+ +

In order to have git send-email automatically send patches +to the ffmpeg-devel mailing list, add the following stanza +to ‘/path/to/ffmpeg/repository/.git/config’: +

+
 
[sendemail]
+        to = ffmpeg-devel@ffmpeg.org
+
+ + +

4. FFmpeg specific

+ + +

4.1 Reverting broken commits

+ +
 
git reset <commit>
+
+ +

git reset will uncommit the changes till <commit> rewriting +the current branch history. +

+
 
git commit --amend
+
+ +

allows one to amend the last commit details quickly. +

+
 
git rebase -i origin/master
+
+ +

will replay local commits over the main repository allowing to edit, merge +or remove some of them in the process. +

+
+

git reset, git commit --amend and git rebase +rewrite history, so you should use them ONLY on your local or topic branches. +The main repository will reject those changes. +

+
 
git revert <commit>
+
+ +

git revert will generate a revert commit. This will not make the +faulty commit disappear from the history. +

+ +

4.2 Pushing changes to remote trees

+ +
 
git push
+
+ +

Will push the changes to the default remote (origin). +Git will prevent you from pushing changes if the local and remote trees are +out of sync. Refer to and to sync the local tree. +

+
 
git remote add <name> <url>
+
+ +

Will add additional remote with a name reference, it is useful if you want +to push your local branch for review on a remote host. +

+
 
git push <remote> <refspec>
+
+ +

Will push the changes to the <remote> repository. +Omitting <refspec> makes git push update all the remote +branches matching the local ones. +

+ +

4.3 Finding a specific svn revision

+ +

Since version 1.7.1 git supports :/foo syntax for specifying commits +based on a regular expression. see man gitrevisions +

+
 
git show :/'as revision 23456'
+
+ +

will show the svn changeset r23456. With older git versions searching in +the git log output is the easiest option (especially if a pager with +search capabilities is used). +This commit can be checked out with +

+
 
git checkout -b svn_23456 :/'as revision 23456'
+
+ +

or for git < 1.7.1 with +

+
 
git checkout -b svn_23456 $SHA1
+
+ +

where $SHA1 is the commit hash from the git log output. +

+ + +

5. pre-push checklist

+ +

Once you have a set of commits that you feel are ready for pushing, +work through the following checklist to doublecheck everything is in +proper order. This list tries to be exhaustive. In case you are just +pushing a typo in a comment, some of the steps may be unnecessary. +Apply your common sense, but if in doubt, err on the side of caution. +

+

First, make sure that the commits and branches you are going to push +match what you want pushed and that nothing is missing, extraneous or +wrong. You can see what will be pushed by running the git push command +with –dry-run first. And then inspecting the commits listed with +git log -p 1234567..987654. The git status command +may help in finding local changes that have been forgotten to be added. +

+

Next let the code pass through a full run of our testsuite. +

+
    +
  • make distclean +
  • /path/to/ffmpeg/configure +
  • make check +
  • if fate fails due to missing samples run make fate-rsync and retry +
+ +

Make sure all your changes have been checked before pushing them, the +testsuite only checks against regressions and that only to some extend. It does +obviously not check newly added features/code to be working unless you have +added a test for that (which is recommended). +

+

Also note that every single commit should pass the test suite, not just +the result of a series of patches. +

+

Once everything passed, push the changes to your public ffmpeg clone and post a +merge request to ffmpeg-devel. You can also push them directly but this is not +recommended. +

+ +

6. Server Issues

+ +

Contact the project admins root@ffmpeg.org if you have technical +problems with the GIT server. +

+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/libavcodec.html b/3-Postprocessing/ffmpeg/doc/libavcodec.html new file mode 100644 index 0000000..fce58de --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/libavcodec.html @@ -0,0 +1,78 @@ + + + + + +FFmpeg documentation : Libavcodec + + + + + + + + + + +
+
+ + +

Libavcodec Documentation

+ + +

Table of Contents

+ + + +

1. Description

+ +

The libavcodec library provides a generic encoding/decoding framework +and contains multiple decoders and encoders for audio, video and +subtitle streams, and several bitstream filters. +

+

The shared architecture provides various services ranging from bit +stream I/O to DSP optimizations, and makes it suitable for +implementing robust and fast codecs as well as for experimentation. +

+ + +

2. See Also

+ +

ffmpeg, ffplay, ffprobe, ffserver, +ffmpeg-codecs, bitstream-filters, +libavutil +

+ + +

3. Authors

+ +

The FFmpeg developers. +

+

For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +git log in the FFmpeg source directory, or browsing the +online repository at http://source.ffmpeg.org. +

+

Maintainers for the specific components are listed in the file +‘MAINTAINERS’ in the source code tree. +

+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/libavdevice.html b/3-Postprocessing/ffmpeg/doc/libavdevice.html new file mode 100644 index 0000000..aac1a80 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/libavdevice.html @@ -0,0 +1,75 @@ + + + + + +FFmpeg documentation : Libavdevice + + + + + + + + + + +
+
+ + +

Libavdevice Documentation

+ + +

Table of Contents

+ + + +

1. Description

+ +

The libavdevice library provides a generic framework for grabbing from +and rendering to many common multimedia input/output devices, and +supports several input and output devices, including Video4Linux2, +VfW, DShow, and ALSA. +

+ + +

2. See Also

+ +

ffmpeg, ffplay, ffprobe, ffserver, +ffmpeg-devices, +libavutil, libavcodec, libavformat +

+ + +

3. Authors

+ +

The FFmpeg developers. +

+

For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +git log in the FFmpeg source directory, or browsing the +online repository at http://source.ffmpeg.org. +

+

Maintainers for the specific components are listed in the file +‘MAINTAINERS’ in the source code tree. +

+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/libavfilter.html b/3-Postprocessing/ffmpeg/doc/libavfilter.html new file mode 100644 index 0000000..cbdd2e1 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/libavfilter.html @@ -0,0 +1,74 @@ + + + + + +FFmpeg documentation : Libavfilter + + + + + + + + + + +
+
+ + +

Libavfilter Documentation

+ + +

Table of Contents

+ + + +

1. Description

+ +

The libavfilter library provides a generic audio/video filtering +framework containing several filters, sources and sinks. +

+ + +

2. See Also

+ +

ffmpeg, ffplay, ffprobe, ffserver, +ffmpeg-filters, +libavutil, libswscale, libswresample, +libavcodec, libavformat, libavdevice +

+ + +

3. Authors

+ +

The FFmpeg developers. +

+

For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +git log in the FFmpeg source directory, or browsing the +online repository at http://source.ffmpeg.org. +

+

Maintainers for the specific components are listed in the file +‘MAINTAINERS’ in the source code tree. +

+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/libavformat.html b/3-Postprocessing/ffmpeg/doc/libavformat.html new file mode 100644 index 0000000..149404a --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/libavformat.html @@ -0,0 +1,78 @@ + + + + + +FFmpeg documentation : Libavformat + + + + + + + + + + +
+
+ + +

Libavformat Documentation

+ + +

Table of Contents

+ + + +

1. Description

+ +

The libavformat library provides a generic framework for multiplexing +and demultiplexing (muxing and demuxing) audio, video and subtitle +streams. It encompasses multiple muxers and demuxers for multimedia +container formats. +

+

It also supports several input and output protocols to access a media +resource. +

+ + +

2. See Also

+ +

ffmpeg, ffplay, ffprobe, ffserver, +ffmpeg-formats, ffmpeg-protocols, +libavutil, libavcodec +

+ + +

3. Authors

+ +

The FFmpeg developers. +

+

For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +git log in the FFmpeg source directory, or browsing the +online repository at http://source.ffmpeg.org. +

+

Maintainers for the specific components are listed in the file +‘MAINTAINERS’ in the source code tree. +

+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/libavutil.html b/3-Postprocessing/ffmpeg/doc/libavutil.html new file mode 100644 index 0000000..f341f95 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/libavutil.html @@ -0,0 +1,97 @@ + + + + + +FFmpeg documentation : Libavutil + + + + + + + + + + +
+
+ + +

Libavutil Documentation

+ + +

Table of Contents

+ + + +

1. Description

+ +

The libavutil library is a utility library to aid portable +multimedia programming. It contains safe portable string functions, +random number generators, data structures, additional mathematics +functions, cryptography and multimedia related functionality (like +enumerations for pixel and sample formats). It is not a library for +code needed by both libavcodec and libavformat. +

+

The goals for this library is to be: +

+
+
Modular
+

It should have few interdependencies and the possibility of disabling individual +parts during ./configure. +

+
+
Small
+

Both sources and objects should be small. +

+
+
Efficient
+

It should have low CPU and memory usage. +

+
+
Useful
+

It should avoid useless features that almost no one needs. +

+
+ + + +

2. See Also

+ +

ffmpeg, ffplay, ffprobe, ffserver, +ffmpeg-utils +

+ + +

3. Authors

+ +

The FFmpeg developers. +

+

For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +git log in the FFmpeg source directory, or browsing the +online repository at http://source.ffmpeg.org. +

+

Maintainers for the specific components are listed in the file +‘MAINTAINERS’ in the source code tree. +

+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/libswresample.html b/3-Postprocessing/ffmpeg/doc/libswresample.html new file mode 100644 index 0000000..128562b --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/libswresample.html @@ -0,0 +1,100 @@ + + + + + +FFmpeg documentation : Libswresample + + + + + + + + + + +
+
+ + +

Libswresample Documentation

+ + +

Table of Contents

+ + + +

1. Description

+ +

The libswresample library performs highly optimized audio resampling, +rematrixing and sample format conversion operations. +

+

Specifically, this library performs the following conversions: +

+
    +
  • +Resampling: is the process of changing the audio rate, for +example from a high sample rate of 44100Hz to 8000Hz. Audio +conversion from high to low sample rate is a lossy process. Several +resampling options and algorithms are available. + +
  • +Format conversion: is the process of converting the type of +samples, for example from 16-bit signed samples to unsigned 8-bit or +float samples. It also handles packing conversion, when passing from +packed layout (all samples belonging to distinct channels interleaved +in the same buffer), to planar layout (all samples belonging to the +same channel stored in a dedicated buffer or "plane"). + +
  • +Rematrixing: is the process of changing the channel layout, for +example from stereo to mono. When the input channels cannot be mapped +to the output streams, the process is lossy, since it involves +different gain factors and mixing. +
+ +

Various other audio conversions (e.g. stretching and padding) are +enabled through dedicated options. +

+ + +

2. See Also

+ +

ffmpeg, ffplay, ffprobe, ffserver, +ffmpeg-resampler, +libavutil +

+ + +

3. Authors

+ +

The FFmpeg developers. +

+

For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +git log in the FFmpeg source directory, or browsing the +online repository at http://source.ffmpeg.org. +

+

Maintainers for the specific components are listed in the file +‘MAINTAINERS’ in the source code tree. +

+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/libswscale.html b/3-Postprocessing/ffmpeg/doc/libswscale.html new file mode 100644 index 0000000..64c3e4d --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/libswscale.html @@ -0,0 +1,93 @@ + + + + + +FFmpeg documentation : Libswscale + + + + + + + + + + +
+
+ + +

Libswscale Documentation

+ + +

Table of Contents

+ + + +

1. Description

+ +

The libswscale library performs highly optimized image scaling and +colorspace and pixel format conversion operations. +

+

Specifically, this library performs the following conversions: +

+
    +
  • +Rescaling: is the process of changing the video size. Several +rescaling options and algorithms are available. This is usually a +lossy process. + +
  • +Pixel format conversion: is the process of converting the image +format and colorspace of the image, for example from planar YUV420P to +RGB24 packed. It also handles packing conversion, that is converts +from packed layout (all pixels belonging to distinct planes +interleaved in the same buffer), to planar layout (all samples +belonging to the same plane stored in a dedicated buffer or "plane"). + +

    This is usually a lossy process in case the source and destination +colorspaces differ. +

+ + + +

2. See Also

+ +

ffmpeg, ffplay, ffprobe, ffserver, +ffmpeg-scaler, +libavutil +

+ + +

3. Authors

+ +

The FFmpeg developers. +

+

For details about the authorship, see the Git history of the project +(git://source.ffmpeg.org/ffmpeg), e.g. by typing the command +git log in the FFmpeg source directory, or browsing the +online repository at http://source.ffmpeg.org. +

+

Maintainers for the specific components are listed in the file +‘MAINTAINERS’ in the source code tree. +

+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/nut.html b/3-Postprocessing/ffmpeg/doc/nut.html new file mode 100644 index 0000000..bbc6cf8 --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/nut.html @@ -0,0 +1,183 @@ + + + + + +FFmpeg documentation : NUT: + + + + + + + + + + +
+
+ + +

NUT

+ + +

Table of Contents

+ + + +

1. Description

+

NUT is a low overhead generic container format. It stores audio, video, +subtitle and user-defined streams in a simple, yet efficient, way. +

+

It was created by a group of FFmpeg and MPlayer developers in 2003 +and was finalized in 2008. +

+

The official nut specification is at svn://svn.mplayerhq.hu/nut +In case of any differences between this text and the official specification, +the official specification shall prevail. +

+ +

2. Container-specific codec tags

+ + +

2.1 Generic raw YUVA formats

+ +

Since many exotic planar YUVA pixel formats are not considered by +the AVI/QuickTime FourCC lists, the following scheme is adopted for +representing them. +

+

The first two bytes can contain the values: +Y1 = only Y +Y2 = Y+A +Y3 = YUV +Y4 = YUVA +

+

The third byte represents the width and height chroma subsampling +values for the UV planes, that is the amount to shift the luma +width/height right to find the chroma width/height. +

+

The fourth byte is the number of bits used (8, 16, ...). +

+

If the order of bytes is inverted, that means that each component has +to be read big-endian. +

+ +

2.2 Raw Audio

+ + + + + + +
ALAWA-LAW
ULAWMU-LAW
P<type><interleaving><bits>little-endian PCM
<bits><interleaving><type>Pbig-endian PCM
+ +

<type> is S for signed integer, U for unsigned integer, F for IEEE float +<interleaving> is D for default, P is for planar. +<bits> is 8/16/24/32 +

+
 
PFD[32]   would for example be signed 32 bit little-endian IEEE float
+
+ + +

2.3 Subtitles

+ + + + + + +
UTF8Raw UTF-8
SSA[0]SubStation Alpha
DVDSDVD subtitles
DVBSDVB subtitles
+ + +

2.4 Raw Data

+ + + +
UTF8Raw UTF-8
+ + +

2.5 Codecs

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
3IV1non-compliant MPEG-4 generated by old 3ivx
ASV1Asus Video
ASV2Asus Video 2
CVIDCinepak
CYUVCreative YUV
DIVXnon-compliant MPEG-4 generated by old DivX
DUCKTruemotion 1
FFV1FFmpeg video 1
FFVHFFmpeg Huffyuv
H261ITU H.261
H262ITU H.262
H263ITU H.263
H264ITU H.264
HFYUHuffyuv
I263Intel H.263
IV31Indeo 3.1
IV32Indeo 3.2
IV50Indeo 5.0
LJPGITU JPEG (lossless)
MJLSITU JPEG-LS
MJPGITU JPEG
MPG4MS MPEG-4v1 (not ISO MPEG-4)
MP42MS MPEG-4v2
MP43MS MPEG-4v3
MP4VISO MPEG-4 Part 2 Video (from old encoders)
mpg1ISO MPEG-1 Video
mpg2ISO MPEG-2 Video
MRLEMS RLE
MSVCMS Video 1
RT21Indeo 2.1
RV10RealVideo 1.0
RV20RealVideo 2.0
RV30RealVideo 3.0
RV40RealVideo 4.0
SNOWFFmpeg Snow
SVQ1Sorenson Video 1
SVQ3Sorenson Video 3
theoXiph Theora
TM20Truemotion 2.0
UMP4non-compliant MPEG-4 generated by UB Video MPEG-4
VCR1ATI VCR1
VP30VP 3.0
VP31VP 3.1
VP50VP 5.0
VP60VP 6.0
VP61VP 6.1
VP62VP 6.2
VP70VP 7.0
WMV1MS WMV7
WMV2MS WMV8
WMV3MS WMV9
WV1Fnon-compliant MPEG-4 generated by ?
WVC1VC-1
XVIDnon-compliant MPEG-4 generated by old Xvid
XVIXnon-compliant MPEG-4 generated by old Xvid with interlacing bug
+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/doc/platform.html b/3-Postprocessing/ffmpeg/doc/platform.html new file mode 100644 index 0000000..7c9396c --- /dev/null +++ b/3-Postprocessing/ffmpeg/doc/platform.html @@ -0,0 +1,422 @@ + + + + + +FFmpeg documentation : Platform Specific Information: + + + + + + + + + + +
+
+ + +

Platform Specific Information

+ + +

Table of Contents

+ + + +

1. Unix-like

+ +

Some parts of FFmpeg cannot be built with version 2.15 of the GNU +assembler which is still provided by a few AMD64 distributions. To +make sure your compiler really uses the required version of gas +after a binutils upgrade, run: +

+
 
$(gcc -print-prog-name=as) --version
+
+ +

If not, then you should install a different compiler that has no +hard-coded path to gas. In the worst case pass --disable-asm +to configure. +

+ +

1.1 BSD

+ +

BSD make will not build FFmpeg, you need to install and use GNU Make +(gmake). +

+ +

1.2 (Open)Solaris

+ +

GNU Make is required to build FFmpeg, so you have to invoke (gmake), +standard Solaris Make will not work. When building with a non-c99 front-end +(gcc, generic suncc) add either --extra-libs=/usr/lib/values-xpg6.o +or --extra-libs=/usr/lib/64/values-xpg6.o to the configure options +since the libc is not c99-compliant by default. The probes performed by +configure may raise an exception leading to the death of configure itself +due to a bug in the system shell. Simply invoke a different shell such as +bash directly to work around this: +

+
 
bash ./configure
+
+ +

+

+

1.3 Darwin (Mac OS X, iPhone)

+ +

The toolchain provided with Xcode is sufficient to build the basic +unacelerated code. +

+

Mac OS X on PowerPC or ARM (iPhone) requires a preprocessor from +https://github.com/FFmpeg/gas-preprocessor or +https://github.com/yuvi/gas-preprocessor(currently outdated) to build the optimized +assembler functions. Put the Perl script somewhere +in your PATH, FFmpeg’s configure will pick it up automatically. +

+

Mac OS X on amd64 and x86 requires yasm to build most of the +optimized assembler functions. Fink, +Gentoo Prefix, +Homebrew +or MacPorts can easily provide it. +

+ + +

2. DOS

+ +

Using a cross-compiler is preferred for various reasons. +http://www.delorie.com/howto/djgpp/linux-x-djgpp.html +

+ + +

3. OS/2

+ +

For information about compiling FFmpeg on OS/2 see +http://www.edm2.com/index.php/FFmpeg. +

+ + +

4. Windows

+ +

To get help and instructions for building FFmpeg under Windows, check out +the FFmpeg Windows Help Forum at http://ffmpeg.zeranoe.com/forum/. +

+ +

4.1 Native Windows compilation using MinGW or MinGW-w64

+ +

FFmpeg can be built to run natively on Windows using the MinGW or MinGW-w64 +toolchains. Install the latest versions of MSYS and MinGW or MinGW-w64 from +http://www.mingw.org/ or http://mingw-w64.sourceforge.net/. +You can find detailed installation instructions in the download section and +the FAQ. +

+

Notes: +

+
    +
  • Building natively using MSYS can be sped up by disabling implicit rules +in the Makefile by calling make -r instead of plain make. This +speed up is close to non-existent for normal one-off builds and is only +noticeable when running make for a second time (for example during +make install). + +
  • In order to compile FFplay, you must have the MinGW development library +of SDL and pkg-config installed. + +
  • By using ./configure --enable-shared when configuring FFmpeg, +you can build the FFmpeg libraries (e.g. libavutil, libavcodec, +libavformat) as DLLs. + +
+ + +

4.2 Microsoft Visual C++ or Intel C++ Compiler for Windows

+ +

FFmpeg can be built with MSVC 2012 or earlier using a C99-to-C89 conversion utility +and wrapper, or with MSVC 2013 and ICL natively. +

+

You will need the following prerequisites: +

+ + +

To set up a proper environment in MSYS, you need to run msys.bat from +the Visual Studio or Intel Compiler command prompt. +

+

Place yasm.exe somewhere in your PATH. If using MSVC 2012 or +earlier, place c99wrap.exe and c99conv.exe somewhere in your +PATH as well. +

+

Next, make sure any other headers and libs you want to use, such as zlib, are +located in a spot that the compiler can see. Do so by modifying the LIB +and INCLUDE environment variables to include the Windows-style +paths to these directories. Alternatively, you can try and use the +--extra-cflags/--extra-ldflags configure options. If using MSVC +2012 or earlier, place inttypes.h somewhere the compiler can see too. +

+

Finally, run: +

+
 
For MSVC:
+./configure --toolchain=msvc
+
+For ICL:
+./configure --toolchain=icl
+
+make
+make install
+
+ +

If you wish to compile shared libraries, add --enable-shared to your +configure options. Note that due to the way MSVC and ICL handle DLL imports and +exports, you cannot compile static and shared libraries at the same time, and +enabling shared libraries will automatically disable the static ones. +

+

Notes: +

+
    +
  • It is possible that coreutils’ link.exe conflicts with MSVC’s linker. +You can find out by running which link to see which link.exe you +are using. If it is located at /bin/link.exe, then you have the wrong one +in your PATH. Either move or remove that copy, or make sure MSVC’s +link.exe takes precedence in your PATH over coreutils’. + +
  • If you wish to build with zlib support, you will have to grab a compatible +zlib binary from somewhere, with an MSVC import lib, or if you wish to link +statically, you can follow the instructions below to build a compatible +zlib.lib with MSVC. Regardless of which method you use, you must still +follow step 3, or compilation will fail. +
      +
    1. Grab the zlib sources. +
    2. Edit win32/Makefile.msc so that it uses -MT instead of -MD, since +this is how FFmpeg is built as well. +
    3. Edit zconf.h and remove its inclusion of unistd.h. This gets +erroneously included when building FFmpeg. +
    4. Run nmake -f win32/Makefile.msc. +
    5. Move zlib.lib, zconf.h, and zlib.h to somewhere MSVC +can see. +
    + +
  • FFmpeg has been tested with the following on i686 and x86_64: +
      +
    • Visual Studio 2010 Pro and Express +
    • Visual Studio 2012 Pro and Express +
    • Visual Studio 2013 Pro and Express +
    • Intel Composer XE 2013 +
    • Intel Composer XE 2013 SP1 +
    +

    Anything else is not officially supported. +

    +
+ + +

4.2.1 Linking to FFmpeg with Microsoft Visual C++

+ +

If you plan to link with MSVC-built static libraries, you will need +to make sure you have Runtime Library set to +Multi-threaded (/MT) in your project’s settings. +

+

You will need to define inline to something MSVC understands: +

 
#define inline __inline
+
+ +

Also note, that as stated in Microsoft Visual C++, you will need +an MSVC-compatible inttypes.h. +

+

If you plan on using import libraries created by dlltool, you must +set References to No (/OPT:NOREF) under the linker optimization +settings, otherwise the resulting binaries will fail during runtime. +This is not required when using import libraries generated by lib.exe. +This issue is reported upstream at +http://sourceware.org/bugzilla/show_bug.cgi?id=12633. +

+

To create import libraries that work with the /OPT:REF option +(which is enabled by default in Release mode), follow these steps: +

+
    +
  1. Open the Visual Studio Command Prompt. + +

    Alternatively, in a normal command line prompt, call ‘vcvars32.bat’ +which sets up the environment variables for the Visual C++ tools +(the standard location for this file is something like +‘C:\Program Files (x86_\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat’). +

    +
  2. Enter the ‘bin’ directory where the created LIB and DLL files +are stored. + +
  3. Generate new import libraries with lib.exe: + +
     
    lib /machine:i386 /def:..\lib\foo-version.def  /out:foo.lib
    +
    + +

    Replace foo-version and foo with the respective library names. +

    +
+ +

+

+

4.3 Cross compilation for Windows with Linux

+ +

You must use the MinGW cross compilation tools available at +http://www.mingw.org/. +

+

Then configure FFmpeg with the following options: +

 
./configure --target-os=mingw32 --cross-prefix=i386-mingw32msvc-
+
+

(you can change the cross-prefix according to the prefix chosen for the +MinGW tools). +

+

Then you can easily test FFmpeg with Wine. +

+ +

4.4 Compilation under Cygwin

+ +

Please use Cygwin 1.7.x as the obsolete 1.5.x Cygwin versions lack +llrint() in its C library. +

+

Install your Cygwin with all the "Base" packages, plus the +following "Devel" ones: +

 
binutils, gcc4-core, make, git, mingw-runtime, texi2html
+
+ +

In order to run FATE you will also need the following "Utils" packages: +

 
bc, diffutils
+
+ +

If you want to build FFmpeg with additional libraries, download Cygwin +"Devel" packages for Ogg and Vorbis from any Cygwin packages repository: +

 
libogg-devel, libvorbis-devel
+
+ +

These library packages are only available from +Cygwin Ports: +

+
 
yasm, libSDL-devel, libfaac-devel, libaacplus-devel, libgsm-devel, libmp3lame-devel,
+libschroedinger1.0-devel, speex-devel, libtheora-devel, libxvidcore-devel
+
+ +

The recommendation for x264 is to build it from source, as it evolves too +quickly for Cygwin Ports to be up to date. +

+ +

4.5 Crosscompilation for Windows under Cygwin

+ +

With Cygwin you can create Windows binaries that do not need the cygwin1.dll. +

+

Just install your Cygwin as explained before, plus these additional +"Devel" packages: +

 
gcc-mingw-core, mingw-runtime, mingw-zlib
+
+ +

and add some special flags to your configure invocation. +

+

For a static build run +

 
./configure --target-os=mingw32 --extra-cflags=-mno-cygwin --extra-libs=-mno-cygwin
+
+ +

and for a build with shared libraries +

 
./configure --target-os=mingw32 --enable-shared --disable-static --extra-cflags=-mno-cygwin --extra-libs=-mno-cygwin
+
+ + +

5. Plan 9

+ +

The native Plan 9 compiler +does not implement all the C99 features needed by FFmpeg so the gcc +port must be used. Furthermore, a few items missing from the C +library and shell environment need to be fixed. +

+
    +
  • GNU awk, grep, make, and sed + +

    Working packages of these tools can be found at +ports2plan9. +They can be installed with 9front’s pkg +utility by setting pkgpath to +http://ports2plan9.googlecode.com/files/. +

    +
  • Missing/broken head and printf commands + +

    Replacements adequate for building FFmpeg can be found in the +compat/plan9 directory. Place these somewhere they will be +found by the shell. These are not full implementations of the +commands and are not suitable for general use. +

    +
  • Missing C99 stdint.h and inttypes.h + +

    Replacement headers are available from +http://code.google.com/p/plan9front/issues/detail?id=152. +

    +
  • Missing or non-standard library functions + +

    Some functions in the C library are missing or incomplete. The +gcc-apelibs-1207 package from +ports2plan9 +includes an updated C library, but installing the full package gives +unusable executables. Instead, keep the files from gccbin.tgz +under /386/lib/gnu. From the libc.a archive in the +gcc-apelibs-1207 package, extract the following object files and +turn them into a library: +

    +
      +
    • strerror.o +
    • strtoll.o +
    • snprintf.o +
    • vsnprintf.o +
    • vfprintf.o +
    • _IO_getc.o +
    • _IO_putc.o +
    + +

    Use the --extra-libs option of configure to inform the +build system of this library. +

    +
  • FPU exceptions enabled by default + +

    Unlike most other systems, Plan 9 enables FPU exceptions by default. +These must be disabled before calling any FFmpeg functions. While the +included tools will do this automatically, other users of the +libraries must do it themselves. +

    +
+ +
+This document was generated by Kyle Schwarz on April 23, 2014 using texi2html 1.82.
diff --git a/3-Postprocessing/ffmpeg/ff-prompt.bat b/3-Postprocessing/ffmpeg/ff-prompt.bat new file mode 100644 index 0000000..a0d6e09 --- /dev/null +++ b/3-Postprocessing/ffmpeg/ff-prompt.bat @@ -0,0 +1,35 @@ +ECHO OFF +REM FF Prompt 1.1 +REM Open a command prompt to run ffmpeg/ffplay/ffprobe +REM Copyright (C) 2013 Kyle Schwarz + +TITLE FF Prompt + +IF NOT EXIST bin\ffmpeg.exe ( + CLS + ECHO bin\ffmpeg.exe could not be found. + GOTO:error +) + +CD bin || GOTO:error +PROMPT $G +CLS +ffmpeg -version +SET PATH=%CD%;%PATH% +ECHO. +ECHO For help run: ffmpeg -h +ECHO For formats run: ffmpeg -formats ^| more +ECHO For codecs run: ffmpeg -codecs ^| more +ECHO. +ECHO Current directory is now: "%CD%" +ECHO The bin directory has been added to PATH +ECHO. + +CMD /F:ON /Q /K +GOTO:EOF + +:error + ECHO. + ECHO Press any key to exit. + PAUSE >nul + GOTO:EOF diff --git a/3-Postprocessing/ffmpeg/licenses/bzip2.txt b/3-Postprocessing/ffmpeg/licenses/bzip2.txt new file mode 100644 index 0000000..cc61417 --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/bzip2.txt @@ -0,0 +1,42 @@ + +-------------------------------------------------------------------------- + +This program, "bzip2", the associated library "libbzip2", and all +documentation, are copyright (C) 1996-2010 Julian R Seward. All +rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. The origin of this software must not be misrepresented; you must + not claim that you wrote the original software. If you use this + software in a product, an acknowledgment in the product + documentation would be appreciated but is not required. + +3. Altered source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + +4. The name of the author may not be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Julian Seward, jseward@bzip.org +bzip2/libbzip2 version 1.0.6 of 6 September 2010 + +-------------------------------------------------------------------------- diff --git a/3-Postprocessing/ffmpeg/licenses/fontconfig.txt b/3-Postprocessing/ffmpeg/licenses/fontconfig.txt new file mode 100644 index 0000000..2a5d777 --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/fontconfig.txt @@ -0,0 +1,27 @@ +fontconfig/COPYING + +Copyright © 2000,2001,2002,2003,2004,2006,2007 Keith Packard +Copyright © 2005 Patrick Lam +Copyright © 2009 Roozbeh Pournader +Copyright © 2008,2009 Red Hat, Inc. +Copyright © 2008 Danilo Å egan + + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of the author(s) not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. The authors make no +representations about the suitability of this software for any purpose. It +is provided "as is" without express or implied warranty. + +THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + diff --git a/3-Postprocessing/ffmpeg/licenses/freetype.txt b/3-Postprocessing/ffmpeg/licenses/freetype.txt new file mode 100644 index 0000000..bbaba33 --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/freetype.txt @@ -0,0 +1,169 @@ + The FreeType Project LICENSE + ---------------------------- + + 2006-Jan-27 + + Copyright 1996-2002, 2006 by + David Turner, Robert Wilhelm, and Werner Lemberg + + + +Introduction +============ + + The FreeType Project is distributed in several archive packages; + some of them may contain, in addition to the FreeType font engine, + various tools and contributions which rely on, or relate to, the + FreeType Project. + + This license applies to all files found in such packages, and + which do not fall under their own explicit license. The license + affects thus the FreeType font engine, the test programs, + documentation and makefiles, at the very least. + + This license was inspired by the BSD, Artistic, and IJG + (Independent JPEG Group) licenses, which all encourage inclusion + and use of free software in commercial and freeware products + alike. As a consequence, its main points are that: + + o We don't promise that this software works. However, we will be + interested in any kind of bug reports. (`as is' distribution) + + o You can use this software for whatever you want, in parts or + full form, without having to pay us. (`royalty-free' usage) + + o You may not pretend that you wrote this software. If you use + it, or only parts of it, in a program, you must acknowledge + somewhere in your documentation that you have used the + FreeType code. (`credits') + + We specifically permit and encourage the inclusion of this + software, with or without modifications, in commercial products. + We disclaim all warranties covering The FreeType Project and + assume no liability related to The FreeType Project. + + + Finally, many people asked us for a preferred form for a + credit/disclaimer to use in compliance with this license. We thus + encourage you to use the following text: + + """ + Portions of this software are copyright © The FreeType + Project (www.freetype.org). All rights reserved. + """ + + Please replace with the value from the FreeType version you + actually use. + + +Legal Terms +=========== + +0. Definitions +-------------- + + Throughout this license, the terms `package', `FreeType Project', + and `FreeType archive' refer to the set of files originally + distributed by the authors (David Turner, Robert Wilhelm, and + Werner Lemberg) as the `FreeType Project', be they named as alpha, + beta or final release. + + `You' refers to the licensee, or person using the project, where + `using' is a generic term including compiling the project's source + code as well as linking it to form a `program' or `executable'. + This program is referred to as `a program using the FreeType + engine'. + + This license applies to all files distributed in the original + FreeType Project, including all source code, binaries and + documentation, unless otherwise stated in the file in its + original, unmodified form as distributed in the original archive. + If you are unsure whether or not a particular file is covered by + this license, you must contact us to verify this. + + The FreeType Project is copyright (C) 1996-2000 by David Turner, + Robert Wilhelm, and Werner Lemberg. All rights reserved except as + specified below. + +1. No Warranty +-------------- + + THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO + USE, OF THE FREETYPE PROJECT. + +2. Redistribution +----------------- + + This license grants a worldwide, royalty-free, perpetual and + irrevocable right and license to use, execute, perform, compile, + display, copy, create derivative works of, distribute and + sublicense the FreeType Project (in both source and object code + forms) and derivative works thereof for any purpose; and to + authorize others to exercise some or all of the rights granted + herein, subject to the following conditions: + + o Redistribution of source code must retain this license file + (`FTL.TXT') unaltered; any additions, deletions or changes to + the original files must be clearly indicated in accompanying + documentation. The copyright notices of the unaltered, + original files must be preserved in all copies of source + files. + + o Redistribution in binary form must provide a disclaimer that + states that the software is based in part of the work of the + FreeType Team, in the distribution documentation. We also + encourage you to put an URL to the FreeType web page in your + documentation, though this isn't mandatory. + + These conditions apply to any software derived from or based on + the FreeType Project, not just the unmodified files. If you use + our work, you must acknowledge us. However, no fee need be paid + to us. + +3. Advertising +-------------- + + Neither the FreeType authors and contributors nor you shall use + the name of the other for commercial, advertising, or promotional + purposes without specific prior written permission. + + We suggest, but do not require, that you use one or more of the + following phrases to refer to this software in your documentation + or advertising materials: `FreeType Project', `FreeType Engine', + `FreeType library', or `FreeType Distribution'. + + As you have not signed this license, you are not required to + accept it. However, as the FreeType Project is copyrighted + material, only this license, or another one contracted with the + authors, grants you the right to use, distribute, and modify it. + Therefore, by using, distributing, or modifying the FreeType + Project, you indicate that you understand and accept all the terms + of this license. + +4. Contacts +----------- + + There are two mailing lists related to FreeType: + + o freetype@nongnu.org + + Discusses general use and applications of FreeType, as well as + future and wanted additions to the library and distribution. + If you are looking for support, start in this list if you + haven't found anything to help you in the documentation. + + o freetype-devel@nongnu.org + + Discusses bugs, as well as engine internals, design issues, + specific licenses, porting, etc. + + Our home page can be found at + + http://www.freetype.org + + +--- end of FTL.TXT --- diff --git a/3-Postprocessing/ffmpeg/licenses/frei0r.txt b/3-Postprocessing/ffmpeg/licenses/frei0r.txt new file mode 100644 index 0000000..623b625 --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/frei0r.txt @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/3-Postprocessing/ffmpeg/licenses/gnutls.txt b/3-Postprocessing/ffmpeg/licenses/gnutls.txt new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/gnutls.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/3-Postprocessing/ffmpeg/licenses/lame.txt b/3-Postprocessing/ffmpeg/licenses/lame.txt new file mode 100644 index 0000000..f503049 --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/lame.txt @@ -0,0 +1,481 @@ + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/3-Postprocessing/ffmpeg/licenses/libass.txt b/3-Postprocessing/ffmpeg/licenses/libass.txt new file mode 100644 index 0000000..8351a30 --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/libass.txt @@ -0,0 +1,11 @@ +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/3-Postprocessing/ffmpeg/licenses/libbluray.txt b/3-Postprocessing/ffmpeg/licenses/libbluray.txt new file mode 100644 index 0000000..20fb9c7 --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/libbluray.txt @@ -0,0 +1,458 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS diff --git a/3-Postprocessing/ffmpeg/licenses/libcaca.txt b/3-Postprocessing/ffmpeg/licenses/libcaca.txt new file mode 100644 index 0000000..2978491 --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/libcaca.txt @@ -0,0 +1,14 @@ + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2004 Sam Hocevar + 14 rue de Plaisance, 75014 Paris, France + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. + diff --git a/3-Postprocessing/ffmpeg/licenses/libgsm.txt b/3-Postprocessing/ffmpeg/licenses/libgsm.txt new file mode 100644 index 0000000..28fbb3c --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/libgsm.txt @@ -0,0 +1,35 @@ +Copyright 1992, 1993, 1994 by Jutta Degener and Carsten Bormann, +Technische Universitaet Berlin + +Any use of this software is permitted provided that this notice is not +removed and that neither the authors nor the Technische Universitaet Berlin +are deemed to have made any representations as to the suitability of this +software for any purpose nor are held responsible for any defects of +this software. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. + +As a matter of courtesy, the authors request to be informed about uses +this software has found, about bugs in this software, and about any +improvements that may be of general interest. + +Berlin, 28.11.1994 +Jutta Degener +Carsten Bormann + + oOo + +Since the original terms of 15 years ago maybe do not make our +intentions completely clear given today's refined usage of the legal +terms, we append this additional permission: + + Permission to use, copy, modify, and distribute this software + for any purpose with or without fee is hereby granted, + provided that this notice is not removed and that neither + the authors nor the Technische Universitaet Berlin are + deemed to have made any representations as to the suitability + of this software for any purpose nor are held responsible + for any defects of this software. THERE IS ABSOLUTELY NO + WARRANTY FOR THIS SOFTWARE. + +Berkeley/Bremen, 05.04.2009 +Jutta Degener +Carsten Bormann diff --git a/3-Postprocessing/ffmpeg/licenses/libiconv.txt b/3-Postprocessing/ffmpeg/licenses/libiconv.txt new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/libiconv.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/3-Postprocessing/ffmpeg/licenses/libilbc.txt b/3-Postprocessing/ffmpeg/licenses/libilbc.txt new file mode 100644 index 0000000..4c41b7b --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/libilbc.txt @@ -0,0 +1,29 @@ +Copyright (c) 2011, The WebRTC project authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/3-Postprocessing/ffmpeg/licenses/libmodplug.txt b/3-Postprocessing/ffmpeg/licenses/libmodplug.txt new file mode 100644 index 0000000..59fbf82 --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/libmodplug.txt @@ -0,0 +1 @@ +ModPlug-XMMS and libmodplug are now in the public domain. diff --git a/3-Postprocessing/ffmpeg/licenses/libtheora.txt b/3-Postprocessing/ffmpeg/licenses/libtheora.txt new file mode 100644 index 0000000..c8ccce4 --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/libtheora.txt @@ -0,0 +1,28 @@ +Copyright (C) 2002-2009 Xiph.org Foundation + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +- Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +- Neither the name of the Xiph.org Foundation nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION +OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/3-Postprocessing/ffmpeg/licenses/libvorbis.txt b/3-Postprocessing/ffmpeg/licenses/libvorbis.txt new file mode 100644 index 0000000..28de72a --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/libvorbis.txt @@ -0,0 +1,28 @@ +Copyright (c) 2002-2008 Xiph.org Foundation + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +- Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +- Neither the name of the Xiph.org Foundation nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION +OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/3-Postprocessing/ffmpeg/licenses/libvpx.txt b/3-Postprocessing/ffmpeg/licenses/libvpx.txt new file mode 100644 index 0000000..1ce4434 --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/libvpx.txt @@ -0,0 +1,31 @@ +Copyright (c) 2010, The WebM Project authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google, nor the WebM Project, nor the names + of its contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/3-Postprocessing/ffmpeg/licenses/opencore-amr.txt b/3-Postprocessing/ffmpeg/licenses/opencore-amr.txt new file mode 100644 index 0000000..5ec4bf0 --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/opencore-amr.txt @@ -0,0 +1,191 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the +copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other +entities that control, are controlled by, or are under common control with +that entity. For the purposes of this definition, "control" means (i) the +power, direct or indirect, to cause the direction or management of such +entity, whether by contract or otherwise, or (ii) ownership of fifty +percent (50%) or more of the outstanding shares, or (iii) beneficial +ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, +including but not limited to software source code, documentation source, +and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation +or translation of a Source form, including but not limited to compiled +object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, +made available under the License, as indicated by a copyright notice that +is included in or attached to the work (an example is provided in the +Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, +that is based on (or derived from) the Work and for which the editorial +revisions, annotations, elaborations, or other modifications represent, as +a whole, an original work of authorship. For the purposes of this License, +Derivative Works shall not include works that remain separable from, or +merely link (or bind by name) to the interfaces of, the Work and Derivative +Works thereof. + +"Contribution" shall mean any work of authorship, including the original +version of the Work and any modifications or additions to that Work or +Derivative Works thereof, that is intentionally submitted to Licensor for +inclusion in the Work by the copyright owner or by an individual or Legal +Entity authorized to submit on behalf of the copyright owner. For the +purposes of this definition, "submitted" means any form of electronic, +verbal, or written communication sent to the Licensor or its +representatives, including but not limited to communication on electronic +mailing lists, source code control systems, and issue tracking systems that +are managed by, or on behalf of, the Licensor for the purpose of discussing +and improving the Work, but excluding communication that is conspicuously +marked or otherwise designated in writing by the copyright owner as "Not a +Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on +behalf of whom a Contribution has been received by Licensor and +subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, +non-exclusive, no-charge, royalty-free, irrevocable copyright license to +reproduce, prepare Derivative Works of, publicly display, publicly perform, +sublicense, and distribute the Work and such Derivative Works in Source or +Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, +non-exclusive, no-charge, royalty-free, irrevocable (except as stated in +this section) patent license to make, have made, use, offer to sell, sell, +import, and otherwise transfer the Work, where such license applies only to +those patent claims licensable by such Contributor that are necessarily +infringed by their Contribution(s) alone or by combination of their +Contribution(s) with the Work to which such Contribution(s) was submitted. +If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or +contributory patent infringement, then any patent licenses granted to You +under this License for that Work shall terminate as of the date such +litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or +Derivative Works thereof in any medium, with or without modifications, and +in Source or Object form, provided that You meet the following conditions: + + 1. You must give any other recipients of the Work or Derivative Works a +copy of this License; and + + 2. You must cause any modified files to carry prominent notices stating +that You changed the files; and + + 3. You must retain, in the Source form of any Derivative Works that You +distribute, all copyright, patent, trademark, and attribution notices from +the Source form of the Work, excluding those notices that do not pertain to +any part of the Derivative Works; and + + 4. If the Work includes a "NOTICE" text file as part of its +distribution, then any Derivative Works that You distribute must include a +readable copy of the attribution notices contained within such NOTICE file, +excluding those notices that do not pertain to any part of the Derivative +Works, in at least one of the following places: within a NOTICE text file +distributed as part of the Derivative Works; within the Source form or +documentation, if provided along with the Derivative Works; or, within a +display generated by the Derivative Works, if and wherever such third-party +notices normally appear. The contents of the NOTICE file are for +informational purposes only and do not modify the License. You may add Your +own attribution notices within Derivative Works that You distribute, +alongside or as an addendum to the NOTICE text from the Work, provided that +such additional attribution notices cannot be construed as modifying the +License. + +You may add Your own copyright statement to Your modifications and may +provide additional or different license terms and conditions for use, +reproduction, or distribution of Your modifications, or for any such +Derivative Works as a whole, provided Your use, reproduction, and +distribution of the Work otherwise complies with the conditions stated in +this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any +Contribution intentionally submitted for inclusion in the Work by You to +the Licensor shall be under the terms and conditions of this License, +without any additional terms or conditions. Notwithstanding the above, +nothing herein shall supersede or modify the terms of any separate license +agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade +names, trademarks, service marks, or product names of the Licensor, except +as required for reasonable and customary use in describing the origin of +the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to +in writing, Licensor provides the Work (and each Contributor provides its +Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied, including, without limitation, any +warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or +FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for +determining the appropriateness of using or redistributing the Work and +assume any risks associated with Your exercise of permissions under this +License. + +8. Limitation of Liability. In no event and under no legal theory, whether +in tort (including negligence), contract, or otherwise, unless required by +applicable law (such as deliberate and grossly negligent acts) or agreed to +in writing, shall any Contributor be liable to You for damages, including +any direct, indirect, special, incidental, or consequential damages of any +character arising as a result of this License or out of the use or +inability to use the Work (including but not limited to damages for loss of +goodwill, work stoppage, computer failure or malfunction, or any and all +other commercial damages or losses), even if such Contributor has been +advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the +Work or Derivative Works thereof, You may choose to offer, and charge a fee +for, acceptance of support, warranty, indemnity, or other liability +obligations and/or rights consistent with this License. However, in +accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if +You agree to indemnify, defend, and hold each Contributor harmless for any +liability incurred by, or claims asserted against, such Contributor by +reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included +on the same "printed page" as the copyright notice for easier +identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); you may + not use this file except in compliance with the License. You may obtain a + copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable + law or agreed to in writing, software distributed under the License is + distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the specific language + governing permissions and limitations under the License. diff --git a/3-Postprocessing/ffmpeg/licenses/openjpeg.txt b/3-Postprocessing/ffmpeg/licenses/openjpeg.txt new file mode 100644 index 0000000..f578e33 --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/openjpeg.txt @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2002-2012, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium + * Copyright (c) 2002-2012, Professor Benoit Macq + * Copyright (c) 2003-2012, Antonin Descampe + * Copyright (c) 2003-2009, Francois-Olivier Devaux + * Copyright (c) 2005, Herve Drolon, FreeImage Team + * Copyright (c) 2002-2003, Yannick Verschueren + * Copyright (c) 2001-2003, David Janssens + * Copyright (c) 2011-2012, Centre National d'Etudes Spatiales (CNES), France + * Copyright (c) 2012, CS Systemes d'Information, France + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ diff --git a/3-Postprocessing/ffmpeg/licenses/opus.txt b/3-Postprocessing/ffmpeg/licenses/opus.txt new file mode 100644 index 0000000..f4159e6 --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/opus.txt @@ -0,0 +1,44 @@ +Copyright 2001-2011 Xiph.Org, Skype Limited, Octasic, + Jean-Marc Valin, Timothy B. Terriberry, + CSIRO, Gregory Maxwell, Mark Borgerding, + Erik de Castro Lopo + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +- Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +- Neither the name of Internet Society, IETF or IETF Trust, nor the +names of specific contributors, may be used to endorse or promote +products derived from this software without specific prior written +permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Opus is subject to the royalty-free patent licenses which are +specified at: + +Xiph.Org Foundation: +https://datatracker.ietf.org/ipr/1524/ + +Microsoft Corporation: +https://datatracker.ietf.org/ipr/1914/ + +Broadcom Corporation: +https://datatracker.ietf.org/ipr/1526/ diff --git a/3-Postprocessing/ffmpeg/licenses/rtmpdump.txt b/3-Postprocessing/ffmpeg/licenses/rtmpdump.txt new file mode 100644 index 0000000..d511905 --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/rtmpdump.txt @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/3-Postprocessing/ffmpeg/licenses/schroedinger.txt b/3-Postprocessing/ffmpeg/licenses/schroedinger.txt new file mode 100644 index 0000000..8a68a0d --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/schroedinger.txt @@ -0,0 +1,467 @@ + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. diff --git a/3-Postprocessing/ffmpeg/licenses/soxr.txt b/3-Postprocessing/ffmpeg/licenses/soxr.txt new file mode 100644 index 0000000..1c61878 --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/soxr.txt @@ -0,0 +1,24 @@ +SoX Resampler Library Copyright (c) 2007-13 robs@users.sourceforge.net + +This library is free software; you can redistribute it and/or modify it +under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or (at +your option) any later version. + +This library is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this library; if not, write to the Free Software Foundation, +Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + +Notes + +1. Re software in the `examples' directory: works that are not resampling +examples but are based on the given examples -- for example, applications using +the library -- shall not be considered to be derivative works of the examples. + +2. If building with pffft.c, see the licence embedded in that file. diff --git a/3-Postprocessing/ffmpeg/licenses/speex.txt b/3-Postprocessing/ffmpeg/licenses/speex.txt new file mode 100644 index 0000000..de6fbe2 --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/speex.txt @@ -0,0 +1,35 @@ +Copyright 2002-2008 Xiph.org Foundation +Copyright 2002-2008 Jean-Marc Valin +Copyright 2005-2007 Analog Devices Inc. +Copyright 2005-2008 Commonwealth Scientific and Industrial Research + Organisation (CSIRO) +Copyright 1993, 2002, 2006 David Rowe +Copyright 2003 EpicGames +Copyright 1992-1994 Jutta Degener, Carsten Bormann + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +- Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +- Neither the name of the Xiph.org Foundation nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/3-Postprocessing/ffmpeg/licenses/twolame.txt b/3-Postprocessing/ffmpeg/licenses/twolame.txt new file mode 100644 index 0000000..b1e3f5a --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/twolame.txt @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/3-Postprocessing/ffmpeg/licenses/vid.stab.txt b/3-Postprocessing/ffmpeg/licenses/vid.stab.txt new file mode 100644 index 0000000..a09e1dc --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/vid.stab.txt @@ -0,0 +1,16 @@ +In this project is open source in the sense of the GPL. + + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * diff --git a/3-Postprocessing/ffmpeg/licenses/vo-aacenc.txt b/3-Postprocessing/ffmpeg/licenses/vo-aacenc.txt new file mode 100644 index 0000000..5ec4bf0 --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/vo-aacenc.txt @@ -0,0 +1,191 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the +copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other +entities that control, are controlled by, or are under common control with +that entity. For the purposes of this definition, "control" means (i) the +power, direct or indirect, to cause the direction or management of such +entity, whether by contract or otherwise, or (ii) ownership of fifty +percent (50%) or more of the outstanding shares, or (iii) beneficial +ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, +including but not limited to software source code, documentation source, +and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation +or translation of a Source form, including but not limited to compiled +object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, +made available under the License, as indicated by a copyright notice that +is included in or attached to the work (an example is provided in the +Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, +that is based on (or derived from) the Work and for which the editorial +revisions, annotations, elaborations, or other modifications represent, as +a whole, an original work of authorship. For the purposes of this License, +Derivative Works shall not include works that remain separable from, or +merely link (or bind by name) to the interfaces of, the Work and Derivative +Works thereof. + +"Contribution" shall mean any work of authorship, including the original +version of the Work and any modifications or additions to that Work or +Derivative Works thereof, that is intentionally submitted to Licensor for +inclusion in the Work by the copyright owner or by an individual or Legal +Entity authorized to submit on behalf of the copyright owner. For the +purposes of this definition, "submitted" means any form of electronic, +verbal, or written communication sent to the Licensor or its +representatives, including but not limited to communication on electronic +mailing lists, source code control systems, and issue tracking systems that +are managed by, or on behalf of, the Licensor for the purpose of discussing +and improving the Work, but excluding communication that is conspicuously +marked or otherwise designated in writing by the copyright owner as "Not a +Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on +behalf of whom a Contribution has been received by Licensor and +subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, +non-exclusive, no-charge, royalty-free, irrevocable copyright license to +reproduce, prepare Derivative Works of, publicly display, publicly perform, +sublicense, and distribute the Work and such Derivative Works in Source or +Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, +non-exclusive, no-charge, royalty-free, irrevocable (except as stated in +this section) patent license to make, have made, use, offer to sell, sell, +import, and otherwise transfer the Work, where such license applies only to +those patent claims licensable by such Contributor that are necessarily +infringed by their Contribution(s) alone or by combination of their +Contribution(s) with the Work to which such Contribution(s) was submitted. +If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or +contributory patent infringement, then any patent licenses granted to You +under this License for that Work shall terminate as of the date such +litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or +Derivative Works thereof in any medium, with or without modifications, and +in Source or Object form, provided that You meet the following conditions: + + 1. You must give any other recipients of the Work or Derivative Works a +copy of this License; and + + 2. You must cause any modified files to carry prominent notices stating +that You changed the files; and + + 3. You must retain, in the Source form of any Derivative Works that You +distribute, all copyright, patent, trademark, and attribution notices from +the Source form of the Work, excluding those notices that do not pertain to +any part of the Derivative Works; and + + 4. If the Work includes a "NOTICE" text file as part of its +distribution, then any Derivative Works that You distribute must include a +readable copy of the attribution notices contained within such NOTICE file, +excluding those notices that do not pertain to any part of the Derivative +Works, in at least one of the following places: within a NOTICE text file +distributed as part of the Derivative Works; within the Source form or +documentation, if provided along with the Derivative Works; or, within a +display generated by the Derivative Works, if and wherever such third-party +notices normally appear. The contents of the NOTICE file are for +informational purposes only and do not modify the License. You may add Your +own attribution notices within Derivative Works that You distribute, +alongside or as an addendum to the NOTICE text from the Work, provided that +such additional attribution notices cannot be construed as modifying the +License. + +You may add Your own copyright statement to Your modifications and may +provide additional or different license terms and conditions for use, +reproduction, or distribution of Your modifications, or for any such +Derivative Works as a whole, provided Your use, reproduction, and +distribution of the Work otherwise complies with the conditions stated in +this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any +Contribution intentionally submitted for inclusion in the Work by You to +the Licensor shall be under the terms and conditions of this License, +without any additional terms or conditions. Notwithstanding the above, +nothing herein shall supersede or modify the terms of any separate license +agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade +names, trademarks, service marks, or product names of the Licensor, except +as required for reasonable and customary use in describing the origin of +the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to +in writing, Licensor provides the Work (and each Contributor provides its +Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied, including, without limitation, any +warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or +FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for +determining the appropriateness of using or redistributing the Work and +assume any risks associated with Your exercise of permissions under this +License. + +8. Limitation of Liability. In no event and under no legal theory, whether +in tort (including negligence), contract, or otherwise, unless required by +applicable law (such as deliberate and grossly negligent acts) or agreed to +in writing, shall any Contributor be liable to You for damages, including +any direct, indirect, special, incidental, or consequential damages of any +character arising as a result of this License or out of the use or +inability to use the Work (including but not limited to damages for loss of +goodwill, work stoppage, computer failure or malfunction, or any and all +other commercial damages or losses), even if such Contributor has been +advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the +Work or Derivative Works thereof, You may choose to offer, and charge a fee +for, acceptance of support, warranty, indemnity, or other liability +obligations and/or rights consistent with this License. However, in +accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if +You agree to indemnify, defend, and hold each Contributor harmless for any +liability incurred by, or claims asserted against, such Contributor by +reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included +on the same "printed page" as the copyright notice for easier +identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); you may + not use this file except in compliance with the License. You may obtain a + copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable + law or agreed to in writing, software distributed under the License is + distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the specific language + governing permissions and limitations under the License. diff --git a/3-Postprocessing/ffmpeg/licenses/vo-amrwbenc.txt b/3-Postprocessing/ffmpeg/licenses/vo-amrwbenc.txt new file mode 100644 index 0000000..5ec4bf0 --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/vo-amrwbenc.txt @@ -0,0 +1,191 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the +copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other +entities that control, are controlled by, or are under common control with +that entity. For the purposes of this definition, "control" means (i) the +power, direct or indirect, to cause the direction or management of such +entity, whether by contract or otherwise, or (ii) ownership of fifty +percent (50%) or more of the outstanding shares, or (iii) beneficial +ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, +including but not limited to software source code, documentation source, +and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation +or translation of a Source form, including but not limited to compiled +object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, +made available under the License, as indicated by a copyright notice that +is included in or attached to the work (an example is provided in the +Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, +that is based on (or derived from) the Work and for which the editorial +revisions, annotations, elaborations, or other modifications represent, as +a whole, an original work of authorship. For the purposes of this License, +Derivative Works shall not include works that remain separable from, or +merely link (or bind by name) to the interfaces of, the Work and Derivative +Works thereof. + +"Contribution" shall mean any work of authorship, including the original +version of the Work and any modifications or additions to that Work or +Derivative Works thereof, that is intentionally submitted to Licensor for +inclusion in the Work by the copyright owner or by an individual or Legal +Entity authorized to submit on behalf of the copyright owner. For the +purposes of this definition, "submitted" means any form of electronic, +verbal, or written communication sent to the Licensor or its +representatives, including but not limited to communication on electronic +mailing lists, source code control systems, and issue tracking systems that +are managed by, or on behalf of, the Licensor for the purpose of discussing +and improving the Work, but excluding communication that is conspicuously +marked or otherwise designated in writing by the copyright owner as "Not a +Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on +behalf of whom a Contribution has been received by Licensor and +subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, +non-exclusive, no-charge, royalty-free, irrevocable copyright license to +reproduce, prepare Derivative Works of, publicly display, publicly perform, +sublicense, and distribute the Work and such Derivative Works in Source or +Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, +non-exclusive, no-charge, royalty-free, irrevocable (except as stated in +this section) patent license to make, have made, use, offer to sell, sell, +import, and otherwise transfer the Work, where such license applies only to +those patent claims licensable by such Contributor that are necessarily +infringed by their Contribution(s) alone or by combination of their +Contribution(s) with the Work to which such Contribution(s) was submitted. +If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or +contributory patent infringement, then any patent licenses granted to You +under this License for that Work shall terminate as of the date such +litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or +Derivative Works thereof in any medium, with or without modifications, and +in Source or Object form, provided that You meet the following conditions: + + 1. You must give any other recipients of the Work or Derivative Works a +copy of this License; and + + 2. You must cause any modified files to carry prominent notices stating +that You changed the files; and + + 3. You must retain, in the Source form of any Derivative Works that You +distribute, all copyright, patent, trademark, and attribution notices from +the Source form of the Work, excluding those notices that do not pertain to +any part of the Derivative Works; and + + 4. If the Work includes a "NOTICE" text file as part of its +distribution, then any Derivative Works that You distribute must include a +readable copy of the attribution notices contained within such NOTICE file, +excluding those notices that do not pertain to any part of the Derivative +Works, in at least one of the following places: within a NOTICE text file +distributed as part of the Derivative Works; within the Source form or +documentation, if provided along with the Derivative Works; or, within a +display generated by the Derivative Works, if and wherever such third-party +notices normally appear. The contents of the NOTICE file are for +informational purposes only and do not modify the License. You may add Your +own attribution notices within Derivative Works that You distribute, +alongside or as an addendum to the NOTICE text from the Work, provided that +such additional attribution notices cannot be construed as modifying the +License. + +You may add Your own copyright statement to Your modifications and may +provide additional or different license terms and conditions for use, +reproduction, or distribution of Your modifications, or for any such +Derivative Works as a whole, provided Your use, reproduction, and +distribution of the Work otherwise complies with the conditions stated in +this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any +Contribution intentionally submitted for inclusion in the Work by You to +the Licensor shall be under the terms and conditions of this License, +without any additional terms or conditions. Notwithstanding the above, +nothing herein shall supersede or modify the terms of any separate license +agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade +names, trademarks, service marks, or product names of the Licensor, except +as required for reasonable and customary use in describing the origin of +the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to +in writing, Licensor provides the Work (and each Contributor provides its +Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied, including, without limitation, any +warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or +FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for +determining the appropriateness of using or redistributing the Work and +assume any risks associated with Your exercise of permissions under this +License. + +8. Limitation of Liability. In no event and under no legal theory, whether +in tort (including negligence), contract, or otherwise, unless required by +applicable law (such as deliberate and grossly negligent acts) or agreed to +in writing, shall any Contributor be liable to You for damages, including +any direct, indirect, special, incidental, or consequential damages of any +character arising as a result of this License or out of the use or +inability to use the Work (including but not limited to damages for loss of +goodwill, work stoppage, computer failure or malfunction, or any and all +other commercial damages or losses), even if such Contributor has been +advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the +Work or Derivative Works thereof, You may choose to offer, and charge a fee +for, acceptance of support, warranty, indemnity, or other liability +obligations and/or rights consistent with this License. However, in +accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if +You agree to indemnify, defend, and hold each Contributor harmless for any +liability incurred by, or claims asserted against, such Contributor by +reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included +on the same "printed page" as the copyright notice for easier +identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); you may + not use this file except in compliance with the License. You may obtain a + copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable + law or agreed to in writing, software distributed under the License is + distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the specific language + governing permissions and limitations under the License. diff --git a/3-Postprocessing/ffmpeg/licenses/wavpack.txt b/3-Postprocessing/ffmpeg/licenses/wavpack.txt new file mode 100644 index 0000000..6ffc23b --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/wavpack.txt @@ -0,0 +1,25 @@ + Copyright (c) 1998 - 2009 Conifer Software + All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Conifer Software nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/3-Postprocessing/ffmpeg/licenses/x264.txt b/3-Postprocessing/ffmpeg/licenses/x264.txt new file mode 100644 index 0000000..d60c31a --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/x264.txt @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/3-Postprocessing/ffmpeg/licenses/x265.txt b/3-Postprocessing/ffmpeg/licenses/x265.txt new file mode 100644 index 0000000..18c946f --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/x265.txt @@ -0,0 +1,343 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. + +This program is also available under a commercial proprietary license. +For more information, contact us at licensing@multicorewareinc.com. diff --git a/3-Postprocessing/ffmpeg/licenses/xavs.txt b/3-Postprocessing/ffmpeg/licenses/xavs.txt new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/xavs.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/3-Postprocessing/ffmpeg/licenses/xvid.txt b/3-Postprocessing/ffmpeg/licenses/xvid.txt new file mode 100644 index 0000000..14db8fc --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/xvid.txt @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/3-Postprocessing/ffmpeg/licenses/zlib.txt b/3-Postprocessing/ffmpeg/licenses/zlib.txt new file mode 100644 index 0000000..efa9848 --- /dev/null +++ b/3-Postprocessing/ffmpeg/licenses/zlib.txt @@ -0,0 +1,26 @@ +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.7, May 2nd, 2012 + + Copyright (C) 1995-2012 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +*/ + diff --git a/3-Postprocessing/ffmpeg/presets/ffprobe.xsd b/3-Postprocessing/ffmpeg/presets/ffprobe.xsd new file mode 100644 index 0000000..1bc1fb5 --- /dev/null +++ b/3-Postprocessing/ffmpeg/presets/ffprobe.xsd @@ -0,0 +1,260 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/3-Postprocessing/ffmpeg/presets/libvpx-1080p.ffpreset b/3-Postprocessing/ffmpeg/presets/libvpx-1080p.ffpreset new file mode 100644 index 0000000..cf25932 --- /dev/null +++ b/3-Postprocessing/ffmpeg/presets/libvpx-1080p.ffpreset @@ -0,0 +1,19 @@ +vcodec=libvpx + +g=120 +lag-in-frames=16 +deadline=good +cpu-used=0 +vprofile=1 +qmax=51 +qmin=11 +slices=4 +b=2M + +#ignored unless using -pass 2 +maxrate=24M +minrate=100k +auto-alt-ref=1 +arnr-maxframes=7 +arnr-strength=5 +arnr-type=centered diff --git a/3-Postprocessing/ffmpeg/presets/libvpx-1080p50_60.ffpreset b/3-Postprocessing/ffmpeg/presets/libvpx-1080p50_60.ffpreset new file mode 100644 index 0000000..4a88040 --- /dev/null +++ b/3-Postprocessing/ffmpeg/presets/libvpx-1080p50_60.ffpreset @@ -0,0 +1,19 @@ +vcodec=libvpx + +g=120 +lag-in-frames=25 +deadline=good +cpu-used=0 +vprofile=1 +qmax=51 +qmin=11 +slices=4 +b=2M + +#ignored unless using -pass 2 +maxrate=24M +minrate=100k +auto-alt-ref=1 +arnr-maxframes=7 +arnr-strength=5 +arnr-type=centered diff --git a/3-Postprocessing/ffmpeg/presets/libvpx-360p.ffpreset b/3-Postprocessing/ffmpeg/presets/libvpx-360p.ffpreset new file mode 100644 index 0000000..f9729ba --- /dev/null +++ b/3-Postprocessing/ffmpeg/presets/libvpx-360p.ffpreset @@ -0,0 +1,18 @@ +vcodec=libvpx + +g=120 +lag-in-frames=16 +deadline=good +cpu-used=0 +vprofile=0 +qmax=63 +qmin=0 +b=768k + +#ignored unless using -pass 2 +maxrate=1.5M +minrate=40k +auto-alt-ref=1 +arnr-maxframes=7 +arnr-strength=5 +arnr-type=centered diff --git a/3-Postprocessing/ffmpeg/presets/libvpx-720p.ffpreset b/3-Postprocessing/ffmpeg/presets/libvpx-720p.ffpreset new file mode 100644 index 0000000..e84cc15 --- /dev/null +++ b/3-Postprocessing/ffmpeg/presets/libvpx-720p.ffpreset @@ -0,0 +1,19 @@ +vcodec=libvpx + +g=120 +lag-in-frames=16 +deadline=good +cpu-used=0 +vprofile=0 +qmax=51 +qmin=11 +slices=4 +b=2M + +#ignored unless using -pass 2 +maxrate=24M +minrate=100k +auto-alt-ref=1 +arnr-maxframes=7 +arnr-strength=5 +arnr-type=centered diff --git a/3-Postprocessing/ffmpeg/presets/libvpx-720p50_60.ffpreset b/3-Postprocessing/ffmpeg/presets/libvpx-720p50_60.ffpreset new file mode 100644 index 0000000..8fce2bf --- /dev/null +++ b/3-Postprocessing/ffmpeg/presets/libvpx-720p50_60.ffpreset @@ -0,0 +1,19 @@ +vcodec=libvpx + +g=120 +lag-in-frames=25 +deadline=good +cpu-used=0 +vprofile=0 +qmax=51 +qmin=11 +slices=4 +b=2M + +#ignored unless using -pass 2 +maxrate=24M +minrate=100k +auto-alt-ref=1 +arnr-maxframes=7 +arnr-strength=5 +arnr-type=centered diff --git a/3-Postprocessing/ffmpeg/presets/libx264-ipod320.ffpreset b/3-Postprocessing/ffmpeg/presets/libx264-ipod320.ffpreset new file mode 100644 index 0000000..76722bd --- /dev/null +++ b/3-Postprocessing/ffmpeg/presets/libx264-ipod320.ffpreset @@ -0,0 +1,6 @@ +vcodec=libx264 + +vprofile=baseline +level=13 +maxrate=768000 +bufsize=3000000 diff --git a/3-Postprocessing/ffmpeg/presets/libx264-ipod640.ffpreset b/3-Postprocessing/ffmpeg/presets/libx264-ipod640.ffpreset new file mode 100644 index 0000000..51f7564 --- /dev/null +++ b/3-Postprocessing/ffmpeg/presets/libx264-ipod640.ffpreset @@ -0,0 +1,6 @@ +vcodec=libx264 + +vprofile=baseline +level=30 +maxrate=10000000 +bufsize=10000000 diff --git a/3-Postprocessing/frames2video.bat b/3-Postprocessing/frames2video.bat new file mode 100644 index 0000000..cc6b67c --- /dev/null +++ b/3-Postprocessing/frames2video.bat @@ -0,0 +1,8 @@ +"ffmpeg\bin\ffmpeg.exe" ^ +-framerate 30 ^ +-i frames\%%d.png ^ +-c:v libx264 ^ +-profile:v high ^ +-r 30 ^ +-pix_fmt yuv420p ^ +wordSwarmOut.mp4 diff --git a/gpl.txt b/gpl.txt new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/gpl.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..c058150 --- /dev/null +++ b/readme.md @@ -0,0 +1,44 @@ +##WordSwarm +Create an animated word cloud that helps visualize the variation +of word frequency in a time-series of 'articles'. + + +#Directory Structure + +**`./1-Preprocessing/`** +Programs in here are used from scraping data sources , calculating word frequency, and outputting a CSV file for further use. + + - **`Scraper_\*.py`** Article source specific file for scraping the data and creating a binary file of the article text and dates for use by `Processor.py`. + + - **`Processor.py`** Reads a binary file of article text and dates and outputs a CSV file of word frequency or count in each date bin. Expects a file in the current directory named `article_date.out` in the binary format proved by the example scraper. + + - **`WordBlaclist.py`** A list of common words not to include in the output CSV file. + + - **`text2ngram.exe`** The windows command line executable used to calculate the nGrams for a block of texts (i.e. all article text within a certain date range) + +**`./2-WordSwarm/`** +Contains the program which actually generates the animated WordSwarm + + - **`wordSwarm.py`** This is the actual program used to display the wordSwarm animation. Run `python wordSwarm -h` for usage instructions. + + - **`/framework/`** This contains all of the framework files borrowed from PyBox2D and PyGame. Not much should need to be changed here. (The screen resolution can be changed here if need, but beware of scaling issues) + +**`./3-PostProcessing/`** +The programs in here are used to convert the frames saved by WordSwarm using the 'output frame' argument into a video file. + + - **`frames2video.bat`** Converts the individual frames created by `wordSwarm.py` into an H.264 video file. Assumes the default save argument `wordSwarm.py -s` was used. Uses the executable Windows binary of the open source program ffmpeg included, but also available from http://www.ffmpeg.org/ + + +#Dependencies +Currently only tested and developed for Windows. The Beautiful Soup, Pyglet, PyGame, and PyBox2D modules can be installed using the WinPython Control Panel following [these instructions](https://code.google.com/p/winpython/wiki/ControlPanel) + +* Python - Tested with [WinPython 32-bit `v2.7.6`](http://sourceforge.net/projects/winpython/files/WinPython&95;2.7/2.7.6.4) +* Beautiful Soup - For parsing HTML. Tested with [`v4.3.2`](http://www.crummy.com/software/BeautifulSoup/#Download) +* Pyglet - Windowing and multimedia library. Tested with [`v1.1.4`](http://pyglet.googlecode.com/files/pyglet-1.1.4.zip). (May not actually be required) +* PyGame - For creating the animations. Tested with `pygame-1.9.2a0.win32-py2.7.exe` available from [Christoph Gohlke site](http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame) +* PyBox2D - Used for physics and clash detection of words in swarm. Tested with `Box2D-2.3b0.win32-py2.7.exe` available from https://code.google.com/p/pybox2d/downloads/list + +#Usage +The following example describes how to create the WordSwarm for the NSF award archive + +1. \ No newline at end of file