oxtimeline/bin/oxtimeline

52 lines
2.0 KiB
Python
Executable File

#!/usr/bin/python
# -*- coding: utf-8 -*-
# vi:si:et:sw=4:sts=4:ts=4
# GPL 2008
import os
import sys
from glob import glob
from optparse import OptionParser
import Image
root = os.path.join(os.path.abspath(os.path.dirname(__file__)), '..')
if os.path.exists(os.path.join(root, 'oxtimeline')):
sys.path.insert(0, root)
import ox
import oxtimeline
from oxtimeline import audio, video
if __name__ == '__main__':
parser = OptionParser()
parser.add_option('-x', '--width', dest='width', help='pixels per tile, defaults to 1500px', default=1500, type="int")
parser.add_option('-y', '--height', dest='height', help='timeline height, defaults to 64px', default=64, type="int")
parser.add_option('-o', '--prefix', dest='prefix', help='prefix for timeline tiles')
parser.add_option('-i', '--input', dest='input', help='video input')
parser.add_option('-m', '--mode', dest='mode', default='average', help='timeline mode: average(default), center for video and waveform(default), pixel for audio')
parser.add_option('-a', '--audio', action="store_true", dest="audio", default=False)
(opts, args) = parser.parse_args()
if None in (opts.prefix, opts.input):
parser.print_help()
sys.exit()
for f in glob('%s*.png' % opts.prefix):
os.unlink(f)
opts.input = os.path.abspath(opts.input)
info = ox.avinfo(opts.input)
if not info['video'] or opts.audio or opts.mode in ('waveform', 'pixel'):
if opts.mode == 'average':
opts.mode = 'waveform'
audio.Timeline(opts.input, opts.prefix, opts.width, opts.height, opts.mode)
else:
video.Timeline(opts.input, opts.prefix, opts.width, opts.height, opts.mode)
if opts.mode not in ('center', 'pixel'):
#oxtimeline.createTimelineMultiline(opts.prefix)
oxtimeline.makeTiles(opts.prefix, 16, 3600)
oxtimeline.makeTimelineOverview(opts.prefix, 1920, height=16)
oxtimeline.makeTimelineOverview(opts.prefix, 1920, height=64)