Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Разбить видео на изображения !? (https://javascript.ru/forum/misc/81542-razbit-video-na-izobrazheniya.html)

cubano 13.12.2020 17:06

Разбить видео на изображения !?
 
Здравствуйте !!!

Подскажите пожалуйста можно ли с помощью js разбить видео на определенное количество изображений.

voraa 13.12.2020 17:28

В смысле получить с видео отдельные стоп-кадры?
Теоретически возможно. Захватываете изображение с элемента <video> в <canvas> с помощью функции ctx.drawImage https://developer.mozilla.org/ru/doc...xt2D/drawImage, потом преобразуете в jpg в <img> или сразу пересылаете на сервер или сохраняете в файл. (например, функцией toBlob https://developer.mozilla.org/ru/doc...Element/toBlob)
Но практически все упрется в CORS. Такое будет возможно, если страница сайта и само видео передаются с одного сервера, или сервер, с которого передается видео дает в заголовках разрешение.
https://developer.mozilla.org/ru/doc..._enabled_image

cubano 13.12.2020 17:55

Спасибо большое за ответ, !
Мои знание js пока на уровне copypaste.:(

Мне нужно добиться следующего :
Если в папке появляется видеофайл например avi,mov,... то js должен сделать из него 100 изображений (jpg или png) и сохранить их в определенную папку.

voraa 13.12.2020 18:03

Цитата:

Сообщение от cubano
Если в папке появляется видеофайл например avi,mov,... то

А как страница сайта узнает, что в какой-то папке появился файл?
Это пользователь должен как то указывать странице какой файл взять. Сам js не имеет никакого доступа к файловой системе.
Будет ли это работать на странице с локального компьютера и если видео с него же - не знаю. Надо пробовать. Я подобными штуками занимался до того, как появились правила CORS, тогда работало везде, и с локального, и с серверов.
Опять же сохранять скорее всего придется вручную. Говорить куда сохранить каждое изображение. Сам js без разрешения пользователя ничего делать не сможет.

Думаю, возможно написать такое приложение на Electron (или чем то подобном). Это как бы сервер (Node.js), имеющий доступ к файловой системе и браузер, показывающий страницы, в одном флаконе. Но у меня такого опыта нет.

voraa 13.12.2020 18:21

Цитата:

Сообщение от cubano
avi,mov,...

Вот на счет этих форматов не уверен
Вот форматы, которые поддерживает Chrome (Edge, Opera, Яндекс). Firefox скорее всего те же самые. У Safari могут быть некоторые исключения дополнения.
http://www.chromium.org/audio-video

cubano 13.12.2020 18:41

Цитата:

Сообщение от voraa (Сообщение 531651)
А как страница сайта узнает, что в какой-то папке появился файл?
Это пользователь должен как то указывать странице какой файл взять.

Вариант с выбором файла вручную тоже подойдет.

laimas 13.12.2020 18:45

https://blog.pruffme.com/?p=542

voraa 13.12.2020 20:53

Цитата:

Сообщение от laimas
https://blog.pruffme.com/?p=542

Хоть там и не сказано, но подозревая, что FFMPEG может сохранять картинки.
Единственное, в чем я уверен, что просто указать тайм-коды для видео и автоматом получать картинки по этим кадрам - не самый удачный вариант. Очень многие будут не лучшего качества. В видео есть keyframes - которые идут через определенные промежутки времени - это действительно нормальное изображение. Между ними идут кадры, которые представляют собой постепенное изменение этого кадра. Они не всегда бывают удачными.

laimas 13.12.2020 21:36

Цитата:

Сообщение от voraa
подозревая, что FFMPEG может сохранять картинки

Он очень многое может.

cubano 13.12.2020 23:54

Цитата:

Сообщение от laimas (Сообщение 531654)

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


Часовой пояс GMT +3, время: 07:13.