как транслировать консоль в сеть

как транслировать консоль в сеть

У меня запущен сервер Linux, и я хотел бы транслировать первые четыре консоли (TTY1, TTY2, TTY3, TTY4), где у меня есть разные хвосты с моими файлами журналов, в сеть, чтобы я мог получать поток так же, как я получаю его с веб-камеры в своей сети.

Причина в том, что мой NVR (сетевой видеорегистратор) может разделить экран на 4 части и отображать 4 или даже 16 файлов журнала одновременно.

NVR поддерживает следующие протоколы: N1 и ONVIF.

Я нашел разные решения для потоковой передачи медиафайлов, но не нашел ни одного для потоковой передачи с консоли.

решение1

Это создаст видео TTY1 и передаст его в ffplay (вы можете сделать с ним что-нибудь еще)

#!/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 -

Вы также можете проверить, когда изменяется LOGFILE. Каждый раз, когда это происходит, он получает последние 25 файлов, преобразует их в изображение и передает его в ffmpeg, который создает видеофайл matroska и записывает его в stdout, где ffplayподбирает его и воспроизводит.

Я оставил все каналы, чтобы вы могли решить, куда вставить уже имеющиеся у вас решения для медиафайлов.

#!/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 -

решение2

Честно говоря, я думаю, что вы слишком усердно работаете. Попробуйте посмотреть на что-то вроде того, tmuxчто может мультиплексировать консоли, а также разрешать множественные подключения к создаваемой им консоли. Вы также можете разделить "экраны" на несколько консолей и переключаться между ними.

пример tmux

К этому можно легко подключиться повторно с любого количества консолей, к которым у вас есть доступ, а также отключиться от сеанса tmux, не завершая никаких процессов.

Связанный контент