我想运行ffmpeg -x11grab
指定的时间,将输出保存到文件中。 (这是在 Debian 系统上,ffmpeg
7: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
。