GStreamer Full Raspberry Pi上的全高清视频RTP流
我正在尝试使用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(echocanceling)这样的库(旧版回购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 location = / 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 host = 10.0.0.129 port = 5000 &gst-launch-1.0 udpsrc port = 5000! application / x-rtp,encoding-name = H264,payload = 96! rtph264depay! 'video / x-h264,width = 1920,height = 1080,framerate = 30/1'! filesink location = / 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 location = / home / pi / test &/opt/vc/src/hello_pi/hello_video/hello_video.bin / home / pi / test
所以一旦视频流被封装在RTP中,似乎就会发生一些事情。
我知道RTP Stream可以正常工作,因为我可以在我的虚拟机上接收它并毫无困难地播放它。 但是,当然,在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修订到零和三,据说能够并行编码和解码高达1080p30的信号。 我的经验表明他们是。 我认为raspivid曾经有一个选项可以预览编码过的视频。
链接地址: http://www.djcxy.com/p/43919.html