java silk转mp3,小程序录音后格式转换问题请教
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,小程序录音后格式转换问题请教相关推荐
- java 微信时间戳转换工具_微信小程序实现时间戳格式转换
有时候我们会遇到,后台返回的时间是时间戳的形式,需要进行格式转换,如下: 两种形式: 1.封装好的 js,外部引入. 2.在需要的 js 文件中,封装单独函数. 一.封装好的 js,外部引入. 1.如 ...
- 微信小程序录音silk文件格式转换为MP3及PCM格式的方法
关于silk文件如何转码为MP3或PCM格式的方法 介绍:最近在做微信小程序的人工客服,需要用到百度AI语音识别,但是因为微信的录音文件格式为 .silk,但是百度AI识别的格式应该为PCM或者WAV ...
- php silk文件转换pcm,微信小程序录音silk文件格式转换为MP3及PCM格式的方法
关于silk文件如何转码为MP3或PCM格式的方法 介绍:最近在做微信小程序的人工客服,需要用到百度AI语音识别,但是因为微信的录音文件格式为 .silk,但是百度AI识别的格式应该为PCM或者WAV ...
- java silk转mp3_微信小程序录音文件格式silk遇到的问题及解决方法
不好意思,误导大家了,这种将silk解密的方式只是在小程序测试的时候可以,上线以后这种方法是不行的,还是需要使用解密转码.参见:https://github.com/kn007/silk-v3-dec ...
- 微信小程序录音 第一篇 (基于微信小程序及百度AI的 人员语音识别转文字显示小程序)
基于微信小程序及百度AI的 人员语音识别转文字显示小程序 基于微信小程序及百度AI的 人员语音识别转文字显示小程序主要分3篇 1.微信小程序录音篇(小程序基于wx.startRecord()微信语音录 ...
- 小程序录音上传服务器,微信小程序录音实现功能并上传(使用node解析接收)
微信小程序录音实现功能并上传(使用node解析接收) 发布时间:2020-09-04 11:59:06 来源:脚本之家 阅读:97 作者:weixin_43188227 背景 我在开发小程序的时候,有 ...
- 微信小程序录音上传php代码,小程序实现录音上传功能
本文实例为大家分享了小程序录音上传的具体代码,供大家参考,具体内容如下 首先我们可以先看一下微信小程序的API 这里有关于小程序录音的一些基本配置 index.wxml: index.wxss: .t ...
- 微信小程序录音与音频播放控制功能
微信小程序录音与音频播放控制功能 1.录音 1.1 案例 2.音频播放控制 2.1 案例 小程序继承了微信强大的语音处理功能,提供了录音.音频播放控制和背景音乐等功能,它们的功能不同,但有相似性. ...
- uniapp 录音_uni-app小程序录音上传解决方案(后续更新Taro版)
能力依赖 录音功能的要求与限制 与当前页面其余音频播放/录音功能互斥 是否在录音中状态显示 结束/不须要录音时,回收RecorderManager对象 材料 Codeing(结果代码直接看最后) 构造 ...
最新文章
- c语言游戏call调用,C语言-植物大战僵尸-刷僵尸call;fps游戏CS-方框透视(矩阵+传统)...
- linux ftp登录命令_Linux使用pinky命令查询登录用户信息
- mybatis insert获取主键
- SAP UI5 初学者教程之三:开始接触第一个 SAP UI5 控件 试读版
- android一个工程的xml怎么引用另外一个工程的xml,如何在Android中使用XML引用库中另一个包的字符串?...
- OpenCV学习——矩阵操作总结(转)
- Java--接口、抽象与继承
- Linux进程管理工具
- WAP2.0的历史使命和技术演变
- python编程手机_手机最强Python编程神器,在手机上运行Python
- 怎么制定合理的开发计划
- 2017年一季度工作回顾及感悟
- Error: [vuex] do not mutate vuex store state outside mutation handlers.报错的解决方法
- 华为哪些手机最先升级鸿蒙,华为鸿蒙升级名单确定,11款机型优先升级,荣耀被暂时遗忘!...
- 万能检测数据类型的方法
- 笔记本电脑键盘失效修复方法,我搞了好久
- SHA224和SHA256哈希算法原理及实现(附源码)
- 在CloudFoundry上部署独立Java应用
- 为什么跨浏览器测试很重要?7款跨浏览器测试工具请查收
- English Voice of Bye Bye Bye
热门文章
- 屏幕绘画 V1.1 - 一念(VB 绘制 图形)
- Android手机图片上传 选择不了本地照片 解决方案
- 吴洪声十问易名CEO金小刚:域名还有没有投资价值?
- aect17定义_AECT-05定义与94定义的区别?
- Eclipse 创建 Android 模拟器
- python读书心得体会_Python学习心得体会
- SUSE(Linux操作系统)
- uni-app云打包失败
- Dev c++ 怎么设置背景色
- 小黑公司团建吃烤肉肉啦,mac m1死活安装不上hbase,用拯救者一下就安上啦的leetcode之旅:865. 具有所有最深节点的最小子树