This Python script allows you to set the AI mode on the OBSBOT Tiny 2 webcam. USB control data was obtained by packet inspection on Windows with USBPcap and Wireshark, then the Python script was adapted from the USB replay generated with usbrply. Use at your own risk - hopefully these features will be formally supported on Linux in the future!
I’ve now switched to using https://github.com/cgevans/tiny2, and so ongoing development of this project will be limited. Pull requests are welcomed.
To set an AI mode, use: python obsbot.py -ai <mode>
. The supported
modes include:
- stop: Disable the currently active AI mode, returning to a static camera
- normal: Normal (default) person tracking mode
- upperbody: Tracking which focuses on the upper body
- closeup: Closeup tracking of the mid-torso and above
- headless: Tracking of everything below your head
- desk: Tilted down 30 degrees immediately in-front of the camera with image warping to show the desk
- whiteboard: Using corner indicating stickers, frame the camera and warp the image to show a whiteboard
- hand: Follows your hands rather than your face/body.
- group: Follows a group of people, tracking everyone in frame.
A video showing these tracking modes is available here: https://www.youtube.com/watch?v=C6RoOf4HDbE
There is a shiny app in app.py
designed to be used as a custom browser
dock in OBS. To do this you can use this OBS
Script
(shiny.lua
)
to run the Shiny app when OBS is launched. Then add a custom browser
dock to OBS with the url 0.0.0.0:<port>
. This allows you to set the AI
mode of the camera from within OBS: