2016-02-29 3 views
0

В настоящее время я изучаю потоковые протоколы, и я немного смущен тем, какие протоколы могут фактически использоваться для публиковать аудио и видео. На данный момент я считаю, что следующее, чтобы быть правдой, но я не уверен, что это все правильно, поэтому, пожалуйста, поправьте меня, если я ошибаюсь:Какие потоковые протоколы могут публиковать видео/аудио?

RTMP Подходит как для публикации и воспроизведения потоков.

RTSP Подходит для публикации и воспроизведения потоков.

СВУ Подходит для воспроизведения потоков, которые не подходят для публикации (http://blog.infrared5.com/2016/01/what-you-need-to-know-about-hls-pros-and-cons/)

СВУ является абонентом только протокол. В отличие от WebRTC, который имеет спецификацию для публикации в браузере, HTTP Live Streaming поддерживает только потоки воспроизведения. Если вы хотите опубликовать живой видеопоток для устройства, вам просто нужно искать другие технологии для этого.

WebRTC Подходит как для публикации и воспроизведения потоков.

MPEG-DASH Не уверен, что об этом?

Если протокол не может транслировать (например, HLS), что обычно делается для реализации вещания?

+0

Определить публикацию. Это означает, что «загрузите [где-нибудь] с камеры/микрофона клиента с помощью браузера» *? – deceze

+0

Возможно, я должен был сделать рамки моей ситуации более ясными.Что меня интересует, это записать что-то с камерой моего устройства Android, чтобы пользователи могли смотреть в прямом эфире. Я смог реализовать это с помощью RTMP, но меня также интересуют возможности с другими потоковыми протоколами. – user1796440

ответ

2

RTSP - это своего рода «мета протокол», который используется для обмена управляющими сообщениями (воспроизведение, пауза и т. Д.), Но сам он не передает данные. Для этого используются другие протоколы, такие как RTMP.

HLS и MPEG-DASH используются исключительно для потокового видео с сервера; серверу необходимо подготовить видеоданные определенным образом, и клиент может следовать протоколам HLS/MPEG-DASH для приема видеоданных с сервера с использованием переменных битрейтов с использованием стандартного протокола HTTP. Он не имеет ничего общего с загрузкой видео с клиента на сервер.

Варианты выполнения последних - это WebRTC и RTMP. RTMP - это старое школьное (частично) частное решение, требующее наличия какого-либо серверного компонента, либо Adobe Flash Media Server (или любого другого маркетингового имени du jour), либо альтернативной реализации с открытым исходным кодом. Для клиента требуется Flash или другой способный браузер.

WebRTC/ORTC - стандартизованный открытый протокол, основанный на последних браузерах, который работает без плагинов и может передавать видео P2P; это означает, что вы можете транслировать либо прямо между двумя пользователями, либо поток на сервер, который может записывать/транскодировать/ретранслировать поток.

Если вы хотите установить какой-либо плагин для браузера, я бы не стал слишком беспокоиться о протоколе и скорее посмотрел на продукты, которые разрешают потоковое видео; если вы хотите встроенное решение с открытым исходным кодом, WebRTC это.

+0

Итак, протоколы, используемые для прямого вещания, - это RTMP или WebRTC? Если HLS используется для воспроизведения прямого потока, действительно ли сервер получает поток RTMP или WebRTC? – user1796440

+0

То, что сервер делает на сервере для создания видео, - совершенно другая тема. Могут быть просто статические предварительно обработанные файлы на диске, может быть потоком в реальном времени с камеры, подключенной непосредственно к серверу, может быть транскодированным потоком WebRTC ... это выходит за рамки HLS/MPEG-DASH. – deceze

+0

В качестве альтернативы RTMP и WebRTC существует также RTMFP, который является частным решением, но позволяет напрямую P2P и многоадресную рассылку. Поскольку WebRTC это протокол UDP, он лучше подходит, чем RTMP для потоковой передачи в Интернете. – thomas