我正在尝试使用通过gstreamer 1.0标志编译的gscam(http://wiki.ros.org/gscam),并将摄像机通过以太网连接到运行Ubuntu16.04,ROS dynamic和gstreamer 1.0的笔记本电脑。
我能够使用以下命令正确启动gstreamer并查看stram窗口:
gst-launch-1.0 udpsrc caps="application/x-rtp,media=video,clock-rate=90000,encoding-name=H264, payload=96" port=5002 ! rtph264depay ! video/x-h264,framerate=24/1,width=640,height=480 ! queue ! avdec_h264 ! videoconvert ! autovideosink sync=FALSE
但按照gscam的指示运行命令:
export GSCAM_CONFIG="udpsrc caps="application/x-rtp,media=video,clock-rate=90000,encoding-name=H264,payload=96" port=5002 ! rtph264depay ! video/x-h264,framerate=24/1,width=640,height=480 ! decodebin ! videoconvert"
然后:
rosrun gscam gscam
我得到了错误:
[FATAL] [1533651268.132080791]: no element "udpsrc"
[FATAL] [1533651268.132104353]: Failed to initialize gscam stream!
使用以下方法安装gscam时都会发生这种情况:
sudo apt-get install ros-kinetic-gscam
并使用catkin从源代码进行编译
有人可以帮助我吗?
更新:
至关重要的缺失信息是gscam
是由具有gstreamer-1.0
标志的source构建的。
因此,使用gstreamer-0.10
的ROS ppa并不是常见的应用。
答案 0 :(得分:0)
首先是直接解决方案:似乎您缺少某些插件包。 udpsrc是gst-plugins-good-plugins-0.10的一部分,您可以按照以下步骤在Ubuntu 16.04下安装(带有必需的基本插件):
sudo apt-get install gstreamer0.10-plugins-base gstreamer0.10-plugins-base-apps gstreamer0.10-plugins-good
第二,有关gstreamer的一些信息:gscam
确实依赖于gstreamer-0.10
而不是gstreamer-1.0
,它们是完全分离的版本。
您可以通过输入
$ apt-cache depends ros-kinetic-gscam
...
libgstreamer0.10-0
...
使用gstreamer-1.0
来详细说明配置字符串时,必须小心,然后尝试在gstreamer-0.10
中使用它们。
它可能并不总是有效,因此请尝试直接使用gstreamer-0.10
。