
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 -