gighiveThis document describes the media formats GigHive supports for ingestion, and how the Ansible group_vars configuration is intended to drive the PHP upload validation and media-type inference.
GigHive ingestion support is defined in two ways:
audio vs video.group_vars).ffprobe on the server is the ultimate truth for whether a file is usable media.aviflvbupifom2tm2vm2tsm4vmkvmovmp4mpegmpgmxfogvrmrmvbrvtsvobwebmwmvvideo/mp4video/quicktimevideo/x-matroskavideo/webmvideo/x-msvideovideo/mpegvideo/mp2tvideo/MP2Tvideo/oggvideo/x-flvapplication/mxfvideo/mxfapplication/vnd.rn-realmediaaudio/vnd.rn-realaudioaudio/x-pn-realaudiovideo/vnd.rn-realvideovideo/x-ms-wmvvideo/x-ms-asfapplication/vnd.ms-asfaacaifaifcaiffauflacm4am2amp3ogaoggwavaudio/mpegaudio/mp3audio/wavaudio/x-wavaudio/aacaudio/flacaudio/mp4audio/aiffaudio/x-aiffaudio/oggapplication/oggaudio/vorbisaudio/basicaudio/x-auaudio/auaudio/mp2audio/mpeg2group_vars is used (Ansible -> Docker env -> PHP)When centralized configuration is enabled, the ingestion allowlists are intended to be defined in the dev inventory here:
ansible/inventories/group_vars/gighive2/gighive2.ymlSuggested variables (names may vary slightly, but the intent is the same):
gighive_upload_allowed_mimes (list)gighive_upload_audio_exts (list)gighive_upload_video_exts (list)Those values are then rendered by Ansible into the Apache container’s .env file:
ansible/roles/docker/templates/.env.j2/apache/externalConfigs/.envDocker Compose loads that .env into the Apache/PHP-FPM container environment:
ansible/roles/docker/templates/docker-compose.yml.j2env_file: ./apache/externalConfigs/.envInside the container:
.env using vlucas/phpdotenv (see ansible/roles/docker/files/apache/webroot/config.php).clear_env = no (see ansible/roles/docker/templates/www.conf.j2), so container env vars remain visible to PHP.PHP then uses the allowlists for:
audio/* and video/* types.audio vs video when MIME is missing or unusable.AV1 is a codec, not a file extension or container format. You typically encounter AV1 in containers like .mp4, .mkv, or .webm. Since those containers are supported, AV1 content should work without adding a special .av1 extension.
.r3d)RED .r3d is a proprietary RAW camera format. Even if it is allowlisted by extension, ingestion may still fail downstream (MIME sniffing may report application/octet-stream, and tooling like ffprobe/ffmpeg may not reliably parse it in the current build). For now, .r3d is intentionally not included in the supported lists.