[Bug 758640] New: Using vtenc_h264 in RTSP media factory with low frame rates and 'main' h264 profile results in timestamp problems

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Nov 25 02:20:01 PST 2015


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

            Bug ID: 758640
           Summary: Using vtenc_h264 in RTSP media factory with low frame
                    rates and 'main' h264 profile results in timestamp
                    problems
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Mac OS
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-bad
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: hfink at toolsonair.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

When testing low frame rates like 1/1 in our RTSP server code using vtenc_h264,
we have observed time stamp problems in the client, which are likely due to
some timestamp problems already on the server side. This can be reproduced as
follows:

Use gst-rtsp-server's test-launch example with the following launch line: 

./test-launch "videotestsrc is-live=true ! vtenc_h264
allow-frame-reordering=false realtime=true max-keyframe-interval=1 bitrate=6000
! video/x-h264,profile=main,width=1920,height=1080,framerate=1/1 ! rtph264pay
name=pay0 pt=96"

Then simply play back the stream using gst-play-1.0. This will result in the
client complaining about timestamps problems ("warning: There may be a
timestamping problem, or this computer is too slow.", etc).

Now, simply changing the above launch line to use profile=baseline instead of
profile=main, makes the example work flawlessly: 

./test-launch "videotestsrc is-live=true ! vtenc_h264
allow-frame-reordering=false realtime=true max-keyframe-interval=1 bitrate=6000
! video/x-h264,profile=baseline,width=1920,height=1080,framerate=1/1 !
rtph264pay name=pay0 pt=96"

My knowledge about the h264/RTSP specific parts is too little that I can make a
lot of sense out of this, but I did a little bit of digging, and here are some
facts I found which might be relevant:

(1) using profile=main works with x264enc, although x264 seems to fall back to
constrained-baseline, when being configured to not use any B frames and use
intra encoding only

(2) Changing between profile=main and profile=baseline doesn't change the
latency 
introduced by vtenc (which is unnecessarily high here, but that's another
story), i.e. the timing of the buffers being emitted out of vtenc is the same

(3) Changing the frame rate to 2/1 (instead of 1/1) makes it also work with
profile=main.

I was able to narrow our bug down so far and make it reproducible using
standard GST tools, but I need help to further narrow it down. Especially, we
can't say for sure whether this is (a) a bug of vtenc/VT toolbox (b) a bug in
rtph264pay or (c) a bug somewhere further down in the RTSP server. Any ideas?

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