Как извлечь временную метку пакета RTP на Android

Я работаю над проектом, в котором я передаю видео по Wi-Fi direct с одного устройства Android на другое, используя rtp over udp.

По сути, первое устройство Android размещает сервер RTSP и прослушивает соединения. Как только клиентское устройство Android подключается к нему (через Wi-Fi Direct) и начинает прослушивать пакеты, первое устройство начинает потоковую передачу видеоконтента.

Я знаю, что заголовки пакетов RTP имеют 32-битную временную метку со смещением битов 32 - 64. Но я не знаю, как получить доступ к содержимому пакета и впоследствии получить доступ только к этому сегменту своего заголовка.

В настоящее время я использую libvlc для воспроизведения потокового видео на устройстве. Но я хотел бы иметь возможность измерить задержку между двумя устройствами. Либо извлекая временные метки из пакетов по прибытии, либо другим способом (может быть, VLC может помочь?)

Изменить: я собираюсь учиться из кода, размещенного здесь, но все еще жду каких-либо ответов.

Edit2: так что я пытаюсь пойти проще. Вместо этого я сделал клиентское действие для подключения к удаленному хосту и чтения пакетов таким образом, используя Android-DatagramSocket API. Тем не менее, моя активность на сервере не начинает обслуживаться даже после того, как активность клиента говорит, что она подключена. Не уверен, что нужно сделать, чтобы сервер знал, что клиент готов к обслуживанию. MediaPlayer и VLC apis оба смогли начать потоковое видео после подключения. Что мне не хватает? Нужно ли делать больше, чем DatagramSocket.connect (ipaddress, порт)?

0 ответов

Другие вопросы по тегам