【发布时间】:2015-09-18 15:29:37
【问题描述】:
我们有几个广播电台可以在手机上播放。他们中的大多数都有 MP3 格式的流。有些使用 MMS,有些使用 RTSP。
我们有两个问题:
1) 为所有常见格式寻找解决方案。目前只有 MP3 与 madplay 兼容。 MMS 需要 mplayer,它一直在死去。 2) 即使使用 madplay,盒子也只能处理 20-30 个不同的流,因为每个流使用 2-3% 的 CPU。目前,musiconhold.conf 会在启动时启动每个 bash 脚本,所以如果说我们有 30 个频道,无论是否有人打电话来听,我们都需要拉出所有频道。
以下是我们使用的两个 bash 脚本:
疯狂游戏:
#!/bin/bash
wget -q -T 120 -O - http://example.org/stream.mp3 | /usr/local/bin/madplay -Q -o raw:- --mono -R 8000 -a -6 -
播放器
#!/bin/bash
if [ -n "`ls /tmp/pdmohpipe`" ]; then
rm -f /tmp/pdmohpipe
fi
PIPE="/tmp/pdmohpipe"
mknod $PIPE p
sleep 3
/usr/local/bin/mplayer mms://10.10.10.10/radio_online -really-quiet -quiet -ao pcm:nowaveheader,file=$PIPE -af resample=8000,channels=1,format=mulaw | cat $PIPE
rm $PIPE
也许使用 moh realtime 会有所帮助,因为它只有在有人想听的时候才会被拉出来?我知道FreeSwitch支持VLC,不知道Asterisk有没有支持?
【问题讨论】: