forked from avTranscoder/avTranscoder
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathavMeta.cpp
54 lines (46 loc) · 1.35 KB
/
avMeta.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <AvTranscoder/file/InputFile.hpp>
#include <AvTranscoder/progress/ConsoleProgress.hpp>
#include <iostream>
int main(int argc, char** argv)
{
bool toJson = false;
std::string help;
help += "Usage\n";
help += "\tavmeta INPUT_FILE [--json][--help]\n";
help += "Command line options\n";
help += "\t--json: print properties as json\n";
if(argc < 2)
{
std::cout << help << std::endl;
return (1);
}
// List command line arguments
std::vector<std::string> arguments;
for(int argument = 1; argument < argc; ++argument)
{
arguments.push_back(argv[argument]);
}
for(size_t argument = 0; argument < arguments.size(); ++argument)
{
if(arguments.at(argument) == "--help")
{
std::cout << help << std::endl;
return 0;
}
else if(arguments.at(argument) == "--json")
{
toJson = true;
}
}
avtranscoder::preloadCodecsAndFormats();
avtranscoder::Logger::setLogLevel(AV_LOG_QUIET);
// analyse inputFile
avtranscoder::InputFile input(argv[1]);
avtranscoder::ConsoleProgress p;
input.analyse(p, avtranscoder::eAnalyseLevelFull);
// display file properties
if(toJson)
std::cout << input.getProperties().allPropertiesAsJson() << std::endl;
else
std::cout << input;
}