DSS转发live555提供的数据

转载 2012年03月28日 20:38:47
1.DSS的reflect功能
    Darwin可以接收RTP数据,进行转发,这个功能官方文档描述为"reflect "。
    使用VLC很容易演示这个功能,命令:
  1. vlc -vvv test.mp4 --sout "#dst=rtp{dst=127.0.0.1,port-audio=20000,port-video=20002,ttl=127,name=CHANNEL,sdp=file:///f:/channel.sdp}"  
    执行上面的命令,将生成一个sdp描述文件channel.sdp,VLC将向指定目的IP的指定port发送RTP包。为确保命令正确,在VLC的菜单"工具"->"消息"中查看是否有错误信息,正常情况下在"消息"窗口中可以看到生成的SDP信息。将channel.sdp复制到目标PC上DSS媒体文件所在目录,这时用VLC直接打开channel.sdp就能播放,如果用mplayer不能直接打开*.sdp文件,应该使用命令"mplayer sdp://channel.sdp"。启动DSS,通过"rtsp://<DSS IP>/channel.sdp"即可连接到DSS。
    这种方式,需要手动将SDP文件copy到DSS中。其实还有一种"自动"的方式,这需要一个RTSP客户端,并且实现"ANNOUNCE"命令。"ANNOUNCE"可以携带SDP信息,DSS接收到命令后,能够自动在Movies目录中建立SDP文件。

2.live555给DSS提供数据
    live555支持"ANNOUNCE"命令,可以用来向DSS提供数据,并提供了一个testMPEG4VideoToDarwin的示例程序,用来测试这个功能。将测试文件test.m4e(m4e文件可以到这时下载http://www.live555.com/liveMedia/public/m4e/)放到testMPEG4VideoToDarwin.exe目录,启动命令行输入:
  1. $ ./testMPEG4VideoToDarwin.exe 127.0.0.1  
  2. Beginning streaming...  
  3. Beginning to read from file...  
  4. Play this stream (from the Darwin Streaming Server) using the URL:  
  5.         rtsp://127.0.0.1/test.sdp  
  6. ...done reading from file  
  7. Beginning to read from file...  
    现在打开DSS的Movies目录,可以发现自动生成了一个test.sdp的文件,使用VLC打开rtsp://<DSS IP>/test.sdp, 即可播放。

3.DSS的权限控制
    我的测试环境中,DSS与testMPEG4VideoToDarwin.exe在同一台PC上,上面使用的是127.0.0.1这个地址,如果使用使用本地IP或者是在在其它PC上向DSS发送数据,会提示出错:
  1. $ ./testMPEG4VideoToDarwin.exe 192.168.1.188  
  2. Beginning streaming...  
  3. Beginning to read from file...  
  4. injector->setDestination() failed: 401 Unauthorized  
    提示信息很明显,跟权限有关。在Movies目录建立一个文本文件"qtaccess",内容如下:
  1. <Limit WRITE>  
  2. require any-user  
  3. </Limit>  
  4. require any-user  
    保存后,重新启动DSS服务,然后再次测试应该就没有问题了。
  1. $ ./testMPEG4VideoToDarwin.exe 192.168.1.188  
  2. Beginning streaming...  
  3. Beginning to read from file...  
  4. Play this stream (from the Darwin Streaming Server) using the URL:  
  5.         rtsp://192.168.1.188/test.sdp  
    上面的权限配置充许任何用户登录,也可以不提供用户名和密码,默认情况下使用127.0.0.1这个地址时,拥有所能的权限。关于DSS权限控制更多的内容参考http://manuals.info.apple.com/en/quicktimestreamingsrvradminguide.pdf。
4.RTSP命令交互

使用Wireshark抓取的RTSP命令交互过程如下:



PS:

如果其它PC的无法连接到DSS服务器,可以关闭防火墙试试,我的win7默认就出现这个问题。


转自 http://blog.csdn.net/gavinr/article/details/7297184

相关文章推荐

DSS转发live555提供的数据

1.DSS的reflect功能     Darwin可以接收RTP数据,进行转发,这个功能官方文档描述为"reflect "。     使用VLC很容易演示这个功能,命令:...

Live555 + Darwin Streaming Server(DSS)视频直播方案

该方案的实现原理是,通过Live555的DarwinInjector Class,把本地采集的音频和视频流,注入到DSS服务器。客户端就可以直接访问DSS服务器(不是Live555所在的采集端)来访问...
  • rrs123
  • rrs123
  • 2015年12月21日 10:24
  • 1014

Live555转发DVB实时流数据

最近在做一个关于流媒体的项目,其需求简单描述就是把DVB上播放的电视内容,通过流媒体服务器发送到局域网上,使用户可以在手机或者PC端观看电视节目。     虽然从网上知道Live555并不是最好的流媒...
  • zyl87
  • zyl87
  • 2015年06月09日 15:32
  • 976

live555转发DVB实时流(TS流)数据

最近在做一个关于流媒体的项目,其需求简单描述就是把DVB上播放的电视内容,通过流媒体服务器发送到局域网上,使用户可以在手机或者PC端观看电视节目。     虽然从网上知道Live555并不是最好...

live555 RTP数据读取流程

本文在linux环境下编译live555工程,并用cgdb调试工具对live555工程中的testProgs目录下的openRTSP的执行过程进行了跟踪分析,直到将从socket端读取视频数据并保存为...

live555源码分析----H264的数据处理

http://blog.csdn.net/gavinr/article/details/7042228   现在来分析live555中关于H264的处理部分,主要包括从文件中读取数据进行并进...
  • htjx99
  • htjx99
  • 2013年10月23日 14:55
  • 707

【转载】live555学习 --H264数据处理(1)

本文转载自白杨《live555学习(十三) --H264数据处理(1)》         在live555学习(七) --DESCRIBE命令处理中,对如何打开文件并获得其S...

live555源码分析----H264的数据处理

现在来分析live555中关于H264的处理部分,主要包括从文件中读取数据进行并进行frame(NALU)的分割,然后对frame进行分片,这些工作都是在frame交给RTP sink之前完成的。接着...
  • gavinr
  • gavinr
  • 2011年12月05日 14:56
  • 25938

【转载】live555学习 --H264数据处理(3)

本文转载自白杨《live555学习(十五) --H264数据处理(3)》 H264FUAFragmenter又对数据做了什么呢? 1: void H264FUAFragmente...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DSS转发live555提供的数据
举报原因:
原因补充:

(最多只允许输入30个字)