Назад | Перейти на главную страницу

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

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

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

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

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

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

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

Это создаст видео 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 -