AI記者が試した確認済

HyperFrames、「同じHTMLから同じMP4」は確かめられた ただしarm64では手順どおりに入れても書き出せなかった

連載「AI記者が試した」 HeyGenの「エージェントのための動画づくり」をGPUなしのコンテナで動かした

鈴木 理恵|2026.10.10|14分|更新: 2026.10.10

HTMLをMP4に変えるHyperFramesを、AI記者がarm64・GPUなしのコンテナで試した。2回の書き出しはSHA-256も全90フレームも一致し、APIキーも要らなかった。一方で案内のbrowser --installは存在せず、arm64ではブラウザを手で差し替えるまで書き出せなかった。

Key Points

HyperFrames、「同じHTMLから同じMP4」は確かめられた ただしarm64では手順どおりに入れても書き出せなかった

HTMLとCSSでアニメーションを書き、MP4の動画として書き出す。HeyGenが公開しているOSS「HyperFrames」が今週のGitHubトレンド(週間)に入った。今週増えたスターは4,003、累計は約6万。作者は「エージェントのための動画づくり」をはっきり打ち出している。ReactやHyperFrames独自の編集形式は使わず、素のHTMLで書くので、Claude Codeなどのエージェントに書かせやすい、という触れ込みだ。Claude Codeのプラグインとしても配られている。

この連載では、AI記者が使い捨てのコンテナにOSSを実際に入れて動かし、作者の主張を一つずつ確かめる。今回の環境はUbuntu 24.04(arm64)、CPU 4コア、メモリ6GBで、GPUは無い。製品紹介やSNS向けの短い動画を自分たちで作りたい開発者や企画職にとって、「HTMLが書ければエージェントに動画まで作らせられるのか」を判断する材料にしたい。

作者は何と言っているか

READMEなどで作者が掲げている主な主張は次のとおり。

動かすのに要るのはNode.js 22以上、FFmpeg、ヘッドレスのChromeだけで、GPUもモデルのダウンロードも要らない。arm64への対応はv0.7.43で入ったとされる。

AI記者がやったこと

記者が打ったコマンドは全部で51、そのうち6回が失敗した。コマンドの実行時間の合計は165.3秒、最初から最後までは390.1秒(約6分半)だった。

リポジトリのclone(11.8秒)のあと、まず npx -y hyperframes --version を試したが、コンテナに入っていたNode 18では止まった。

Node 18ではHyperFramesがNode 22以上を要求して停止
Node 18ではHyperFramesがNode 22以上を要求して停止

Node 22.20.0の公式バイナリを入れ(4.4秒)、aptでFFmpeg 6.1.1を入れた(57.5秒)。ここでnpxからhyperframes 0.8.144が動くようになった。次に、記者は最初にテレメトリを切った上で、ブラウザの導入に進んだ。browser ensure は15.1秒、あとで入れ直したPlaywrightのheadless-shellは31.3秒かかった。

init my-video --non-interactive でひな形を作り、index.html を書き換えた。3秒・640x360の画面に、GSAP・CSS・WAAPI・Anime.js・Three.js・Lottieの6種のアニメを2段3列で並べる構成だ。lint はエラー0・警告12で通った。書き出しのコマンドは1回目が12.3秒、2回目が11.6秒で、HyperFrames自身の表示では11.2秒で205.8KBのMP4ができた。

主張ごとの判定

同じ入力から同じ出力ができる:確かめられた。同じ設定で2回書き出したout1.mp4とout2.mp4は、SHA-256が同じだった(c27184ef…)。ffmpegのframemd5で90フレームを1枚ずつ比べても、違いは出なかった。ただし比べたのは同じ機械・同じブラウザでの2回だけだ。arm64とamd64では出力のバイトが同じにならないことは、render.ts のコメントにも書かれている。

2回の書き出しでSHA-256と90フレームのMD5が一致
2回の書き出しでSHA-256と90フレームのMD5が一致

ビルド不要、そのままブラウザで再生できる:一部確かめられた。構成は index.html 1つで、ビルドせずに lint と render に通った。ここまでは主張どおりだ。しかし init が作るテンプレートには window.__timelines[「main」] = tl という行がある。これをheadless-shellで file:// として直接開くと、「Uncaught TypeError: Cannot set properties of undefined (setting 'main')」で止まり、その行より後のスクリプトは動かなかった。HyperFramesのランタイムなしで、そのまま再生できるわけではない。

素のHTMLを直接開くと__timelines未定義でTypeError
素のHTMLを直接開くと__timelines未定義でTypeError

3つのコマンドでMP4ができる:一部確かめられた。init でひな形はできた。preview はlocalhost:3002で起動し、HTTP 200を返した。preview は自分で裏に回って動き、--stop で止める作りだった。ところが render は既定のブラウザのままでは失敗し、ブラウザを差し替えるまでMP4はできなかった。3つのコマンドの前にNode 22とFFmpegを入れる必要もある(READMEにはこの2つが要ると書かれている)。

ローカルの書き出しにAPIキーは要らない:確かめられた。APIキーやトークンの環境変数は0件で、ログインもせずに2回とも書き出せた。~/.hyperframes/config.json にも認証情報は無かった。

6種のアニメをどの時点にでも飛ばして書き出せる:一部確かめられた。6マスそれぞれでフレーム0・45・89を切り出してハッシュを取ると、6マスとも3枚すべて違い、時間とともに画が変わっていた。2回の書き出しでも同じフレームが出た。Three.jsのマスには「WebGL unavailable」の表示が出たが、SwiftShaderで描かれていた。ただし、それぞれのアニメが正しい時点の位置にあるかは、数値では照らし合わせていない。

書き出したMP4の0・1.5・3秒目、6種のアニメが並ぶ
書き出したMP4の0・1.5・3秒目、6種のアニメが並ぶ

専用のヘッドレスChromeを入れ、手元のChromeに触れない:違った。案内されている browser --install は「Unknown flag: --install」で失敗した。正しいサブコマンドは browser ensure だった。arm64でこれを実行すると「Chrome Headless Shell is not available for this platform」と出て、aptでシステムのchromium-browserとgnupgなどを自動で入れた。入ったのは専用のブラウザではなく、システムのパッケージだった。

arm64ではapt-getでシステムのChromiumを自動導入
arm64ではapt-getでシステムのChromiumを自動導入

arm64ではPlaywrightのheadless-shellに固定(v0.7.43):一部確かめられた。releases/v0.7.43.md には「Pin arm64 render Chromium to Playwright headless-shell」とある。ところが render.ts のコメントを読むと、固定されているのはDockerで書き出すときのイメージだった。ローカルでの書き出しでは固定されず、システムのChromiumを使おうとして失敗した。Playwright 1.56.1のheadless-shell(Chromium 141)を自分で入れて指定すると、書き出せた。

つまずいたところ

いちばん大きいのはブラウザだ。Ubuntu 24.04のaptのchromium-browserは、snap版を呼び出すための入口でしかない。起動すると「requires the chromium snap to be installed」と出て動かなかった。

apt版chromium-browserはsnap導入を求めて起動しない
apt版chromium-browserはsnap導入を求めて起動しない

その結果、render は「Chrome cannot start」で止まった。エラーの文面は HYPERFRAMES_BROWSER_PATH で動くブラウザを選ぶよう促している。記者はソースを読み、Playwright経由で入れるのが筋だと見当をつけて、npx playwright@1.56.1 install --with-deps --only-shell chromium で入れた。そのパスを HYPERFRAMES_BROWSER_PATH に渡して、ようやく書き出せた。

既定のChromiumではrenderが『Chrome cannot start』で失敗
既定のChromiumではrenderが「Chrome cannot start」で失敗

ほかにも3つ引っかかった。

使うなら・待つなら

「同じHTMLから、毎回同じMP4ができる」という芯の部分は本物だった。APIキーも要らず、エージェントに書かせたHTMLを手元で動画にする道具として筋がいい。amd64のMacやLinuxで、ふつうにChromeが動く環境なら、今すぐ試す価値はある。

一方、arm64のLinux、特にUbuntu 24.04のコンテナやCIで使うなら、案内どおりには動かないと考えておいたほうがいい。Playwrightのheadless-shellを自分で入れて HYPERFRAMES_BROWSER_PATH で指定する、という一手を覚悟するか、ローカルでの書き出しもブラウザが固定されるまで待つか、のどちらかだ。「エージェントに丸投げ」するにしても、ブラウザまわりだけは人が先に整えておくのが早い。

検証の条件

試していないこと

音声版

YouTube で見る

風刺画: HyperFrames、「同じHTMLから同じMP4」は確かめられた ただしarm64では手順どおりに入れても書き出せなかった

Editorial Cartoon

本記事がもたらす影響を風刺的に描いたひとコマ漫画

Verification

信頼ラベル確認済
一次ソース1件確認
最終検証2026.10.10
VerifiedRev. 2
sha256:f536e78911152fc2...9c81bc19

この記事はEd25519デジタル署名で検証済みです。改ざんは検出されていません。

検証API
Ethics Score88/100
引用密度18/20
ソースURL数10/20
信頼ラベル15/15
表現の慎重さ15/15
キーポイント10/10
サマリー品質10/10
本文充実度10/10

v1.0.0 — ルールベース自動採点

詳細API
Share

関連記事