Ubuntu でゲーム(Switch)の録画をする

わざわざ記事にするほどのことでもない気もするが、調べるときに地味に面倒だったので書き残しておくことにする。
というのもUbuntu でゲームの録画しようというのが調べてもなかなか出てこなかったので。
そもそも録画するほどのゲーマーなら普通に考えてPCもWindowsもあるわけで、
自分のようにPCゲームのためにWindows10渋々使うけどそれ以外は極力Linuxでやりたいというのはかなりレアケースだろうし仕方がない。

ハードウェア:キャプチャーボード

使ったキャプチャーボードはこれ

TreasLin hdmi キャプチャーボード Switch、Xbox、Wii U、PS4、PS3 ゲーム 実況ゲーム録画機器、OBS/Potpalyerライブ配信用 1080P Windows7/8/10、Macbook Youtube/Twitch/NICONICO/jstarkan/Twitcasting/Facebook Live 1080PフルHD対応 HSV322

決め手は比較的安いのとLinux対応だったため
可能なら(配線の関係で)PCIE接続の内蔵型にしたかったが、PCIEスロットに空きがなかったのとそういうのはLinuxで使えるか不明だったので今回はパス。

この商品はUSB接続のUVCという規格で、この規格は本来Webカメラ用の汎用規格なのだとか。
汎用規格というだけあってLinuxでも問題なく認識した。

ソフトウェア:FFmpeg

ゲームの録画だと検索してもなかなか見つからなかったが、Web カメラから調べたらあっさり見つかった。

$ sudo apt install ffmpeg
ffmpeg -f alsa -i default -f video4linux2 -s 1280x720  -i /dev/video0 -vcodec libx264 Videos/test3.mp4

Ctrl+C で止める
とりあえずこのコマンドで1280×720 の解像度で音付きで録画ができた。
GPUでのハードウェアエンコードが必要かと思っていたが、この画質だとCPUのソフトウェアエンコードで間に合うらしい。

今後

そのうちGPUでのエンコーディングも試してみる予定
せっかくグラボあるんだし。

参考

LinuxでUVC(USB Video Class)タイプのUSBカメラを使う
FFmpeg
ffmpegでUVCカメラの画像が録画ができない