it-swarm-ko.tech

ssh를 통해 / dev / video를 파이프 할 수 있습니까?

내 사무실에는 desktop 두 개의 컴퓨터가 있고 (webcam 첨부되어 있고 laptop 네트워크의 다른 곳에 있습니다.

보통 나는 웹캠을 통해 내 사무실을 살펴보고

ssh Office -Y "mplayer tv://device=/dev/video0"

내 노트북에서. Xforwarding mplayer가 마음에 들지 않으므로 랩탑에서 이것을 실행하여 PC에 /dev/video를 터널링 할 수없는 이유는 무엇입니까?

Sudo mkfifo /dev/video1
ssh Office 'dd if=/dev/video' | Sudo dd of=/dev/video1'

그런 다음 웹캠을 봅니다 (내 laptop).

mplayer tv://device=/dev/video1
28
Stefan

다음과 같은 것 :

dd if=/dev/video0 | mplayer tv://device=/dev/stdin

로컬에서 나를 위해 일합니다 (SOA # 1). 그렇습니다 :

ssh localhost dd if=/dev/video0 | mplayer tv://device=/dev/stdin

만큼 잘

mkfifo test
dd if=/dev/video0 of=test &
mplayer tv://device=test

그 후:

  1. 명명 된 파이프없이 시도
  2. 대역폭 확인

또한 not에서 어떻게 작동합니까 (검은 색 화면 표시, 알 수없는 장치에 대한 불평 등)?

14
Maciej Piechotka

대역폭이 낮은 경우 비디오 스트림을 압축하는 것이 좋습니다.

ssh [email protected] ffmpeg -an -f video4linux2 -s 640x480 -i /dev/video0 -r 10 -b:v 500k -f matroska - | mplayer - -idle -demuxer matroska

어디

  • -an는 오디오 인코딩을 끕니다. 오디오를 원하면 -an-f alsa -ac 1 -i hw:3로 바꾸십시오 (여기서 hw : 3은 hw : 0 또는 hw : 1 일 수 있습니다.… 장치의 arecord -l 참조). 오디오 만 원한다면 (비디오 없음) 이것을 사용하십시오 )
  • -s 640x480는 x 및 y 차원의 동영상 크기입니다.
  • -r 10는 수신하고자하는 프레임 속도입니다.
  • -b:v 500k는 500 킬로 비트/초의 비트 전송률입니다

원격 호스트에는 ffmpeg가 설치되어 있고 로컬 시스템에는 mplayer가 필요합니다.

15
erik

VideoLAN Project 는 원하는 부분 만 수행하기 위해 존재합니다.

스트리밍 기능을 사용하지는 않았지만 단일 머신 사용에서는 견고합니다.

4
msw

수락 된 답변이 저에게 효과적이지 않습니다. dd는 읽지 않습니다. nc는 다른 포트를 절약 할 수 없다면 나쁘다 (어쨌든 전혀 작동하지 않는다). cat 나에게도 효과가 없었습니다.

나를 위해 일한 것은 수신 측에서 이것이었습니다.

ssh [email protected] "ffmpeg  -r 14 -s 640x480 -f video4linux2 -i /dev/video0 -f matroska -" | mplayer - -idle

이것은 인코딩되는 이점이 있으므로 대역폭을 보너스로 절약 할 수 있습니다. 포럼/웹 사이트의 다른 어떤 것도 데비안 머신에서 작동하지 않았습니다.


tee 와 결합하면 동시에보고 녹화 할 수 있습니다.

ssh [email protected] "ffmpeg  -r 14 -s 640x480 -f video4linux2 -i /dev/video0 -f matroska -" | tee $(date +%Y-%m-%d_%H-%M-%S)_recording.mkv | mplayer - -idle

라이브 스트리밍을 위해 mplayer가 열리고 동시에 현재 날짜 시간이 포함 된 파일에 저장됩니다 (예 : 파일 이름 : 2018-11-22_01-22-10_recording.mkv).

2
confetti

당신이 그것을 할 수없는 이유가 있는지 모르겠지만, 구현에서 볼 수있는 한 가지 문제는 원격 시스템이 시스템에서/dev/video1을 찾지 만 찾을 수는 없다는 것입니다. 로컬 시스템에서 생성했습니다.

내가 할 일은 다음과 같은 것입니다.

nc -l 12345 | Sudo tee /dev/video > /dev/null &
ssh Office

그런 다음 로컬 시스템의 TCP 포트 12345)로 이동하여 무언가를 시도하십시오.

0
Kevin M