【问题标题】:Changing sample rate of mp3 files更改 mp3 文件的采样率
【发布时间】:2018-08-25 00:21:45
【问题描述】:

我有大量 mp3 文件,这些文件的采样率不适合我想在其中使用的外部硬件。有没有办法一次性更改它们,而不是通过大胆的方式逐个文件?

【问题讨论】:

    标签: audio mp3 sample-rate


    【解决方案1】:

    您应该提及您正在使用的操作系统...这适用于 linux

    sudo apt install libav-tools  #  install needed tool
    

    // 显示一个文件的内容

    avprobe mysong.mp3 
    

    它的输出底部说

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

    好的,它是一个正常的 CD 质量 44.1kHz,所以让采样率降低一半到 22050kHz

    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
    

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

    #!/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
    

    这应该可以让您启动并运行...它对于没有空格的歌曲名称运行良好...代码在处理文件名中的空格时涉及更多...如果您有空格,请这么说,我会修改代码...它通过在文件名末尾添加 _22k 来剪切每个输出文件

    input   songhere.mp3
    output  songhere_22k.mp3
    

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

    【讨论】:

      猜你喜欢
      • 2015-10-05
      • 1970-01-01
      • 2017-11-05
      • 2013-10-25
      • 2015-07-13
      • 2012-06-25
      • 1970-01-01
      • 1970-01-01
      • 2011-07-05
      相关资源
      最近更新 更多