Bash Scripts for Audio-Visual Preservation

Bash AVpres is a set of Bash scripts for audio-visual preservation, used on a daily base at our conservation and restoration lab, AV Preservation by These small programs are designed for both to be used individually and to be chained each other as needed. The scripts are released under a 3-Clause BSD License and provided “as is” without warranty or support of any kind. Bug reports are very welcome, as usual.

Elements of the Set

Checksum manifests
  • make_manifest – make a checksum manifest
  • verify_manifest – verify a checksum manifest
  • update_manifest – update a checksum manifest when files are added or deleted
  • name_hash – add, verify or remove a checksum as filename’s suffix
  • make_framemd5 – make a frame MD5 checksum manifest
  • verify_framemd5 – verify a frame MD5 checksum manifest
BagIt archives
  • make_bagit – make a BagIt archive
  • verify_bagit – verify a BagIt archive
  • update_bagit – update a BagIt archive when files are added or deleted
  • modify_bagit – modify the BagIt version and/or checksum algorithm
  • undo_bagit – undo a BagIt archive
FFmpeg tools
  • ffengine_presets – list, install, delete or print FFCommand Engine presets (macOS and Windows)
  • ffmpeg_head – install, patch or delete FFmpeg HEAD


All the scripts come with a short embedded help message and a manual page (“man”). Running bash_avpres shows the list of the installed commands:

$ bash_avpres
Bash AVpres 2021-12-18 provides the following commands:
  make_bagit                verify_bagit              bash_avpres
  make_ffv1                 verify_ffv1               ffengine_presets
  make_framemd5             verify_framemd5           ffmpeg_head
  make_h264                 verify_manifest           missing_files
  make_manifest                                       name_hash
  make_prores               undo_bagit                nano_config


The scripts can be run from everywhere, without any specific installation. Of course, they have to be executable; if they aren’t, run for example chmod +x bash_avpres or, when administrator privileges are required, sudo chmod +x bash_avpres.

In addition, two possibilities are provided for a regular installation at the root: via a Homebrew formula and via a Makefile. And we advise to use either one of these.


The installation via Homebrew works fine not only on Linux and Mac, but also on Windows running Terminal or Subsystem for Linux. Run the following two commands in the Terminal:

brew tap avpres/formulae
brew install bash-avpres


As usual, directions are recalled in the README.txt file. Run the following three classic commands in the Terminal:

cd bash-avpres-2021-12-18
make install


The Bash AVpres scripts have been used successfully on various modern x86_64 and AArch64 architectures, running under the following operating systems:

  • Linux: Debian 11.1, 10.11 and 9.13; Ubuntu 21.10, 20.04.3 LTS, 18.04.6 LTS and 16.04.7 LTS; Slackware 15.0 and 14.2; Qubes OS 4.0.4
  • Mac: macOS 12.2.1, 11.6.3, 10.15.7 and 10.14.6
  • Windows: 11; 10 version 21H2, 21H1, 20H2, 2004 and 1909, running Terminal or Subsystem for Linux


The scripts have been programmed to run also on the old Bash version 3.2 (released on 2006-10-11), which sadly still comes with the Apple computers. However, we strongly advise to install the current Bash version 5.1 (released on 2020-12-07) also on computers running under macOS.

Source Code

The source code of the Bash AVpres package is available on our website as a “.tar.gz” file, a TAR archive which was compressed with gzip. Of course, it includes a Change Log file.


Reto Kromer wishes to acknowledge the inspiration given and the help provided by:

  • Frédéric Noyer
  • Joshua Levy
  • Joshua Ng
  • Michal Cohen

(in alphabetical order of the given name).