<MyRusakov.ru />

WordPress 6 с Нуля до Гуру

WordPress 6 с Нуля до Гуру

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

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

Помимо уроков к курсу идут упражнения для закрепления материала.

И, наконец, к курсу идёт ценнейший Бонус по тому, как используя ChatGPT и создавая контент для сайта, можно выйти на пассивный доход. Вы наглядно увидите, как зарегистрироваться в ChatGPT (в том числе, и если Вы из России), как правильно выбрать тему для сайта, как правильно генерировать статьи для него(чтобы они индексировались поисковыми системами) и как правильно монетизировать трафик на сайте.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

HTML5 видео и аудио: практическое руководство по тегам video и audio

HTML5 видео и аудио: практическое руководство по тегам video и audio

HTML5 дал нативные теги для медиа — <video> и <audio>. Больше не нужны Flash и сторонние плагины: браузеры воспроизводят файлы, показывают субтитры, позволяют включать авто‑воспроизведение (с нюансами) и даже работать в «картинке в картинке». Ниже — концентрат практики под запрос «как вставить видео на сайт» с примерами кода и советами по доступности и производительности.

Быстрый старт: базовая вставка видео и аудио

Минимально рабочий пример с несколькими источниками, субтитрами и фолбэком для старых браузеров:

<figure>
  <video controls width="720" poster="poster.jpg" preload="metadata">
    <source src="movie-720.mp4" type="video/mp4; codecs=avc1.42E01E, mp4a.40.2">
    <source src="movie-720.webm" type="video/webm; codecs=vp9, opus">
    <track kind="captions" src="subs/ru.vtt" srclang="ru" label="Русский" default>
    <track kind="captions" src="subs/en.vtt" srclang="en" label="English">
    Ваш браузер не поддерживает HTML5 видео. <a href="movie-720.mp4">Скачать файл</a>.
  </video>
  <figcaption>Тег video с несколькими форматами и субтитрами</figcaption>
</figure>

<audio controls preload="none">
  <source src="podcast.ogg" type="audio/ogg; codecs=opus">
  <source src="podcast.mp3" type="audio/mpeg">
  Ваш браузер не поддерживает HTML5 аудио. <a href="podcast.mp3">Скачать подкаст</a>.
</audio>
  • Используйте несколько <source> с атрибутом type — браузер выберет поддерживаемый формат (обычно MP4/H.264 + WebM/VP9).
  • poster показывает изображение до старта воспроизведения (только для видео).
  • preload="metadata" экономит трафик: грузятся метаданные, но не всё видео.
  • Фолбэк‑ссылка на скачивание повышает доступность и лояльность пользователей.

Автовоспроизведение, mute и playsinline

Современные браузеры блокируют автоплей со звуком. Решение — запускать без звука и разрешить проигрывание «в линии» на iOS:

<video autoplay muted playsinline loop controls poster="intro.jpg">
  <source src="intro.mp4" type="video/mp4">
</video>
  • autoplay работает надёжно только вместе с muted (без звука).
  • playsinline разрешает воспроизведение внутри страницы в iOS, не разворачивая на весь экран.
  • loop перезапускает ролик — полезно для фоновых видео.

Субтитры, описания и главы: <track> и WebVTT

Субтитры, альтернативные описания и главы подключаются через <track>. Самый частый кейс — kind="captions" с файлом .vtt (формат WebVTT).

<video controls width="720" crossorigin="anonymous">
  <source src="movie.mp4" type="video/mp4">
  <track kind="captions" src="subs/ru.vtt" srclang="ru" label="Русский" default>
  <track kind="captions" src="subs/en.vtt" srclang="en" label="English">
  <track kind="chapters" src="subs/chapters.vtt" srclang="ru" label="Главы">
</video>

Пример файла subs/ru.vtt:

WEBVTT

00:00:00.000 --> 00:00:03.000
Привет! Это демо субтитров.

00:00:03.000 --> 00:00:06.500
HTML5 видео: переключайте дорожки в плеере.

Частые нюансы с субтитрами:

  • Если дорожка грузится с другого домена, добавьте на <video> crossorigin="anonymous" и настройте на сервере заголовок CORS: Access-Control-Allow-Origin: *.
  • Указывайте корректный srclang (например, ru, en), чтобы браузер и скринридеры понимали язык дорожки.
  • kind="descriptions" — для аудиоописаний; kind="chapters" — для оглавления.

Контроль интерфейса: controlsList, PiP и фулскрин

Можно ограничить элементы UI по бизнес‑требованиям (понимая, что это не защита от скачивания):

<video controls controlsList="nodownload nofullscreen noplaybackrate" disablepictureinpicture>
  <source src="lesson.mp4" type="video/mp4">
</video>
  • controlsList поддерживает значения: nodownload, nofullscreen, noplaybackrate (поддержка разнится).
  • disablepictureinpicture отключает «Картинку в картинке».
  • Помните: полностью запретить сохранение видео на стороне клиента нельзя — ограничения носят косметический характер.

Оптимизация и производительность

  • preload: none | metadata | auto. Для ленивых превью используйте metadata или none; для героев‑шапок — по ситуации, измеряйте WebPageTest/Performance API.
  • Подбирайте битрейт и разрешение под макеты. Не грузите 4K там, где достаточно 720p.
  • Выкладывайте минимум два формата: MP4 (H.264/AAC) + WebM (VP9/Opus) — покрытие лучше.
  • Задайте размеровому контейнеру соотношение сторон через CSS aspect-ratio, чтобы избежать прыжков контента при загрузке.
  • Для длинных эфиров используйте потоковые форматы (HLS/DASH). Safari воспроизводит HLS нативно; в других браузерах помогут библиотеки на базе MSE (например, hls.js).

Кастомные элементы управления (минимальный пример)

Иногда нужны свои кнопки. Ниже — простой play/pause и ползунок времени.

<video id="v1" width="720" preload="metadata">
  <source src="movie.mp4" type="video/mp4">
</video>
<div class="player-ui">
  <button id="play" aria-controls="v1" aria-label="Воспроизвести или пауза">▶︎/⏸</button>
  <input id="seek" type="range" min="0" value="0" aria-label="Позиция видео">
</div>
<script>
  const v = document.getElementById('v1');
  const playBtn = document.getElementById('play');
  const seek = document.getElementById('seek');

  v.addEventListener('loadedmetadata', () => {
    seek.max = Math.floor(v.duration || 0);
  });
  v.addEventListener('timeupdate', () => {
    seek.value = Math.floor(v.currentTime || 0);
  });
  playBtn.addEventListener('click', () => {
    if (v.paused) v.play(); else v.pause();
  });
  seek.addEventListener('input', () => {
    v.currentTime = Number(seek.value);
  });
</script>

Добавляйте aria‑атрибуты и подписи, чтобы кастомный плеер оставался доступным для клавиатуры и скринридеров.

Доступность: подписи, подписи к фигурам и транскрипты

  • Оборачивайте видео в <figure> и поясняйте смысл через <figcaption> — это помогает всем пользователям и улучшает SEO.
  • Субтитры (captions) обязательны для обучающих и маркетинговых роликов: это доступность и удержание внимания без звука.
  • Для аудио размещайте ниже краткий текстовый транскрипт содержимого — его найдут поисковики и люди со слуховыми ограничениями.

Частые ошибки и как их исправить

  • Автоплей не работает — добавьте muted и playsinline (особенно для iOS).
  • Субтитры не подгружаются — проверьте MIME‑тип (.vtt), путь и CORS: добавьте crossorigin="anonymous" и Access-Control-Allow-Origin на сервере. 
  • Видео «не выбирается» — указывайте корректный type в <source>, чтобы браузер не тратил время на неподдерживаемый контейнер/кодек.
  • Прыжки макета (CLS) — задайте контейнеру aspect-ratio или фиксированные размеры, используйте poster соответствующего разрешения.
  • Слишком тяжёлые файлы — перекодируйте с разумным битрейтом, удалите избыточные аудиодорожки/метаданные, включите сжатие на сервере (gzip/brotli для VTT).

Когда выбирать потоковое видео (HLS/DASH)

Если ролики длинные, аудитория на слабых сетях или нужен адаптивный битрейт — переходите на HLS/DASH. Для Safari HLS работает нативно; для Chromium/Firefox используйте hls.js (MSE). Даже с HLS финальная вёрстка остаётся HTML5 <video> c одним src, а библиотека подключает сегменты под капотом.

Итог и куда двигаться дальше

Теги <video> и <audio> закрывают 90% задач: многослойные форматы, субтитры, авто‑воспроизведение без звука, управление UI и доступность. Начните с базовой разметки, добавьте дорожки, оптимизируйте загрузку и только потом усложняйте кастомным UI или потоковым вещанием. Хотите закрепить навыки вёрстки на практике? Попробуйте пошаговый курс «Вёрстка сайта с нуля 2.0» — практикум с реальными макетами.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (https://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: https://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: https://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.