
OGG格式转换WMA到流流
Nahmd,
我需要解决一个WMA流在飞行“,使之成为OGG格式流。
在一个可执行程序的路径脚本的地方抓起,在Web服务器和PHP脚本在Icecast2装入添加配置。 不同的路径必须适应可能。
不幸的是,目前只有听一Internerradio该流。 其实,它可以创建许多,但不幸的是结束了第一次,它不再接收流,转换 ![]()
现在需要的是以下内容:
- mplayer的
- icecast2
- oggenc
- oggfwd
- PHP的
该脚本转换
- #/ bin / sh的
- $PATH :/usr/ local /bin 出口 的PATH = $ PATH中:修改 / usr / local / bin中
- 水系=“ 彩信:/ / your.radio.fm / stream.wma”
- 设置娥
- 客户= 0
- "$2" != "" ] ; then 如果 [“$ 2”!=“”] 然后
- 客户= $ 2
- 科幻
- "$3" != "" ] 如果 [“$ 3”!=“”]
- 然后
- 水系= 3元
- 科幻
- echo $STREAM | md5sum | cut -d ' ' -f1 ) MD5的= $(回声 $水系 |的md5sum | 削减三维 '' - F1)的
- 临时= / tmp目录/ chumbybridge / $的MD5
- ] || mkdir -p $TEMP [三维 $ 的TEMP] | | mkdir - p $为的TEMP
- /mplayer.fifo FIFO_MPLAYER = $的TEMP / mplayer.fifo
- #FIFO_OGGENC = $的TEMP / oggenc.fifo
- /mplayer.log LOG_MPLAYER = $的TEMP / mplayer.log
- /oggenc.log LOG_OGGENC = $的TEMP / oggenc.log
- /oggfwd.log LOG_OGGFWD = $的TEMP / oggfwd.log
- /mplayer.pid PID_MPLAYER = $的TEMP / mplayer.pid
- /oggfwd.pid PID_OGGFWD = $的TEMP / oggfwd.pid
- "$1" = "start" ] 如果 [“$ 1”=“开始”]
- 然后
- >> $LOG_MPLAYER 回声 “$连接客户端”>> $ LOG_MPLAYER
- ] && echo "Run $0 stop first!" && exit [- E $的FIFO_MPLAYER]&& 回声 “$ 0停止运行第一!”&& 退出
- || exit 1 mkfifo $ FIFO_MPLAYER | | 1号 出口
- "$FIFO_MPLAYER" >> $LOG_MPLAYER 2 >& 1 < /dev/null & mplayer的-非缓存$流安静敖中成药: 文件=“$ FIFO_MPLAYER”>> $ LOG_MPLAYER 2>&1 </ dev / null的&
- 回声 $! > $ PID_MPLAYER
- 睡眠 0.3
- -o – 2 >> $LOG_OGGENC | oggfwd localhost 8000 hackme /radio1.ogg >> $LOG_OGGFWD 2 >& 1 & oggenc Q值Q值1美元 FIFO_MPLAYER邻 - 2>> $ LOG_OGGENC | oggfwd本地主机8000 hackme / radio1.ogg>> $ LOG_OGGFWD 2>&1&
- 回声 $! > $ PID_OGGFWD
- 睡眠 0.2
- "$1" = "stop" ] elif的 [“$ 1”=“停止”]
- 然后
- 回声 “>>>停chumstream球员<<<”
- cat $PID_MPLAYER ) 2 > /dev/null && \ 杀$(猫 $ PID_MPLAYER)2> / dev / null的&\
- cat $PID_OGGFWD ) 2 > /dev/null && \ 杀$(猫 $ PID_OGGFWD)2> / dev / null的&\
- || \ 室射频 $的TEMP | | \
- 回声 “不能停止所有进程,请$看看TEMP和手动修复”
- 其他
- 回声 “用法:”
- 回声 “$ 0开始[的client_id] [网址]”
- 回声 “$ 0一站式”
- 科幻
该icecast配置
- <mount>
- <mount-name> / radio.ogg </ 芒名>
- <max-listeners> 10 </ 最大,听众>
- <burst-size> 65 536 </ 突发大小>
- <hidden> 0 </ 隐藏>
- > <身份 类型 = "url">
- value = "http://localhost/radio.php" /> <option 名称 = 值 = "mount_add" />“http://localhost/radio.php”
- value = "http://localhost/radio.php" /> <option 名称 = 值 = "mount_remove" />“http://localhost/radio.php”
- value = "http://localhost/radio.php" /> <option 名称 = 值 = "listener_add" />“http://localhost/radio.php”
- value = "http://localhost/radio.php" /> <option 名称 = 值 = "listener_remove" />“http://localhost/radio.php”
- </ 认证>
- <Mount />
PHP的启动/停止部分
- 腓
- $_POST [ "action" ] == 'listener_add' ) { 如果 (变量$ _POST [“行动”] =='listener_add')(
- ( "/usr/local/bin/chumstream.sh start " . $_POST [ "client" ] , $result ) ; $ Tmp文件 = Exec的 (“/ USR的/ local / bin中/开始chumstream.sh。 的$ _POST [”客户 “],$结果);
- ( $_POST [ "action" ] == 'listener_remove' ) { ) 否则,如果 (变量$ _POST [“行动”] =='listener_remove')(
- ( "/usr/local/bin/chumstream.sh stop " . $_POST [ "client" ] , $result ) ; $ Tmp文件 = Exec的 (“/ USR的/ local / bin中/ chumstream.sh停止”。 变量$ _POST [“客户”],$ 结果);
- )
- ?>



























