Обновление кодека и метаинформации для FLAC-файлов: различия между версиями
Материал из Linux Wiki
Перейти к навигацииПерейти к поиску
Rain (обсуждение | вклад) |
Rain (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
Скрипт для обновления версии кодека и метатегов в FLAC-файлах (к примеру, надо обновить кодек с v.1.1.0 до v.1.2.1 либо создать seektable для файлов, если, к примеру, есть проблемы с проматыванием трека в Amarok). Указываем каталог, где лежат FLAC-файлы, для каждого из них скрипт | Скрипт для обновления версии кодека и метатегов в FLAC-файлах (к примеру, надо обновить кодек с v.1.1.0 до v.1.2.1 либо создать seektable для файлов, если, к примеру, есть проблемы с проматыванием трека в Amarok). Указываем каталог, где лежат FLAC-файлы либо указываем нужные файлы как параметры скрипта, для каждого из них скрипт декодирует и одновременно кодирует получившийся поток в файл с расширением '''new''', после чего перемещает считывает теги из старого и записывает в новый файл, потом перемещает новый файл на место старого. | ||
---- | ---- | ||
<source lang="bash"> | <source lang="bash"> | ||
#!/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}" | |||
done | } | ||
if [ -z "${1}" ] | |||
then | |||
find ./ -iname '*.flac' | | |||
while read file | |||
do | |||
updatefile "${file}" | |||
done | |||
else | |||
for file in "${@}" | |||
do | |||
updatefile "${file}" | |||
done | |||
fi | |||
</source> | </source> | ||
---- | ---- | ||
[[Category:FLAC]][[Category:Скрипт]][[Category:Bash-скрипт]][[Category:Теги в аудиофайлах]] | [[Category:FLAC]][[Category:Скрипт]][[Category:Bash-скрипт]][[Category:Теги в аудиофайлах]] |
Версия 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