GStreamer TS Transport Stream multiplexer comparison

From RidgeRun Developer Connection
Jump to: navigation, search

Description

This page shows all the results related with the performance analysis about TS stream features for the Leopard DM368 using the FFMPEG and Fluendo plugins.

The main idea is determine what plugins present a better performance.


For both cases are applied the following environment:

  • Used UDP stream.
  • The size of image captured is 640x480.
  • The h264 encoder used a target bitrate of 1,5 Mbits per second and enconding algorithm high speed.


For raise the performance of mpegtsmux was applied the several patches development for Ridgerun that improving the performance of the plugin. For the fluendo mpegtsmux was enabled the feature buffer-list that it sends a buffer list instead single buffer.

TS approach using ffmux_mpegts (FFMPEG)

The pipeline used for TS streaming from the DM368 to the PC is shown below:

  • DM368 (Server)
gst-launch v4l2src always-copy=FALSE ! 'video/x-raw-yuv, width=640, height=480, \
framerate=(fraction)30/1' ! dmaiaccel ! dmaienc_h264 encodingpreset=2 intraframeinterval=30 \
idrinterval=60 ratecontrol=2 profile=66 level=30 entropy=0 t8x8intra=0 t8x8inter=0 \
seqscaling=0 targetbitrate=1500000 bytestream=true ! queue ! ffmux_mpegts ! \
udpsink host=10.251.101.43 sync=false enable-last-buffer=false port=3001 

  • PC (Client)
gst-launch udpsrc port=3001 ! mpegtsdemux ! decodebin ! xvimagesink sync=false

Information

This test was made during 10 mins.

  • The image is fluent and good quality.
  • CPU Average: 10%

TS approach using mpegtsmux (Fluendo)

The pipeline used for TS streaming from the DM368 to the PC is shown below:

  • DM368 (Server)
gst-launch v4l2src always-copy=FALSE ! 'video/x-raw-yuv, width=640, height=480, \
framerate=(fraction)30/1' ! dmaiaccel ! dmaienc_h264 encodingpreset=2 intraframeinterval=30 \
idrinterval=60 ratecontrol=2 profile=66 level=30 entropy=0 t8x8intra=0 t8x8inter=0 \
seqscaling=0 targetbitrate=1500000 bytestream=true ! queue ! mpegtsmux buffer-list=true ! \
udpsink host=10.251.101.43 sync=false enable-last-buffer=false port=3001 
  • PC (Client)
gst-launch udpsrc port=3001 ! mpegtsdemux ! decodebin ! xvimagesink sync=false

Information

This test was made during 10 mins.

  • The image is fluent and good quality.
  • CPU Average: 35%