七牛云音视频新功能:音频支持 AAC_HE

niuer · · 5203 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

![1.png](http://studygolang.qiniudn.com/160229/ae427c76a903c127fb114c705f44f355.png) 与大家所熟知的 MP3 一样, AAC 也是一种常见的音频格式。现如今常见的 AAC 规格有三种: LC-AAC (最基本的), HE-AAC ( AACPlus v1 ), HE-AAC v2 。 HE :“ High Efficiency ”(高效性)。 HE-AAC (又称 AACPlus v1 , SBR ),用容器的方法实现了 AAC ( LC )和 SBR(频段复制)技术。 SBR 把频谱切割开来,低频单独编码保存主要成分,高频单独放大编码保存音质,在减少文件大小的情况下还保存了音质。 HEv2 :用容器的方法包含了 HE-AAC 和 PS (参数立体声)技术。 PS 技术存储了一个声道的全部信息,然后,花很少的字节用参数描述另一个声道和它不同的地方。 在低码率的情况下, HE-AAC , HE-AAC v2 编码后的音质要明显好于 LC-AAC 。 HE-AAC 被广泛的应用于电视广播系统,智能电视。现在很多主流流媒体平台也开始支持 HE-AAC ,如苹果 HLS 、微软 Smooth Streaming 。在运营七牛云的过程中,我们发现很多音频直播、点播类的客户需要对音质进行高保真存储,同时将数据大小缩减至合理范围。为了满足这类客户的需求,协助他们输出高品质的声音,七牛云在原有音视频处理的基础上新增了音频对 HE-AAC 的支持。 通过调用七牛云 avthumb 接口,并设定 /audioProfile 参数来启用 AAC_HE 压缩算法,即可将 MP3 或者 AAC 音频文件转制成具有更高压缩比的音频文件。 现在,你可以参照下面的方法进行测试: 上传原始音频 打开 https://portal.qiniu.com/signin,登录七牛账号; 创建空间,并上传资源: 1 、添加对象存储资源 ![2.png](http://studygolang.qiniudn.com/160229/ccab0a592fdb2c2a179d0da7261ae950.png) 2 、创建公开空间,并留意空间访问域名 ![3.png](http://studygolang.qiniudn.com/160229/604bd62f20e6a9873cb344222b018158.png) 3 、进入内容管理页面,进行文件的管理 ![4.png](http://studygolang.qiniudn.com/160229/8ca78d54497986b3d5b1a09db1b95a24.png) 4 、选择上传文件,上传原始音频文件 ![5.png](http://studygolang.qiniudn.com/160229/d2b9931ce544f372d983ff3fd9b0c075.png) 返回内容管理页面,确认资源上传成功,并能成功获取资源外链并访问成功: 搜索文件名前缀,查找具体文件名,并获取音频外链地址 ![6.png](http://studygolang.qiniudn.com/160229/0e1cdbc0c725bd6295ff5962299b29f7.png)! 进行 AAC_HE 的转码 对原始音频进行转码操作需要触发七牛的音视频服务接口,七牛的各服务端语言的 SDK 都直接封装好了转码的接口,参考对应[ SDK 的文档]即可触发对应的转码操作; 这里介绍下如何使用七牛的 [qrsctl 命令行工具]、[Qiniulab 图形化界面工具]直接进行 AAC_HE 的转码,以便在正式接入七牛各语言 SDK 前,也能进行无开发工作量的转码测试。 qrsctl 工具执行转码 在用户管理界面找到账号的密钥对信息 1 、进入账号管理 ![7.png](http://studygolang.qiniudn.com/160229/a86d9b76f864eecaade8492d22e6c6c4.png) 2 、获取密钥对( AccessKey/SecretKey ) ![8.png](http://studygolang.qiniudn.com/160229/58aae32d3fd8d66b3c3e4e2ceda54917.png) 检查本地系统的对应版本,在 http://developer.qiniu.com/docs/v6/tools/qrsctl.html#download 中下载对应系统版本的 qrsctl 工具压缩包,并在本地解压; 打开命令行,切换到工具解压目录下,进行转码 使用账号密钥对执行登陆操作: ![9.png](http://studygolang.qiniudn.com/160229/8076575b2722bbabc3f0870db74c764d.png) 生成预期处理资源另存为结果参数,用于转码参数中的 saveas 操作: ![10.png](http://studygolang.qiniudn.com/160229/b2991b70831441c8120e32c65aafb890.png) 获取命令行处理返回结果字符串 YWFjLWhlLXRlc3Q6SnVwaXRlci5hYWNfaGUuYWFj。(其中,aac-he-test 为转码结果音频目标空间名,Jupiter.aac_he.aac 为转码结果目标文件名。 执行转码操作命令: ![11.png](http://studygolang.qiniudn.com/160229/891c57b3fa8efdf6d2de6c9af57cdcdf.png) 其中 aac-he-test 为原始音频所在空间名,Jupiter.mp3 为原始音频完整文件名( key );avthumb/aac/acodec/libfdk_aac/audioProfile/aac_he|saveas/YWNjLWhlLXRlc3Q6SnVwaXRlci5hYWNfaGUuYWFj 为将原始音频转换为 AAC_HE 编码的必选转码参数;saveas/YWFjLWhlLXRlc3Q6SnVwaXRlci5hYWNfaGUuYWFj 为处理结果文件另存为的空间名和文件名参数(EncodedEntry) 。 执行转码操作命令后,得到一个形如 https://api.qiniu.com/status/get/prefop?id=z0.56ca10937823de318868f33b 的 URL ,在浏览器中打开这个链接,打开链接获取一个 json 串,当 json 串中 code 字段为 0 时,获取 key 字段的值,即为处理结果的文件名: ![12.png](http://studygolang.qiniudn.com/160229/fb0197aaccaf6e9d09e48c9760ab38de.png) 再次进入空间的内容管理界面,搜索处理结果的文件名,即可获取处理结果的外链地址,在播放器中直接播放: ![13.png](http://studygolang.qiniudn.com/160229/b2f60b193497d246bcdc79f1e91ec5b7.png) QiniuLab 工具执行转码 QiniuLab 做为 Windows 下的图形化测试工具,可以给不熟悉命令行操作的 Windows 用户提供另一种界面友好的选择。 下载 http://qdisk.qiniudn.com/QiniuLab_alpha.zip 并解压; 打开 QiniuLab ,进行密钥对设置,密钥对获取方式可参考 qrsctl 工具: ![14.png](http://studygolang.qiniudn.com/160229/d0e16fbe62ebefe32de0b8b7a48d224a.png) 生成预期处理资源另存为结果参数,用于转码参数中的 saveas 操作: ![15.png](http://studygolang.qiniudn.com/160229/7ae3afb572e7ac88fb45ac3ede5403b3.png) 选择工具选项卡中的 Url 安全的 Base64 选项,输入aac-he-test Jupiter.aac_he.aac,获取字符串 YWFjLWhlLXRlc3Q6SnVwaXRlci5hYWNfaGUuYWFj。(其中,aac-he-test 为转码结果音频目标空间名,Jupiter.aac_he.aac 为转码结果目标文件名。 选择持久化选项卡,进行转码: 填写转码参数,其中 Bucket 填写原始音频所在空间(例子中是 aac-he-test ),key 为原始音频完整文件名(例子中为 Jupiter.mp3 ),Fops 为将原始音频转换为 AAC_HE 编码的必选转码参数(其中saveas/YWFjLWhlLXRlc3Q6SnVwaXRlci5hYWNfaGUuYWFj 为处理结果文件另存为的空间名和文件名参数)。 ![16.png](http://studygolang.qiniudn.com/160229/475f61f54db64a15db5aff370a1333cb.png) 查询转码处理结果: ![17.png](http://studygolang.qiniudn.com/160229/8f85a3b89d65f2c0c7b9735d7bdef36b.png) 当 code 字段为 0 时,key 字段的值即为处理结果的文件名; 再次进入空间的内容管理界面,搜索处理结果的文件名,即可获取处理结果的外链地址,在播放器中直接播放: ![18.png](http://studygolang.qiniudn.com/160229/b2f60b193497d246bcdc79f1e91ec5b7.png) AAC_HE 转码效果实测报告 我们挑选了一首音域较广、声音元素较为复杂的曲子《行星组曲之木星》,通过测试后发现: MP3: https://itisatest.qnssl.com/Jupiter.mp3 , 7297149 字节 AAC: https://itisatest.qnssl.com/Jupiter.aac , 5698336 字节 AAC_HE: https://itisatest.qnssl.com/Jupiter.aac_he.aac, 3657703 字节 以 MP3 为基准, AAC 相对于 MP3 减小了 21.91% 的大小,而 AAC_HE 相对于 MP3 减小了近 50%,而实际声音效果几乎完全一致。

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

5203 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传