Quero que o mplayer e o VLC comecem a jogar na hora exata. O jogador deve:
- Carregue o arquivo de vídeo, armazene-o em buffer, prepare tudo;
- Aguarde até que o tempo UNIX seja N segundos M milissegundos
- Comece a jogar de acordo com a taxa de quadros (sem desvios de longo prazo)
Como é melhor conseguir isso?
Responder1
Você pode usar um FIFO como entrada no MPlayer e iniciar a reprodução no horário especificado.
Copio e colo alguns exemplos de código mínimos que usei em um script anos atrás e que foram usados para pular vídeos por motivos de script.
Crie um FIFO:
[ ! -p /tmp/mplayer-fifo ] && mkfifo /tmp/mplayer-fifo
Inicie o MPlayer com, por exemplo
mplayer myfile.avi -input /tmp/mplayer-fifo
Envie o comando skip de outro script com
echo "seek 10" > /tmp/mplayer-fifo
Em vez disso, você pode usar o FIFO para iniciar e pausar o vídeo. Use at
para executar o comando play em um horário específico.
Se o vídeo for iniciado e imediatamente pausado e apenas aguardar a "play"
diretiva, todo buffer deverá ser evitado.