Клиент RTSP в андроиде

Когда Вы собираетесь выполнить операцию, которая собирается занять много времени, или возможно непрерывный фоновый поток. Я предполагаю, что Вы могли всегда продвигать сумму потоков, доступных в пуле, но будет мало точки в несении затрат управления на поток, который никогда не будет отданным к пулу.

7
задан Vinay 29 July 2009 в 16:09
поделиться

4 ответа

Вы можете знать это или не знать, но Android имеет встроенную поддержку RTSP с помощью VideoView.

http://developer.android.com/reference/android/widget/VideoView .html

Это может сократить время разработки ... или может оказаться совершенно бесполезным, если вы пытаетесь создать собственный стек RTSP.

5
ответ дан 7 December 2019 в 01:25
поделиться

RTSP используется только для запуска потоковой передачи. Он дает вам SDP-описание реальных потоков. Вы должны управлять подключением RTCP и подключением RTP для каждого канала (аудио / видео). Используемые порты - «client_port».

Довольно сложно создать код RTSP / RTCP / RTP-стека с нуля. Вы можете ознакомиться с библиотекой live555 , которая реализует такой стек на C ++.

3
ответ дан 7 December 2019 в 01:25
поделиться

Поместите сниффер в сеть, вы должны увидеть UDP-пакет с целевым портом 4568, нацеленный на ваш IP-адрес.

С приличным сниффером вы сможете увидеть диалоговое окно rtsp. Возможно, вам что-то не хватает в ответах.

Вам также следует проверить содержимое ответа SETUP, чтобы узнать, был ли принят запрошенный порт.

Что нужно проверить:

  • Прослушивание в UDP.
  • Брандмауэр rules.
  • Диапазон запроса воспроизведения: не указывайте ни одного, чтобы быть уверенным, что сервер будет что-то воспроизводить.

Если вы находитесь за маршрутизатором или брандмауэром, вы, вероятно, ничего не получите, потому что ваш маршрутизатор / брандмауэр не знает, что делать со входящими UDP-пакетами

1
ответ дан 7 December 2019 в 01:25
поделиться

Сначала попробуйте установить локальный сервер Darwin Streaming в вашей локальной сети. Тогда брандмауэр не будет иметь значения. Потоковая передача будет работать.

Если вы хотите попробовать с внешнего сервера, то:

1 ) Проверьте client_ports, упомянутые в ответе СЕРВЕРА, некоторые серверы предлагают порты, отличные от запрошенного. Вы должны использовать порты, предложенные сервером.

2) Если порты правильные, то вы можете отправить 64-байтовые пустые пакеты с каждого портов UDP на сервер (так называемые «открыватели дверей»).

3) Если указанные выше два не помогают, проверьте журналы на стороне сервера. Сервер может закрывать порты UDP.

1
ответ дан 7 December 2019 в 01:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: