51 lines
2 KiB
Python
Executable file
51 lines
2 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)
|