2017-02-19 17 views
1

Я работаю над добавлением возможности загрузки видео в CMS, который я разрабатываю, и я немного смущен о «лучших практиках» для загрузки видео. Видео будут воспроизводиться с использованием библиотеки Video.js.HTML5 Формат видео Best Practices

Мое понимание видео HTML5 заключается в том, что существует три возможных формата: MP4, OGG и WEBM. It would appear, что MP4 поддерживается всеми браузерами, в то время как остальные два менее поддерживаются.

  • Если я хочу разрешить пользователям загружать видео любого типа, мне нужно будет преобразовать все, что они загружают, в формат, который работает с HTML5? Или есть другой способ, которым я могу заниматься этим?
  • Если MP4 поддерживается в основном везде, в чем смысл включения двух других форматов? Если я буду конвертировать видео после загрузки пользователя, должен ли я конвертировать видео во все три версии?
  • Я предполагаю, что, когда вы загружаете видео на YouTube, они конвертируют видео в правильные форматы? Или как еще они могут играть в любой видеоформат?
  • Существуют ли какие-либо библиотеки или методы для быстрого конвертирования видео?
+0

Вы можете использовать 'ffmpeg' для преобразования медиафайлов в другой формат на сервере и использовать' 'элемент как дочерний узел'

+0

Да, я искал https://github.com/AydinAdn/MediaToolkit для преобразования видео, но должен ли я преобразовывать видео во все три формата или просто иметь их в MP4? – William

+0

См. [''] (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source) – guest271314

ответ

5

MP4, (подробнее h.264 компрессия и контейнер MP4) имеет лицензию/права, принадлежащие частной компании MPEG LA. Вот почему некоторые из браузеров хотят избежать в зависимости от этого. Несмотря на то, что браузеры не могут отказаться от существующей поддержки, проблемы с лицензией не позволяют разработчикам думать, что поддержка браузеров для MP4/h.264 будет продолжаться навсегда.

Google объявила, что it would remove h.264 support от проекта Chromium в 2011 году, но Chrome все еще поддерживает его.

В Google VP8 и VP9 (и WEBM-контейнере) есть бесплатная и открытая лицензия. Но из-за конкуренции не все другие браузеры готовы оказать поддержку VP8-9/WEBM. Это может меняться/улучшаться во времени. Например, хотя ни одна из версий Internet Explorer не поддерживала WEBM, Edge does. По-видимому, только применение Safari в основных браузерах, отсутствие поддержки WEBM.

MPEG LA в то же время продолжает объявлять, что it will not charge for their formats use on the internet, это на самом деле не делает формат h.264/MP4 совершенно бесплатным.

Таким образом, они требуют, чтобы сайты предоставляли видеоконтент, чтобы тщательно подумать о поддержке браузера/формата. Я считаю, что, по крайней мере, MP4 и копия WEBM каждого видео должны быть созданы, даже если часть содержимого MP4 может быть безопасно очищаться через несколько лет.

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

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

+0

Спасибо! Это именно тот тип информации, который мне нужен - я буду уверен, что по крайней мере MP4 и WEBM-копия каждого загруженного файла включены в видео HTML. – William

+0

Добро пожаловать. Я сделал некоторые исправления в грамматике и добавил немного больше подробностей о моем ответе, не изменяя его основного смысла, чтобы сделать его еще более полезным для всех. –

+0

@BulentVural Что относительно HLS? Это предпочтительнее в браузерах, которые его поддерживают? Насколько я понимаю, это позволит браузерам передавать файл, а не загружать весь файл? – geoboy