Я работаю над клиентским проектом, который позволяет пользователю поставлять видеофайл и применять к нему основные манипуляции. Я пытаюсь извлечь кадры из видео надежно. В настоящий момент у меня есть <video>
который я загружаю в выбранное видео, а затем вытягиваю каждый кадр следующим образом:
- Ищите начало
- Приостановить видео
- Нарисуйте
<video>
на<canvas>
- Захват кадра из холста с помощью
.toDataUrl()
- Ищите вперед на 1/30 секунд (1 кадр).
- Промыть и повторить
Это довольно неэффективный процесс, а более конкретно, доказывает ненадежность, поскольку я часто получаю застревание кадров. Кажется, это от него не обновляется фактический элемент <video>
прежде чем он рисует на холст.
Я бы предпочел не загружать исходное видео на сервер, чтобы разделить фреймы, а затем загрузить их обратно клиенту.
Любые предложения для лучшего способа сделать это очень ценятся. Единственное предостережение в том, что мне нужно, чтобы он работал с любым форматом, поддерживаемым браузером (декодирование в JS не является отличным вариантом).