我正在尝试使用SoX
将MP3文件转换为GSM编码的WAV执行此操作的C#代码是:
Console.WriteLine(Cfg.SoxPath); // bin/sox.exe
Console.WriteLine(args); // A rather long argument
var startInfo = new ProcessStartInfo();
startInfo.FileName = Cfg.SoxPath;
startInfo.Arguments = args;
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.UseShellExecute = false;
startInfo.CreateNoWindow = false;
using (Process soxProc = Process.Start(startInfo))
{
soxProc.WaitForExit();
}
代码的输出是:
bin\sox.exe
"D:\VoiceRecorder Soundfiles Storage\MP3 Storage\2012-12-05\227\1\20121205_203436_2103c60a0000134850bfa1bd2c99_8075598.mp3" -c 1 -r 8000 -e gsm-full-rate "temp\227_20120901\SW120006_349990195665213_040154700_20121205203436_20.wav"
bin\sox.exe FAIL formats: can't open input file `8000': No such file or directory
导致命令失败的原因是什么?
需要考虑的事项
-c 1 -r 8000 -e gsm-full-rate
)
-e
替换为--encoding
)可能会更改错误消息can't open input file 'ûg'
)答案 0 :(得分:1)
我将“介于两者之间”的参数更改为:
-r 8k -e gsm-full-rate -c 1
它开始工作,即使它是相同的论点,只是拖了一下 我仍然不知道为什么它不能用于.NET,而只能从这些编辑之前的命令行开始。
但现在有效。