我可以运行 ffmpeg -f x11grab 指定的时间吗?

我可以运行 ffmpeg -f x11grab 指定的时间吗?

我想运行ffmpeg -x11grab指定的时间,将输出保存到文件中。 (这是在 Debian 系统上,ffmpeg7:4.0.2-1)

我已经尝试过-t切换,如下:

ffmpeg -f x11grab  -y -r 60  -video_size 1920x1080 -i :0.0 -t 10 -vf format=gray -pix_fmt yuv420p myfile

但10秒后不会停止。有没有办法做到这一点?

谢谢你!

答案1

我想建议这个timeout命令。我将它与 ffmpeg 一起使用来录制实时 HTTP 流。

$ timeout --help
Usage: timeout [OPTION] DURATION COMMAND [ARG]...
Start COMMAND, and kill it if still running after DURATION.

DURATION is a floating point number with an optional suffix:
's' for seconds (the default), 'm' for minutes, 'h' for hours or 'd' for days.

它应该预装在大多数 Linux 发行版上。只需运行 10 秒钟:

$ timeout 10s ffmpeg -f x11grab  -y -r 60  -video_size 1920x1080 -i :0.0 -vf format=gray -pix_fmt yuv420p myfile

请注意,还有另一个超时,这也增加了限制内存和 CPU 频率的能力。


至于您的 ffmpeg 问题,这来自man ffmpeg

SYNOPSIS
       ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ...

您需要-t先移动参数-i

相关内容