~aj-ashton/novacut/example

« back to all changes in this revision

Viewing changes to demo.py

  • Committer: Jason Gerard DeRose
  • Date: 2011-08-09 08:48:42 UTC
  • Revision ID: jderose@novacut.com-20110809084842-vrx8jkqt237zx65n
Added a 2nd sample clip, made demo.py render something more interesting

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
# Authors:
22
22
#   Jason Gerard DeRose <jderose@novacut.com>
23
23
 
 
24
from novacut.schema import random_id
24
25
from novacut.renderer import Renderer
25
 
from novacut.tests.test_renderer import DummyBuilder, docs, sequence3
26
 
 
27
 
b = DummyBuilder(docs)
 
26
from novacut.tests.test_renderer import DummyBuilder, sample1, sample2
 
27
 
 
28
docs = [
 
29
    {
 
30
        '_id': sample1,
 
31
        'type': 'dmedia/file',
 
32
        'framerate': {'num': 25, 'denom': 1},
 
33
        'samplerate': 48000,
 
34
    },
 
35
 
 
36
    {
 
37
        '_id': sample2,
 
38
        'type': 'dmedia/file',
 
39
        'framerate': {'num': 25, 'denom': 1},
 
40
        'samplerate': 48000,
 
41
    },
 
42
]
 
43
 
 
44
start_frames = {
 
45
    sample1: 200,
 
46
    sample2: 75,
 
47
}
 
48
 
 
49
 
 
50
slices = []
 
51
offset = 0
 
52
for dur in (50, 38, 25, 15):
 
53
    for src in (sample2, sample1):
 
54
        origin = start_frames[src]
 
55
        _id = random_id()
 
56
        doc = {
 
57
            '_id': _id,
 
58
            'type': 'novacut/node',
 
59
            'node': {
 
60
                'src': src,
 
61
                'type': 'slice',
 
62
                'stream': 'video',
 
63
                'start': {'frame': origin + offset},
 
64
                'stop': {'frame': origin + offset + dur},
 
65
            },
 
66
        }
 
67
        slices.append(_id)
 
68
        docs.append(doc)
 
69
        offset += dur
 
70
 
 
71
 
 
72
sequence_id = random_id()
 
73
docs.append(
 
74
    {
 
75
        '_id': sequence_id,
 
76
        'type': 'novacut/node',
 
77
        'node': {
 
78
            'type': 'sequence',
 
79
            'src': slices,
 
80
        },
 
81
    }
 
82
)
 
83
 
 
84
 
28
85
 
29
86
job = {
30
 
    'src': sequence3,
 
87
    'src': sequence_id,
31
88
    'muxer': {'name': 'oggmux'},
32
89
    'video': {
33
90
        'encoder': {'name': 'theoraenc'},
41
98
    },
42
99
}
43
100
 
44
 
r = Renderer(job, b, 'demo.ogv')
 
101
 
 
102
b = DummyBuilder(docs)
 
103
r = Renderer(job, b, 'tmp-demo.ogv')
45
104
r.run()