В большинстве случаев лучший вариант — загрузить и встроить видео из Ютуба (помянем), ВК, Вимео или другого видеохостинга. Так вы не заморачиваетесь с хранением, оптимизацией и доставкой видеофайлов в браузер читателя, плюс получаете современный видеоплеер со всеми нужными функциями, вроде запоминания позиции или субтитров.

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

Очевидный минус — ваши видео обслуживаются третьими лицами. Со всеми вытекающими: от рекламы в видео до блокировок. Будьте готовы, что в любой момент хостинг придётся менять и обязательно храните оригиналы видеофайлов в надёжном месте на чёрный день.

Встраивание видео из видеохостинга на примере ВК

На странице видео жмём «Поделиться» → «Экспортировать» → «Код для вставки», вставляем код в нужное место страницы. Готово:

<!-- Тег iframe встраивает на сайт кусочек другого сайта. В нашем случае — плеер ВК -->

<iframe src="https://vk.com/video_ext.php?oid=-177304549&id=456239878&hd=2&autoplay=1" allow="autoplay; encrypted-media; fullscreen; picture-in-picture; screen-wake-lock;" frameborder="0" allowfullscreen></iframe>

Плеер настраивают, меняя код. Это делается по‑разному у разных видеохостингов, подробности несложно найти в интернете. Повлиять на вид плеера из ЦСС нельзя, но можно изменить размеры и позиционировать сам айфрейм так же, как любой другой элемент.

Стандартный тег video

Другой вариант — подключить видео с собственного сервера. Для этого используют тег video. В базовом виде он похож на тег img для картинок — просто укажите в src путь до видеофайла и на странице появится плеер:

<!-- Обязательно оптимизируйте видеофайл, чтобы он загружался как можно быстрее -->
<video src="./myvideo.mp4" controls></video>
video {
  display: block;
  width: 100%;
  aspect-ratio: 16/13;
  object-fit: cover;
}

Тег video плохо подходит для тяжёлых и длинных видео — в нём нет потокового воспроизведения и читателю придётся качать файл целиком. А стандартному плееру не хватает многих полезных функций.

Обычно video используют только для совсем крошечных видео. Например, для фоновых. Плеер позиционируют так же, как любой другой элемент:

Рикрол — полная история легендарного мема
<!-- Атрибут autoplay автоматически включает видео, loop — зацикливает. Автоплей работает только с видео без звука или в паре с атрибутом muted. Чтобы спрятать интерфейс плеера, не добавляем атрибут controls -->
<div class="hero">
  <video class="hero__video" src="./video.mp4"
    autoplay muted loop>
  </video>

  <div class="hero__text">
    <h1>Рикрол — полная история легендарного мема</h1>
  </div>
</div>
.hero {
  position: relative;
  aspect-ratio: 16/13;
}

.hero__video {
  z-index: 1;
  position: absolute;
  pointer-events: none; /* Запрещаем клики */

  /* Вписываем элемент в размеры родителя */
  inset: 0;
  height: 100%;
  width: 100%;
  object-fit: cover;
}

.hero__text {
  position: absolute;
  z-index: 2;
  left: 18px;
  bottom: 18px;
}

video. МДН

Тег video, конечно, можно прокачать разными атрибутами и дополнительными настройками, но он не станет принципиально лучше без серьёзного дополнительного программирования.

video. МДН

Собственная разработка

Если способы выше не подходят — остаётся создание собственного плеера. Это непросто, зато получится инструмент конкретно под ваши нужды.

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

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

См. также:

P. S. Это был совет о веб‑разработке. Хотите знать всё о коде, тестах, фронтенд‑разработке, цеэсэсе, яваскрипте, рельсах и джейде? Присылайте вопросы.

Веб‑разработка
Отправить
Поделиться
Запинить

Рекомендуем другие советы