diff scripts/play-synced-videos.py @ 822:41558145e131

minor rename
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Wed, 22 Jun 2016 16:41:19 -0400
parents scripts/play-synced-video.py@26daf35180ad
children 14e4ad7c7420
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/play-synced-videos.py	Wed Jun 22 16:41:19 2016 -0400
@@ -0,0 +1,37 @@
+#! /usr/bin/env python
+
+import sys, argparse, os.path
+import cvutils, utils
+from metadata import createDatabase, Site, VideoSequence
+from datetime import datetime, timedelta
+
+parser = argparse.ArgumentParser(description='The program displays several views of the same site synchronously.')
+parser.add_argument('-i', dest = 'metadataFilename', help = 'name of the metadata file', required = True)
+parser.add_argument('-n', dest = 'siteId', help = 'site id or site name', required = True)
+parser.add_argument('-t', dest = 'startTime', help = 'time to start playing (format %Y-%m-%d %H:%M:%S, eg 2011-06-22 10:00:39)', required = True)
+parser.add_argument('--fps', dest = 'frameRate', help = 'approximate frame rate to replay', default = -1, type = float)
+parser.add_argument('-r', dest = 'rescale', help = 'rescaling factor for the displayed image', default = 1., type = float)
+parser.add_argument('-s', dest = 'step', help = 'display every s image', default = 1, type = int)
+
+args = parser.parse_args()
+
+session = createDatabase(args.metadataFilename)
+
+if str.isdigit(args.siteId):
+    site = session.query(Site).filter(Site.idx == int(args.siteId)).first()
+else:
+    site = session.query(Site).filter(Site.description.like('%'+args.siteId+'%')).first()
+
+if site is None:
+    print('Site {} was not found in {}. Exiting'.format(args.siteId, args.metadataFilename))
+    sys.exit()
+
+dirname = os.path.split(args.metadataFilename)[0]
+
+startTime = datetime.strptime(args.startTime, utils.datetimeFormat)
+videoSequences = session.query(VideoSequence).filter(VideoSequence.site == site).filter(VideoSequence.startTime <= startTime).all()
+videoSequences = [v for v in videoSequences if v.containsInstant(startTime)]
+filenames = [dirname+os.path.sep+v.getVideoSequenceFilename() for v in videoSequences]
+firstFrameNums = [v.getFrameNum(startTime) for v in videoSequences]
+
+cvutils.playVideo(filenames, [v.cameraView.description for v in videoSequences], firstFrameNums, args.frameRate, rescale = args.rescale, step = args.step)