gpt4 book ai didi

opencv - Gstreamer RTP传输视频+文字

转载 作者:行者123 更新时间:2023-12-02 16:09:59 27 4
gpt4 key购买 nike

我正在使用命令行语法编写一个 gstreamer 管道来发送视频流,并想用它发送数据。我认为可行的一种解决方案是将数据作为字幕文件发送。

我可以使用以下管道通过 rtp 多路复用视频和字幕文件:

gst-launch-1.0 rtpmux name=mux ! udpsink host=127.0.0.1 port=5000 \ 
filesrc location=movie.avi ! decodebin ! videoconvert ! x264enc ! rtph264pay ! mux.sink_0 \
filesrc location=movie.srt ! subparse ! rtpgstpay ! mux.sink_1

我知道它应该到达,因为我可以使用 netcat 查看接收数据的端口。但是,当我尝试在接收端使用 gstreamer 读取流时,出现“语法错误”。我现在使用的管道是

gst-launch-1.0 udpsrc port=5000 caps = "application/x-rtp" ! rtpptdemux name=demux ! queue ! \
demux.src_0 ! rtph264depay ! decodebin ! videoconvert ! autovideosink \
demux.src_1 ! rtpgstdepay ! fakesink

在其中,我尝试撤消发件人方采取的每一步,但有些东西不对劲,我不知道它是什么。 (我稍后会对字幕做一些事情,fakesink 只是为了调试)

如果有其他方法可以做到这一点,我将不胜感激!

关于其他可能的解决方案,我知道 RTP 支持使用 rtp 有效负载(RFC 4103)和定时文本(RFC 4396)进行文本对话,但从我在 gstreamer 插件列表中找到的 RTP,有尚不支持它。

我的最终目标是在一台计算机上从 opencv 发送视频和一些数据,并在接收端同步读取。命令行工作后,我会将其适配到 opencv 并不断重写字幕文件或直接传递变量。

非常感谢您的帮助!

最佳答案

命令行语法不正确,因为 queue 不能出现在 demux 元素之后(尽管它在命令行中看起来有点合乎逻辑)。

在您的情况下,queue 元素可以在 demux source pads 之后使用。例如

gst-launch-1.0 udpsrc port=5000 caps = "application/x-rtp" ! rtpptdemux name=demux \
demux.src_0 ! queue ! rtph264depay ! decodebin ! videoconvert ! autovideosink \
demux.src_1 ! queue ! rtpgstdepay ! fakesink

关于opencv - Gstreamer RTP传输视频+文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60553497/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com