diff --git a/Demo/sgi/video/video.py b/Demo/sgi/video/video.py
index ec135af..7c34e7a 100755
--- a/Demo/sgi/video/video.py
+++ b/Demo/sgi/video/video.py
@@ -1,3 +1,4 @@
+import getopt
 from gl import *
 from GL import *
 from DEVICE import *
@@ -72,20 +73,35 @@
     spkr.writesamps(data)
 
 def main():
-	foreground()
-	if len(sys.argv) > 1:
-		filename = sys.argv[1]
+	looping = 0
+	packfactor = 0
+	opts, args = getopt.getopt(sys.argv[1:], 'p:l')
+	for opt, arg in opts:
+		if opt = '-p':
+			packfactor = int(eval(arg))
+		elif opt = '-l':
+			looping = 1
+	if args:
+		filename = args[0]
 	else:
 		filename = 'film.video'
 	f, w, h, pf = openvideo(filename)
-	if len(sys.argv) > 2:
-		audiofilename = sys.argv[2]
+	if 0 < packfactor <> pf:
+		w = w/pf*packfactor
+		h = h/pf*packfactor
+		pf = packfactor
+	if args[1:]:
+		audiofilename = args[1]
 		af = open(audiofilename, 'r')
 		spkr = openspkr()
+		afskip = 0
 		if len(sys.argv) > 3:
-			af.seek(eval(sys.argv[3]))
+			afskip = eval(sys.argv[3])
+		if afskip > 0:
+			af.seek(afskip)
 	else:
 		af, spkr = None, None
+	foreground()
 	prefsize(w,h)
 	win = winopen(filename)
 	RGBmode()
@@ -98,6 +114,8 @@
 	epoch.epoch = time.millitimer()
 	nframe = 0
 	tijd = 1
+	if looping:
+		looping = f.tell()
 	try:
 	    while 1:
 		if running:
@@ -114,6 +132,13 @@
 			print 'Played', nframe, 'frames at',
 			print 0.1 * int(nframe * 10000.0 / (t-epoch.epoch)),
 			print 'frames/sec'
+			if looping:
+				f.seek(looping)
+				epoch.epoch = time.millitimer()
+				nframe = 0
+				running = 1
+				if af <> None:
+					af.seek(afskip)
 		if af <> None:
 			playsound(af,spkr)
 		if not running or qtest():
