webmmux directshow寻求队列IStream

时间:2012-09-19 21:19:57

标签: stream directshow seek webm muxer

我使用directshow过滤器来复用vp8和vorbis。 最重要的是我实时发送(试图实际发送)webm文件。 所以没有创建文件。 由于数据在编码后被打包到webm中,我将其发送到套接字。

filesinker过滤器使用IStream来执行文件IO。并且它强烈地使用搜索操作。 哪个我不能用。因为我不能在套接字上寻求。

是否有人实现或知道如何使用此muxer以便在未调用的情况下执行搜索操作。 或者可能是带有队列的muxer上的版本,以便它支持碎片。

由于

我正在使用www.webmproject.org

的directshow过滤器

1 个答案:

答案 0 :(得分:1)

在编写器上实现IStream允许多路复用器更新写入的流/文件中的交叉引用。因此,他们不必按顺序编写,这对于大多数容器格式是不可能的,而不会创建大量缓冲区或临时文件。

现在,如果您在运行时创建文件以逐步通过网络发送(我想您正在尝试实现),您不知道多路复用器要更新以关闭文件的内容,位置和时间。是否要重新访问文件开头的数据并更新引用,标题等。

您应该先创建完整文件,然后再发送它。或者您需要替换整个编写器的东西并将套接字传递给套接字,包括覆盖已存在的数据。然而,通过网络传送实时数据的最合适的方法并不是根本不传输文件。发送者发送各个流和接收者要么就这样使用它们,要么在接收后多路复用到文件中,然后是必要的。