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
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
  • 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

Documentation

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 2023-03-26 provides the following commands:
  make_bagit                undo_bagit                metadata_csv
  make_ffv1                                           missing_files
  make_framemd5             update_bagit
  make_h264                 update_manifest           name_hash
  make_manifest
  make_prores               verify_bagit              bash_avpres
                            verify_ffv1               ffengine_presets
  modify_bagit              verify_framemd5           ffmpeg_head
                            verify_manifest           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 Homebrew formula and via a Makefile. And we advise to use either one of these.

Homebrew

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

Makefile

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

cd bash-avpres-2024-01-27
./configure
make install

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 12.5, 11.9 and 10.13; Ubuntu 23.10.1, 22.04.4 LTS and 20.04.6 LTS; Slackware 15.0
  • Macintosh: macOS 14.4, 13.6.4 and 12.7.3
  • Windows: 11 version 23H2, 22H2 and 21H2 and 10 version 22H2 and 21H2, running Terminal or Subsystem for Linux

 

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 one runs better on Bash version 4.3 (released on 2014-02-26). However, we strongly advise to install the current Bash version 5.2 (released on 2022-09-26) 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:

 

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

 

(in alphabetical order of the given name).

Copyright, License and Disclaimer

Copyright © 2020–2024 by Reto Kromer

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


2024-03-07