Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как записать видео из canvas? (https://javascript.ru/forum/misc/50072-kak-zapisat-video-iz-canvas.html)

Dimaz 10.09.2014 18:55

Как записать видео из canvas?
 
Как можно записать видео из элемента canvas html5 ? Например, чтобы можно было записать игровой процесс и сохранить на компьютер, либо загрузить на youtube? Только не предлагайте программы для записи видео с экрана. Это нужно не для меня самого, а для моей игры. Т.е. все это нужно реализовать средствами JavaScript.
Я знаю, что сейчас это возможно(с появлением html5 и новых API), но не знаю как это сделать. Может подкинете какую-нибудь статейку по этой теме?

tsigel 10.09.2014 20:00

Может я и не прав, но на сколько я понимаю средствами js нельзя записать видео (ввиду того что js не работает с файловой системой, если у вас конечно не nodewebkid). Можно сохранять покадрово состояние канваса и отправлять его на сервер, который соберет видео из кадров (при этом отправлять лучше конечно сразу много кадров).

Aetae 10.09.2014 20:16

tsigel, почему же. Можно. Скомпоновать всё в файл raw video, пожать jszip'ом и отдать пользователю на "скачку" с помощью blob.

Только на raw никакой памяти не хватит, нужна js имплементация кодека для сжатия видео на лету.

Первые результаты в гугле.
https://github.com/muaz-khan/WebRTC-...ster/RecordRTC
https://github.com/muaz-khan/WebRTC-...nvas-Recording

Dimaz 10.09.2014 20:45

Aetae,
Видел подобное, но слишком мало кадров в видео. Курсор перепрыгивает с места на место. Можно было бы не кадры записывать, а перемещение объектов, а уже потом создать кадры. Знать бы как это сделать)
А с помощью чего можно на сервере видео собрать из кадров? Хотя на клиенте я думаю это тоже возможно. Только нужно знать по какому алгоритму кодировать в определенный видеоформат.

Safort 10.09.2014 21:20

Dimaz,
Цитата:

Можно было бы не кадры записывать, а перемещение объектов, а уже потом создать кадры. Знать бы как это сделать)
Так а в чём проблема? В массив записывать координаты объектов.
А когда нужно "воспроизвести", читаешь из массива эти самые координаты и по ним выстраиваешь объекты.

Aetae 10.09.2014 21:31

Safort, ему надо полноценное видео, чтоб на youtube загрузить можно было.

Dimaz, сколько поставишь кадров столько и будет.

Safort 10.09.2014 21:39

Aetae,
ах да, совсем забыл про это.


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