LINUX.ORG.RU

СРОЧНО перекодировать Кучу файлов FLAC > MP3


0

0

Да, я понимаю, что FLAC РУЛИТ и всю музыку себе закачиваю только в этом формате, но вот срочно потребовалось девушке перекинуть несколько альбомчиков в mp3 формате (Места на диске совсем мало)

Нужна прога, которая перекодирует несколько десятков файлов flac в mp3, при этом файлы находятся в разных каталогах.
в принципе можно декодировать в wav, но lame не хочет пакетно обрабатывать wav'ы. Есть ли вообще хороший пакетный АУДИО транскодер?

видеотранскодеры (transcode, mencoder работать с голым flac не хотят)

#!/bin/sh

while [ "$1" != "" ]; do
   flac="$1"
   shortname=$(echo $flac|sed 's/\.[^\.]*$//g')
   wav="${shortname}.wav"
   mp3="${shortname}.mp3"

   mplayer -really-quiet -nolirc -nojoystick -nortc -vo null -ao pcm:file="${wav}" "${flac}" 2&>1 >> /dev/null
   
   lame -V2 ${wav} ${mp3}

   shift
done

Не проверял работоспособность, но работать должно! Не идеальное решение, но перекодировать фалы в одном каталоге хватит, (thisscript.sh *) сам допиливай дальше :) 

anonymous
()

Купи девушке хард, болван. ;)

anonymous
()
Ответ на: комментарий от anonymous

Проверил - работает, пользуйся, можно еще lame -V2 "${wav}" "${mp3}" подправить, а то может файлы с пробелами в именах. Девушке винт побольше купи :D

anonymous
()
Ответ на: комментарий от anonymous

Для bash можно ещё заменить

shortname=$(echo $flac|sed 's/\.[^\.]*$//g')
wav="${shortname}.wav"
mp3="${shortname}.mp3"

на

wav="${flac%%.flac}.wav"
mp3="${flac%%.flac}.mp3"

Это так, в порядке обмена опытом )

router ★★★★★
()
Ответ на: комментарий от router

Ага, я знаю, просто эти строки из своих старых скриптов выдрал, а там поуниверсальнее было =)

anonymous
()

#!/bin/bash
if [ $# -eq 0 ]; then
echo -e "USAGE: $(basename $0) flac_files\n\
MP3 files this right tags will be stored in the same dir"
fi
while [ $# -ne 0 ]; do
        if [ "$(echo \"$1\" |xargs file |grep -o FLAC)" == "FLAC" ]; then
                fl="$1"
                mp="${1%.[fF][lL][aA][cC]}.mp3"
                answer="Y"
                if  [ -e "$mp" ]; then
                        echo -e "file \"$mp\" Уже существует!!! Заменить? (Y/N)"
                        read answer
                fi
                if [ "$answer" == "y" ] || [ "$answer" == "Y" ]; then
                        mkfifo /tmp/flacmp3fifo
                        eval `metaflac --export-tags-to=- "$fl" |  sed -e 's/\"/\\\"/g' | sed -e 's/=\(.*\)/=\"\1\"\ /'`
                        flac -d -f "$fl" -o - | lame --preset extreme --ta "$ARTIST" --tt "$TITLE" --tn "$TRACKNUMBER" --ty "$DATE" --tl "$ALBUM" - "$mp"
                fi
        else
                echo File: $1 - не FLAC файл... пропускаю!!!!
        fi
        shift 1
done

vinni_puh
()
Ответ на: комментарий от vinni_puh

Поставь себе windows, foobar и перетащи мышкой все файлы и папки для перекодирования.

PS. Не слишком сытно получилось?

anonymous
()
Ответ на: комментарий от anonymous

> Поставь себе windows, foobar и перетащи мышкой все файлы и папки для перекодирования.

Вот ты гад, у меня теперь ни один файл не читается, а старые удалились!

anonymous
()
Ответ на: комментарий от anonymous

2LordZero.

Твой вопрос очень детский.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.