live555调试

(1)先下载live555的源码

如:live.2011.06.14a.tar.gz

(2)解压源码

tar -zxvf live.2011.06.14a.tar.gz

(3)cd live

(4)./genMakefiles linux-gdb

(5)make

经过以上步骤生成的live555MediaServer可以用于gdb调试,如果要使源代码中的DEBUG宏有效,

 

还需要修改live/config.linux-gdb文件,在COMPILE_OPTS一行中添加-DDEBUG即可。





http://topic.csdn.net/t/20060612/14/4815999.html


CSDN- CSDN社区- 专题开发/技术/项目- 多媒体/流媒体开发

收藏熟悉livemedia的高手请进[问题点数:50分,自动结帖]

  • luoqintao
  • (tooluck)
  • 等 级:
  • 结帖率:

楼主发表于:2006-06-12 14:20:47
最近研究livemedia库,自带的一个rtspserver的例子,该例子中只能访问预先设定好的文件,比如说,rtsp://ip:port/XXX,后面的xxx是预先ServerMediaSession创建时指定好的,这样就显得不够灵活。
现在的问题是想做这样一个rtsp   server,根据XXX的值(可以是一个文件名或其他值),可以自动定位到要传输的内容。
请教高手如何用livemedia库来实现!
 
 
#1楼 得分:0回复于:2006-06-12 15:37:59
在RTSPServer类中,有个lookupServerMediaSession函数
如果没有找到相应的ServerMediaSession   ,那就动态创建一个ServerMediaSession
 
#2楼 得分:0回复于:2006-06-13 09:49:29
to   xrye0395(Terry),我看过你的一片帖子,知道你做的东西跟我这个差不多,望加我msn一起讨论下:luoqintao@hotmail.com

这个我也想到了,但是好像离我的需求还有点距离。
我的需求如下:
我现在想做一个实时流转发服务器,该服务器的流数据是通过一些网络摄像机(支持rtsp)获取,也就是该转发服务器一个rtsp的client和server的结合体,目前的做法是摄像机主动将数据发送到该服务其上,服务器再根据实际客户请求传输数据。你说的这个也应该可以满足。
但是我想做到不是摄像机主动先把数据发给转发服务器,而是服务器在需要某个摄像机的数据时自己作为rtsp   client向摄像机去要。
请赐教!
 
#3楼 得分:0回复于:2006-06-15 10:21:55
那就把示例中的openRTSP封装成一个RunTimeRTSPClient类
当客户端需要打开某个视频源时,在RTSPServer中动态创建一个RunTimeRTSPClient对象,再动态创建一个ServerMediaSession   ,两个关联起来就OK了
 
#4楼 得分:0回复于:2006-06-15 10:45:54
ServerMediaSession*   RunTimeRTSPServer::lookupServerMediaSession(char   const*   streamName)   {

ServerMediaSession*   RequestSession;
RequestSession   =   (ServerMediaSession*)(fServerMediaSessions-> Lookup(streamName));

if   (RequestSession   ==   NULL)
        {
//创建rtspclient
char*   url   =   new   char[255];
memset(url,0,255);

sprintf(url, "rtsp://%s ",streamName);
#ifdef   _DEBUG
envir()   < < "Open   Url: " < <   url   < <   "\n ";
#endif
RunTimeRTSPClient*   rtspclient   =   RunTimeRTSPClient::createNew(envir(),url);
delete[]   url;

ServerMediaSession*   sms
=   ServerMediaSession::createNew(envir(),   streamName);

//加入ServerMediumSubSession
//rtspclient-> getSource();
//sms-> addSubsession();

this-> addServerMediaSession(sms);

rtspclient-> startPlayingStreams();
              }

RequestSession   =   (ServerMediaSession*)(fServerMediaSessions-> Lookup(streamName));
return   RequestSession;

}
 
#5楼 得分:0回复于:2006-06-15 13:21:39
xrye0395(Terry),真是多谢啊,我原来准备做一个客户端线程专门接收数据然后缓存,让rstpserver线程与之共享内存的,这样看了还是你的方法好,不过有几个问题:
1,这个RunTimeRTSPClient的rtspclient-> getSource()和createNew(envir(),url);是如何封装的。
2,我看了http://lists.live555.com/pipermail/live-devel/2005-October/003326.html,好像也是你这种做法,说是   getNextFrame()的问题具体见:http://lists.live555.com/pipermail/live-devel/2005-October/003326.html
不知道这些问题你解决没有?
最好能给我你的RunTimeRTSPClient和自定义的source的封装的代码,小弟感激涕零啊!
另,加我msn吧,这样沟通方便些,luoqintao@hotmail.com,谢谢啦!
 
#6楼 得分:0回复于:2006-06-16 16:53:12
没有人帮忙么?
 
#7楼 得分:0回复于:2006-11-21 13:49:40
学习,接分
 
#8楼 得分:0回复于:2006-11-21 13:50:28
楼上的兄弟是linux下开发的么
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值