Есть скрипт:
while read filename; do
input="Музыка/$filename"
corr_name=$(echo "$filename" | sed 's/[\?\*\:]/_/g')
output="Музыка.output/${corr_name%.*}.ogg"
mkdir -p "$(dirname "$output")"
ffmpeg -i "$input" -c:a libvorbis -q:a 10 -vn "$output"
echo ВХОД "$input" ВЫХОД "$output"
done < <(find Музыка -type f -printf '%P\n')
Суть: полностью скопировать иерархию Музыка в Музыка.output с перекодировкой в .ogg. Что странно: в процессе выполнения ffmpeg как-то криво получает имена файлов (и, похоже, их корёжит в самих переменных (понимаю, бред. Но иного объяснения у меня нет)), в результате чего Unheilig превращается то в nheilig, то в eilig, а «Reignite - Mass Effect Tribute Song» превращается в «s Song» (это к примеру). При этом, echo «$input» «$output» тоже показывают бред из скрипта. НО! Если я заменю ffmpeg на libav, или вообще уберу конвертацию из скрипта, т.е. оставлю только создание директорий и выхлоп или вообще только выхлоп, то всё работает прекрасно! Я не понимать. Пожалуйста, помогите.