|
| 1 | +import sys |
| 2 | + |
| 3 | +from AvTranscoder import AvTranscoder |
| 4 | + |
| 5 | +def parseConfigFile( inputConfigFile, transcoder ): |
| 6 | + """ |
| 7 | + Parse a config file with for each lines: |
| 8 | + <media_file>=<stream_index>.<substream_index>:<profile_name> |
| 9 | + * The substream index is not necessary. |
| 10 | + * Dummy streams (video and audio) are not supported. |
| 11 | + * Offset is not supported. |
| 12 | + """ |
| 13 | + file = open( inputConfigFile, 'r' ) |
| 14 | + for line in file: |
| 15 | + line = line.strip( '\n' ) |
| 16 | + |
| 17 | + name = line.split( '=' ) |
| 18 | + filename = name[0] |
| 19 | + |
| 20 | + params = name[1].split( ':' ) |
| 21 | + streamIndex = int( params[0] ) |
| 22 | + subStreamIndex = -1 if '.' not in params[0] else params[0].split( '.' )[0] |
| 23 | + profileName = '' if not params[1] else params[1] |
| 24 | + |
| 25 | + transcoder.add( filename, streamIndex, subStreamIndex, profileName ) |
| 26 | + |
| 27 | +if len(sys.argv) < 3: |
| 28 | + print "pyProcessor requires an input config file and an output media filename" |
| 29 | + exit(1) |
| 30 | + |
| 31 | +# create Transcoder |
| 32 | +ouputFile = AvTranscoder.OutputFile( sys.argv[2] ) |
| 33 | +transcoder = AvTranscoder.Transcoder( ouputFile ) |
| 34 | + |
| 35 | +# parse configuration file |
| 36 | +inputConfigFile = sys.argv[1] |
| 37 | +parseConfigFile( inputConfigFile, transcoder ) |
| 38 | + |
| 39 | +# initialize Transcoder |
| 40 | +transcoder.setProcessMethod( AvTranscoder.eProcessMethodLongest ) |
| 41 | +transcoder.init() |
| 42 | + |
| 43 | +# Process transcode |
| 44 | +progress = AvTranscoder.ProgressListener() |
| 45 | +transcoder.process( progress ) |
0 commit comments