This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Problem in Gstreamer streaming pipelines

Other Parts Discussed in Thread: TMS320DM8148

Hello,

         I am using TMS320DM8148 video processor to stream the live video capturing from a camera. For streaming am using the gstreamer framework, the Host code and the client code are written but i am in a confusion that the code is correct or not.

Host code:

 gst-launch v4l2src device=”/dev/video0”!’video/x-raw-yuv,format=(fourcc)YUY2,width=320, height=240,framerate=(fraction)30/1’!omx_noisefilter!omx_h264enc force-idr-period=300 i-period=100 bitrate=12000000!queue!rtph264pay!udpsink host=192.168.235.102 port=5000

Client code:

gst-launch udpsrc location=rtp://192.168.235.102:5000/ testvideo ! rtph264depay ! queue ! omxh264dec ! xvimagesink

What is this "force-idr-period=300 i-period=100" in the Host code?

Any one please help me out ....Thanks in advance.

-Anvesh Rao.

  • Hello,

    Your use case is capture->encode->streaming(board to PC), correct?

    Anvesh Rao said:
    What is this "force-idr-period=300 i-period=100" in the Host code?

    This specified periodicity of I frames and IDR frames. If it is not set the default values will be use.

    BR

    Margarita

  • Hello,

    What is the issue that you are observing also (hang, errors etc)?

    BR
    Margarita
  • Hey thanks..,
    why the force is used? and "force-idr-period=300 i-period=100" in this 300 is seconds or milli-seconds or other . please tell me what is that measuring term?

    And What is omx_noisefilter in he Host code?

    Thanks in advance,
    -Anvesh Rao.
  • yes, i want to capture->encode->streaming(board to PC). The periodicity of I frames and IDR frames is for the h264 encoder? What are the default values if the periodicity is not set?
  • Hello,

    Anvesh Rao said:
    why the force is used?

    I guess you find this pipeline in the e2e forum. This properties was set because it was a customer requirement.

    The default values are   i-period=90, force-idr-period=0 this means that the IDR frame are not insert and the i-period is 90.

    This values will depends on what you are trying to archive.

    I would recommend you to check the h264encoder user guide for more information about the I and IDR frames.

    I would recommend you the bitrate to be lower for 1920x1080 the recommended bitrate is ~10 000 000 bps, but again this depends on your use case.

    Omx_noisefilter (NF) is a element with one input and one output. On the input it accept a 422 format on the output it has 420. In this case is it used since the capture format is YUY2 and the encoder element require 420 semi planar (down-sampling). The NF hardware supports spatial as well as temporal noise filtering. But there is a NF's hardware limitation where Width/pitch/height should be multiple of 32 pixels.


    Please provide me information about your use case so I could suggest you pipelines for your use case.

    BR

    Margarita

  • Thanks again.,
    My case is that i want to capture->encode->streaming(board to PC) this application is for Mini Aerial Vehicles.The vehicle should capture the live video and stream that live video with low latency to the ground station by using a LSR Tiwi-Ble wifi module. For this application i want gstreamer Host and client code, i had also tried the codes but not clear. Please suggest me with an answer.
    And also in the Host code the bitrate is the compressed bitrate of the raw video or we should manually enter the bitrate value?

    Thanks,
    -Anvesh Rao.
  • Hello,

    Anvesh Rao said:
    The periodicity of I frames and IDR frames is for the h264 encoder?

    Yes.

    Anvesh Rao said:
    yes, i want to capture->encode->streaming(board to PC).

    I would recommend you first to verify the pipeline by replacing the v4l2src part with videotestsrc element. This element will generate a colorbar.

    gst-launch videotestsrc  !    omx_h264enc bitrate=5000000 ! h264parse !  tcpserversink host=192.168.1.1

    on PC side :

    gst-launch-0.10  tcpclientsrc host=192.168.1.2  typefind=true ! h264parse ! queue ! ffdec_h264 ! videoscale ! autovideosink

    Could you provide me details about the pipelines which you posted in your first post? What issue you are observing this these pipeline ?

    The default value for bitrate which gst is setting is 5000000 bit this could be change for your use case keep in mind lower bitrate worst quality but since you have streaming it will depend also on your network bandwidth.

    BR

    Margarita

  • force-idr-period=300 i-period=100
    Every 100th frame will be I frame and every 300th frame an IDR frame.
  • Hello,

    It means force next frame to be IDR or I.

    BR
    Margarita