Воспроизведение Live RTP потоков на Android - PullRequest
2 голосов
/ 03 мая 2011

Я пытаюсь построить клиент на Android, который будет получать потоки RTP и воспроизводить его.Я искал на stackoverflow и Google, и обнаружил, что класс MediaPlayer может быть использован для этого.Но MediaPlayer используется, когда в качестве источника данных используется URL или файл.В моем сценарии мой потоковый сервер отправляет RTP-потоки на определенный порт моего клиента.Итак, есть ли способ воспроизвести MediaPlayer для воспроизведения этого потока, не записывая его в файл.

Ответы [ 2 ]

1 голос
/ 10 мая 2011

Вы пробовали это?

Вашим «источником данных» для MediaPLayer является ваша ссылка rtsp - rtsp: //127.0.0.0: 550 / mystream.3gp

Я сделал это с помощью VideoView, MediaPlayer - просто абстракция, поэтому он не должен быть слишком другим.

MedaiPlayer проанализирует URL-адрес rtsp и запустит Android RTSPEngine, который свяжется с RTP-сервером и установит соответствующие порты для передачи данных.

0 голосов
/ 08 января 2013

Метод, описанный выше, работает - вам нужно предоставить ссылку rtsp (вам, вероятно, не понадобится порт, поскольку по умолчанию RTSP - порт 554, а не 550).

RTSP: //se.rv.er.ip/mystream

По существу, между клиентом и сервером (DESCRIBE, SETUP, PLAY) происходит диалог RTSP, который будет содержать информацию, которую должен иметь файл .sdp для широковещательной передачи RTP.

Вы не можете получить поток RTP, если сервер, отправляющий его, не поддерживает RTSP.

Если вам нужна дополнительная информация, я бы порекомендовал просто запустить wireshark на потоковом клиенте или сервере. Я обнаружил, что это помогло дополнить чтение RFC.

Удачи!

...