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

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

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

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

10.12.10 06:37 Daria

Скриптыконвертируем 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
 


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



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

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

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

100% уже где-то видел фразу про цветы, пост копия с хабра или блога какого-то?

%username% love BDSM!

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

Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 151)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 3057 из 226 городов)
            Топ пользователей Топ блогов
            welinux.ru

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

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


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

            Online video HD

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

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

            Full HD video online

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

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

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