gstreamer - 可能存在时间戳问题或这台计算机太慢
问题描述
有人用 gstreamer 得到这个输出吗?
我正在尝试使用 rtp 从我的 latptop 到 nvidia xavier 的 gstreamer
我的发件人管道就是这样
gst-launch-1.0 v4l2src ! videoconvert ! 'video/x-raw,format=(string)I420' ! x264enc ! rtph264pay ! udpsink host=127.0.0.1 port=1234
我的客户管道就是这样
gst-launch-1.0 -vvv udpsrc port=1234 ! application/x-rtp,payload=96 ! rtph264depay ! avdec_h264 ! xvimagesink
我得到以下输出,而且我的流也很慢且滞后。
WARNING: from element /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: A lot of buffers are being dropped.
Additional debug info:
gstbasesink.c(2902): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0:
There may be a timestamping problem, or this computer is too slow.
WARNING: from element /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: A lot of buffers are being dropped.
Additional debug info:
gstbasesink.c(2902): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0:
There may be a timestamping problem, or this computer is too slow.
WARNING: from element /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: A lot of buffers are being dropped.
Additional debug info:
gstbasesink.c(2902): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0:
There may be a timestamping problem, or this computer is too slow.
任何帮助,将不胜感激。谢谢!
解决方案
这些场合的 CPU 使用率如何?我对这个平台没有经验——它的目的可能是在 GPU 上运行大多数东西(比如视频解码和显示)。
尝试sync=false
视频接收器。它可能仍然滞后,但不会丢弃任何帧。所以也许通过观察这个管道可以获得更多信息。
autovideoconvert ! autovideosink
用作水槽而不是使用呢xvimagesink
?
考虑使用rtpbin
元素而不是手动执行 RTP 部分。bin 做了很多智能缓冲等,这可能会有所帮助。
当然,请仔细检查笔记本电脑编码器端是否没有发生问题..
推荐阅读
- node.js - 如何发送到亚马逊的 Alexa 事件网关?
- c++ - 如何使用这个受保护的成员函数来获得想要的输出
- haskell - haskell 无法将预期类型与实际类型“Bool”匹配
- javascript - Redux 表单状态未定义
- c++ - Microsoft C++ 和 g++ 预处理器行为差异
- python-3.x - XML 到 Pandas 数据框 - 重塑数据
- vue.js - 自定义 vuetify v-calendar 日期名称
- javascript - Ajax 请求不传递整个字符串?
- solidity - 为什么声明返回类型字节内存会产生编译器错误?
- android - 是否可以通过 android 使用 termux 编译 C++ 库?