23 回复

我也大概知道是这玩意,但是java代码不太会搞....

大叔啊,有没有直接的java代码啊,我自己写了但是出了好多问题,不知道如何是好啊....冒昧问下nutz提供转码工具类么...如果没有是不是应该提供下啊...

转码?都说走命令行咯,Lang.exec @qq_32b899df

@wendal 大叔救命啊...

我用silk-v3-decoder这个开源项目转码,源文件只有500kb,转成pcm就230多兆,再转成mp3就变成了95兆,打开mp3文件竟然还真能播放,但是总时长一个小时多,就前几秒中有声音,不知道是什么原因,求救...

几秒钟啊,就500k啊,不知道为什么就转的那么大

搜遍了全网,竟然就这一个开源项目可以做,github上readme写的非常简陋,真是醉了....

我用他的exe软件试的,cmd也是调用他的哪个软件穿的参,如果exe都不行那cmd调用也不行啊

提供的软件可以了,但是我执行命令报错了...

代码:

String skil = "r5vl1h5gfajk1ojd68ca08it6a.silk";

String pcm = "D:\\apache-tomcat-8.0.36\\webapps\\upload\\voice\\r5vl1h5gfajk1ojd68ca08it6a.pcm";

String mp3 = "D:\\apache-tomcat-8.0.36\\webapps\\upload\\voice\\r5vl1h5gfajk1ojd68ca08it6a.mp3";

Process p;

//test.bat中的命令是ipconfig/all

String cmd="cmd.exe /k F:\\转码\\silk_v3_decoder.exe "+skil+" "+pcm;

try

{

//执行命令

p = Runtime.getRuntime().exec(cmd);

}

报错:

********** Silk Decoder (Fixed Point) v 1.0.9.6 ********************

********** Compiled for 32 bit cpu *******************************

Input: r5vl1h5gfajk1ojd68ca08it6a.silk

Output: D:\apache-tomcat-8.0.36\webapps\upload\voice\r5vl1h5gfajk1ojd68ca08it6a.pcm

Error: could not open input file r5vl1h5gfajk1ojd68ca08it6a.silk

这个问题是路径不能为中文的原因...

然后改掉之后又错了...

********** Silk Decoder (Fixed Point) v 1.0.9.6 ********************

********** Compiled for 32 bit cpu *******************************

Input: F:\zhuanma\r5vl1h5gfajk1ojd68ca08it6a.silk

Output: D:\apache-tomcat-8.0.36\webapps\upload\voice\r5vl1h5gfajk1ojd68ca08it6a.pcm

Error: Wrong Header ata:audi

这个问题也解决了,原因是我移动文件的时候,把文件损坏了....

最后一步了!!!! 我已经代码执行命令转成了pcm格式,就查转成mp3了,我配好了ffmpeg的环境变量,然后写了如下代码

public static boolean getMp3(String pcm,String mp3){

boolean flag = true;

Process p;

String cmd = "cmd.exe /c ffmpeg -y -f s16le -ar 24000 -ac 1 -i "+pcm+" "+mp3;

try

{

//执行命令

p = Runtime.getRuntime().exec(cmd);

//取得命令结果的输出流

InputStream fis=p.getInputStream();

//用一个读输出流类去读

InputStreamReader isr=new InputStreamReader(fis);

//用缓冲器读行

BufferedReader br=new BufferedReader(isr);

String line=null;

//直到读完为止

while((line=br.readLine())!=null)

{

System.out.println(line);

}

}

catch (IOException e)

{

e.printStackTrace();

return false;

}

return flag;

}

我debug看了cmd的值,并复制出来到cmd执行了,发现可以成功转成mp3,但是我代码执行完就没效果,所以应该是代码问题,语法问题,我太菜了....

Lang.execOutput("cmd.exe /c D:\\ffmpeg.exe -y -f s16le -ar 24000 -ac 1 -i "+pcm+" "+mp3);

ffmpeg, pcm和mp3, 都要写绝对路径.

ffmpeg放入PATH路径的话,可以不写绝对路径

我已经配置好了ffmpeg的环境变量,在cmd黑窗口执行ffmpeg也有东西,我的pcm也在资源管理器里执行也能找倒,但为何还是会报找不到文件,我手动指定ffmpeg的绝对路径依然还是报错,甚是不解,其实我不想问的,因为我知道就是路径问题,但的确是不知道哪个路径问题....菜死了我...

java.io.IOException: Cannot run program "cmd.exe /c F:\开发工具包\转码一套\ffmpeg-20170130-cba4f0e-win64-static\bin\ffmpeg.exe -y -f s16le -ar 24000 -ac 1 -i F:\zhuanma\vg2ub41omgipvrmur1fnssd3tq1.pcm F:\zhuanma\vg2ub41omgipvrmur1fnssd3tq.mp3": CreateProcess error=2, 系统找不到指定的文件。

at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)

at java.lang.Runtime.exec(Runtime.java:620)

at java.lang.Runtime.exec(Runtime.java:485)

at org.nutz.lang.Lang.execOutput(Lang.java:2653)

at org.nutz.lang.Lang.execOutput(Lang.java:2641)

at com.infogather.test.DeCoder.getMp3(DeCoder.java:127)

at com.infogather.test.DeCoder.main(DeCoder.java:35)

Caused by: java.io.IOException: CreateProcess error=2, 系统找不到指定的文件。

at java.lang.ProcessImpl.create(Native Method)

at java.lang.ProcessImpl.(ProcessImpl.java:386)

at java.lang.ProcessImpl.start(ProcessImpl.java:137)

at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)

... 6 more

Process finished with exit code 0

我在命令行执行报错信息里的这句话是有效的,并且已经转好了mp3

F:\开发工具包\转码一套\ffmpeg-20170130-cba4f0e-win64-static\bin\ffmpeg.exe -y -f s16le -ar 24000 -ac 1 -i F:\zhuanma\vg2ub41omgipvrmur1fnssd3tq1.pcm F:\zhuanma\vg2ub41omgipvrmur1fnssd3tq.mp3

给错了, 应该是

Lang.execOutput("cmd.exe /c D:\\ffmpeg.exe -y -f s16le -ar 24000 -ac 1 -i "+pcm+" "+mp3, Encoding.CHARSET_GBK);

终于成功了.但是必须使用绝对路径才能找倒ffmpeg.exe,明明我配置了环境变量,但就是不行...非常感谢wendal,没有你我这螃蟹就吃不下去 ┗|*`0′*|┛

修改环境变量后, 重启eclipse/idea没有?

java silk转mp3,小程序录音后格式转换问题请教相关推荐

  1. java 微信时间戳转换工具_微信小程序实现时间戳格式转换

    有时候我们会遇到,后台返回的时间是时间戳的形式,需要进行格式转换,如下: 两种形式: 1.封装好的 js,外部引入. 2.在需要的 js 文件中,封装单独函数. 一.封装好的 js,外部引入. 1.如 ...

  2. 微信小程序录音silk文件格式转换为MP3及PCM格式的方法

    关于silk文件如何转码为MP3或PCM格式的方法 介绍:最近在做微信小程序的人工客服,需要用到百度AI语音识别,但是因为微信的录音文件格式为 .silk,但是百度AI识别的格式应该为PCM或者WAV ...

  3. php silk文件转换pcm,微信小程序录音silk文件格式转换为MP3及PCM格式的方法

    关于silk文件如何转码为MP3或PCM格式的方法 介绍:最近在做微信小程序的人工客服,需要用到百度AI语音识别,但是因为微信的录音文件格式为 .silk,但是百度AI识别的格式应该为PCM或者WAV ...

  4. java silk转mp3_微信小程序录音文件格式silk遇到的问题及解决方法

    不好意思,误导大家了,这种将silk解密的方式只是在小程序测试的时候可以,上线以后这种方法是不行的,还是需要使用解密转码.参见:https://github.com/kn007/silk-v3-dec ...

  5. 微信小程序录音 第一篇 (基于微信小程序及百度AI的 人员语音识别转文字显示小程序)

    基于微信小程序及百度AI的 人员语音识别转文字显示小程序 基于微信小程序及百度AI的 人员语音识别转文字显示小程序主要分3篇 1.微信小程序录音篇(小程序基于wx.startRecord()微信语音录 ...

  6. 小程序录音上传服务器,微信小程序录音实现功能并上传(使用node解析接收)

    微信小程序录音实现功能并上传(使用node解析接收) 发布时间:2020-09-04 11:59:06 来源:脚本之家 阅读:97 作者:weixin_43188227 背景 我在开发小程序的时候,有 ...

  7. 微信小程序录音上传php代码,小程序实现录音上传功能

    本文实例为大家分享了小程序录音上传的具体代码,供大家参考,具体内容如下 首先我们可以先看一下微信小程序的API 这里有关于小程序录音的一些基本配置 index.wxml: index.wxss: .t ...

  8. 微信小程序录音与音频播放控制功能

    微信小程序录音与音频播放控制功能 1.录音 1.1 案例 2.音频播放控制 2.1 案例   小程序继承了微信强大的语音处理功能,提供了录音.音频播放控制和背景音乐等功能,它们的功能不同,但有相似性. ...

  9. uniapp 录音_uni-app小程序录音上传解决方案(后续更新Taro版)

    能力依赖 录音功能的要求与限制 与当前页面其余音频播放/录音功能互斥 是否在录音中状态显示 结束/不须要录音时,回收RecorderManager对象 材料 Codeing(结果代码直接看最后) 构造 ...

最新文章

  1. c语言游戏call调用,C语言-植物大战僵尸-刷僵尸call;fps游戏CS-方框透视(矩阵+传统)...
  2. linux ftp登录命令_Linux使用pinky命令查询登录用户信息
  3. mybatis insert获取主键
  4. SAP UI5 初学者教程之三:开始接触第一个 SAP UI5 控件 试读版
  5. android一个工程的xml怎么引用另外一个工程的xml,如何在Android中使用XML引用库中另一个包的字符串?...
  6. OpenCV学习——矩阵操作总结(转)
  7. Java--接口、抽象与继承
  8. Linux进程管理工具
  9. WAP2.0的历史使命和技术演变
  10. python编程手机_手机最强Python编程神器,在手机上运行Python
  11. 怎么制定合理的开发计划
  12. 2017年一季度工作回顾及感悟
  13. Error: [vuex] do not mutate vuex store state outside mutation handlers.报错的解决方法
  14. 华为哪些手机最先升级鸿蒙,华为鸿蒙升级名单确定,11款机型优先升级,荣耀被暂时遗忘!...
  15. 万能检测数据类型的方法
  16. 笔记本电脑键盘失效修复方法,我搞了好久
  17. SHA224和SHA256哈希算法原理及实现(附源码)
  18. 在CloudFoundry上部署独立Java应用
  19. 为什么跨浏览器测试很重要?7款跨浏览器测试工具请查收
  20. English Voice of Bye Bye Bye

热门文章

  1. 屏幕绘画 V1.1 - 一念(VB 绘制 图形)
  2. Android手机图片上传 选择不了本地照片 解决方案
  3. 吴洪声十问易名CEO金小刚:域名还有没有投资价值?
  4. aect17定义_AECT-05定义与94定义的区别?
  5. Eclipse 创建 Android 模拟器
  6. python读书心得体会_Python学习心得体会
  7. SUSE(Linux操作系统)
  8. uni-app云打包失败
  9. Dev c++ 怎么设置背景色
  10. 小黑公司团建吃烤肉肉啦,mac m1死活安装不上hbase,用拯救者一下就安上啦的leetcode之旅:865. 具有所有最深节点的最小子树