APP 开发,音频格式的选择, amr 还是 mp3,二进制还是路径?

2017-06-15 10:27:20 +08:00
 susucoolsama

最近在做一个功能性的 APP,里面需要用到发送语音的功能发帖。现在一直在和前端讨论音频的格式,还有传输的格式。前端现在传过来的是 amr 的 base64 二进制格式,我接到后存下来。 前端的想法是,我接到二进制后,存成二进制或者文件都可以,然后再传送给他 json 数据的时候,一定要传给他 amr 的 base64 格式给他。他的理由是,这样做得到二进制后,点击的录音不用再请求服务器没有延迟。 我的想法是,接到文件后存成 mp3,发送给他 json 数据的时候,只用发一个 mp3 的路径即可,他用这个路径就可以读取音频了。我的理由是,mp3 通用性好,在各个终端都可以读取(包括 pc 端)。 有没人帮忙看下,到底哪个方案更好呢?

3023 次点击
所在节点    问与答
14 条回复
pimin
2017-06-15 10:31:51 +08:00
微信和贴吧好客户端像都是用的 amr 方案
susucoolsama
2017-06-15 10:32:34 +08:00
@pimin 那传输格式是用二进制还是路径呢?亲
asen1987
2017-06-15 11:14:27 +08:00
amr 的音质感觉比较糟糕,mp3 余地比较多,而且现在也不是缺流量的年代了
learnshare
2017-06-15 11:17:12 +08:00
mp3 通用性更好,另外大文件上传用 base64,体积不小吧,转码没问题?
susucoolsama
2017-06-15 13:21:34 +08:00
@asen1987 我也是这样想的呢,不过微信貌似用的是 amr。
thinkif
2017-06-15 13:29:46 +08:00
移动端的话,大多数场景中 amr 是足够的,如果有 PC 端网页的话,MP3 通用性更好些
susucoolsama
2017-06-15 13:41:02 +08:00
@thinkif 那么我把这个 base64 文件存成 2 份?一份 amr,一份 mp3,移动端 amr,PC 端 mp3 吗?
thinkif
2017-06-15 13:51:08 +08:00
@susucoolsama #7
没必要搞两份吧,这个看你们项目的具体结构了。

如果没有 PC Web 的需求的话,只用 amr 足以。

如果有这方面的需求,那么以下两种思路你可以参考:
1、可以说服前端按照你的方案做,也就是全用 mp3 格式。
2、如果一定要用 amr 的话,那就在服务端转码,可以自己写,也可以用云服务,比如说七牛貌似有这个转码服务。
susucoolsama
2017-06-15 14:14:51 +08:00
@thinkif 我也不想搞 2 份,主要以后万一有什么扩展的话,先存 2 份总是好的吧,以后也不用去用云服务转码。我觉得还是试着说服下前端。
honeycomb
2017-06-15 14:40:21 +08:00
如果要求编码效率高,肯定优选 opus 或 aac (有专利)
susucoolsama
2017-06-15 14:42:49 +08:00
@honeycomb 基本没有。
ETiV
2017-06-15 14:48:02 +08:00
base64 ……
为啥不用 CDN,直接存文件呀
你们传输 URL 就行了

语音的话 mp3 单声道 22kHz 30K ~ 60K 码率就可以了
susucoolsama
2017-06-21 13:20:24 +08:00
@ETiV base64 坏处是啥呢?前端一直给我安利 base64 好~
susucoolsama
2017-07-19 16:38:12 +08:00
666

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/368522

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX