Tôi có một bộ hoạt ảnh mà tôi có thể tạo trong Canvas (fabric.js) hoặc WebGL (three.js). Tôi cần phải ghi lại chúng tự động, phía máy chủ, thông qua một kịch bản và đầu ra một tập tin video.Cách tốt nhất để ghi lại máy chủ hoạt ảnh HTML Canvas/WebGL thành video?
Những hình ảnh động bao gồm:
- Hình
- Video (với âm thanh)
- hình ảnh động khác/hiệu ứng
Tôi đã nghiên cứu rất nhiều trong vài tháng vừa qua về vấn đề này .
Kết quả
1. PhantomJS tài + FFMPEG
hình ảnh động Run HTML Canvas trên trình duyệt không đầu (PhantomJS) và kỷ lục với FFMPEG. Ở đây vấn đề là PhantomJS không hỗ trợ WebGL và phần tử Video.http://phantomjs.org/supported-web-standards.html
2. Sử dụng Websockets để gửi dữ liệu trở lại máy chủ sử dụng DataURL
Một lần nữa, chúng tôi sẽ cần phải chạy các hình ảnh động trên trình duyệt (mà chúng ta không thể bởi vì chúng ta phải làm tất cả mọi thứ trên máy chủ) .
3. Use node-canvas
Đây là thư viện của TJ Holowaychuk cho phép hiển thị HTML Canvas trên Node.js. Nhưng nó có những hạn chế riêng của nó cộng với tôi đã không thực sự khám phá lĩnh vực này nhiều. (Nếu ai đó có thể chiếu sáng nhiều hơn trên thư viện này)
Nếu có ai đã làm trước hoặc có thể hướng dẫn tôi ở đâu đó hữu ích.
Tất cả những gì chúng ta cần làm là sử dụng một số dữ liệu để tạo hoạt ảnh và ghi lại nó thành video, mọi thứ ở phía máy chủ.
'node-canvas' có vẻ như trong ngữ cảnh 2d. Tôi đã tìm thấy gói 'node-webgl' nhưng không thành công để cài đặt các phụ thuộc của nó. Tuy nhiên như một bình luận tôi phải viết: nếu bạn muốn ghi lại một ngữ cảnh webgl (và sử dụng nó như một công cụ dựng hình) để xuất video cho chính mình, 1-by-1, bạn có thể làm điều đó phía máy chủ với 'xhr' trên một máy chủ cục bộ. Nhưng nếu bạn muốn xuất video cho mỗi người dùng được kết nối trên internet, chỉ cần xem xét rằng nó yêu cầu serverSSS của bạn có một cặp CPU-GPU cho mỗi khách truy cập. Tôi đã kiểm tra google cho 'dựng hình 3D phía máy chủ': hiện tại không có gì nghiêm trọng với công nghệ năm 2015. – Atrahasis
Ngoài ra: những gì bạn mô tả là cách để sử dụng webgl như một công cụ dựng hình cho chính mình, đó là lý do tại sao tôi đã viết về nó ở trên. Nếu bạn chỉ tìm cách để thực hiện điều đó trên trang web, câu hỏi của bạn là bản sao của http://stackoverflow.com/questions/64291/api-for-server-side-3d-rendering. Nhưng tất cả các câu trả lời ở đó, không có gì mang lại ^^ – Atrahasis
@Atrahasis Nếu chúng ta chỉ muốn ghi lại Canvas và KHÔNG webGL. Nút-canvas có thể được sử dụng cho nó không? Nó có hỗ trợ video và hoạt ảnh không? – Abhinav