视频源帧率抖动

发布于 2024-12-10 16:22:22 字数 278 浏览 0 评论 0原文

用 C# 编写的应用程序正在使用 DirectShow 将音频 + 视频录制到 AVI 文件中。 然而,视频源产生不稳定的帧速率。例如,当将帧速率设置为 24 fps 时,实际速率在 24 至 30 fps 之间抖动。

这会导致生成的 AVI 文件出现音频/视频同步问题。

一个可能的解决方案是向图表添加一个过滤器(就在写入 AVI 之前)来调整速率 - 丢弃帧或重复帧以保持请求的速率。

您认为该解决方案可行吗?
这个问题还有其他解决方案吗?

谢谢,
尤里.

An application written in C# is using DirectShow to record Audio + Video into an AVI file.
However, the video source produces unsteady frame rate. For example, when setting the frame rate to 24 fps, the actual rate jitters between 24 to 30 fps.

This causes audio/video sync problem in the resulting AVI file.

A possible solution is to add a filter to the graph (just before writing to AVI) that adjusts the rate - dropping frames or duplicating frames in order to keep the requested rate.

Do you think the solution is feasible?
Any other solutions to this problem?

Thanks,
Ury.

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

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

发布评论

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

评论(1

弄潮 2024-12-17 16:22:22

AVI 容器使用固定帧速率,需要在启动文件之前提供。视频帧必须与帧速率匹配,否则如果没有足够的数据,它们可能会被丢弃(零长度帧)。因此,AVI 格式不太适合可变帧率视频。

为您提供的选项:

  • 根据您的建议调整视频帧时间
  • 使用更合适的容器格式
  • 使用高 AVI 帧速率和更高的丢帧速率 使用更小的帧时间网格来灵活存储所有帧

AVI container is using fixed frame rate, which needs to be provided before starting the file. Video frame have to match the frame rate, or they can be dropped (zero length frame) if there is no sufficient data. As a result, AVI format is not so good for variable frame rate video.

Options for you:

  • adjust video frame time as you suggested
  • use a better suitable container format
  • use high AVI frame rate with higher dropped frame rate, to store all your frames flexibly using a smaller time grid for the frames
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文