大佬教程收集整理的这篇文章主要介绍了GStreamer 管道从 FBDevSink 收到警告:使用 h264 编码进行 Tee 时缓冲区被丢弃,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用 GStreamer 构建的管道存在问题,该管道包含以下内容:
输入 - (v4l2srC) 原始视频
输出
我的首要任务是仅直播(原始)视频的延迟和帧率。
我编写的仅关注前两个输出的以下管道存在以下问题。 管道 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,请注明来意。