一、常见音频转码方案
1.采用阿里云OSS进行转码
采用阿里云OSS仅支持amr -> mp3格式的转码,但是不支持mp3 -> amr 格式的转码,调用后会抛出 amr 格式不支持的异常。OSS转码为异步转码,调用时是通知OSS的转码服务,将这个转码任务加入队列,完成转码后,输入的地址key才是有效的地址key,在调用转码服务后不能直接进行下载,转换为base64编码给客户端。
2.采用 jave 转码
采用java 的第三方jar包 jave 进行转码,目前网上的常见博客均为旧版的jave的转码jar包,新版的jar包已经更新到了2.x的版本,在2.x的版本中,已经由部分API与之前的。在查看源码后发现,该转码包的原理大致为将一个编码文件复制到本地,然后使用该文件进行转码,并且该转码与操作系统有关,只支持windows 和 mac ,并且不支持mac os x,原因为在使用mac os x进行执行转码时,会出现无法识别该操作系统导致的空指针异常问题。
3.采用 ffmpeg 进行转码
需要将文件由客户端先发送到服务端,然后服务端存储到本地,再在本地执行ffmepg脚本文件进行转码,转码后将文件读取到服务端内存,发送给客户端。
4.采用网易云对象存储转码
可以将文件传输到网易云对象存储,然后调用指定接口,进行转码并下载转码后的文件。
二、采用 ffmpeg 进行转码
public static final String AMR_TO_MP3_COMMAND = "ffmpeg -i {0}.amr {1}.mp3&#