如何在android上提取rtp包时间戳

时间:2015-03-04 06:13:25

标签: android rtsp rtp libvlc libstreaming

我正在开发一个项目,我通过wifi将视频从一个Android设备直接传输到另一个设备,使用rtp over udp。

基本上,第一个Android设备托管一个rtsp服务器并侦听连接。一旦客户端Android设备连接到它(通过wi-fi直接)并开始侦听数据包,第一个设备开始流式传输视频内容。

我知道RTP数据包标头在位偏移32 - 64时有32位时间戳。但我不知道如何访问数据包的内容,然后只访问其标头的那一段。

目前,我正在使用libvlc在设备上播放流式视频。但我希望能够衡量两个设备之间的延迟。通过在到达时或通过其他方式从数据包中提取时间戳(也许VLC可以帮助?)

编辑:我将尝试从发布的代码here中学习,但仍在等待任何回复。

Edit2:所以我试着变得更简单。我做了一个客户端活动来连接到远程主机并使用android的DatagramSocket api以这种方式读取数据包。但是,即使客户端活动显示已连接,我的服务器活动也无法开始提供服务。不确定需要做什么才能让服务器知道有一个客户端可以提供服务。 MediaPlayer和VLC apis都能够在连接后开始流式传输视频。我错过了什么?我需要做的不仅仅是DatagramSocket.connect(ipaddress,port)吗?

0 个答案:

没有答案