Forums

Video over IP Maximum frame rate?

This question is not answered

I can see video on remote by performing Gstreamer commands in Leo368 and Ubuntu as below. The frame rate is catastrophically low (1 fps!). 

Leopard board:

HOST_ADDR=192.168.1.2
PORT=3000
gst-launch -v -e v4l2src always-copy=FALSE input-src=composite chain-ipipe=true ! video/x-raw-yuv,format=\(fourcc\)NV12, width=1280, height=720 ! queue ! dmaiaccel ! dmaienc_h264 encodingpreset=2 ratecontrol=2 intraframeinterval=23 idrinterval=46 targetbitrate=3000000 ! rtph264pay ! udpsink port=$PORT host=$HOST_ADDR sync=false enable-last-buffer=false

Ubuntu Client:

PORT=3000
gst-launch -v udpsrc port=$PORT caps="application/x-rtp, media=video, clock-rate=90000, encoding-name=H264, sprop-parameter-sets=\"Z2QAKK2EBUViuKxUdCAqKxXFYqOhAVFYrisVHQgKisVxWKjoQFRWK4rFR0ICorFcVio6ECSFITk8nyfk/k/J8nm5s00IEkKQnJ5Pk/J/J+T5PNzZprQCgC3I\\,aO48sA\\=\\=\", payload=96, ssrc=4122492447, clock-base=2438443486, seqnum-base=57603" ! rtph264depay ! queue ! ffdec_h264 ! ffmpegcolorspace ! videoscale ! ximagesink

For your information:

1- I have SD input video for Leo368 input (720x480 by LI-VI368 module)...  I can not make a command to send VoIP in Leo368 for SD size appropriately. The low video frame rate may be because of the false size (1280x720). if yes... can any one purpose commands for SD video format?

2- I can not see Video by VLC performing command in Ubuntu as below (http://wiki.videolan.org/Documentation:Play_HowTo/Advanced_Use_of_VLC). why? 

vlc rtp://@:3000

All Replies
  • Hi,

    I think it's because the bitrate is very high.

    Try to decrease the value of targetbitrate (1000000,1500000,2000000).

    See also the CPU consumtion, Gstreamer consume a lot of CPU.

  • Thank you for your response... 

    I do not think so, I examined lower values for targetbitrate and the same result!

    Would you test the scrips in your system? it may be because of the defects in my network...

    and some thing else... I wrote these Gstreamer scrips and it makes a strange result:

    Leopardboard side:

    HOST_ADDR=192.168.1.5

    gst-launch -v -e \
    v4l2src always-copy=false input-src=composite chain-ipipe=true ! \
    video/x-raw-yuv,format=\(fourcc\)NV12, width=1280, height=720 ! \
    queue ! \
    dmaiaccel ! \
    dmaiperf ! \
    queue ! \
    dmaienc_h264 targetbitrate=800000 encodingpreset=2 ! \
    rtph264pay ! \
    udpsink host=$HOST_ADDR port=10000

    Ubuntu side:

    CAPS="application/x-rtp, media=video, clock-rate=90000, encoding-name=H264, profile-level-id=640028, sprop-parameter-sets= \"J2QAKK2IDkOYIOEMKQpEByHMEHCGFIUiA5DmCDhDCkKQwEIYwhxmMhCGAhDGEOMxkIQwEIYwhxmMhCICEZjOI8KfEfiP4j8R8R4ziMREQoEIjEcR4j5PxH8n5PiPEcRkiLQCgC3I\\,KO48sA\\=\\=\", payload=96, ssrc=3192754172, clock-base=71598694, seqnum-base=35200"

    gst-launch -v \
    udpsrc port=10000 caps="$CAPS" ! \
    rtph264depay ! \
    ffdec_h264 ! \
    ffmpegcolorspace ! \
    queue ! \
    ximagesink

    In Leopard side it shows 25fps... and for 1 second operating Ubuntu side, I have 25fps display then it decrease to 1fps again. it may give some hints.

  • Sorry for the late !

    I can not try your config because I don't use gstreamer. I have wrote my own application for compress and send data to network.

    You say that the framerate decrease ! How is the bitrate ? Is it also decreasing ?

  • Hi,

    As I said Leo368 shows 25fps as encoding frame rate in the prompt... actually, I do not know how to measure the bit rate. Do you have any suggestion?

    I see another strange result, when I up/down the scroll in VmWare the frame rate in Ubtunu side increases... it may not be because of RAM shortage?

    And also, I have only a part of center of image encoded in remote side, not a complete screen which the camera receives!

  • Hi,

    I tried running your plugin on leopardboard:

    gst-launch -v -e v4l2src always-copy=FALSE input-src=composite chain-ipipe=true ! video/x-raw-yuv,format=\(fourcc\)NV12, width=1280, height=720 ! queue ! dmaiaccel ! dmaienc_h264 encodingpreset=2 ratecontrol=2 intraframeinterval=23 idrinterval=46 targetbitrate=3000000 ! rtph264pay ! udpsink port=$PORT host=$HOST_ADDR sync=false enable-last-buffer=false

    I also tried the example mentioned in www.ridgerun.com/.../LeopardBoard_365_GStreamer_Pipelines_-_SDK_2011Q2 :

    gst-launch -e v4l2src always-copy=FALSE input-src=composite chain-ipipe=true ! video/x-raw-yuv,format=\(fourcc\)NV12, width=1280, height=720, framerate=\(fraction\)23/1 ! queue ! dmaiaccel ! dmaienc_h264 encodingpreset=2 ratecontrol=2 intraframeinterval=23 idrinterval=46 targetbitrate=3000000 ! rtph264pay ! udpsink port=$PORT host=$HOST_ADDR sync=false enable-last-buffer=false &

    But I keep getting the error as below:

    Setting pipeline to PAUSED ...

    davinci_resizer davinci_resizer.2: RSZ_G_CONFIG:0:1:124

    ERROR: Pipeline doesn't want to pause.

    ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Cannot identify device '/dev/video0'.

    Additional debug info:

    ../../../src/sys/v4l2/v4l2_calls.c(573): gst_v4l2_open (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:

    system error: No such file or directory

    Setting pipeline to NULL ...

    Freeing pipeline ...

    Can you please help as to why this is going wrong?