我正在编写一个应用程序来操作音频,我首先需要将文件(wav、MP3 等)转换为原始数据(样本显示为浮点数)。
我在 cmd 中使用 ffmpeg:
ffmpeg -i test.wav -f s16le -acodec pcm_s16le output.dat
Run Code Online (Sandbox Code Playgroud)
样本如何在 output.dat文件中?我知道一个样本在 S16 下需要两个字节,双通道意味着它存储为 L1 R1 L2 R2 ...但是这个文件是否带有帧演示或 dat 文件中的所有字节都是样本值?两种方法转换后的test.wav文件大小不一样。一个是通过libav使用ffmpeg网站上的示例代码,另一个是上面提到的,直接在cmd中使用ffmpeg.exe,前一种方法给我的文件大小略小。当我发现有人说pcm使用框架演示时我很困惑(每帧 2048 个样本)。
我实际上不需要任何代码,但希望有人可以详细解释原始 pcm 格式。
非常感谢