LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1417|回复: 4

版主,请教在rtsp流中使用rtp的问题

[复制链接]
发表于 2008-6-25 19:57:01 | 显示全部楼层 |阅读模式
版主,看您发的流媒体的帖子,希望能给点儿指点,我以前是使用udp传输
rtp包,可是现实中基本都使用rtp over trsp来传输视频流的,我现在也改
在rtsp连接中只发送rtp,但我不发送rtcp可以不,也不处理收到的RTCP包,
我这样做只能显示几秒钟就卡死了,是不是必须处理RTCP包,还是怎么的,
能不能给点建议,你是怎么处理的。我是个新手,这个问题为难我好几天了,
指点下吧。
发表于 2008-6-25 21:54:29 | 显示全部楼层
我是不处理RTCP包的,但是要接收,完了之后发现是RTCP(第一个字节是$),我就丢弃。
我也不发送RTCP包。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-26 12:05:29 | 显示全部楼层
我也是这么做的,可是我发送RTP包客户端连上显示几个画面就卡掉了,
我感觉是时间戳计算的问题,
视频好像是30毫秒的,我用UDP接口是直接每帧加3600,(实际上我每秒只发25帧)
。用TCP接口,如果时间戳还是和原来一样每次加固定的值就出现了现在的情况。
可是如果自己重新根据系统时间计算时间戳又把握不准。我现在用的时间戳计算函数
是这样的,
u_int32_t get_timestamp()
{
        u_int32_t ts;
        struct timeval tv;

        gettimeofday(&tv,NULL);
        return (tv.tv_usec/1000 + tv.tv_sec *1000 ) & 0xFFFFFFFF;
}
不知道对不对,现在的状况还是不行,能不能提示下您是怎么处理时间戳问题的,

(我最新的版本在SDP媒体描述时加了个b=RR:0\r\nb=SR:0\r\n.
这下子轻松多了,对方根本不发送rtcp包了)
回复 支持 反对

使用道具 举报

发表于 2008-6-26 14:09:21 | 显示全部楼层
Notice:
RTP的时间戳对应的是视频的PTS,视频帧有PTS和DTS的区别。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-26 15:46:59 | 显示全部楼层
我用UDP时是每帧加3600,是能正常播放的,
用TCP时我选择了实时计算时钟,因为我是摄
像头监控程序,另外也考虑了选用每帧加3600
的方式,(DSP线程每秒都会帮我编码一定帧
数),但目前的问题是这两种方法都不能奏效。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表