21 июн. 2015 г.

Разбивка flac/ape файла по метаданным из cue в mp3

Стандартные авто магнитолы не поддерживают аудио flac формат, в следствии чего появилась необходимость конвертации домашней аудиотеки формата flac в mp3. Основываясь на предыдущем опыте был создан скрипт 
#!/bin/sh
usage()
{
echo "usage: splitcue <cuefile> [file_to_split]"
}
if [ $# -lt 1 ]; then
usage
exit 1
fi
CUE_FILE=$1
if [ -z $TMPDIR ]; then
TMPDIR="/tmp"
fi
NEW_CUE_FILE=$TMPDIR/list.cue
if [ ! -f "$CUE_FILE" ]; then
usage
exit 1
fi
FROMCP=`enca -e "$CUE_FILE"`
iconv -f "$FROMCP" -t UTF-8 "$CUE_FILE" > "$NEW_CUE_FILE" || cp -f "$CUE_FILE" "$NEW_CUE_FILE"
FLAC_FILE=$2
if [ ! -f "$FLAC_FILE" ]
then
FLAC_FILE=`grep 'FILE' "$NEW_CUE_FILE" | grep -e '\([^"]*\.[^"]*\)' -o`
fi
if [ ! -r "$FLAC_FILE" ]; then
usage
exit 1
fi
COVERS="Cover.jpg cover.jpg Folder.jpg folder.jpg Front.jpg Covers/Front.jpg Covers/Front00.jpg Covers/Front01.jpg"
for cover in $COVERS; do
if [ -r $cover ]; then
COVER=$cover;
break;
fi
done
shnsplit -O always -q -f "$NEW_CUE_FILE" -t "%n - %t" -o wav "$FLAC_FILE"
fields='COVER TITLE ALBUM TRACKNUMBER ARTIST GENRE YEAR'
GEN=`cueprint -t "%G" "$NEW_CUE_FILE"`
if [ -z "$GEN"]; then
GEN=`grep "REM GENRE" "$NEW_CUE_FILE" | sed -e 's/REM GENRE \("*\)\([^"]*\)\("*\)/\2/g'`
fi
PERF=`cueprint -t "%P" -n 1 "$NEW_CUE_FILE"`
if [ -z "$PERF" ]; then
PERF=`cueprint -t "%P" "$NEW_CUE_FILE"`
fi
YEAR=`grep "REM DATE" "$NEW_CUE_FILE" | sed -e 's/REM DATE \(.*\)/\1/g'`
cueconvert -i cue -o cue "$NEW_CUE_FILE" "$NEW_CUE_FILE"
NUMBER=`cueprint -d "%N" "$NEW_CUE_FILE"`
for((I=1;I<=NUMBER;I++));
do
CONV_FILE=`printf "%02d - " $I``cueprint -n $I -t '%t' "$NEW_CUE_FILE"`".wav"
CONV_FILE=`echo "$CONV_FILE" | sed -r 's/\.\.wav/\.wav/g' | sed -r 's/\//-/g'`
TITLE='%t'
ALBUM='%T'
ARTIST='%p'
COMMENT='%c'
GENRE='%g'
TRACKNUMBER='%n'
KEYS="/usr/bin/lame -S -q 1 -b 320 --cbr --id3v2-only"
for field in $fields; do
value=""
for conv in `eval echo \\$$field`; do
if [ $field = 'GENRE' -a -n "$GEN" ]; then
value=$GEN
break
elif [ $field = 'ARTIST' -a -n "$PERF" ]; then
value=$PERF
break
elif [ $field = 'YEAR' -a -n "$YEAR" ]; then
value=$YEAR
break
elif [ $field = 'COVER' -a -n "$COVER" ]; then
value=$COVER
break
else
value=`cueprint -n $I -t "$conv\n" "$NEW_CUE_FILE"`
if [ -n "$value" ]; then
break
fi
fi
done
if [ -n "$value" ]; then
case $field in
TITLE)
KEYS=$KEYS`printf ' --tt "%s"' "${value}"`
;;
COVER)
KEYS=$KEYS`printf ' --tl "%s"' "${value}"`
;;
ALBUM)
KEYS=$KEYS`printf ' --tl "%s"' "${value}"`
;;
ARTIST)
KEYS=$KEYS`printf ' --ta "%s"' "${value}"`
;;
YEAR)
KEYS=$KEYS`printf ' --ty "%s"' "${value}"`
;;
COMMENT)
KEYS=$KEYS`printf ' --tc "%s"' "${value}"`
;;
GENRE)
KEYS=$KEYS`printf ' --tg "%s"' "${value}"`
;;
TRACKNUMBER)
KEYS=$KEYS`printf ' --tn "%u/%u"' "${value}" "${I}"`
;;
esac
fi
done
CONV_FILE_N=`echo $CONV_FILE | sed -r 's/\.wav/\.mp3/g' | sed -r 's/[?<>\\:*|\"]/_/g'`
eval ${KEYS} \"${CONV_FILE}\" \"${CONV_FILE_N}\"
rm -f "$CONV_FILE"
done
rm -f "$NEW_CUE_FILE"
exit 0
view raw mp3splitcue hosted with ❤ by GitHub

15 июн. 2015 г.

E-prance G90S

Дабы обезопасить себя, как начинающего водителя, был куплен видео-регистратор в китайском магазине. Выбор пал на E-prance Original G90S и по прибытию -  обновлена прошивка ( поставлена от street storm CVR-A7810-G ). В результате был получен неплохой видео-регистратор с современными характеристиками за умеренную цену:



Чип
Ambarella A7LA70
Экран
2.7 inch
Линза
широкоугольная 170
Сенсор
4.0MP Omni OV4689 CMOS
Дополнительно
GPS, G-sensor, LWDS(выезд из полосы), SpeedCam(предупреждение о превышении скорости)

Дополнительно: