콘솔을 네트워크로 스트리밍하는 방법

콘솔을 네트워크로 스트리밍하는 방법

Linux 서버가 실행 중이고 로그 파일과 함께 서로 다른 꼬리가 있는 처음 4개의 콘솔(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 세션에서 분리할 수도 있습니다.

관련 정보