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

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

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

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

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

Ожидаются следующие виды изменений:

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

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

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

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

решение1

  1. Любые и все используемые сейчас VCSможетхранить и обрабатывать двоичные файлы в репозиториях почтилюбойразмер ("не хранить гигантские файлы в репозитории" - это рекомендация, а не ограничение). Некоторые VCS просто делают этолучше, чем другие; и некоторые VCS обрабатывают большие данные в репозитории лучше, чем другие

    записать причину изменения и иметь возможность извлечь файл в том виде, в котором он существовал на момент регистрации

являетсяядро VCSи не могут быть управляющими параметрами

  1. Для изменения двоичных данных, сохраняющих новую версию какне отличаетсяэто почти общее правило для систем контроля версий (за исключением применения различных приемов в разных системах контроля версий для уменьшения дельт в хранилищах), таким образом, какую систему контроля версий использовать, это ваш выбор и ваша ответственность, я могу только отметить некоторые недавние обсуждения больших файлов под контролем версий, в которыхЯ участвовал в StackOverflow(три лучших ответа) и повторитемой личныймнение - Mercurial

Все виды предполагаемых изменений являются обычными задачами для любых данных, хранящихся в VCS (выполнение изменения содержимого, его сохранение) и не являются уникальными для аудиофайлов (изменение является изменением независимо откакие изменения)

Хотя было бы очень здорово иметь единое представление различий, как это возможно с текстом

По крайней мере, вы можете попытаться это сделать:Foobar2000 с двоичным компараторомплагин (ответ найденздесьна SU, в очень полезной в общей теме) может (?!... не пробовал, не тестировал) сравнить (в GUI?!) два файла поддерживаемых Foobar2000 форматов. Или (если это будетработана Win7 /старый проект, не обновлялся с 2008 года/ и будетпригодный к использованиюдля ваших задач) см. наАудио DiffMakerDYF-файлы (дополнительный объект для хранения в репозитории для любого набора изменений, изменяющего аудиоданные)

Хотя вы можете добавлять/изменять MP3-теги с помощью любого внешнего инструмента, выможетсравнить теги (быстрый и грязный поиск дал мне в первых строкахскриншот Beyond Compare): Beyond Compare можно использовать как средство сравнения по умолчанию в Mercurial (TortoiseHG), Foobar2000 можно (вероятно) назначить как специальное средство сравнения для mp3-файлов

Хранилище должно содержать дельты изменений, а не оптовые копии каждого коммита.

Это невозможно (в общем случае, см. выше п.2), но для Git с LFS или Mercurial с LargeFiles у нас есть особый случай (может удовлетворить ваши потребности лучше, чем обычное «все в репозитории»): все файлы для всех наборов изменений хранятся в независимом внешнем хранилище (полные файлы), наборы изменений в репозиториях имеют только «ссылки» на файлы, на локальном рабочем месте вы загрузили толькоодинбольшой файл (не весь набор для полной истории в вашем клоне репозитория для случая DVCS)... и все дополнительные старые версии, необходимые для прямого сравнения (подумайте еще раз об использовании DYF из Audio DiffMaker): вам понадобится одно гигантское хранилище, но будет некоторая «экономия» локального пространства по сравнению со случаем «файлов в репозитории»

Связанный контент