0

我正在做一个项目,我使用 rtp over udp 通过 wifi-direct 将视频从一个 android 设备流式传输到另一个设备。

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

我知道 RTP 数据包标头在位偏移 32 - 64 处具有 32 位时间戳。但我不知道如何访问数据包的内容并随后仅访问其标头的该段。

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

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

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

4

0 回答 0