Контроль версий для аудиофайлов

632
matt wilkie

Каков хороший подход для контроля версий аудиофайлов?

У меня есть библиотека аудиозаписей объемом 20 ГБ, чтобы настроить и привести в состояние, готовое к выпуску и обмену. Важно сохранить исходные файлы в целости, а также отслеживать определенные этапы во время редактирования (каждый щелчок по биту не нужно замечать).

Хотя было бы очень хорошо иметь унифицированное представление различий, как это возможно с текстом, я знаю, что сейчас это несбыточная мечта. Что важно и возможно осуществимо с сегодняшним программным обеспечением, так это записать причину изменения и возможность получить файл, который существовал на момент регистрации .

Виды ожидаемых изменений:

  • отсечение мертвого воздуха или неуместного комнатного шума с начала и конца записи
  • выборочное выравнивание громкости (например, динамик отошел от микрофона через 12–18 минут, или член аудитории задал вопрос вне микрофона)
  • применил фильтр для удаления шипения / шума
  • добавлен или изменен тег mp3 - например, имя исполнителя, дата записи, ... (возможно, это та часть, которую можно найти?)
  • и т.п.

Я работаю в основном на Windows 7, но у меня тоже есть машины с Linux. Мои сотрудники в основном Windows, а не технические. Отслеживание ветвления и слияния (слияние ветвей, для файлов это будет просто прямая перезапись) было бы здорово, но не обязательно.

В хранилище должны быть измененные дельты, а не тупые оптовые копии каждого коммита. У нас более чем достаточно дискового пространства, но никто не хочет копировать сотни концертов, когда нужны только 20, и есть определенная вероятность того, что какое-то сотрудничество будет через Интернет

Проект для очень небольшой некоммерческой организации. О покупке инструмента не может быть и речи, но она должна быть недорогой, хотя, конечно, бесплатный и / или открытый исходный код гораздо предпочтительнее.

1
Что касается аудио, то тема применима к большинству любых двоичных форматов. Основная причина использования звукового тега заключается в том, что аспект тега MP3ID, по-видимому, поддается стандартным инструментам управления исходным кодом, например, при коммите запускает скрипт, который извлекает теги и сравнивает их с предыдущими состояниями. matt wilkie 7 лет назад 0
близкие избиратели: пожалуйста, укажите почему, спасибо. matt wilkie 7 лет назад 0

1 ответ на вопрос

3
Lazy Badger
  1. Any and all of used now VCS can store and handle binary-files in repositories for almost any size ("don't store giant files in repo" is recommendation, not limitation). Some VCS just do it better, than another; and some VCS handle Big Data in repo better, than another

    record the reason for the change and being able to fetch the file as it existed at that check-in

is core of VCS and can't be governing parameters

  1. For changing binary-data storing new version as not diff is almost common rule for VCSes (except applying different tricks in different VCSes for reducing deltas in storages), thus - which VCS to use it your choice and responsibility, I can only note some recent discussions about large files under version control, in which I participated on StackOverflow (top three answers) and repeat my personal opinion - Mercurial

All the kinds of changes anticipated are common tasks for any data, stored in VCS (perform change of content, store it) and aren't unique for audio-files (changing is changing regardless of what changes)

While it would be super nice to a have a unified diff view like is possible with text

You can at least try to get it: Foobar2000 with Binary Comparator plugin (answer found here on SU, in very useful in common topic) can (?!... not tried, not tested) compare (in GUI?!) two files of supported by Foobar2000 formats. Or (if it'll work on Win7 /old project, not updated from 2008/ and and will be usable for your tasks) see at Audio DiffMaker's DYF-files (additional object for storing in repo for any changeset, which change audio-data)

While you can add/change MP3-tags by any external tool, you can compare tags (fast and dirty search gave me at the first lines screenshot of Beyond Compare): Beyond Compare can be used as default diff|mergetool in Mercurial (TortoiseHG), Foobar2000 can be (probably) assigned as special mergetool for mp3-files

Storage should be of change deltas instead of dumb wholesale copies of each commit.

It isn't possible (in common case, see above p.2), but for Git with LFS or Mercurial with LargeFiles we have special case (can meet your needs better, than usual "all in repo"): all files for all changesets stored in independent external storage (full files), changesets in repos have only "link" to files, on local workplace you have downloaded only one big file (not the whole set for full history in your clone of repo for DVCS-case)... and all additional old versions needed for direct diffing (think again about using DYF from Audio DiffMaker): you'll must to have one giant storage, but will have some "saving" of local space, compared to "files in repo" case

Спасибо, что нашли время, чтобы ответить. У меня есть работа, чтобы просмотреть предложения и полностью понять. Audio Diffmaker _очень_ интересный, и затрагивает аспекты этого проекта вне рамок вопроса. matt wilkie 7 лет назад 0