这几天在G1上看3g.youku.com,对它的视频流播放很好奇,在电脑上看了3g.youku.com的视频,发现是用rtsp协议播放的,于是自己打算用 apple 的Darwin 加个流媒体服务器,用于手机视频测试
下面探讨一下基于Darwin Streaming Server的RTSP服务解决方案
服务器环境是redhat as4,服务器本来是一台流媒体服务器,上面已经部署了ffmpeg和mencoder等转换工具
首先,下载Darwin Streamin Server,安装过程参加这个文章
简单的说,就是
# wget http://developer.apple.com/opensource/server/streaming/index.html
# tar zxf DarwinStreamingSrvr5.5.5-Linux.tar.gz
# cd DarwinStreamingSrvrlinux-Linux
# ./Install
然后按提示操作,输入管理的用户名和密码,等……安装完成
嗯,安装完成会自动启动服务
可以通过访问 http://ip:1220/来进入管理界面
默认的资源文件夹在/usr/local/movies,将流媒体文件放入此目录,就可以通过 rtsp://ip/文件名 来访问了
windows下面推荐用vlc player来测试流媒体……绿色软件,啧啧,比quicktime和realplayer好多了
不是所有的视频文件都可以用Darwin来Streaming,根据FAQ,它只支持
QuickTime Movie (MOV), MPEG-4 (MP4), and 3GPP (3GP) “hinted” files.
也就是说要有hint track的视频文件.
Hint Track是QuickTime定义的一种索引轨道,我们可以认为就是索引
嗯,准备用的流媒体文件是3gp格式(aac+mp4),默认不带hint track,需要用一个工具处理,加上hint track
这个伟大又变态的工具就是mpeg4ip了,这个东西现在还有编译成功,只能用一个rpm包顶着,郁闷
从rpm安装mpeg4ip也很简单
由于网上提供的mpeg4ip的rpm包不太完整,首先你需要libmp4v2,这个本来包含在mpeg4ip源代码里面的,嗯,如果有rpm就好了,我懒得找,直接从源码编译
下载 http://resare.com/libmp4v2/dist/libmp4v2-1.5.0.1.tar.bz2, 解压,编译,安装
然后到 http://dries.ulyssis.org/apt/packages/mpeg4ip/info.html 下载 mpeg4ip-1.5.0.1-1.fc4.rf.i386.rpm,强制安装
网上说的方法无效
# rpm -ivh –nodeps –force mpeg4ip-1.5.0.1-1.fc4.rf.i386.rpm 安装提示参数错误
完工
转换视频并加索引
# ffmpeg -i sample.wmv -acodec libfaac -vcodec mpeg4 sample.3gp
# mp4creator -hint=1 sample.3gp
# mp4creator -hint=2 sample.3gp编译安装mpeg4ip一直出错, 可能是ffmpeg版本问题,过几天有空继续研究mpeg4ip的编译