.net 音频转换 .amr 转 .mp3 (七牛转换法)
.amr 用于移动设备的音频,压缩比比较大,多用于人声、通话,效果还行!所以,移动设备多采用amr格式来进行录存!比较常见的例子:通话录音,微信语音以及录音等!
这个鬼,用两个字来形容,就是“蛋疼”;因为HTML5压根就不支持它(amr:我是个《孤儿》 ,导演:佐米·希尔拉);所以,试听效果也就很难实现了!虽然微信是提供试听的,但一旦离开了页面,那就意味着,你再也无法播放你的录音了!
所以你不得不将文件转换下格式!
目前,小编掌握的转换格式的方法有两种:一是上传到七牛云服务进行转换下载;二是通过ffmpeg 应用进行转换!
七牛转换法:
1.首先,注册七牛云存储!
2.七牛会返给你“两张”通行证,通行证是通信七牛必不可少的工具!上图一张:
AK 和 SK 是程序执行的前提!
3.创建空间,添加队列!空间名称,和队列名称都用的到!
空间是存储你上传文件的仓库,队列是加工文件的工厂!可以创建多个!
空间需要配置域名!
4.下载七牛提供的源代码:我是链接
文件里面有个名为“Qiniu.4.0.dll”的文件,把它引用到你的项目中!
- /// <summary>
- /// 设置你的AK、SK 和 域名
- /// </summary>
- private static void SetKey()
- {
- //设置账号的AK和SK
- Config.ACCESS_KEY = "########################################";
- Config.SECRET_KEY = "****************************************";
- Config.API_HOST = "http://###.***.com";
- }
5.上传文件,并通知七牛要给文件转换格式,以下例子是:.AMR格式 转 .MP3格式。
- /// <summary>
- /// 上传文件并预转格式
- /// </summary>
- /// <param name="key">要转换格式的文件名</param>
- /// <param name="filePath">文件路径</param>
- /// <returns></returns>
- private string upload(string key, string filePath)
- {
- IOClient target = new IOClient();
- PutExtra extra = new PutExtra();
- //设置文件上传后所存储的空间名称
- String bucket = "amrtest";
- //普通上传,只需要设置上传的空间名就可以了,第二个参数可以设定token过期时间
- PutPolicy put = new PutPolicy(bucket, );
- //对转码后的文件进行使用saveas参数自定义命名,也可以不指定,文件会默认命名并保存在当前空间。
- string mp3tpname = key.Split('.')[].ToString() + ".mp3";
- String urlbase64 = Qiniu.Util.Base64URLSafe.Encode(bucket + ":" + mp3tpname);
- //一般指文件要上传到的目标存储空间(Bucket)。若为“Bucket”,
- //表示限定只能传到该Bucket(仅限于新增文件);若为”Bucket:Key”,表示限定特定的文件,可修改该文件。
- put.Scope = bucket + ":" + key;
- // 可选。 若非0, 即使Scope为 Bucket:Key 的形式也是insert only.
- put.InsertOnly = ;
- // "|"竖线前是你要转换格式的命令;竖线后是转换完成后,文件的命名和存储的空间的名称!
- put.PersistentOps = "avthumb/mp3/ab/128k/ar/44100/acodec/libmp3lame|saveas/" + urlbase64;
- //规定文件要在那个“工厂”进行改装,也就是队列名称!
- put.PersistentPipeline = "LittleBai";
- //音视频转码持久化完成后,七牛的服务器会向用户发送处理结果通知。这里指定的url就是用于接收通知的接口。
- //设置了`persistentOps`,则需要同时设置此字段
- put.PersistentNotifyUrl = "http://***.###.com/***/default.aspx";
- //生成上传Token
- string upToken = put.Token();
- //上传文件
- PutRet ret = target.PutFile(upToken, key, filePath, extra);
- //返回数据格式:{"hash":"FvipQyyMwI0gvGc7_NUd8OVBuJ85","key":"55456.amr","persistentId":"z0.57eb86a945a2652644d64308"}
- return ret.Response.ToString();
- }
6.最后,将转换好的文件从七牛空间下载到当前服务器上。
- /// <summary>
- /// 下载
- /// </summary>
- /// <param name="key">转好格式的文件名称</param>
- /// <param name="savepath">下载后的保存路径</param>
- /// <returns></returns>
- private string download(string key, string savepath)
- {
- //构造私有空间的需要生成的下载的链接 你帮定在空间的域名 加 要下载的文件名
- string baseUrl = "http://***.###.com/" + key;
- //调用MakeRequest方法生成私有下载链接
- string private_url = GetPolicy.MakeRequest(baseUrl);
- //下载文件
- HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(private_url);
- req.Method = "GET";
- using (WebResponse wr = req.GetResponse())
- {
- HttpWebResponse myResponse = (HttpWebResponse)req.GetResponse();
- string strpath = myResponse.ResponseUri.ToString();
- WebClient mywebclient = new WebClient();
- try
- {
- mywebclient.DownloadFile(strpath, savepath);
- }
- catch (Exception ex)
- {
- savepath = ex.ToString();
- }
- }
- return savepath;
- }
OK,转换完成!附效果图一张:
转载请注明本博地址:http://www.cnblogs.com/LittleBai/p/5924416.html
绝对原创,转载请注明!
好了,到此结束!拙文一篇,望海涵!
如有疑问,欢迎骚扰,Q群:225443677 TKS!
.net 音频转换 .amr 转 .mp3 (七牛转换法)的更多相关文章
- .net 音频转换 .amr 转 .mp3 (ffmpeg转换法)
最近看来是跟声音干上了啊! 音频转换的第二种方法,这种方法相对第一种来说,要简单的多! 首先,你得下载个“ffmpeg.exe” 插件,然后把它放到你的项目中,如下图: 程序中会调用该文件,以助于转换 ...
- 七牛php-sdk使用
使用七牛云存储服务有一年多了,大部分功能基于其PHP-SDK来做开发,现对sdk的一些功能做一个总结. 一.资源上传 上传资源文件到七牛空间的不同实现方法 二.文档转换 介绍如何使用七牛以及七牛第三方 ...
- FFMPEG 音频转换命令
音频转换: .转换amr到mp3: ffmpeg -i shenhuxi.amr amr2mp3.mp3 .转换amr到wav: ffmpeg -acodec libamr_nb -i shenhux ...
- 七牛php-sdk使用-文档处理
所用到的七牛文档转换服务,主要是:ppt文件转为pdf文件,pdf文件转图片(png). 描述一下需求:上传PPT或者PDF文件到七牛,最终转换为图片.文件上传部分的功能已经讲过了,这里说一下转换处理 ...
- iOS 通过(lame)将录制音频转换成Mp3
版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请注明出处,保留原帖地址及作者署名. Url:http://blog.csdn.net/ysy441088327/article/detail ...
- javaCV开发详解之7:让音频转换更加简单,实现通用音频编码格式转换、重采样等音频参数的转换功能(以pcm16le编码的wav转mp3为例)
javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...
- 如何将AAC音频转换成MP3格式
我们应该怎样将AAC音频转换成MP3格式呢?AAC是一种专为声音数据设计的文件压缩格式,相对于MP3音频来说更加高效,性价比跟高.但是因为MP3音频格式的通用性,我们还是时常需要将AAC音频转换成MP ...
- 使用jave2实现将wav格式的音频转换成mp3格式
最近需要用到语音合成功能,网上查阅了一番,发现可以使用腾讯云的语音合成API来完成这个功能,但是腾讯云的api返回的是wav格式的音频文件,这个格式的文件有些不通用,因此需要转换成mp3格式的文件. ...
- window64 PHP ffmpeg详解简单上手 音频amr转mp3
从网上找了一大堆关于window 64 ffmpeg的信息,都是又长又不关键,让人难消化. 我只要简单的amr转MP3格式而已. 终于搞明白.自己总结了下! 希望能帮助到喜欢言简意赅,一眼上手的同学. ...
随机推荐
- 深度学习入门-4.1 AND.py 源码分析
源代码 ------------------------------------------------------------------------------------------------ ...
- 跳转到AppStore 的不同位置办法
程序跳转到appstore中指定的应用 1.进入appstore中指定的应用NSString *str = [NSString stringWithFormat: ...
- UVA-11549(floyd判圈算法)
题意: 给一个整数k,每次平方后只能显示结果的前n位,问在这个过程中能得到的最大的数是多少; 思路: floyd判圈算法;它的正确性建立在这得到的这些数是有限的,所以一定是一个循环,在这个循环的圈里面 ...
- ios打印frame等格式
1.打印frame:NSLog(@"%@",NSStringFromCGRect(pickerView.frame)); 或者CFShow(NSStringFromCGRect(p ...
- 【Educational Codeforces Round 38 (Rated for Div. 2)】 Problem A-D 题解
[比赛链接] 点击打开链接 [题解] Problem A Word Correction[字符串] 不用多说了吧,字符串的基本操作 Problem B Run for your prize[贪心] ...
- GYM 100741A Queries
传送门 题目大意: 一个长度为n的序列,q次三种操作 +p r:下标为p的数+r -p r:下标为p的数-r s l r mod [L,R]中有多少数%m=mod,m已经给出 题解: 开十个树状数组 ...
- Autolayout UIScrollView
http://www.cocoachina.com/ios/20141011/9871.html Xcode6中如何对scrollview进行自动布局(autolayout) Xcode6中极大的 ...
- nodejs supvisor模块
在测试nodejs程序的时候,每次都需要在控制台编译,非常的麻烦.supervisor是一款无需重复手动编译,自动后台监听文件变化来自动编译,并且不需要在项目内require,使用非常的方便. 使用方 ...
- 【旧文章搬运】Windows内核常见数据结构(内核对象)
原文发表于百度空间,2008-7-23========================================================================== 继续学习,继 ...
- DC 兼容的DC
DC是 "Device Content" , MS VC++ 的 MFC图形设备接口 的 设备描述表.它是MFC的主要对象之一.通过CDC类进行各种绘图操作,例如选笔,选色,选涂色 ...