
现在有个需求是: 需要将含有两个 channel 的 wav 文件转为两个单声道文件。使用 ffmpeg 是 ok 的。类似这种命令。
ffmpeg -i test.wav -map_channel 0.0.0 left.wav -map_channel 0.0.1 right.wav
类似 https://trac.ffmpeg.org/wiki/AudioChannelManipulation
但是在 java 里面不知道如何实现,也查了几种方式:
有没有其他方式实现了,没有过多接触过音频处理相关资料
1 fgodt 2019 年 9 月 3 日 via Android 看下 wav 格式就行了,标准的 wav 就解个容器而已 |
3 cigarzh 2019 年 9 月 3 日 via iPhone 有兴趣就自己造轮子,没兴趣就找个轮子调一调 |
4 FrankHB 2019 年 9 月 3 日 …… JNI 调用了啥,比命令行调用开销还大? |
7 cigarzh 2019 年 9 月 3 日 via iPhone @beryl #5 介不一找一大堆么 https://github.com/sintrb/WaveAccess/ |
8 luozic 2019 年 9 月 4 日 via iPhone ffmpeg 应该有包装好的啊,GitHub 上搜一下。 |
9 MMMMMMMMMMMMMMMM 2019 年 9 月 4 日 如果场景面向 web 可以在 client 浏览器端跑 js 版的 ffmpeg 来转 |
10 lloovve 2019 年 9 月 4 日 via iPhone Pcm 混音啊,简单 |
13 lff0305 2019 年 9 月 4 日 老早以前做过类似的 记得 WAV 就是 PCM 加上自己的文件头 楼主可以看下 WAV 的格式,记得挺简单的 要么就是 JNI / JNA |
14 wnpllrzodiac 2019 年 9 月 4 日 via Android wav 自己处理下,应该很快。私信我有偿帮搞下 |
15 jamesliu96 2019 年 9 月 4 日 via Android 用 sox 和用 ffmpeg 都行,纯 pcm 的话原生都行,用第三方的话调用没问题啊,带个二进制包就行,不用“需要每台机器都要安装”的,很多视频网站都在采用这种解决方案 |
16 kitten23 2019 年 9 月 4 日 正在重写 jcodec 的路过…… ffmpeg 就是最好的轮子。如果有重来的机会,我肯定写 jni 调 ffmepg 而不是找 jcodec 这种方的轮子。 你要自己造轮子的话,wav 头拿掉,pcm 数据读出来然后手动分一下写 2 个 wav 文件就行了 |