Android: использование TCP для получения потока от Darwin Streaming Server (DSS) - PullRequest
0 голосов
/ 28 марта 2011

Я работаю над приложением Android для воспроизведения потока rtsp с сервера, который использует DSS. Это работает большую часть времени, но иногда я не могу заставить его работать. Я проверил с помощью wireshark и увидел, что UDP-запрос продолжает отправляться, но не получает ответа, и причина может быть в том, что брандмауэр заблокировал UDP-пакеты, я полагаю. Когда я использую VLC для открытия того же потока RTSP, я получаю ответ RTP, использующий TCP.

На данный момент, поскольку я не могу изменить состояние брандмауэра, я хочу изменить свое приложение, чтобы получать поток RTSP с использованием TCP, что, по-моему, с помощью встроенного MediaPlayer / VideoView невозможно. Тогда как я мог это сделать?

Есть предложения?

Заранее спасибо.

Болтон

1 Ответ

0 голосов
/ 28 марта 2011

Если встроенный медиаплеер не поддерживает его, вам необходимо внедрить свой собственный клиент RTSP, а в запросах на установку RTSP необходимо указать TCP в качестве транспорта.

СтандартныйНастройка RTSP:

Трек 1:

SETUP rtsp://146.64.28.137/TheItCrowd.mm1/track1 RTSP/1.0
CSeq: 3
Transport: RTP/AVP;unicast;client_port=4116-4117
User-Agent: openRtsp (LIVE555 Streaming Media v2010.04.09)

Трек2:

SETUP rtsp://146.64.28.137/TheItCrowd.mm1/track2 RTSP/1.0
CSeq: 4
Transport: RTP/AVP;unicast;client_port=4118-4119
Session: 6B8B4567
User-Agent: openRtsp (LIVE555 Streaming Media v2010.04.09)

Настройка RTSP для чередования по RTSP / TCP:

Track1:

SETUP rtsp://146.64.28.137/TheItCrowd.mm1/track1 RTSP/1.0
CSeq: 3
Transport: RTP/AVP/TCP;unicast;interleaved=0-1
User-Agent: openRtsp (LIVE555 Streaming Media v2010.04.09)

Track2:

SETUP rtsp://146.64.28.137/TheItCrowd.mm1/track2 RTSP/1.0
CSeq: 4
Transport: RTP/AVP/TCP;unicast;interleaved=2-3
Session: 35B9387A
User-Agent: openRtsp (LIVE555 Streaming Media v2010.04.09)
...