QR码

今日出版的Blogosphere由muhgatus

Nahmd,

QR码是一些伟大的事情,现在来这里欣赏。 这里有手机软件,为移动阅读它们!

OGG格式转换WMA到流流

发布时间7 2010年3月在电脑Linux操作系统PHP的编程的muhgatus

Nahmd,
我需要解决一个WMA流在飞行“,使之成为OGG格式流。

在一个可执行程序的路径脚本的地方抓起,在Web服务器和PHP脚本在Icecast2装入添加配置。 不同的路径必须适应可能。

不幸的是,目前只有听一Internerradio该流。 其实,它可以创建许多,但不幸的是结束了第一次,它不再接收流,转换 ;)

现在需要的是以下内容:

  • mplayer的
  • icecast2
  • oggenc
  • oggfwd
  • PHP的

该脚本转换

  1. #/ bin / sh的
  2. $PATH :/usr/ local /bin 出口 的PATH = $ PATH中:修改 / usr / local / bin中
  3. 水系=“ 彩信:/ / your.radio.fm / stream.wma”
  4. 设置娥
  5. 客户= 0
  6. "$2" != "" ] ; then 如果 [“$ 2”!=“”] 然后
  7. 客户= $ 2
  8. 科幻
  9. "$3" != "" ] 如果 [“$ 3”!=“”]
  10. 然后
  11. 水系= 3元
  12. 科幻
  13. echo $STREAM | md5sum | cut -d ' ' -f1 ) MD5的= $(回声 $水系 |的md5sum | 削减三维 '' - F1)的
  14. 临时= / tmp目录/ chumbybridge / $的MD5
  15. ] || mkdir -p $TEMP [三维 $ 的TEMP] | | mkdir - p $为的TEMP
  16. /mplayer.fifo FIFO_MPLAYER = $的TEMP / mplayer.fifo
  17. #FIFO_OGGENC = $的TEMP / oggenc.fifo
  18. /mplayer.log LOG_MPLAYER = $的TEMP / mplayer.log
  19. /oggenc.log LOG_OGGENC = $的TEMP / oggenc.log
  20. /oggfwd.log LOG_OGGFWD = $的TEMP / oggfwd.log
  21. /mplayer.pid PID_MPLAYER = $的TEMP / mplayer.pid
  22. /oggfwd.pid PID_OGGFWD = $的TEMP / oggfwd.pid
  23. "$1" = "start" ] 如果 [“$ 1”=“开始”]
  24. 然后
  25. >> $LOG_MPLAYER 回声 “$连接客户端”>> $ LOG_MPLAYER
  26. ] && echo "Run $0 stop first!" && exit [- E $的FIFO_MPLAYER]&& 回声 “$ 0停止运行第一!”&& 退出
  27. || exit 1 mkfifo $ FIFO_MPLAYER | | 1号 出口
  28. "$FIFO_MPLAYER" >> $LOG_MPLAYER 2 >& 1 < /dev/null & mplayer的-非缓存$流安静敖中成药: 文件=“$ FIFO_MPLAYER”>> $ LOG_MPLAYER 2>&1 </ dev / null的&
  29. 回声 $! > $ PID_MPLAYER
  30. 睡眠 0.3
  31. -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&
  32. 回声 $! > $ PID_OGGFWD
  33. 睡眠 0.2
  34. "$1" = "stop" ] elif的 [“$ 1”=“停止”]
  35. 然后
  36. 回声 “>>>停chumstream球员<<<”
  37. cat $PID_MPLAYER ) 2 > /dev/null && \ $(猫 $ PID_MPLAYER)2> / dev / null的&\
  38. cat $PID_OGGFWD ) 2 > /dev/null && \ $(猫 $ PID_OGGFWD)2> / dev / null的&\
  39. || \ 室射频 $的TEMP | | \
  40. 回声 “不能停止所有进程,请$看看TEMP和手动修复”
  41. 其他
  42. 回声 “用法:”
  43. 回声 “$ 0开始[的client_id] [网址]”
  44. 回声 “$ 0一站式”
  45. 科幻

该icecast配置

  1. <mount>
  2. <mount-name> / radio.ogg </ 芒名>
  3. <max-listeners> 10 </ 最大,听众>
  4. <burst-size> 65 536 </ 突发大小>
  5. <hidden> 0 </ 隐藏>
  6. > <身份 类型 = "url">
  7. value = "http://localhost/radio.php" /> <option 名称 = = "mount_add" />“http://localhost/radio.php”
  8. value = "http://localhost/radio.php" /> <option 名称 = = "mount_remove" />“http://localhost/radio.php”
  9. value = "http://localhost/radio.php" /> <option 名称 = = "listener_add" />“http://localhost/radio.php”
  10. value = "http://localhost/radio.php" /> <option 名称 = = "listener_remove" />“http://localhost/radio.php”
  11. </ 认证>
  12. <Mount />

PHP的启动/停止部分

  1. $_POST [ "action" ] == 'listener_add' ) { 如果 (变量$ _POST [“行动”] =='listener_add')(
  2. ( "/usr/local/bin/chumstream.sh start " . $_POST [ "client" ] , $result ) ; $ Tmp文件 = Exec的 (“/ USR的/ local / bin中/开始chumstream.sh。 的$ _POST [”客户 “],$结果);
  3. ( $_POST [ "action" ] == 'listener_remove' ) { 否则,如果 (变量$ _POST [“行动”] =='listener_remove')(
  4. ( "/usr/local/bin/chumstream.sh stop " . $_POST [ "client" ] , $result ) ; $ Tmp文件 = Exec的 (“/ USR的/ local / bin中/ chumstream.sh停止”。 变量$ _POST [“客户”],$ 结果);
  5. 'icecast-auth-user: 1′ ) ; 标题 ('icecast - auth的用户:1');
  6. 'icecast-auth-message: OK' ) ; 标题 ('icecast - auth的报文:行');
  7. ?>

debian.r4w.de(更新)

发布时间7 2010年3月在电脑Linux操作系统PHP的编程Python中的muhgatus

Nahmd,

再次新套件 :)

  • libming1_0.4.3 - 1_amd64.deb的
  • libming - dev_0.4.3 - 1_amd64.deb的
  • libming - util_0.4.3 - 1_amd64.deb的
  • 的php5 - ming_0.4.3 - 1_amd64.deb的
  • 蟒蛇- ming_0.4.3 - 1_amd64.deb的
  • libming1_0.4.3 - 1_i386.deb的
  • libming - dev_0.4.3 - 1_i386.deb的
  • libming - util_0.4.3 - 1_i386.deb的
  • 的php5 - ming_0.4.3 - 1_i386.deb的
  • 蟒蛇- ming_0.4.3 - 1_i386.deb的
  • 明字体- dejavu_0.4.3 - 1_all.deb的
  • 明字体- opensymbol_0.4.3 - 1_all.deb的