
Eu tenho um servidor Linux em execução e gostaria de transmitir os primeiros quatro consoles (TTY1,TTY2,TTY3,TTY4) onde tenho caudas diferentes com meus arquivos de log para a rede para que possa receber o fluxo da maneira que recebo uma webcam na minha rede.
A razão é que meu dispositivo NVR (gravador de vídeo em rede) pode dividir a tela em 4 e exibir 4 arquivos de log ou até 16 arquivos de log ao mesmo tempo.
O NVR suporta os seguintes protocolos: N1 e ONVIF
Encontrei diferentes soluções para transmitir um arquivo de mídia, mas nenhuma para transmitir o console.
Responder1
Isso criará um vídeo de TTY1 e o canalizará para o ffplay (você poderia fazer outra coisa com ele)
#!/bin/bash
(while sleep 1
do
screendump 1 | anytopnm | pnmtojpeg
done) | ffmpeg -f image2pipe -r 1 -c:v mjpeg -i - -c:v copy -f matroska - | ffplay -
Você também pode verificar quando LOGFILE muda. Cada vez que isso acontecer ele irá pegar os últimos 25 arquivos, convertê-los em uma imagem e alimentá-los ffmpeg
, que cria um arquivo de vídeo matroska e grava-o stdout
, onde ffplay
o pega e reproduz.
Deixei todos os pipes para que você decida onde inserir as soluções que já possui para os arquivos de mídia.
#!/bin/bash
LOGFILE=/tmp/filename
(while inotifywait -q -e modify $LOGFILE >/dev/null; do
tail -25 $LOGFILE | anytopnm | pnmtojpeg
done) | ffmpeg -f image2pipe -r 1/8 -c:v mjpeg -i - -c:v copy -f matroska - | ffplay -
Responder2
Honestamente, acho que você está trabalhando demais. Tente ver algo parecido com tmux
o que pode fazer a multiplexação do console, bem como permitir múltiplas conexões com o console que ele cria. Você também pode dividir as “telas” em vários consoles e alternar entre eles.
Isso é algo que pode ser facilmente reconectado de quantos consoles você tiver acesso, bem como desconectado da sessão tmux, sem interromper nenhum processo.