39 lines
2.3 KiB
Markdown
39 lines
2.3 KiB
Markdown
# Fuzbal
|
||
|
||
Friendly Usable Zero‐Bullshit Analyzer & Labeler: a keyboard‐driven utility for tagging events in video clips, created for analyzing football matches but likely useful for other kinds of videos.
|
||
|
||
While functional, this project is not yet production‐ready. While unlikely, it might eat your files or your cake.
|
||
|
||
## Usage
|
||
|
||
Open a video. Press `space` to start or stop video playback. Seek with `←` and `→`. Use `,` and `.` to decrease and increase the playback rate, and `=` to reset it.
|
||
|
||
To add a new event, press the key for the corresponding tag and fill out event details. Custom tags can be defined as a JSON array and loaded at runtime. See `tags.json` for the built‐in example showcasing all supported field types.
|
||
|
||
Events for `video.mp4` are saved in JSON format to the file `video.mp4.events`. The saved file includes tag definitions, which are loaded automatically when the video is opened. Event timestamps are stored with millisecond precision.
|
||
|
||
### Filter
|
||
|
||
Input space‐separated search strings to select a subset of events. Selected events must match each string, either as the tag name or a field value. Tags are matched from the beginning, so `p` will select events tagged `pass` and `penalty`.
|
||
|
||
Text and enum fields match when they contain the given search string. Prefixing the string with `=` specifies a complete match. The string `2` thus matches values `123`, `2` and `22`, while `=2` only matches `2`. A boolean field matches when it’s value is true and it’s name starts with the search string. Prefixing the string with `!` inverts the match.
|
||
|
||
Finally, a search string can be prefixed with a (prefix of) field name, as in `play:2`. This selects events with a field named `player` whose value matches `2` as above. This can be combined with the `!` and `=` operators, as in `pass:!success`.
|
||
|
||
## Compiling
|
||
|
||
Qt≥5.14 is required. Once Debian catches up, this might be enough:
|
||
|
||
# apt install git qtmultimedia-dev qtquickcontrols2-dev qml-module-qtmultimedia qml-module-qtquick-dialogs
|
||
|
||
One or more of the `gst-plugins` packages are needed at runtime to play videos. Build with:
|
||
|
||
$ mkdir build && cd build
|
||
$ qmake ..
|
||
$ make
|
||
|
||
This should create the `fuzbal` binary.
|
||
|
||
## License
|
||
|
||
This project is released into the public domain. Breeze icons are distributed under LGPL3+. See `UNLICENSE` and `icons/breeze/LICENSE` for details.
|