def flvsplit(outbase, srcfile, framerate=12, keyframe=120, blocksize=32, duration=sys.maxsize, overlap=0, nameformat='%s-%03d.flv', force=False, debug=0): fin = open(srcfile, 'rb') parser = FLVParser(fin) totaldur = parser.get_duration() (_,_,totaldur,_,_) = parser[-1] print('total duration: %d' % totaldur, file=sys.stderr) t0 = 0 i = 0 while 1: outfile = nameformat % (outbase, i) if not force and os.path.exists(outfile): raise IOError('file already exists: %r' % outfile) fout = open(outfile, 'wb') writer = FLVWriter(fout, has_video=True, has_audio=True, framerate=framerate, debug=debug) processor = FLVMovieProcessor(writer=writer, debug=debug) audiosink = AudioSink() videosink = FLVVideoSink(writer, framerate=framerate, keyframe=keyframe, blocksize=blocksize, debug=debug) t1 = min(t0+duration, totaldur) print('writing %r (%d-%d)...' % (outfile, t0, t1), file=sys.stderr) ranges = MultipleRange([(t0, t1)]) processor.process_flv(parser, audiosink, videosink, ranges=ranges) writer.close() fout.close() if totaldur <= t1: break t0 = max(0, t1-overlap) i += 1 parser.close() fin.close() return
def flvsplit(outbase, srcfile, framerate=12, keyframe=120, blocksize=32, duration=sys.maxint, overlap=0, nameformat='%s-%03d.flv', force=False, debug=0): fin = file(srcfile, 'rb') parser = FLVParser(fin) totaldur = parser.get_duration() (_,_,totaldur,_,_) = parser[-1] print >>sys.stderr, 'total duration: %d' % totaldur t0 = 0 i = 0 while 1: outfile = nameformat % (outbase, i) if not force and os.path.exists(outfile): raise IOError('file already exists: %r' % outfile) fout = file(outfile, 'wb') writer = FLVWriter(fout, has_video=True, has_audio=True, framerate=framerate, debug=debug) processor = FLVMovieProcessor(writer=writer, debug=debug) audiosink = AudioSink() videosink = FLVVideoSink(writer, framerate=framerate, keyframe=keyframe, blocksize=blocksize, debug=debug) t1 = min(t0+duration, totaldur) print >>sys.stderr, 'writing %r (%d-%d)...' % (outfile, t0, t1) ranges = MultipleRange([(t0, t1)]) processor.process_flv(parser, audiosink, videosink, ranges=ranges) writer.close() fout.close() if totaldur <= t1: break t0 = max(0, t1-overlap) i += 1 parser.close() fin.close() return
def flvcat(outfile, srcfiles, framerate=12, keyframe=120, blocksize=32, clipping=None, panwindow=None, panspeed=0, force=False, debug=0): if not force and os.path.exists(outfile): raise IOError('file already exists: %r' % outfile) fout = open(outfile, 'wb') writer = FLVWriter(fout, has_video=True, has_audio=True, framerate=framerate, debug=debug) processor = FLVMovieProcessor(writer=writer, debug=debug) for fname in srcfiles: ranges = None m = re.match(r'([^:]+):(.+)$', fname) if m: fname = m.group(1) ranges = MultipleRange(m.group(2)) fin = open(fname, 'rb') parser = FLVParser(fin) audiosink = AudioSink() videosink = FLVVideoSink(writer, framerate=framerate, keyframe=keyframe, blocksize=blocksize, clipping=clipping, panwindow=panwindow, panspeed=panspeed, debug=debug) processor.process_flv(parser, audiosink, videosink, ranges=ranges) parser.close() fin.close() writer.close() fout.close() return
def flvcat(outfile, srcfiles, framerate=12, keyframe=120, blocksize=32, clipping=None, panwindow=None, panspeed=0, force=False, debug=0): if not force and os.path.exists(outfile): raise IOError('file already exists: %r' % outfile) fout = file(outfile, 'wb') writer = FLVWriter(fout, has_video=True, has_audio=True, framerate=framerate, debug=debug) processor = FLVMovieProcessor(writer=writer, debug=debug) for fname in srcfiles: ranges = None m = re.match(r'([^:]+):(.+)$', fname) if m: fname = m.group(1) ranges = MultipleRange(m.group(2)) fin = file(fname, 'rb') parser = FLVParser(fin) audiosink = AudioSink() videosink = FLVVideoSink(writer, framerate=framerate, keyframe=keyframe, blocksize=blocksize, clipping=clipping, panwindow=panwindow, panspeed=panspeed, debug=debug) processor.process_flv(parser, audiosink, videosink, ranges=ranges) parser.close() fin.close() writer.close() fout.close() return