Реализация стека RTSP - PullRequest
       25

Реализация стека RTSP

1 голос
/ 01 августа 2009

Я работаю над тем, чтобы URL-адрес RTSP работал на Android.

  1. Я использовал MediaPlayer и VideoView для воспроизведения URL-адреса RTSP, но оба они не воспроизводятся в устройстве и эмуляторе G1. Ошибка PVMFFailureiin PLAYER_INIT.

  2. Так что я подумал о реализации RTSP-клиента с нуля. Я разработал небольшое приложение, оно обменивается всеми сообщениями (DESCRIBE, SETUP, PLAY, TEARDOWN). Но проблема в том, что после PLAY я должен получить RTP-пакеты в client_port, как указано в заголовке транспорта, но дамп TCP показывает следующие сообщения. Я думаю, что UDP-пакеты приходят, но не принимаются в приложении.

11: 38: 50.213394 IP ew-in-f177.google.com.6970> 192.168.1.2.6970: UDP, длина 444 11: 38: 50.213451 IP 192.168.1.2> ew-in-f177.google.com: ICMP 192.168.1.2 порт udp 6970 недоступен, длина 36

Пожалуйста, дайте мне знать, как решить эту проблему.

Ответы [ 2 ]

0 голосов
/ 11 марта 2010

Некоторые телефоны (я не знаю, подпадает ли Android в эту категорию или нет) включают в себя брандмауэр на устройстве. Чтобы получить пакеты, вам, возможно, придется выполнить дырокол (т.е. отправить фиктивный пакет на сервер. Это создаст правило разрешения на брандмауэре, работающем на локальном устройстве. Это также создаст соответствующее преобразование NAT при необходимости, а также .)

Находится ли устройство в WIFI или в сети оператора (какой оператор)?

0 голосов
/ 01 августа 2009

OpenCORE, мультимедийный движок в Android, довольно строго придерживается различных стандартов. Некоторые вещи, которые могут работать в дикой природе (например, MP3 поверх RTSP), не поддерживаются, потому что их нет в соответствующей спецификации. По крайней мере, это то, что нам сказали.

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

...