[Bug 776712] New: vaapih264enc doesn't output AU delimiters

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Jan 2 12:51:57 UTC 2017


https://bugzilla.gnome.org/show_bug.cgi?id=776712

            Bug ID: 776712
           Summary: vaapih264enc doesn't output AU delimiters
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gstreamer-vaapi
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: gsbz at namez.de
        QA Contact: gstreamer-bugs at lists.freedesktop.org
                CC: bsreerenj at gmail.com, vjaquez at igalia.com
     GNOME version: ---

Follow-up bug report of the mailing list discussion here:
https://lists.freedesktop.org/archives/gstreamer-devel/2016-December/062109.html

Tim Müller wrote:
> I suspect the problem is that vaapih264enc doesn't output AU delimiters
> by default, and it also seems to have no property for it ("aud"
> property on x264enc which is set to true by default).

When using vaapih262enc to create a ts muxed (and presumably other as well)
stream many player have problems playing it. Especially Browsers that try to
play a hls stream don't like what they get from vaapih262enc, but x264enc
works.

Reproducing:
  gst-launch-1.0 videotestsrc ! vaapih264enc ! h264parse ! mpegtsmux ! hlssink
The resulting "playlist.m3u8" is sometimes playable in players like ffplay with
repeating messages like:
  [mpegts @ 0x7f06d81f7940] Invalid timestamps stream=0, pts=324107999,
dts=324108000, size=3555
And sometimes it exits with this message:
  [h264 @ 0x7fcad807be80] sps_id 0 out of range
Trying to play the playlist.m3u8 in browsers like Safari (native hls support)
or Chrome (with hlsjs) (always)brings black picture / "mediaError" events. To
reproduce, upload the created .ts and .m3u8 files to a webserver and use the
hlsjs demo: http://dailymotion.github.io/hls.js/demo/


A workaround I found is to apply the proposed patch of bug #736213 (needs some
minor changes to fix patch errors) and then use something like this:

gst-launch-1.0 videotestsrc ! vaapih264enc ! \
h264parse config-interval=-1 inline-au-delimiter=true ! \
mpegtsmux ! hlssink

The "inline-au-delimiter" from the patch alone doesn't do the trick, but
"config-interval=-1" (any value other than 0) is required to get it to work.
"config-interval" is described as "Send SPS and PPS Insertion Interval". I
don't really know what that means, but it may be possible that the problem is
more than just AUD delimiters and I wan't to share what I discovered.

I open this new bug even though there is another more or less related one
because my understanding from the last days reading is that a encoder should
include the AU delimiters by itself in byte-stream mode and not rely on
something else to inline it.

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