Optimising H264enc pipeline

buzzy zygjys at gmail.com
Tue Mar 18 11:39:55 PDT 2014


Hello,

we need to optimize the pipeline which has socket as an input and outputs to
udp after H264 encoding. The following pipeline looks like this:

============================================================================
gst-launch-0.10 -v shmsrc socket-path=/tmp/socket do-timestamp=true
is-live=true ! \
         queue leaky=2 max-size-buffers=2                                                           
! \
         video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321,
red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216,
pixel-aspect-ratio=(fraction)1/1, interlaced=(boolean)false',
width=(int)'1024', height=(int)'768', framerate=(fraction)'1/24'                                                                                              
! \
         videoscale                                                                                           
! \
         ffmpegcolorspace                                                                                 
! \
         video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321,
red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216,
pixel-aspect-ratio=(fraction)1/1, interlaced=(boolean)false',
width=(int)'1024', height=(int)'768', framerate=(fraction)'1/24'                                                                                              
! \
         queue                                                                                                
! \
	 ffmpegcolorspace                                                                                 
! \
	 x264enc bitrate=1200 tune=zerolatency speed-preset=2 key-int-max=20
cabac=false   ! \
         'video/x-h264, profile=main'                                                                   
! \
         h264parse                                                                                          
! \
         queue                                                                                               
! \
         mpegtsmux alignment=7 ! chopmydata max-size=1316 min-size=1316           
! \
         udpsink clients=224.0.0.5:1234 auto-multicast=true   sync=false
============================================================================
(The pipeline could not work out of the box because I've changed env/shell
variables to actual elements and didn't test it).
So, the problem is that this pipeline uses almost 50% of CPU and we wish to
reduce this number. The resolution, framerate and bitrate are already the
lowest values thats accepted. Output stream must be H264/MP4 video.
What could be the tips to reduce the CPU load? What options to use? Maybe
start using Gstreamer1.0?
Thank you!



--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Optimising-H264enc-pipeline-tp4666006.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.


More information about the gstreamer-devel mailing list