文字スクロール動画ジェネレーターというのを作った。

別のプロジェクトでffmpeg.wasmを使ってて面白かったので、もうちょっとわかりやすい応用を作ってみようという感じ。

Twitter はほぼそのまま再生されるけど、 Bluesky だとフレームレートが低くなっちゃうっぽい?

MediaRecorder vs ffmpeg.wasm

このジェネレータでは使ってないが、MediaRecorderというブラウザでcanvasを録画する標準機能がある。面白い機能なんだけどいくつか問題がある

  • 出力フォーマットがブラウザ依存かつ限られる
    • Chrome だと vp9+webm とか
    • ダウンロードして編集ソフトに持っていくと読みこめなかったりする
  • フレームレート可変になる
    • これもブラウザ依存だけど、canvas の dirty さを監視してて dirty なフレームしか記録しないようだ
    • ダウンロードして編集ソフトに持っていくと読みこめなかったりする
  • リアルタイムでしか収録できない
    • n秒録画するためにはn秒レンダリングして待つ必要がある
  • 尻切れ
    • なんかよくわからないが stop() したタイミングでうまく canvas を読んでくれない? みたい

ということで面白いけど使いにくい機能になっている。

「ダウンロードして編集ソフトに持っていくと読みこめなかったりする」を解決するために、MediaRecorder で録画したファイルを ffmpeg.wasm に読みこませてトランスコードする、という方針をとったりしていたけど、だったら直接 ffmpeg.wasm にフレーム画像全部渡せばいいとなり、MediaRecorder を使うのをやめてしまった。

MediaRecorder の使い道はストリーミングとかなんだろう。

  1. トップ
  2. tech
  3. 文字スクロール動画ジェネレーター
▲ この日のエントリ