用树莓派做FM主机,是一个很老的项目.网上资料也比较多.由于在做一个项目中,Pi附加的迷你音箱音量有限,所以考虑一种附加形式.把这个老项目翻出来.
网上基本有两种: git clone https://github.com/ChristopheJacquet/PiFmRds.git 和 git clone https://github.com/markondej/fm_transmitter
我采用了第一种,发现的问题是:它总是一直播放个不停.翻了网络,用以下办法解决: cat music.wav | sudo ./pi_fm_rds -audio -
以下为摘抄记录:
sudo apt-get install libsndfile1-dev
sudo apt-get install libsox-fmt-mp3
git clone https://github.com/ChristopheJacquet/PiFmRds.git
cd PiFmRds/src
make clean
make
sudo ./pi_fm_rds -audio sound.wav
sudo ./pi_fm_rds -freq 107.9 -audio sound.wav
sox -t mp3 Music.mp3 -t wav - | sudo ./pi_fm_rds -audio -
第二个项目不存在重复播放,但它似乎不支持ogg.
-audio指定一个音频文件作为音频播放。如果提供立体声文件,则Pi-FM-RDS将产生FM立体声信号。例如:-audio sound.wav。支持的格式取决于libsndfile。这包括WAV和Ogg / Vorbis(等),但不包括MP3。
-pi指定RDS广播的PI代码。4个十六进制数字。例如:-pi FFFF。
-ps指定RDS广播的电台名称(节目服务名称,PS)。限制:8个字符。例如:-ps RASP-PI。
-rt指定要传输的无线文本(RT)。限制:64个字符。例如:-rt ‘Hello, world!’。
-ctl 指定一个命名管道(FIFO)作为控制通道在运行时改变PS和RT。
-ppm 以百万分率(ppm)为单位指定树莓派的振荡器误差。
一个我自己的应用:眼镜看视频,FM听音频
因为眼镜虽是HDMI,但只有视频输出,音频听能通过耳机孔输出,或者它自动会到HDMI。
ffmpeg -i 20.mp4 -acodec pcm_s16le -f wav -ac 1 pipe: | sudo /home/pi/tools/fm -audio - -freq 87.50
将ffmpeg输出音频到标准输出端,fm在标准输入端来接收。
另外一个线程播放视频:ffplay 20.mp4 -an