Обновление кодека и метаинформации для 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