рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдПрдордкреА 3 рдХреЗ рд▓рд┐рдП flac рдХрдиреНрд╡рд░реНрдЯ

рд╢реБрдн рджрд┐рдиред

рдореИрдВрдиреЗ рдПрдХ рдмрд╛рд░ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд╕рдВрдЧреАрдд рдХреЗ рдПрдХ рдкрд╣рд╛рдбрд╝ рдкрд░ рдпрд╣рд╛рдБ рдкрдВрдк рдХрд┐рдпрд╛ рдерд╛, рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реИ, рдлреНрд▓реИрдХ рдореЗрдВ рдпрд╛ рдПрдордкреА 3 рдореЗрдВред рдореИрдВрдиреЗ рд╕реЛрдЪрд╛, "рдареАрдХ рд╣реИ, рдХреНрдпрд╛, рд╡рд╣рд╛рдБ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИ рдЬреЛ рдпрд╣ рд╕рдм рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдореИрдВ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдКрдВрдЧрд╛ред" рдореИрдВрдиреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛, рдиреЗрдЯрд╡рд░реНрдХ рдХреА рдЦреЛрдЬ рдХреА, рдореИрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВ, All2mp3 рдкреНрд░реЛрдЧреНрд░рд╛рдо рдорд┐рд▓рд╛ (рдореИрдВ рдПрдХ рдкреЛрдкреА рдкрд░ рдмреИрдард╛ рд╣реВрдВ) ... рдЬрдм рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рддреЛ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ рдХрд┐ рдореИрдВ рд╕рдВрдЧреАрдд рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдЗрд╕рдореЗрдВ рдирд╣реАрдВ рдЫреЛрдбрд╝ рд╕рдХрддрд╛ рдФрд░ рддрдм рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рд╕рднреА рд╕рдмрдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдкрд░ рди рдЪрд▓рд╛ рдЬрд╛рдП, рд╕рдм рдХреБрдЫ рдкрд╛рдПрдВ flac рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдордкреА 3 рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рддрд╛ рд╣реИ! рдЙрд╕рдиреЗ рдЧреВрдЧрд▓ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдХреЛрдИ рднреА рд╕реЙрд▓реНрдпреВрд╢рди рдирд╣реАрдВ рдорд┐рд▓рд╛ред


рдореИрдВрдиреЗ рдПрдХ рдЫреЛрдЯреА рд╕реА рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рд╣реИ рдЬреЛ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рддреА рд╣реИ, рдлреНрд▓реИрдХ рдХреА рддрд▓рд╛рд╢ рдХрд░рддреА рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдПрдордкреА 3 рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреА рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдкреВрдЫрддреЗ рд╣реИрдВ рддреЛ .flac рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдШреБрдЯрдиреЗ рдкрд░ рд▓рд┐рдЦреА рдЧрдИ рдереА, рдЗрд╕рд▓рд┐рдП рдирдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ * .flac.mp3 рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдкрд┐рдд рдлреНрд▓реИрдХ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреА рдЬрд░реВрд░рдд рд╣реИред
рдФрд░ рд▓рдВрдЧрдбрд╝рд╛ ред

рдпрд╣рд╛рдБ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реА рд╣реИ:
#!/bin/sh #flac2mp3 error(){ echo $@ 1>&2; exit 1; } r=0 rem(){ if [ $r -eq 1 ]; then rm "$1" fi } flac2mp3(){ data=$1 echo " -----------------------Working on $data" if [ -d "$data" ]; then for file in "$data"*; do if [ -d "$file" ]; then file="$file"/ fi flac2mp3 "$file" wait done elif [[ "$data" == *.flac ]]; then flac -d --stdout "$data" > temp.wav wait echo " ---------------------------------$data to wav done" lame temp.wav "$data".mp3 wait echo " ---------------------------------$data to $data.mp3 done" rm temp.wav rem "$data" fi } if [ $# -eq 0 ]; then error "Wrong arguments" fi echo ============================================================ if [ $# -eq 1 ]; then flac2mp3 "$1" elif [ $# -eq 2 ] && [ $1 == "-r" ]; then r=1 flac2mp3 "$2" else error "Wrong arguments!" fi 


рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ:


рдШрд░ рдкрд░ рдЬрд╛рдБрдЪ рдХреА - рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо рдПрдордкреА 3 рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ рдФрд░ рдХреБрдЫ рднреА рдЕрддрд┐рд╢реНрдпреЛрдХреНрддрд┐ рдирд╣реАрдВ рд╣рдЯрд╛рдИ рдЧрдИ рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЦрд░рд╛рдм рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреЛрдИ рдХрд╛рдо рдЖрдПрдЧрд╛ред

PS рдореБрдЭреЗ рдХреЛрдб рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╢реЗрд▓ рдХреЛ рдмрд╣реБрдд рдХрдо рд▓рд┐рдЦрддрд╛ рд╣реВрдВред

UPD: рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ рдХреЛ рдирд╣реАрдВ рдмрдЪрд╛рддреА рд╣реИ! рдореИрдВ рдЙрди рд▓реЛрдЧреЛрдВ рд╕реЗ рдорд╛рдлреА рдорд╛рдВрдЧрддрд╛ рд╣реВрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдЦрджрд╛рди рдкрд░ рдЙрдбрд╝рд╛ рджрд┐рдП рдЧрдП рд╣реИрдВ, рдЕрдм рдореИрдВ рдЗрд╕реЗ рд╕рд╣реА рдХрд░реВрдВрдЧрд╛ред
UPD2: рдЪреВрдВрдХрд┐ рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЪрд╛рд╣реВрдВрдЧрд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдЕрдкрдирд╛ рд╡рд┐рдХрд▓реНрдк рд╕реБрдЭрд╛рдпрд╛:
 #!/bin/bash if [ "${1}" == '' ]; then shellDir="$PWD" else shellDir="${1}" fi prefix=/home/share/music/_mp3 find "${shellDir}" -name '*.flac' -print | while read fn; do ARTIST=`metaflac "$fn" --show-tag=ARTIST | sed s/.*=//g` TITLE=`metaflac "$fn" --show-tag=TITLE | sed s/.*=//g` ALBUM=`metaflac "$fn" --show-tag=ALBUM | sed s/.*=//g` GENRE=`metaflac "$fn" --show-tag=GENRE | sed s/.*=//g` TRACKNUMBER=`metaflac "$fn" --show-tag=TRACKNUMBER | sed s/.*=//g` DATE=`metaflac "$fn" --show-tag=DATE | sed s/.*=//g` newpath="${prefix}/$ARTIST/$ALBUM" newfile=${TITLE}.mp3 echo $newfile mkdir -p "${newpath}" flac -c -d "${fn}" | lame -mj -q 0 --vbr-new -V 0 -s 44.1 - "${newpath}/${newfile}" id3 -t "$TITLE" -T "${TRACKNUMBER:-0}" -a "$ARTIST" -A "$ALBUM" -y "$DATE" -g "${GENRE:-12}" "${newpath}/${newfile}" done 


рд╕рд╛рде рд╣реА, рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ, рдХрдИ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдореБрдЭреЗ рдирд╣реАрдВ рдорд┐рд▓реЗ, рдФрд░ рдЬреЛ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ:
рдореИрдХреНрд╕
рдПрдХреНрд╕ рджреЛрд╖рд░рд╣рд┐рдд рдбрд┐рдХреЛрдбрд░

Source: https://habr.com/ru/post/In148171/


All Articles