12

Когда я читаю о форматах потокового мультимедиа и методах упаковки, меня смущает то, что WebM описывается как взаимоисключающий RTMP и HTTP Live Streaming.

Насколько я понимаю, WebM - это видеоформат, как способ кодирования видеофайла, с расширением .webm , тогда как RTMP и HLS - это способы отправки видеоформатов через Интернет в прямом потоке (способ упаковки битов информация и отправка их через некоторый веб-протокол, например HTTP TCP).

Есть ли в WebM собственный проприетарный метод отправки себя через Интернет? Действительно ли RTMP и HLS не могут отправлять видео в формате WebM?

1 ответ1

19

По сути, WebM - это контейнерный формат для передачи видео VP8 или VP9 и аудио Vorbis или Opus. Он не определяет, как он должен передаваться, и, как правило, не имеет широкой поддержки потоковой передачи по сравнению с другими форматами контейнеров, такими как MPEG-2 TS или MP4. Однако он все еще может быть использован для потоковой передачи.

Обратите внимание, что под "потоковой передачей" я не подразумеваю просто загрузку одного файла с веб-сайта или встраивание одного (длинного) клипа в тег HTML5 <video> . За последние годы было использовано несколько более продвинутых потоковых технологий:

  • Для потоковой передачи по протоколу RTMP (протокол обмена сообщениями в реальном времени) требуется RTMP-сервер, такой как Adobe Flash Media Server, который будет передавать потоковые форматы файлов, поддерживаемые Flash (MP4, FLV) клиенту. Это все еще довольно широко распространено, но медленно и уверенно вымирает - как и все технологии на основе Flash.

    Поскольку WebM не поддерживается во Flash, вы не можете использовать его там.

  • RTSP streaming (Real Time Streaming Protocol) - это протокол управления для потоковых серверов, таких как QuickTime Streaming Server или Helix Server. Клиент и сервер будут обмениваться управляющими сообщениями по этому протоколу, в то время как данные передаются через полезную нагрузку RTP (транспортный протокол реального времени). Это редко встречается в Интернете, а скорее IPTV.

    Есть спецификации о том, как инкапсулировать WebM в RTP.

  • HTTP Live Streaming и MPEG-DASH - это технологии адаптивной потоковой передачи, в которых клиент запрашивает фрагменты видео с сервера с помощью простых HTTP-запросов на основе файла списка воспроизведения M3U8 (в случае HLS) или манифеста MPD (в случае ТИРЕ). Этот файл индексирует эти куски файла, содержащие фактические аудио и видео данные.

    В HLS видео должно храниться в формате MPEG-2 TS или, начиная с 2017 года, фрагментированных файлов MP4 (базовый медиаформат ISO). MPEG-DASH имеет более широкую поддержку; здесь также можно использовать сегментированный WebM.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .