2012-12-14 153 views
0

我想通过RTP将使用gstreamer的视频文件从一个设备流式传输到另一个设备。在发送端,我使用以下命令:使用gstreamer通过RTP的视频流

gst-launch filesrc location =/home/kuber/Desktop/MELT.MPG! mpegparse! rtpsend ip = localhost

但是,这给出了以下错误:没有元素“rtpsend”,我下载了所有的rtp工具,仍然是相同的错误。我是否以某种错误的方式使用了rtpsend? 也可以有人给我的流式视频文件(本地存储在我的笔记本电脑,而不是testvideosrc文件)从一个设备到另一个命令行代码? 强大的文本

回答

1

假设这是一个MPEG1/2基本流要送出你需要你的mpegparse后使用rtpmpvpay然后给输出udpsink(因为你使用mpegparse)。

mpegparse ! rtpmpvpay ! udpsink host="hostipaddr" port="someport" 

我不知道任何rtpsend插件是这样的。上述适用于rtp上的任何流式传输。

做一个gst检查| grep rtp查看所有的加载器,加载器

如果它是一个mpegps流,则需要在流水线的其余部分之前首先执行mpegpsdemux。

编辑:

为什么不删除mpegparse?不明白你为什么需要它。您应该学会在组件的gst检查中了解源和接收器的需求,这将告诉您节点之间需要的兼容性。收到将反向udpsrc端口=“portno”! capsfilter caps =“application/x-rtp,pt = 32,..在这里输入”! rtpmpvdepay!

+0

以及它的一个mpeg1/2流,我尝试使用rtpmpvpay!在现在下面的代码: “GST推出filesrc位置= /家庭/ kuber /桌面/ MELT.MPG mpegpsdemux mpegparse rtpmpvpay udpsink主机=本地主机端口= 1234!!!!” 这提供了以下错误:错误管道:无法链接mpegparse0到rtpmpvpay0 @ av501 - 我不知道如何删除此错误。你也可以给我接收端的命令行代码吗? – user1795516

+0

为什么不移除mpegparse?不明白你为什么需要它。您应该学会在组件的gst检查中了解源和接收器的需求,这将告诉您节点之间需要的兼容性。收到将反向udpsrc端口=“portno”! capsfilter caps =“application/x-rtp,pt = 32,..在这里输入”! rtpmpvdepay!现在做任何你想要的流> – av501

+0

问题是,只要我删除mpegparse,只需使用: gst-launch-0.10 filesrc location =/home/kuber/Desktop/test.mp4! rtpmpvpay! udpsink主机=本地主机端口= 1234 我得到以下错误: 设置管道停顿了一下。 管道预卷... 管道被预卷... 设置管道玩.... 新的时钟: GstSystemClock 从元素“pipeline0”获得EOS。 20591150 ns后执行结束。 设置管道停顿了一下。 设置管道READY ... 管道设置为NULL ...... 解放出来管道... 基本上EOS流错误。 – user1795516