A collection of small scripts used to speed up everyday CG/VFX work on Linux. They cover video conversion, EXR sequence processing, file management and various utility tasks.
Run the installer on Rocky Linux / RHEL / AlmaLinux:
bash install/setup_deps.shIt covers repositories, packages, and gives you an interactive choice for the OIIO/OCIO stack (see below).
| Package | Used by | Install |
|---|---|---|
| ffmpeg | All video scripts | dnf install ffmpeg (RPM Fusion) |
| ImageMagick | Image conversion, montages | dnf install ImageMagick |
| GNU parallel | EXR batch processing | dnf install parallel |
| poppler-utils | pdftojpg.sh |
dnf install poppler-utils |
| python3 + tkinter | batchexrtomp4.py | dnf install python3 python3-tkinter |
The EXR scripts (exrtomp4.sh, exrtoprores*.sh, exrtojpg.sh, exrtotiff.sh, exrmerge.sh, montages) need oiiotool with a working OCIO (ACES 1.2) config. There are three ways to get this on Rocky:
| Strategy | Pros | Cons |
|---|---|---|
System packages (dnf install OpenImageIO-utils) |
Simplest, no extra deps | Older version (2.4.x), may need manual OCIO setup |
Distrobox container (Ubuntu oiio-box) |
Newer oiiotool, isolated, no commercial dependency | Requires distrobox + podman |
Houdini (hoiiotool wrapper) |
Newest version (2.5.x), self-contained OCIO | Requires Houdini install ($$$) |
install/setup_deps.sh lets you pick interactively. To set up just the distrobox container independently:
bash install/setup_oiio_container.shAll three strategies ensure OCIO is set in ~/.bashrc and ~/bin/oiiotool is on your PATH.
| Package | Used by | Install |
|---|---|---|
| mpv | Grid playback (grid_play.sh) |
dnf install mpv |
| dolphin, kdialog, konsole | KDE desktop integration scripts | dnf install dolphin kdialog konsole |
| libnotify | Desktop notifications | dnf install libnotify |
| xclip | Clipboard scripts | dnf install xclip |
| sox | Audio processing | dnf install sox |
| tmux, btop, nvtop | Monitor scripts (monitor.sh) |
dnf install tmux btop nvtop |
| rsync | syncblender.sh |
dnf install rsync |
| inotify-tools | Watch scripts | dnf install inotify-tools |
| unrtf | rft_to_txt.sh |
dnf install unrtf |
| jq | JSON processing | dnf install jq |
| distrobox | process_hdri.sh, process_pano.sh, oiio-box |
dnf install distrobox |
| Whisper | videototxt.sh, transcribe.sh |
pip install (separate) |
Scripts are grouped roughly by purpose. Most of them are self-contained shell utilities and can be run from any directory once the repo is on your PATH.
- aratio.sh – crop a video into 1:1, 4:5, 16:9 and 9:16 versions.
- aratio_high.sh – high quality variant of
aratio.sh. - exrtomp4.sh – convert an ACEScg EXR sequence to an sRGB MP4.
Example:exrtomp4 -fps 30 -res 1080x1080 - exrtoprores422.sh – convert an EXR sequence to ProRes 422.
- exrtoprores444.sh – convert an EXR sequence to ProRes 444.
- movtoexr.sh – turn a video file into a DWAB-compressed EXR sequence.
- mkv_mov.sh – convert MKV into a ProRes 422 MOV file.
- mp4.sh / mp4hq.sh – convert videos to MP4 (standard / high quality).
- smp4.sh – create a smaller MP4 with
_smallsuffix in the same folder. - prores422hq.sh – encode videos as ProRes 422 HQ.
- prores444.sh – encode videos as ProRes 444.
- webmp4.sh / webmp4_smaller.sh – create web-optimized MP4s.
- pngtomp4.sh – stitch PNG sequence into MP4.
- mp4topng.sh – extract PNG frames from video.
- mp4towav.sh – extract WAV audio from video.
- videotomp3.sh – convert a video to MP3 audio.
- videotojpg.sh / videotopng.sh – convert video to image sequence.
- videototxt.sh – convert video to MP3 and transcribe using Whisper.
- exrarchive.sh – scan subfolders for EXR sequences and convert to MP4.
- exrmerge.sh – merge
_l.exrand_r.exrimages into a single file. - exrtojpg.sh – convert a single EXR to JPG.
- exrtotiff.sh – convert a single EXR to TIFF.
- exrtotiff_ProPhotoRGB.sh – make a ProPhoto RGB TIFF from EXR.
- pdftojpg.sh – convert PDF pages to 300 DPI JPG images (output to
pdftojpg/subfolder). - extractstills.sh / autocut.sh – grab stills based on sensitivity.
- extractallstills.sh – run
extractstills.shacross folders. - pngtomp4.sh – convert PNG sequence to MP4.
- thumbnail.sh / .thumbnail.sh – extract first or custom thumbnails.
- montage.sh / montage4.sh / montage6.sh – build mosaics from EXR frames.
- joinvideo.sh / videomerge.sh – concatenate multiple videos.
- mergeprores.sh / mergeprores2.sh – merge ProRes left/right into one.
- grid3.sh / grid3_backup.sh – make 3×3 grid videos from MP4s.
- grid_play.sh – play multiple videos in a grid with
mpv. - trim.sh – trim frames off start/end of a video.
- addblackframes.sh – add black frames at the start and/or end of videos.
By default adds 1 second of black at each end (based on video FPS).
Options:-start N,-end N,-nostart,-noend.
Example:addblackframes.sh -start 5 -end 3 video.mp4 - record.sh – GPU desktop + webcam recorder with preview.
- process_hdri.sh – generate HDRIs from a single image using DiffusionLight-Turbo (runs in Distrobox).
- hdri_diffusionLight.sh – setup script for the
process_hdri.shenvironment (createshdri-boxcontainer). - hdri.sh – legacy wrapper for the original DiffusionLight pipeline.
- gif.sh / gif_small.sh – create GIFs (normal/small).
- watch_convert_to_gif.sh – auto-convert new videos to GIF.
- watch_move_videos.sh – move incoming videos to subfolders.
- applyaudio.sh – attach a given audio track to multiple videos.
- noaudio.sh – strip audio from video files.
- mp4towav.sh / videotomp3.sh – extract audio tracks.
- transcribe.sh – transcribe audio via Whisper.
- formatjson.sh / formattxt.sh – format Whisper output.
- rft_to_txt.sh – convert RTF to plain text.
- date.sh – create folder named with today’s date.
- project_folder.sh – create standard project folder layout.
- folder.sh – build folders from tree-like indented text.
- clean.sh – recursively delete
tmp*folders. - htmlpreview.sh – generate HTML gallery for image sequences.
- open_clipboard.sh – open clipboard path/image in tool.
- chatid.sh – get Telegram bot’s last chat ID.
- monitor.sh / monitor2.sh / mm.sh – launch
tmuxsession withnvtop+btm. - obs_copy.sh – auto-copy new OBS recordings to dated folders.
- syncblender.sh – sync Blender configs via
rsync. - set_wacom.sh / wacom1.sh / wacom2.sh / wacom3.sh – map Wacom tablet to monitor.
- sine.sh – toggle test tone signal.
- deadline_env_mint.sh – start Deadline with custom env vars.
- create_desktop.sh – generate
.desktopservice menu entries. - deploy_desktop_files.sh – install entries from
desktop_files/. - desktop_files/ – example KDE/Dolphin integration files.
- batchexrtomp4.py – Tkinter app to batch convert EXR sequences.
Place this repository somewhere in your PATH or call the scripts with their full path. Most scripts support command-line flags; read them directly for available options.