Eu tenho um script bash que está usando pipes anônimos para alcançar:
- captura de vídeo do dispositivo de captura dv
- gravando em um arquivo (usando tee)
- canalizando-o para ffmpeg2theora (convertendo para ogv / theora video)
- gravando em um arquivo (usando tee)
- canalizando-o para oggfwd para enviá-lo ao servidor de streaming icecast
Como eu consegui isso usando pipes nomeados (fifos), para que eu pudesse ter processos separados que eu pudesse controlar separadamente?
Eu estava usando este script:
#!/bin/bash
while (true);
do
dvgrab --format dv1 - | \
tee /filename_`date +%y%m%d_%H%M%S`.dv | \
ffmpeg2theora.linux -f dv -x 382 -y 288 -v 3 --speedlevel 2 --no-skeleton -o /dev/stdout - | \
tee /filename_`date +%y%m%d_%H%M%S`_stream_382x288.ogv | \
oggfwd icecastserver.com 8000 password /mountpoint.ogv
done
Uma das razões pelas quais estou perguntando isso é que preciso ter arquivos dv e ogv limpos em disco, independentemente da rede estar ativa e do servidor de streaming icecast acessível.