发送UDP流Gstreamer

问题描述 投票:0回答:2

如何在 Windows 上使用 gstreamer 将 udp 视频流发送到端口?

我想将测试视频发送到特定端口,但当我使用wireshark检查网络时没有任何输出。这是我尝试过的 gstreamer 管道。

gst-launch-1.0 -v videotestsrc ! x264enc ! rtph264depay ! upsink port=3445

这是命令提示符终端中的输出。

Setting pipeline to PAUSED ... 
Pipeline is PREROLLING... 
Redistribute latency ... 
Pipeline is PREROLLED ... 
Setting pipeline to PLAYING ... 
New Clock: GstSystemClock

Wireshark 在网络上没有显示任何输出。

windows gstreamer
2个回答
1
投票

您需要使用

rtph264pay
元素代替
rtph264depay
进行负载,并且需要为
udpsink
定义目标 IP 地址。为
x264enc
添加大写字母也是个好主意,表明它将输出
byte-stream

我推荐的示例管道如下。请随意将

127.0.0.1
替换为您的目标。

gst-launch-1.0 -v videotestsrc ! x264enc ! video/x-h264, stream-format=byte-stream ! h264parse ! rtph264depay ! udpsink port=3445 host=127.0.0.1

关于

h264parse
的一句话,在旧版本的gstreamer中你需要这个元素,在新版本中你不需要使用这个元素。


0
投票

在介绍高级元素之前,让我们从简单的一致性检查开始,如下所示(Ubuntu 18.04 LTS):

发送udp流:

gst-launch-1.0 videotestsrc ! x264enc ! rtph264pay ! udpsink port=3445 host=ip_address

接收udp流(接收需要几秒才能显示):

gst-launch-1.0 udpsrc port=3445 ! application/x-rtp ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink

如果没有任何显示,请尝试删除 vaapi:

sudo apt-get remove gstreamer1.0-vaapi

让我们知道它是否有效(拇指向上)或不起作用(拇指向下)!

© www.soinside.com 2019 - 2024. All rights reserved.