Подтвердить что ты не робот

Видео HTML5 - поиск кадров на устройствах Android?

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

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

Я установил тестовую страницу на jsfiddle, чтобы помочь демонстрации моей проблемы.

Видео было закодировано с помощью ZenCoder. Он имеет частоту кадров 23,976 и ключевые кадры каждые 250 кадров. Само видео показывает текущий индекс кадра, поэтому вы можете легко увидеть, что на устройствах Android отображаются только кадры на 0, 250 и 500 кадров, независимо от того, где вы стремитесь.

На этом этапе я был бы доволен решением, которое работает в Android-браузерах или в виде упакованного приложения с Cordova (я также пытался использовать Crosswalk WebView, но безрезультатно).

4b9b3361

Ответ 1

Собственные механизмы воспроизведения Android (MediaPlayer и MediaExtractor) не поддерживают точный поиск кадров (см. здесь). Это означает, что ваше воспроизведение видео в формате HTML5 должно быть построено поверх чего-то другого, кроме фреймворков Android. Хотя можно использовать другой декодер, это звучит больше, чем оболочка для приложения HTML5. Таким образом, кажется, что есть два подхода: жить с поиском ключевого кадра (возможно, с некоторыми настройками, такими как поиск предыдущего ключевого кадра, а затем воспроизведение вперед до нужной точки) или создать здоровую собственную оболочку/реализацию для вашего приложения.