我正在尝试将原始数据(视频帧和音频样本)编码到 .asf 文件中,在 directshow 中使用 asf writer 过滤器。我的过滤器图结构:raw_send_filter -> asf writer filter raw_send_filter 实现了 CBaseFilter 和 CBaseOutputPin。它充当源过滤器的角色,它获取原始数据,然后将它们传递给 ASF 编写器过滤器。该过程遵循以下步骤:
- 使用函数CBaseOutputPin::GetDeliveryBuffer获取传递缓冲区(返回“样本”)
- 样本->GetPointer(&buffer);
- 设置时间戳(帧速率 = 30 fps)
- 送样
问题是在对一些原始数据进行编码后,我无法再提供。
我可以使用 Avi mux 过滤器以这种方式对 .avi 文件进行编码。你能告诉我为什么我在编码后不能提供样本吗?
谢谢。