[Bug 759742] New: Running multiple nvenc encoders in the same pipeline causes very high CPU load during initialisation

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Dec 21 06:30:36 PST 2015


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

            Bug ID: 759742
           Summary: Running multiple nvenc encoders in the same pipeline
                    causes very high CPU load during initialisation
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-bad
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: matt at stonethree.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

If multiple nvenc endoding elements are used in the same pipeline, then the CPU
use is very high on initialisation. 

This can be tested with two pipelines from the command line. One using software
encoding, and the other hardware. The hardware version incorrectly uses
dramatically more CPU than the software for several minutes on the machine I
tested on before it drops down.

The input video is very small ( 50px x 50px ). If I use software encoding ( the
x264enc element ), then CPU use is low - around 20% of one core.

If I simply swap the x264enc element with a nvh264enc element, CPU use maxes
out at 800% ( this is an 8 core machine ) for several minutes before eventually
suddenly dropping to a much more expected use of 8%. 


Software Encoding Command:

LD_LIBRARY_PATH=/usr/local/cuda-7.0/targets/x86_64-linux/lib/:/usr/local/lib/
GST_PLUGIN_PATH=/usr/local/lib/gstreamer-1.5 gst-launch-1.5 videotestsrc
is-live=true ! video/x-raw,width=50,height=50,framerate=15/1 ! tee name=tee1
tee1. ! queue ! x264enc tune=4 bitrate=200  ! fakesink tee1. ! queue ! x264enc
tune=4 bitrate=200  ! fakesink tee1. ! queue ! x264enc tune=4 bitrate=200  !
fakesink tee1. ! queue ! x264enc tune=4 bitrate=200  ! fakesink tee1. ! queue !
x264enc tune=4 bitrate=200  ! fakesink tee1. ! queue ! x264enc tune=4
bitrate=200  ! fakesink tee1. ! queue ! x264enc tune=4 bitrate=200  ! fakesink
tee1. ! queue ! x264enc tune=4 bitrate=200  ! fakesink tee1. ! queue ! x264enc
tune=4 bitrate=200  ! fakesink tee1. ! queue ! x264enc tune=4 bitrate=200  !
fakesink tee1. ! queue ! x264enc tune=4 bitrate=200  ! fakesink tee1. ! queue !
x264enc tune=4 bitrate=200  ! fakesink tee1. ! queue ! x264enc tune=4
bitrate=200  ! fakesink tee1. ! queue ! x264enc tune=4 bitrate=200  ! fakesink
tee1. ! queue ! x264enc tune=4 bitrate=200  ! fakesink tee1. ! queue ! x264enc
tune=4 bitrate=200  ! fakesink tee1. ! queue ! x264enc tune=4 bitrate=200  !
fakesink tee1. ! queue ! x264enc tune=4 bitrate=200  ! fakesink tee1. ! queue !
x264enc tune=4 bitrate=200  ! fakesink tee1. ! queue ! x264enc tune=4
bitrate=200  ! fakesink 

Hardware Encoding Command:

LD_LIBRARY_PATH=/usr/local/cuda-7.0/targets/x86_64-linux/lib/:/usr/local/lib/
GST_PLUGIN_PATH=/usr/local/lib/gstreamer-1.5 gst-launch-1.5 videotestsrc
is-live=true ! video/x-raw,width=50,height=50,framerate=15/1 ! tee name=tee1
tee1. ! queue ! nvh264enc  ! fakesink tee1. ! queue ! nvh264enc  ! fakesink
tee1. ! queue ! nvh264enc  ! fakesink tee1. ! queue ! nvh264enc  ! fakesink
tee1. ! queue ! nvh264enc  ! fakesink tee1. ! queue ! nvh264enc  ! fakesink
tee1. ! queue ! nvh264enc  ! fakesink tee1. ! queue ! nvh264enc  ! fakesink
tee1. ! queue ! nvh264enc  ! fakesink tee1. ! queue ! nvh264enc  ! fakesink
tee1. ! queue ! nvh264enc  ! fakesink tee1. ! queue ! nvh264enc  ! fakesink
tee1. ! queue ! nvh264enc  ! fakesink tee1. ! queue ! nvh264enc  ! fakesink
tee1. ! queue ! nvh264enc  ! fakesink tee1. ! queue ! nvh264enc  ! fakesink
tee1. ! queue ! nvh264enc  ! fakesink tee1. ! queue ! nvh264enc  ! fakesink
tee1. ! queue ! nvh264enc  ! fakesink tee1. ! queue ! nvh264enc  ! fakesink

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