使用GStreamer通过udp解码和流式传输h264

使用GStreamer通过udp解码和流式传输h264,gstreamer,h.264,tegra,Gstreamer,H.264,Tegra,我正在尝试解码h264中的视频,并将其重新编码以传输到客户端,但需要udp: 在变送器侧: gst-launch-1.0 -v filesrc location=/home/ubuntu/Videos/test.mp4 ! qtdemux name=demux ! h264parse ! omxh264dec ! nvvidconv ! omxh264enc ! rtph264pay ! udpsink host=127.0.0.1 port=5000 在接收器端: gst-launch-1.

我正在尝试解码h264中的视频,并将其重新编码以传输到客户端,但需要udp:

在变送器侧:

gst-launch-1.0 -v filesrc location=/home/ubuntu/Videos/test.mp4 ! qtdemux name=demux ! h264parse ! omxh264dec ! nvvidconv ! omxh264enc ! rtph264pay ! udpsink host=127.0.0.1 port=5000
在接收器端:

gst-launch-1.0 udpsrc port=5000 ! application/x-rtp,media=video,clock-rate=90000,encoding-name=H264 ! rtph264depay ! h264parse ! omxh264dec ! nveglglessink
我在NVidia Tegra TK1上本地进行测试,但没有显示任何内容,尽管没有引发错误


有人看到什么要补充的吗?提前感谢。

好的,我终于让它工作了,但使用了其他网络协议:

仅用于测试,在Tegra TK1上本地发送和接收:

发送:

收到:

gst-launch-1.0 -v tcpclientsrc host=127.0.0.1 port=5000 ! gdpdepay ! rtph264depay ! h264parse ! omxh264dec ! nveglglessink sync=false
结果是波涛汹涌的,但我不在乎这个阶段。我收到了一些东西

在Ubuntu PC上接收:

gst-launch-1.0 -v tcpclientsrc host=<Tegra IP> port=5000 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false
gst-launch-1.0-v tcpclientsrc主机=端口=5000!gdpdepay!rtph264depay!avdec_h264!视频转换!自动视频接收器同步=错误

这在您的完整PC上有效吗?老实说,尽管tegra是一款有趣的硬件,但它是一款嵌入式设备,除非你对软件进行了大量优化,否则这个可怜的东西通常不会是计算密集型负载的首选。如果你进行优化,你也许可以做一些需要更多瓦特/空间的事情,但你不应该在嵌入式设备上开发算法——你通常在一台配有合适GPU的PC上进行测试和开发,这会快得多,然后缩小你的应用程序,直到它在Tegra上运行。
gst-launch-1.0 -v tcpclientsrc host=<Tegra IP> port=5000 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false