0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MacでVLCを使って1時間に1回slackに画面録画をアップロードする

Posted at

ゲーム開発とかしてるときに、100時間くらい放置すると発生するバグってありますよね(僕だけだったら悲しい)。そういうバグを検証するために、人間が労力を使うのは面倒です。起動しっぱなしにして、画面を定期的に録画しましょう。ついでにslackにうpしましょう。

こちらが今回の完成コードです

while :
do
    filename=/tmp/$(hostname).mp4
    vlc screen:// --no-interact --sout "#transcode{vcodec=h264,vb=3072}:standard{access=file,mux=mp4,dst=${filename}}" &
    pid=$!
    sleep 30
    kill -SIGINT ${pid}
    sleep 10
    kill -SIGINT ${pid}
    sleep 10
    ./slack file upload $filename $CHANNNEL_NAME
    sleep 3600
done

コマンドラインから画面録画する

VLCを使います。インストールは brew cask install vlc
MacならQuicktimeで画面録画するのが普通だろう、という声がありそうですが、調べてみても、コマンドラインから叩くにはapplescriptを使わなきゃいけなそうで、正直面倒でした。その点VLCは最初っからcliツールがついてくるので素敵。

この辺( https://stackoverflow.com/questions/22084098/vlc-screen-capture-using-terminal )の議論を参考にして、なるほど、コマンドラインから画面録画を起動して、適当にSIGINT送ればエンコードして保存してくれるんだな、と。

ということで上記のコマンドの vlc~~~dst=${filename} で起動して、 pid=$! でpid記録しておいて、 kill -SIGINT ${pid} でうまくいきました。ただ、SIGINT送った時点ではエンコード始まるだけっぽくて、その後適当にsleepしてます。pidがpsからなくなるまで待つ、ってやったほうが綺麗かと思います。

ちなみに僕は、複数台で再現実験を同時にやるために、ファイル名にhostnameをつけてます。

slackに動画を投稿する

この機能はおまけですが。slackに動画投稿しておけば、自分以外の誰かがこの実験確認したいときにも便利かな、と。

slack-cli( https://github.com/rockymadden/slack-cli )を使います。
インストールは curl -O https://raw.githubusercontent.com/rockymadden/slack-cli/master/src/slack

いくつかあるslackのcliの中でもコマンドが整理されてて使いやすいです。 slack file upload ファイル名 チャンネル名 でサクッと投稿できました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?