В чем разница между RTP или RTSP на потоковом сервере? - PullRequest
51 голосов
/ 29 ноября 2010

Я подумываю о разработке сервера потоковой передачи, и у меня есть следующий вопрос: сделайте через RTSP (пример URL: rtsp://192.168.0.184/myvideo.mpg) или RTP (пример URL: rtp://192.168.0.184).Я понял, что сервер RTSP в основном используется для потоковой передачи файлов, которые уже существуют, то есть не работают.RTP сервер используется для трансляции.

Кто-нибудь поправит меня, если я ошибаюсь, я прав?то есть, который отображается во время трансляции в потоковом режиме.

Ответы [ 6 ]

87 голосов
/ 29 ноября 2010

Вы получаете что-то не так ... RTSP - это протокол потоковой передачи в реальном времени. Это означает, что вы можете транслировать все, что вы хотите в режиме реального времени. Таким образом, вы можете использовать его для потоковой передачи LIVE-контента (независимо от того, что это, видео, аудио, текст, презентация ...). RTP - это транспортный протокол, который используется для передачи медиаданных, согласованных по RTSP.

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

Итак, если вы хотите, чтобы ваш сервер только начинал потоковую передачу при запросе URL-адреса, вы можете реализовать своего рода RTP-сервер. Но если вам нужен больший контроль и потоковое видео в режиме реального времени, вы должны использовать RTSP, поскольку он передает SDP и другие важные данные декодирования.

Прочитайте документы, на которые я ссылался, они являются хорошей отправной точкой.

15 голосов
/ 02 марта 2011

AFAIK, RTSP вообще не передает потоки, это просто внеполосный протокол управления с такими функциями, как PLAY и STOP.

Необработанные UDP или RTP через UDP являются протоколами передачи для потоков, какНеобработанный TCP или HTTP через TCP.

Чтобы иметь возможность потоковой передачи определенной программы по заданному протоколу передачи, для вашего формата контейнера должен быть определен метод инкапсуляции ,Например, TS-контейнер может передаваться по UDP, а Matroska - нет.

Почти все, что может быть передано через TCP, хотя.

(То, что кодек делает васиспользование также имеет значение косвенно, поскольку ограничивает форматы контейнеров, которые вы можете использовать.)

11 голосов
/ 29 ноября 2010

Некоторые основы:

Сервер RTSP можно использовать как для мертвого источника, так и для живого источника.Протоколы RTSP предоставляют вам команды (как ваш VCR Remote), а функциональность зависит от вашей реализации.

RTP - это протокол в реальном времени, используемый для передачи аудио и видео в реальном времени.Используемый транспорт может быть одноадресным, многоадресным или широковещательным, в зависимости от транспортного адреса и порта.Помимо транспортировки RTP делает много вещей для вас, таких как пакетирование, переупорядочение, управление джиттером, QoS, поддержка синхронизации губ .....

В вашем случае, если вы хотите транслировать потоковый сервер, вам нужны обаRTSP (для управления), а также RTP (трансляция аудио и видео)

Для начала вы можете просмотреть пример кода, предоставленного live555

4 голосов
/ 03 сентября 2015

Я слышу твою боль.Я прохожу это прямо сейчас (годы спустя).Из того, что я узнал, вы можете думать о RTSP как о «контроллере видеомагнитофона», протокол позволяет указать, какие потоки (презентации) вы хотите воспроизвести, затем он отправит вам описание мультимедиа, а затем вы сможетеиспользуйте RTSP для воспроизведения, остановки, приостановки и записи удаленного потока.СМИ сами идут по RTP.RTSP обычно реализуется через другой сокет или коммуникационный уровень.Хотя это просто протокол, чаще всего он реализуется сервером через сокет.Для живых потоков запрашиваемый вами поток RTSP - это просто имя потока.Ему не нужно ссылаться на файл на сервере, реализация RTSP на сервере может проанализировать этот поток, собрать живой граф и затем предоставить SDP (описание) для этого имени потока.Но это, конечно, зависит от способа реализации сервера RTSP.Для «живых» потоков, вероятно, проще использовать RTP, но вам потребуется способ передачи SDP с RTP-сервера клиенту, который хочет воспроизвести этот поток.

4 голосов
/ 29 ноября 2010

Я думаю, это правильно. RTSP может использовать RTP для внутреннего использования.

0 голосов
/ 12 марта 2013

RTSP (фактически RTP) может использоваться для потоковой передачи видео, но также и для многих других типов мультимедиа, включая живые презентации.Rtsp - это просто протокол, используемый для настройки сеанса RTP.

Подробную информацию вы можете найти в моей реализации RTSP Server с открытым исходным кодом по следующему адресу: https://net7mma.codeplex.com/

Или в моей статье @http://www.codeproject.com/Articles/507218/Managed-Media-Aggregation-using-Rtsp-and-Rtp

Он поддерживает потоки ресурсов, а также динамическое создание потоков, реализованы различные RFC, и библиотека достигает лучшей производительности и меньше памяти, чем FFMPEG и практически все другие решения на транспортном уровне итаким образом, он подходит для использования в качестве централизованной точки доступа для большинства сценариев.

...