Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

ゲーム開発とかしてるときに、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 ファイル名 チャンネル名 でサクッと投稿できました。

Hi-king
m3dev
インターネット、最新IT技術を活用し日本・世界の医療を改善することを目指します
https://m3.recruitment.jp/engineer/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away