Помогите со скриптом [РЕШЕНО]

Рожаю скрипт для перекодировки музыки из flac в AAC. Вроде бы все элементарно, но по каким-то неведомым мне причинам ffmpeg отказывается работать. Он ругается, обрабатывает одну папку и вырубает скрипт.
Скрипт:
#!/bin/sh
find . -mindepth 1 -type d | while read a
do
cd "$a"
if ls | grep -q .flac; then
mkdir AAC
for i in *.flac
do ffmpeg -i "$i" -acodec aac -strict experimental -ar 44100 -ab 320k ./AAC/"`basename "$i" .flac`.m4a"
done
fi
done

Что происходит:

Содержимое папки, из которой выполняется скрипт:

Причем если ручками в подпапке запустить содержимое внутри if, оно замечательно отрабатывает.

Проверял с помощью echo, аргументы в ffmpeg заходят правильные.

В полной растерянности, честно говоря.

0
Lexxa - 2 Январь, 2012 - 04:34

Как ни удивительно, я умудрился попасть на какой-то хитрый баг в ffmpeg.
Если строчку с ним заменить вот этим монстром
ARTIST=`metaflac --show-tag=artist "$i" | sed s/.*=//`
ALBUM=`metaflac --show-tag=album "$i" | sed s/.*=//`
TITLE=`metaflac --show-tag=title "$i" | sed s/.*=//`
TRACKNUMBER=`metaflac --show-tag=tracknumber "$i" | sed s/.*=//`
DATE=`metaflac --show-tag=date "$i" | sed s/.*=//`
GENRE=`metaflac --show-tag=genre "$i" | sed s/.*=//`
flac -c -d "$i" | faac -w -q 500 --artist "$ARTIST" --title "$TITLE" --album "$ALBUM" --track "$TRACKNUMBER" --year "$DATE" --genre "$GENRE" -o ./AAC/"`basename "$i" .flac`.m4a" -

то все работает.

0
Master_Yoda - 2 Январь, 2012 - 14:48

Рожаю скрипт для перекодировки музыки из flac в AAC.

Вот здесь хорошие "повитухи" :)

0
Жюстина - 2 Январь, 2012 - 16:06
Изображение пользователя Жюстина.

А я PACPL пользую. Удобненько...

0
Lexxa - 2 Январь, 2012 - 16:42

Ниче так.А он тэги сохраняет?
Я ж чего с ffmpeg зацепился, он тэги автоматом перегоняет в выходной файл. Не надо городить ничего.

0
Жюстина - 2 Январь, 2012 - 20:03
Изображение пользователя Жюстина.

Дык для кодирования в AAC он и пользует ffmpeg, теги сохраняет.

+1
Гость - 28 Январь, 2012 - 23:09

Столкнулся с подобной проблемой. Нашел решение здесь. Нужно просто добавить </dev/null в конец команды ffmpeg

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры