def _main(): parser = optparse.OptionParser( "usage: %prog [options] input-dir output-dir") parser.add_option("--fps", dest="fps", help="set frames per second") parser.add_option("--yuv", dest="yuv", help="output raw yuv instead of encoding h264", action='store_true', default=False) options, args = parser.parse_args() if len(args) != 2: parser.error('one input and one output is required (-h for help)') input_dir = args[0] output_dir = args[1] for d in (input_dir, output_dir): if not os.path.isdir(d): parser.error('%s is not a directory!' % d) os.umask(2) class DecodeOptions(coding.OptionsBase): def error(self, returncode, output): print ''.join(output) # def status(self, format, info): # print format, info class EncodeOptions(coding.OptionsBase): def error(self, returncode, output): print ''.join(output) decode_options = DecodeOptions() decode_options.options = {} if options.fps: decode_options.options['r'] = options.fps else: decode_options.options['r'] = 24 encode_options = EncodeOptions() encode_options.options = {} encode_options.options['crf'] = 22 encode_options.options['keyint'] = 24 encode_options.options['preset'] = 'slower' sequences = sequence.sequences(os.listdir(input_dir)) for (head, tail), names in sequences.iteritems(): names = list(sequence.iterate_sequence(input_dir, head, tail, names)) output_name = os.path.join(output_dir, os.path.splitext(head[:-1] + tail)[0]) if options.yuv: coding.encode_yuv(names, output_name + '_yuv.mov', decode_options=decode_options) else: coding.encode_h264(names, output_name + '.mp4', decode_options=decode_options, encode_options=encode_options)
def _main(): #w, h = calculate_format(sys.argv[1], sys.argv[2]) #print w, h, float(w)/h #return parser = optparse.OptionParser("usage: %prog [options] input output") parser.add_option("-f", "--force", dest="force", action="store_true", default=False, help="overwrite existing output file") parser.add_option("--vf", dest="video_filters", help="video filters passed to decoding process") parser.add_option("--width", dest="width", help="resize video to match WIDTH") parser.add_option("--aspect", dest="aspect", help="set aspect ratio") parser.add_option("--fps", dest="fps", help="set frames per second") parser.add_option("--bitrate", dest="bitrate", help="controls the encoding rate (high|medium|low)") parser.add_option("--tune", dest="tune", help="tune the encoding") parser.add_option("--preset", dest="preset", help="encoding preset (speed/quality tradeoff)") options, args = parser.parse_args() if len(args) != 2: parser.error('one input and one output is required (-h for help)') input_name = args[0] output_name = args[1] if not os.path.exists(input_name): parser.error('input "%s" does not exist' % input_name) if not options.force and os.path.exists(output_name): parser.error('output "%s" already exists (force with -f)' % output_name) x264_options = {} mplayer_options = {} if options.video_filters: mplayer_options['vf'] = options.video_filters if options.width and options.aspect: mplayer_options['vf'] = 'scale=%d:%d' % calculate_format(options.width, options.aspect) if options.fps: mplayer_options['r'] = options.fps if options.bitrate: try: crf = int(options.bitrate) except ValueError: crf = dict(high=21, medium=23, low=25).get(options.bitrate, 23) x264_options['crf'] = crf if options.tune: x264_options['tune'] = options.tune if options.preset: x264_options['preset'] = options.preset h264_options = coding.OptionsBase() def status(format, info): sys.stdout.write(repr(info) + '\r') sys.stdout.flush() h264_options.status = status h264_options.options = x264_options coding.encode_h264(get_input(input_name), output_name, encode_options=h264_options) print
def _main(): parser = optparse.OptionParser("usage: %prog [options] input-dir output-dir") parser.add_option("--fps", dest="fps", help="set frames per second") parser.add_option("--yuv", dest="yuv", help="output raw yuv instead of encoding h264", action='store_true', default=False) options, args = parser.parse_args() if len(args) != 2: parser.error('one input and one output is required (-h for help)') input_dir = args[0] output_dir = args[1] for d in (input_dir, output_dir): if not os.path.isdir(d): parser.error('%s is not a directory!' % d) os.umask(2) class DecodeOptions(coding.OptionsBase): def error(self, returncode, output): print ''.join(output) # def status(self, format, info): # print format, info class EncodeOptions(coding.OptionsBase): def error(self, returncode, output): print ''.join(output) decode_options = DecodeOptions() decode_options.options = {} if options.fps: decode_options.options['r'] = options.fps else: decode_options.options['r'] = 24 encode_options = EncodeOptions() encode_options.options = {} encode_options.options['crf'] = 22 encode_options.options['keyint'] = 24 encode_options.options['preset'] = 'slower' sequences = sequence.sequences(os.listdir(input_dir)) for (head, tail), names in sequences.iteritems(): names = list(sequence.iterate_sequence(input_dir, head, tail, names)) output_name = os.path.join(output_dir, os.path.splitext(head[:-1] + tail)[0]) if options.yuv: coding.encode_yuv(names, output_name + '_yuv.mov', decode_options=decode_options) else: coding.encode_h264(names, output_name + '.mp4', decode_options=decode_options, encode_options=encode_options)
def _main(): #w, h = calculate_format(sys.argv[1], sys.argv[2]) #print w, h, float(w)/h #return parser = optparse.OptionParser("usage: %prog [options] input output") parser.add_option("-f", "--force", dest="force", action="store_true", default=False, help="overwrite existing output file") parser.add_option("--vf", dest="video_filters", help="video filters passed to decoding process") parser.add_option("--width", dest="width", help="resize video to match WIDTH") parser.add_option("--aspect", dest="aspect", help="set aspect ratio") parser.add_option("--fps", dest="fps", help="set frames per second") parser.add_option("--bitrate", dest="bitrate", help="controls the encoding rate (high|medium|low)") parser.add_option("--tune", dest="tune", help="tune the encoding") parser.add_option("--preset", dest="preset", help="encoding preset (speed/quality tradeoff)") options, args = parser.parse_args() if len(args) != 2: parser.error('one input and one output is required (-h for help)') input_name = args[0] output_name = args[1] if not os.path.exists(input_name): parser.error('input "%s" does not exist' % input_name) if not options.force and os.path.exists(output_name): parser.error('output "%s" already exists (force with -f)' % output_name) x264_options = {} mplayer_options = {} if options.video_filters: mplayer_options['vf'] = options.video_filters if options.width and options.aspect: mplayer_options['vf'] = 'scale=%d:%d' % calculate_format( options.width, options.aspect) if options.fps: mplayer_options['r'] = options.fps if options.bitrate: try: crf = int(options.bitrate) except ValueError: crf = dict(high=21, medium=23, low=25).get(options.bitrate, 23) x264_options['crf'] = crf if options.tune: x264_options['tune'] = options.tune if options.preset: x264_options['preset'] = options.preset h264_options = coding.OptionsBase() def status(format, info): sys.stdout.write(repr(info) + '\r') sys.stdout.flush() h264_options.status = status h264_options.options = x264_options coding.encode_h264(get_input(input_name), output_name, encode_options=h264_options) print