ffmpeg.wasmは実用に耐えない

ニコニコって暗号化してる動画をダウンロードできるツールを全く見かけないのでffmpeg.wasmを使っていい感じにダウンロードできないかなと思ったのがきっかけで色々試したのですが、結局挫折しました

niconico-dl : https://pypi.org/project/niconico-dl/

上のソースコードを参考にjavascriptに書き換えて少し手を加えてやればffmpegでダウンロードできるhlsのリンクを入手できるわけですが、ffmpeg.wasmが思った以上に曲者でした

1. 拡張機能から呼び出せない

ffmpeg.wasmはSharedArrayBufferという機能を使っているのですが、4年ほど前にセキュリティ対策でhttps経由かつ特殊なヘッダーを付与しないと利用できなくなりました

webサーバーであればかんたんにヘッダーを付与できるのですが、拡張機能はブラウザ内部で呼び出しが完結するため、ヘッダーの付与が難しいです

また、manifest.jsonでも設定できないため、とても複雑な手順を踏む必要があります

この時点ですでに諦めかけてました

2. 開発者ツールを開くとクラッシュする

原因は不明ですがfirefox上で開発者ツールを開きながらffmpeg.wasmを読み込むと、f.asm is undefinedと言われ失敗します

開発者ツールを閉じると問題なく読み込めるので原因は本当に謎です

しかも、数年前から同様のバグは発生しているようなのですが、修正される気配はなさそうです

3. めちゃくちゃ遅い

最終的に諦めたのはこれが原因です

firefoxはwebassemblyの最適化がそこまで進んでいないせいか、変換の速度が異常なまでに遅いです

変換のfpsが0.4とかなので実用に耐えないレベルです

まとめ

chromeではそれなりに早かったので、対象をchromeユーザーに絞れるのであればありかもしれません

ただ、今回の目的であるfirefoxの拡張機能への埋め込みは無理そうだったので、諦めました

コメントする

メールアドレスが公開されることはありません。