高分辨率捕获和编码

发布于 2024-12-15 07:30:19 字数 390 浏览 0 评论 0原文

我使用两个自定义推送过滤器将音频和视频(未压缩的 RGB)注入 DirectShow 图形中。我正在制作一个视频捕获应用程序,因此我想在帧进入时对其进行编码并将其存储在文件中。

到目前为止,我已经使用 ASF Writer 将输入编码为 WMV 文件,但渲染器似乎太慢,无法处理高分辨率输入(例如 1920x1200x32)。至少,FillBuffer() 似乎只能处理 6-15 FPS 左右,这显然不够快。

我尝试增加 DecideBufferSize() 中的 cBuffers 计数,但这当然只会将问题推迟到稍后的时间点。

我有什么选择可以加快这个过程?通过 DirectShow 进行实时高分辨率编码的正确方法是什么?我最终希望得到一个 WMV 视频,但也许这必须是一个后处理步骤。

I'm using two custom push filters to inject audio and video (uncompressed RGB) into a DirectShow graph. I'm making a video capture application, so I'd like to encode the frames as they come in and store them in a file.

Up until now, I've used the ASF Writer to encode the input to a WMV file, but it appears the renderer is too slow to process high resolution input (such as 1920x1200x32). At least, FillBuffer() seems to only be able to process around 6-15 FPS, which obviously isn't fast enough.

I've tried increasing the cBuffers count in DecideBufferSize(), but that only pushes the problem to a later point, of course.

What are my options to speed up the process? What's the right way to do live high res encoding via DirectShow? I eventually want to end up with a WMV video, but maybe that has to be a post-processing step.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

尛丟丟 2024-12-22 07:30:19

您的问题在这里发布了很好的答案:高分辨率捕获和编码速度太慢。对于系统中的 CPU 来说,该任务过于复杂,它的速度不够快,无法在您设置的工作配置中执行实时视频编码。

You have great answers posted here to your question: High resolution capture and encoding too slow. The task is too complex for the CPU in your system, which is just not fast enough to perform realtime video encoding in the configuration you set it to work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文