H.264 Streaming - Error when changing resolution

ftvfev ftv.dev at gmail.com
Sat Jul 6 14:04:45 PDT 2013


I am using gstreamer to stream a video. So I am using the 2 scripts:

Client side :

    DEST=10.2.2.30
    
    # this adjusts the latency in the receiver
    LATENCY=0
    
    
   
VIDEO_CAPS="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H264"
   
AUDIO_CAPS="application/x-rtp,media=(string)audio,clock-rate=(int)8000,encoding-name=(string)PCMA"
    
    VIDEO_DEC="rtph264depay ! avdec_h264"
    
    VIDEO_SINK="videoconvert ! autovideosink"
    
    gst-launch-1.0 -v rtpbin name=rtpbin latency=$LATENCY                                 
\
         udpsrc caps=$VIDEO_CAPS port=5000 ! rtpbin.recv_rtp_sink_0                      
\
           rtpbin. ! $VIDEO_DEC ! $VIDEO_SINK                                            
\
         udpsrc port=5001 ! rtpbin.recv_rtcp_sink_0                                      
\
             rtpbin.send_rtcp_src_0 ! udpsink port=5005 host=$DEST
sync=false async=false 

Server side:

    DEST=10.2.2.42
    
    # tuning parameters to make the sender send the streams out of sync. Can
be used
    # ot test the client RTCP synchronisation.
    #VOFFSET=900000000
    VOFFSET=0
    AOFFSET=0
    
    # H264 encode from the source
    # VELEM="v4l2src device=/dev/video0"
    VELEM="filesrc location=big_buck_bunny_1080p_stereo.ogg ! queue !
decodebin"
    
    VCAPS="video/x-raw,width=1920,height=1080,framerate=60/1"
    VSOURCE="$VELEM ! queue ! videoscale ! videorate  ! $VCAPS"
    VENC="x264enc subme=7 ref=3 bframes=4 me=hex tune=zerolatency
byte-stream=true ! rtph264pay"
    
    VRTPSINK="udpsink port=5000 host=$DEST ts-offset=$VOFFSET name=vrtpsink"
    VRTCPSINK="udpsink port=5001 host=$DEST sync=false async=false
name=vrtcpsink"
    VRTCPSRC="udpsrc port=5005 name=vrtpsrc"
    
    gst-launch-1.0 -v rtpbin name=rtpbin \
        $VSOURCE ! $VENC ! rtpbin.send_rtp_sink_0                                            
\
            rtpbin.send_rtp_src_0 ! $VRTPSINK                                                
\
            rtpbin.send_rtcp_src_0 ! $VRTCPSINK                                              
\
          $VRTCPSRC ! rtpbin.recv_rtcp_sink_0  

It works perfectly. However, when I change the resolution for example to
this 640x480. I get the following error on the client side :

    /GstPipeline:pipeline0/avdec_h264:avdec_h264-0.GstPad:src: caps =
video/x-raw, format=(string)I420, width=(int)640, height=(int)480,
pixel-aspect-ratio=(fraction)4/3, interlace-mode=(string)progressive,
colorimetry=(string)bt601, framerate=(fraction)0/1
    ERROR: from element /GstPipeline:pipeline0/GstUDPSrc:udpsrc0: Internal
data flow error.
    Additional debug info:
    gstbasesrc.c(2812): gst_base_src_loop ():
/GstPipeline:pipeline0/GstUDPSrc:udpsrc0:
    streaming task paused, reason not-negotiated (-4)
    Execution ended after 2217228820 ns.
    Setting pipeline to PAUSED ...
    Setting pipeline to READY ...
    Setting pipeline to NULL ...
    Freeing pipeline ...

So what is the reason of this problem and how can I fix it ?



--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/H-264-Streaming-Error-when-changing-resolution-tp4660922.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.


More information about the gstreamer-devel mailing list