[FFmpeg-devel] [RFC] Exporting virtual timelines as stream side data

wm4 nfxjfg at googlemail.com
Thu Mar 29 15:06:37 EEST 2018

On Thu, 29 Mar 2018 14:00:03 +0200
Steve Lhomme <robux4 at ycbcr.xyz> wrote:

> Le 27/03/2018 à 22:45, Dave Rice a écrit :
> >> On Mar 27, 2018, at 4:33 PM, wm4 <nfxjfg at googlemail.com> wrote:
> >>
> >> On Tue, 27 Mar 2018 16:11:11 -0400
> >> Dave Rice <dave at dericed.com> wrote:
> >>  
> >>>> On Mar 27, 2018, at 4:01 PM, Derek Buitenhuis <derek.buitenhuis at gmail.com> wrote:
> >>>>
> >>>> On 3/27/2018 8:52 PM, Rostislav Pehlivanov wrote:  
> >>>>> I think we should drop the internal crap if the tools and the API support
> >>>>> it. Would also solve a lot of issues like ffmpeg.c not trimming the start
> >>>>> frame (so people complain all the time about longer files).  
> >>>> I personally agree, but I thought I'd be diplomatic about it, since it would
> >>>> technically be losing a 'feature', since it would no longer Just Work(ish)
> >>>> and require user applications to apply timelines themselves - and I figured
> >>>> some would argue that point.  
> >>> +1 I’m willing to contribute what information or samples would be needed to help with Matroska support with virtual timelines. IMO, this would be a valuable feature to have in ffmpeg.
> >>> Dave Rice  
> >> Some explanations how this interacts with editions would be good.  
> > I put an example with two editions at https://archive.org/download/chapters_test/chapters_test.mkv which mimics a digitized video tape. One edition depicts the stored video encoding in its entire presentation and the other default edition plays from the video encoding selectively. When the file is played in VLC, the default edition is used to show a shortened presentation, but the other editions may be selected within the Program menu option. In the proposal there should be an option to mimic the current behavior and ignore the editions (equivalent of -ignore_editlist in mov), to use the first default edition, or to select a specific edition.  
> For the record, the ordered chapters with segment  linking in VLC have 
> been fixed recently with this issue 
> https://trac.videolan.org/vlc/ticket/19101
> There is a lengthy set of sample files with ordered chapters and 
> multiple segments. That's basically the most complex case that can exist.

Samples are good, but don't replace exhaustive documentation.

> I don't think the API covers segment linking, nor how libavformat would 
> look around in the file system if there are available segments 
> (something we do in VLC). So not sure an API for some case not covered 
> would make sense.

The idea is that the proposed API can be extended to export segment
UUIDs. Then the mkv demuxer could export the ordered chapter metadata.
How an application knows how to find segment references is another
story. Since Matroska has such a special mechanism (finding references
by opening _all_ files and checking their UUID), it's unlikely that
there can be a generic API for this. I think mov files at least use a
filename/URL for external references, which actually could be handled
in generic files.

More information about the ffmpeg-devel mailing list