Stream raminication with continuation se um dos ramos se romper

1

Digamos que eu ramifique um fluxo de vídeo para 2 ffplay processes

cat video.mp4 |  tee >(ffplay -i -) >(ffplay -i -) > /dev/null

Agora, se eu matar um do processo ffplay , o fluxo será interrompido, o que não é o que eu quero.

Como posso modificar esse comando para continuar transmitindo o vídeo para o primeiro ffplay processo se o segundo for eliminado?

PS: Estou procurando uma solução sem pipe nomeado (fifo)

    
por user123456 07.02.2017 / 21:56

1 resposta

1

Uma solução

cat video.mp4 |  tee >(ffplay -i - || cat >/dev/null ) >(ffplay -i - || cat >/dev/null) > /dev/null

Exemplo : para salvar uma captura de webcam criptografada e reproduzi-la ao mesmo tempo, com possível morte do processo de salvamento de arquivos ( openssl ) ou o player ( ffplay ), posso usar :

ffmpeg -f alsa -ac 2 -i plughw:0,0 -f video4linux2 -s vga -i /dev/video0 -f ogg - | tee >(openssl enc -k mypassword -aes-256-cbc > encrypted-capture.aes-256-cbc || cat >/dev/null) >(ffplay -fs -i - || cat >/dev/null) > /dev/null

Você tem que matar o processo ffplay (pressionar f e depois executar pkill ffplay ), não fechar a janela com Esc

    
por 08.02.2017 / 10:41