Scripts for use in the IFI Irish Film Archive
Scripts have been tested in OSX/Windows 7 (sometimes windows 10) and Ubuntu 14.04. The aim is to make cross-platform scripts, but please get in touch with any issues.
Current scripts that are useful:
dcpaccess.py - Create h264 or prores transcodes (with optional subtitles) for unencrypted, single/multi reel Interop/SMPTE DCPs. The script will search for all DCPs in subdirectories, process them one at a time and export files to your Desktop.
Usage: dcpaccess.py dcp_directory
Further options can be viewed with dcpaccess.py -h
dcpfixity.py - Verify internal hashes in a DCP and write report to CSV. Optional (experimental) bagging if hashes validate. The script will search for all DCPs in subdirectories, process them one at a time and generate a CSV report.
Usage: dcpfixity.py dcp_directory
Further options can be viewed with dcpfixity.py -h
dcpsubs2srt.py - Super basic but functional DCP XML subtitle to SRT conversion. This code is also contained in dcpaccess.py
makedpx.py - Transcode TIFFs losslessly to DPX. Framemd5s of source and output are created and verified for losslessness. Whole file manifest is created for all files.
bitc.py - Create timecoded/watermarked h264s for single files or a batch process.
prores.py - Transcode to prores.mov for single/multiple files. Type prores.py -h
for instructions.
makeffv1.py Transcodes to FFV1.mkv and performs framemd5 validation. Accepts single files or directories (all video files in a directory will be processed). CSV report is generate which gives details on losslessness.
seq.py Transcodes a TIFF sequence to 24fps v210.mov Usage: seq.py first_file_00001.tiff
and output will be stored in the parent directory.
move.py Copies a directory, creating a md5 manifest at source and destination and comparing the two. Usage: move.py source_dir destination_dir
Experimental scripts:
seq2ffv1.py Usage - seq2ffv1.py directory
. Recursively batch process image sequence folders and transcode to a single ffv1.mkv. Framemd5 files are generated and validated for losslessness. Whole file manifests of the SIP are also created. Work in progress -more testing to be done.
premis.py Usage - premis.py filename
. Work in progress PREMIS implementation. This PREMIS document will hopefully function as a growing log file as an asset makes its way through a workflow.
move.py Usage - move.py source destination
. Creates manifest before and after copying and diffs the two manifests.
reVTMD.py is in beta. and is very much geared around one specific workflow.
as11fixity.py - Work in progress that we are working on as a training exercise. There is a bash script in a different repository that works quite well for this purpose.
python scriptname.py filenameEXCEPT:
Some scripts, such as bitc.py or prores.py also accept a directory as input in order to batch process files.
dcpfixity.py
and dcpaccess.py
accept the DCP directory as input
python dcpfixity.py dcp_directory
dcpfixity requires openssl and lxml. The latter can be installed with pip.