Using digital media masters
Digitally stored media master files
are often relatively large,
and are more likely used as-is than edited.
We use git-annex to track such files.
As an addon to git,
some of the interaction is done through git commands,
while some is done using git-annex-specific commands.
Status
To check status of metadata, use git:
git status
To check status of file content storage, use git-annex:
git annex info
Save
To "take a snapshot" of one of more files
for git-annex archival,
first mark which files are involved
and then archive their (changes to) content:
git annex add foo bar
git annex add baz
git commit -m "Update foo bar, and add baz."
(final git commit
is implied by git annex sync
or git annex move
)
Sync
To align a git-annex repository with subscribed annex(es),
request a syncronization:
git annex sync --content --all
Alternatively (e.g. on slow/expensive network),
syncronize only metadata and only with nearest clones:
git annex sync
Alternatively (e.g. on small host),
push the content to only be remote without keeping a local copy:
git annex move .
Access
While main purpose of git-annex is to store large media elsewhere,
you obviously want to sometime work with the content locally.
To fetch content of current folder and all subfolders:
git annex get .
To afterwards relieve local storage of git-annex tracked content
in current folder and all subfolders:
git annex move .
To fetch or relieve a single file or another directory,
replace the dot with the path to the file or directory.
Split
Splitting media files is format-specific.
Many audio formats can be split
with the package shntool and appropriate helper tools,
e.g. like this for a FLAC file with CUE file for splicing hints:
shnsplit -o flac -f CUE_FILE.cue FLAC_FILE.flac
For many other formats, including video content,
splitting can be done using the copy parameter to FFMpeg,
e.g. like this:
ffmpeg -i INFILE -ss 15 -t 60 -acodec copy -vcodec copy OUTFILE
References