live555 实现一个最简单的RTSP服务器
来源:互联网 发布:淘宝网商城布衣柜 编辑:程序博客网 时间:2024/05/17 08:13
http://blog.csdn.net/gavinr/article/details/7050797
用live555中的库写了一个最简单的RTSPServer程序,仅用于学习目的。从下例的代码中,可以清析的明白RTSPServer的函数调用流程。
- #include <BasicUsageEnvironment.hh>
- #include "liveMedia.hh"
- static ServerMediaSession* createNewSMS(UsageEnvironment& env, char const* fileName);
- int main()
- {
- TaskScheduler* scheduler;
- UsageEnvironment* env ;
- RTSPServer* rtspServer;
- ServerMediaSession* sms;
- //创建任务调用器
- scheduler = BasicTaskScheduler::createNew();
- //创建交互环境
- env = BasicUsageEnvironment::createNew(*scheduler);
- //创建RTSP服务器
- rtspServer = RTSPServer::createNew(*env,554); //使用554端口
- if(rtspServer == NULL)
- {
- rtspServer = RTSPServer::createNew(*env,8554); //554端口被占用,就使用8554端口
- }
- //打印服务器地址
- *env << "Play streams from this server using the URL\n\t"
- << rtspServer->rtspURLPrefix() << "<filename>.\n";
- //创建session
- sms = createNewSMS(*env, "test.mpg");
- rtspServer->addServerMediaSession(sms);
- //添加其它文件对应的session...
- //进行事件循环
- env->taskScheduler().doEventLoop(); // does not return
- return 0;
- }
- static ServerMediaSession* createNewSMS(UsageEnvironment& env, char const* fileName)
- {
- char const* extension = strrchr(fileName, '.');
- ServerMediaSession* sms = NULL;
- Boolean reuseSource = False; //不重用source
- sms = ServerMediaSession::createNew(env, fileName); //创建一个session
- //
- //在session中添加subssesion
- //
- if(strcmp(extension, ".aac") == 0)
- {
- sms->addSubsession(ADTSAudioFileServerMediaSubsession::createNew(env, fileName, reuseSource));
- }
- else if(strcmp(extension, ".264") == 0)
- {
- sms->addSubsession(H264VideoFileServerMediaSubsession::createNew(env, fileName, reuseSource));
- }
- else if(strcmp(extension, ".mpg") == 0)
- {
- MPEG1or2FileServerDemux* demux
- = MPEG1or2FileServerDemux::createNew(env, fileName, reuseSource);
- sms->addSubsession(demux->newVideoServerMediaSubsession());
- sms->addSubsession(demux->newAudioServerMediaSubsession());
- }
- //添加其它媒体格式支持...
- return sms;
- }
- live555 实现一个最简单的RTSP服务器
- live555 实现一个最简单的RTSP服务器及其makefile
- live555 实现一个最简单的RTSP服务器
- live555 实现一个最简单的RTSP服务器
- live555 实现一个最简单的RTSP服务器
- live555 实现一个最简单的RTSP服务器
- live555 实现一个最简单的RTSP服务器
- 基于live555的一个简单RTSP服务器
- 基于live555实现简单的rtsp client
- 简单完整的一个 rtsp 交互过程 live555-openRTSP
- [live555]rtsp直播基于live555的实现
- [live555]rtsp直播基于live555的实现
- DM365+live555实现RTSP直播服务器(广播)
- LIVE555再学习 -- live555实现RTSP直播服务器
- LIVE555再学习 -- live555实现RTSP直播服务器 分析
- live555架设rtsp服务器
- live555搭建rtsp服务器
- live555的安装 RTSP点播消息流程实例(客户端:VLC, RTSP服务器:LIVE555 Media Server)
- TOJ 3033 ZOJ 1141 POJ 1470 Closest Common Ancestors / 最近公共祖先
- Oracle 11g sys,system 密码忘记设置解决办法
- OpenProcess讲解
- DataTable导出到Excel
- 查询SQL数据库的版本
- live555 实现一个最简单的RTSP服务器
- java读写properties文件操作
- Unity3d_SQL-DMO简介
- YARN/MRv2 MRAppMaster深入剖析—推测执行机制
- 逆波兰表达式学习日记(2)
- Android中asset文件夹和raw文件夹区别
- .NET获取IP地址及用户名等信息的源代码
- Eclipse格式化代码时不换行
- Java中print、printf、println的区别详解