当前位置: 首页 > 知识库问答 >
问题:

FFMPEG实时缓冲区全帧丢弃

缑赤岩
2023-03-14

我在windows和direct show上使用FFMPEG。我正在传输RTMP(下面的命令),我需要非常低的延迟。一旦运行,我会出现以下错误:[dshow@024ce800]实时缓冲区已满204%!框架掉下来了!

ffmpeg线程6-f dshow-i video=UScreenCapture-s 1920x1080-an-vco dec libx264-x264opts keyint=25: min-keyint=20-b: v1024k-预设超快速调零调-crf 22-r 10-pix_fmtyuv420p-f flv rtmp://server...

你知道如何处理这种错误吗?

谢谢Ronen

共有1个答案

沈博达
2023-03-14

这条消息意味着“dshow收到了一个传入的数据包,但是你还没有发送完前一个数据包”,所以实际上,这应该有助于尽可能低的延迟。如果您的目标是避免丢弃数据包,那么增加rtbufsize。有了rtmp,希望很快会有一些改进,这样它就有更好的吞吐量。

 类似资料:
  • 到目前为止,我们已经使用了很多屏幕缓冲了:用于写入颜色值的颜色缓冲、用于写入深度信息的深度缓冲和允许我们根据一些条件丢弃特定片段的模板缓冲。这些缓冲结合起来叫做帧缓冲(Framebuffer),它被储存在内存中。OpenGL允许我们定义我们自己的帧缓冲,也就是说我们能够定义我们自己的颜色缓冲,甚至是深度缓冲和模板缓冲。 我们目前所做的所有操作都是在默认帧缓冲的渲染缓冲上进行的。默认的帧缓冲是在你创

  • 在DirectX中,您可以有单独的渲染目标和深度缓冲区,因此可以绑定渲染目标和一个深度缓冲区、执行一些渲染、移除深度缓冲区然后使用旧的深度缓冲区作为纹理进行更多渲染。 你会如何在opengl中做到这一点?根据我的理解,您有一个帧缓冲区对象,其中包含颜色缓冲区和可选的深度缓冲区。我不认为我可以同时绑定多个帧缓冲器对象,我是否必须在每次更改时(可能一帧几次)重新创建帧缓冲器对象?普通的 opengl

  • 我在游戏中使用延迟渲染器。因此,第一个渲染过程是使用多个渲染rarget创建反照率和法线缓冲区,并填充深度缓冲区。所有这些缓冲区实际上都是纹理。 现在我想从其他渲染通道访问深度缓冲区,从而访问其他帧缓冲区,而不改变深度纹理。我只想读取深度值。对于这些通道,我主要绘制全屏四边形,我不希望他们更新深度纹理并将其消隐为深度值0。 如何将一个给定的深度纹理附加到另一个帧缓冲区,并确保它是只写的?

  • 我正在使用JOGL,但这个问题一般适用于OpenGL。似乎存在类似的问题,但它们要么针对GLSL代码,要么与复制帧缓冲区的内容有关,要么是一般建议-使用帧缓冲区对象,而不是。 我正在做一些阴影映射。如何使用帧缓冲对象将深度通道直接渲染到纹理? 能否请你贴一段初始化纹理和帧缓冲对象的代码,以及渲染场景前初始化一切的代码? 目前,我使用<code>glCopyTexSubImage2D<code>。我

  • 我想在我的小libgdx游戏中使用框架缓冲区。 游戏使用了,我修改了s摄像头,使其使用50宽31高的视口。然后我将的投影矩阵设置为。这样做,我有一个分辨率独立的游戏,我可以使用我自己的“世界单位”,而不是使用像素。 但是现在,如果我创建一个,我必须给它一个大小。我必须给它摄像机视口的大小还是屏幕的大小(以像素为单位)? 而且,当我渲染的东西,我可以渲染他们在,这意味着渲染在几乎在游戏窗口的中间?

  • 我在一些Windows机器上看到这个错误,当使用ffmpeg将8K png流转换为ProRes 4444时。命令看起来像 ffmpeg-f image2pipe-framerate 30000/1001-i--c:v prores_ks-y输出。压敏电阻 和输出 ffmpeg版本git-2020-06-17-0b3bd00版权所有(c)2000-2020 ffmpeg开发人员使用gcc 9.3构建