Pare a gravação depois de algum tempo

7

Eu tenho um dispositivo que grava o vídeo usando a webcam com ffmpeg . Está funcionando muito bem quando a gravação é iniciada, estou recebendo o sinal USR1. E depois de parar a gravação, recebemos o sinal USR2.

Mas quero interromper a gravação após 1 hora de gravação.

Eu não sei, mas acho que tenho que passar o sinal USR2 para o dispositivo após 1 hora.

Então, como posso fazer isso ...

Obrigado antecipadamente.

    
por Prakash V Holkar 20.03.2014 / 16:47

2 respostas

14

Use a opção -t . De man ffmpeg :

  

-t duração (entrada / saída)

     

Quando usado como uma opção de entrada (antes de -i ), limite a duração de dados lidos a partir do arquivo de entrada.

     

Quando usado como uma opção de saída (antes de um nome de arquivo de saída), pare   escrevendo a saída após sua duração atingir duração .

     

duração deve ser uma especificação de duração de tempo, consulte a Duração do tempo   seção no manual do ffmpeg-utils (1).

     

-to e -t são mutuamente exclusivos e -t tem prioridade.

Exemplo:

ffmpeg -f v4l2 -i /dev/video0 -t 01:00:00 output
    
por LordNeckbeard 20.03.2014 / 18:35
4

Se você estiver executando o ffmpeg ou avconv a partir da linha de comando, você pode usar o comando timeout :

timeout 3600 avconv -f video4linux2 -r 25 -i /dev/video0  -vcodec mpeg4 -y out.mp4
    
por Sylvain Pineau 20.03.2014 / 17:01