【问题标题】:Video streaming over RTP using gstreamer使用 gstreamer 通过 RTP 流式传输视频
【发布时间】:2012-12-15 06:22:54
【问题描述】:

我正在尝试使用 gstreamer 通过 RTP 将视频文件从一台设备流式传输到另一台设备。在发件人端,我使用以下命令:

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

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

【问题讨论】:

    标签: streaming video-streaming gstreamer rtp python-gstreamer


    【解决方案1】:

    假设这是您要发送的 MPEG1/2 基本流(因为您使用的是 mpegparse)您需要在 mpegparse 之后使用 rtpmpvpay,然后将输出提供给 udpsink。

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

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

    做 gst-inspect | grep rtp 查看所有的payloaders,depayers

    如果是 mpegps 流,您需要在管道的其余部分之前先执行 mpegpsdemux。

    编辑:

    为什么不删除 mpegparse?不明白你为什么需要它。您应该学习在组件的 gst-inspect 中查看源和接收器要求,这将告诉您节点之间所需的兼容性。接收将是反向 udpsrc port="portno" ! capsfilter caps="application/x-rtp, pt=32, ..在此处输入 caps" ! rtpmpvdepay!

    【讨论】:

    • 它是一个 mpeg1/2 流,我尝试使用 rtpmpvpay!现在在以下代码中:“gst-launch filesrc location=/home/kuber/Desktop/MELT.MPG!mpegpsdemux!mpegparse!rtpmpvpay!udpsink host=localhost port=1234”这给出了以下错误:错误的管道:无法链接mpegparse0 到 rtpmpvpay0 @av501 - 我不确定如何删除此错误。你也可以给我接收方的命令行代码吗?
    • 为什么不删除 mpegparse?不明白你为什么需要它。您应该学习在组件的 gst-inspect 中查看源和接收器要求,这将告诉您节点之间所需的兼容性。接收将是反向 udpsrc port="portno" ! capsfilter caps="application/x-rtp, pt=32, ..在此处输入 caps" ! rtpmpvdepay!
    • 问题是,只要我删除 mpegparse 并使用:gst-launch-0.10 filesrc location=/home/kuber/Desktop/test.mp4 ! rtpmpvpay! udpsink host=localhost port=1234 我收到以下错误:将管道设置为 PAUSED ... Pipeline is PREROLLING ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock Got EOS from element "pipeline0" .执行在 20591150 ns 后结束。将管道设置为 PAUSED ...将管道设置为 READY ...将管道设置为 NULL ...释放管道 ...基本上是 EOS 流错误。
    • 所以,我在服务器端使用以下引发 EOS 错误:gst-launch filesrc location=/home/kuber/Desktop/test.mpg! rtpmpvpay! udpsink host=localhost port=1234 同样在客户端,我正在使用:udpsrc port=1234 接收此流! capsfilter caps="application/x-rtp, pt=32, media=(string)video, clock-rate=44100, width=16, height=16, encoding-name=(string)L16,encoding-params=(string )1,通道=(int)1,通道位置=(int)1,有效载荷=(int)96“! rtpmpvdepay! xvimagesink !你能在你的系统中试试这个,然后告诉我哪里出了 EOS 错误吗?
    • 你的大写是音频,你正在发送视频!
    猜你喜欢
    • 2013-06-23
    • 2013-07-26
    • 1970-01-01
    • 2019-01-26
    • 2013-05-01
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多