Воспроизведение RTSP: разница между VLC и Android в OpenCore

Я работаю над приложением Android для воспроизведения видеопотока по протоколу RTSP, предоставляемого потоковым сервером Darwin.

Моя проблема в том, что поток RTSP не может быть воспроизведен с помощью Android VideoView/MediaPlayer через определенные точки доступа WiFi, например, на моем рабочем месте. Я искал и обнаружил, что потоковый сервер Darwin использует UDP-порты 6970 - 6999 для потоковой передачи мультимедийных данных, и проблема может заключаться в брандмауэре. но тот же поток может быть воспроизведен с помощью VLC на ПК через ту же точку доступа WiFi.

В чем разница между механизмом, который использует VLC и встроенная медиа-платформа Android OpenCore? Можно ли мне написать свой собственный RTSP-клиент с openRTSP-источником live555 на Android? Любая помощь будет очень ценится.

Болтон

2 ответа

Решение

Я использовал wireshark для сканирования своей сети, и я думаю, что теперь я знаю разницу: когда я использую эмулятор Android, я вижу, что клиент продолжает отправлять UDP-запросы через порты 6970, 6971, но не получает ответа. И при использовании VLC данные RTP передаются в TCP через порт 554. И проблема вызвана брандмауэром, я думаю.

Как вы указали в своем ответе, VLC переключается на чередующийся Rtp поверх Rtsp, когда происходит сбой Udp.

Вот почему VLC продолжает работать.

Вы можете использовать мою библиотеку @ https://net7mma.codeplex.com/ если вы можете использовать.Net, или вы можете использовать его в качестве справочного материала для вашей собственной разработки.

Другие вопросы по тегам