改变mp3文件的采样率

时间:2018-03-16 02:11:57

标签: audio mp3 sample-rate

我有大量的mp3文件对我想要使用它们的外部硬件的采样率不正确。有没有办法一次性更改它们而不是通过大胆文件?

1 个答案:

答案 0 :(得分:0)

你应该提一下你所使用的操作系统......这适用于linux

.Join()

//显示我们对一个文件的内容

sudo apt install libav-tools  #  install needed tool
输出的底部是

avprobe mysong.mp3 

确定它的正常CD质量为44.1kHz,因此可以将采样率降低一半到22050 kHz

Duration: 00:00:01.65, start: 0.000000, bitrate: 192 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, mono, s16p, 192 kb/s

验证我们现在拥有的东西

avconv -i mysong.mp3   -ar 22050  mysong_22k.mp3 

到目前为止一切顺利,现在让我们将其包装起来查看一个目录中的所有文件

avprobe mysong_22k.mp3 

Duration: 00:00:01.70, start: 0.050113, bitrate: 33 kb/s
Stream #0:0: Audio: mp3, 22050 Hz, mono, s16p, 32 kb/s

这应该让你起步并运行...它的运行时没有空格的歌曲名称...代码更多涉及处理文件名中的空格...如果你有空格这么说我就会这样做修改代码...它通过在文件名末尾添加_22k来剪切每个输出文件,所以

#!/bin/bash

for curr_song in $( ls *mp3 ); do

    echo
    echo "current specs on song -->${curr_song}<--"
    echo

    curr_song_base_name=${curr_song%.*}

    echo curr_song_base_name $curr_song_base_name

    curr_new_output=${curr_song_base_name}_22k.mp3

    echo "avprobe  $curr_song "
          avprobe "$curr_song" 
    echo

    avconv -i ${curr_song}  -ar 22050  ${curr_new_output}

    echo now confirm it worked 
    echo

    avprobe ${curr_new_output}

done

很容易给它一个不同的输出目录