1
+ #include < iostream>
2
+ #include < iomanip>
3
+
4
+ #include < AvTranscoder/InputFile.hpp>
5
+ #include < AvTranscoder/InputStream.hpp>
6
+ #include < AvTranscoder/InputStreamAudio.hpp>
7
+
8
+ #include < AvTranscoder/OutputFile.hpp>
9
+
10
+ void transcodeAudio ( const char * inputfilename, const char * outputFilename )
11
+ {
12
+ using namespace avtranscoder ;
13
+
14
+ av_log_set_level ( AV_LOG_FATAL );
15
+ // av_log_set_level( AV_LOG_DEBUG );
16
+
17
+ InputFile inputFile ( inputfilename );
18
+ inputFile.analyse ();
19
+
20
+
21
+ // init audio decoders
22
+ InputStreamAudio inputStreamAudio ( inputFile.getStream ( 0 ) );
23
+
24
+ OutputFile outputFile ( outputFilename );
25
+
26
+ outputFile.setup ();
27
+
28
+
29
+ AudioDesc audioDesc = inputFile.getStream ( 0 ).getAudioDesc ();
30
+
31
+ outputFile.addAudioStream ( audioDesc );
32
+
33
+ AudioFrameDesc audioFrameDesc;
34
+ AudioFrame sourceAudio ( audioFrameDesc );
35
+
36
+ DataStreamDesc dataDesc;
37
+ DataStream data ( dataDesc );
38
+
39
+ // Encodage/transcodage
40
+ std::cout << " start transcoding" << std::endl;
41
+
42
+ size_t frame = 0 ;
43
+
44
+ while ( inputFile.getStream ( 0 ).readNextPacket ( data ) )
45
+ {
46
+ std::cout << " \r process frame " << frame << std::flush;
47
+
48
+ outputFile.wrap ( data, 0 );
49
+
50
+ ++frame;
51
+ }
52
+ std::cout << std::endl;
53
+
54
+ }
55
+
56
+ int main ( int argc, char ** argv )
57
+ {
58
+ if ( argc <= 2 )
59
+ {
60
+ std::cout << " audiorewrapper require medias filename" << std::endl;
61
+ return ( -1 );
62
+ }
63
+
64
+ std::cout << " start ..." << std::endl;
65
+
66
+ transcodeAudio ( argv[1 ], argv[2 ] );
67
+
68
+ std::cout << " end ..." << std::endl;
69
+ }
0 commit comments