RG351MPの60fpsを録画したかった¶
うまくいかなかった記録 / 2026年10月28日 実機で検証
RG351MPで遊ぶDOOMは、手に持つとぬるぬる動きます。その感じを動画で伝えたくて、Wi-Fi経由で画面を録画してみました。
結論から書くと、今の環境では、60fpsのなめらかさを録画で再現できませんでした。 その代わり、原因はかなりはっきり分かりました。同じことを試す人の参考に、調べた順に残します。
この記事の環境
- 本体: RG351MP
- OS: dArkOS(Debian 13ベース、カーネル 4.4)
- ゲーム: DOOM(lzdoom)
- 接続: Wi-Fi(USBのWi-Fiアダプター)とSSH
結論¶
| 用途 | おすすめの方法 |
|---|---|
| スクリーンショット | Wi-Fi経由で撮る(画質はそのまま、640×480) |
| なめらかな動画 | スマホで実機の画面を撮る |
1. Wi-Fiで画面を撮れるようにする¶
dArkOSは、メニューの Options → Enable Remote Services でSSHが使えるようになります。この設定は、再起動するたびに無効に戻ります(安全のため、わざとそうなっています)。
SSHでつないだら、ffmpegで画面(/dev/fb0)を読み取れます。ffmpegは、最初から入っていました。
# スクリーンショット
ffmpeg -f fbdev -i /dev/fb0 -frames:v 1 -pix_fmt rgb24 shot.png
# 10秒の動画(30fps)
nice -n 10 ffmpeg -f fbdev -framerate 30 -i /dev/fb0 -t 10 \
-c:v libx264 -preset ultrafast -crf 23 -pix_fmt yuv420p rec.mp4
スクリーンショットが白っぽくなるとき
-pix_fmt rgb24 を付けないと、DOOMの画面が白っぽく、色が飛んだように写りました。画面のデータに含まれる「透明度」の値を、DOOMがきちんと設定していないためです。透明度を捨てて保存すると、ふつうの色になります。
2. 60fpsで録ってみる¶
30fpsでは物足りないので、60fpsで10秒録りました。処理は間に合い、584コマ記録できました。
ところが、見比べるとぬるぬる感がありません。 1コマずつ調べると、こうなっていました。
| 録り方 | 新しい絵 | 描きかけの絵 | 前と同じ絵 |
|---|---|---|---|
| 圧縮しながら録画(5秒) | 117 | 162 | 21 |
| 無圧縮で録画(5秒) | 123 | 30 | 145 |
新しい絵は、5秒で120コマ前後でした。つまり、録画には毎秒25コマ程度しか入っていません。
実際に録れた動画です。どちらも60fpsで録画しています(音声なし、5秒)。
圧縮しながら録画したもの(描きかけの絵が多く混ざっています)
無圧縮で録画したもの(乱れは減りましたが、なめらかさは変わりません)
DOOM © id Software / Bethesda。Bethesdaのファン動画ポリシーに沿って掲載しています。
3. 原因を1つずつつぶす¶
録画の負担が重すぎた¶
圧縮しながら録ると、CPUの4コアのうち約2.4コア分を使い、空きが0%になりました。ゲームを描いている途中の絵が混ざったのは、このためです。
| 処理 | CPUの使用量(4コア中) |
|---|---|
| 画面を読むだけ | 約0.5コア |
| 読む + 色の変換 | 約1.3コア |
| 読む + 変換 + 圧縮 | 約2.4コア |
無圧縮でメモリに録ると、負担は約0.5コアまで下がり、描きかけの絵は5分の1に減りました。ただし10秒で約740MBになるので、録れるのは5秒程度が限度です。
動画用の専用回路は使えなかった¶
チップには動画を圧縮する回路がありますが、dArkOSのffmpegには、それを使う部品が入っていませんでした(h264_v4l2m2m も rkmpp も使えず)。
ゲームが遅いわけではなかった¶
DOOMには、画面にコマ数を表示する機能があります。設定ファイルの ~/.config/lzdoom/autoexec.cfg に、次の1行を書くと表示されます。
vid_fps 1
表示は 17ms(58〜60fps) でした。実機のDOOMは、本当に60fpsで動いています。
4. 本当の原因¶
ゲームは、画面用の絵を2〜3枚用意して、順番に入れ替えながら表示しています。一方、/dev/fb0 から読み取れるのは、そのうち1枚だけのようです。そのため、録画には3コマに1コマしか新しい絵が入りません。
無圧縮の録画で「新しい絵、同じ絵、同じ絵」がほぼ規則正しく並んでいたのも、これで説明がつきます。
表示中の絵を直接読む方法(ffmpegの kmsgrab)も試しましたが、カーネル4.4が古く、Invalid argument で動きませんでした。
カーネルを新しくすれば直る?
新しいカーネルを使うOSなら、kmsgrab は動く見込みがあります。ただ、CPUが録画に力不足なことと、専用回路を使えないことは変わりません。dArkOSはカーネル4.4を前提に作られているので、試すなら別のOS(ROCKNIXなど)を予備のSDカードに入れることになります。
まとめ¶
- スクリーンショットは、Wi-Fi経由でそのままの画質で撮れる
- 60fpsの動画は、今のRG351MPとdArkOSでは録画できない
- 原因は、ゲームの描画の仕組みと、古いカーネル、CPUの力不足
- なめらかさを伝えたいときは、スマホで実機を撮り、画面のコマ数表示も一緒に映すのが近道(今回は撮っていません)
実機で遊ぶと、DOOMは本当にぬるぬる動きます。上の動画のカクカクは、録画の限界です。