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服务器的设置方法和配置,来实现了两种流媒体的直播方案。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 我儿子不爱说话怎么办 宝宝不爱学说话怎么办 宝宝误食了面霜怎么办 幼儿发烧不吃饭怎么办 宝宝发烧不吃饭怎么办 宝宝发烧不吃奶怎么办 新生儿用枕头了怎么办 新生儿宝宝奶睡怎么办 幼儿不爱吃水果怎么办 孩子不张个子怎么办 宝宝抗拒吃水果怎么办 夏天化妆爱出汗怎么办 上火嘴皮起泡怎么办 儿童拒绝吃水果怎么办 婴儿的牙长歪了怎么办 小孩吃东西不嚼怎么办 宝宝不爱吃苹果怎么办 宝宝吃猕猴桃拉肚子怎么办 宝宝吃猕猴桃过敏怎么办 怀孕了不想喝水怎么办 新生宝宝脾气大怎么办 一岁半宝宝痰多怎么办 孩子不吃水果蔬菜怎么办 宝宝感冒肚子响怎么办 大人不爱吃水果怎么办 孩子什么都不吃怎么办 儿童脾胃虚便秘怎么办 孩子不喜欢吃青菜怎么办 宝宝不喜欢吃青菜怎么办 儿童不爱吃水果怎么办 吃水果怕凉怎么办 受凉了发低烧怎么办 小孩受凉发低烧怎么办 出汗吹风发烧了怎么办 宝宝发烧闹人怎么办 感冒发烧出汗后怎么办 宝宝不爱吃蔬菜水果怎么办 小孩不爱吃蔬菜水果怎么办 一岁宝宝爱含饭怎么办 2岁宝宝爱含饭怎么办 吃药吃多了怎么办