[Libav-user] Mux output to buffer instead of file

Daniel Henell henell at gmail.com
Tue May 22 10:35:11 CEST 2012


I did this in an previous project. The code is available here



Daniel Henell

On Tue, May 22, 2012 at 5:09 PM, Carl Lindqvist <lulebo at gmail.com> wrote:
> 2012/5/21 Carl Lindqvist <lulebo at gmail.com>
>> Hello!
>> This is my first post on this list. I am sorry if this has come up before,
>> but I have been searching the archives and can't find a good answer to this.
>> I have an application that encodes an incoming video stream and muxes it
>> as a transport stream. This is working great when writing to a file like in
>> the example muxing.c.
>> Now what I would like to do is to capture the muxed output in a RAM buffer
>> (queue of some sort) instead of writing directly to file. Is this possible?
>> The reason is that I will be encoding the signal continuously, but the
>> finished muxed TS will be passed on to different places and files as the
>> application is running. Sometimes it will be written to multiple
>> destinations at once and stuff like that.
>> Any help is much appreciated!
>> Thank you
>> Regards
>> Carl Lindqvist
> After some more reading on the subject, I understand that I must implement
> my own URLProtocol using something like file.c as a base.
> I am writing my application in C++ and would like to implement the
> buffer/queue system in a C++ class. How would I tell my protocol about this
> class?
> Also, if I do this, I have to recompile the libav libraries with this new
> protocol. WIll this affect the licences of how I may use this in a
> commercial application?
> I have also seen something about using "avio_open_dyn_buf" and
> "avio_close_dyn_buf" instead, but I haven't gotten my head around that yet.
> Regards
> Carl Lindqvist
> _______________________________________________
> Libav-user mailing list
> Libav-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/libav-user

More information about the Libav-user mailing list