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 reto.ch. These small programs are designed for both to be used individually and to be chained each other as needed. Bug reports are very welcome, as usual.

Table of Contents


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 – beta testing
  • repair_manifest – [try to] repair a broken manifest – alpha testing
  • 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
Files
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 – beta testing
  • modify_bagit – modify the BagIt version – beta testing
  • repair_bagit – [try to] repair a broken BagIt archive – alpha testing
  • undo_bagit – undo a BagIt archive
Other tools
  • bash_avpres – list of the installed commands
  • display_config – display the configuration files for the installed “AVpres” packages – webpage coming soon
  • nano_config – manage local Nano configuration files
  • ffmpeg_head – install, patch or delete FFmpeg HEAD
  • check_ltfs – check which LTFS library is installed – beta testing

Documentation

All the scripts come with a short embedded help message and a manual page (“man”).

Show the list of the installed commands:

$ bash_avpres

Bash AVpres 2026-01-02 provides the following commands:

  bash_avpres         make_h264           undo_bagit
  check_ltfs          make_manifest       verify_bagit
  display_config      make_prores         verify_ffv1
  ffmpeg_head         metadata_csv        verify_framemd5
  make_bagit          missing_files       verify_manifest
  make_ffv1           name_hash
  make_framemd5       nano_config

$

Installation

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 Makefile and via a Homebrew formula. And we advise to use either one of these.

Makefile

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

cd bash-avpres-2026-01-02
./configure
make install

If your privileges are insufficient, then you must run sudo make install instead of make install.

We recommand to run also the command

make clean

after installation, which removes outdated elements and therefore keeps your computer cleaner.

Homebrew

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

brew tap avpres/formulae
brew install bash-avpres

Compatibility

The Bash_AVpres scripts have been used successfully on various modern x86-64 and AArch64 architectures, running under the following operating systems:

  • Linux: Debian 13.2, 12.12 and 11.11; Ubuntu 25.10, 24.04.3 LTS and 22.04.5 LTS
  • Macintosh: macOS 26.2, 15.7.3 and 14.8.2
  • Windows 11 version 25H2, 24H2 and 23H2 running Subsystem for Linux (WSL 2.6.3)

 

Almost all 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, but some run better on Bash version 4.3 (released on 2014-02-26). However, we strongly advise to install the current Bash version 5.3 (released on 2025-07-03) also on computers running under macOS. Note that we didn’t check any compatibility with versions older than 2.04 (released on 2000-03-21).

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.

Acknowledgments

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

 

  • Claudia Röck
  • Frédéric Noyer
  • Joshua Levy
  • Joshua Ng
  • Kamilla Ødegård

 

  • Michal Cohen
  • Ralph Michel

 

(in alphabetical order of the given name).

Copyright, License and Disclaimer

Copyright © 2020–2026 by Reto Kromer

The scripts are released under a 3-Clause BSD License and provided “as is” without warranty or support of any kind.


2026-01-04