[gstreamer-bugs] [Bug 606307] mastroska muxer bad in case of 1fps

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Sat Jan 9 10:35:52 PST 2010


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

--- Comment #5 from Mark Nauwelaerts <manauw at skynet.be> 2010-01-09 18:35:50 UTC ---
(In reply to comment #4)
> Hi, i'm working with Levente on this project. We don't have already the
> solution of our problem, it can be either in the videosrc h264 stream or in one
> of the element in the pipeline.
> 
> > Could you test if it works if you use a capsfilter right after the filesrc with
> > the exact same caps that the h264 had when it was writen to the file?
> 
> I used this pipeline, but the ffmpeg errors still coming while i'm trying to
> seek:
> gst-launch videotestsrc ! capsfilter caps="video/x-raw-yuv,framerate=1/1" !
> x264enc ! matroskamux ! filesink location=vsrc_1fps.mkv
> 
> Seeking with totem:
> 
> ERROR ffmpeg :0:: number of reference frames exceeds max (probably corrupt
> input), discarding one

I don't see how the above pipeline can lead to a valid file.  If you terminate
it with Ctrl-C, the muxer will be unable to finalize the file (e.g. write an
index).  In particular, the resulting file should not be seekable at all.  If
some player were to make some (random) attempt to do so, it would probably not
properly seek to a keyframe, and (decoding) problems could arise that way [but
I do not believe mplayer or totem would make such attempts].

On the other hand, if I use the following pipeline, the result plays and seeks
fine:
gst-launch videotestsrc num-buffers=60 !  video/x-raw-yuv,framerate=1/1 !
x264enc ! matroskamux ! filesink location=vsrc_1fps.mkv
[alternatively, you might use the -e option to gst-launch]

> 
> The same happend when I set the x264enc element's byte-stream property to true
> or false, so it looks like for me the byte-stream is not our problem (btw very
> thanks Mark for the additional infos). The pipeline was:
> 
> gst-launch videotestsrc ! capsfilter caps="video/x-raw-yuv,framerate=1/1" !
> x264enc byte-stream=false ! matroskamux ! filesink location=vsrc_1fps.mkv
> 
> Another test case: disabling the B frames at convert, there isn't any ERROR
> while seeking the video:
> 
>  ... ! x264enc key-int-max=1 ! ...

Default x264enc settings do not lead to B-frames anyway.  key-int-max=1 should
actually force every frame to be an IDR-frame (= sort of super I-frame).

> 
> Any ideas?

There could be problems in a particular version of x264 encoder library, or
similarly in the ffmpeg decoder, or a corrupt index due to reasons explained
above.  Basically, I have not been able to reproduce anything so far (provided
files are constructed properly).

> 
> I'm using gstreamer-plugins-bad-0.10.17-2.fc12.i686 but the h264parse element
> only has two properties: name and split-packetized. From where can I get a
> recent version?

The most recent one is available in git (source), see e.g.
http://gstreamer.freedesktop.org/dev/ for info on obtaining it.

-- 
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