저는 라즈베리를 사용하고 있으며 2개의 로컬 스트림이 필요합니다. 이것이 내가 시도한 것입니다:
시도
raspivid <some options> -o - | tee nc localhost 5100 | nc localhost 5000
질문
에서 출력을 받을 수 있지만 5000
에서는 받을 수 없습니다 5100
. 무엇이 누락되었나요?
raspivid -o -
스트림을 stdout으로 뱉어냅니다.
답변1
음, 'tee'는 명령 이름을 취하지 않습니다.파일이름. 현재 디렉터리에 있는 nc
, localhost
및 이름의 파일에 출력 복사본을 쓰고 있습니다 .5100
두 개의 명령을 실행하려면 셸에서 을 사용하여 "프로세스 대체"를 허용하는지 확인하고 >( ... )
자동으로 파이프를 파일 이름으로 전달합니다.
raspivid <etc> | tee >(nc localhost 5100) | nc localhost 5000
또는 다음 pee
에서 설치하세요.더 많은 유틸리티:
raspivid <etc> | pee "nc localhost 5100" | nc localhost 5000
해당 옵션 중 어느 것도 사용할 수 없는 경우 mkfifo
를 사용하여명명 된'nc' 인스턴스 중 하나를 파이프로 연결한 다음 출력과 입력을 별도로 실행합니다.
mkfifo /tmp/ncpipe
nc localhost 5100 < /tmp/ncpipe &
raspivid <etc> | tee /tmp/ncpipe | nc localhost 5000