如何将控制台传输到网络

如何将控制台传输到网络

我正在运行一个 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 会话分离,而无需终止任何进程。

相关内容