Статьи

HTML5 Видео - HTML5 Скалы

  1. Вступление
  2. Разметка
  3. Указание источников
  4. Медиа Фрагменты
  5. Предоставление подписей и субтитров
  6. Атрибуты
  7. стайлинг
  8. JavaScript
  9. свойства
  10. методы
  11. События*
  12. Взаимодействие с другими элементами
  13. мобильный
  14. Дальнейшее чтение
  15. Потоковое видео с помощью MediaSource API
  16. Резюме

Вступление

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

Разметка

Давайте рассмотрим очень простой пример:

<video src = "video.webm" control>
</ Видео>

Это все, что вам нужно, чтобы встроить простое видео на свою страницу и показать основные элементы управления, чтобы пользователь мог воспроизвести, приостановить или иным образом управлять видео.

Указание источников

Вы можете указать несколько исходных файлов, используя элемент <source>. Исходный элемент позволяет указать несколько форматов в качестве запасного варианта на случай, если браузер пользователя не поддерживает один из них. Например:

<video control> <source src = "devstories.webm" type = 'video / webm; codecs = "vp8, vorbis"' /> <source src = "devstories.mp4" type = 'video / mp4; codecs = "avc1 .42E01E, mp4a.40.2 "'/> </ video>

Когда браузер анализирует тег <source>, он использует необязательный атрибут type, чтобы помочь решить, какой файл загрузить и воспроизвести. Если браузер поддерживает WebM и имеет кодеки VP8 и Vorbis, он будет воспроизводить devstories.webm, если нет, он проверит, может ли он воспроизводить видео MPEG-4 с кодеками avc1.42E01E и mp4a.40.2 и т. Д.

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

Медиа Фрагменты

Добавление медиа фрагмент на медиа-URL, вы можете указать Точная часть, которую вы хотите играть , Чтобы добавить фрагмент мультимедиа, вы просто добавляете # t = [start_time] [, end_time] к URL-адресу мультимедиа. Например, чтобы воспроизвести видео в течение секунд с 10 до 20, вы можете указать:

<source src = "devstories.webm # t = 10,20 " type = 'video / webm; codecs = "vp8, vorbis"' />

Вы также можете указать время в часах: минутах: секундах, например, # t = 00: 01: 05, чтобы запустить видео через одну минуту, через пять секунд. Или, чтобы воспроизводить только первую минуту видео, вы должны указать # т =, 00: 01: 00. Вы должны убедиться, что запросы диапазона поддерживаются вашим сервером: проверьте наличие диапазонов: байты. Он включен по умолчанию для Apache и многих других серверов, но стоит проверить.

Предоставление подписей и субтитров

Элемент <track> обеспечивает простой, стандартизированный способ добавления субтитров, подписей, описаний программ чтения с экрана и глав к вашему видео, что улучшает доступность, но также позволяет поисковым системам понять, что находится в видео. Помимо субтитров и подписей, метаданные можно помещать в сигналы, например в формате JSON. Это может позволить инновационные варианты использования, такие как DOM манипуляции синхронизированы с воспроизведением видео ,

<video controls style = "width: 640px; высота: 360px;" poster = "poster.png"> <source src = "devstories.webm" type = 'video / webm; codecs = "vp8, vorbis"' /> <source src = "devstories.mp4" type = 'video / mp4; codecs = "avc1.42E01E, mp4a.40.2" '/> <track src = "devstories-en.vtt" label = "английские субтитры" kind = "subtitles" srclang = "en" default> </ track> </ video >

Элемент <track> работает как элемент <source> внутри элемента <video> и имеет атрибут src, который указывает на файл в Формат WebVTT , Вы можете указать метку, которая будет отображаться в пользовательском интерфейсе пользователя, а также исходный язык (srclang) и, если имеется несколько элементов дорожки, какой из них следует использовать по умолчанию.

Вот первые несколько строк devstories-en.vtt :

ФАЙЛ WEBVTT 1 00: 00: 00.500 -> 00: 00: 02.000 D: вертикальный A: запуск Интернет постоянно меняется 2 00: 00: 02.500 -> 00: 00: 04.300 и меняется способ доступа к нему 3 00: 00: 05.000 -> 00: 00: 07.000 Источником этого изменения является <c.highlight> you </ c>

Проверять, выписываться Начало работы с элементом Track для дополнительной информации.

Атрибуты

Элемент <video> имеет несколько специальных атрибутов, которые могут изменить или улучшить его поведение по умолчанию.

autoplay * Сообщает браузеру немедленно начать загрузку видео и воспроизводить его как можно скорее. Обратите внимание, что мобильные браузеры, как правило, не поддерживают этот атрибут, пользователь должен коснуться экрана, чтобы начать воспроизведение видео. предварительная нагрузка

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

Варианты:

  • none - намекает браузеру, что пользователь, скорее всего, не будет смотреть видео или что желательно минимизировать ненужный трафик.
  • метаданные - подсказывает браузеру, что пользователю не требуется видео, но желательна выборка его метаданных (размеры, первый кадр, список дорожек, продолжительность и т. д.).
  • auto - подсказывает браузеру, что оптимистичная загрузка всего видео считается желательной.

poster Предоставляет изображение для показа перед загрузкой элементов управления видео. * Показывает элементы управления видео по умолчанию (воспроизведение, пауза и т. д.). Высота и ширина Устанавливает ширину и высоту видео в цикле пикселей CSS. * Сообщает браузеру, что видео автоматически отключается *. Приглушает звук из видео

* указывает двоичный атрибут, который разрешает такое поведение, когда атрибут присутствует или его значение установлено на что-либо.

стайлинг

Поскольку элемент <video> - это просто еще один элемент HTML, его можно стилизовать как любой другой элемент. Вы можете добавить границы, установить непрозрачность, применить фильтр или даже сделать 3D-преобразование на видео. Например, применяя фильтр: оттенки серого (100%); к элементу видео, вы можете превратить ваше видео в черно-белое видео:

По состоянию на январь 2014 года эффект фильтра поддерживается только в браузерах на основе WebKit и Blink.

JavaScript

Элементы мультимедиа, такие как <video> и <audio>, имеют дополнительные функции JavaScript по сравнению с обычными элементами HTMLE, которые позволяют взаимодействовать с мультимедиа или управлять им.

свойства

currentTime Получает или задает текущую позицию воспроизведения в секундах. Объем. Получает или задает текущий уровень громкости для видео с отключенным звуком. Возвращает или задает состояние приглушения воспроизведения. Rate Получает или задает скорость воспроизведения, где 1 - нормальная скорость перемотки вперед. currentSrc Возвращает текущий исходный файл видео. браузер воспроизводит videoWidth & videoHeight Возвращает фактические размеры видео, а не размер элемента видео

методы

load () Загружает видео и сбрасывает головку воспроизведения в начало воспроизведения видео () Воспроизводит видео с текущего местоположения. pause () Приостанавливает видео с текущего местоположения. canPlayType (format)

Проверяет, может ли браузер воспроизводить видео определенного типа, например 'video / webm; codecs = "vp8, vorbis"'

Браузер вернет:

  • вероятно - если это наиболее вероятно, видео файл может быть воспроизведен
  • возможно - если видео может воспроизводиться
  • [пустая строка] - если видеофайл не воспроизводится

События*

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

Это только часть медиа-событий, которые могут быть запущены. Обратитесь к Медиа события страница в сети разработчиков Mozilla для полного списка.

Есть много вещей, которые вы можете сделать, используя эти функции JavaScript, события и атрибуты; Вы можете создать собственный набор богатых элементов управления видео, управлять несколькими видео одновременно, переходить к определенному времени в видео и многое другое. Вы также можете использовать один из множества пользовательских элементов управления плеером, доступных сегодня, чтобы обеспечить богатый опыт.

Взаимодействие с другими элементами

Элементы видео могут взаимодействовать с другими элементами, такими как холст, чтобы обеспечить совершенно новый опыт. Canvas 'drawImage позволяет вам взять один кадр из элемента видео и нарисовать его внутри холста.

function grabScreenshot () {ctx.drawImage (video, 0, 0, videoWidth, videoHeight); var img = новое изображение (); img.src = canvas.toDataURL ("image / png"); img.width = 120; ssContainer.appendChild (IMG); }

Затем вы можете изменить захваченные пиксели и изменить видео в режиме реального времени. Например, вы можете предоставить свой собственный эффект хроматического ключа , сделать видео взорваться когда вы нажимаете на нее, или изменить цвет фона страницы на основе основных цветов в видео. Возможности практически безграничны!

Тот же метод импорта изображений может быть применен и к WebGL. С WebGL вы можете импортировать кадры видео и рендерить их на вращающийся 3D куб ,

Вы можете рассматривать видеофайл как контейнер (например, ZIP-файл), который содержит закодированный видеопоток и аудиопоток. Существует много различных типов форматов контейнеров, и, к сожалению, нет единого формата «одного звонка», который будет работать во всех браузерах. Если вам интересно, зачем вам нужно использовать две кодировки, обязательно прочитайте Проблемы с лицензированием видео H.264 ,

К счастью, мы можем получить покрытие для всех современных (и мобильных) браузеров, используя только два формата:

  • WebM - использует кодек VP8 для видео и кодек Vorbis для аудио
  • MP4 - использует кодек H.264 для видео и кодек AAC для аудио

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

Поддержка WebM доступна изначально в Chrome, Firefox и Opera, и ее можно добавить в Internet Explorer или настольный Safari, установив плагин. Если исходная версия недоступна или плагин не установлен, вам необходимо предоставить видео, закодированное в формате MP4.

видео глава на www.diveintohtml5.info имеет отличный раздел о том, как лучше всего кодировать ваши видео. Они рекомендуют использовать ffmpeg для WebM видео и Ручной тормоз для MP4 видео.

мобильный

Мобильный обеспечивает некоторые уникальные проблемы для видео. Отправка видео в формате 1080p на мобильное устройство, такое как телефон, не имеет особого смысла, видео, вероятно, будет слишком большим для экрана, а полоса пропускания, необходимая для отправки видео, может очень быстро использовать ограниченное соединение для передачи данных всех пользователей.

Поставщики браузеров учли это и отключили атрибуты автозапуска и предварительной загрузки на мобильных устройствах. Также рекомендуется добавить изображение плаката, которое может отображаться до начала воспроизведения, хотя для этого может потребоваться дополнительная загрузка. Это дает зрителям осмысленное представление о содержании без необходимости загружать видео или начинать воспроизведение.

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

Дальнейшее чтение

Расширения зашифрованных носителей - EME

Расширения зашифрованных носителей (иногда называемые EME) - это API-интерфейс JavaScript, который позволяет веб-приложениям взаимодействовать с системами защиты контента для воспроизведения зашифрованное аудио и видео , EME является расширением спецификации HTMLMediaElement, и поддержка браузера не является обязательной. Если браузер не поддерживает EME, он просто не сможет воспроизвести зашифрованный носитель.

Чтобы узнать больше о зашифрованных мультимедийных расширениях и о том, как воспроизводить видео, защищенные ими, ознакомьтесь с EME WTF ?: Расширения с зашифрованными носителями 101.

Потоковое видео с помощью MediaSource API

MediaSource API расширяет HTMLMediaElement, чтобы позволить JavaScript генерировать медиапотоки для воспроизведения. Разрешение JavaScript генерировать потоки облегчает множество вариантов использования, таких как адаптивная потоковая передача и потоковые трансляции со сдвигом времени.

Резюме

Включение видео в современный интернет стало проще, чем когда-либо прежде, и открывает новые удивительные возможности. Что ты будешь делать дальше?

Что ты будешь делать дальше?

Новости

Где купить гибкий штатив для фотоаппарата

Знаю, что многие увлекаются фотографированием природных пейзажей. Мне и самому не чуждо такое увлечение. Однако, некоторые снимки довольно тяжело даются, так как иногда очень сложно поймать нужный

Походы пешком по Украине

Осуществление пеших походов по своей родной стране является одним из видов познания её достопримечательностей и прекрасных мест. При пеших походах все детали красоты и яркости природы своей страны

Славянские фамилии и их значения
Фамилии славянских народов порой бывает трудно разделить по «национальным квартирам», хотя последнее время это пытаются сделать в Украине. На протяжении многих веков так называемые пишущие люди стремились

Значение имени артем
Уже известно и доказано, что значение имени артем влияет на судьбу его обладателя. Попытки понять и объяснить влияние имени на судьбу и характер человека начались в прошлом, продолжаются и в настоящее

Ржачные поздравления с днем рождения
Желаю во всем всегда успевать И все делать лишь на 5. Желаю быть счастливой на свете этом, И чтоб жизнь казалась только летом. Пускай все всегда выходит И все твои мечты реализуются. *** Открыв конверт,

Популярное видео youtube
Давно решила себе купить зонт, при величайшем выборе расцветок, марок, брендов, очень тяжело определиться с моделью. Хотелось, что бы зонт был не только красивым, но и качественным, и прослужил не один

Значение фамилии порошенко
В 1956 году Алексей Вальцман женился на Евгении Сергеевне Порошенко и при этом изменил фамилию с Вальцман на Порошенко. В 1974 году - занял должность директора Бендерского исследовательского экспериментально-ремонтного

Сонник толкование снов к чему
Интересные и серые, пропитанные отголосками прошедшего дня или, напротив, несущие в себе некие знамения, переносящие нас в далекое прошлое или рисующие в сознании картины будущего,

Поздравление парня с др
«Денек рождения- печальный праздничек…», - так гласит каждый, хотя где то в глубине души так ожидает сей день. Но самое, пожалуй, приятное – сделать это событие запоминающимся конкретно для возлюбленного

Сонник толкование снов миллера
Если к толкованиям сновидений применимо понятие классики, то у нее есть свое имя — Густав Хиндман Миллер, американский психолог, живший в конце XIX столетия. В натуре этого любознательного и умного человека,