スクリーンキャプチャ-コマンドライン?


12

コンピューターの画面とオーディオデバイスを記録し、それをファイルに保存できるコマンドラインツールはありますか?


これがCLIツールである必要がある理由は何ですか?QuickTimeを使用すると、画面キャプチャを無料で取得できます。
イゴール

シェルスクリプトで呼び出して、無人で実行したいと思います。

こんにちはキース、StackOverlowへようこそ。これはプログラミングに一見関連しているようには見えませんが、実際には、バッチファイルなどでスクリプトを作成することを計画している場合です。手に負えないように言い換えることができます。
ブライアンマッケイ

回答:


9

Mac OS Xは、想像力に欠けるユーティリティを使用して、コマンドラインから静的なスクリーンショットをキャプチャする機能を提供しますscreencapture。を実行すると、詳細情報を見つけることができますman screencapture

例えば。 screencapture ~/Desktop/picture.png


Mac OS X 10.6以降を使用している場合、モーションとコンピューターのオーディオの記録に関しては、QuickTime Player Xを使用してAppleScriptでこれを行うことができます。(ただし、それは間違いなく「サイレント」ではなく、誰かがログインしたときにのみ実行されます)

(画面を5秒間記録しますが、これは可能な出発点です)

tell application "QuickTime Player"
    --activate
    new screen recording
    start document 1
    delay 5
    stop document 1
    save document 1 in file "/tmp/test.mov"
    quit
end tell

screencaptureでは、静止画像のみが許可され、ビデオや音声の録音は許可されません。
MacLemon

@MacLemon:いくつかの説明を追加しました。
-Chealion

2
FYI、ちょうど上記のQuickTimeのAppleScriptの改良版を持っているブログ記事を参照:netjunki.org/blog/...
デヴィッド・

1
@Davidが言及したブログはまだGoogleのキャッシュにあり、「10.7 quicktimeでsaveを呼び出しても、その呼び出しは無視されるようです。またはそのようなものです。スクリプトは永遠にハングしてタイムアウトします。」これは10.8の私にとって真実です…
ptim 14年

2

キャプチャにはSOXとVLCを、スケジューリングにはcrontabを、多重化にはm4aとMP4Boxを作成するXLDを使用しています。非常に柔軟ですが、Bashスクリプト(おそらくAppleスクリプト)の知識が必要です。DiegoMassantiのmkmp4スクリプトにインスピレーションを得ました。

起動するコアプロセス:

rec -q -c $C -r 48000 -b 16 $AFILE trim 0 $HH:$MM:00 &

VLC -I dummy screen:// --screen-fps=25 --quiet --sout "#transcode{vcodec=h264,vb=3072}:standard{access=file,mux=mp4,dst=$FILE}" --run-time $TIME vlc://quit

録画のスケジュール:

crontab -l
0       8       *       *       1-5     ~/capture.sh 3 0 recording-name 1

スクリプトが何をしているのかを知ることができます:3hキャプチャ、モノラルサウンド、毎日午前8時の記録


MPEGオーディオストリームに対応したSOXが見つかりませんでした。したがって、FLACを使用してスペースを節約しました。XLDを使用して、音声に十分なAAC-HE 16kbpsに変換します。

次のステップ:オーディオとビデオを多重化してmp4を作成します。GUIの使用を気にしないのであれば、MPEG StreamClip(またはQuickTime)も役立ちます。

MP4Box -add $1.m4a -sbr -add $1.m4v -fps $2.0 -inter 500 $1.mp4

私はこれを毎日使ってGoToWebinarのアーカイブを作成していますが、FFmpegの次のリリースがG2M4コーデックをサポートするときには、もう気にしません。はい、ウェビナーを起動するOSAscriptもあります。警告を無効にするにはcom.apple.quarantineフラグを削除する必要があります(本当に開きますか?)。

リンク:

http://blog.massanti.com/2008/09/26/mkmp4-automated-h264-aacplus-encoder-script-mac-linux/


これはVLCにも関連している可能性があります。このブログ投稿には、使用方法に関する小さなヒントがあり
David

1

ソフトウェアffmpegを使用できます。Macにインストールするには、こちらの手順に従ってください。次に、コマンドを使用します。

$ffmpeg -f alsa -ac 2 -i hw:0,0 -f x11grab -r 30 -s $(xwininfo -root | grep 'geometry' | awk '{print $2;}') -i :0.0 -acodec pcm_s16le -vcodec libx264 -vpre lossless_ultrafast -threads 0 -y output.mkv

1
OSXで動作するかどうかは疑問ですが、alsaとx11grabはffmpegのLinuxビルドでのみ使用可能です。
アダムMW 14

0

画面をキャプチャするために、いくつかのオープンソースツールがあります。Linuxのパッケージマネージャーを使用して「スクリーンキャプチャ」を検索する必要があります。などのツールscrotはスクリプトで呼び出すことができます。プログラムで実行する場合、Imlib2に必要なエントリポイントがあります。

サウンドのキャプチャは、実際にはマイクサウンドデバイスの録音です。それは実際にはスナップショットではないので、録音が行われる時間を管理する必要があります。どんなサウンドレコーダーでもできます。

デスクトップのビデオを作成するツールもあります。


0

Linuxフレームバッファデバイスの内容をファイルにダンプすることは、探しているものと似ている場合があります。以下に、Linux 2.2 Framebuffer Device Programming Tutorialの関連部分を引用しました。フレームバッファデバイスを有効にするようにシステムを設定する必要があります(システムに/ dev / fb0があるかどうかを確認してください)。Ubuntu9.04にはありません。

高解像度のテキストモードを取得したら、実験を開始できます。デバイス/ dev / fb0があり、通常のファイルと同じように見ることができます。スクリーンショットを撮るのに必要なことは、

cat / dev / fb0>〜/ sshot

また、グラフィックカードのメモリの内容が入った非常に大きなファイルが作成されます。ここで、画面をクリアして、次のように入力すると

cat〜/ sshot> / dev / fb0

以前とまったく同じように見えるディスプレイが必要です。もちろん、入力を開始した秒は通常に戻ります。


0

ImageMagickからインポートを使用できますが、Linuxのみです。次に、ターミナルに移動して実行できます。

import screenshot.png

0

また、老朽化し​​たMacbookでSnow Leopardを実行しています。ObjectiveCを学習しようとしているため、特定のウィンドウをキャプチャできるツールを構築するために時間を費やしています。

https://github.com/vorgos/QuickGrab

これは、最もアクティブなウィンドウまたは指定したウィンドウをキャプチャするコマンドラインツールです。

お役に立てば幸いです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.