DSS Live env example
来源:互联网 发布:新疆陌陌网络 编辑:程序博客网 时间:2024/05/21 15:41
在服务端使用VLC生成sdp文件,
方法:vlc.exe -vvv ""rtsp://<IP>:<port>"" --loop --sout #rtp{dst=127.0.0.1<DSS IP>,port-audio=20000,port-video=20002,ttl=127,name=CHANNEL,sdp=file://E:/movies/channel.sdp}
在浏览端收看:
方法:rtsp://<DSS IP>/channel.sdp.
摘 要: 利用苹果的开源项目Darwin Streaming Server作为流媒体服务器,并使用VLC或其他的RTSP源来实现流媒体视频的直播。有两种实现方案,他们分别是:一种是,使用VLC作为视频流接受生成SDP方法实现直播;第二种是:使用darwin的relay中继功能实现直播。
中国论文网 http://www.xzbu.com/
关键词: Darwin Streaming Server;流媒体;RTSP;直播
中图分类号:TP311.52 文献标识码:A 文章编号:1671-7597(2012)0310040-01
0 引言
随着网络技术和流媒体技术的发展,流媒体技术的出现给互联网带来勃勃生机。为了在网上听歌或者看一部电影,人们不需要再等待漫长的下载过程,可以直接尽情的享受其中的乐趣。
Darwin Streaming Server简称DSS。DSS是Apple公司提供的开源实时流媒体播放服务器程序。整个程序使用C++编写,在设计上遵循高性能,简单,模块化等程序设计原则,务求做到程序高效,可扩充性好。并且DSS是一个开放源代码的,基于标准的流媒体服务器,可以运行在Windows NT和Windows 2000,以及几个UNIX实现上,包括Mac OS X,Linux,FreeBSD,和Solaris操作系统上的。
1 使用VLC作为视频流接受生成SDP方法实现直播
1.1 采集端(Windows操作系统)
使用本公司开发的QN_AMCAP通过电脑USB接口摄像头,获取视频信息,编码之后,通过RTP的方式发送给darwin流媒体服务器。也可以使用VLC直接获取USB接口摄像头视频信息,然后再进行编码发送。VLC支持发送的协议有:HTTP,MS-WMSP(MMSH),RTSP,RTP,UDP等协议,通过这些协议都可以使用VLC将视频流信息发送到目的地。下面是几种协议VLC使用的发送命令:
1)HTTP协议的发送命令是:
:Sout=#transcode{vcodec=h264,vb=800,scale=1,acodec=mp4a,ab=128,channels=2,samplerate=44100}:http{mux=ts,dst=:8080/}:no-sout-rtp-sap :no-sout-standard-sap :sout-all :ttl=1 :sout-keep
2)MS-WMSP(MMSH)协议的发送命令是:
:sout=#transcode{vcodec=h264,vb=800,scale=1,acodec=mp4a,ab=128,channels=2,samplerate=44100}:std{access=mmsh,mux=asfh,dst=0.0.0.0:8080}:no-sout-rtp-sap :no-sout-standard-sap :sout-all :ttl=1 :sout-keep
3)RTSP协议的发送命令是:
:sout=#transcode{vcodec=h264,vb=800,scale=1,acodec=mp4a,ab=128,channels=2,samplerate=44100}:rtp{sdp=rtsp://:5544/}:no-sout-rtp-sap :no-sout-standard-sap :sout-all :ttl=1 :sout-keep
4)RTP协议的发送命令是:
:sout=#transcode{vcodec=h264,vb=800,scale=1,acodec=mp4a,ab=128,channels=2,samplerate=44100}:no-sout-rtp-sap :no-sout-standard-sap :sout-all :ttl=1 :sout-keep
1.2 Darwin服务器端(windows\linux系统)
使用VLC接收采集端发送到darwin服务器端的视频流,并且在darwin安装目录先的Moves目录下生成SDP文件。Darwin服务器通过SDP文件获得需要的视频播放信息,将视频流转换为RTSP流,其他的客户端便可通过RTSP协议播放直播内容。
2 使用darwin的relay中继功能实现直播
2.1 Darwin设置中继
使用三台windows的PC,一台(命名为A,IP地址为192.168.1.2)作为源server,一台(命名为B,IP地址为192.168.1.3)做relay服务器,一台(命名为C,IP地址为192.168.1.4)作为客户端。在A机上使用VLC或其他RTSP源,A机将本机上获取到的直播视频信息发送给B机,然后C机就能够通过访问B机来播放A机的媒体文件,也就是通过VLC或其他RTSP源,darwin流媒体服务器实现了视频直播。
2.2 VLC或其他RTSP源发送RTSP流
A机也就是源server,不需要使用darwin服务器,而是使用VLC获取USB接口摄像头视频信息,然后通过RTSP协议发送给B机。需要配置的darwin服务器为B机。
配置步骤:
1)B机安装perl和Darwin Streaming Server,C机安装VLC播放器。
2)在A机中使用VLC开始发送RTSP流。
2.3 Darwin流媒体服务器通过中继功能接收RTSP流
Darwin流媒体服务器可以通过中继功能接收VLC或其他RTSP源发送过来的RTSP流,然后实现直播功能。
下面是实现的步骤:
1)将A机VLC生成的SDP文件(v.sdp文件)拷贝到B机的媒体文件夹中。在B机上编辑v.sdp文件,找到第一个以“m=”开头的行,将0改为前面在Relay Setting中配置的Base Port(i.e.20000);继续找到下一个以“m=”开头的行,将0改为Base Port+2(i.e.20002)。
2)B机打开浏览器键入http://192.168.1.3:1220,输入用户名和密码。
3)在B机建立新的relay。单击左侧relay Settings,在右侧选择New Relay。
① Source Settings中:
Source Hostname or IP Address中填写源数据IP。因为是接收A机VLC或其他RTSP视频源发送过来的直播RTSP流,所以,Source Hostname or IP Address中填写的是A机的IP地址:192.168.1.2。
Mount Point就填写要播放的直播RTSP流的名字(/v.sdp)。
Request incoming Stream中填写A机的DSS用户名和密码。
② Destination Settings中:
Hostname or IP Address填写目的IP地址。因为是接收A机发送过来的直播视频流,所以,Source Hostname or IP Address中填写的是127.0.0.1。
Base Port中填写将送达B机的端口号(这个需要在VLC或其他RTSP源发送RTSP流的时候进行设置)。
Multicast TTL填写最多可以中继的级数。
在页面最下方有save changes保存设置。
4)启动C机的VLC,打开url:rtsp://192.168.1.3/v.sdp。
5)C机播放了A机发出的直播视频。
3 结语
本文对通过苹果开源项目Darwin Streaming Server作为流媒体服务器来实现流媒体直播方案相关讨论,通过对Darwin服务器的设置方法和配置,来实现了两种流媒体的直播方案。
- DSS Live env example
- DSS Source Code Analyse (17) - Data Flow of classical Live
- dss
- DSS
- DSS
- DSS
- DSS
- DSS
- DSS
- DSS
- dss
- env
- env
- env
- env
- Example Playlist Files for use with HTTP Live Streaming
- 关于DSS
- 什么是DSS
- linux 进程间通信一(管道与信号)
- App Store 创赢艺术--Apple开发的赚钱机密
- Linux内核中的内存(二)
- Effective MySQL之SQL语句最优化,性能改进的实用知识。
- 如何解决问题
- DSS Live env example
- GNU C与ANSI C
- Zookeeper开源客户端框架Curator简介
- DB2里-818错误原因及解决方法
- static in c
- 插件
- 关于局部刷新
- IIS错误解决
- 黑马程序员_IO回顾01