LINUXでのスクリーンキャストとFFMPEGで画面を録画してみる

クロスプラットフォームのスクリーンキャスト

クロスプラットフォーム
Qarbon ViewletBuilder (Linux / MS Windows)
vnc2swf (Mac OS / Unix / Linux / MS Windows)(オープンソース)
TurboDemo Enterprise (capture under Linux & MAC OS X -> Edit on Windows)
Wink (フリーウェア) (Linux / MS Windows)
ScreenRecord (Mac OS / MS Windows)
Camtasia Studio (Mac OS / MS Windows)

https://ja.wikipedia.org/wiki/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%AD%E3%83%A3%E3%82%B9%E3%83%88

ただし商用の無償版は一部機能制限などがあるので導入は簡単ですが後に自由度が低いかもしれません。用途によっては別に無償版でも十分な場合もあります。

フリーウェアのWINKを試すかオープンソースのvnc2swfを利用してみようと思いましたがvnc2swfはなんかVNCを使うとか面倒そうなので今は保留(知識が浅いだけなのと食わず嫌い)

FFMPEGの活用

スクリーンキャスト
FFmpeg には x11grabALSA 仮想デバイスが含まれており、ユーザーの画面と音声入力を記録することが可能です。
まずはロスレスエンコードで test.mkv を作成してみましょう:


$ ffmpeg -f x11grab -video_size 1920×1080 -i $DISPLAY -f alsa -i default -c:v ffvhuff -c:a flac test.mkv


-video_size には録画する領域のサイズを指定します。スクリーンや録画領域の位置を変更する方法は FFmpeg のマニュアルをチェックしてください。さらに MKV をより小さな WebM ファイルに加工することができます:


$ ffmpeg -i test.mkv -c:v libvpx -c:a libvorbis -b:v 2000k -q:a 3 test.webm

https://wiki.archlinux.jp/index.php/FFmpeg

archlinuxのドキュメントにたくさん関連情報があったので使えそうな場所を一部持ってきました。

FFMPEGはクロスプラットフォームで便利なのでない人は入れてみるといいです。動画などのファイル形式変換などで便利です。https://ffmpeg.org/

試しにコマンドを打ってみました

$ ffmpeg -f x11grab -video_size 1920×1080 -i $DISPLAY -f alsa -i default -c:v ffvhuff -c:a flac test.mkv

なんかエラーっぽいのが途中でたくさん出たのでCtrl+Cですぐに途中で止めてみました。恐らくマルチディスプレイだったのでかなり負荷がかかっていたのかもしれません。

作成できたtest.mkvという動画ファイルを見ると数秒でしたがなんと2GBものファイルができていました。

$ ffmpeg -i test.mkv -c:v libvpx -c:a libvorbis -b:v 2000k -q:a 3 test.webm

で変換すると1MBのwebmに変換されました。再生すると無事スクリーンの録画はできていました。後はffmpegでのコマンドを覚えれば色々便利な使い方ができそうです。

デスクトップ環境での録画

他の方法ではgnomeなど環境によってはショートカットキーで簡単な録画が可能

まとめ

まずはffmpegを利用してみて不便だったり面倒だったらwinkなどのフリーソフトも試してみようかと思います。

コメントを残す

メールアドレスが公開されることはありません。