└── ReadMe.md /ReadMe.md: -------------------------------------------------------------------------------- 1 | Newtek NDI Remote Control with cURL 2 | ------------------ 3 | 4 | It is arbitrary to target and configure what Studio Monitor is doing (as long as you have not set a password, there are security implications, will add info for an authenticate the session when time permits) - this should give a starting point for all parameters: 5 | 6 | Accessing the source list and current configuration: 7 | ``` 8 | curl http://[target studio monitorIP]/v1/configuration 9 | ``` 10 | - returns the current config of Studio Monitor and shows all parameters E.G.: 11 | ``` 12 | {"version":1,"NDI_source":"DESKTOP-UQM4V86 (Intel(R) HD Graphics 520 1)","NDI_overlay":"","PTZ_controller":"","audio_ou tput":"SONY TV *00 (Intel(R) Display Audio)","window":{"display_device":"","always_on_t op":false,"hide_border":false,"showcmd":1,"min_pos n_x":-1,"min_posn_y":-1,"max_posn_x":-1,"max_posn_y":-1,"normal_posn_left":413,"normal_posn_right":1853, "normal_posn_top":127,"normal_posn_bottom":873},"d ecorations":{"checkerboard":false,"picture_in_pict ure":true,"hw_accel":false,"tally":true,"low_bandw idth":false,"mute_audio":false,"audio_gain":-20,"vu_meter":true,"vu_meter_scale":false,"center_ cross":ffairlyalse,"safe_areas":false,"show_4_3":false," best_fit":true,"square_aspect":false,"hide_ptz_con trols":false,"show_alpha":false,"run_on_startup":f alse,"web_server":true,"show_web_url":true,"menu_p osn_x":56.0,"menu_posn_y":8.0} 13 | ``` 14 | ``` 15 | curl http://[target studio monitorIP]/v1/sources 16 | ``` 17 | returns available NDI sources from this studio monitors perspective: 18 | ``` 19 | {"ndi_sources":["DESKTOP-UQM4V86 (Intel(R) HD Graphics 520 1)","DESKTOP-UQM4V86 (Microsoft Camera Front)","UAL.LOCAL (NDI Signal Generator)","UAL.LOCAL (Scan Converter)"],"audio_devices":["SONY TV *00 (Intel(R) Display Audio)"],"display_devices":["Full Screen"],"controllers":[],"studio_monitors":{""} 20 | ``` 21 | 22 | 23 | To post a config change for the primary NDI source: 24 | ----- 25 | 26 | Main Window NDI source setting, Change a Source from something to 'None': 27 | 28 | ``` 29 | curl -H "Content-Type: application/json" -X POST -d '{"version":1,"NDI_source":""}' http://[target studio monitorIP]/v1/configuration 30 | ``` 31 | 32 | Change Source from something / none to a new source from the available listed at /v1/sources: 33 | ``` 34 | curl -H "Content-Type: application/json" -X POST -d '{"version":1,"NDI_source":"DESKTOP-UQM4V86 (Intel(R) HD Graphics 520 1)"}' http://[target studio monitorIP]/v1/configuration 35 | ``` 36 | 37 | Picture in Picture: 38 | ----- 39 | 40 | Add a new picture in picture source from the available listed at /v1/sources: 41 | ``` 42 | curl -H "Content-Type: application/json" -X POST -d '{"version":1,"NDI_overlay":"DESKTOP-UQM4V86 (Intel(R) HD Graphics 520 1)"}' http://[target studio monitorIP]/v1/configuration 43 | ``` 44 | 45 | Remove picture in picture: 46 | ``` 47 | curl -H "Content-Type: application/json" -X POST -d '{"version":1,"NDI_overlay":""}' http://[target studio monitorIP]/v1/configuration 48 | ``` 49 | Temporarily toggle PIP on / off (take over whole screen, or return to PIP corner) 50 | ``` 51 | curl -H "Content-Type: application/json" -X POST -d '{"version":1,"decorations":{"picture_in_picture": true}}' http://[target studio monitorIP]/v1/configuration 52 | ``` 53 | ``` 54 | curl -H "Content-Type: application/json" -X POST -d '{"version":1,"decorations":{"picture_in_picture": false}}' http://[target studio monitorIP]/v1/configuration 55 | ``` 56 | 57 | Example configuration settings 58 | ------------------ 59 | 60 | (any Studio Monitor 3.5.x / 3.7.x setting can be targeted): 61 | 62 | Switch on / off Hardware Acceleration: 63 | ``` 64 | curl -H "Content-Type: application/json" -X POST -d '{"version":1,"decorations":{"hw_accel":true}}' http://[target studio monitorIP]/v1/configuration 65 | ``` 66 | ``` 67 | curl -H "Content-Type: application/json" -X POST -d '{"version":1,"decorations":{"hw_accel":false}}' http://[target studio monitorIP]/v1/configuration 68 | ``` 69 | 70 | Switch on / off Tally: 71 | ``` 72 | curl -H "Content-Type: application/json" -X POST -d '{"version":1,"decorations":{"tally":true}}' http://[target studio monitorIP]/v1/configuration 73 | ``` 74 | ``` 75 | curl -H "Content-Type: application/json" -X POST -d '{"version":1,"decorations":{"tally":false}}' http://[target studio monitorIP]/v1/configuration 76 | ``` 77 | 78 | Hide / show window border: 79 | ``` 80 | curl -H "Content-Type: application/json" -X POST -d '{"version":1,"window":{"hide_border":true}}' http://[target studio monitorIP]/v1/configuration 81 | ``` 82 | ``` 83 | curl -H "Content-Type: application/json" -X POST -d '{"version":1,"window":{"hide_border":false}}' http://[target studio monitorIP]/v1/configuration 84 | ``` 85 | 86 | Secondary / Additional windows on the same IP: 87 | ----- 88 | 89 | The first window uses port 80 - the second 81 etc. 90 | --------------------------------------------------------------------------------