[gstreamer-bugs] [Bug 601236] New: [flvmux] script tag with index gets written at end of file, contains all tags

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Nov 9 02:00:53 PST 2009


https://bugzilla.gnome.org/show_bug.cgi?id=601236
  GStreamer | gst-plugins-good | git

           Summary: [flvmux] script tag with index gets written at end of
                    file, contains all tags
    Classification: Desktop
           Product: GStreamer
           Version: git
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: wulczer at wulczer.org
         QAContact: gstreamer-bugs at lists.sourceforge.net
      GNOME target: ---
     GNOME version: ---


This pipeline in gst git:

gst-launch-0.10 videotestsrc num-buffers=10 ! ffenc_flv ! flvmux name=mux !
filesink location=/tmp/test.flv audiotestsrc num-buffers=10 ! lame ! mux.

produces a file that has two script tags, one at the beginning:

#00001 <ScriptTag onMetaData at offset 0x0000000D, time 0, size 99>
{'metadatacreator': 'GStreamer FLV muxer',
 'creationdate': 'Mon Nov 9 9:52:19 2009'}

and one at the end:

#00021 <ScriptTag onMetaData at offset 0x0001123A, time 0, size 392>
{'times': [0.0,
           0.0,
           33.333333,
           ( ...snip... )
           300.0],
 'filepositions': [12679.0,
                   13091.0,
                   20870.0,
                   ( ...snip... )
                   70202.0]}

The last tag gets written by gst_flv_mux_write_index, which gets called on EOS.
The index contains timestamps of all FLV tags in the muxed file and their byte
offsets.

There are two things wrong here: the index should not be written at the end of
the file, since this is not useful. Many tools and video players written in
ActionScript assume that the script tag with the index will be the first tag in
a FLV file and use the information from that index as a seek table. Putting
that index at the end of the file is useless.

Second, the index should not contain all tags times and positions, only key
unit's. Since players use that info as a seek table, putting all tags' there
will only confuse them.

Usually, that index in FLV files is added by external tools, like Flvtool2 or
flvlib. If GStreamer writes an index to the file, it should produce output
similar to what you'd get using these tools.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.




More information about the Gstreamer-bugs mailing list