一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient)——收流篇:(二)示例
2015-12-28 10:53
696 查看
一、搭建RTSP服务器
要想测试RTSP客户端,没有服务端怎么行呢?然而,有时候条件有限,手头并没有独立的RTSP服务器拿来用,那么我们不妨自己撘一个。
以下有2种方便的做法可供选择:
第一种:使用vlc播放器(推荐做法)
这种方法最方便,而且任何视频格式的文件都可以拿来测试,具体做法网上有很多,以下提供一个链接以供参考。
http://blog.csdn.net/beitiandijun/article/details/9232405
这种方法只有一个地方需要注意一下:
如果你想让你的vlc RTSP服务器监听RTSP默认端口,也就是554,那么vlc必须要以root权限打开,如下图。
第二种:使用live555的test程序
从live555官网下载最新程序并且make。在testProgs目录里会有一个testOnDemandRTSPServer的程序,这个程序会根据当前目录中的各种音视频格式的文件(mpeg, h264, acc, ...),创建RTSP服务器,默认端口是8554。现在,我们把testOnDemandRTSPServer.cpp修改一下
可以看到,删减的过程很简单:1. 将8554端口改成554;2. 将h264以外的音视频格式注释掉; 3. 设置RTSP URI、指定H264视频源文件。
不像vlc那么方便,此处的视频源文件必须是h264格式的,以下链接可以找到live555官网提供的几个h264格式的视频源文件。
http://www.live555.com/liveMedia/public/264/
二、编译myRTSPClient
$ cd myRtspClient/
$ ./genMakefiles linux
$ make
(更多的编译选项,可以查看README.md)
OK啦!这时,myRtspClient/example/里会生成3个example程序:simple_example, complete_example, common_example。
现在我们拿common_example先尝个鲜(假设rtsp服务端RTSP URI为:"rtsp://192.168.81.145/ansersion"):
$ ./common_example rtsp://192.168.81.145/ansersion
接下来我们就可以看到源源不断的数据传过来了,并且会被写入文件"test_packet_recv.h264",这个文件可以使用ffplay或者ElecardStreamTools来播放。
好啦,接下来我们先来简单介绍一下RTSP命令。
上一篇 下一篇
要想测试RTSP客户端,没有服务端怎么行呢?然而,有时候条件有限,手头并没有独立的RTSP服务器拿来用,那么我们不妨自己撘一个。
以下有2种方便的做法可供选择:
第一种:使用vlc播放器(推荐做法)
这种方法最方便,而且任何视频格式的文件都可以拿来测试,具体做法网上有很多,以下提供一个链接以供参考。
http://blog.csdn.net/beitiandijun/article/details/9232405
这种方法只有一个地方需要注意一下:
如果你想让你的vlc RTSP服务器监听RTSP默认端口,也就是554,那么vlc必须要以root权限打开,如下图。
第二种:使用live555的test程序
从live555官网下载最新程序并且make。在testProgs目录里会有一个testOnDemandRTSPServer的程序,这个程序会根据当前目录中的各种音视频格式的文件(mpeg, h264, acc, ...),创建RTSP服务器,默认端口是8554。现在,我们把testOnDemandRTSPServer.cpp修改一下
...... // RTSPServer* rtspServer = RTSPServer::createNew(*env, 8554, authDB); RTSPServer* rtspServer = RTSPServer::createNew(*env, 554, authDB); // 修改RTSP端口为554 ...... // A MPEG-4 video elementary stream: // 将MPEG-4注释掉 // { // char const* streamName = "mpeg4ESVideoTest"; // char const* inputFileName = "test.m4e"; // ServerMediaSession* sms // = ServerMediaSession::createNew(*env, streamName, streamName, // descriptionString); // sms->addSubsession(MPEG4VideoFileServerMediaSubsession // ::createNew(*env, inputFileName, reuseFirstSource)); // rtspServer->addServerMediaSession(sms); // announceStream(rtspServer, sms, streamName, inputFileName); // } // A H.264 video elementary stream: // 保留H264 { char const* streamName = "ansersion"; // 设置rtsp url 为:rtsp://<IP>/ansersion char const* inputFileName = "test.264"; // 视频源文件 test.264 ServerMediaSession* sms = ServerMediaSession::createNew(*env, streamName, streamName, descriptionString); sms->addSubsession(H264VideoFileServerMediaSubsession ::createNew(*env, inputFileName, reuseFirstSource)); rtspServer->addServerMediaSession(sms); announceStream(rtspServer, sms, streamName, inputFileName); } // A H.265 video elementary stream: // 将H265注释掉 // { // char const* streamName = "h265ESVideoTest"; // char const* inputFileName = "test.265"; // ServerMediaSession* sms // = ServerMediaSession::createNew(*env, streamName, streamName, // descriptionString); // sms->addSubsession(H265VideoFileServerMediaSubsession // ::createNew(*env, inputFileName, reuseFirstSource)); // rtspServer->addServerMediaSession(sms); // announceStream(rtspServer, sms, streamName, inputFileName); // } ......
可以看到,删减的过程很简单:1. 将8554端口改成554;2. 将h264以外的音视频格式注释掉; 3. 设置RTSP URI、指定H264视频源文件。
不像vlc那么方便,此处的视频源文件必须是h264格式的,以下链接可以找到live555官网提供的几个h264格式的视频源文件。
http://www.live555.com/liveMedia/public/264/
二、编译myRTSPClient
$ cd myRtspClient/
$ ./genMakefiles linux
$ make
(更多的编译选项,可以查看README.md)
OK啦!这时,myRtspClient/example/里会生成3个example程序:simple_example, complete_example, common_example。
现在我们拿common_example先尝个鲜(假设rtsp服务端RTSP URI为:"rtsp://192.168.81.145/ansersion"):
$ ./common_example rtsp://192.168.81.145/ansersion
接下来我们就可以看到源源不断的数据传过来了,并且会被写入文件"test_packet_recv.h264",这个文件可以使用ffplay或者ElecardStreamTools来播放。
好啦,接下来我们先来简单介绍一下RTSP命令。
上一篇 下一篇
相关文章推荐
- 一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient)——收流篇:(一)简介
- ContentProvider
- yii权限控制的方法(三种方法)
- matplotlib 绘图总结
- yii使用activeFileField控件实现上传文件与图片的方法
- LAMP下的PHP执行sql语句的写法
- yii实现使用CUploadedFile上传文件的方法
- 如何为PHP贡献代码
- 如何为PHP贡献代码
- Yii中Model(模型)的创建及使用方法
- ARM上移植PHP5.5.30
- yii数据库的查询方法
- PHP校验身份证号
- yii分页组件用法实例分析
- MapReduce-XML处理-定制OutputFormat及定制RecordWriter
- 在cmd中登录ftp服务器
- PHP读取文件内容的五种方式
- 集合判断不用size判断用isEmtpy判断
- laravel结合datatables使用。
- php 正则取字符串中间 去指定字符串开头 指定字符串结尾