Pi를 감시 카메라로 사용하여 Pi를 사용할 때 5 초의 대기 시간을 없애는 방법에 대한 포럼과 스레드가 많이 있습니다. 많은 튜토리얼은 VLC를 사용하여 RTP 프로토콜을 사용하여 이미지를 인코딩하고 스트리밍하여 ~ 5 초 지연되는 방법을 보여줍니다.
나에 따르면, raspivid는 스트림을 H264로 인코딩하고 VLC는 다시 디코딩하고 RTP가 무엇이든간에 다시 인코딩해야하기 때문입니다. 커맨드 라인은 다음과 같습니다 :
raspivid -w 640 -h 480 -o - -t 0 |cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/}' :demux=h264
첫 번째 부분은 비디오를 표준 출력으로 스트리밍하도록 raspivid에 지시합니다.
raspivid -w 640 -h 480 -o - -t 0
파이프 뒤의 부분은 VLC에 그것을 픽업하고 h264를 사용하여 디코딩하도록 지시합니다.
cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/}' :demux=h264
이 muxing과 demuxing은 상당히 많은 자원입니다!
github에서 raspicam 의 소스를 찾았 으며, 인코더를 건너 뛰기 위해 encoder_buffer_callback 메소드 (현재 848 행)에서 무언가를 수행 할 수 있다고 생각합니다. 그러나 나는 c를 잘하지 못하고 비디오 인코딩에 전혀 익숙하지 않으므로 시작할 곳이 없습니다.
Github에서는 330 개의 포크를 볼 수 있지만 raspicam 전용은 아닙니다 (전체 사용자 영역 프로젝트가 아닌). 인코딩을 제거하거나 mjpeg와 같은 간단한 것을 구현 한 포크를 찾으려고 노력하지 못했습니다.
C 및 비디오 코덱 지식을 가진 사람이 나와 다른 가질 리언 사용자가 대기 시간을 없애는 데 도움이 될 수 있습니까? 아마도 그 해결책 중 하나가 이미 그 포크 중 하나에 있지만 아마도 운없이 검색하는 데 몇 시간을 보냈습니다.
추신 : 나는 브라우저 솔루션을 찾고 있지 않지만 궁극적으로 mjpeg 스트리밍을 사용하여 Synology에 스트리밍하고 싶습니다 (웹 페이지가 아닌 대부분의 상업용 ip-cam에 내장 된 표준 mjpeg 스트림을 통해). 첫 단계는 h264를 없애는 것입니다.