LAME -- 解码和编码音频文件
Posted
技术标签:
【中文标题】LAME -- 解码和编码音频文件【英文标题】:LAME -- decoding and encoding audio file 【发布时间】:2017-11-22 13:12:25 【问题描述】:我使用 lame 从 mp3 文件解码为原始 pcm 文件或从原始 pcm 编码为 mp3。
问题是当我使用一个 test.0.pcm 文件时,一遍又一遍地进行编码和解码(生成 0.mp3, 1.mp3,2.mp3, ... 和 test.1.pcm, test .2.pcm ....),虽然所有 .pcm 文件或所有 .mp3 文件的大小保持不变,但内容不同。我试听了这些音频文件,发现99.mp3的音量比1.mp3小很多。
我使用的脚本如下:
#!/bin/bash
num=$1
last=0
now=1
for((i=0;i<num;i++));do
lame -r -b 64 -s 16000 -m m test.$last.pcm $last.mp3
lame --decode --mp3input -t -m m -s 16000 $last.mp3 test.$now.pcm
last=$now
now=$[now+1]
done
原来的test.0.pcm只有1个通道,采样频率是16k。
一些日志如下,除了重放增益之外,它们都是相同的:
input: 97.mp3 (16 kHz, 1 channel, MPEG-2 Layer III)
output: test.98.pcm (16 bit, Microsoft WAVE)
skipping initial 1105 samples (encoder+decoder delay)
skipping final 47 samples (encoder padding-decoder delay)
Frame# 49/49 64 kbps
Assuming raw pcm input file
LAME 3.100 64bits (http://lame.sf.net)
polyphase lowpass filter disabled
Encoding test.98.pcm to 98.mp3
Encoding as 16 kHz single-ch MPEG-2 Layer III (4x) 64 kbps qval=3
Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
49/49 (100%)| 0:00/ 0:00| 0:00/ 0:00| 88.200x| 0:00
----------------------------------------------------------------------------------------------------------
kbps mono % long %
64.0 100.0 100.0
Writing LAME Tag...done
ReplayGain: +46.1dB
注意到ReplayGain不断增加,但我对mp3编码方法一无所知,所以我不确定是否是这个原因。
【问题讨论】:
【参考方案1】:MP3 是一种有损编解码器。每次对另一代进行编码时,您都会损失质量。
【讨论】:
所以你的意思是它是不可逆的? @布拉德 @Feng 是的,这就是有损编解码器的本质。你为什么要这样做? 我以前不知道这个,我只是好奇为什么音频文件不能回到原来的位置,我做了这个作为测试,看看我是对还是错。无论如何,谢谢你。 @布拉德以上是关于LAME -- 解码和编码音频文件的主要内容,如果未能解决你的问题,请参考以下文章