Обновление кодека и метаинформации для FLAC-файлов: различия между версиями

Материал из Linux Wiki
Перейти к навигацииПерейти к поиску
Строка 29: Строка 29:
----
----


[[Category:FLAC]][[Category:Скрипт]][[Category:Bash-скрипт]][[Category:Теги в аудиофайлах]][[CMCS]]
[[Category:FLAC]][[Category:Скрипт]][[Category:Bash-скрипт]][[Category:Теги в аудиофайлах]][[Category:CMCS]]

Версия 18:55, 21 февраля 2010

Скрипт для обновления версии кодека и метатегов в FLAC-файлах (к примеру, надо обновить кодек с v.1.1.0 до v.1.2.1 либо создать seektable для файлов, если, к примеру, есть проблемы с проматыванием трека в Amarok). Указываем каталог, где лежат FLAC-файлы либо указываем нужные файлы как параметры скрипта, для каждого из них скрипт декодирует и одновременно кодирует получившийся поток в файл с расширением new, считывает теги из старого и записывает в новый файл, потом перемещает новый файл на место старого.


#!/bin/bash
# By Rain ;)

updatefile() {
        echo -e "\n\e[35mWorking on file \e[36m${1}\e[0m"
        flac -sdc "${1}" | flac --best - -Vo "${1}.new"                 &&\
        metaflac --export-tags-to=- "${1}" | metaflac --import-tags-from=- "${1}.new" &&\
        mv "${1}.new" "${1}"
}

if [ -z "${1}" ]
        then
                find ./ -iname '*.flac' |
                while read file
                do
                        updatefile "${file}"
                done
else
        for file in "${@}"
                do
                        updatefile "${file}"
                done
fi