Posso executar o ffmpeg -f x11grab por um período de tempo especificado?

0

Gostaria de executar ffmpeg -x11grab por um período de tempo especificado, inserindo a saída em um arquivo. (Isto está em um sistema Debian, ffmpeg 7: 4.0.2-1)

Já experimentei a opção -t , conforme abaixo:

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

mas não irá parar após 10 segundos. Existe uma maneira de fazer isso?

Obrigado!

    
por josh 31.07.2018 / 04:48

1 resposta

1

Gostaria de sugerir o comando timeout . Eu uso com o ffmpeg para gravar um fluxo HTTP ao vivo.

$ 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.

Ele deve vir pré-instalado na maioria das distribuições do Linux. Por 10 segundos, basta executar:

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

Observe que há também outro tempo limite , que também permite limitar a memória e a frequência da CPU.

Quanto ao seu problema com o ffmpeg, isso é de man ffmpeg :

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

Você precisa mover o argumento -t antes de -i .

    
por 31.07.2018 / 18:17

Tags