WebAssemblyを使うことで、これまでのWebでは難しかったスピードでアプリケーションを実行できるようになります。DOMやネットワークが使えないといった制限はありますが、計算処理を高速に行えるのは大きなメリットです。 そんなWebAssemblyでは既存のソフトウェアをEmscriptenを通してWebAssmbly化する試みが多数行われています。今回は動画処理で有名なFFMPEGをWeb上で動くようにしたffmpeg.jsを紹介します。

ffmpeg.jsの使い方

左側はWebカメラの映像で、まずこれを録画します。

録画を停止すると処理が開始します。少し時間がかかります。

右側に動画が表示されます。

デモではWebカメラの映像を取り込んで、ffmpeg.jsを使ってH.264(MP4)に変換しています。同様の処理をJavaScriptだけで行うのは処理時間を考えるに、相当困難でしょう。WebAssmblyならではの使い方といえそうです。

ffmpeg.jsはJavaScript/WebAssmbly製のオープンソース・ソフトウェア(MIT License)です。

ffmpeg.js webcam Example ffmpegjs/ffmpeg.js: FFmpeg for browser and node, powered by WebAssembly