Title: | A Shiny App for Volleyball Video Analysis |
---|---|
Description: | A Shiny app and supporting functions for analysis of volleyball video and scouted match files. |
Authors: | Adrien Ickowicz [aut, cre], Ben Raymond [aut], openvolley.org [org] |
Maintainer: | Adrien Ickowicz <[email protected]> |
License: | MIT + file LICENSE |
Version: | 0.13.1 |
Built: | 2024-11-09 10:15:44 UTC |
Source: | https://github.com/openvolley/ovva |
A Shiny app and supporting functions for volleyball video and scouted match files.
Maintainer: Adrien Ickowicz [email protected]
Authors:
Ben Raymond
Other contributors:
openvolley.org [originator]
Useful links:
Report bugs at https://github.com/openvolley/ovva/issues
ovva_highlight_handler
provides functions that create highlight playlists. Highlights are judged according to the weighting scheme defined by ovva_highlight_weighting
.
ovva_highlight_handler(clip_duration = 180) ovva_highlight_weighting(weights)
ovva_highlight_handler(clip_duration = 180) ovva_highlight_weighting(weights)
clip_duration |
numeric: the maximum highlight clip length in seconds |
weights |
data.frame: a data.frame or tibble with columns You can cook up your own version of this highlight handler function to suit your liking, and pass it as the |
A tibble, with columns 'skill', 'specific', and 'fun'. Each row defines a playlist entry that corresponds to specific match conditions. This playlist entry is referred to by the name given in specific
, and applies to the skill in column skill
. The corresponding entry in fun
should be a function that takes three arguments (x
, the play-by-play data; team
, the team names to look for, and player
, the player names to look for) and returns the subset of rows of x
that correspond to the playlist conditions.
This is a helper function to install lighttpd. Currently it only works on Windows platforms. The lighttpd bundle will be downloaded from http://lighttpd.dtech.hu/ and saved to your user appdata directory.
ovva_install_lighttpd(force = FALSE)
ovva_install_lighttpd(force = FALSE)
force |
logical: force reinstallation if lighttpd already exists |
the path to the installed executable
## Not run: ovva_install_lighttpd() ## End(Not run)
## Not run: ovva_install_lighttpd() ## End(Not run)
You can cook up your own version of this function to suit your liking, and pass it as the playlist_handler
parameter to ovva_shiny
.
ovva_playlist_handler()
ovva_playlist_handler()
A tibble, with columns 'skill', 'specific', and 'fun'. Each row defines a playlist entry that corresponds to specific match conditions. This playlist entry is referred to by the name given in specific
, and applies to the skill in column skill
. The corresponding entry in fun
should be a function that takes three arguments (x
, the play-by-play data; team
, the team names to look for, and player
, the player names to look for) and returns the subset of rows of x
that correspond to the playlist conditions.
Launch the Shiny app
ovva_shiny( data_path, playlist_handler = ovva_playlist_handler(), highlight_handler = ovva_highlight_handler(), video_server = "lighttpd", launch_browser = TRUE, video_timing_df = ov_video_timing_df(), ... )
ovva_shiny( data_path, playlist_handler = ovva_playlist_handler(), highlight_handler = ovva_highlight_handler(), video_server = "lighttpd", launch_browser = TRUE, video_timing_df = ov_video_timing_df(), ... )
data_path |
character or function: a named character vector of paths to data files. The names will be used as the competition names. So e.g. |
playlist_handler |
tibble: a tibble that provides playlist handler capabilities (see |
highlight_handler |
tibble: a tibble that provides playlist handler capabilities (see |
video_server |
string or function: if string, either "lighttpd", "servr", or "none". If a function, it will be used to modify the video file path present in each dvw file. Details TBD |
launch_browser |
logical: if |
video_timing_df |
data.frame: data.frame of default clip timings |
... |
: additional parameters passed to the UI and server functions |
## Not run: ## to use your own data, assuming that your data files are in the data/volley/ folder ovva_shiny(data_path = c(MyData = "data/volley")) ## or to use the bundled demonstration file ovva_shiny_demo() ## End(Not run)
## Not run: ## to use your own data, assuming that your data files are in the data/volley/ folder ovva_shiny(data_path = c(MyData = "data/volley")) ## or to use the bundled demonstration file ovva_shiny_demo() ## End(Not run)
The demonstration data set is the 2018 women's final (first of 3) from the German Bundesliga: Allianz MTV Stuttgart vs SSC Palmberg Schwerin.
ovva_shiny_demo()
ovva_shiny_demo()
## Not run: ovva_shiny_demo() ## End(Not run)
## Not run: ovva_shiny_demo() ## End(Not run)
Note that performance with "servr" may not be great, particularly with each new video, because servr has to read the entire video file before it can serve clips from it.
ovva_video_server(method, port)
ovva_video_server(method, port)
method |
string: either "lighttpd" or "servr". If "lighttpd" but the lighttpd executable cannot be found, "servr" will be used as a fallback |
port |
integer: the port to open the server on. If missing or |
A list with components method
, url
, port
, dir
(the source dir from which files will be served), and cleanup_fun
(a function to run when finished with the server, which will stop the server process and clean up its dir
)