RTSP — протокол за поточно предаване в реално време: определение и функции
RTSP — протокол за поточно предаване в реално време: дефиниция и ключови функции, управление на стрийминг сървъри, разлика с RTP и приложения за аудио/видео в реално време.
Протоколът за стрийминг в реално време (RTSP), разработен от IETF и създаден през 1998 г. като RFC 2326, е протокол за използване в системи за стрийминг на мултимедия, който позволява на клиент да управлява дистанционно сървър за стрийминг на мултимедия, като издава команди, подобни на тези от видеокасетофона, като "възпроизвеждане" и "пауза", и позволява достъп до файлове на сървъра в зависимост от времето. RTSP е текстов, командно-ориентиран протокол (по подобие на HTTP) и често се използва за управление на видео на живо и записи в IP камери, системи за видеонаблюдение и услуги за видео при поискване (VoD).
Важно: самото изпращане на поточни данни не е част от протокола RTSP. Повечето RTSP сървъри използват базирания на стандартите RTP като транспортен протокол за действителните аудио/видео данни. Сървърът RTSP на RealNetworks също използва патентования RDT на RealNetworks като транспортен протокол.
Как работи RTSP
RTSP изпълнява ролята на управленски и контролен слой между клиент (например видео плейър или NVR) и мултимедиен сървър. Типичната комуникация включва:
- описание на сесията с помощта на SDP (Session Description Protocol),
- настройване на транспортните параметри (например кои портове да се използват за RTP/RTCP),
- стартиране и спиране на възпроизвеждането (PLAY, PAUSE, TEARDOWN и др.),
- поддържане на състояние на сесията чрез идентификатори (Session header).
Често използвани RTSP методи
- OPTIONS — запитване кои методи поддържа сървърът;
- DESCRIBE — заявка за описание на медията (обратно се връща SDP);
- SETUP — конфигурира транспортни канали (unicast/multicast, UDP или interleaved TCP);
- PLAY — стартира възпроизвеждане от зададено време;
- PAUSE — временно спира възпроизвеждането;
- TEARDOWN — затваря сесията и освобождава ресурси;
- ANNOUNCE, RECORD, GET_PARAMETER, SET_PARAMETER — допълнителни методи за публикуване, запис и управление.
Транспорт и портове
По подразбиране RTSP използва TCP порт 554 за контролни връзки. За пренос на медия обикновено се използва RTP по UDP, придружен от RTCP за мониторинг и синхронизация. Ако UDP е блокиран или се желае мултиплексиране през една връзка, RTP/RTCP може да вървят "interleaved" през самата RTSP TCP сесия (технология, описана в RFC 2326). Заобикаляне на защитни стени и NAT често става чрез тунелиране през HTTP/HTTPS или чрез използване на TCP портове.
Сигурност и удостоверяване
- RTSP поддържа стандартни механизми за удостоверяване (Basic и Digest), като Digest е предпочитан пред Basic.
- За криптиране на управленските съобщения и/или медийния поток могат да се използват TLS/SSL (понякога обозначавано като RTSPS) или тунелиране през HTTPS.
- Проблеми като незащитени настройки по подразбиране и открити портове правят RTSP устройства често цел на атаки; препоръчва се силни пароли, актуализации и използване на криптиране и VPN при нужда.
Приложения и ограничения
RTSP намери широко приложение в:
- IP камери и системи за видеонаблюдение, където е важен контролът върху възпроизвеждането и ниската латентност;
- услуги за видео при поискване (VoD) и IPTV;
- системи за съвместна работа и дистанционно управление на стрийминг сървъри.
Ограничения и предизвикателства:
- по-трудна работа през защитни стени и NAT при UDP
- не винаги директна поддръжка в уеб браузъри без плъгини (поради което в уеб среда често се използват HLS, MPEG-DASH или WebRTC);
- по-сложно stateful управление на сървъра в сравнение с простите HTTP GET потоци.
Кодеци и формати
RTSP не определя кодеци — той само договаря и управлява потока. Кодеците (например H.264/AVC, H.265/HEVC, MPEG-4, AAC и др.) и контейнерите се посочват в SDP описанието и самите данни се предават чрез RTP в зависимост от договорените формати.
Алтернативи
За стрийминг в уеб среда и масово доставяне към множество клиенти се предпочитат адаптивни HTTP технологии като HLS и MPEG-DASH. За приложения с много ниска латентност и двупосочна комуникация (напр. видео конференции) съвременните решения използват WebRTC. Въпреки това RTSP остава популярен за интеграция с локални системи за видеонаблюдение и професионални стрийминг решения.
Заключение: RTSP е гъвкав протокол за контрол на мултимедийни потоци, особено подходящ за сценарии, където е необходим пряк контрол върху възпроизвеждането и ниска латентност. За съвременни уеб приложения и масово доставяне обаче често се избират други подходи поради въпроси за съвместимост и сигурност.
Клиенти
- GStreamer
- Media Player Classic
- MPEG4IP
- MPlayer
- QuickTime
- Плейър на Avi
- RealPlayer
- Skype
- Медиен плейър VLC
- Winamp
- Windows Media Player
- Xine
- MythTV чрез Freebox
- Играч Gom
Софтуер на сървъра
- Сървър за стрийминг на QuickTime: Стрийминг сървър със затворен код на Apple, който се доставя с Mac OS X Server
- Дарвин стрийминг сървър: Отворена версия на Quicktime Streaming Server, поддържана от Apple
- pvServer: Това е продуктът на Alcatel-Lucent за стрийминг сървър, наричан по-рано PacketVideo Streaming Server.
- Helix DNA Server: Стрийминг сървър на RealNetworks. Предлага се както с отворен код, така и със собствена версия.
- Live555: С++ сървърни и клиентски библиотеки с отворен код, използвани в добре познати клиенти като VLC и mplayer.
- VideoLAN: Медиен плейър и стрийминг сървър с отворен код
- Медийни услуги на Windows: стрийминг сървърът на Microsoft, включен в Windows Server.
- VX30: Стрийминг видео сървър и вграден JAVA клиент от Maui X-Stream.
Свързани страници
- Транспортен протокол в реално време (RTP)
- Fusion RTSP решение за вградени системи, например IPTV, интернет телевизия и мобилни интернет устройства.
обискирам