
import sys
import pyzed.sl as sl
import argparse
from time import sleep

def main():
    init = sl.InitParametersOne()
    init.camera_resolution = sl.RESOLUTION.AUTO
    init.set_from_serial_number(316310960)
    init.sdk_verbose = 1
    cam = sl.CameraOne()
    status = cam.open(init)
    if status != sl.ERROR_CODE.SUCCESS: #Ensure the camera has opened succesfully
        print("Camera Open : "+repr(status)+". Exit program.")
        exit()
    stream_params = sl.StreamingParameters()
    print("Streaming on port ",stream_params.port) #Get the port used to stream
    stream_params.codec = sl.STREAMING_CODEC.H265
    stream_params.bitrate = 4000
    status_streaming = cam.enable_streaming(stream_params) #Enable streaming
    if status_streaming != sl.ERROR_CODE.SUCCESS:
        print("Streaming initialization error: ", status_streaming)
        cam.close()
        exit()
    exit_app = False 
    try : 
        while not exit_app:
            err = cam.grab()
            if err <= sl.ERROR_CODE.SUCCESS: 
                sleep(0.001)
    except KeyboardInterrupt:
        exit_app = True 

    # disable Streaming
    cam.disable_streaming()
    # close the Camera
    cam.close()
    
    
if __name__ == "__main__":
    main()