使用终端的VLC屏幕捕获

int*_*ntl 14 bash terminal vlc screen-capture

我试图将我的屏幕捕获为视频,发现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"}"
Run Code Online (Sandbox Code Playgroud)

这很好,它的确有效.问题是,如何使用终端退出录音?现在,我不得不在终端上做Control+ C退出它.我在vlc://quit网上见过,但我不确定如何使用该命令.

此外,是否有人知道是否可以使用VLC捕获特定应用程序或整个屏幕是唯一的选择?

P̲̳*_*͓L̳ 17

录制时如何退出

Ctrl+ C杀过程(在这种情况下VLC)用信号SIGINT.

vlc://quit 捕获屏幕时,选项将不起作用,因为流是永不停止的源.


正确的方式 - RC(R emote C ontrol)

您可以使用a TCP socket或a 连接到VLC UNIX socket.

  • 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
Run Code Online (Sandbox Code Playgroud)


如何戒烟

  • TCP套接字

    echo quit | nc your_host端口

  • UNIX套接字

    echo quit | nc -U/path/to/socket


    1. 执行VLC

      vlc \
      screen:// --one-instance \
      -I dummy --dummy-quiet \
      --extraintf rc \
      --rc-host 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

      echo quit | nc localhost 8082

      Python如果您的计算机上没有nc(netcat),也可以使用下面的代码.

      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子屏幕的高度.默认值:<全屏高度>