Обновление кодека и метаинформации для FLAC-файлов: различия между версиями
Материал из Linux Wiki
Перейти к навигацииПерейти к поиску
Rain (обсуждение | вклад) |
Rain (обсуждение | вклад) |
||
Строка 9: | Строка 9: | ||
echo -e "\n\e[35mWorking on file \e[36m${1}\e[0m" | echo -e "\n\e[35mWorking on file \e[36m${1}\e[0m" | ||
flac -sdc "${1}" | flac --best - -Vo "${1}.new" &&\ | flac -sdc "${1}" | flac --best - -Vo "${1}.new" &&\ | ||
metaflac --export-tags-to=- "${1}" | metaflac --import-tags-from=- "${1}.new" | metaflac --export-tags-to=- "${1}" | metaflac --import-tags-from=- "${1}.new" &&\ | ||
mv "${1}.new" "${1}" | mv "${1}.new" "${1}" | ||
} | } |
Версия 13:45, 26 мая 2009
Скрипт для обновления версии кодека и метатегов в 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