Вставить видео в веб-страницу (HTML) - PullRequest
7 голосов
/ 29 июля 2009

Я хочу добавить видео на веб-страницу.
Я не хочу использовать flash, потому что он недоступен для огромного количества платформ.
Я не хочу использовать HTML5, потому что он еще не слишком стандартный (это стандарт, но большинство людей не имеют браузеров, которые его поддерживают)

Есть ли другой способ? Или я должен придерживаться HTML5 и ОГРОМНОГО баннера, говорящего людям обновить их браузер?

Ответы [ 6 ]

8 голосов
/ 31 декабря 2009

Существует несколько способов объединить видео HTML5 с запасными вариантами для не поддерживающих браузеров. Несколько конкретных решений были продемонстрированы.

Одним из примеров является Видео для всех от Camen Design, которое соответствует HTML5 и использует условные комментарии для IE и тег вложенного объекта для старых браузеров. Это должно соответствовать стандартам, иметь обратную совместимость и быть пригодным для будущего.

6 голосов
/ 29 июля 2009

HTML 5 не является стандартным. Это черновик. Это, вероятно, станет стандартом однажды. Вероятно, сначала он изменится.

Если вы хотите встроить видео на страницу, то, по крайней мере, на сегодняшний день Flash - лучший поддерживаемый вариант из всех доступных. Я бы предоставил ссылку на обычную загружаемую версию в качестве опции для людей, у которых нет Flash (или которые просто хотят посмотреть видео в выделенном видеоплеере).

Сказать людям обновить свой браузер не очень поможет. Насколько я знаю, единственным браузером с поддержкой видео в стабильном выпуске является Firefox. Chrome не поддерживает его, кроме как в версии для разработчиков. Я не думаю, что Opera выпустила стабильную сборку с поддержкой. Microsoft, конечно, еще не добавила его в Internet Explorer. Сафари, в котором я не уверен.

Если вы действительно хотите избежать Flash, вы можете использовать объект HTML 4.01.

<object data="myVideo.ogv" type="video/ogg">
  <!-- fallback content here -->
</object>

& hellip; и надеюсь, что у пользователя есть плагин, способный обрабатывать видео.

2 голосов
/ 29 июля 2009

Я только что натолкнулся Кортадо . Это Java-апплет, который играет OGG. Я действительно должен поблагодарить Дэвида Дорварда за это, так как проверка статуса HTML5 заставила меня с этим столкнуться. Firefox предлагает использовать что-то вроде:

 <video src="my_ogg_video.ogg" controls width="320" height="240">  
   <object type="application/x-java-applet"  
           width="320" height="240">  
      <param name="archive" value="cortado.jar">  
      <param name="code" value="com.fluendo.player.Cortado.class">  
      <param name="url" value="my_ogg_video.ogg">  
      <p>You need to install Java to play this file.</p>  
   </object>  
 </video>  

Java доступна для платформ FAR MORE больше, чем flash, и, в данном случае, если это просто запасной вариант HTML5.

( источник )

1 голос
/ 30 декабря 2009

Я знаю, что уже немного поздно, но вы смотрели VLC?

Он может быть встроен в веб-сайт, работает на Windows, Mac OS и Linux, является бесплатным, открытым исходным кодом, поддерживает множество видео / аудио форматов ...

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

Вы можете посмотреть эту статью: http://www.videolan.org/doc/play-howto/en/ch04.html#id310965

0 голосов
/ 09 ноября 2014

Я работал над этой проблемой, так как я очень заинтересован в xHtml + RDFa и нашел способ воспроизвести видео в строгом документе xHtml 1.0 в браузерах HTML5, не блокируя браузеры не HTML5.

Я опубликовал плагин jQuery здесь: https://github.com/charlycoste/xhtml-video

И демо здесь: http://demo.ccoste.fr/video

На самом деле, это гораздо менее эффективно, чем использование тега HTML5, но по крайней мере ... это работает!

Решение основано на javascript и canvas, но может быть изящно ухудшено с помощью тегов <object> (это то, что делает мой плагин jQuery).

То, что я делаю, на самом деле просто:

  1. Я создаю новый элемент видео (не тег) в памяти, но я не добавляю его в документ DOM:

    var video = document.createElement('video');
    
  2. Я создаю новый canvas элемент в памяти, но я не добавляю его в документ DOM:

    var canvas = document.createElement('canvas');
    
  3. Я создаю новый img элемент и Я добавляю его в DOM.

    // var parent = ... ;
    // var width = ...;
    // var height = ...;
    var img = document.createElement('img');
    
    img.setAttribute('width', width);
    img.setAttribute('height', height);
    
    parent.appendChild(img);
    
  4. Когда воспроизводится видео (video.play()), я заставляю его рисовать каждый кадр на холсте (который не виден, потому что не добавляется в DOM - что делает DOM действительным документом xhtml 1.0)

    canvas.getContext("2d").drawImage(video, 0, 0, width, height);
    
  5. Наконец, я использую метод toDataURL() элемента canvas, чтобы получить закодированное в base64 изображение для кадра и поместить его в атрибут src элемента img.

    img.setAttribute('src', canvas.toDataURL());
    

Делая это, вы заставляете объекты javascript воспроизводить видео из DOM и помещаете каждый кадр в элемент img DOM. Таким образом, вы можете воспроизводить видео, используя возможности браузера HTML5, но без необходимости документа HTML5.

И если браузер не имеет возможностей HTML5 или если он не может обработать используемый кодек, он обратится к нативному поведению <object> (в общем ... браузер будет искать плагин, такой как VLC, или так далее ...)

И если нет способа воспроизвести видео (для него нет плагина), будет использоваться альтернативный контент, предоставленный внутри тега <object>.

Аспект производительности: поскольку это приводит к очень высокопотребляющему процессу, воспроизведение может мерцать ... Чтобы избежать этого, вы можете снизить качество рендеринга, используя сжатие jpeg следующим образом: canvas.toDataURL('image/jpeg', quality), где quality - это значение между 0 и 1.

0 голосов
/ 29 июля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...