Видео ролики бесплатно онлайн

Смотреть измена видео

Официальный сайт 4stupeni 24/7/365

Смотреть видео бесплатно

Daria 10.12.2010 06:37

Скриптыконвертируем APE 2 FLAC

Довольно много lossless контента в сети встречается в формате Monkey's Audio. По моему мнению, этот формат, как пятое колесо... Я предпочитаю FLACи из прошлогоднего скрипта alac2flac набросала конвертер с сохранением тэгов ape2flac на базе функционала ffmpeg.

Собственно, нам понадобятся пакеты ffmpeg flac и экстрактор ape тэгов apeinfo. Если у вас Ubuntu, то просто устанавливаем пакеты, скачиваем утилу apeinfo и ставим её в /usr/local/bin/ (я исхожу от x64 системы, хотя 32 битная версия тоже будет в ней работать. параноики могут скомпилировать из исходников apeinfo и mac свою версию). В общем, задача на три трубки команды:

$ sudo apt-get install ffmpeg flac
$ sudo wget http://legroom.net/files/software/apeinfo_64 -O /usr/local/bin/apeinfo
$ sudo chmod a+x /usr/local/bin/apeinfo


Собственно, вот скрипт:

  1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#!/bin/bash
# ape2flac 0.2
# convert APE files to FLAC with keeping tags
#
# you need apeinfo to extract ape tags, just google for it!

# немножко цветов, я люблю цветы
RED='\e<1;31m'
BLUE='\e<1;34m'
NC='\e<0m' # no color

f_flag=0 # флаг параметра переименования, 0 = флаг не поставлен
d_flag=0 # флаг параметра удаления входящего файла, 0 = флаг не поставлен

# функция, которая оповещает о использовании и выходит с EX_USAGE
usage(){
echo "ape2flac version 0.2"
echo
echo "usage: ape2flac <option> INPUTFILE"
echo
echo "options:"
echo -e " -f rename output file to '"$BLUE"TRACKNUMBER - ARTIST - TITLE.flac$NC'"
echo " -d delete input file"
exit 64 # EX_USAGE
}

# функция, которая обрабатывает переменные связанные с файлами
setFileVars(){
INPUTFILE=${1}
OUTPUTFILE=$(echo $INPUTFILE | sed "s/.ape$/.flac/i")
FILEPATH=${INPUTFILE%/*}

# а если аргументе INPUTFILE нет родительских директорий?
if < "$FILEPATH" = "$INPUTFILE" >
then
FILEPATH=".";
fi
}

# начнём пилить всё, что пришло с командной строки.
if (($# > 0)) # если существуют аргументы,
then
while < $# -gt 1 > # пока не останется лишь один, машина будет трудится.
do
case $1 in
-f) f_flag=1;; # если "первый" аргумент параметр -f, поставим флаг
-d) d_flag=1;; # если "первый" аргумент параметр -d, поставим флаг
esac
shift # сдвинем аргументы $2->$1, $3->$2, $4->$3,...
done

if < -f "$1" > # если "последний" аргумент файл,
then
setFileVars "$1" # обрабатываем.
else # нет? намекаем, как этим пользоваться.
echo -e "Bad news, Harry! There is$RED no file in arguments!$NC"
echo
usage
fi
else
usage # матёрый пользователь напросился на помощь
fi

echo $INPUTFILE

# собсвенно, перекодировка произходит в этой строке
ffmpeg -y -i "$INPUTFILE" "$OUTPUTFILE" 2> /dev/null

ffmpeg_EXITCODE=$?

if (($ffmpeg_EXITCODE))
then
# если мы облажались, это отличное место для лога
#echo $INPUTFILE >> failtoconvert.log
echo -e "Bad news, Harry! Snape spelled Levicorpus, your$RED ffmpeg goes wrong! ${NC}"
exit $ffmpeg_EXITCODE
fi

# убираем возможные излишки наших прежних стараний
rm -f "${INPUTFILE}".tag

# прочитаем все тэги в форме vorbis и сохраним их в пустой файл
apeinfo -t "$INPUTFILE" > "${INPUTFILE}".tag

# импортируем vorbis тэги из файла
metaflac --import-tags-from="${INPUTFILE}".tag "$OUTPUTFILE"

# код для параметра -d, чтоб удалить файл на входе
if (($d_flag))
then
rm -f "$INPUTFILE"
fi

# код для параметра -f, чтоб переименовать файл на выходе.
if (($f_flag))
then

TRACKNUMBER=$(sed -n "s/^TRACKNUMBER=//p" "${INPUTFILE}".tag)
ARTIST=$(sed -n "s/^ARTIST=//p" "${INPUTFILE}".tag)
TITLE=$(sed -n "s/^TITLE=//p" "${INPUTFILE}".tag)
mv "$OUTPUTFILE" "$FILEPATH/$TRACKNUMBER - $ARTIST - $TITLE.flac"
OUTPUTFILE="$TRACKNUMBER - $ARTIST - $TITLE.flac"
fi

# подчистим за собой
rm -f "${INPUTFILE}".tag

echo -e "$FILEPATH/$OUTPUTFILE ${BLUE}..done! ${NC}"

exit 0
</option>



Приятного конвертирования!


Тэги: ape flac конвертация скрипт
+ 9 -
Похожие Поделиться

danvyr 10.12.2010 15:23 #
+ 1 -
а я вручную c ffmpeg перегонял ape в flac, редактил cue файл заменяя там ape на flac
потом юзал cue2tracks для того что бы он разбил треки

из описания к вашему скрипту не совсем понятно может ли он сделать это же...

к сожалению cp1251 в cue файлах не кушает cue2tracks и остальную коллекцию я ещё не перегнал)
Daria 11.12.2010 10:11 #
+ 2 -
cue2tracks это замечательная вещь, во круг которой я написала свой первый скрипт. собственно твою проблему с кодировками я решила в нём на 37 строке.
Daria 11.12.2010 10:16 #
+ 1 -
s/во круг/вокруг/g
haku 10.12.2010 19:40 #
+ 0 -
# немножко цветов, я люблю цветы

100% уже где-то видел фразу про цветы, пост копия с хабра или блога какого-то?
dr_lo 11.12.2010 05:28 #
+ 0 -
если мне память не изменяет, то ТС пытается получить инвайт на хабру через песочницу.

2Daria, есть успехи?
Daria 11.12.2010 10:22 #
+ 2 -
к счастью, хабра стала на столько скучным гнездом никчёмных галчат, что мне туда перехотелось.

Смотреть онлайн бесплатно

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн