(转)live555 rtsp 客户端(openRTSP)使用注意事项

1:  编译

(1):  ./genMakefiles           linux

(2):  make

2: 服务器环境

服务器端是一个支持RTSP server的H.264的摄像头;

3: 运行 openRTSP

./openRTSP  -d  20   -f  20  -w 640  -h  480   -b  400000  "rtsp://192.168.2.239/id=0"

或 ./openRTSP    -f  20  -w 640  -h  480   -b  400000  "rtsp://192.168.2.239/id=0"

参数解释;  -d  20   --->程序运行时间,如果没有程序持续从服务器获取视频;

-f   20   ----> 帧率

-w  640  -h  480 -----> 帧分辨率

-b  400000  ---->码率

4: 如果不修改playCommon.cpp的代码,openRTSP将获取的视频数据通过stdout直接打印到屏幕

5: 如果是自己取裸码流,则可以调用SPS相关的函数,将H264的帧信息告诉解码器,否则无法解码

unsigned int num=1;

SPropRecord * sps = parseSPropParameterSets(subsession->fmtp_spropparametersets(),num);

fileSink = H264VideoFileSink::createNew(*env, outFileName,

subsession->fmtp_spropparametersets(),

fileSinkBufferSize, oneFilePerFrame);

struct timeval tv={0,0};

unsigned char start_code[4] = {0x00, 0x00, 0x00, 0x01};

fileSink-> addData(start_code, 4, tv);

fileSink->addData(sps[0].sPropBytes,sps[0].sPropLength,tv);

delete[] sps;

6: 稍微修改代码让openRTSP只录视频,且保存到指定的文件

streamURL = argv[1];

// add by Andy_xi

createReceivers = True;   // 保存视频

outputAVIFile = False;   //因为是H264

videoOnly = True;

singleMedium = "video";   //只要视频

//<------end

7: 调试记录

启动openRTSP后,一定的看到SDP信息中的SPS信息,否则解码器可能不能解码

a=fmtp:106 profile-level-id=42001E;sprop-parameter-sets=Z0KAKNoB4AiXlQ==,aM48gA==;packetization-mode=0

只要有这个信息,用file  命令看生成h264文件显示如下:

new.h264: JVT NAL sequence, H.264 video, baseline @ L 40

参考:

1,在Livemedia的基础上开发自己的流媒体客户端

http://www.cnblogs.com/lidabo/p/4103476.html

时间: 2024-10-10 10:21:40

(转)live555 rtsp 客户端(openRTSP)使用注意事项的相关文章

一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient):(二)示例

一.搭建RTSP服务器 要想测试RTSP客户端,没有服务端怎么行呢?然而,有时候条件有限,手头并没有独立的RTSP服务器拿来用,那么我们不妨自己撘一个. 以下有2种方便的做法可供选择: 第一种:使用vlc播放器(推荐做法) 这种方法最方便,而且任何视频格式的文件都可以拿来测试,具体做法网上有很多,以下提供一个链接以供参考. http://blog.csdn.net/beitiandijun/article/details/9232405 这种方法只有一个地方需要注意一下: 如果你想让你的vlc

一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient)——实现篇:(五)用户接口层之提取媒体流数据

当RTSP客户端向RTSP服务端发送完PLAY命令后,RTSP服务端就会另外开启UDP端口(SDP协商定义的端口)发送RTP媒体流数据包.这些数据包之间会间隔一段时间(毫秒级)陆续被发送到RTSP客户端,此时RTSP客户端可以调用GetMediaData等接口获取媒体流数据. 一.uint8_t * RtspClient::GetMediaData(string media_type, uint8_t * buf, size_t * size, size_t max_size) 该函数的作用即获

(转)live555 RTSP Server RTP over TCP BUG

最近碰到一个非常棘手的问题,NVR通过ONVIF协议接入IPC进行录像,在录像时,会发现其中有个别IPC会出现录像断断续续的情况.这种情况很难复现,但是这种情况一旦出现,整个过程会一直持续很长时间,一般是直到重启RTSP Server. 通过苦逼型的大规模测试发现: 1.IPC与NVR之间是通过RTP over TCP的方式传输数据(这个测试结果很简单就可以知道): 2.开启1个客户端(通过RTP over TCP传输数据),打开rtsp流后,使用任务管理器强制结束.紧接着马上再开1个客户端,打

live555 RTSP Server RTP over TCP BUG

最近碰到一个非常棘手的问题,NVR通过ONVIF协议接入IPC进行录像,在录像时,会发现其中有个别IPC会出现录像断断续续的情况.这种情况很难复现,但是这种情况一旦出现,整个过程会一直持续很长时间,一般是直到重启RTSP Server. 通过苦逼型的大规模测试发现: 1.IPC与NVR之间是通过RTP over TCP的方式传输数据(这个测试结果很简单就可以知道): 2.开启1个客户端(通过RTP over TCP传输数据),打开rtsp流后,使用任务管理器强制结束.紧接着马上再开1个客户端,打

python3实现的rtsp客户端脚本

一.说明 此客户端使用python3编写 此客户端实现RTSP的OPTIONS, DESCRIBE, SETUP , PLAY, GET_PARAMETER,TEARDOWN方法,未实现SET_PARAMETER方法(因为不懂怎么才能生成这个请求没拦截到数据包) RTSP有且只有以上7种请求,而且基本是对同一URI依次执行以上7种请求:或者说RTSP就是"7种请求"+"1个URL",如果想做渗透测试也就针对这"7+1"做参数溢出测试,没很多可测的

HBase Go客户端Row构造注意事项

1. Hbase 的Go客户端语言使用方法 2. Hbase的Row使用注意事项 2.1. Row的前几个字段尽量散列 2.2. Row的排序是把所有Row中的字符做字典排序 我们最近在一个项目中使用Hbase做日志数据的存储,在其之上做一些数据分析工作,相对java来说,团队成员对Go的使用更熟练,所以自然使用Go作为Client的开发语言, 以前从来没有跟Hbase打过交道,本来一个比较简单的任务,愣是磕磕绊绊做了好久... 本文只说说Hbase的Row构造时的注意事项 1 Hbase 的G

多媒体开发之---live555 分析客户端

live555的客服端流程:建立任务计划对象--建立环境对象--处理用户输入的参数(RTSP地址)--创建RTSPClient实例--发出DESCRIBE--发出SETUP--发出PLAY--进入Loop循环接收数据--发出TEARDOWN结束连接. 可以抽成3个函数接口:rtspOpen rtspRead rtspClose. 首先我们来分析rtspOpen的过程: int rtspOpen(rtsp_object_t *p_obj, int tcpConnect) { ... ... TRA

live555 RTSP服务器建立及消息处理流程

DynamicRTSPServer::creatnew():    1.调用继承自RTPSever::setUpOurSocket:        1.调用 GroupsockHelper 的 setupStreamSocket创建一个socket连接,并绑定,        2.设置socket的发送缓存大小,        3.调用listen开始监听端口,设置同时最大能处理连接数 LISTEN_BACKLOG_SIZE=20,如果达到这个上限则client端将收到ECONNERREFUSE

一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient)——实现篇:(一)概览

myRTSPClient主要可以分成3个部分: 1. RTSPClient用户接口层: 2. RTP 音视频传输解析层: 3. RTP传输层. "RTSPClient用户接口层": 包含所有myRTSPClient的外显特性,包括与RTSP服务器交互接口和音视频数据提取接口,直接供用户使用. "RTP音视频传输解析层": 用于区分不同音视频格式(H264,H265,MPA等等)RTP数据包,分离其中的音视频数据和格式数据."RTSPClient用户接口层&