Подтвердить что ты не робот

В чем разница между RTP или RTSP на потоковом сервере?

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

Как я понял, сервер RTSP в основном используется для потоковой передачи файлов, которые уже существуют, т.е. не живут. Сервер RTP используется для трансляции.

Кто-то поправьте меня, если я ошибаюсь, я прав?

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

Необработанные UDP или RTP через UDP - это протоколы передачи для потоков, таких как raw TCP или HTTP через TCP.

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

Практически все может транспортироваться через TCP.

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

Ответ 3

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

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

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

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

Начнем с того, что вы можете пройти образец кода, предоставленный live555

Ответ 4

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

Ответ 5

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

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

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

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

Ответ 6

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