DSS
1 下载DSS(http://dss.macosforge.org/downloads/DarwinStreamingSrvr5.5.5-Windows.exe),解压,运行Install.bat,即安装完成。
2 下载perl(http://www.perl.org/get.html),双击安装即可。
3 运行C:/Program Files/Darwin Streaming Server>perl WinPassAssistant.pl,根据提示,完成用户名和密码设置。
4 运行C:/Program Files/Darwin Streaming Server>perl streamingadministrator.pl(启动后台管理程序),在浏览器中输入:http://12.0.0.1:1220/打开webAdmin管理器,设置媒体文件存储路径。
5 测试,地址为:
rtp://127.0.0.1:554/sample_100kbit.mov或http://127.0.0.1:554/sample_100kbit.mov。
EasyDarwin
1 EasyDarwin和Darwin Streaming Server区别
EasyDarwin是在Apple开源流媒体服务器Darwin Streaming Server(v6.0.3)基础上进行开发和维护的免费开源、高效、易扩展的面向企业级的流媒体平台框架,开始于2013年,遵循 Apple开源License,为了敏捷流媒体服务器开发和简化企业流媒体应用开发而诞生的。
EasyDarwin一直以来保持 Darwin原有体系结构和设计思想,在保持出色的性能和简洁的代码同时,也在不断优化其底层效率和上层通用性。在广大开源爱好者的积极参与和努力下, 易用性、扩展性和稳定性等方面不断优化和改进,已经成长为国内较具影响力的流媒体开发框架,众多应用案例确保可以稳定用于商业开发;
整个模块基于C/S架构,采用业界最优秀的流媒体服务器之一的Darwin Streaming Server内核,支持MPEG-1、MPEG-2、MPEG-4、H.264、VC-1等 多种标准编码格式的众多主流媒体格式及avi、asf、 wmv、mp4、mov、rm、rmvb、flv、3GP等等全格式的文件Container容器。 采用标准RTP协议(包括RTP over UDP、RTP over TCP、RTP over HTTP),全面实现对多网卡、跨网段、跨路由、跨防火墙的支持。 单服务器支持1000并发流(无缓冲)。
2 下载
去http://www.easydarwin.org/下载。
3 windows下编译
到EasyDarwin/WinNTSupport下,打开“EasyDarwin_vs2008.sln”,点“rebuild all”,如果有编译错误的,再编译一次。
4 点播本地文件
第一步:新建文件夹ED,放入如下文件:
1>EasyDarwin.exe //主项目文件
2>easydarwin.xml //配置文件
3>Movies文件夹(包含点播文件,如:Demo.mp4),需要在easydarwin.xml中的movie_folder字段做配置,如下:
...
<PREF NAME="movie_folder" >./Movies</PREF>
...
第二步:通过cmd进入ED,执行,“EasyDarwin.exe -d -c ./easydarwin.xml”。
第三步:用vlc请求:rtsp://localhost/Demo.mp4 (rtsp://[server_ip]:[server_port]/[file_name].mp4)。
先拉后推
用户可以通过发送标准的DESCRIBE/SETUP/PLAY请求来向远程的源中请求一个流,然后将它中继转发到一个或者多个目的地。当只希望让外部流的一份拷贝占用其内部连接的带宽时,这个功能可能有用。中继转发获取一份拷贝进行多份的复制和转发、分发到请求的客户端。图 1.提供了一个先拉后推(pull-then-push)场景的实例。
图1.先拉后推式
以图1.作为参考,先拉后推场景的步骤如下:
1. 流媒体服务器A(转发服务器)发送标准的RTSP客户DESCRIBE/SETUP/PLAY请求给远程服务器,即流媒体服务器B。
2. 发起请求的中继“客户端”(流媒体服务器A)开始接受流,然后向该输入流的中继配置中列出的所有目的地发送ANNOUNCE推送请求。
先侦听后推送
流媒体服务器可以被配置为将ANNOUNCE请求创建的输入流自动发送到一个或者多个目的地。这可能可以用于配制自动播送网络。图 2.提供了一个先侦听后推送的场景的实例。
图2.先侦听后推送式
以图2.作为参考,先侦听后推送场景的步骤如下:
· 远程机器(IpCamera等前端设备或者中继服务器)向流媒体服务器A发送一个ANNOUNCE请求。流媒体服务器可以接受或者否认这个请求。如果它接受了请求,则流媒体服务器会检查其中继配置,以确定这个流是否应该被中继。
· 如果该流应该被中继,则流媒体服务器将向自身发送标准的RTSP客户DESCRIBE/SETUP/PLAY请求。
· 发出请求的中继“客户”(流媒体服务器A)开始接收流,然后向相应的输入流的中继配置中列出的所有目的地发送一个ANNOUCE请求。