首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用gst-rtsp服务器发送和接收流

使用gst-rtsp服务器发送和接收流
EN

Stack Overflow用户
提问于 2022-02-10 15:38:43
回答 1查看 1.9K关注 0票数 1

我目前正在研发一个遥控机器人,它将两个摄像头流从Jetson发送到PC/Android手机/VR耳机。

我已经能够使用运行这条管道的gst-rtsp服务器在机器人和PC之间创建一个稳定的链接:

代码语言:javascript
复制
./test-launch nvarguscamerasrc sensor-id=1 ! video/x-raw(memory:NVMM) width=1920 height=1080 framerate=30/1 format=NV12 ! nvvidconv flip-method=2 ! omxh264enc iframeinterval=15 ! h264parse ! rtph264pay name=pay0 pt=96

并通过以下方式在PC上接收到:

代码语言:javascript
复制
gst-launch-1.0 -v rtspsrc location=rtspt://192.168.1.239:8554/test ! application/x-rtp, payload=96 ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false

在PC上,延迟约为120‘s,所以我想在Android上运行同样的东西不会有问题。通过使用这里的gstreamer预构建二进制文件和这里的修改使其能够使用rtspsrc,我成功地接收了rtsp流。但这一次,视频“慢下来”(可能是一些缓冲问题,或者HW加速?)

通过使用latency=150 drop-on-latency=truertspsrc参数来解决这个问题,它只保持那些帧具有较低的延迟,但正如预期的那样,输出编码的图像是垃圾。

所以我的问题是:为什么手机和接收数据流的个人电脑有这么大的区别?

gst-rtsp-stream似乎默认通过tcp发送,而我试图使用gst_rtsp_media_factory_set_protocols(factory, GST_RTSP_LOWER_TRANS_UDP_MCAST)进行配置,但这样做,即使在具有相同管道的PC上,也无法接收流。

有没有办法强迫gst-rtsp-server通过udp发送。还是有一种方法可以优化手机的编码性能,以达到PC机运行的速度?(我有一个GalaxyS10+,所以我想它应该能够处理这个问题)

我的目标是在Android/VR耳机上制作一个清晰的视频,延迟最小(最好与PC相同~120 as )。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-16 20:31:49

rtsp服务器使用TCP,因为您的客户端查询使用的是rtspt,其中最后一次t查询请求TCP传输。仅仅使用rstp就应该使用UDP。有关更多细节,您可以查看rtspsrcrtspsrc属性。

完整的故事在这里的评论中,并继续在这里解决:Gstreamer HW加速H.264编码

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71067973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档