Yewee 1.0
Command line and files
Every launch flag Yewee 1.0 takes, how to use them with the installed app, and where settings, logs and the licence are kept.
You don't need any of this for a normal show: every setting lives in the control panel and is saved as you change it. Flags are for the few things the panel can't do (a second copy of Yewee, a different panel port, setting the PIN) and for starting a machine in a known state.
Starting Yewee with flags
Windows. Open Command Prompt or PowerShell and run the program in the install folder. For a normal per-user install that is:
"%LOCALAPPDATA%\Programs\yewee\yewee.exe" --pin 2580
If you chose to install for all users, it is in C:\Program Files\yewee\ instead. To keep flags, make a copy of the desktop shortcut and add them to the end of its Target in Properties.
Mac. Open Terminal and run the program inside the app:
/Applications/Yewee.app/Contents/MacOS/yewee --pin 2580
Yewee then runs in that Terminal window; closing the window quits it.
From source, the same flags follow python main.py.
--help lists every flag.
How flags and saved settings mix
- A flag you give wins over the saved setting for that run.
- Flags you don't give leave the saved settings alone.
- Changing anything in the panel saves every current setting, including values that came from a flag. So a flag given once tends to stick: after
--det-threshold 0.3and one change in the panel, 0.3 is the saved value. Change it back in the panel if you meant it for one run only. - The panel covers the useful range. Some flags accept a wider one (below). A value outside the panel's range still works, but its slider sits at the nearest end, or its menu shows no choice, until you change it there.
Input
--source
What to open at launch. Default: the source you last picked in the panel, or the first camera on a first run.
| Form | Opens |
|---|---|
0, 1, … | A camera by its number in the system's list. |
cam:NAME | A camera or capture device by its name (cam:Cam Link 4K). Survives replugging, unlike a number. |
ndi:NAME | An NDI source by its name or any part of it, ignoring case (ndi:PTZ Cam 1). |
| A path or URL | A video file or stream, anything OpenCV can open. |
If it can't be opened, Yewee starts anyway on a NO INPUT slate and says why. A source picked in the panel is saved; one given here is not, until you pick it in the panel.
--width, --height, --fps
The capture format to ask a camera or capture card for. Defaults 1280, 720 and 30, the same as 720p30 in Capture format. Any other value sets the capture format for this run, for example --width 1920 --height 1080 --fps 50.
--fps also sets the Output frame rate when it isn't 30.
--capture-backend
The Capture driver: any (Auto, the default), dshow (DirectShow), msmf (Media Foundation) or avfoundation.
--loop
Loop video files. Already the default (Loop video files); the flag only turns it back on if the panel turned it off.
--flip
Turns on Mirror image.
Face finding
--backend
The Detector: auto (default), yunet or centerface.
--det-size
Search detail as a width in pixels. The panel offers 480, 640, 960 and 1280; the flag takes 160 to 1920.
--det-threshold
Strictness. The panel offers 0.10 to 0.90; the flag takes 0.05 to 0.95.
--detect-every
Detector pace: run the detector every Nth frame. The panel offers 1 to 4; the flag takes 1 to 6.
--min-face
Ignore small faces, in pixels. The panel offers 0 to 120; the flag takes 0 to 300.
--max-misses
Hold lost faces, in frames. The panel offers 2 to 60; the flag takes 1 to 90.
On-screen look
--no-emotion
Turns Expressions off for this run. They are off by default.
--emotion-budget
Expression effort: faces given a fresh label each frame. The panel offers 1 to 12; the flag takes 0 to 16, where 0 labels nothing.
--no-ids
Turns off Number badges.
--no-stats
Turns off the Stats readout.
Outputs
--ndi-name
The name in every feed's name, default Yewee. The feeds become MACHINE (NAME), MACHINE (NAME Overlay), MACHINE (NAME Faces) and MACHINE (NAME Mask), and the Syphon or Spout names yewee-NAME, yewee-NAME-overlay and so on. Needed to run two copies on one machine. Not saved: give it at every launch.
--ndi-overlay
--ndi-overlay NAME turns the Overlay feed on over NDI and names it MACHINE (NAME) instead of MACHINE (Yewee Overlay).
--clean-main
Turns on Keep program clean.
--no-ndi
Starts with every NDI feed off: Program, Overlay, Faces cutout and Mask. Syphon and Spout still follow their saved switches.
--out-width
Output size as a width in pixels; 0 matches the input. The panel offers 0, 1920, 1280 and 960; the flag takes 0 to 3840.
--texture-share
Turns on the Program feed over Syphon (Mac) or Spout (Windows). The other feeds' Syphon or Spout switches are in the Outputs card.
--no-preview
Starts with Window on the machine off.
Control panel
--pin
The PIN other devices must give the panel. It is kept for next time.
--pin 2580sets it. Any word or number works; four digits is easiest on a phone.--pin none(or--pin off) turns the PIN off, and that is kept too. Anyone on the network can then open the panel and change or quit the show.- Without the flag, Yewee uses the saved PIN, or makes four random digits on the first launch.
The console and the machine's own panel always show the current PIN.
--web-port
The panel's port, default 8089. A second copy of Yewee on the same machine needs its own. If a copy of Yewee already serves the port you start on, the new launch just opens the existing panel and exits.
--web-host
Which network the panel listens on. The default, 0.0.0.0, is every network the machine is on. --web-host 127.0.0.1 keeps the panel to the Yewee machine alone: phones can't reach it, and the line at the top of the machine's panel shows only the PIN, with no address.
--no-browser
Doesn't open the panel in a browser at launch. For a machine that starts Yewee by itself and is run from a phone.
--no-web
No control panel at all: Yewee runs on its saved settings and the flags. Nothing can be changed until the next launch, so this is for unattended installs only.
Other
--doctor
Runs the self-check and exits: Python and packages, the models, the camera, NDI, Syphon or Spout, and whether the panel port is free. Each line says ok, a note, or a problem with its fix, and the last line says whether the machine is ready for the show.
--quiet
Leaves out the stats line (fps, faces, processing time) Yewee prints to the console every 150 frames, about every five seconds at 30 fps. Errors and the start-up banner still print.
--max-frames
Stops after that many frames. For tests and benchmarks: it also turns off keep-awake and the stall watchdog. Not for a show.
While Yewee runs
- Keep-awake. Yewee stops the machine and its display going to sleep while it runs, and lets go when it quits.
- Stopping. Ctrl-C in the console, closing the console window, or Quit in the panel all stop Yewee cleanly.
- Watchdog. If Yewee's processing stops for 30 seconds (a camera driver hanging, for example), Yewee closes itself, so it can't sit frozen on air. It then starts itself again within seconds, with the same source, feeds and settings. This works for the installed app and for a copy started from source with the included launcher (
Yewee Mac.commandorYewee Windows.bat). A crash is different: the installed app isn't started again after one, so start it yourself, and it comes back as it was. The launchers restart it after a crash too. - Double launch. Starting Yewee while it is already running just opens the running one's panel.
Where Yewee keeps things
The installed app keeps everything in your user data folder, which updates and uninstalls leave alone:
- Mac:
~/Library/Application Support/yewee/ - Windows:
%APPDATA%\yewee\(paste that into File Explorer's address bar)
| File | What it is |
|---|---|
settings.json | Every panel setting, the last source, the PIN, and the crash-report choice. |
logs/yewee.log | The log. The panel's view log link shows the end of it. |
crash/ | Notes Yewee leaves while running, to tell a crash from a clean quit at the next launch. |
reports/queue/ | Crash reports and feedback waiting for a connection (only what you agreed to send). |
licence.key, shop-licence.json | Your licence. |
trial.json | When the trial started. |
To start from factory settings, quit Yewee and delete settings.json. That also makes a new PIN at the next launch. Deleting the other files doesn't restart the trial.
Run from source, settings.json, logs/, crash/ and reports/ sit next to main.py instead, so each checkout has its own settings; the licence and trial files stay in the user data folder above.
settings.json
Plain JSON: "source", "pin", a "reports" section, and "params", with one key per panel setting. It is safe to copy between machines to carry a show's setup (the PIN comes with it). Edit it only while Yewee is not running. Unknown or out-of-range values are ignored or brought into range.
| Key | Panel setting |
|---|---|
detector, det_threshold, det_size, detect_every, min_face, max_misses | Face finding |
emotion_enabled, emotion_budget, show_ids, show_stats, overlay_color | On-screen look |
cap_format, cap_backend, loop_file, flip | Input |
ndi_program, ndi_overlay, ndi_faces, ndi_mask, tex_program, tex_overlay, tex_faces, tex_mask, clean_main, mask_style, flip_ndi, flip_tex, out_width, out_fps | Outputs |
cutout_shape, people_model, cutout_margin, cutout_grow, cutout_feather, cutout_steady | Cutout shape |
limit_cpu, auto_relief | Machine load |
test_card, panel_preview, preview_source, local_preview | Process and Preview |