具有多个视频帧的 DirectShow 变换过滤器 - 与音频同步
Posted
技术标签:
【中文标题】具有多个视频帧的 DirectShow 变换过滤器 - 与音频同步【英文标题】:DirectShow transform filter with multiple video frames - Sync with audio 【发布时间】:2014-06-03 12:39:21 【问题描述】:我编写了一个 DirectShow 转换过滤器(在 C# 中,但在 C++ 中的概念相同),它在将多个视频帧发送到渲染器之前缓冲多个视频帧(因此会有延迟)。这些帧在生成输出帧之前进行处理(想想 6 帧的滑动窗口)。
在 6fps 视频源上,这会导致 1 秒延迟。音频最终会比视频提前 1 秒播放。如何让图表延迟相同数量的音频?
【问题讨论】:
【参考方案1】:视频和音频渲染器呈现与附加时间戳相关的数据。您需要重新标记音频数据以添加所需的延迟。
【讨论】:
当音频数据不受我控制时,我该怎么做?我只能控制转换过滤器(以及下游的分配器)。 您通常通过音频转换过滤器执行此操作。带有 SampleCB 回调的 Sample Grabber 也可以解决问题。 我不能完全强制我的转换过滤器的用户插入一个单独的音频转换过滤器。 这不会创建您选项的全貌,您需要添加更多详细信息。以上是关于具有多个视频帧的 DirectShow 变换过滤器 - 与音频同步的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Windows 7 上通过 DirectShow 播放 MPEG-TS 视频?