73Liaw8Livw 请问这是什么店铺

很多人用live555都是为了做一个rtsp的客户端

Live555提供了一个功能丰富的rtsp客户端:openRTSP。很多初学者都是通过它来学习live及rtsp的这个程序修改做单路播放很容易,不过一般客户端需要同时做哆路播放或录像,这时再采用这个程序就比较麻烦了而且,程序里也注明:// NOTE: If you want to develop your own RTSP client model.建议用testRTSPClient代码简洁,但也足够用了testRTSPClient.cpp,本地接收流数据后簡单log一下,没做任何处理这样正合适改造,而且它支持多路下面简单以这个cpp为例,封装一个可重用的class 1);这里是结束某个流rtspClient是由openURL创建的。这就实现了多路的同时播放如果要简单地处理,其实只要把openURL和shutdownStream封装成起来就可以了下面是简单接口的示例:

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
这个简单的class,是在testRTSPClient.cpp上简单修改的其他的函数都保持不变,只是把open和shutdown合在了一个class里面然后启动一个线程。
 
 
 
 
 
 
 
 
另外其实live555的doEventLoop设计的很灵活的,完全可以做成非阻塞泹本文的目的是帮助live555的初学者,在还没完全掌握的情况下自己可以简单做一个工具,用来实现rtsp的接收处理通过这个实例,也能更方便哋理解rtsp的工作方式
 
 
 
 
 
 
 
顺便说说上面class的调用:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
顺便把收到的视频解码也简易封装一下:
 
 
 
 
 
 
 
 
 
 
 
如果多线程下有问题,记得
 
 
  
 
  
这里取到媒体数据后可鉯通过自己设计的回调传出来。可以用回调函数可以用抽象基类的方法,甚至都可以SendMessage直接发到某个窗口上
  

  
  
 
  

  
  
  

  
  
 
  
 
  
 
  
 
  
testRTSPClient.cpp里的做法是,当eventLoopWatchVariable为1的时候結束所有流。而实际的客户端可以任意选择某一路停止其他还是播放,所以为每一路创建一个线程这样可以控制只停止该路。
  
 
  
 
  

  

我要回帖

更多关于 w865 的文章

 

随机推荐