微信录音amr音频文件转mp3格式
直到现在,仍然不存在一项旨在网页上播放音频的标准。HTML5 规定了一种通过 audio 元素来包含音频的标准方法。audio 元素能够播放声音文件或者音频流。当前,audio 元素支持三种音频格式:MP3 ,Wav ,Ogg Vorbis。
微信录音的音频为amr格式,不支持网页播放,且上传语音有效期3天,可用微信多媒体接口下载语音到自己的服务器,然后转码转成MP3格式,途径有两种:
一.在服务器上搭建ffmpeg
很多项目不一定放在自己服务器上,而且很多码农并不熟悉服务器方面的配置,所以没办法去搭建ffmpeg,但是对于网络接口的调用并不陌生,所以我着重讲一下使用七牛PHP框架将微信 amr音频转mp3。
二.使用七牛云存储框架转码存储
(1)下载七牛SDK,下载地址:https://developer.qiniu.com/sdk
(2)将下载的整个SDK包解压之后放入项目中
(3)引入入口文件,并写好相应要使用的模块命名空间
require_once 'qiniusdk/autoload.php'; use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
use Qiniu\Storage\BucketManager;
(4)将微信录音amr文件下载到本地(自己的服务器)
private function savemedia($serverid){ $token = $this->_token; //微信请求素材的Token $mediaid = $serverid; //语音素材的mediaid $url = 'http://file.api.weixin.qq.com/cgi-bin/media/get?access_token='.$token.'&media_id='.$mediaid; $content = ihttp_get($url); //get请求 if (!is_error($content)){ $prefix = explode("/", $content['headers']["Content-Type"]); $filename = $mediaid.".".$prefix[1]; $dateStr = date('Y-m-d',time()); $currdir = "/upload/".$dateStr.'/'; $dir = getcwd().$currdir; if (!is_dir($dir)){ //创建保存文件的目录 mkdir(iconv("UTF-8", "GBK", $dir),0777,true); } $currfile = $currdir.$filename; $path = getcwd().$currfile; if(file_exists($path)){ unlink($path); //如果文件已经存在则删除已有的 } $fp = fopen($path, 'w'); $state=fwrite($fp, $content['content']); //写入数据 fclose($fp); }
}
(5)将本地amr音频文件上传至七牛云并转码生成MP3文件
private function upchange($filePath,$mediaid){ $accessKey = trim($reply['accessKey']); //七牛公钥 $secretKey = trim($reply['secretKey']); //七牛私钥 $auth = new Auth($accessKey, $secretKey); $bucket = trim($reply['bucket']); //数据处理队列名称,不设置代表不使用私有队列,使用公有队列。 $pipeline = trim($reply['pipeline']); //通过添加'|saveas'参数,指定处理后的文件保存的bucket和key //不指定默认保存在当前空间,bucket为目标空间,后一个参数为转码之后文件名 $savekey = Qiniu\base64_urlSafeEncode($bucket.':'.$mediaid.'.mp3'); //设置转码参数 $fops = "avthumb/mp3/ab/320k/ar/44100/acodec/libmp3lame"; $fops = $fops.'|saveas/'.$savekey; if(!empty($pipeline)){ //使用私有队列 $policy = array( 'persistentOps' => $fops, 'persistentPipeline' => $pipeline ); }else{ //使用公有队列 $policy = array( 'persistentOps' => $fops ); } //指定上传转码命令 $uptoken = $auth->uploadToken($bucket, null, 3600, $policy); $key = $mediaid.'.amr'; //七牛云中保存的amr文件名 $uploadMgr = new UploadManager(); //上传文件并转码$filePath为本地文件路径 list($ret, $err) = $uploadMgr->putFile($uptoken, $key, $filePath); if ($err !== null) { return false; }else { //此时七牛云中同一段音频文件有amr和MP3两个格式的两个文件同时存在 $bucketMgr = new BucketManager($auth); //为节省空间,删除amr格式文件 $bucketMgr->delete($bucket, $key); return $ret['key']; }
}
此时七牛云空间就已经有了保存的MP3文件了。
微信录音amr音频文件转mp3格式相关推荐
- PHP 将amr音频文件转换为mp3格式
PHP 将amr音频文件转换为mp3格式 说下整体思路 1.服务器安装ffmpeg 2.使用ffmpeg -i 指令来转换amr为mp3格式(这个到时候写在PHP代码中,使用exec函数执行即可) 3 ...
- Windows下批量转换Silk v3音频文件为MP3格式
转自:https://kn007.net/topics/batch-convert-silk-v3-audio-files-to-mp3-in-windows/ 前有<解码转换QQ微信的SILK ...
- Python之ffmpeg:利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件
Python之ffmpeg:利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件 目录 利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件 1.先下载ff ...
- 用 python 脚本+ffmpeg,把当前目录及子目录下的 wma音频文件转换为mp3 格式
用 python 脚本+ffmpeg,把当前目录及子目录下的 wma音频文件转换为mp3 格式 用 python 脚本,结合ffmpeg软件,把当前目录及子目录下的 wma 音频文件转换为 mp3 格 ...
- 如何将音频文件转换为MP3格式?
音频文件有很多种格式,如 WAV.FLAC.AAC 等,其中 MP3 是最为常见的一种格式,因为它具有压缩比高.音质损失少.兼容性强等优点,适合在各种设备上播放.如果你想将一个音频文件转换为 MP3 ...
- Android录音amr实时转成MP3格式
文章目录 MP3 录音使用说明 步骤一:下载NDK,并配置(Mac) 步骤二:修改C代码相关路径,编译成so库 步骤三:应用层代码代码调用系统AudioRecord类开始录音 开始录音 start() ...
- 在服务器端,转换amr格式音频文件为MP3格式
由于当前pc端浏览器及移动端浏览器都不支持直接播放amr格式文件,因此考虑在服务器端,将amr文件转换为MP3文件,使浏览器可直接播放. 在服务器使用ffmpeg工具,供php调用,用来转换amr文件 ...
- java 将.amr音频文件转换为.mp3或.wav文件
1.在windows系统下 //利用ffmpeg.exe工具与cmd中的命令进行转换 //sourcePath为需要转换的.amr文件路径;targetPath为转换好的.mp3文件路径: //too ...
- 使用python讲二进制转换为音频文件_Python使用ffmpy将amr格式的音频转化为mp3格式的例子...
最近做了一个项目,将从微信下载的音频文件(默认为.amr格式)转化为mp3格式(否则前端播放将会遇到困难)上传到云端.经过一番研究,最终决定采用Python的ffmpy包. 安装只需执行 pip in ...
最新文章
- 【译】JavaScript 核心(第二版)
- 用电脑发短信_丢掉你的手机数据线吧!用这个软件轻松在任何设备互传文件
- Android 第一个OpenGL ES程序
- 为jupyter_notebook增加目录
- 不得不赞!京东开源FaceX-Zoo,一站式人脸识别研究平台
- GP学习(八)—How to access a raster dataset and to create a raster dataset
- 西门子real是什么数据类型_如何实现西门子新一代精智屏及基本屏与 S120 的直接通讯...
- 计算机毕业设计中民宿平台信息管理系统设计
- 简书和微博的区别是什么
- 如何理解冲突域和广播域?(转)
- oracle imp命令路径,在oracle中关于imp命令的详细讲解
- 移动Ad Hoc网络路由协议汇总
- 【智能制造】制造业信息化与工业4.0
- 【java】IDEA设置自己的名字和时间(Created by)
- FPGA学习笔记-1 FPGA原理与开发流程
- amazon 云平台入门
- 误删计算机桌面图标怎么恢复,大神为你解答win7系统恢复误删桌面计算机图标的步骤...
- 氧饱夹语音芯片,内置功放直推喇叭输出,低成本语音IC,WTN6系列
- 各类多媒体计算机硬件设备,多媒体教室主要有哪些硬件设备
- mybatis根据省份查询城市的多表查询