程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了GStreamer 管道从 FBDevSink 收到警告:使用 h264 编码进行 Tee 时缓冲区被丢弃大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决GStreamer 管道从 FBDevSink 收到警告:使用 h264 编码进行 Tee 时缓冲区被丢弃?

开发过程中遇到GStreamer 管道从 FBDevSink 收到警告:使用 h264 编码进行 Tee 时缓冲区被丢弃的问题如何解决?下面主要结合日常开发的经验,给出你关于GStreamer 管道从 FBDevSink 收到警告:使用 h264 编码进行 Tee 时缓冲区被丢弃的解决方法建议,希望对你解决GStreamer 管道从 FBDevSink 收到警告:使用 h264 编码进行 Tee 时缓冲区被丢弃有所启发或帮助;

我使用 GStreamer 构建的管道存在问题,该管道包含以下内容:

输入 - (v4l2srC) 原始视频

输出

  1. 使用 fbdevsink 显示的实时视频(原始)
  2. 保存的视频(h264 编码,mp4 文件类型)
  3. 使用 udpsink 流式传输的网络视频

我的首要任务是仅直播(原始)视频的延迟和帧率。

我编写的仅关注前两个输出的以下管道存在以下问题。 管道 1:

# The following pipeline works to show the vIDeo,but lags a lot and outputs warnings:
gst-launch-1.0 v4l2src device=/dev/vIDeo7 ! \
    v4l2vIDeo8convert ! vIDeo/x-raw,wIDth=796,height=480 ! \
    tee name=t ! queue ! vIDeoconvert ! fbdevsink \
    t. ! queue ! x264enc rc-lookahead=5 ! queue ! \
    mp4mux ! filesink LOCATIOn=./vIDeos/$(date +"%Y_%m_%d_%H_%M_%p").mp4

此管道的警告如下:

WARNING: from element /GstPipeline:pipeline0/GstFBDEVSink:fbdevsink0: A lot of buffers are being dropped.
Additional deBUG info:
gstbasesink.c(2902): gsT_Base_sink_is_too_late (): /GstPipeline:pipeline0/GstFBDEVSink:fbdevsink0:
There may be a timestamPing problem,or this computer is too slow.

下一个管道是第一个管道的修订版,我将转换与视频源分开,在 T 恤之后移动。这个管道解决了问题,不抛出任何错误,并且没有滞后:

# The following works
gst-launch-1.0 -e v4l2src device=/dev/vIDeo7 ! \
    tee name=t ! queue ! v4l2vIDeo8convert ! vIDeo/x-raw,height=480        ! $
    t. ! queue ! v4l2vIDeo8convert ! vIDeo/x-raw,wIDth=720,height=480 ! \
    v4l2h264enc output-io-mode=dmabuf-import ! h264parse ! \
    mp4mux ! filesink LOCATIOn=./vIDeos/$(date +"%Y_%m_%d_%H_%M_%p").mp4

然而,这个管道使用两个转换步骤,为了效率和简单性,我真的只想使用一个。

总的来说,我觉得我通过从单个转换步骤更改为多个转换步骤来缓解这个问题。但这可能不是解决此问题的正确方法。我应该怎么做?

跟进:当将此管道扩展到额外的 UDP 接收器时,是否有更正确的构建方式?

非常感谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的GStreamer 管道从 FBDevSink 收到警告:使用 h264 编码进行 Tee 时缓冲区被丢弃全部内容,希望文章能够帮你解决GStreamer 管道从 FBDevSink 收到警告:使用 h264 编码进行 Tee 时缓冲区被丢弃所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: