카메라 모듈이있는 Raspberry Pi 3에서 H264 RTP 스트림을 비디오 태그로 만들려고합니다.H264 RTP 스트림 (gstreamer-1.0 포함)
I 비디오 태그 간단한 웹 페이지를 제공
다음raspivid -t 0 -h 720 -w 1080 -fps 25 -hf -b 2000000 -o - | \
gst-launch-1.0 -v fdsrc \
! h264parse \
! rtph264pay \
! gdppay \
! udpsink host="192.168.0.11" port=5000
스트림 시작하려면 다음 코드를 사용 :
v=0
m=video 5000 RTP/AVP 96
c=IN IP4 192.168.0.51
a=rtpmap:96 H264/90000
:
<video id="videoTag" src="h264.sdp" autoplay>
<p class="warning">Your browser does not support the video tag.</p>
</video>
src가 다음 SDP 파일을 참조에게
웹 페이지를로드 할 때 아무 일도 일어나지 않으며 js 콘솔이 완전히 비어 있습니다.
그래서 나는 VLC와 스트림을 볼 수 시도하고 다음과 같은 오류 있어요 :[00007efd80c03ea8] es demux error: cannot peek
[00007efd80c03ea8] es demux error: cannot peek
[00007efd80c03ea8] live555 demux error: no data received in 10s, aborting
나는 전혀 UDP 통신이 존재하지 않음을 생각
를, 그래서 원격 시스템에서 테스트 :
gst-launch-1.0 udpsrc port=5000 \
caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96" \
! fakesink dump=true
수신 한 UDP 패킷. 그래서 나는 앞으로 연구하고 이걸 발견 :
https://cardinalpeak.com/blog/the-many-ways-to-stream-video-using-rtp-and-rtsp/
지금은 내가 데이터를 스트리밍하고 RTP 제어 프로토콜을 설정하는 2 개 포트를 필요 것이 분명합니다. 그러나 나는 어떻게 내가 gstreamer로 그것을 할 수 있는지 모른다.
모두의 최악의 내가 실행하면
gst-inspect-1.0 | grep -i rtcp
내가 아무 것도 얻을 수 없습니다.
gstreamer-1.0으로 비디오 스트림을 RTP 프로토콜을 사용하여 웹 페이지의 비디오 태그에 어떻게 시작할 수 있습니까?
갱신
있는 GStreamer의 videosoruce로 videotestsrc를 사용하고 내가 VLC와 원격 클라이언트에서 비디오 스트림을 볼 수 있었다 gdppay이 (가 무효 RTP 페이로드 오류가 발생) 제거하고이 gstreamer를 코드 :
gst-launch-1.0 udpsrc port=5000 \
caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96" \
! rtph264depay \
! avdec_h264 \
! autovideosink
왜 브라우저가 RTP 스트림을 재생할 것이라고 생각합니까? HTML5 비디오 및 H.264 over RTP의 지원 형식에는 제한이 있으며 RTP는 그 중 하나가 아닙니다. –