更改 mp3 文件的采样率
Posted
技术标签:
【中文标题】更改 mp3 文件的采样率【英文标题】:Changing sample rate of mp3 files 【发布时间】:2018-08-25 00:21:45 【问题描述】:我有大量 mp3 文件,这些文件的采样率不适合我想在其中使用的外部硬件。有没有办法一次性更改它们,而不是通过大胆的方式逐个文件?
【问题讨论】:
【参考方案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
很容易给它一个不同的输出目录
【讨论】:
以上是关于更改 mp3 文件的采样率的主要内容,如果未能解决你的问题,请参考以下文章
使用 NAudio/Lame 将 .wav 转换为 mp3 时如何设置通道和采样率?
更改 wav 文件的采样率和比特率而不会遇到打开文件的问题?