0

我正在尝试将原始数据(视频帧和音频样本)编码到 .asf 文件中,在 directshow 中使用 asf writer 过滤器。我的过滤器图结构:raw_send_filter -> asf writer filter raw_send_filter 实现了 CBaseFilter 和 CBaseOutputPin。它充当源过滤器的角色,它获取原始数据,然后将它们传递给 ASF 编写器过滤器。该过程遵循以下步骤:

  1. 使用函数CBaseOutputPin::GetDeliveryBuffer获取传递缓冲区(返回“样本”)
  2. 样本->GetPointer(&buffer);
  3. 设置时间戳(帧速率 = 30 fps)
  4. 送样

问题是在对一些原始数据进行编码后,我无法再提供。

我可以使用 Avi mux 过滤器以这种方式对 .avi 文件进行编码。你能告诉我为什么我在编码后不能提供样本吗?

谢谢。

4

1 回答 1

0

可能 ASF 多路复用器正在等待更多数据。检查您是否以相同的速率发送音频和视频。

于 2011-01-05T19:02:24.543 回答