[FFmpeg-devel] [PATCH] urlconcat protocol

Stefano Sabatini stefano.sabatini-lala
Sat Feb 6 20:36:44 CET 2010

On date Saturday 2010-02-06 19:31:09 +0100, Michele Orr? encoded:
> Ok, tested with some videos, splitted previously with "split" , using
> ffmpeg, ffplay, and also seek_test (just cat:$file).
> Seems to work.
> About *urinod : Why waste time destroying and making a new pointer?

I can't see any urinod in the file.
> 2010/2/6 Artur Bodera <abodera at gmail.com>
> > On Sat, Feb 6, 2010 at 12:28 PM, Stefano Sabatini <
> > stefano.sabatini-lala at poste.it> wrote:
> >
> > > Again a naming consideration:
> > > concat.c
> > > URLProtocol urlconcat_protocol = {o long) for all of
> > > these, should be less confusing.
> > >
> >
> > Just a thought -  will it be able to concat all types of streams? concat
> > files? map-then-concat?
> > If it's just for url's it should stay "urlconcat", so urlconcat.c
> >
> It's just for urls (also http, ftp, etc.) , but if you concat two videos of
> different screen size,  for example, it won't work.
> Me, too, I prefer urlconcat, and since the user will only use cat:, it
> doesn't really matter if it's a little longer.

I don't like it very much, an url/uri is an identifier/locator of a
resource (which can be retrieved using some protocol, yes a normal
file can be identified by the url "file:/FILE"), what the protocol
allows to concatenate is the physical content of the resources
referenced by the urls, so I continue to prefer "concat" / "cat"
as names.

The term "url" in urlconcat is misleading, there is nothing special
about urls in this protocol as all the files/streams in ffmpeg are
referenced using uris (e.g. ffplay file:/in.avi).

Also having the name of the protocol equal to the prefix used
(e.g. concat protocol -> "concat:") would be nice as this is what
happens for all the other supported protocols.

> > This came tp my head after working around video concating problem - the
> > only
> > way to concat 2 videos files (as for now) with ffmpeg is to use fifo +
> > pipes
> > + rawvideo/yuv4mpeg. Of course an universal concat method/protocol would be
> > greatly appreciated (using multiple -i -i -i or -map'ping)
> >
> I repeat: I've tested it only with some splitted videos. Trying, for
> example, to concat foo.avi|foo.avi, you may would see in the output just the
> first video, since its time, title, ... are written in the first file (2/3
> times it won't work, tested :D).

Yes this protocol only allows *physical* concatenation, that is it is
the equivalent of a cat/netcat command. For *logical* concatenation of
streams you may need a concat/playlist *demuxer* (have a look at the
concat gsoc repo).

FFmpeg = Friendly and Fancy Martial Philosofic Exuberant Guru

More information about the ffmpeg-devel mailing list