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

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


----
----
<source lang="bash">
<source lang="bash">
find ./ -iname '*.flac' |
#!/bin/bash
while read file
# By Rain ;)
do
 
metaflac --export-tags-to="${file%.flac}.metaflac" "${file}" &&\
updatefile() {
flac -sdc "${file}" | flac --best - -Vo "${file}.new" &&\
        echo -e "\n\e[35mWorking on file \e[36m${1}\e[0m"
mv "${file}.new" "${file}" &&\
        flac -sdc "${1}" | flac --best - -Vo "${1}.new"                 &&\
metaflac --import-tags-from="${file%.flac}.metaflac" "${file}"
        metaflac --export-tags-to=- "${1}" | metaflac --import-tags-from=- "${1}.new"
rm -f "${file%.flac}.metaflac"
        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