- summary
- Transcodes
- Digital Cinema Package Scripts
- Fixity Scripts
- Image Sequences
- Quality Control
- Specific Workflows
- Misc
- Experimental-Premis
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. It is best to download all scripts, as some of them share code.
Most scripts take either a file or a directory as their input, for example makeffv1.py filename.mov
or premis.py path/to/folder_of_stuff
. (It's best to just drag and drop the folder or filename into the terminal)
Note: Documentation template has been copied from mediamicroservices
- 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 generated which gives details on losslessness and compression ratio.
- Usage for single file -
makeffv1.py filename.mov
- Usage for batch processing all videos in a directory -
makeffv1.py directory_name
- Create timecoded/watermarked h264s for single files or a batch process.
- Usage for single file -
bitc.py filename.mov
- Usage for batch processing all videos in a directory -
bitc.py directory_name
- This script has many extra options, such as deinterlacing, quality settings, rescaling. Use
bitc.py -h
to see all options
- Transcode to prores.mov for single/multiple files.
- Usage for single file -
prores.py filename.mov
- Usage for batch processing all videos in a directory -
prores.py directory_name
- This script has many extra options, such as deinterlacing, quality settings, rescaling. Use
prores.py -h
to see all options
- Create h264 (default) 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
- Use
-p
for prores output, and use-hd
to rescale to 1920:1080 while maintaining the aspect ratio. - Dependencies: ffmpeg must be compiled with libopenjpeg -
brew install ffmpeg --with-openjpeg
. - Python dependencies: lxml required.
- Further options can be viewed with
dcpaccess.py -h
- 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
- Super basic but functional DCP XML subtitle to SRT conversion. This code is also contained in dcpaccess.py
- Usage:
dcpsubs2srt.py subs.xml
- Copies a directory, creating a md5 manifest at source and destination and comparing the two. Skips hidden files and directories.
- Usage:
moveit.py source_dir destination_dir
- Dependencies: OSX requires gcp -
brew install coreutils
- Creates relative md5 checksum manifest of a directory.
- Usage:
manifest.py directory
- Quick proof of concept sha512 checksum manifest generator as not many command line tools support sha512 right now. name is a play on the hashdeep toolset.
- Usage:
sha512deep.py directory
- Validate md5 sidecar manifest. Currently the script expects two spaces between the checksum and the filename.
- Usage:
validate.py /path/to/manifest.md5
- Batch MD5 checksum generator. Accepts a parent folder as input and will generate manifest for each subfolder. Designed for a specific IFI Irish Film Archive workflow.
- Usage:
batchfixity.py /path/to/parent_folder
- Transcode TIFFs losslessly to DPX. Processess all sequeneces in every subdirectory. WARNING - Currently relies on a local config file - soon to be removed!
- Framemd5s of source and output are created and verified for losslessness.
- Whole file manifest is created for all files.
- Usage:
makedpx.py parent_folder
- generally we have 10 sequences in subfolders, so we pass the parent folder as input.
- Work in progress -more testing to be done.
- Recursively batch process image sequence folders and transcode to a single ffv1.mkv.
- Framemd5 files are generated and validated for losslessness.
- Whole file manifests are also created.
- Usage -
seq2ffv1.py parent_folder
- Specific IFI workflow that expects a particular folder path:
- Recursively batch process image sequence folders with seperate WAV files and transcode to a single Apple Pro Res HQ file in a MOV container. PREMIS XML log files are generated with hardcoded IFI values for the source DPX sequence and the transcoded mezzanine file in the respective /metadata directory
- A whole file MD5 manifest of everything in the SIP are also created. Work in progress - more testing to be done.
- Usage -
seq2prores.py directory
- seq2prores accepts multiple parent folders, so one can run
seq2prores.py directory1 directory2 directory3
etc
- Transcodes a TIFF sequence to 24fps v210 in a MOV container.
- Usage:
seq.py path/to/tiff_folder
and output will be stored in the parent directory.
- Transcodes an image sequence & WAV to 24fps ProRes 4:2:2 HQ in a MOV container.
- Usage:
playerseq.py path/to/parent_image__folder
.The script will then ask you to drag and drop the WAV file. The location is currently hardcoded to facilitate a workflow.
- IFI specific script that removes OE### numbers from the head of an image sequence filename.
- Usage -
oeremove.py directory
.
- Renames TIFF files in an image sequence so that they start from ZERO (000000)
- Usage -
renumber.py directory
- Transcodes a TIFF sequence to 24fps 720x576 DV in a MOV container.
- Usage:
seq.py path/to/tiff_folder
and output will be stored in the parent directory.
- Traverses through subdirectories trying to find DPX and TIFF files and creates mediainfo and mediatrace XML files.
- Usage:
batchmetadata.py path/to/parent_directory
and output will be stored in the parent directory.
- Renames TIFF files in an image sequence except for numberic sequence and file extension.
- Usage -
batchrename.py directory
- enter new filename when prompted
- Generate QCTools xml.gz sidecar files which will load immediately in QCTools.
- Usage for single file -
qctools.py filename.mov
- Usage for batch processing all videos in a directory -
qctools.py directory_name
- Checks folders in order to see if either 0 or >1 files exist in a mezzanine/objects folder.
- Usage:
treatedaudio.py /path/to/parent_folder
- Updates IFIscripts to the latest git head if the following directory structure exists in the home directory:
ifigit/ifiscripts
- Usage:
update.py
- 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.
- Requries pyqt4 (GUI) and lxml (xml parsing)
- Usage -
premis.py filename
.
- Beta/defuncy sript that attempted to document creation process history metadata using the reVTMD standard.
- Work in progress script by @mahleranja and @ecodonohoe
- There is a bash script in a different repository that works quite well for this purpose but that is OSX only.