Mercurial > code > home > repos > light9
annotate bin/vidref @ 1961:f77dfa8e82b9
new 'image' effect for animating light colors
Ignore-this: 8df08111173bd96ff8d8093d4243c3ba
author | Drew Perttula <drewp@bigasterisk.com> |
---|---|
date | Thu, 06 Jun 2019 11:59:44 +0000 |
parents | a745bee5c419 |
children | df28c994365d |
rev | line source |
---|---|
729
b5efddd80dad
update more shbang lines
Drew Perttula <drewp@bigasterisk.com>
parents:
647
diff
changeset
|
1 #!bin/python |
1939
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
2 """ |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
3 Camera images of the stage. View live on a web page and also save |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
4 them to disk. Retrieve images based on the song and time that was |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
5 playing when they were taken. Also, save snapshot images to a place |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
6 they can be used again as thumbnails of effects. |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
7 |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
8 bin/vidref main |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
9 light9/vidref/videorecorder.py capture frames and save them |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
10 light9/vidref/replay.py backend for vidref.js playback element- figures out which frames go with the current song and time |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
11 light9/vidref/index.html web ui for watching current stage and song playback |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
12 light9/vidref/setup.html web ui for setup of camera params and frame crop |
1941
0dc3715050cf
video recorder now makes mp4 per song
drewp@bigasterisk.com
parents:
1939
diff
changeset
|
13 light9/web/light9-vidref-live.js LitElement for live video frames |
0dc3715050cf
video recorder now makes mp4 per song
drewp@bigasterisk.com
parents:
1939
diff
changeset
|
14 light9/web/light9-vidref-playback.js LitElement for video playback |
1939
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
15 |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
16 """ |
882 | 17 from run_local import log |
1939
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
18 |
1956 | 19 from typing import cast |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
20 import logging, optparse, json, base64, os, glob |
1956 | 21 |
1955
9ee42b88299b
vidref now has some stats
Drew Perttula <drewp@bigasterisk.com>
parents:
1954
diff
changeset
|
22 from greplin import scales |
9ee42b88299b
vidref now has some stats
Drew Perttula <drewp@bigasterisk.com>
parents:
1954
diff
changeset
|
23 from greplin.scales.cyclonehandler import StatsHandler |
1956 | 24 from rdflib import URIRef |
25 from twisted.internet import reactor, defer | |
26 import cyclone.web, cyclone.httpclient, cyclone.websocket | |
27 | |
28 from cycloneerr import PrettyErrorHandler | |
29 from light9 import networking, showconfig | |
30 from light9.newtypes import Song | |
31 from light9.vidref import videorecorder | |
32 from rdfdb.syncedgraph import SyncedGraph | |
1957
a745bee5c419
new process stats visualizers
Drew Perttula <drewp@bigasterisk.com>
parents:
1956
diff
changeset
|
33 from standardservice.scalessetup import gatherProcessStats |
542
cfd5d5be1b50
vidref complete panels on each replay. replays load and delete pretty well
drewp@bigasterisk.com
parents:
541
diff
changeset
|
34 |
cfd5d5be1b50
vidref complete panels on each replay. replays load and delete pretty well
drewp@bigasterisk.com
parents:
541
diff
changeset
|
35 parser = optparse.OptionParser() |
1858 | 36 parser.add_option("-v", "--verbose", action="store_true", help="logging.DEBUG") |
542
cfd5d5be1b50
vidref complete panels on each replay. replays load and delete pretty well
drewp@bigasterisk.com
parents:
541
diff
changeset
|
37 (options, args) = parser.parse_args() |
cfd5d5be1b50
vidref complete panels on each replay. replays load and delete pretty well
drewp@bigasterisk.com
parents:
541
diff
changeset
|
38 |
1089
2ee97997ee56
vidref now reads from picamserve
Drew Perttula <drewp@bigasterisk.com>
parents:
1070
diff
changeset
|
39 log.setLevel(logging.DEBUG if options.verbose else logging.INFO) |
534
6f1eb6437c96
vidref refactor, start to add more widgets
drewp@bigasterisk.com
parents:
525
diff
changeset
|
40 |
1957
a745bee5c419
new process stats visualizers
Drew Perttula <drewp@bigasterisk.com>
parents:
1956
diff
changeset
|
41 gatherProcessStats() |
1955
9ee42b88299b
vidref now has some stats
Drew Perttula <drewp@bigasterisk.com>
parents:
1954
diff
changeset
|
42 stats = scales.collection( |
9ee42b88299b
vidref now has some stats
Drew Perttula <drewp@bigasterisk.com>
parents:
1954
diff
changeset
|
43 '/webServer', |
9ee42b88299b
vidref now has some stats
Drew Perttula <drewp@bigasterisk.com>
parents:
1954
diff
changeset
|
44 scales.RecentFpsStat('liveWebsocketFrameFps'), |
9ee42b88299b
vidref now has some stats
Drew Perttula <drewp@bigasterisk.com>
parents:
1954
diff
changeset
|
45 scales.IntStat('liveClients'), |
9ee42b88299b
vidref now has some stats
Drew Perttula <drewp@bigasterisk.com>
parents:
1954
diff
changeset
|
46 ) |
1956 | 47 |
48 | |
941
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
49 class Snapshot(cyclone.web.RequestHandler): |
1858 | 50 |
941
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
51 @defer.inlineCallbacks |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
52 def post(self): |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
53 # save next pic |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
54 # return /snapshot/path |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
55 try: |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
56 snapshotDir = 'todo' |
941
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
57 outputFilename = yield self.settings.gui.snapshot() |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
58 |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
59 assert outputFilename.startswith(snapshotDir) |
941
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
60 out = networking.vidref.path( |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
61 "snapshot/%s" % outputFilename[len(snapshotDir):].lstrip('/')) |
1858 | 62 |
941
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
63 self.write(json.dumps({'snapshot': out})) |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
64 self.set_header("Location", out) |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
65 self.set_status(303) |
1866
3c523c71da29
pyflakes cleanups and some refactors
Drew Perttula <drewp@bigasterisk.com>
parents:
1858
diff
changeset
|
66 except Exception: |
941
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
67 import traceback |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
68 traceback.print_exc() |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
69 raise |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
70 |
1858 | 71 |
1939
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
72 pipeline = videorecorder.GstSource( |
1941
0dc3715050cf
video recorder now makes mp4 per song
drewp@bigasterisk.com
parents:
1939
diff
changeset
|
73 '/dev/v4l/by-id/usb-Bison_HD_Webcam_200901010001-video-index0' |
1942 | 74 # '/dev/v4l/by-id/usb-Generic_FULL_HD_1080P_Webcam_200901010001-video-index0' |
1941
0dc3715050cf
video recorder now makes mp4 per song
drewp@bigasterisk.com
parents:
1939
diff
changeset
|
75 ) |
1939
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
76 |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
77 |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
78 class Live(cyclone.websocket.WebSocketHandler): |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
79 |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
80 def connectionMade(self, *args, **kwargs): |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
81 pipeline.liveImages.subscribe(on_next=self.onFrame) |
1955
9ee42b88299b
vidref now has some stats
Drew Perttula <drewp@bigasterisk.com>
parents:
1954
diff
changeset
|
82 stats.liveClients += 1 |
1939
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
83 |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
84 def connectionLost(self, reason): |
1955
9ee42b88299b
vidref now has some stats
Drew Perttula <drewp@bigasterisk.com>
parents:
1954
diff
changeset
|
85 #self.subj.dispose() |
9ee42b88299b
vidref now has some stats
Drew Perttula <drewp@bigasterisk.com>
parents:
1954
diff
changeset
|
86 stats.liveClients -= 1 |
1939
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
87 |
1941
0dc3715050cf
video recorder now makes mp4 per song
drewp@bigasterisk.com
parents:
1939
diff
changeset
|
88 def onFrame(self, cf: videorecorder.CaptureFrame): |
0dc3715050cf
video recorder now makes mp4 per song
drewp@bigasterisk.com
parents:
1939
diff
changeset
|
89 if cf is None: return |
1939
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
90 |
1955
9ee42b88299b
vidref now has some stats
Drew Perttula <drewp@bigasterisk.com>
parents:
1954
diff
changeset
|
91 stats.liveWebsocketFrameFps.mark() |
9ee42b88299b
vidref now has some stats
Drew Perttula <drewp@bigasterisk.com>
parents:
1954
diff
changeset
|
92 |
1939
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
93 self.sendMessage( |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
94 json.dumps({ |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
95 'jpeg': base64.b64encode(cf.asJpeg()).decode('ascii'), |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
96 'description': f't={cf.t}', |
1939
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
97 })) |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
98 |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
99 |
941
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
100 class SnapshotPic(cyclone.web.StaticFileHandler): |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
101 pass |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
102 |
1369
6b5e079b3dbe
timeline hover goes to vidref
Drew Perttula <drewp@bigasterisk.com>
parents:
1212
diff
changeset
|
103 |
6b5e079b3dbe
timeline hover goes to vidref
Drew Perttula <drewp@bigasterisk.com>
parents:
1212
diff
changeset
|
104 class Time(cyclone.web.RequestHandler): |
1858 | 105 |
1369
6b5e079b3dbe
timeline hover goes to vidref
Drew Perttula <drewp@bigasterisk.com>
parents:
1212
diff
changeset
|
106 def put(self): |
6b5e079b3dbe
timeline hover goes to vidref
Drew Perttula <drewp@bigasterisk.com>
parents:
1212
diff
changeset
|
107 body = json.loads(self.request.body) |
6b5e079b3dbe
timeline hover goes to vidref
Drew Perttula <drewp@bigasterisk.com>
parents:
1212
diff
changeset
|
108 t = body['t'] |
6b5e079b3dbe
timeline hover goes to vidref
Drew Perttula <drewp@bigasterisk.com>
parents:
1212
diff
changeset
|
109 source = body['source'] |
6b5e079b3dbe
timeline hover goes to vidref
Drew Perttula <drewp@bigasterisk.com>
parents:
1212
diff
changeset
|
110 self.settings.gui.incomingTime(t, source) |
6b5e079b3dbe
timeline hover goes to vidref
Drew Perttula <drewp@bigasterisk.com>
parents:
1212
diff
changeset
|
111 self.set_status(202) |
6b5e079b3dbe
timeline hover goes to vidref
Drew Perttula <drewp@bigasterisk.com>
parents:
1212
diff
changeset
|
112 |
6b5e079b3dbe
timeline hover goes to vidref
Drew Perttula <drewp@bigasterisk.com>
parents:
1212
diff
changeset
|
113 |
1954
3ae1e7f8db23
vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents:
1951
diff
changeset
|
114 class Clips(PrettyErrorHandler, cyclone.web.RequestHandler): |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
115 |
1954
3ae1e7f8db23
vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents:
1951
diff
changeset
|
116 def delete(self): |
3ae1e7f8db23
vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents:
1951
diff
changeset
|
117 clip = URIRef(self.get_argument('uri')) |
3ae1e7f8db23
vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents:
1951
diff
changeset
|
118 videorecorder.deleteClip(clip) |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
119 |
1956 | 120 |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
121 class ReplayMap(PrettyErrorHandler, cyclone.web.RequestHandler): |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
122 |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
123 def get(self): |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
124 song = Song(self.get_argument('song')) |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
125 clips = [] |
1956 | 126 videoPaths = glob.glob( |
127 os.path.join(videorecorder.songDir(song), b'*.mp4')) | |
1955
9ee42b88299b
vidref now has some stats
Drew Perttula <drewp@bigasterisk.com>
parents:
1954
diff
changeset
|
128 for vid in videoPaths: |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
129 pts = [] |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
130 for line in open(vid.replace(b'.mp4', b'.timing'), 'rb'): |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
131 _v, vt, _eq, _song, st = line.split() |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
132 pts.append([float(st), float(vt)]) |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
133 |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
134 url = vid[len(os.path.dirname(os.path.dirname(showconfig.root())) |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
135 ):].decode('ascii') |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
136 |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
137 clips.append({ |
1954
3ae1e7f8db23
vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents:
1951
diff
changeset
|
138 'uri': videorecorder.takeUri(vid), |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
139 'videoUrl': url, |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
140 'songToVideo': pts |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
141 }) |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
142 |
1954
3ae1e7f8db23
vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents:
1951
diff
changeset
|
143 clips.sort(key=lambda c: len(cast(list, c['songToVideo']))) |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
144 clips = clips[-3:] |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
145 clips.sort(key=lambda c: c['uri'], reverse=True) |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
146 |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
147 ret = json.dumps(clips) |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
148 log.info('replayMap had %s videos; json is %s bytes', len(clips), |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
149 len(ret)) |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
150 self.write(ret) |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
151 |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
152 |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
153 graph = SyncedGraph(networking.rdfdb.url, "vidref") |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
154 outVideos = videorecorder.FramesToVideoFiles( |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
155 pipeline.liveImages, os.path.join(showconfig.root(), b'video')) |
1096
087f6cbe4b22
vidrefsetup tool now prepares a url that vidref will use for rpi camera requests
Drew Perttula <drewp@bigasterisk.com>
parents:
1089
diff
changeset
|
156 |
941
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
157 port = networking.vidref.port |
1858 | 158 reactor.listenTCP( |
159 port, | |
1939
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
160 cyclone.web.Application( |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
161 handlers=[ |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
162 (r'/()', cyclone.web.StaticFileHandler, { |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
163 'path': 'light9/vidref', |
1945 | 164 'default_filename': 'index.html' |
1939
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
165 }), |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
166 (r'/setup/()', cyclone.web.StaticFileHandler, { |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
167 'path': 'light9/vidref', |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
168 'default_filename': 'setup.html' |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
169 }), |
1945 | 170 (r'/live', Live), |
1954
3ae1e7f8db23
vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents:
1951
diff
changeset
|
171 (r'/clips', Clips), |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
172 (r'/replayMap', ReplayMap), |
1939
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
173 (r'/snapshot', Snapshot), |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
174 (r'/snapshot/(.*)', SnapshotPic, { |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
175 "path": 'todo', |
1939
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
176 }), |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
177 (r'/time', Time), |
1955
9ee42b88299b
vidref now has some stats
Drew Perttula <drewp@bigasterisk.com>
parents:
1954
diff
changeset
|
178 (r'/stats/(.*)', StatsHandler, { |
9ee42b88299b
vidref now has some stats
Drew Perttula <drewp@bigasterisk.com>
parents:
1954
diff
changeset
|
179 'serverName': 'vidref' |
9ee42b88299b
vidref now has some stats
Drew Perttula <drewp@bigasterisk.com>
parents:
1954
diff
changeset
|
180 }), |
1939
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
181 ], |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
182 debug=True, |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
183 )) |
941
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
184 log.info("serving on %s" % port) |
937 | 185 |
935 | 186 reactor.run() |