Shell-Script
使用 XMP 批量轉換模組文件
我有以下腳本可以將一大堆 .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”,它工作正常。
有什麼想法/解決方法嗎?
也許 xmp 會因為 stdin 不是 tty 而感到困惑?你可以試試:
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"
在帶有 xmp 4.0.6 和 avconv 而不是 ffmpeg 的 Ubuntu 14.04 上,該命令需要
-d wav
稍後使用該選項,否則將使用 rawxmp -o - -d wav "$f" | avconv -i - -b 320k "$f.mp3"