作者:蓝眼泪
1 DSS背景介绍
Darwin Streaming Server简称DSS。
目前主流的流媒体服务器有微软的windows media server、RealNetworks的Helixserver和苹果公司的Darwin Streaming Server.
微软的windows media server只能在windows2000 server和windows 2003 server下使用,不在考虑之列。
RealNetworks的Helixserver是一款跨平台的软件,功能也很强大,但并非免费软件。
DSS是Apple公司提供的开源实时流媒体播放服务器程序。整个程序使用C++编写,在设计上遵循高性能,简单,模块化等程序设计原则,务求做到程序高效,可扩充性好。并且DSS是一个开放源代码的,基于标准的流媒体服务器,可以运行在Windows NT和Windows 2000,以及几个UNIX实现上,包括Mac OS X,Linux,FreeBSD,和Solaris操作系统上的。
2 基础环境准备
yum install patch make gcc gcc-c++
#安装gcc
yum install gcc
#安装g++
yum install gcc-c++
wget http://dss.macosforge.org/downloads/DarwinStreamingSrvr6.0.3-Source.tar
mkdir /opt/darwin
cd /opt/darwin
tar xvf DarwinStreamingSrvr6.0.3-Source.tar
cd DarwinStreamingSrvr6.0.3-Source
vim APICommonCode/QTSSModuleUtils.cpp
修改127.0.0.* 为 *.*.*.*, #不修改的话只允许本地推流
打补丁dss-6.0.3.patch 和dss-hh-20080728-1.patch
wget http://www.abrahamsson.com/dss-6.0.3.patch
cd /opt/darwin
mv DarwinStreamingSrvr6.0.3-Source DarwinStreamingSrvr6.0.3-Source.orig
patch -p0 < dss-6.0.3.patch
mv DarwinStreamingSrvr6.0.3-Source.orig DarwinStreamingSrvr6.0.3-Source
patch -p0 < dss-hh-20080728-1.patch
3 创建 Darwin 用户qtss
groupadd qtss
useradd qtss -g qtss
./Buildit
./buildtarball
生成DarwinStreamingSrvr-Linux.tar.gz
tar -zxvf DarwinStreamingSrvr-Linux.tar.gz
cd DarwinStreamingSrvr-Linux
vim Install
将-M修改成-m
./Install
输入新管理员的用户名 wenjl 密码 8888
4 查看是否安裝成功
ps aux | grep Darwin #查看流媒体服务器的进程
netstat -ntulp | grep Darwin #查看流媒体服务器的端口

5 启动 Darwin Streaming Server
sudo /usr/local/sbin/DarwinStreamingServer
6 启动 Web 管理介面
sudo /usr/local/sbin/streamingadminserver.pl
小技巧:自动启动流媒体服务器的方法:
把上述命令添加在/etc/rc.d/rc.local脚本中即可。
打开浏览器,输入http://192.168.1.130:1220/
默认的媒体文件存放在/usr/local/movies,可以自定义
7 用vlc软件访问自己的流媒体服务
rtsp://192.168.1.130/sample_100kbit.mp4
rtsp://192.168.1.130/220.mp4
附加信息:
ffmpeg的安装
yum -y install make automake gcc gcc-c++ cc kernel-devel glibc-devel make yasm
yum -y install libxml2 libxml2-devel libxslt libxslt-devel
yum -y groupinstall "Development Tools"
tar -xvf ffmpeg-4.1.tar.xz -C /usr/local
cd /usr/local/ffmpeg-4.1
./configure
make && make install
ffmpeg -version
tar命令用法
1. 使用tar压缩文件
tar -zcvf test.tar.gz ./test/
该命令表示压缩当前文件夹下的文件夹test,压缩后缀名为test.tar.gz
如果不需要压缩成gz,只需要后缀为tar格式的,那么输入如下命令:
tar -cvf test.tar ./test/
2. 使用tar解压文件
tar -xzvf test.tar.gz
该命令表示把后缀为.tar.gz的文件解压到当前文件夹下。
如果压缩文件的后缀是.tar,没有gz,则使用命令:
tar -xvf test.tar
scp命令用法
SCP :secure copy (remote file copy program) 是一个基于SSH安全协议的文件传输命令。与sftp不同的是,它只提供主机间的文件传输功能,没有文件管理的功能。
1 复制local_file 到远程目录remote_folder下
scp local_file remote_user@host:remote_folder
2 复制local_folder 到远程remote_folder(需要加参数 -r 递归)
scp –r local_folder remote_user@host:remote_folder
3 以上命令反过来写就是远程复制到本地