2013-06-10 37 views
8

Tôi đang tìm cách tạo bộ mã hóa video hoàn toàn bằng Javascript. Ý tưởng là người dùng sẽ có thể chỉ định video hiện có (đủ dễ) hoặc một loạt hình ảnh và sau đó có thể mã hóa video thành H.264 để xuất bản.Bộ mã hóa video H.264 trong javascript

Tôi hiểu rằng nội dung mã hóa không được hỗ trợ ngay bây giờ nhưng tôi đã tự hỏi liệu đây có phải là điều hoàn toàn có thể có trong Javascript (hoặc cầu nối Flash) hay không?

Cảm ơn.

+0

Just do đó, nó rõ ràng, bạn đang yêu cầu nếu bạn có thể thực hiện nén video từ đầu trong JavaScript, hoặc nếu có một số cơ sở có sẵn để làm nó cho bạn? – rakslice

+0

Đây là bộ mã hóa webm client thử nghiệm: http://antimatter15.com/wp/2012/08/whammy-a-real-time-javascript-webm-encoder/ – forresto

Trả lời

1

Mã hóa video về bản chất chỉ là một hoạt động toán học chuyên biệt trên dữ liệu nhị phân từ một tệp để nhận được nhiều dữ liệu nhị phân hơn để đưa vào tệp khác. Miễn là bạn có cách để lấy dữ liệu (ví dụ: HTML 5 FileReader) và ra ngoài (ví dụ: AJAX) theo những cách bạn cần, chắc chắn trong phạm vi khả năng cho phần ở giữa là trong JavaScript.

3

Có thể biên dịch bộ mã hóa video thành javascript bằng emscripten. Ví dụ, đây là một phiên bản emscripten-biên dịch của thư viện libvpx VP9 google:

https://bitbucket.org/desmaj/libvpx.js/overview

Đáng tiếc là nó là vô cùng chậm - vào thứ tự của một phần mười tốc độ của thư viện bản xứ. Tôi tin rằng điều này là do thực tế là có rất nhiều truy cập bộ nhớ đang diễn ra, và đó là cực kỳ chậm trong emscripten (xem https://bugzilla.mozilla.org/show_bug.cgi?id=771106). Ngoài ra, mã hóa thường dựa trên tính song song của GPU hoặc SIMD, hiện không có sẵn trong javascript.

Tôi nghĩ rằng việc mã hóa video chỉ là không khả thi trong javascript hiện tại. Giải pháp tốt nhất là để W3C thêm API mã hóa/giải mã video vào HTML5, có lẽ là một phần của WebRTC/getUserMedia.

Ngoài ra, xem bài viết trên blog này trong đó mô tả tình hình:

https://brendaneich.com/2013/05/today-i-saw-the-future/