【教程】在树莓派上使用mp3文件发送立体声FM广播





这个实例实施起来十分简单,只需要一台树莓派+一根母头杜邦线就行了。

我们使用的是pifm这个程序。pifm本身是个老物了,也有各种各样的缺点,比如只支持wav文件并且对wav文件的要求太苛刻等等。那么怎么去改善这些问题呢?

首先下载程序:

http://omattos.com/pifm.tar.gz

在终端中输入:

sudo ./pifm sound.wav 100.6

后面的100.6是FM的频率,如果不加这个参数的化默认是103.3(好像是吧)…

然后将杜邦线插入GPIO4 (也就是pin7)上

把收音机打开调到合适的频率,就可以听到RPi发送的FM广播了。信号质量还不错,在家隔着两面墙声音仍然很清晰。但是不要试图去和广播电台抢频段,那样的话虽然如果距离足够近可以造成很有限的干扰,但是RPi的FM信号会几乎完全被盖掉,毕竟电台的发射功率可以完秒你十条街。

 

好了好了上面的内容在网上随便都可以搜索到,下面的才是重点:

由于pifm程序本身只支持wav文件,而且对wav的要求是16 bit 采样率22050Hz 单声道,如果转码的参数没设置好就会出现严重的失真。而且经过转码后的音频文件效果极差。那么我们来想办法改善这个问题。

新版的pifm程序本身做了改进,使其可以播放立体声的wav文件:

sudo ./pifm sound.wav 103.3 22050 stereo

22050代表采样率,stereo代表立体声。

还有一种方法是使用管道命令,也就是使用mpg123或者ffmpeg之类的解码器对mp3文件进行解码,然后传送给pifm播放。

ffmpeg -i sound.mp3 -f s16le -ar 22.05k -ac 1 – | sudo ./pifm –

或者:

mpg123 -m -C -q -s sound.mp3 | sudo pifm – 98.5 44100

这样做的好处在于你可以直接播放常见的mp3文件而不需要进行费力不讨好的转码工作,并且mp3文件比wav要小得多。




Posted

in

by

Comments

发表回复/Leave a Reply

您的电子邮箱地址不会被公开。/Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.