这个实例实施起来十分简单,只需要一台树莓派+一根母头杜邦线就行了。
我们使用的是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要小得多。
发表回复/Leave a Reply