Gravação agendada do ffmpeg 14.04 com temporizador

1

Como faço para configurar uma gravação programada que pára após um tempo definido com som e vídeo em 14.04? Quero gravar algo com 6 horas de antecedência que dura 1 hora. É muito importante que o vídeo e o som sejam de alta qualidade e que a qualidade do vídeo não diminua do fluxo original. Minha tela é 1366x736.

Eu quero realmente gravar de um fluxo m3u (iptv), mas se isso não for possível, então eu posso capturar a tela em seu lugar.

E uma pergunta sobre a gravação da área de trabalho ao gravar diretamente o fluxo do m3u não é possível: o áudio do computador precisa estar ligado durante a gravação para obter som no vídeo?

Obrigado antecipadamente!

    
por Timmy Johnson 18.08.2017 / 19:22

2 respostas

2

Um método para o agendamento único é o comando at .

  1. Digite a hora agendada:

    at 4:00 PM
    
  2. Em seguida, um aviso aparecerá quando você inserir o comando a ser executado:

    ffmpeg -i input.m3u -c copy -t 01:00:00 output.foo
    
    • A opção -c copy ativará o modo copiar cópia , que preservará a qualidade porque apenas re-mux em vez de codificação adicional.

    • A opção -t 01:00:00 definirá a duração para uma hora. ffmpeg será encerrado após uma hora.

  3. Em seguida, pressione ctrl + d para salvar o comando.

Se este for um evento agendado regularmente, você poderá usar um cronjob.

Quanto à gravação de computadores, veja:

por LordNeckbeard 19.08.2017 / 20:12
0

você pode usar um script de shell como este:

runtime_in_sec=3600
wait_time_in_sec=3600*6
sleep $wait_time_in_sec
ffmpeg <the options and the file> &  # alternatively use 'avconv' instead of ffmpeg
PID=$!
sleep $runtime_in_sec
kill -9 $PID

Se você quisesse definir a hora exata, eu preferiria usar um pequeno script python ou até mesmo apenas o intérprete ipython, porque trabalhar com data e hora é muito mais fácil. Por exemplo, eu usaria time.monotonic() para cálculos simples com segundos ...

    
por oneindelijk 18.08.2017 / 19:46