2015-05-06 1 views
3

Я пытаюсь передать видео с Android-устройства на ПК с помощью библиотеки libstreaming. Чтобы подключить два устройства, я открываю Hotspot на устройстве Android и подключаю к нему ПК.Потоковое видео с Android-устройства на ПК с использованием libstreaming

Я попробовал examples 1 and 2 и заставил их работать. В примере 2 я получаю много UDP-пакетов в Wireshark. Но я не могу открыть поток в VLC Player. В примере 1 я ничего не получаю в Wireshark.

Может ли кто-нибудь сказать мне, что мне нужно напечатать в VLC, чтобы открыть поток? Я пробовал много разных вещей, но я не уверен, правильно ли я это сделал. Например, я думаю, что это должно быть что-то вроде rtsp: // ipofandroiddevice: port

ответ

0

Я не знаю библиотеку libstreaming, но похоже, что он отправляет пакеты RTP на адрес.

В этом случае вы должны только открыть: rtp: // @: порт на вашем компьютере, чтобы получить видео. Просто помните о проблемах с NAT, если вы переходите извне внутренней сети.

+0

Спасибо за помощь. Я пробовал это, но это не сработало. Я уверен в порте, потому что вижу порт назначения в Wireshark. Я думаю, что проблема может быть где-то в другом месте. Возможно, есть проблема с кодеком видео или чем-то подобным. – Phil

+0

Вы пробовали открыть vlc с флагом -vvv? Вы должны уметь видеть, видят ли пакеты пакеты и вообще live555 logs – Ambi

+0

Теперь я уверен, что это не проблема с vlc. Я создал простое приложение для Android, которое постоянно отправляет UDP-пакеты с классом datagramSocket. Я также написал небольшое приложение Java, которое просто записывает полученные пакеты на консоль. Снова я могу видеть пакеты в Wireshark, но мой сервер ничего не получает. Возможно, порты, которые я использую, блокируются брандмауэром. Но могу ли я получать пакеты с Wireshark, даже если порты заблокированы? – Phil

0

URL-адрес RTSP вы вывесили в вашем вопросе отсутствуют некоторые параметры, это должно быть что-то подобное,

RTSP: // phone_local_ip: 1234? h264 = 200-20-320-240

200 = buf | 20 = fps | 320 = ширина | 240 = высота

В библиотеке есть класс UriParser, возможно, вам потребуется проверить его на другие возможные форматы URL.

+0

Я использую 'rtsp: //172.xx.xx.67: 1777? H264 = 500000-15-640-480': вход в систему сервера android stream: ОПЦИИ 200 -> DESCRIBE 200 -> SETUP 200 -> PLAY 200 -> TEARDOWN 200 -> Анализ ошибок CSeq (IllegalStateException: до сих пор нет успешного совпадения) - в запросе нет метода –

+0

Не уверен, что я не сталкивался с этой проблемой. Несколько советов, попробуйте уменьшить буфер до 200. Как-то для меня другое разрешение не срабатывало, кроме 320-240. Хотя другие были в списке поддерживаемых резолюций. – Umair

+0

Благодарим вас за ответ. Я попробую ваше предложение в ближайшее время. Полностью моя проблема отброшена [здесь] (http://stackoverflow.com/questions/40287579/stream-using-libstreaming-to-vlc-exception). –