Darwin streaming server6.0.3安装与rtp-over-tcp

最近因为工作需要搭建一个支持MP4视频格式的流媒体服务器,查询了一些资料决定采用Apple的Darwin Streaming Server(即DSS)。选用Darwin服务器的原因是因为它是开源的而且支持多种操作系统可以很方便的编译。最新的版本是6.0.3,可以再官网下载到源代码。官方文档说支持在Linux下编译,但是因为Linux有很多不同的版本,实际编译的还需要打补丁。

一、服务器安装

1.1.安装环境:

Centos 5.XX系列

1.2源代码与补丁下载:

DarwinStreamingSrvr6.0.3-Source.tar

dss-6.0.3.patch

dss-hh-20080728-1.patch

可以到Apple官方下载,也可以在资源里下载:http://download.csdn.net/detail/a7411053/4588411

1.3安装过程

在CentOs中新建一个目录 /data/software 作为服务器的安装目录,把源代码和补丁文件用WInSCP传到该目录下。

#cd /data/software
#tar xvf DarwinStreamingSrvr6.0.3-Source.tar
#cd DarwinStreamingSrvr6.0.3-Source
#patch -p1 <dss-6.0.3.patch
#patch -p1 <dss-hh-20080728-1.patch
./Buildit install
这一步编译成功,会生成一个新目录
cd DarwinStreamingSrvr6.0.3-Linux
./Install


安装过程会提示输入你新建一个用户名和密码,这个是后面对服务器页面登陆用的账号,安装succeed之后就可以在浏览器里输入http://服务器ip:1220,(例如我的服务器ip是10.137.84.70远程管理的时在浏览器中输入http://10.137.84.70:1220),输入刚刚建立的用户密码就进入服务器的初始参数配置了,第一次安装不会配置的话可以都按默认的设置。刚安装好的服务器是默认开启的,以后需要手动打开服务器,在/usr/local/sbin/ 目录下面有个 streamingXXX.pl的可执行文件,这个Perl脚本就是用来启动服务器用的。

1.4流媒体的播放

安装好了服务器想要播放流媒体在客户端还需要一个流媒体播放器,推荐使用VLC(因为有命令行模式,支持二次开发)。DSS安装的时候自带了几个用于测试的流媒体文件,默认放在/usr/local/movies中,vlc打开网络文件输入rtsp://10.137.84.76/sample_100kbit.mp4就可以播放Darwin服务器自带的一个测试文件。但是播放自己的自己准备的视频的时候,VLC却报错无法打开该地址。这是因为我们的转码的视频还不是流媒体格式,缺少hint track信息无法流式传输。hint track工具:MP4BOX http://download.csdn.net/detail/a7411053/4578598 (windows命令行版本,可以自己去官网下带GUI的)

添加hint:
 mp4box filename -hint
解除hint
 mp4box filename -uhint 

成功添加hint track后文件大小会增加,同一个文件反复hint可能会破坏文件结构,最好是先备份一下。

二、流媒体的TCP传输 VLC播放Darwin服务器上的视频,从抓包的数据来看流媒体数据包是通过UDP传输的,即rtp-over-udp。UDP能很好的保证流式传输的实时性,但是有时候我们希望用TCP传输以保证可靠性。DSS的RTP协议可以建立TCP或者UDP之上,服务器端决定一个流媒体文件是否采用TCP传输在于每次流传输之前的测试包对网络状况的测试。但是VLC播放器通常是默认请求对方用UDP传世,幸而VLC命令行提供了一些命令可以改变其请求方式。

--rtsp-tcp           //tcp传输
--no-rtsp-tcp      //udp传输

例如:在windows cmd下切换到VLC的安装目录输入

vlc rtsp://10.137.84.70/myvideo.sdp --rtsp-tcp

此时Darwin服务器向VLC传输的流媒体数据就是通过TCP传输的,虽然这种方法能够达到改变传输方式的目的,但也限制了对播放器的选择。接下来的工作应该是尝试修改DarwinStreamingSrvr源代码,让服务器端默认用TCP方式传输。

参考:

http://wiki.alessandrodelgallo.org/index.php/DarwinStreamingServer

http://mikehillyer.com/linux/compiling-darwin-streaming-server-for-centos-52-x86_64/


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
参考下述网文,已在 Ubu-1204-x64下编译成功,测试登录、配置、点播等运行正常。 -chenlx ------------ 目前主流的流媒体服务器有微软的windows media server、RealNetworks的Helixserver和苹果公司的Darwin Streaming Server. 微软的windows media server只能在windows2000 serverwindows 2003 server下使用,不在考虑之列。RealNetworks的Helixserver是一款跨平台的软件,功能也很强大,但并非免费软件。 Darwin Streaming Server简称DSS。DSS是Apple公司提供的开源实时流媒体播放服务器程序。整个程序使用C++编写,在设计上遵循高性能,简单,模块化等程序 设计原则,务求做到程序高效,可扩充性好。并且DSS是一个开放源代码的,基于标准的流媒体服务器,可以运行在Windows NT和Windows 2000,以及几个UNIX实现上,包括Mac OS X,Linux,FreeBSD,和Solaris操作系统上的。 在Linux中编译安装Darwin Streaming Server 首先需要进行一些必要的准备工作: yum install gcc gcc-c++ make patch wget http://dss.macosforge.org/downloads/DarwinStreamingSrvr6.0.3-Source.tar 还需要下载两个补丁文件 dss-6.0.3.patch dss-hh-20080728-1.patch 补丁文件下载地址:http://download.csdn.net/detail/a7411053/4588411 注册后可以下载 然后开始安装 tar xvf DarwinStreamingSrvr6.0.3-Source.tar cd DarwinStreamingSrvr6.0.3-Source patch -p1 < dss-6.0.3.patch patch -p1 < dss-hh-20080728-1.patch ./Buildit ./buildtarball tar -zxvf DarwinStreamingSrvr-Linux.tar.gz cd DarwinStreamingSrvr-Linux 增加用户 useradd -m qtss -g qtss //需建此用户及组:Install脚本里要求“Add the unprivileged user qtss as the server's run user ” ./Install 设置后台登陆的用户名和密码 。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值