Использование расширений MediaSource для воспроизведения списка воспроизведения видео

Я пытаюсь создать надежный, непрерывный список воспроизведения видео в HTML5/JS. Для этого я хочу буферизовать динамический список воспроизведения в памяти, а затем отправить буфер видеоэлементу HTML5.

У меня есть выбор, как кодировать видео, и это должно работать только в браузере Chrome, поэтому я думаю об использовании веб-видео и расширений MediaSource. Видеофайлы будут храниться на Amazon S3 и доставляться с помощью CloudFront.

Я видел следующий пример API MediaSource. Ключевое отличие состоит в том, что вместо чтения фрагментов файла я читаю множество файлов. http://bluishcoder.co.nz/2013/08/20/progress-towards-media-source-extensions-in-firefox.html

Как это можно адаптировать для работы с несколькими файлами, а не с фрагментами файла?


person James    schedule 07.12.2013    source источник
comment
Я ответил на этот вопрос раньше, ключевая часть была source.sourceBuffers[0].timestampOffset = duration. Однако это больше не работает в более новых версиях Chrome/Firefox. Даже демонстрация Эрика Бидельмана, которую поначалу используют все, не не полностью работает сейчас. У вас есть код, который работает с одним видео? Создать список воспроизведения сложно, когда я даже не могу найти базовую демоверсию, которая больше не работает.   -  person Adam Hart    schedule 09.12.2013
comment
У меня нет рабочего кода, кроме этой демонстрации, однако указанная вами демонстрация, похоже, работает для меня.   -  person James    schedule 09.12.2013
comment
Видео в этой демонстрации действительно воспроизводит полные 6 секунд клипа? Для меня видео останавливается на 04.19 в Chrome и 05.08 в Firefox с флагом mediasource.enabled, но раньше оно длилось полные 6 секунд.   -  person Adam Hart    schedule 10.12.2013
comment
Ах, нет, ты прав. Возможно, нам следует отказаться от этой идеи, пока не будут обновлены браузеры/стандартные версии. о чем ты думаешь?   -  person James    schedule 10.12.2013
comment
Да, к сожалению, мне пришлось выложить свои планы на медиаресурсы. У меня есть хакерский запасной вариант, когда я загружаю второе видео в отдельный элемент <video> со значением display: none, затем переключаю отображение на обоих и начинаю воспроизводить второе, когда первое заканчивается. Достаточно хорошо для наших нужд прямо сейчас, но не идеально из-за отсутствия элементов управления для поиска по полному видео и возможных заиканий между клипами на медленных устройствах.   -  person Adam Hart    schedule 12.12.2013


Ответы (1)


В итоге мы написали эту библиотеку Javascript для управления воспроизведением видео: https://github.com/jameshadley/LifemirrorPlayer/blob/master/LifemirrorPlayer.js

Он не использует MediaSourceAPI, но работает на удивление хорошо.

person James    schedule 15.12.2013