Spaces:
Sleeping
Sleeping
File size: 1,690 Bytes
caf1218 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
#!/usr/bin/env python3
import sys
import os
import argparse
import numpy as np
import time
import json
# If this example doesn't work, it's probably because this path is wrong...
sys.path.append('../build/src')
import pypangolin as pango
def main(flags):
vid_uri = flags.pango
vout_uri = flags.pangoOut
vid = pango.VideoInput(vid_uri)
vout = pango.VideoOutput(vout_uri) if vout_uri else None
device_properties = vid.DeviceProperties()
# print metadata
print("Opened video uri: '{}' with {} x {} dimensions".format( vid_uri,vid.Width(),vid.Height()))
# user specified initial frame
vid.Seek(flags.startFrame)
# show each frame
streamsBitDepth = vid.GetStreamsBitDepth()
for frame in vid:
if vout:
vout.WriteStreams(frame, streamsBitDepth, vid.FrameProperties(), device_properties);
# frame is a list of Images! One per stream
# process(frame)
# printing
sys.stdout.write('\rframe: {} / {}'.format(vid.GetCurrentFrameId(), vid.GetTotalFrames()))
print('\nDONE')
if __name__ == "__main__":
# input flags
parser = argparse.ArgumentParser('Read a .pango file frame by frame. Optionally stream to another video output.')
parser.add_argument(
'--pango', type=str,
help='path to the input pango file.')
parser.add_argument(
'--startFrame', type=int, default=0,
help='index of the start frame (inclusive)')
parser.add_argument(
'--pangoOut', type=str, default=None,
help='path to the output pango file.')
# main function
main(parser.parse_args())
|