Mercurial > code > home > repos > light9
annotate bin/vidref @ 1954:3ae1e7f8db23
vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Ignore-this: 6daccf686fd66561029f3252ed4dbafd
author | Drew Perttula <drewp@bigasterisk.com> |
---|---|
date | Thu, 06 Jun 2019 02:28:28 +0000 |
parents | 9f0f2b39ad95 |
children | 9ee42b88299b |
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 |
941
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
19 from twisted.internet import reactor, defer |
1939
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
20 |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
21 import logging, optparse, json, base64, os, glob |
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
|
22 import cyclone.web, cyclone.httpclient, cyclone.websocket |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
23 from light9 import networking, showconfig |
1939
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
24 from light9.vidref import videorecorder |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
25 from rdflib import URIRef |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
26 from light9.newtypes import Song |
1692 | 27 from rdfdb.syncedgraph import SyncedGraph |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
28 from cycloneerr import PrettyErrorHandler |
1954
3ae1e7f8db23
vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents:
1951
diff
changeset
|
29 from typing import cast |
542
cfd5d5be1b50
vidref complete panels on each replay. replays load and delete pretty well
drewp@bigasterisk.com
parents:
541
diff
changeset
|
30 |
cfd5d5be1b50
vidref complete panels on each replay. replays load and delete pretty well
drewp@bigasterisk.com
parents:
541
diff
changeset
|
31 parser = optparse.OptionParser() |
1858 | 32 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
|
33 (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
|
34 |
1089
2ee97997ee56
vidref now reads from picamserve
Drew Perttula <drewp@bigasterisk.com>
parents:
1070
diff
changeset
|
35 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
|
36 |
1858 | 37 |
941
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
38 class Snapshot(cyclone.web.RequestHandler): |
1858 | 39 |
941
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
40 @defer.inlineCallbacks |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
41 def post(self): |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
42 # save next pic |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
43 # return /snapshot/path |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
44 try: |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
45 snapshotDir = 'todo' |
941
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
46 outputFilename = yield self.settings.gui.snapshot() |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
47 |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
48 assert outputFilename.startswith(snapshotDir) |
941
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
49 out = networking.vidref.path( |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
50 "snapshot/%s" % outputFilename[len(snapshotDir):].lstrip('/')) |
1858 | 51 |
941
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
52 self.write(json.dumps({'snapshot': out})) |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
53 self.set_header("Location", out) |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
54 self.set_status(303) |
1866
3c523c71da29
pyflakes cleanups and some refactors
Drew Perttula <drewp@bigasterisk.com>
parents:
1858
diff
changeset
|
55 except Exception: |
941
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
56 import traceback |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
57 traceback.print_exc() |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
58 raise |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
59 |
1858 | 60 |
1939
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
61 pipeline = videorecorder.GstSource( |
1941
0dc3715050cf
video recorder now makes mp4 per song
drewp@bigasterisk.com
parents:
1939
diff
changeset
|
62 '/dev/v4l/by-id/usb-Bison_HD_Webcam_200901010001-video-index0' |
1942 | 63 # '/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
|
64 ) |
1939
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
65 |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
66 |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
67 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
|
68 |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
69 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
|
70 pipeline.liveImages.subscribe(on_next=self.onFrame) |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
71 |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
72 def connectionLost(self, reason): |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
73 0 #self.subj.dispose() |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
74 |
1941
0dc3715050cf
video recorder now makes mp4 per song
drewp@bigasterisk.com
parents:
1939
diff
changeset
|
75 def onFrame(self, cf: videorecorder.CaptureFrame): |
0dc3715050cf
video recorder now makes mp4 per song
drewp@bigasterisk.com
parents:
1939
diff
changeset
|
76 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
|
77 |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
78 self.sendMessage( |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
79 json.dumps({ |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
80 'jpeg': base64.b64encode(cf.asJpeg()).decode('ascii'), |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
81 '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
|
82 })) |
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 |
941
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
85 class SnapshotPic(cyclone.web.StaticFileHandler): |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
86 pass |
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
87 |
1369
6b5e079b3dbe
timeline hover goes to vidref
Drew Perttula <drewp@bigasterisk.com>
parents:
1212
diff
changeset
|
88 |
6b5e079b3dbe
timeline hover goes to vidref
Drew Perttula <drewp@bigasterisk.com>
parents:
1212
diff
changeset
|
89 class Time(cyclone.web.RequestHandler): |
1858 | 90 |
1369
6b5e079b3dbe
timeline hover goes to vidref
Drew Perttula <drewp@bigasterisk.com>
parents:
1212
diff
changeset
|
91 def put(self): |
6b5e079b3dbe
timeline hover goes to vidref
Drew Perttula <drewp@bigasterisk.com>
parents:
1212
diff
changeset
|
92 body = json.loads(self.request.body) |
6b5e079b3dbe
timeline hover goes to vidref
Drew Perttula <drewp@bigasterisk.com>
parents:
1212
diff
changeset
|
93 t = body['t'] |
6b5e079b3dbe
timeline hover goes to vidref
Drew Perttula <drewp@bigasterisk.com>
parents:
1212
diff
changeset
|
94 source = body['source'] |
6b5e079b3dbe
timeline hover goes to vidref
Drew Perttula <drewp@bigasterisk.com>
parents:
1212
diff
changeset
|
95 self.settings.gui.incomingTime(t, source) |
6b5e079b3dbe
timeline hover goes to vidref
Drew Perttula <drewp@bigasterisk.com>
parents:
1212
diff
changeset
|
96 self.set_status(202) |
6b5e079b3dbe
timeline hover goes to vidref
Drew Perttula <drewp@bigasterisk.com>
parents:
1212
diff
changeset
|
97 |
6b5e079b3dbe
timeline hover goes to vidref
Drew Perttula <drewp@bigasterisk.com>
parents:
1212
diff
changeset
|
98 |
1954
3ae1e7f8db23
vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents:
1951
diff
changeset
|
99 |
3ae1e7f8db23
vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents:
1951
diff
changeset
|
100 class Clips(PrettyErrorHandler, cyclone.web.RequestHandler): |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
101 |
1954
3ae1e7f8db23
vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents:
1951
diff
changeset
|
102 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
|
103 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
|
104 videorecorder.deleteClip(clip) |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
105 |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
106 class ReplayMap(PrettyErrorHandler, cyclone.web.RequestHandler): |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
107 |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
108 def get(self): |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
109 song = Song(self.get_argument('song')) |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
110 clips = [] |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
111 for vid in glob.glob(os.path.join(videorecorder.songDir(song), |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
112 b'*.mp4')): |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
113 pts = [] |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
114 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
|
115 _v, vt, _eq, _song, st = line.split() |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
116 pts.append([float(st), float(vt)]) |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
117 |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
118 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
|
119 ):].decode('ascii') |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
120 |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
121 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
|
122 'uri': videorecorder.takeUri(vid), |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
123 'videoUrl': url, |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
124 'songToVideo': pts |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
125 }) |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
126 |
1954
3ae1e7f8db23
vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents:
1951
diff
changeset
|
127 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
|
128 clips = clips[-3:] |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
129 clips.sort(key=lambda c: c['uri'], reverse=True) |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
130 |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
131 ret = json.dumps(clips) |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
132 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
|
133 len(ret)) |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
134 self.write(ret) |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
135 |
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 graph = SyncedGraph(networking.rdfdb.url, "vidref") |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
138 outVideos = videorecorder.FramesToVideoFiles( |
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
139 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
|
140 |
941
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
141 port = networking.vidref.port |
1858 | 142 reactor.listenTCP( |
143 port, | |
1939
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
144 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
|
145 handlers=[ |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
146 (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
|
147 'path': 'light9/vidref', |
1945 | 148 '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
|
149 }), |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
150 (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
|
151 '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
|
152 '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
|
153 }), |
1945 | 154 (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
|
155 (r'/clips', Clips), |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
156 (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
|
157 (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
|
158 (r'/snapshot/(.*)', SnapshotPic, { |
1951
9f0f2b39ad95
vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1945
diff
changeset
|
159 "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
|
160 }), |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
161 (r'/time', Time), |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
162 ], |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
163 debug=True, |
6f49dc917aa3
start vidref web version. v4l camera frames to web page is working
Drew Perttula <drewp@bigasterisk.com>
parents:
1866
diff
changeset
|
164 )) |
941
1d9547f90737
vidref can take snapshots and serve them back
drewp@bigasterisk.com
parents:
937
diff
changeset
|
165 log.info("serving on %s" % port) |
937 | 166 |
935 | 167 reactor.run() |