文字スクロール動画ジェネレーター
文字スクロール動画ジェネレーターというのを作った。
別のプロジェクトでffmpeg.wasmを使ってて面白かったので、もうちょっとわかりやすい応用を作ってみようという感じ。
Twitter はほぼそのまま再生されるけど、 Bluesky だとフレームレートが低くなっちゃうっぽい?
https://t.co/cekOpmGBTd pic.twitter.com/afsMpJ6StQ
— ショ糖 (@cho45) July 15, 2025
MediaRecorder vs ffmpeg.wasm
このジェネレータでは使ってないが、MediaRecorderというブラウザでcanvasを録画する標準機能がある。面白い機能なんだけどいくつか問題がある
- 出力フォーマットがブラウザ依存かつ限られる
- Chrome だと vp9+webm とか
- ダウンロードして編集ソフトに持っていくと読みこめなかったりする
- フレームレート可変になる
- これもブラウザ依存だけど、canvas の dirty さを監視してて dirty なフレームしか記録しないようだ
- ダウンロードして編集ソフトに持っていくと読みこめなかったりする
- リアルタイムでしか収録できない
- n秒録画するためにはn秒レンダリングして待つ必要がある
- 尻切れ
- なんかよくわからないが stop() したタイミングでうまく canvas を読んでくれない? みたい
ということで面白いけど使いにくい機能になっている。
「ダウンロードして編集ソフトに持っていくと読みこめなかったりする」を解決するために、MediaRecorder で録画したファイルを ffmpeg.wasm に読みこませてトランスコードする、という方針をとったりしていたけど、だったら直接 ffmpeg.wasm にフレーム画像全部渡せばいいとなり、MediaRecorder を使うのをやめてしまった。
MediaRecorder の使い道はストリーミングとかなんだろう。
関連エントリー
- Rust + wasm の環境が wasm_bindgen でめっちゃ簡単になっていた https://developer.mozilla.org/ja/docs/WebAssembly/Rust_to_wasm に書いてある通...
- WebAudio ComplexFirFilterNode AudioWorklet ComplexAnalyserNode (WebAudio) を作った (IQ信号のFFT) | tech - 氾濫原 に続き、WebAss...
- DaVinci Resolve で作成した動画を Android YouTube でアップロードしようとすると「動画をプレビューできません」となる 追記: 今はショート動画をPCからアップロードした場合、モバイルの編集画面からショート動画のサムネイルを設定できるようになっている。 このた...
- SmooseMouse が Sierra で使えなかった https://steelseries.com/downloads?utm_source=smoothmouse.com&utm_mediu...
- Android SDK の各プラットフォームのビルドツールの一部を使いたいとき sdkmanager をダウンロードする Android Studio のダウンロードページから「コマンドラインツールのみ」を選んでダウンロ...