2017-11-22 18 views
0

나는 mp3 파일에서 raw pcm 파일로 디코딩하거나 원시 pcm에서 mp3로 인코딩하는 데 절름발이를 사용했습니다.LAME - 오디오 파일 디코딩 및 인코딩

질문은 하나의 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 

몰래 리플레이가 지속적으로 증가하고 있지만 MP3 인코딩 방법에 대한 지식이 없다, 그래서 나는 이것이 인 경우 확실하지 않다 :

일부 로그는 다음과 같이, 그들은 모두 재생 이득을 제외하고 동일된다 이유.

답변

2

MP3는 손실 코덱입니다. 다른 세대를 인코딩 할 때마다 품질이 떨어집니다.

+0

다시 말해서 돌이킬 수 없다는 뜻입니까? @Brad – Feng

+0

@Feng 그렇습니다. 손실 코덱의 특성입니다. 어쨌든 왜 이러는거야? – Brad

+0

이전에는 모르겠지만 오디오 파일이 원래 있던 위치로 돌아갈 수없는 이유가 궁금해서이 테스트를 통해 내가 옳은지 여부를 확인했습니다. 아무튼 감사 해요. @ 브래드 – Feng