많은 수의 .MOD 및 .XM 파일을 Wave 형식으로 변환하는 다음 스크립트가 있습니다.
#!/bin/bash
for f in ./XM.* ./MOD.*
do
xmp $f -d wav -o - | ffmpeg -i - -acodec libmp3lame -ab 320k "$f.mp3"
done
하지만 예상대로 작동하지 않습니다. 프로그램이 정지됩니다. .wav 파일을 생성하지만 그 이상은 아닙니다. (기록되지 않음) -vvv 스위치도 아무런 정보를 제공하지 않습니다. 이상한 점은 "strace"를 앞에 붙이면 제대로 작동한다는 것입니다.
어떤 아이디어나 해결 방법이 있나요?
답변1
어쩌면 stdin이 tty가 아니기 때문에 xmp가 혼란스러울 수도 있나요? 당신은 시도 할 수 있습니다:
xmp $f -d wav -o - </dev/null | ffmpeg -i - -acodec libmp3lame -ab 320k "$f.mp3"
또한 매개변수의 순서는 다음과 같아야 합니다.
xmp -d wav -o - "$f" </dev/null | ffmpeg -i - -acodec libmp3lame -ab 320k "$f.mp3"
ffmpeg 대신 xmp 4.0.6 및 avconv를 사용하는 Ubuntu 14.04에서는 -d wav
이후 옵션과 함께 순서를 사용해야 합니다. 그렇지 않으면 raw가 사용됩니다.
xmp -o - -d wav "$f" | avconv -i - -b 320k "$f.mp3"