繁体   English   中英

Raspberry Pi上的GStreamer全高清视频RTP流

[英]GStreamer Full HD Video RTP Stream on Raspberry Pi

我正在尝试使用GStreamer建立视频管道。 最后,它应该是全双工全高清视频会议解决方案。 由于Raspberry Pi 3无法同时对视频流进行编码和解码,因此我正在使用Logitech C920对视频进行编码。 因此,我的RPi只需要编码和解码音频,然后解码H.264视频。 我从来源(1.13.0.1)构建GStreamer,因为来自raspbian存储库的1.4.4出现G.722编码问题。 同时也建立了gst-omx(RaspiVideo),libsrtp(加密),libwebrtc(回传)(回购版本为0.1,因此手动下载为0.3)之类的库。 所以我确实有omxh264dec-但我找不到视频接收器来流畅地播放1080p视频。 因此,我尝试使用命名管道通过h.264流执行hello_video或omxplayer,只要我保持本地状态就可以正常工作。 一旦我尝试通过RTP进行流传输,hello_video不会显示任何内容。

工作管道:gst-launch-1.0 filesrc location = / opt / vc / src / hello_pi / hello_video / test.h264! filesink location = / home / pi / test&/opt/vc/src/hello_pi/hello_video/hello_video.bin / home / pi / test甚至包含来自摄像头的流:gst-launch-1.0 v4l2src! 'video / x-h264,width = 1920,height = 1080,framerate = 30/1'! filesink位置= / home / pi / test和/opt/vc/src/hello_pi/hello_video/hello_video.bin / home / pi / test

通过RTP传输时不起作用:gst-launch-1.0 v4l2src! 'video / x-h264,width = 1920,height = 1080,framerate = 30/1'! h264parse config-interval = 1! rtph264pay! udpsink主机= 10.0.0.129端口= 5000 \\&gst-launch-1.0 udpsrc端口= 5000! application / x-rtp,编码名称= H264,有效载荷= 96! rtph264depay! 'video / x-h264,width = 1920,height = 1080,framerate = 30/1'! filesink位置= / home / pi / test \\&/opt/vc/src/hello_pi/hello_video/hello_video.bin / home / pi / test

如果没有UDP RTP,则无法使用:gst-launch-1.0 v4l2src! h264parse config-interval = 1! rtph264pay! 排队! rtph264depay! filesink位置= / home / pi / test \\&/opt/vc/src/hello_pi/hello_video/hello_video.bin / home / pi / test

因此,似乎视频流一旦封装在RTP中,就会发生某些事情。

我知道RTP Stream可以工作,因为我可以在我的VM上接收它并播放它而没有任何麻烦。 但是,当然,在VM上,我可以使用autovideosink。 在ubuntu上正常工作:gst-launch-1.0 udpsrc port = 5000! \\ application / x-rtp,\\ encoding-name = H264,payload = 96! \\ rtph264depay! h264parse! avdec_h264! \\ autovideosink

任何建议都将受到高度赞赏。

谢谢

最好的问候,maunza

只需加上我的两分钱,据说所有Pi的范围从第一个A,B修订版到零和3,都可以并行编码和解码高达1080p30的信号。 我的经验表明它们是。 我认为raspivid曾经可以选择预览做到这一点的编码视频。

我也花了一些时间试图解决这个问题。 对于那些会寻找相同事物的人:

gst-launch-1.0   filesrc location=./test.h264 !   h264parse !  rtph264pay  ! rtph264depay ! h264parse ! video/x-h264, stream-format="byte-stream" ! filesink location=/dev/stdout | ./hello_video.bin /dev/stdin

因此,输入:

! video/x-h264, stream-format="byte-stream" !

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM