В чем разница между RTP или RTSP на потоковом сервере?
Я думаю о разработке потокового сервера, и у меня есть следующий вопрос, сделать над RTSP (пример url:rtsp://192.168.0.184/myvideo.mpg
) или RTP
(url пример: rtp://192.168.0.184
).
как я понял, является RTSP
сервер в основном используется для потокового воспроизведения файлов, которые уже существуют, т. е. не жить. RTP
сервер используется для трансляции.
кто-нибудь поправьте меня, если я ошибаюсь, Я прав?.
что я хочу развить сервер для трансляции видео контента на компьютере экран, то есть, который отображается во время трансляции в потоковом режиме.
6 ответов
вы получаете что-то неправильно... RTSP - это протокол потоковой передачи в реальном времени. То есть, вы можете транслировать все, что хотите, в режиме реального времени. Таким образом, вы можете использовать его для потоковой передачи живого контента (независимо от того, что это такое, видео, аудио, текст, презентация...). RTP - это транспортный протокол, который используется для передачи данных мультимедиа, которые согласовываются по RTSP.
вы используете RTSP для управления передачей мультимедиа через RTP. Вы используете его для того чтобы настроить, сыграть, приостановить, teardown поток...
Итак, если вы хотите, чтобы ваш сервер просто начал потоковую передачу, когда запрашивается URL-адрес, вы можете реализовать какой-то сервер только для RTP. Но если вы хотите больше контроля и если вы потоковое видео в прямом эфире, вы должны использовать RTSP, потому что он передает SDP и другие важные данные декодирования.
прочитайте документы, которые я связал здесь, они являются хорошей отправной точкой.
AFAIK, RTSP не передает потоки вообще, это просто протокол внеполосного управления с такими функциями, как воспроизведение и остановка.
Raw UDP или RTP через UDP-это протоколы передачи для потоков, таких как raw TCP или HTTP через TCP.
чтобы иметь возможность передавать определенную программу по заданному протоколу передачи,метод инкапсуляции должен быть определен для формат контейнера. Например, контейнер TS может быть передан через UDP но Матроска не может.
в значительной степени все может быть транспортировано через TCP, хотя.
(тот факт, что кодек вы используете также косвенно, поскольку это ограничивает форматы контейнеров, которые вы можете использовать.)
некоторые основы:
RTSP сервер может использоваться как для мертвого источника, так и для живого источника. Протоколы RTSP предоставляют Вам команды (например, ваш VCR Remote), и функциональность зависит от вашей реализации.
RTP-это протокол реального времени, используемый для транспортировки аудио и видео в режиме реального времени. Используемый транспорт может быть одноадресной, многоадресной или широковещательной, в зависимости от адреса транспорта и порта. Помимо транспортировки RTP делает много вещей для вас, как пакетизация, переупорядочивание, управление дрожанием, QoS, поддержка синхронизации губ.....
в вашем случае, если вы хотите вещания потокового сервера, то вам нужно как RTSP (для управления), а также RTP (вещание аудио и видео)
для начала вы можете пройти через образец кода, предоставленного live555
Я слышу твою боль. Я прохожу через это прямо сейчас (годы спустя). Из того, что я узнал, вы можете думать о RTSP как о "контроллере видеомагнитофона", протокол позволяет указать, какие потоки (презентации) вы хотите играть, затем он отправит вам описание носителя, а затем вы можете использовать RTSP для воспроизведения, остановки, паузы и записи удаленного потока. Сам носитель идет по RTP. RTSP обычно реализуется через другой сокет или коммуникационный уровень. Хотя это просто протокол, чаще всего он реализуется сервером через сокет. Для живых потоков поток RTSP, который вы запрашиваете, - это просто имя потока. Ему не нужно ссылаться на файл на сервере, реализация RTSP сервера может проанализировать этот поток, собрать живой график, а затем предоставить SDP (описание) для этого имени потока. Но это, конечно, специфично для того, как был реализован RTSP-сервер. Для" живых " потоков, вероятно, проще просто использовать RTP, но вам понадобится способ передачи SDP от сервера RTP к клиенту, который хочет воспроизвести этот поток.
RTSP (фактически RTP) может использоваться для потокового видео, но и многие другие типы носителей, включая живые презентации. Rtsp - это просто протокол, используемый для настройки сеанса RTP.
для всех деталей вы можете проверить мою реализацию сервера RTSP с открытым исходным кодом по следующему адресу:https://net7mma.codeplex.com/
или моя статья @ http://www.codeproject.com/Articles/507218/Managed-Media-Aggregation-using-Rtsp-and-Rtp
Он поддерживает потоки повторного поиска, а также динамическое создание потоков, реализованы различные RFC, и библиотека обеспечивает лучшую производительность и меньше памяти, чем FFMPEG и почти любые другие решения на транспортном уровне и, таким образом, делает его хорошим кандидатом для использования в качестве централизованной точки доступа для большинства сценариев.