【发布时间】:2017-11-11 07:35:44
【问题描述】:
我正在尝试使用 GStreamer 构建视频管道。最终它应该是一个全双工全高清视频会议解决方案。由于 Raspberry Pi 3 无法同时对视频流进行编码和解码,因此我使用 Logitech C920 对视频进行编码。所以my RPi只需要对Audio进行编解码,对H.264视频进行解码。我从源代码(1.13.0.1)构建 GStreamer,因为来自 raspbian 存储库的 1.4.4 存在 G.722 编码问题。像 gst-omx (RaspiVideo)、libsrtp (加密)、libwebrtc (echocancel) (0.1 in repo to old - 所以手动下载 0.3) 等库也在构建中。所以我确实有 omxh264dec - 但我找不到视频接收器来流畅地播放 1080p 视频。因此,我尝试通过管道(使用命名管道)将 h.264 流做 hello_video 或 omxplayer,只要我留在本地,它们就可以正常工作。一旦我尝试通过 RTP 流式传输 hello_video 就不会显示任何内容。
工作管道: gst-launch-1.0 filesrc 位置=/opt/vc/src/hello_pi/hello_video/test.h264 !文件接收器位置=/home/pi/test & /opt/vc/src/hello_pi/hello_video/hello_video.bin /home/pi/test 即使来自相机的流: gst-launch-1.0 v4l2src ! '视频/x-h264,宽度=1920,高度=1080,帧率=30/1'!文件接收位置=/home/pi/test & /opt/vc/src/hello_pi/hello_video/hello_video.bin /home/pi/test
通过 RTP 传输时不工作: gst-launch-1.0 v4l2src ! '视频/x-h264,宽度=1920,高度=1080,帧率=30/1'! h264parse 配置间隔=1 ! rtph264pay! udpsink 主机=10.0.0.129 端口=5000 \ & gst-launch-1.0 udpsrc 端口=5000 !应用程序/x-rtp,编码名称=H264,有效负载=96! rtph264depay! '视频/x-h264,宽度=1920,高度=1080,帧率=30/1'!文件接收器位置=/home/pi/test \ & /opt/vc/src/hello_pi/hello_video/hello_video.bin /home/pi/test
在没有 UDP RTP 的情况下无法工作: gst-launch-1.0 v4l2src ! h264parse 配置间隔=1 ! rtph264pay!队列 ! rtph264depay!文件接收器位置=/home/pi/test \ & /opt/vc/src/hello_pi/hello_video/hello_video.bin /home/pi/test
因此,一旦视频流被包含在 RTP 中,似乎就会发生一些事情。
我知道 RTP 流可以正常工作,因为我可以在我的 VM 上接收它并毫无问题地播放它。但是,当然,在 VM 上我可以使用 autovideosink。 在 ubuntu 上工作接收: gst-launch-1.0 udpsrc 端口=5000 ! \ 应用程序/x-rtp,\ 编码名称=H264,有效载荷=96! \ rtph264depay! h264解析! avdec_h264 ! \ 自动视频接收器
非常感谢任何建议。
谢谢
最好的问候, 蒙扎
【问题讨论】:
标签: video raspberry-pi gstreamer rtp