Rose debug info
---------------

Создание рабочей копии архива экспедиционных записей

Рабочая копия

В конце концов наступает момент, когда кассеты оцифровали, файлы собрали на один диск и нужна рабочая копия архива, для детальной описи и возможно публикации. На первый взгляд, технических сложностей нет, но, если архив занимает 1-5 терабайт несжатого звука в сложной и неоднородной структуре папок, то о копировании речь уже не идет. Описывать архив лучше на сжатом звуке, а стоимость жестких дисков не настолько еще мала, что бы этим можно было пренебречь.

Перед тем как сжать наш архив, полную копию все-таки придется сделать, но если нет для этого диска достаточного объема, то копировать и сжимать нужно по частям. Главное, что бы это делалось на копии, рекомендую сделать как минимум одну полную копию записей, в идеале же две копии и оригинал, хранить не в одном и том же здании.

Закон о сохранении информации

Сохранность информации прямо пропорциональна количеству копий данной информации.

Конвертация

Есть много программ конвертеров для аудио в том числе и бесплатных и в принципе для нашей задачи может подойти и простой Freemake или Avidemux конвертер, но поскольку мы имеем дело с большим объемом данных, то имеет смысл подумать о более надежном и гибком варианте.
Требования такие: возможность ведения лога конвертации (для того, что бы в случае ошибки можно было понять где произошла поломка и почему), максимальная поддержка существующих форматов и максимальная производительность.
Из бесплатных лучшим выбором будет консольный конвертер ffmpeg.
Он может быть собран из исходников с поддержкой вычислений на GPU
видео карт, что существенно повысит скорость конвертации.

Конвертер распространяется по лицензии GNU GPL, то есть бесплатен. Проект был образован в 2000 году, имеет активное обширное сообщество поддержки и может быть скомпилирован под различные платформы (Windows, Linux, MacOS и так далее). Для ffmpeg существует большое количество графических оболочек облегчающих работу новичкам, но они нас не интересуют, поскольку вся работа у нас производится в консоли.

Операционная система в которой мы конвертируем — Linux, в теории все то же самое можно проделать и в Windows, но это может оказаться нетривиальной задачей и в итоге возможно проще будет запустить Linux Live CD, что бы сделать конвертацию.
В консоли используем встроенную в Linux утилиту find , которая умеет искать файлы как по названию, так и по другим критериям (дата создания, размер, тип файла и прочее). Главной особенностью find является способность программы производить требуемое действие над найденным объектом.
В нашем случае, это будет передача wav файл на конвертацию программе ffmpeg. Вот команда которая запустит конвертацию архива в формат ogg

find ./ -type f -name '*.wav' -execdir ffmpeg -i {} -acodec libvorbis {}.ogg \; 1>>log.txt 2>>err.txt

Дословно команда делает следующее:

  • find ./ -type f -name ’*.wav’ — найти в текущем каталоге тип объекта — файл, имя объекта любое которое оканчивается на .wav
  • -execdir ffmpeg -i {} -acodec libvorbis {}.ogg \; — выполнить в текущей директории команду ffmpeg которой передаются следующие аргументы: -i {} имя найденного объекта, -acodec libvorbis применить к нему кодек libvorbis (ogg),
    и сохранить его как {}.ogg \; — найденное имя файла с добавлением
    расширения .ogg (файл будет сохраняться как audiofile.wav.ogg , конечно можно убрать лишние буквы wav в имени файла, но это может усложнит синтаксис и ухудшит понимание команды для тех, кто никогда не имел дела с консолью Linux).
  • 1>> log.txt 2>>error.txt — отправить весь вывод выполняемой команды в текстовый файл log.txt, а ошибки в error.txt. Оба файла будут сохранены в той директории откуда была запущена команда find.

Процесс сжатия архива в 2ТБ занимает около суток без применения вычислений на GPU, на процессоре Intel i7, в случае если процесс прошел без каких-либо критических ошибок, мы можем запустить команду удаления всех wav файлов.

find ./ -type f -name '*.wav' -execdir rm -f {} \;

rm -f {} — удалить (сокращение от remove) найденный файл.

В итоге из архива размером в 2ТБ мы получаем примерно 80ГБ.
Это не предел, поскольку при сжатии мы использовали настройки кодека по умолчанию, можно добиться более существенного сокращения объема если снизить битрейт и перевести записи в моно.

Поделиться
Отправить
 717   2021   ffmpeg   архив