やじうまの杜

動画をブラウザーだけで変換 ~「FFmpeg」をWebAssembly/JavaScriptへ移植した「ffmpeg.wasm」に期待

クロスプラットフォーム、ポータブル、高速な「WebAssembly」(WASM)が熱い!

 “やじうまの杜”では、ニュース・レビューにこだわらない幅広い話題をお伝えします。

 最近、「WebAssembly」(WASM)というキーワードを耳にすることが多くなってきました。WASMは、モダンなWebブラウザーで実行できるバイナリ形式。JavaScriptよりも高速に動作するとされ、C/C++やC#、Go、Rustといったプログラミング言語でも開発できることから近年、有名なプロダクトにも採用されることが増えてきました。クロスプラットフォーム開発でWebブラウザーへ対応する際、WASMが選択されることも増えてきました。

 また、ライブラリをWASMへ移植しようという動きもいくつかあります。中でも有望そうなのが、オープンソースのマルチメディアフレームワーク「FFmpeg」をWebAssembly/JavaScriptへ移植したという「ffmpeg.wasm」です。

「ffmpeg.wasm」のデモアプリ

 ファイルをサーバーへアップロードして、メディアフォーマットを変換・ダウンロードできるようにするWebサービスはいくつかありますが、「ffmpeg.wasm」ならばWebブラウザーだけでビデオやオーディオの変換処理が完結します。すでにAVIからMP4へ変換するWebアプリのデモも用意されていて、実際に利用することができます。

 ボタンには「UPLOAD」と書かれていますが、データはサーバーに送信せず、処理はローカルで行われます。最初にスクリプトとバイナリを読み込む処理があるのでオフラインでは動作しませんが、ローカルCPUのパワーを有効活用できる点や、ネットワーク帯域を節約できる点などはメリットですね。「手持ちのビデオを知らない人が管理するWebサーバーにアップロードするのは不安だ」というユーザーにとっても、ローカルで処理が完結するのは魅力かもしれません。

サンプルビデオ「野生動物」を変換してみましたが、問題なく完了

 ちなみに、オーディオやビデオの記録やストリーミングなども行えるとのこと。

 本プロジェクトは2019年の終わりから続けられており、最新版は今年6月リリースのv0.10.1です。2GB以上のサイズのファイルが扱えないなど、まだ解決すべき課題も少なくないようですが、今後に期待したいですね。