ffmpeg将PCM数据文件转换为wav文件,导致数据失真(嘈杂)

时间:2014-12-12 09:58:45

标签: audio ffmpeg sox

我有以下形式的原始pcm数据:

0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0100
0000 0000 0000 0000 0000 0000 0000 0000
0000 0100 0100 0000 0000 efbf bdef bfbd
0000 efbf bdef bfbd efbf bdef bfbd efbf
bdef bfbd efbf bdef bfbd efbf bdef bfbd
efbf bdef bfbd efbf bdef bfbd 0000 efbf
bdef bfbd 0000 efbf bdef bfbd efbf bdef
bfbd 2900 efbf bdef bfbd 0000 efbf bdef
bfbd efbf bdef bfbd efbf bdef bfbd 0000

并且当我通过ffmpeg通过此命令获取噪声数据进行转换时,我想在wav文件中生成此数据:

sox -V -t raw -b 16 -e signed -r 16000 -c 1 14_32_7_187.pcm  new.wav

ffmpeg -f s16le -ar 16000 -ac 1 -i 14_32_7_187.pcm -ar 16000 -ac 1 oout.wav

同时使用嘈杂的数据。

2 个答案:

答案 0 :(得分:1)

通过执行此命令,我们可以将raw / pca数据转换为wav文件。

ffmpeg -loglevel panic -f s16le -y -ar 16000 -ac 1 -i rawFile.pcm -ar 16000 -ac 1 output.wav

答案 1 :(得分:0)

根据定义,由于没有符合的格式,任何文件都可以被视为有效的原始数据,无论是音频还是图像。它是否有意义,因为图像或声音文件取决于听众或观众,而不能通过查看原始数据来决定。

你的“原始pcm数据”可能根本不是音频数据,但它只是可能是两个火星人做爱的声音,谁知道呢?

ffmpegsox很乐意将所有文件从raw转换为.wav。如果生成的文件听起来像随机噪声,则有两种可能:

  • 这是有效的原始声音数据,但您解释错误。例如:样本采用big-endian格式,您将其解释为little-endian

  • 根本不是原始声音数据,例如.mp3甚至可执行文件。原始声音文件往往是相当随机的(你几乎永远不会在其中找到字符串“生日快乐”,但在莫扎特的安魂曲录音中你仍然很难找到那些字节)

您的文件显然属于第二类。有明显的重复模式(efbf bdef bfbd)你永远不会在真正的原始声音数据中找到(除了可能在火星交配电话中)