0

I am using the directshow filter for muxing a vp8 and vorbis. And MOST IMPORTANTLY I am sending (trying to send actually) the webm file in real time. So there is no file being created. As data is packed into webm after being encoder i send it off to the socket.

The filesinker filter uses IStream to do the file IO. And it heavely uses the seek operation. Which I can not use. Since I can not seek on a socket.

Has anyone implemented or know how to use this muxer so that seek operation in not called. Or maybe a version on the muxer with queues so that it supports fragmentation.

Thanks

I am using the directshow filter providede by www.webmproject.org

Evren Bingøl
  • 1,306
  • 1
  • 20
  • 32

1 Answers1

1

Implementation of IStream on writers allow multiplexers update cross references in the written stream/file. So they don't have to write sequentially which is impossible for most of container formats without creating huge buffers or temporary files.

Now if you are creating the file on runtime to progressively send over network, which I suppose you are trying to achieve, you don't know what, where and when the multiplexer is going to update to close the file. Whether it is going to revisit data in the beginning of the file and update references, headers etc.

You are supposed to create the full file first, and then deliver it. Or you need to substitute the whole writer thing and deliver onto socket all writes, including overwrites of already existing data. The most appropriate method to deliver real time data over network however is not not transfer the files at all. Sender send individual streams and receivers either use them as such, or multiplex into file after receiving then is it is necessary.

Roman R.
  • 68,205
  • 6
  • 94
  • 158
  • Thanks roman. Yeah I looked into this. Unfortunately the architecture has to be implemented as I mentioned and I do not have control over the client side to overwrite a certain section. But It turns out that OGG muxer writes "pages". And never seeks. thanks again for the help. Basically I wanted to write a some sort of a video proxy so that people did not have to convert files manually for different html browser.you request file a and depending on the browser file converted ogg/webm/mp4 It turns out that ogg is the only one that can do this in realtime(given the muxers provided). thanks – Evren Bingøl Sep 26 '12 at 07:17
  • For such proxy to work well I think you need to convert the entire file on server before you start streaming bytes. – Roman R. Sep 26 '12 at 08:04