Runtime.getRuntime().exec("cmd /c E:\\silkdecoder\\windows\\silk_v3_decoder.exe E:\\1.silk E:\\1.pcm");
Runtime.getRuntime().exec("cmd /c E:\\ffmpeg\\bin\\ffmpeg.exe -y -f s16le -ar 24000 -ac 1 -i E:\\1.pcm E:\\1.mp3");上述代码放在测试类中是正常的,但是放在一个http请求的controller处理中,出现了只有5秒音频产生(ps:正常的是10秒钟)

解决方案 »

  1.   

    很可能是超时引起的。建议把转换写成独立服务, controller去异步调用服务,就可以支持长时间转换  
      

  2.   

    问题解决了最后使用了
    String changeSilkToPcm="cmd /c start E:\\silkdecoder\\windows\\silk_v3_decoder.exe "+newFileName+" "+randString+".pcm";
    String changePcmToMp3="cmd /c start E:\\ffmpeg\\bin\\ffmpeg.exe -y -f s16le -ar 24000 -ac 1 -i "+randString+".pcm "+randString+"temp.mp3";
    Runtime.getRuntime().exec(changeSilkToPcm);
    Runtime.getRuntime().exec(changePcmToMp3);
    解决了问题