ffmpegで画面を録画する時に「あらかじめ何秒録画するかを決めて自動で録画終了してもらう」感じのやつです。
画面操作チュートリアル用の画像とかワンドロの録画とかに使えるかもしれない。
やるぞ
レートやキャプチャサイズ、拡張子などなどは適宜変更してください。
10秒録画
(sleep 10; ps ax | grep ffmpeg | cut -c 1-6 | xargs kill) & ffmpeg -y -f x11grab -video_size 1920x1080 -i :0.0+0,0 -framerate 20 test.mp4
ffmpegをバックグラウンドでやると録画準備だけ入って始まらなかったので、とりあえずこういう形になりました……。
秒数変更したい場合はsleepの秒数を変更します(微妙な遅れがあるので正確に10秒録画とはいかないかもしれない)
3秒後に通知音を鳴らしつつ開始して10秒録画
↑のやつの手前にsleep 3と再生コマンドを挟んだだけです。
sleep 3; ogg123 /usr/share/sounds/freedesktop/stereo/complete.oga & (sleep 10; ps ax | grep ffmpeg | cut -c 1-5 | xargs kill) & ffmpeg -y -f x11grab -video_size 1920x1080 -i :0.0+0,0 -framerate 20 test.mp4
おまけ
もうちょっと便利にしますよ。
秒数をその都度指定できるようにする
read rectime ; (sleep $rectime; ps ax | grep ffmpeg | cut -c 1-6 | xargs kill) & ffmpeg -y -f x11grab -video_size 1920x1080 -i :0.0+0,0 -framerate 20 test.mp4
ファイル名を事前に指定して10秒録画
echo "Filename: "; read filename; (sleep 10; ps ax | grep ffmpeg | cut -c 1-5 | xargs kill) & ffmpeg -y -f x11grab -video_size 1920x1080 -i :0.0+0,0 -framerate 20 $filename.mp4
日付をファイル名にする
dateコマンドで取得して変数にします。
↑のechoとreadを撤廃して filename=`date "+%F"`; に変更。
日付をファイル名にした後、3秒後にビープ音を鳴らしながら開始して10秒録画したものを投稿用GIF(横600px)へ変換
filename=`date "+%F"` ; sleep 3; (sleep 10; ps ax | grep ffmpeg | cut -c 1-5 | xargs kill) & ogg123 /usr/share/sounds/freedesktop/stereo/complete.oga & ffmpeg -y -f x11grab -video_size 1920x1080 -i :0.0+0,0 -framerate 20 $filename.mp4 ; ffmpeg -i $filename.mp4 -vf scale=600:-1 -r 10 $filename.gif
参考
date コマンド
コマンドラインで音声再生:aplay/mpg321/ogg123
ffmpegを使ってCLIからスクリーンキャストを撮影する (Ubuntu) https://qiita.com/ma2shita/items/cf37f252452d9bd6e7ec
FFmpegで動画をGIFに変換
0 件のコメント:
コメントを投稿