ssh를 통해 / dev / video를 파이프 할 수 있습니까 나는 웹캠을 통해

나는 두 컴퓨터하는이 바탕 화면 의 (a 내 사무실에서 웹캠 장착)와 노트북 다른 곳에서 네트워크를.

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

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

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

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

웹캠을보고 (내 랩톱에서 )

mplayer tv://device=/dev/video1



답변

다음과 같은 것 :

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. 대역폭 확인

또한 -에서와 어떻게 하지 작업 (디스플레이 검은 화면 등 알 수없는 장치를 뿌려)?


답변

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

ssh USER@REMOTEHOST 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(3도 얼굴을가 될 수 : 0 또는 HW : 어디 HW를 1, … 참조 arecord -l장치에 대한). 오디오 전용 (비디오)를 원하는 경우, 이것을 사용 )
  • -s 640x480 x 및 y 차원의 동영상 크기
  • -r 10 수신하려는 프레임 속도입니다 (낮을수록 낮은 비트 전송률로 더 나은 이미지를 만들지 만 더 많은 붐비가 보입니다)
  • -b:v 500k 500 킬로 비트 / 초의 비트 전송률입니다

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


답변

가 VideoLAN 프로젝트는 당신이 원하는 무엇을 바로 할 큰 부분에 존재합니다.

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


답변

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

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

ssh user@host "ffmpeg  -r 14 -s 640x480 -f video4linux2 -i /dev/video0 -f matroska -" | mplayer - -idle

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


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

ssh user@host "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.


답변

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

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

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

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


답변