Shell-Script

使用 XMP 批量轉換模組文件

  • September 10, 2014

我有以下腳本可以將一大堆 .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稍後使用該選項,否則將使用 raw

xmp -o - -d wav "$f" | avconv -i - -b 320k "$f.mp3"

引用自:https://unix.stackexchange.com/questions/56380