首页

June 23, 2005

推荐看《头文字D》

周杰伦的处女作,虽然他拍的傻呼呼的,但有黄秋生,陈冠希等老牌明星支撑,还是比较过瘾。
精彩之处还是大家去影院看吧,绝对是今年暑期的最值得一看的大片

头文字D.jpg

由 frank 发表于 10:14 PM | 回复 (0) | 引用

June 9, 2005

[转]漫谈 Shoutcast 的 on-demand 功能以及其他

发信人: ioio (有人踢球吗), 信区: Broadcast
标 题: 漫谈 Shoutcast 的 on-demand 功能以及其他
发信站: 日月光华 (2002年06月23日23:41:59 星期天), 站内信件

终于开版了,写一篇技术类的文章,用以庆贺。本来想写一篇关于 on demand 的文章的,可是后来跑题了,还望大家谅解。文中涉及技术方面的东西,如果有错,还请多多指正。

复旦的多数 DJ 是用 shoutcast 和 dsp 的 winamp 插件进行广播的,先说说两者分别有什么作用,以免混淆。Shoutcast server 是一个用来网络广播的服务器软件,在服务器端执行这个 server 程序,就能够通过 http 协议传送流媒体,不需要 IIS 支持,现在看来好像还只支持 mp3 流。Dsp 是 winamp 的一种插件,通过它,可以向shoutcast server 传送流文件,使得 shoutcast 有输入流。当听众通过网络连接到 shoutcast server 时,shoutcast 就会把从 dsp 传过来的流经过缓冲传给听众的客户端软件,通常是 winamp。打个比方:shoutcast 实际上是广播的发射台,dsp 则是一个寄生在 winamp 上工作的 studio。所以说,即使没有 dsp 插件,只要找到合适的
winamp 插件甚至是独立的程序,都可以通过 shoutcast 进行广播的。

On demand 服务从某种角度上说,是广播的一种延伸,和 ftp 倒差不多。Shoutcast 本身也带有这个功能。注意这个“本身”,也就是说,不需要别的任何插件软件,shoutcast 就能实现最最基本的 ondemand 服务了。但是这个功能隐藏的实在太好了,以致我尝试了许多次才算成功吧。同时,个个版本的 shoutcast 可能不同,我使用的是
v1.8.9。

首先,打开你的 shoutcast 配置文件,默认是 sc_serv.ini,找到 ContentDir 一项。这是服务器端存放被点播的曲目的地方,就像前面所说,shoutcast 只支持 mp3 流,所以,你也只能把 mp3 文件放在这里,其他格式一律不支持:(。当然,你也可以更改它的位置,但是不要把文件放到你指定的 ContentDir 的子目录里面,至少这个
版本的 shoutcast 是不会去找子目录里面的 mp3 的。然后是两个注意事项:第一,看到 ContentDir 前面的那个分号了吗?那是注释符,如果要让 shoutcast 开启 on demand 服务的话,一定要去掉。第二,在这里填写的任何目录名,后面都要跟一个""或
者"/"来结束它,也就是说,默认的 sc_serv.ini 里面的写法有误,已经去掉分好的你还必须在最后加一个"/"号。不过,使用""也可以的(所有的都一致就可以了)。默认的 sc_serv.ini 里面的ContentDir 采用的是和 server 的相对路径,建议改为绝对路径为好。好了,重新启动 shoutcast 使新的设置生效,别忘了你在ContentDir 里面放了些什么名字的 mp3 文件,下面开始点播了。

细心的你会发现,在 shoutcast 的安装目录下,已经有了一个content 目录了,里面还放了一首 mp3,叫 scpromo.mp3,我们拿它开刀。当然,你指定的 content 目录应该是这个默认的哦,还有后面的"/"别忘了噢。点播有两种我认为是非常愚蠢的方法:
1. 在你的浏览器的地址栏里面输入
“http://ShoutcastServerIp:ItsPort/content/SongName.pls ,这个
例子中 dj 们自己可以测试:
“http://localhost:8000/content/scpromo.pls 。
2. 直接在 winamp 里面打开地址:
“http://ShoutcastServerIp:ItsPort/content/SongName.mp3 ,这个
例子中 dj 们自己可以测试:
“http://localhost:8000/content/scpromo.mp3 。
hehe,听到 nullsoft 特有的声音了吗?BTW,点播时,流格式的比特率是和 mp3 源相同的。

前面一种方法适合在网页中,dj 们把他们接受点播的歌曲一个一个写好那些地址的链接,以便听众可以点链接点播。Shoutcast 自己提供的那个网页服务里面,你是找不到这些链接的,所以,如果需要的话,得另外开一个 web 服务才可以为大众使用。即使这样,还要手工的输入各个歌曲的名字才可以。可别输错哦,错了 shoutcast 就找不到歌曲了。当然,聪明的你可以通过一些脚本程序来简化链接的更新工作,我对这方面知之甚少,还请高手指点了。

后面一种方法似乎是一种变通,因为 dj 们可以制作一个这种格式的 playlist,就是把所有的可点播的歌曲,以这种格式的 url 列在 playlist 中,放到 ftp 上面供听众下载,听众用 winamp 打开后,就可以在 playlist 窗口中,找到自己需要的歌曲,并双击打开了。好像比前一种方法简单点。

我不知道,除了这两种方法外,还有什么方法可以更好的利用shoutcast server 的 on demand 服务了。前面 ninesky 提到的一个winamp 的点歌系统插件,通过它网页的介绍,应该是一个可以实现点播功能的 server,刚才我安装了以后用 ie 打开那个地址,没有找到网页。不知道这个 plugin 该怎么用。在 winamp 网站的论坛上,类似功能的插件好像还不少,还望有心人多多留意了。

On demand 和 live 广播的区别就是 uni-cast 和 multi-cast
区别,前者所占用服务器端的资源更高,有条件的服务器才推荐开通。从音质上说,live 广播是要通过 dsp 再编码的,所以即使是用相同 bitrate 来播放 mp3 源,音质上也是要大很大的折扣的;on demand 就是直接将 mp3 文件的数据传送到用户端,因此可以达到mp3 源相同的音质。

关于网络广播的音质问题,已经不再局限于 shoutcast 上了,常用的广播还有 mms (windows media audio stream), real audio。个人认为,在 128kbps 的传输率上,mms 比 shoutcast + dsp 的mp3 质量高许多,其实你用力听,应该也可以听得出来的。可能是对服务器端来说,mms 流的播出对 cpu 要求比较高,所以现在校内使用
的人不多吧。但只要你的 cpu 达到 700MHz 频率以上的话,mms 是绝对的推荐。建议时机成熟时,斑竹开展一次编码方式大比拚:)

由 frank 发表于 10:46 PM | 回复 (0) | 引用