Http 禁用媒体基础网络源的磁盘缓存

Http 禁用媒体基础网络源的磁盘缓存,http,caching,mp4,ms-media-foundation,multimedia,Http,Caching,Mp4,Ms Media Foundation,Multimedia,我目前正在使用MediaFoundation使用HTTP从远程服务器读取MP4视频。我使用源解析程序方法CreateObjectFromURL创建媒体源 这非常好,视频也很棒,除了一个巨大的痛点: 源接收到的所有数据似乎都缓存到磁盘,特别是在…AppData\Local\Microsoft\Windows\INetCache\IE中。这并不理想,因为视频是实时的,因此流可以无限时间地打开 目前唯一真正的解决方案是定期断开连接,清理internet临时文件,然后重新连接。这需要每隔几个小时进行一次

我目前正在使用MediaFoundation使用HTTP从远程服务器读取MP4视频。我使用源解析程序方法
CreateObjectFromURL
创建媒体源

这非常好,视频也很棒,除了一个巨大的痛点:

源接收到的所有数据似乎都缓存到磁盘,特别是在
…AppData\Local\Microsoft\Windows\INetCache\IE
中。这并不理想,因为视频是实时的,因此流可以无限时间地打开

目前唯一真正的解决方案是定期断开连接,清理internet临时文件,然后重新连接。这需要每隔几个小时进行一次,以防止机器充满和爆炸。当然,对于最终用户来说,这并不是一个真正可以接受的长期解决方案

我试图通过将媒体源上的
MFNETSOURCE\u CACHEENABLED
属性设置为false来禁用缓存,但它似乎根本没有停止缓存


是否有我遗漏的技巧?

是否使用IPropertyStore指定MFNETSOURCE\u CACHEENABLED:是的,没错。我将配置值传递给源解析程序上的方法。它适用于其他方面,但底层http ByTestStream似乎不支持此缓存设置。我有一种可怕的感觉,它根本不支持流,只是将流视为一个部分下载的MP4文件,并缓存它以支持查找等。假设最坏的情况是,我目前正在实现一个自定义http mediasource。这是一项相当大的工作,尽管如此,仍然需要等待一个更快的解决方案;)我还打算向您推荐一个使用IOCP的自定义HTTP媒体源。您是否使用IPropertyStore指定MFNETSOURCE_CACHEENABLED:是的,没错。我将配置值传递给源解析程序上的方法。它适用于其他方面,但底层http ByTestStream似乎不支持此缓存设置。我有一种可怕的感觉,它根本不支持流,只是将流视为一个部分下载的MP4文件,并缓存它以支持查找等。假设最坏的情况是,我目前正在实现一个自定义http mediasource。这是一项相当大的工作,尽管如此,仍然需要等待一个更快的解决方案;)我还打算向您推荐一个使用IOCP的自定义HTTP媒体源。