Понимание синтаксиса для URL RTSP
Методом проб и ошибок мне удалось отобразить канал с камеры RTSP WiFi в VLC, используя URL:
rtsp://192.168.2.33:554?user=admin&password=&channel=2&stream=1.sdp
Однако все примеры, которые я нахожу, используют что-то вроде:
rtsp://192.168.2.33:554/user=admin&password=&channel=2&stream=1.sdp
с /
вместо ?
, /
не работает для меня. VLC не может открыть поток. Кто-нибудь знает в чем разница?
2 ответа
Вопросительный знак используется в URI в качестве разделителя пути к ресурсу и аргументов запроса. Согласно RFC 3986:
foo://example.com:8042/over/there?name=ferret#nose
\_/ \______________/\_________/ \_________/ \__/
| | | | |
scheme authority path query fragment
И в разделе 3.3:
Путь завершается первым знаком вопроса ("?") Или знаком числа ("#") или концом URI.
Итак, ваш первый пример верен.
Второй (без ?
) неверно, поскольку объединяет аргументы запроса в путь к запрашиваемому ресурсу.
Как примечание: браузеры (по крайней мере, текущие версии Chrome или Firefox) автоматически изменятся:
http://192.168.2.33:554?user=admin&password=&channel=2&stream=1.sdp
в:
http://192.168.2.33:554/?user=admin&password=&channel=2&stream=1.sdp
Пытаться
rtsp://user:password@ip.of.your.device/
Это должно дать вам, по крайней мере, первый канал, после этого он может зависеть от устройства относительно синтаксиса для остального.
rtsp://user:password@ip.of.your.device/cam/realmonitor?channel=1&subtype=1
работает для меня, но ваш пробег может отличаться.