如何获得 DirectShow VideoCompressor 过滤器输出字节?
How can I get DirectShow VideoCompressor filter output as bytes?
DirectShow 的新功能(如在 4 天内)。我有一个滤镜工作和编写的代码,让我可以选择一个相机,设置它的分辨率,预览它的视频,使用 XVID 编解码器压缩它并将它保存到 AVI 文件。
当帧从图中的视频压缩器过滤器中出来时,我如何才能将帧作为字节数组获取?
我需要将压缩帧保存到视频帧与其他科学数据混合的文件中。
正在使用的文件格式是 HDF5,相机帧在接收时需要与来自其他科学仪器的帧交错,以便可以按照接收时的相同顺序播放。我有这个适用于所有设备,除了网络摄像头。
为了回放,我需要从数据文件中的流之一提供 FilterGraph。也欢迎提出任何建议!
提前致谢!
DirectShow 过滤器与对等过滤器交换数据或在内部处理,这是设计行为,您无法获取数据流,至少无法以统一方式获取数据流。更多相关信息:Data Flow in the Filter Graph.
多年来,Sample Grabber Filter 一直是在管道中的兴趣点外部访问数据的最流行方法。关于如何使用 Sample Grabber,有很多代码片段,包括 Whosebug。遗憾的是,它在最近的(服务器?)操作系统中不再可用,但是旧的 SDK 在源代码中有 Sample Grabber 的变体。我相信你可以用它来压缩字节。
For playback, I need to feed the FilterGraph from one of the streams in the data file. Any advice on that would also be welcome!
要回放数据,您需要从一种标准容器格式流式传输数据,在这种情况下,您可以利用现有过滤器,或者您可以自己将数据注入 DirectShow 管道。对于后者,您还需要一个自定义过滤器,因为正如我从一开始就提到的那样,它只是与其他过滤器交换数据的过滤器,而不是控制更高级别的代码。 Push Source Filters Sample 是那些走自定义过滤器道路的人的典型起点。或许您最好直接将数据写入 AVI,然后从那里读取(播放)回来。
DirectShow 的新功能(如在 4 天内)。我有一个滤镜工作和编写的代码,让我可以选择一个相机,设置它的分辨率,预览它的视频,使用 XVID 编解码器压缩它并将它保存到 AVI 文件。
当帧从图中的视频压缩器过滤器中出来时,我如何才能将帧作为字节数组获取?
我需要将压缩帧保存到视频帧与其他科学数据混合的文件中。
正在使用的文件格式是 HDF5,相机帧在接收时需要与来自其他科学仪器的帧交错,以便可以按照接收时的相同顺序播放。我有这个适用于所有设备,除了网络摄像头。
为了回放,我需要从数据文件中的流之一提供 FilterGraph。也欢迎提出任何建议!
提前致谢!
DirectShow 过滤器与对等过滤器交换数据或在内部处理,这是设计行为,您无法获取数据流,至少无法以统一方式获取数据流。更多相关信息:Data Flow in the Filter Graph.
多年来,Sample Grabber Filter 一直是在管道中的兴趣点外部访问数据的最流行方法。关于如何使用 Sample Grabber,有很多代码片段,包括 Whosebug。遗憾的是,它在最近的(服务器?)操作系统中不再可用,但是旧的 SDK 在源代码中有 Sample Grabber 的变体。我相信你可以用它来压缩字节。
For playback, I need to feed the FilterGraph from one of the streams in the data file. Any advice on that would also be welcome!
要回放数据,您需要从一种标准容器格式流式传输数据,在这种情况下,您可以利用现有过滤器,或者您可以自己将数据注入 DirectShow 管道。对于后者,您还需要一个自定义过滤器,因为正如我从一开始就提到的那样,它只是与其他过滤器交换数据的过滤器,而不是控制更高级别的代码。 Push Source Filters Sample 是那些走自定义过滤器道路的人的典型起点。或许您最好直接将数据写入 AVI,然后从那里读取(播放)回来。