最近在做一个功能性的 APP,里面需要用到发送语音的功能发帖。现在一直在和前端讨论音频的格式,还有传输的格式。前端现在传过来的是 amr 的 base64 二进制格式,我接到后存下来。 前端的想法是,我接到二进制后,存成二进制或者文件都可以,然后再传送给他 json 数据的时候,一定要传给他 amr 的 base64 格式给他。他的理由是,这样做得到二进制后,点击的录音不用再请求服务器没有延迟。 我的想法是,接到文件后存成 mp3,发送给他 json 数据的时候,只用发一个 mp3 的路径即可,他用这个路径就可以读取音频了。我的理由是,mp3 通用性好,在各个终端都可以读取(包括 pc 端)。 有没人帮忙看下,到底哪个方案更好呢?
1
pimin 2017-06-15 10:31:51 +08:00 via Android
微信和贴吧好客户端像都是用的 amr 方案
|
2
susucoolsama OP @pimin 那传输格式是用二进制还是路径呢?亲
|
3
asen1987 2017-06-15 11:14:27 +08:00
amr 的音质感觉比较糟糕,mp3 余地比较多,而且现在也不是缺流量的年代了
|
4
learnshare 2017-06-15 11:17:12 +08:00
mp3 通用性更好,另外大文件上传用 base64,体积不小吧,转码没问题?
|
5
susucoolsama OP @asen1987 我也是这样想的呢,不过微信貌似用的是 amr。
|
6
thinkif 2017-06-15 13:29:46 +08:00
移动端的话,大多数场景中 amr 是足够的,如果有 PC 端网页的话,MP3 通用性更好些
|
7
susucoolsama OP @thinkif 那么我把这个 base64 文件存成 2 份?一份 amr,一份 mp3,移动端 amr,PC 端 mp3 吗?
|
8
thinkif 2017-06-15 13:51:08 +08:00
@susucoolsama #7
没必要搞两份吧,这个看你们项目的具体结构了。 如果没有 PC Web 的需求的话,只用 amr 足以。 如果有这方面的需求,那么以下两种思路你可以参考: 1、可以说服前端按照你的方案做,也就是全用 mp3 格式。 2、如果一定要用 amr 的话,那就在服务端转码,可以自己写,也可以用云服务,比如说七牛貌似有这个转码服务。 |
9
susucoolsama OP @thinkif 我也不想搞 2 份,主要以后万一有什么扩展的话,先存 2 份总是好的吧,以后也不用去用云服务转码。我觉得还是试着说服下前端。
|
10
honeycomb 2017-06-15 14:40:21 +08:00 via Android
如果要求编码效率高,肯定优选 opus 或 aac (有专利)
|
11
susucoolsama OP @honeycomb 基本没有。
|
12
ETiV 2017-06-15 14:48:02 +08:00 via iPhone
base64 ……
为啥不用 CDN,直接存文件呀 你们传输 URL 就行了 语音的话 mp3 单声道 22kHz 30K ~ 60K 码率就可以了 |
13
susucoolsama OP @ETiV base64 坏处是啥呢?前端一直给我安利 base64 好~
|
14
susucoolsama OP 666
|