web-dev-qa-db-ja.com

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

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

12
Keith

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

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


モーションとコンピュータオーディオの録音に関しては、Mac OS X 10.6以降を使用している場合は、QuickTime PlayerXを使用して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
9
Chealion

キャプチャにはSOXとVLCを使用し、スケジューリングにはcrontabを使用し、多重化にはXLDを使用してm4aとMP4Boxを作成しています。非常に柔軟性がありますが、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

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


MPEGオーディオストリームに対応したSOXを見つけたりコンパイルしたりしなかったため、FLACを使用してスペースを節約しました。 XLDを使用してAAC-HE16kbpsに変換しています。これは音声には十分です。

次のステップ:オーディオとビデオを多重化して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/

2
rhoracio

あなたはソフトウェア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
Nehal J Wani

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

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

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

0
kriss

Linuxフレームバッファデバイスの内容をファイルにダンプすることは、探しているものと似ている可能性があります。以下に、 Linux 2.2フレームバッファデバイスプログラミングチュートリアル の関連部分を引用しました。ご覧ください。フレームバッファデバイスを有効にするようにシステムを構成する必要があります(システムに/ dev/fb0があるかどうかを確認してください)。Ubuntu9.04にはありません。

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

cat/dev/fb0>〜/ sshot

また、グラフィックカードのメモリの内容を含むかなり大きなファイルが作成されます。ここで、画面をクリアして、

猫〜/ sshot>/dev/fb0

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

0
sauparna

また、古くなったMacBookでSnow Leopardを実行していますが、Objective Cを学習しようとしているので、特定のウィンドウをキャプチャできるツールを構築するために時間を費やしています。

https://github.com/vorgos/QuickGrab

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

それがお役に立てば幸いです。

0
Dude named Ben

ImageMagickからimportを使用できますが、これはLinuxのみです。次に、ターミナルに移動して実行できます。

import screenshot.png
0
karlphillip