web-dev-qa-db-ja.com

端末を使用したVLCスクリーンキャプチャ

画面をビデオとしてキャプチャしようとしていますが、VLCがおそらく最良のソリューションであることがわかりました。私がしなければならないのは、ターミナルを使用して特定のアプリケーションをキャプチャしてから、キャプチャも停止することです。現在、次のコマンドでターミナルを使用してキャプチャできます。

/Applications/VLC.app/Contents/MacOS/VLC -I dummy screen:// --screen-fps=25 --quiet --sout "#transcode{vcodec=h264,vb072}:standard{access=file,mux=mp4,dst="Desktop/vlc-output-terminal.mp4"}"

それは素晴らしいです、それはうまくいきます。問題は、端末を使用して録音を終了するにはどうすればよいですか?今、私はしなければなりません Control+C ターミナルで終了します。私は見た vlc://quitオンラインですが、そのコマンドの使用方法がわかりません。

また、VLCを使用して特定のアプリケーションをキャプチャできるかどうか、または画面全体が唯一のオプションであるかどうかを誰かが知っていますか?

14
intl

録音時に[〜#〜]しない[〜#〜]終了する方法

Ctrl+C シグナルSIGINTでプロセス(この場合はVLC)を強制終了します。

ストリームは終わりのないソースであるため、画面をキャプチャするときにvlc://quitオプションは機能しません。


正しい方法- RC(Rエモート Control)

TCP socketまたはUNIX socketを使用してVLCに接続できます。

  • TCPソケット

    TCPソケット(telnetのような接続)を使用してVLCにリモート接続できるようにするには、-rc-Host your_Host:port次に、(telnetまたはnetcatを使用して)指定されたポートのホストに接続すると、コマンドShellが表示されます。

  • UNIXソケット

    UNIXソケット(ローカルソケット、これはWindowsでは機能しません)を使用するには、-rc-unix/path/to/socketを使用します。その後、このUNIXソケットを使用してコマンドを渡すことができます。

リモートコントロール VLCのインターフェースを有効にするには、オプションを追加する必要があります

--extraintf rc --rc-quiet

やめる方法

  • TCPソケット

    エコー終了| ncyour_Hostポート

  • UNIXソケット

    エコー終了| nc -U/path/to/socket


    1. VLCを実行する

      vlc\
       screen:// --one-instance\
      -ダミー--dummy-quiet\
      -extraintfrc\
      -rc-ホストlocalhost:8082\
      -rc-quiet\
      -screen-follow-mouse\
      -screen-mouse-image = "mouse_pointer.png"\
      -screen-left = 0 --screen-top = 0 --screen-width = 800 --screen-height = 600\
      -no-video:screen-fps = 15:screen -caching = 300\
      -sout "#transcode {vcodec = h264、vb = 800、fps = 5、scale = 1、acodec = none}:duplicate {dst = std {access = file、mux = mp4、dst = '/ Videos/screen.mp4'}} "
    2. VLCを正常にシャットダウンします

      エコー終了| nc localhost 8082

      コンピューターに nc(netcat) がない場合は、以下のPythonコードを使用することもできます。

      import socket 
       s = socket.socket(socket.AF_INET、socket.SOCK_STREAM)
       s.connect(( 'localhost'、8082))
       s.sendall( 'quit\n ')
       s.shutdown(socket.SHUT_WR)

特定のアプリケーションをキャプチャする方法

記録するアプリケーションを選択することはできませんが、従属画面の座標、幅、高さを指定することはできます。

オプション

  • --screen-top integer従属画面の上端の座標。 デフォルト値:0
  • --screen-left integer従属画面の左端の座標。 デフォルト値:0
  • --screen-width integer従属画面の幅。 デフォルト値:<全画面幅>
  • --screen-height integer従属画面の高さ。 デフォルト値:<全画面の高さ>
17
P̲̳x͓L̳

スクリーンキャプチャターミナルまたはMac OSのiterm 2019

VLCのエイリアスを.bashrcまたは.zshrcに追加します。

alias vlc='/Applications/VLC.app/Contents/MacOS/VLC'

次に、この関数を.bashrcまたは.zshrcに追加します。

screencapture(){
vlc \
-I dummy screen://\
--dummy-quiet \
--screen-follow-mouse \
--screen-mouse-image="/Users/YOUR_HOME_DIR/Desktop/awesome.jpg" \
--screen-left=0 --screen-top=0 --screen-width=1280 --screen-height=720 \
--no-video :screen-fps=15 :screen-caching=300 \
--sout "#transcode{vcodec=h264,vb=800,fps=5,scale=1,acodec=none}:duplicate{dst=std{access=file,mux=mp4,dst='/Users/YOUR_HOME_DIR/Desktop/Screencapture $(date +%Y-%m-%d) at $(date +%H.%M.%S).mp4'}}"
}

新しいターミナルセッションを開き、次の手順を実行します。screencapture

完了したら、CTRl + Cを実行して機能を停止します。

これで、デスクトップフォルダの例でファイルが見つかります。

Screencapture 2019-01-04 at 09.57.42.mp4

ビデオは1280x720になりますが、この機能は好きなようにカスタマイズできます。

1

Windowsを使用している場合は重要です。

,... --rc-Host localhost:8082

ローカルホストIPを使用する必要があります。そうでない場合は機能しません。代わりに127.0.0.1を使用してください。

,... --rc-Host 127.0.0.1:8082
0

さて、あなたが扱う必要のない簡単なアプローチがありますTCPソケット/ Unixソケット。

ステップ1:最初に[Vlc]-> [ツール]-> [設定]の下を開きます[インターフェイス]タブ [1つのインスタンスのみを許可する]をオンにしてください。

上記の方法で見つからない場合は、[高度な設定]タブインスタンスを検索し、[1つのインスタンスのみを許可する]をオンにします。

これにより、新しい録音が開始されないようにし、既存の録音を追跡することができます。

ステップ2:記録を開始するには、このコマンドを使用します

vlc screen:// --qt-start-minimized :screen-fps=5 :run-time=30 :quiet :sout=#transcode{vcodec=h264,vb072}:standard{access=file,mux=mp4,dst="C:\Users\**admin**\Desktop\screencast.mp4"}

ステップ3:既存のレコードを保存して停止するには

vlc://quit

注:このコマンドを使用する前に、必ずパスを確認してください

自分のマシン(WIN 10)でquitコマンドを変更する必要がありました:

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('127.0.0.1', 8082))
s.sendall('quit\n'.encode())
s.shutdown(socket.SHUT_WR)
0
user2462619