作者: K歌之王 2009 - 12 -16 转载请注明出处,谢谢。
本文介绍如何快速的搭建符合3GPP标准的流媒体服务器,并能用手机内置的播放器(如realplayer)进行点播。对目前主流的REAL Helix和APPLE darwin分别介绍。
1. HELIX Streaming SERVER
先介绍REAL的helix streaming server,real提供了从采集编码(helix mobile producer),流媒体播发(helix streaming server),到客户端播放(RealPlayer)的一整套方案, 可以使你很方便地搭建出一个手机流媒体服务器应用平台,而且支持的格式很全(包括Real Media , Windows Media, QuickTime和MPEG4)。但由于license昂贵,不开源,所以helix对我们一般开发者而已 恐怕只适合做DEMO而已。 但这里还是简单介绍一下如何搭建HELIX服务器。
步骤1: 下载 Helix server 11 for Windows。 对应的客户端版本是RealPlayer 11. 安装程序。
注意: 默认的RTSP端口是554, 默认的HTTP端口是80, 注意RTSP 554端口可能导致基于UDP的RTP包无法穿过运营商的防火墙。 RTSP PORT可以改大一些。 而SERVER如果服务器上运行了360安全卫士/迅雷等程序, 用户可能无法访问HELIX SERVER的HTTP服务,那可以把HTTP端口改成8080。
步骤2: 启动HELIX SERVER, 把你要播发的文件拷贝到C:/Program Files/Real/Helix Server/Content路径下。 在浏览器输入rtsp://localhost/mpg4video.mp4 会启动RealPlayer播放。
步骤3: 如果你的电脑在内网的话, 需要设置静态端口映射或者DMZ(把本机完全暴露给广域网 以实现双向通信)。 当然你需要有路由器的管理员帐号:)。
步骤4: 路由器的外网IP经常变动 给客户端带来不便。 可以注册花生壳的域名服务, 在路由器的“动态DNS”里绑定你的花生壳帐号,这样你就可以使用类似lius1984.gicp.net这样的二级域名。
步骤5: 使用手机上自带的客户端进行点播, 输入类似rtsp://lius1984.gicp.net/test.3gp 这样的地址。 比如nokia内置的Realplayer, 如果wm手机 可以安装pvplayer 也可以观看。
注意事项:
1. 如果Realplayer无法连接或者提示“带宽不足”,说明你要点播的文件规格过高,无法在GPRS/EDGE下正常传输。 可以把文件的码率和帧率降低, 降到可以播放为止。
2. 如果提示“MPEG-4 在被服务器发布以前必须被添加线索”, 说明测试文件没有被"流化"(建立索引), 解决方法是下载MP4BOX, 输入命令行 mp4box test.3gp -hint
2. Darwin Streaming SERVER
Darwin是由APPLE推出的开源流媒体服务器,可扩展性好。 下面转载一个博友的文章,对于DARWIN的搭建和使用他已经介绍的十分详细。他的博客地址:http://huacnlee.com/blog/deploy-mobile-streaming-server-by-dss
最近研究了一下手机流媒体服务器的搭建,目的是实现通过3G手机看在线视频。
开始的时候研究了一下 Tudou手机版 ,可它哪并没有实现在线播放,因为视频地址是 http 协议的。参看了许多文章,终于了解到要用 RTSP 、MMS 这类。
RTSP 有一个来自 Apple 的开源项目:Darwin Streaming Server (DSS)
DSS 是跨平台的软件,可以在Linux、Mac OSX 或 Windows 等上面部署。
研究这个东西费了我好大的劲,一开始不知道视频还有专门针对流媒体的,以为只要用 MediaCoder 将视频转换成合适的格式,如:MPEG4 + AAC + MP4 / MPEG4 + AAC + 3GP 就可以放了,反复放到服务器上面去测试,VLC 和 QuickTime 都没法打开。于是又用工具打开 DSS 自带的几个示例视频看它们的格式,反复转换试不同的视频和音频编码和外壳,还是不行...郁闷死我了
在 DSS 的邮件列表里面找了找相关的文章,发现有讲好像要用特别的工具对视频 hint 一下,然后就可以在 RTSP 上面用了,说可以用 QuickTime Pro 或 VLC 来转换,我用 VLC 试了一下,文件菜单一个叫“流(s)”的功能,但试了还是不行,没看到文件有变动过。
于是再沿着 Hint 关键词在 Google 上面找文章,找到了 Nokia 论坛里面,看到这篇文章:http://discussion.forum.nokia.com/forum/showthread.php?t=125540 里面有说可以使用 Mp4box 对视频进行 hint
于是我在 http://www.videohelp.com/tools/mp4box 这里下载到了mp4box (不用下载GUI的,直接用命令行操作就好了,只用一条命名)
下载到到解压出后会有个叫 mp4box.exe ,用它在命令行下面运行
C:/Program Files/Darwin Streaming Server/Movies>mp4box mymovie.mp4 -hint
出现结果:
Hinting file with Path-MTU 1450 Bytes
Hinting track ID 201 - Type "mp4v:mp4v" (MP4V-ES) - BW 33 kbps
Hinting track ID 101 - Type "mp4a:mp4a" (mpeg4-generic) - BW 64 kbps
Saving mymovie.mp4: 0.500 secs Interleaving
流媒体视频就转换好了,现在文件大小就会有变动,变大了一些。
然后,再用 VLC 或 QuickTime 打开 rtsp://127.0.0.1:554/mymovie.mp4 试试能否播放吧!如果你有3G手机,可以直接用手机打开这个地址试一下。